按键控制数码管显示程序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
;----------按键程序----------------------------K7 EQU 20H ;按键标志位,按键按下为 1,否则为 0 K6 EQU 21H K5 EQU 22H K4 EQU 23H K3 EQU 24H K2 EQU 25H F1 EQU 26H F2 EQU 27H ORG 0000H AJMP INIT ORG 0030H ;------------初始化----------------------------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
BACK2: TABLE:
CLR K4 CLR K3 CLR K2 RET DB 0C0h,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;共阳 EN位
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
AJMP LOOP KK2: LCALL K2ISR AJMP LOOP DIS: LCALL DISPLAY LOOP: LJMP MAIN ;------------增 1 子程序---------K7ISR: INC R2 CJNE R2,#10,BACK0 MOV R2,#00H INC R3 CJNE R3,#10,BACK0 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
BACK2: TABLE:
CLR K4 CLR K3 CLR K2 RET DB 0C0h,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;共阳 EN位
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
AJMP LOOP KK2: LCALL K2ISR AJMP LOOP DIS: LCALL DISPLAY LOOP: LJMP MAIN ;------------增 1 子程序---------K7ISR: INC R2 CJNE R2,#10,BACK0 MOV R2,#00H INC R3 CJNE R3,#10,BACK0 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