timer0-0.asm
来自「22个51单片机的实例」· 汇编 代码 · 共 24 行
ASM
24 行
ORG 00H
JMP MAIN
ORG 30H
MAIN: MOV TMOD,#00H ;设置TIMER0工作在MODE0
MOV R4,#00H ;记数指针初值
;------------------------------------
START: MOV P2,R4 ;将记数指针初值输出至P2
MOV R3,#200 ;延迟1s
CALL DELAY ;
XCH A,R4 ;将记数指针值与累加器的内容交换
ADD A,#01 ;累加器加1
DA A ;做十进制调整
XCH A,R4 ;将累加器的内容与记数指针交换
JMP START
;-------------------------
DELAY: SETB TR0 ;启动定时器0开始计数
AGAIN: MOV TL0,#(8192-5000) MOD 32 ; 设置TL0的初值
MOV TH0,#(8192-5000)/32 ;设置TH0的初值
LOOP2: JBC TF0,LOOP3 ;TF0是否为1,是则跳到LOOP3,并清除TF0
JMP LOOP2 ;不是则跳到LOOP2
LOOP3: DJNZ R3,AGAIN ;R3是否为0?不是则跳到AGAIN
CLR TR0 ;是则停止TIMER0计数
RET
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?