MOV K1_C,A ;K1_C 初始为0 MOV DEDA,A ;百分秒DEDA初始为0 MOV SEC,A ;秒SEC初始为0 MOV MIN,A ;分MIN初始为0
MOV K1_N,A ;K1_N初始为0 MOV K1_P,A ;K1_P初始为0 CLR TR0 ;启动中断
RET ;――――――――――――――――――――― ;定时器初始化设置子程序
INIT_TIMER: ;定时器初始化 MOV TMOD,#00000001B ;定时器0模式1 MOV IE, #10000010B ;开通中断
MOV TL0,#LOW(65536-10000);定时初值装入低位 MOV TH0,#HIGH(65536-10000);定时初值装入高位 RET ;中断服务程序
T0_INT: ;定时器T0中断程序 PUSH ACC ;入栈保护 MOV TL0,#LOW(65536-10000) ;重加载 MOV TH0,#HIGH(65536-10000) INC DEDA
MOV A,DEDA ;10ms 计数值加1 CJNE A,#100,TT MOV DEDA,#0
INC SEC ;秒加1 MOV A,SEC CJNE A,#60,TT
INC MIN ;分加1 MOV SEC,#0 MOV A,MIN CJNE A,#05,TT
MOV DEDA,#0 ;百、分、秒单元清0 MOV SEC,#0 MOV MIN,#0
TT: POP ACC ;出栈
RETI ;中断程序返回 ;――――――――――――――――――――― ;判断键是否按下子程序 LOOP1:
JB K2,LOOP2 ;判清零键是否按下
JMP MAIN ;跳转主程序处