;;;;;;;;;;;;;;;;;;;;;;HARDWARE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; PROCESSOR : AT-89C52/89S8252/89C55/89C55WD ; CRYSTAL : 22.1184MHz ; KEYPAD : 4X4 PASSIVE MATRIX KEYPAD ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; --------------- ; | 1 | 2 | 3 | A | ; |---|---|---|---| ; | 4 | 5 | 6 | B | ; |---|---|---|---| ; | 7 | 8 | 9 | C | ; |---|---|---|---| ; | E | 0 | F | D | ; --------------- ;;;;;;;;;;;;;;;;;;;;;;DIRECTIVES;;;;;;;;;;;;;;;;;;;;;;;;;;;; KPDPORT EQU P2 ;DATA PORT FOR KEYPAD ;;;;;;;;;;;;;;;;;;;;;;MAIN CODE;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ORG 0000H LJMP START ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; START: MOV SP,#020H LCALL KEYREAD WAIT: JMP WAIT ;;;;;;;;;;;;;;;;;;;;;;SUBROUTINES;;;;;;;;;;;;;;;;;;;;;;;;;;; KEYREAD: ;;;;;;;; MOV DPTR,#00H KEYDELAY: ;SOFT DELAY TO AVOID KEY DEBOUNCING INC DPTR MOV A,DPH NOP NOP CJNE A,#0FFH,KEYDELAY ;;;;;;; PRINT: MOV KPDPORT,#0EFH MOV A,KPDPORT KEY1: CJNE A,#0EEH,KEY2 MOV A,#'1' ;'1' RET KEY2: CJNE A,#0EDH,KEY3 MOV A,#'2' ;'2' RET KEY3: CJNE A,#0EBH,KEY4 MOV A,#'3' ;'3' RET KEY4: MOV KPDPORT,#0DFH MOV A,KPDPORT CJNE A,#0DEH,KEY5 ;'4' MOV A,#'4' RET KEY5: CJNE A,#0DDH,KEY6 MOV A,#'5' ;'5' RET KEY6: CJNE A,#0DBH,KEY7 MOV A,#'6' ;'6' RET KEY7: MOV KPDPORT,#0BFH MOV A,KPDPORT CJNE A,#0BEH,KEY8 MOV A,#'7' ;'7' RET KEY8: CJNE A,#0BDH,KEY9 MOV A,#'8' ;'8' RET KEY9: CJNE A,#0BBH,KEY10 MOV A,#'9' ;'9' RET KEY10: MOV KPDPORT,#0F7H MOV A,KPDPORT CJNE A,#0E7H,KEY11 MOV A,#'A' ;'A' RET KEY11: CJNE A,#0D7H,KEY12 MOV A,#'B' ;'B' RET KEY12: CJNE A,#0B7H,KEY13 MOV A,#'C' ;'C' RET KEY13: CJNE A,#077H,KEY14 MOV A,#'D' ;'D' RET KEY14: MOV KPDPORT,#07FH MOV A,KPDPORT CJNE A,#07BH,KEY15 MOV A,#'F' ;'F' RET KEY15: CJNE A,#07DH,KEY16 MOV A,#'0' ;'0' RET KEY16: CJNE A,#07EH,JMPPRINT MOV A,#'E' ;'E' RET JMPPRINT: LJMP PRINT ;;;;;;;;;;;;;;;;;;;;;;DIRECTIVES;;;;;;;;;;;;;;;;;;;;;;;;;;;; END