►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

Tue May 03 2016, 11:52 AM
Cecylka
Ogromne dzięki za ten artykuł. Treść stoi na nader wysokim poziomie i wiem, co mówię, albowiem sam interesuję się podobnymi zagadnieniami. W związku z tym jeśli ktoś chce się dowiedzieć więcej na temat opisanego przedmiotu to zachęcam do odwiedzin - kredyt123.pl - kredyt hipoteczny
Mon May 02 2016, 06:33 PM
Mirela
Wielkie dzięki za powyższy post. Treść stoi na niesłychanie wysokim poziomie i wiem, co mówię, gdyż sam interesuję się podobnymi zagadnieniami. Wobec tego jeżeli ktoś chce się dowiedzieć więcej w temacie opisanego przedmiotu to zachęcam do wejścia - kredyt123.pl - oddłużanie - Klaudyna -
ExperimenterUK
Thu Apr 28 2016, 01:15 AM
We don't provide project reports. We try to help you do your project
Wed Apr 27 2016, 06:02 PM
abebe tigabu
help me by sending final thesis project automatoc green house effect control by arduino or by at89c51 microcontroller
Mon Apr 25 2016, 03:40 AM
abhinav kumar
Hey there, i want to project report on the RFID BASED SECURITY SYSTEM using AVR microcontroler.please mail as soon as possible. Thank you
Mon Apr 18 2016, 01:07 PM
umesh parekh
i want c code for rfid based car parking system using 8051 and parking slot indicator.if u have please email me
Mon Apr 18 2016, 10:35 AM
Prakash Rao
i need to work on OCR for Numbers, could not find any such projects done using 8051
Wed Apr 13 2016, 07:27 PM
Sanket GUPTA
hey i am new to embedded system and i want to pursue ms in embedded, i have 2 years before i can apply for ms.. in two years can i gain sufficient knowledge. i know c and c++
ExperimenterUK
Wed Apr 13 2016, 05:15 PM
@Suraj.. the method will work ,but edit to suit your compiler
Wed Apr 13 2016, 01:05 AM
Suraj Sridhar
Can I use the LCD Device driver code for STM32F401RET6?

Downloads

Comments

pd
Sun May 01 2016, 01:35 AM
uk2308
Fri Apr 29 2016, 12:27 PM
legomaniak
Thu Apr 28 2016, 03:26 PM
APEGEEKZ
Mon Apr 25 2016, 01:54 PM
aishwar
Sun Apr 24 2016, 10:58 AM
nitring
Sun Apr 24 2016, 09:38 AM
Yuri_Golden
Fri Apr 22 2016, 05:15 PM
asif1990
Fri Apr 22 2016, 12:31 AM

Online

Guests: 54, Members: 0 ...

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

Members: 37759
Newest member: pd
Forum Activity
Karan123 Avatar
Posted By Karan123
Sat Apr 30 2016, 08:10 AM
Hi,C2000 has quite big series from TI.Which C2000 ...
uk2308 Avatar
Posted By uk2308
Fri Apr 29 2016, 12:33 PM
i need to know the harware connection of c2000 wit...
legomaniak Avatar
Posted By legomaniak
Thu Apr 28 2016, 03:29 PM
ExperimenterUK Avatar
Posted By ExperimenterUK
Thu Apr 28 2016, 01:12 AM
Did you read / understand my last post to your oth...
APEGEEKZ Avatar
Posted By APEGEEKZ
Mon Apr 25 2016, 02:54 PM
im sending mail using sim900 to gmail but its thro...
ExperimenterUK Avatar
Posted By ExperimenterUK
Sun Apr 24 2016, 06:51 PM
This file was hosted by Rapidshare.comRapidshare.c...
aishwar Avatar
Posted By aishwar
Sun Apr 24 2016, 11:02 AM
ExperimenterUK Avatar
Posted By ExperimenterUK
Fri Apr 22 2016, 07:29 PM
You will have to post your code and Proteus projec...
ExperimenterUK Avatar
Posted By ExperimenterUK
Fri Apr 22 2016, 07:19 PM
If the temperature is below the set point, "if (te...
Yuri_Golden Avatar
Posted By Yuri_Golden
Fri Apr 22 2016, 05:33 PM
Hey Guys, I searched in the forum about a similar ...