1、4个按键驱动程序;4个按键驱动程序;4X4 按键驱动程序POUT EQU P2KPIN EQU P1PDIG1 EQU P3.0VAL DATA 30HKID DATA 31HKTMP DATA 32H;*;按键扫描程序;模块应用变量;硬件连接端口:KPIN;返回按键值:VAL;按键处理应用功能程序:KEYPFUN;*;内部使用变量定义:KID=0,KTMP=0 MOV KID,#0 MOV KTMP,#0 MOV VAL,#0;*KEYS: MOV DPTR,#KJMP MOV A,KID RL A JMP A+DPTRKJMP:AJMP KEYEN AJMP KEYDEL AJMP KEY
2、SCAN AJMP KEYUP AJMP KEYFUN MOV KID,#0 RETKS: MOV KPIN,#0FH NOP NOP MOV A,KPIN ANL A,#0FH XRL A,#0FH RETKEYEN: ACALL KS JZ KENEXT MOV KTMP,#0 INC KIDKENEXT: RETKEYDEL: INC KTMP MOV A,KTMP CJNE A,#30,KDEXT MOV KTMP,#0 INC KIDKDEXT: RETKEYUP: ACALL KS JNZ KUPEXT INC KIDKUPEXT: RET;*;KPIN:0 0 0 0 1 1 1
3、 1 =0FH;KVAL:0 0 0 0 1 1 1 1 =F;KVAL:0 0 0 0 1 1 1 0 =E;KVAL:0 0 0 0 1 1 0 1 =D;KVAL:0 0 0 0 1 1 0 0 =C;KVAL:0 0 0 0 1 0 1 1 =B;KVAL:0 0 0 0 1 0 1 0 =A;KVAL:0 0 0 0 1 0 0 1 =9;KVAL:0 0 0 0 1 0 0 0 =8;KVAL:0 0 0 0 0 1 1 1 =7;KVAL:0 0 0 0 0 1 1 0 =6;KVAL:0 0 0 0 0 1 0 1 =5;KVAL:0 0 0 0 0 1 0 0 =4;KVAL
4、:0 0 0 0 0 0 1 1 =3;KVAL:0 0 0 0 0 0 1 0 =2;KVAL:0 0 0 0 0 0 0 1 =1KEYSCAN: ACALL KS JZ KSEXT MOV VAL,A INC KID RETKSEXT:MOV KID,#0 RET;*;KEYFUN: MOV KID,#0 MOV DPTR,#KFUN MOV A,VAL RL A JMP A+DPTRKFUN:AJMP KFUNL AJMP K1FUN AJMP K2FUN AJMP K3FUN AJMP K4FUN MOV VAL,#0 RETKFUNL: NOP RETK1FUN: RETK2FUN
5、: RETK3FUN: RETK4FUN: RET;*;*;KPIN:0 0 0 0 1 1 1 1 =0FH;KVAL:0 0 0 0 1 0 0 0 =1;KVAL:0 0 0 0 0 1 0 0 =2;KVAL:0 0 0 0 0 0 1 0 =3;KVAL:0 0 0 0 0 0 0 1 =4;*KEYSCAN: ACALL KS JZ KSEXT MOV R4,#4 CLR CKSLP:RRC A JC KVAL DJNZ R4,KSLPKSEXT:MOV KID,#0 RETKVAL:MOV VAL,R4 INC KID RET ;*;*;KPIN:0 0 0 0 1 1 1 1
6、=0FH;KVAL:0 0 0 0 1 0 0 0 =4;KVAL:0 0 0 0 0 1 0 0 =3;KVAL:0 0 0 0 0 0 1 0 =2;KVAL:0 0 0 0 0 0 0 1 =1KEYSCAN: ACALL KS JZ KSEXT MOV R4,#0 CLR CKSLP:RRC A JC KVAL INC R4 CJNE R4,#4,KSLPKSEXT:MOV KID,#0 RETKVAL:INC R4 MOV VAL,R4 INC KID RET ;*;可用于拔码盘;*;KPIN:0 0 0 0 1 1 1 1 =0FH;KVAL:0 0 0 0 1 1 1 1 =F;
7、KVAL:0 0 0 0 1 1 1 0 =E;KVAL:0 0 0 0 1 1 0 1 =D;KVAL:0 0 0 0 1 1 0 0 =C;KVAL:0 0 0 0 1 0 1 1 =B;KVAL:0 0 0 0 1 0 1 0 =A;KVAL:0 0 0 0 1 0 0 1 =9;KVAL:0 0 0 0 1 0 0 0 =8;KVAL:0 0 0 0 0 1 1 1 =7;KVAL:0 0 0 0 0 1 1 0 =6;KVAL:0 0 0 0 0 1 0 1 =5;KVAL:0 0 0 0 0 1 0 0 =4;KVAL:0 0 0 0 0 0 1 1 =3;KVAL:0 0 0 0
8、 0 0 1 0 =2;KVAL:0 0 0 0 0 0 0 1 =1KEYSCAN: ACALL KS JZ KSEXT MOV VAL,A INC KID RETKSEXT:MOV KID,#0 RET;*;*;*;KPIN: D7 - D0 =0FEH; D7 D6 D5 D4; D0 0 1 2 3; D1 4 5 6 7; D2 8 9 A B; D3 C D E FKEYSCAN: ACALL KS JZ KSCEXT MOV R2,#0FEH MOV R3,#0 KS1:MOV KPIN,R2 NOP NOP MOV A,KPIN MOV R4,#4 SETB CKS2:RLC
9、A JNC KVAL INC R3 DJNZ R4,KS2 MOV A,R2 JNB ACC.3,KSCEXT RL A MOV R2,A SJMP KS1KVAL: MOV VAL,R3 INC KID RETKSCEXT: MOV KID,#0 RET;*;*;KPIN: D7 - D0 =0EFH; D7 D6 D5 D4; D0 C 8 4 0; D1 D 9 5 1; D2 E A 6 2; D3 F B 7 3KEYSCAN: ACALL KS JZ KSCEXT MOV R2,#0EFH MOV R3,#0 KS1:MOV KPIN,R2 NOP NOP MOV A,KPIN M
10、OV R4,#4 SETB CKS2:RRC A JNC KVAL INC R3 DJNZ R4,KS2 MOV A,R2 JNB ACC.7,KSCEXT RL A MOV R2,A SJMP KS1KVAL: MOV VAL,R3 INC KID RETKSCEXT: MOV KID,#0 RET;*;*;KPIN: D7 - D0 =0EFH; D7 D6 D5 D4; D0 F B 7 3; D1 E A 6 2; D2 D 9 5 1; D3 C 8 4 0KEYSCAN: ACALL KS JZ KSCEXT MOV R2,#0EFH MOV R3,#0 KS1:MOV KPIN,
11、R2 NOP NOP MOV A,KPIN ANL A,#0FH XRL A,#0FH JZ KS3 MOV R4,#4 SETB CKS2:RRC A JC KVAL DJNZ R4,KS2KSCEXT: MOV KID,#0 RETKS3:MOV A,R2 JNB ACC.7,KSCEXT RL A INC R3 MOV R2,A SJMP KS1KVAL: MOV A,R3 RL A RL A DEC A ADD A,R4 MOV VAL,A INC KID RET;*;*;KPIN: D7 - D0 =0EFH; D7 D6 D5 D4; D0 C 8 4 0; D1 D 9 5 1;
12、 D2 E A 6 2; D3 F B 7 3KEYSCAN: ACALL KS JZ KSCEXT MOV R2,#0EFH MOV R3,#0 KS1:MOV KPIN,R2 NOP NOP MOV A,KPIN ANL A,#0FH XRL A,#0FH JZ KS3 MOV R4,#0 SETB CKS2:RRC A JC KVAL INC R4 CJNE R4,#4,KS2KSCEXT: MOV KID,#0 RETKS3:MOV A,R2 JNB ACC.7,KSCEXT RL A INC R3 MOV R2,A SJMP KS1KVAL: MOV A,R3 RL A RL A A
13、DD A,R4 MOV VAL,A INC KID RET;*;*;KPIN: D7 - D0 =0FEH; D7 D6 D5 D4; D0 0 1 2 3; D1 4 5 6 7; D2 8 9 A B; D3 C D E FKEYSCAN: ACALL KS JZ KSCEXT MOV R2,#0FEH MOV R3,#0 KS1:MOV KPIN,R2 NOP NOP MOV A,KPIN ANL A,#0F0H XRL A,#0F0H JZ KS3 MOV R4,#0 SETB CKS2:RLC A JC KVAL INC R4 CJNE R4,#4,KS2KSCEXT: MOV KI
14、D,#0 RETKS3:MOV A,R2 JNB ACC.3,KSCEXT RL A INC R3 MOV R2,A SJMP KS1KVAL: MOV A,R3 RL A RL A ADD A,R4 MOV VAL,A INC KID RET;*;*;KPIN: D7 - D0 =0EFH; D7 D6 D5 D4; D0 3 2 1 0; D1 7 6 5 4; D2 B A 9 8; D3 F E D CKEYSCAN: ACALL KS JZ KSCEXT MOV R2,#0FEH MOV R3,#0 KS1:MOV KPIN,R2 NOP NOP MOV A,KPIN ANL A,#
15、0F0H XRL A,#0F0H JZ KS3 MOV R4,#4 SETB CKS2:RLC A JC KVAL DJNZ R4,KS2KSCEXT: MOV KID,#0 RETKS3:MOV A,R2 JNB ACC.3,KSCEXT RL A INC R3 MOV R2,A SJMP KS1KVAL: MOV A,R3 RL A RL A ADD A,R4 DEC A MOV VAL,A INC KID RET;*;*;KPIN: D7 - D0 =0EFH; D7 D6 D5 D4; D0 C 8 4 0; D1 D 9 5 1; D2 E A 6 2; D3 F B 7 3KEYS
16、CAN: ACALL KS JZ KSCEXT MOV R2,#0FEH MOV R3,#0 KS1:MOV KPIN,R2 NOP NOP JB KPIN.4,KSL1 MOV A,#0 SJMP KVALKSL1:JB KPIN.5,KSL2 MOV A,#4 SJMP KVALKSL2:JB KPIN.6,KSL3 MOV A,#8 SJMP KVALKSL3:JB KPIN.7,KS2 MOV A,#12KVAL: ADD A,R3 MOV VAL,A INC KID RETKSCEXT: MOV KID,#0 RETKS2:MOV A,R2 JNB ACC.3,KSCEXT RL A
17、 INC R3 MOV R2,A SJMP KS1;*;*;KPIN: D7 - D0 =0FEH; D7 D6 D5 D4; D0 3 2 1 0; D1 7 6 5 4; D2 B A 9 8; D3 F E D CKEYSCAN: ACALL KS JZ KSCEXT MOV R2,#0EFH MOV R3,#0 KS1:MOV KPIN,R2 NOP NOP JB KPIN.0,KSL1 MOV A,#0 SJMP KVALKSL1:JB KPIN.1,KSL2 MOV A,#4 SJMP KVALKSL2:JB KPIN.2,KSL3 MOV A,#8 SJMP KVALKSL3:JB KPIN.3,KS2 MOV A,#12KVAL: ADD A,R3 MOV VAL,A INC KID RETKSCEXT: MOV KID,#0 RETKS2:MOV A,R2 JNB ACC.7,KSCEXT RL A INC R3 MOV R2,A SJMP KS1;*
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1