📄 ex5-4.asm
字号:
ORG 0000H ;复位入口
LJMP MAIN ;转到主程序
ORG 000BH ;T0中断入口
LJMP TT0 ;转到T0中断服务程序
ORG 0030 ;主程序入口
MAIN: MOV SP,#60H ;设置堆栈指针
MOV 20H,#0AH ;设置中断次数
MOV 30H,#00H ;时、分、秒单元清0
MOV 31H,#00H
MOV 32H,#00H
MOV TMOD,#01H ;设置T0工作方式
MOV TH0,#3CH ;装入T0初值
MOV TL0,#0B0H
SETB TR0 ;启动T0
SETB EA ;开中断
SETB ET0 ;允许T0中断
SJMP $ ;等待中断
TT0: PUSH PSW ;保护现场
PUSH ACC
MOV TH0,#3CH ;重装T0初值
MOV TL0,#0B0H
DJNZ 20H,RT ;1秒定时未到,返回
MOV 20H,#0AH ;重置中断次数
MOV A,#01H
ADD A,32H ;秒单元加1
DA A ;十进制调整
MOV 32H,A ;转换为BCD码
CPL P1.0
CJNE A,#60H,RT ;未到60秒,返回
MOV 32H,#00H ;到60秒,秒单元清0
MOV A,#01H
ADD A,31H ;分单元加1
DA A ;十进制调整
MOV 31H,A ;转换为BCD码
CPL P1.2
CJNE A,#60H,RT ;未到60分,返回
MOV 31H,#00H ;到60分,分单元清0
MOV A,#01H
ADD A,30H ;时单元加1
DA A ;十进制调整
MOV 30H,A ;转换为BCD码
CPL P1.4
CJNE A,#24H,RT ;未到24小时,返回
MOV 30H,#00H ;到24小时,时单元清0
MOV P1,#00H
RT: POP ACC ;恢复现场
POP PSW
RETI ;中断返回
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -