4ร4 Matrix Keypad Interfacing with LCD (Assembly Concept)
This experiment demonstrates interfacing of a 4ร4 matrix keypad with an LCD display using the 8051 microcontroller. Key scanning is done by grounding rows sequentially and reading columns. The detected key is converted to ASCII and displayed on the LCD.
; ROWS -> P1.0 - P1.3 ; COLS -> P1.4 - P1.7 ; LCD DATA -> P2 ; RS -> P3.0 ; EN -> P3.1 ORG 0000H ACALL LCD_INIT MAIN: ACALL GET_KEY MOV A,R7 ACALL LCD_DATA SJMP MAIN ; -------- KEYPAD SCAN -------- GET_KEY: MOV P1,#0F0H ; Columns high ROW1: MOV P1,#0FEH JB P1.4,ROW2 MOV R7,#'1' RET ROW2: MOV P1,#0FDH JB P1.5,ROW3 MOV R7,#'5' RET ROW3: MOV P1,#0FBH JB P1.6,ROW4 MOV R7,#'9' RET ROW4: MOV P1,#0F7H JB P1.7,GET_KEY MOV R7,#'D' RET ; -------- LCD ROUTINES -------- LCD_INIT: MOV P2,#38H ACALL CMD MOV P2,#0CH ACALL CMD MOV P2,#06H ACALL CMD MOV P2,#01H ACALL CMD RET CMD: CLR P3.0 SETB P3.1 CLR P3.1 ACALL DELAY RET LCD_DATA: SETB P3.0 SETB P3.1 CLR P3.1 ACALL DELAY RET DELAY: MOV R5,#255 DJNZ R5,$ RET END