|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KPDPORT EQU P2 ;DATA PORT
FOR KEYPAD
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG
0000H ;STARTING
POINT FOR PROGRAM COUNTER
MOV
SP,#030H
CLR
F0
LCALL KEYREAD ;MAIN
FUNCTIONS OF KEYPAD
SETB F0
LCALL KEYREAD ;ALTERNATE
FUNCTIONS OF KEYPAD
WAIT4EVER:
JMP
WAIT4EVER
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KEYREAD:
MOV
DPTR,#00H
KEYDELAY:
INC
DPTR
MOV
A,DPH ;DELAY
AS PER USER RESPONSE
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
JB F0,SETPLUSSIGN
MOV A,#'B' ;'B'
RET
SETPLUSSIGN:
MOV A,#'+' ;'B'
RET
KEY12: CJNE A,#0B7H,KEY13
JB F0,SETMINUSSIGN
MOV A,#'C' ;'C'
RET
SETMINUSSIGN:
MOV A,#'-' ;'C'
RET
KEY13: CJNE A,#077H,KEY14
MOV A,#'D' ;'D'
RET
KEY14: MOV KPDPORT,#07FH
MOV A,KPDPORT
CJNE A,#07BH,KEY15
JB F0,SETDECIMAL
MOV A,#'F' ;'F'
RET
SETDECIMAL:
MOV A,#'.' ;'.'
RET
KEY15: CJNE A,#07DH,KEY16
MOV A,#'0' ;'0'
RET
KEY16: CJNE A,#07EH,JMPPRINT
MOV A,#'E' ;'E'
RET
JMPPRINT:
LJMP PRINT
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
END
|