CJNE A,#60H,ADDHH1 ;
ADDHH1: JC OUTT01 ;小于60分时中断退出
LCALL CLR0 ;大于或等于60分时分计时单元清0
MOV R0,#65H ;指向小时计时单元(78H-79H)
ACALL ADD1 ;小时计时单元加1小时
OUTT01:
POP PSW ;恢复状态字(出栈)
POP ACC ;恢复累加器
RETI ;中断返回 ;
;****************************************
;; 加1子 程 序 ;;
;****************************************
;
;
ADD1: MOV A,@R0 ;取当前计时单元数据到A
DEC R0 ;指向前一地址
SWAP A ;A中数据高四位与低四位交换
ORL A,@R0 ;前一地址中数据放入A中低四位
ADD A,#01H ;A加1操作
DA A ;十进制调整
MOV R3,A ;移入R3寄存器
ANL A,#0FH ;高四位变0
MOV @R0,A ;放回前一地址单元
MOV A,R3 ;取回R3中暂存数据
INC R0 ;指向当前地址单元
SWAP A ;A中数据高四位与低四位交换
ANL A,#0FH ;高四位变0
MOV @R0,A ;数据放入当削地址单元中
RET ;子程序返回
;
;****************************************
;; 分减1子 程 序 ;;
;****************************************
;
SUB1: MOV A,@R0 ;取当前计时单元数据到A
DEC R0 ;指向前一地址
SWAP A ;A中数据高四位与低四位交换
ORL A,@R0 ;前一地址中数据放入A中低四位
JZ SUB11
DEC A ;A减1操作
SUB111: MOV R3,A ;移入R3寄存器
ANL A,#0FH ;高四位变0
CLR C ;清进位标志
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] 下一页
本文关键字:程序 51单片机,单片机-工控设备 - 51单片机