►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

naqirizvi
Wed Jan 28 2015, 08:08 AM
the web theme is too much buggy and heavy , admin please change it to simple theme, so that user can browse quickly
naqirizvi
Wed Jan 28 2015, 08:07 AM
some one please share software name or ebooks related to avr
bhagyesh.bhavasar
Tue Jan 27 2015, 11:06 AM
i want to share my project but there is problem occurred during postng
bhagyesh.bhavasar
Tue Jan 27 2015, 05:58 AM
@ExperimentalUK i have used that purple button but same as previous it takes me to blank page
ExperimenterUK
Sun Jan 25 2015, 08:10 PM
This box is for chat. Post problems in a suitable forum
ExperimenterUK
Sun Jan 25 2015, 08:04 PM
@gaurav.k Use the purple "Post reply" button. Green buttons often present a fresh edit box.
ExperimenterUK
Sun Jan 25 2015, 07:33 PM
@avianash..we have no entry for avianash.. Are you sure that is your login name ?
Fri Jan 23 2015, 04:29 AM
lolokijuh
DJ Bakal tulungan mo ako s IC Tester
Fri Jan 23 2015, 04:29 AM
lolokijuh
sir help about IC Tester
Thu Jan 22 2015, 01:59 PM
apparao majji
could you please help in programming

Downloads

Comments

nawfel
Sat Jan 17 2015, 07:27 AM
Rohi123
Sat Jan 10 2015, 11:00 AM
safakarici
Fri Jan 09 2015, 08:55 PM
Nikita_Pinjare
Thu Jan 08 2015, 03:10 PM
mayank058
Wed Jan 07 2015, 05:43 AM
Overeating
Tue Jan 06 2015, 05:56 AM
trancebreaker11
Sun Jan 04 2015, 07:42 AM
akash474001
Thu Jan 01 2015, 05:49 AM

Online

Guests: 49, Members: 0 ...

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

Members: 37573
Newest member: nawfel
Forum Activity
Karan123 Avatar
Posted By Karan123
Wed Jan 28 2015, 05:01 AM
Hello,I have changed schematic according to this c...
naqirizvi Avatar
Posted By naqirizvi
Tue Jan 27 2015, 07:10 PM
Have you done anything with devices like the ATme...
naqirizvi Avatar
Posted By naqirizvi
Tue Jan 27 2015, 07:09 PM
I am using avr gcc compiler and avrstudio 4 .I am ...
naqirizvi Avatar
Posted By naqirizvi
Tue Jan 27 2015, 05:43 PM
I have read that tutorial I am using AVR GCC Compi...
sairfan1 Avatar
Posted By sairfan1
Tue Jan 27 2015, 03:41 PM
Hi,Recently i bought saleae logic analyzer clone f...
mayank058 Avatar
Posted By mayank058
Tue Jan 27 2015, 06:05 AM
dear sir, I was working on a project ...
ExperimenterUK Avatar
Posted By ExperimenterUK
Sun Jan 25 2015, 08:19 PM
According to this page the output is fairly linear...
mayank058 Avatar
Posted By mayank058
Thu Jan 22 2015, 12:16 PM
dear sir, Now i want to generate a si...
mayank058 Avatar
Posted By mayank058
Tue Jan 20 2015, 06:40 AM
dear sir, Now its working properly. Th...
ajay_bhargav Avatar
Posted By ajay_bhargav
Tue Jan 20 2015, 04:36 AM