►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

Thu Aug 27 2015, 10:03 AM
Nilesh Thakre
anybody please help me ,i face problem reading a message and identify the string of read message (8051 uc with sim300 gsm modem i have use)
ajay_bhargav
Thu Aug 27 2015, 07:17 AM
@KRIZZA, make the circuit, and load hex file you're done.
Thu Aug 27 2015, 03:39 AM
sk nawal
arm control ckt
Mon Aug 24 2015, 02:11 AM
KRIZZA
@ExperimenterUK BUILD PROJECT LIKE THIS
gkn06
Thu Aug 20 2015, 03:17 AM
hello anybody please
Wed Aug 19 2015, 09:48 AM
Kiruba
I am new to ARM Development..I need help
Tue Aug 18 2015, 09:34 AM
mairja naser
pic30f2010 ic usb copy
ExperimenterUK
Mon Aug 17 2015, 10:32 PM
@krizza build what ?
Mon Aug 17 2015, 10:44 AM
Adonis Canlom
Hello, I’d like to inquire if it’s possible to purchase advertising space on 8051projects.net. If there is any space available please let me know and we could discuss further details. I’m looking forward to your positive reply. Thanks, Adonis
Sun Aug 16 2015, 12:35 PM
krizza
I already have th ic but what is the other materials

Downloads

Comments

syahaikas102
Wed Aug 26 2015, 02:03 PM
iscode
Fri Aug 21 2015, 11:19 PM
JunkmanXL
Thu Aug 20 2015, 11:55 AM
pari@3120
Thu Aug 20 2015, 07:07 AM
gkn06
Wed Aug 19 2015, 09:50 AM
mopatihanuman
Tue Aug 18 2015, 12:47 PM
gebrish
Thu Aug 13 2015, 08:26 AM
casha
Fri Aug 07 2015, 07:42 AM

Online

Guests: 50, Members: 0 ...

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

Members: 37687
Newest member: syahaikas102
Forum Activity
nordic Avatar
Posted By nordic
Mon Aug 31 2015, 03:37 PM
Hello, I need a help for my project. I want to cha...
ajay_bhargav Avatar
Posted By ajay_bhargav
Mon Aug 31 2015, 06:45 AM
[Topic moved to PIC microcontroller discussion for...
ajay_bhargav Avatar
Posted By ajay_bhargav
Mon Aug 31 2015, 06:44 AM
can you provide code for "USARTReadData();" I doub...
ajay_bhargav Avatar
Posted By ajay_bhargav
Mon Aug 31 2015, 06:43 AM
Here are the sample codes: Attach...
pravin_35 Avatar
Posted By pravin_35
Sat Aug 29 2015, 08:25 AM
Hi every one ,I need a help how to compare the Usa...
gkn06 Avatar
Posted By gkn06
Thu Aug 27 2015, 02:52 PM
ok! to start with which IDE or compiler you're pla...
ajay_bhargav Avatar
Posted By ajay_bhargav
Thu Aug 27 2015, 07:05 AM
ok! to start with which IDE or compiler you're pla...
abdul991 Avatar
Posted By abdul991
Sat Aug 22 2015, 06:07 PM
1. Its a pratical task...2. SNMP manager is implem...
gkn06 Avatar
Posted By gkn06
Wed Aug 19 2015, 10:18 AM
My project is to interface several serial interfac...
ExperimenterUK Avatar
Posted By ExperimenterUK
Mon Aug 17 2015, 10:13 PM
Let me start by saying that I have no experience w...