📄 timer0-0.asm
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -