📄 timer application (1).asm
字号:
SECOND EQU 30H
COUNT EQU 31H
ORG 00H
LJMP START
ORG 0BH ;定时器0中断入口
LJMP INT_T0
START: MOV SECOND,#00H
MOV COUNT,#00H
MOV DPTR,#TABLE ;段码表首地址
MOV P0,#3FH ;数码管显示初始化
MOV P2,#3FH
MOV TMOD,#01H ;设置定时器0工作方式
MOV TH0,#(65536-50000)/256 ;定时50毫秒
MOV TL0,#(65536-50000) MOD 256
SETB TR0 ;启动定时/计数器0
MOV IE,#82H ;开中断
LJMP $ ;等待中断
INT_T0: MOV TH0,#(65536-50000)/256 ;定时50毫秒
MOV TL0,#(65536-50000) MOD 256
INC COUNT ;计数值加1
MOV A,COUNT
CJNE A,#20,I2 ;是否计够1秒
MOV COUNT,#00H
INC SECOND
MOV A,SECOND
CJNE A,#60,I1 ;是否计够60秒
MOV SECOND,#00H
I1: MOV A,SECOND
MOV B,#10
DIV AB ;分离计数值十位和个位
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A ;显示计数值
I2: RETI ;中断返回
TABLE: DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -