Keyboard I 8051
Keyboard I 8051
Keyboard I 8051
HOME
About Us
Electronics Directory
FORUM
Articles/ Tutorials
Links
eBooks
Contact Us
The key board here we are interfacing is a matrix keyboard. This key board is designed with a
particular rows and columns. These rows and columns are connected to the microcontroller through its
ports of the micro controller 8051. We normally use 8*8 matrix key board. So only two ports of 8051 can be
easily connected to the rows and columns of the key board.
When ever a key is pressed, a row and a column gets shorted through that pressed key and all the
other keys are left open. When a key is pressed only a bit in the port goes high. Which indicates
microcontroller that the key is pressed. By this high on the bit key in the corresponding column is identified.
Once we are sure that one of key in the key board is pressed next our aim is to identify that key. To
do this we firstly check for particular row and then we check the corresponding column the key board.
To check the row of the pressed key in the keyboard, one of the row is made high by making one of
bit in the output port of 8051 high . This is done until the row is found out. Once we get the row next out
job is to find out the column of the pressed key. The column is detected by contents in the input ports with
the help of a counter. The content of the input port is rotated with carry until the carry bit is set.
The contents of the counter is then compared and displayed in the display. This display is designed
using a seven segment display and a BCD to seven segment decoder IC 7447.
The BCD equivalent number of counter is sent through output part of 8051 displays the number of
pressed key.
http://electrosofts.com/8051/keyboard.html
1/3
8/29/2015
The 8051 has 4 I/O ports P0 to P3 each with 8 I/O pins, P0.0 to P0.7,P1.0 to P1.7, P2.0 to
P2.7, P3.0 to P3.7. The one of the port P1 (it understood that P1 means P1.0 to P1.7) as
an I/P port for microcontroller 8051, port P0 as an O/P port of microcontroller 8051 and
port P2 is used for displaying the number of pressed key.
2.
Make all rows of port P0 high so that it gives high signal when key is pressed.
3.
See if any key is pressed by scanning the port P1 by checking all columns for non zero
condition.
4.
If any key is pressed, to identify which key is pressed make one row high at a time.
5.
6.
Check port P1 for nonzero condition. If any nonzero number is there in [accumulator], start
column scanning by following step 9.
7.
8.
Add a count of 08h to the counter to move to the next row by repeating steps from step 6.
9.
If any key pressed is found, the [accumulator] content is rotated right through the carry
until carry bit sets, while doing this increment the count in the counter till carry is
found.
10.
Move the content in the counter to display in data field or to memory location
11.
2/3
8/29/2015
mov p1,a
mov a,#0fh
mov p1,a
press: mov a,p2
jz press
after identifying the row to check the colomn following steps are followed
colscan: mov r5,#00h
in: rrc a
;rotate right with carry until get the carry
jc out
;jump on getting carry
inc r3
;increment one count
jmp in
out: mov a,r3
da a
;decimal adjust the contents of counter
before display
mov p2,a
jmp start
;repeat for check next key.
Home
About Us
http://electrosofts.com/8051/keyboard.html
eBooks
Privacy Policy
3/3