Hi all…. Today we will see 8051 Keypad Interfacing. Before that i would suggest you to go through this link to know about the Keypad characteristics. And i assumed that you know LCD interfacing. Other wise you can see that LCD interfacing tutorials in our website. Let’s start…

# Components Required

• 4×4 Keypad or 3×4 Keypad (Here we will discuss both codes)
• LCD Module (To print the Keys pressed)
• 8051 Microcontroller

## Circuit Diagram

LCD

• RS  –  P3.5
• RW  – P3.6
• EN  –  P3.7
• Data Lines – P2

• R1 – P1.0
• R2 – P1.1
• R3 – P1.2
• R4 – P1.3
• C1 – P1.4
• C2 – P1.5
• C3 – P1.6
• C4 – P1.7

## Code

This code might be looking like big. But concept wise it is very easy. Please go through this code.

## Code Explanation

I assumed that you already know about the LCD interfacing.  Now look this line in keypad function,

In this code i’m taking row as a output and column as a input.

1. In first line I’m assigning high to all column. (c1=c2=c3=c4=1;)
2. Then i’m assigning first row to zero and keeps remaining row as high. (r1=0;r2=1;r3=1;r4=1;)
3. Then i’m checking first column is zero or not. If it is zero then i should wait until that button depressed. Then i can know the pressed key.
4. If not i’m checking next column. Like that i’m checking all rows and column.
5. If no keys pressed in the row1, then i’m making row2 as zero. Remaining rows are high. Then follow the above steps.

## Circuit Diagram

LCD

• RS  –  P3.5
• RW  – P3.6
• EN  –  P3.7
• Data Lines – P2

• R1 – P1.0
• R2 – P1.1
• R3 – P1.2
• R4 – P1.3
• C1 – P1.4
• C2 – P1.5
• C3 – P1.6

## Output

1. Whatever i’m pressing in the Keypad that character should displayed in the Serial terminal.
2. Connect 8 LEDs into Port 0. If i press 0, No LEDs will be ON. If i press 1, 1 LED should be ON. If i press 2, 2 LEDs should ON. Like that upto 8 numbers you write the program.
0 0 vote
Article Rating
Subscribe
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

1 Comment
Inline Feedbacks