按键控制数码管显示程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
;----------按键程序-----------------------------
K7EQU20H;按键标志位,按键按下为1,否则为0
K6EQU21H
K5EQU22H
K4EQU23H
K3EQU24H
K2EQU25H
F1EQU26H
F2EQU27H
ORG0000H
AJMP INIT
ORG0030H
;------------初始化-----------------------------
INIT:MOV SP,#60H
MOV P3,#0FFH
MOV DPTR,#TABLE
MOV R0,#00H
CLR K7
CLR K6
CLR K5
CLR K4
CLR K3
CLR K2
CLR F1
CLR F2
;------------主程序--------------------------
MAIN:LCALL KTEST;调用检测按键程序
JB K7,KK7
JB K6,KK6
JB K5,KK5
JB K4,KK4
JB K3,KK3
JB K2,KK2
JB F1,LOOP
AJMP DIS
KK7:LCALL K7ISR
AJMP DIS
KK6:LCALL K6ISR
AJMP DIS
KK5:LCALL K5ISR
AJMP LOOP
KK4:LCALL K4ISR
AJMP LOOP
KK3:LCALL K3ISR
AJMP LOOP
KK2:LCALL K2ISR
AJMP LOOP
DIS:LCALL DISPLAY
LOOP:LJMP MAIN
;------------增1子程序----------
K7ISR:INC R2
CJNE R2,#10,BACK0;R2是个位
MOV R2,#00H
INC R3
CJNE R3,#10,BACK0;R3是十位
MOV R3,#00H
BACK0:RET
;------------减1子程序----------
K6ISR:CJNE R2,#0,NEXT2
CJNE R3,#0,NEXT3
MOV R3,#9
MOV R2,#9
AJMP BACK7
NEXT2:DEC R2
AJMP BACK7
NEXT3:DEC R3
MOV R2,#9
BACK7:RET
;------------按键服务子程序----------
K5ISR:CLR P1.4;开继电器
RET
K4ISR:SETB P1.4;关继电器
RET
K3ISR:CLR P1.5;开蜂鸣器
RET
K2ISR:SETB P1.5;关蜂鸣器
RET
;------------显示子程序----------
DISPLAY:MOV P1,#0FFH
MOV A,R3
MOVC A,@A+DPTR
MOV P0,A
MOV P1,#0FEH
ACALL DELAY
MOV P1,#0FFH
MOV A,R2
MOVC A,@A+DPTR
MOV P0,A
MOV P1,#0FDH
ACALL DELAY
MOV P1,#0FFH
RET
;------------延时子程序----------DELAY:MOV R6,#0FFH
LOAD:MOV R5,#0FH
DJNZ R5,$
DJNZ R6,LOAD
RET
;------------按键检测子程序-----------KTEST:JB P3.7,KEY6
JNB P3.7,$
SETB K7
CLR F1
AJMP BACK2
KEY6:JB P3.6,KEY5
JNB P3.6,$
SETB K6
CLR F1
AJMP BACK2
KEY5:JB P3.5,KEY4
JNB P3.5,$
SETB K5
SETB F1
AJMP BACK2
KEY4:JB P3.4,KEY3
JNB P3.4,$
SETB K4
SETB F1
AJMP BACK2
KEY3:JB P3.3,KEY2
JNB P3.3,$
SETB K3
SETB F1
AJMP BACK2
KEY2:JB P3.2,BACK1
JNB P3.2,$
SETB K2
SETB F1
AJMP BACK2
BACK1:CLR K7
CLR K6
CLR K5
CLR K4
CLR K3
CLR K2
BACK2:RET
TABLE:DB0C0h,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;共阳END