📄 计数器3.asm
字号:
;成功
ORG 0000H
SJMP START
ORG 001BH
SJMP SERVE
ORG 0030H
START: MOV TMOD,#15H ; T0计数,T1定时,均为模式1
MOV TH1,#3CH ;T1每次中断50ms
MOV TL1,#0B0H
MOV B,#14H ;中断20次为1s
SETB TR1 ;开中断
SETB ET1
SETB EA
MOV TH0,#00H ;设置T0计数初值
MOV TL0,#00H
SETB TR0 ;启动T0计数
SJMP $ ;等待中断
SERVE: SETB TR0
MOV TH1,#3CH ;重设计数初值
MOV TL1,#0BH
MOV TH0,#00H
MOV TL0,#00H
JNB TF1,$ ;50ms没到,继续等待
CLR TF1 ;清溢出标志位
CLR TR0 ;T0停止计数
;MOV P1,TL0 ;将计数值输出
MOV A,TL0
MOV F0,ACC.7
MOV ACC.7,ACC.0
MOV ACC.0,F0
MOV F0,ACC.6
MOV ACC.6,ACC.1
MOV ACC.1,F0
MOV F0,ACC.5
MOV ACC.5,ACC.2
MOV ACC.2,F0
MOV F0,ACC.4
MOV ACC.4,ACC.3
MOV ACC.3,F0
MOV P1,A
DJNZ B,SERVE ;1s到没,没到继续
MOV B,#14H ;重设计数初值
RETI ;中断返回
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -