SCREEN IN
8051
ORG 00H
MOV P2, #0FFH
MOV A, P2
CJNE A, #0FH, K1
ANL A, #0FH
SJMP K2
ANL A, #0FH
SJMP K2
OVER1:
MOV P1, #0FEH
/Ground Row 0
MOV A, P2
ANL A, #0FH
/Ground Row 1
MOV A, P2
ANL A, #0FH
/Ground Row 2
MOV A, P2
ANL A, #0FH
/Ground Row 3
MOV A, P2
ANL A, #0FH
LJMP K2
;--------------------------------------Check which Column the Key belongs to---------------------------------------------------------------------------------ROW_0: MOV DPTR, #KCODE0
SJMP FIND
SJMP FIND
SJMP FIND
FIND: RRC A
JNC MATCH
INC DPTR
SJMP FIND
/Keep Searching
MATCH: CLR A
MOVC A,@A+DPTR
MOV R7, A
ACALL DISPLAY
LJMP K1
DELAY_KEY:
MOV R0, #0FFH
HERE3: MOV R1, #0FFH
HERE4: DJNZ R1, HERE4
RW BIT P3.6
EN BIT P3.7
;--------------------------------------------------------L.C.D Initialization-----------------------------------------------------------------------------------------HERE: MOV P1, #38H
ACALL Send_Command
MOV P1, #0EH
ACALL Send_Command
MOV P1, #01H
/Clear Display-Screen
ACALL Send_Command
;--------------------------------------------------Printing a Character or String-----------------------------------------------------------------------------------MOV A, R7
MOV P0, A
ACALL Send_Data
;-------------------------------------------------------DELAY-Subroutine-----------------------------------------------------------------------------------------DELAY_LCD:
CLR RS
SETB EN
ACALL DELAY
CLR EN
RET
SETB RS
SETB EN
ACALL DELAY
CLR EN
RET
;-----------------------------------------------ASCII Look-Up Table for each Row-----------------------------------------------------------------------------ORG 800H
KCODE0: DB '0', '1', '2', '3'
/ROW 0
/ROW 1
/ROW 2
/ROW 3
END