►Introduction

Keypads are a part of HMI or Human Machine Interface and play really important role in a small embedded system where human interaction or human input is needed. Martix keypads are well known for their simple architecture and ease of interfacing with any microcontroller. In this part of tutorial we will learn how to interface a 4x4 matrix keypad with AVR and 8051 microcontroller. Also we will see how to program then in Assembly and C.


►Constructing a Matrix Keypad

Constuction of a keypad is really simple. As per the outline shown in the figure below we have four rows and four columns. In between each overlapping row and column line there is a key.


4x4 matrix Keypad outline

So keeping this outline we can constuct a keypad using simple SPST Switches as shown below:


4x4 matrix Keypad schematic

Now our keypad is ready, all we have to do is connect the rows and columns to a port of microcontroller and program the controller to read the input.


►Scanning a Matrix Keypad

There are many methods depending on how you connect your keypad with your controller, but the basic logic is same. We make the coloums as i/p and we drive the rows making them o/p, this whole procedure of reading the keyboard is called scanning.


In order to detect which key is pressed from the matrix, we make row lines low one by one and read the coloums. Lets say we first make Row1 low, then read the columns. If any of the key in row1 is pressed will make the corrosponding column as low i.e if second key is pressed in Row1, then column2 will give low. So we come to know that key 2 of Row1 is pressed. This is how scanning is done.


So to scan the keypad completely, we need to make rows low one by one and read the columns. If any of the button is pressed in a row, it will take the corrosponding column to a low state which tells us that a key is pressed in that row. If button 1 of a row is pressed then Column 1 will become low, if button 2 then column2 and so on...


Now lets move on to the programming part of keypad in our next section.

◄ Back to Index  |  Connecting a Keypad ►

Conversation

ExperimenterUK
Thu Jul 30 2015, 11:41 PM
@Muhammad Aarshad build what ?
Wed Jul 29 2015, 06:42 PM
Muhammad Aarshad
Hello I want to build it, but I don't know how can I program the micro controller. Can You send me the code of the IC? Thanks in advance My e-mail: [email protected]
Sat Jul 25 2015, 10:37 PM
Arnali
What does the cross means? The ones from pin 7,8,9,10 of the LCD?
Fri Jul 24 2015, 09:53 AM
HARSHAL PATIL
....
shyam
Thu Jul 23 2015, 01:42 PM
hi Ajay
ajay_bhargav
Mon Jul 20 2015, 04:38 AM
@Rohit Biradar, I am glad my tutorial helped
Thu Jul 16 2015, 06:19 PM
Rohit Biradar
Thanks a lot publisher of this tutorial. Everybody tells about the nibble sending methods and the command set for 4-wire lcd interface. You are the first to tell me about the most important part that is resetting the lcd. This thing got me all day. Now I can sleep in peace. Thanks once again. Million thanks.
Thu Jul 16 2015, 12:24 PM
Baby
my project is related to control the door in dam. by keil program how can i control the same.
Thu Jul 16 2015, 09:12 AM
rutuja
plzzz giveme more details about this project.if i want to type any words then how it will be happen bcoz no more letters are on remote.suggest about it
Sat Jul 11 2015, 09:55 AM
Abhijit Deshmukh
ok

Downloads

Comments

albatain
Fri Jul 31 2015, 02:58 AM
KDN
Wed Jul 29 2015, 05:14 AM
Tanvir.
Fri Jul 24 2015, 07:59 AM
erummumtaz
Thu Jul 23 2015, 10:47 PM
balvant
Thu Jul 16 2015, 03:56 PM
seoulmak
Mon Jul 13 2015, 01:21 PM
SHIVKHUMAR
Sat Jul 11 2015, 04:10 AM
Nals99
Fri Jul 03 2015, 08:33 AM

Online

Guests: 30, Members: 0 ...

most ever online: 182184
(Members: , Guests: 182184) on 06 Aug 2010: 05:37 AM

Members: 37679
Newest member: albatain
Forum Activity
Mc_Comet32 Avatar
Posted By Mc_Comet32
Sun Jul 26 2015, 05:49 PM
ExperimenterUK Avatar
Posted By ExperimenterUK
Thu Jul 23 2015, 08:14 PM
Try this link.Basically find the tacho output pin...
seoulmak Avatar
Posted By seoulmak
Mon Jul 20 2015, 03:44 PM
ajay_bhargav Avatar
Posted By ajay_bhargav
Mon Jul 20 2015, 04:42 AM
Ok then, check if you did not mention "LCD_ClearSc...
ajay_bhargav Avatar
Posted By ajay_bhargav
Mon Jul 20 2015, 04:41 AM
I am assuming you're talking about the small CPU f...
ajay_bhargav Avatar
Posted By ajay_bhargav
Mon Jul 20 2015, 04:36 AM
Amit Kumar Das Avatar
Posted By Amit Kumar Das
Sun Jul 19 2015, 04:17 AM
Yes they are fine. I have included everything. Una...
seoulmak Avatar
Posted By seoulmak
Fri Jul 17 2015, 08:41 AM
yes, but i need more information to connect the f...
balvant Avatar
Posted By balvant
Thu Jul 16 2015, 04:07 PM
ExperimenterUK Avatar
Posted By ExperimenterUK
Wed Jul 15 2015, 05:42 PM
Is this a project listed on this site ?