| ??? 03/15/02 06:39 Read: times |
#20869 - Interfacing PushButton |
Here is part of the 4x3 telephone keyboard routine.
;4x4.A51 ;4x3 Telepone keypad is used ;written by C.S.Kannan ; ; SFR definitions ; PSW EQU 0D0H P0 EQU 080H P1 EQU 090H P2 EQU 0A0H P3 EQU 0B0H DPL EQU 082H DPH EQU 083H IE EQU 0A8H ACC EQU 0E0H BCC EQU 0F0H SP EQU 081H ; PCON EQU 087H TCON EQU 088H TMOD EQU 089H TL0 EQU 08AH TL1 EQU 08BH TH0 EQU 08CH TH1 EQU 08DH ; SCON EQU 098H SBUF EQU 099H ; ;DELAY ; T0VALU EQU 50 ;250 MICROSEC FOR TIMER0 TIME1 EQU 10 ;NUMBER OF LOOPS FOR COUNT1 TIME2 EQU 10 ;NUMBER OF LOOPS FOR COUNT2 ; T1VALU EQU 128 ; ; Bit Definitions ; T0 EQU 0B4H T1 EQU 0B5H ; ; RAM Definitions ORG 020H KEYOK EQU 020H FLAG EQU 021H KFLAG EQU 022H MUS EQU 023H ORG 030H OLDKEY DS 1 KBDBNC DS 1 TEMP DS 1 COUNT1 DS 1 COUNT2 DS 1 CNT DS 1 KBUF DS 1 STACK DS 1 ; ORG 0000H LJMP START START: MOV TH0,#256-T0VALU MOV TL0,#256-T0VALU MOV TMOD,#022H MOV COUNT2,#TIME2 MOV COUNT1,#TIME1 MOV SP,#STACK CLR FLAG CLR KFLAG MOV P3,#0EFH MOV P1,#0FFH KBDISR: MOV TEMP,#10H MOV P3,#0FFH MOV R2,#0F7H MOV R3,#0 MOV A,R2 MOV R0,OLDKEY MOV R1,KBDBNC NXTSCAN: ORL A,#0F0H MOV P1,A ACALL DELAY MOV A,P1 ORL A,#0FH CPL A JNZ KEYPRSD MOV A,R2 RRC A MOV R2,A JC NXTSCAN RET KEYPRSD: MOV R3,A MOV A,R2 CPL A ADD A,R3 RR A RR A ANL A,#7FH MOV R3,A XRL A,@R0 JNZ RETVAL ACALL DELAY1 MOV @R0,#0 RET RETVAL: MOV A,R3 CLR C SUBB A,#22H JNZ CHK SETB KFLAG RET CHK MOV A,R3 CLR C SUBB A,#30H JNZ DIS SETB KFLAG RET DIS MOV A,R3 MOV @R0,A MOV DPTR,#CONV MOVC A,@A+DPTR RET DELAY MOV CNT,#05 L1 MOV BCC,#30H L2 DJNZ BCC,L2 DJNZ CNT,L1 RET DELAY1 MOV CNT,#0FFH LL1 MOV BCC,#0FFH LL2 DJNZ BCC,LL2 DJNZ CNT,LL1 RET CONV: DB 00,0C0H,00,00,00,00,0F9H,00,00,00,99H,00,00,00,00,00 DB 00,00,0F8H,00,0B0H,00,00,00,82H,00,00,00,00,00,00,00 DB 090H,00,88H,00,00,0A4H,00,00,00,92H,00,00,00,00,00,00 DB 83H,80H End Regards....kannan |
| Topic | Author | Date |
| Interfacing PushButton | 01/01/70 00:00 | |
| RE: Interfacing PushButton | 01/01/70 00:00 | |
| RE: Interfacing PushButton | 01/01/70 00:00 | |
| RE: Interfacing PushButton | 01/01/70 00:00 | |
Interfacing PushButton | 01/01/70 00:00 |



