MOV @R0, A ;存数
MOV A, R3 ;取回结果
INC R0 ;指针加一
SWAP A ;交换
ANL A, #0FH ;取结果数的高位
MOV @R0, A ;存数
RET
NOP
NOP
LJMP ERR ;软件陷阱
;
;**************
; 加1程序 ;
;**************
ADDONE: MOV R0, ADDRES ;移入被加数单元的地址
CLR IFDEC ;设定BCD子程序做加法
ACALL ADDBCD ;调用BCD子程序
CLR C ;判断被加数是否大于
MOV A, R3 ;最大值"MAX"
CJNE A, MAX, JGOVER
JGOVER: JC ENDADO
CLR A ;若大于"MAX",则清零
MOV @R0, A
DEC R0
MOV @R0, A
ENDADO: RET
NOP
NOP
LJMP ERR ;软件陷阱
;
;******************
; 调时快进程序 ;
;******************
QUICK: CLR LPLMOD ;设定显示方式不闪烁
CLR HPLMOD
ACALL ADDONE ;调用加1子程序
MOV L0, R4 ;将工作模式选择数移入显存
INC L0 ;加1转化成显示值
ACALL KEYDLY ;延时
ACALL DL100
JNB MKEY, QUICK ;判断键是否松开
SETB LPLMOD ;若松开则恢复闪烁显示方式
CJNE R6, #02H, ENDQUK
SETB HPLMOD
CLR LPLMOD
ENDQUK: RET
NOP
NOP
LJMP ERR ;软件陷阱
;
;
;******************
; 功能菜单程序 ;
;******************
MENU: MOV R6, #00H ; 初始化; R6 计功能键按键次数
MOV ADDRES, #05H ; 将 R5 的地址送入,以便于改变 R4 的值
MOV MAX, #04H ; 定义工作模式选择寄存器R4 的最大值
MOV DSPLYP, #L0 ;定义显示指针指向显存
SETB LPLMOD ;设定低两位数闪烁
CLR HPLMOD
MOV L0, R4 ;送显示数据"F-0X"
INC L0
MOV L1, #00H
MOV L2, #0BH
MOV L3, #00H
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
本文关键字:单片机 程序 定时器 51单片机,单片机-工控设备 - 51单片机