Interrupt and scanning method of keypad operation, Computer Engineering

Assignment Help:

INTERRUPT METHOD - USING PORTB CHANGE INTERRUPT

By using 4 by 4 matrix keypad connected to PORTA and PORTB. The rows are connected to PORTA-Low (RA1-RA4) and the columns are connected to PORTB-High (RB4-RB7),

which is the PORTB-Change interrupt. The matrix keypad connection operation is explained in the following stages:

1 When the preceding key is released, Zero's will be the output to all rows at once and columns would be read and checked often until the column becomes high. If high, the program waits for a short period of time and then it returns next stage, i.e. waiting for a key to be pressed.
2 To ensure that a key is pressed, the columns are connected to the PORTB-Change interrupt. Hence, if a key pressed, this will cause an interrupt and microcontroller to execute the ISR. The main duty of the ISR is to ensure that the first key press was not erroneous as a result of noise as well as waiting for 20ms to prevent the key press from being interrupted as multiple key presses.
3 Detecting which row the key pressed belongs to, the microcontroller grounds one row at a time and then read the column each time. If all columns are detected HIGH, then the key press cannot belong to that row: hence it grounds the next row and continues until it finds the row the key press belongs.
4 To recognize the key press, the microcontroller rotates the column bits, i.e. a bit at a time, into the carrying flag and check to see if it is set LOW.

SCANNING METHOD

This is done by switching only one ROW at a time to be low. For example, If I set ROW1 low we can then read just the top row of buttons, button 1 will take COL1 low, button2 will take COL2 low, and the same for buttons '3' and 'F' in COL 3 and COL 4.

Hence, the other 12 lower buttons would not have any effect because their respective ROW lines are still high. So to read the other keys we need to take their respective ROW lines low, i.e. taking ROW2 low will allow us to read the second row of buttons (4, 5, 6, and E) again as the other three ROW lines are now high, the other 12 buttons have no effect.

We can then repeat this for the last two Row's using ROW3 and ROW4, so we read four buttons at a time, taking a total of four readings to read the entire keypad. This is a common technique for reading keyboards, and is known as 'Keyboard Scanning'.

However, one obvious problem that may occur is that "What will happens if more than one key is pressed at a time?", there are a number of ways to deal with this, although I might not include this stage in my code, but if time permit me I will try to do so. The methods are as follows:
1) To check for multiple key presses and ignore them,
2) To accept the first key, then find which is pressed. This way is simpler.
Various commercial products deal with this situation in similar ways, some reject multiple key presses, and some just accept the first one.

Firstly, check to see if any of the 12 keys are pressed (by making all the ROW lines low) and waiting until no keys are pressed; this will avoid problems with key presses repeating.

If no keys are pressed or detected, it jumps to the routine Keys which repeatedly scans the keyboard until a key is pressed, and the call for a delay.

Once a key has been pressed the result is returned in the variable e.g. 'key', and then logically AND with 0x0F to be entirely sure it's between 0 and 15. Then the next this value is passed to a look-up table or Key mapped matrix i.e. [COL] [ROW] which translates the key to its required value (in this case the ASCII value of the labels on the keys).

Finally, the ASCII value is stored back in the 'key' variable (just in case you might need it storing) and the routine returns with the ASCII value in the working (W) register.


Related Discussions:- Interrupt and scanning method of keypad operation

What is analysis and list its sub stages, What is analysis, list its sub st...

What is analysis, list its sub stages? Understand the requirement by constructing models. The goal of analysis is to state what need is to be done and not how it is to be done.

What is data in computers, Q. What is data in computers? In modern digi...

Q. What is data in computers? In modern digital computers data is signified in binary form by employing two symbols 0 and 1. These are known as binary digits or bits however da

Why eprom chips are mounted in packages, Why EPROM chips are mounted in pac...

Why EPROM chips are mounted in packages that have transparent window? Since the erasure needs dissipating the charges trapped in the transistors of memory cells. This can be co

Explain about indirect addressing, Q. Explain about Indirect Addressing? ...

Q. Explain about Indirect Addressing? In this technique the operand field of instruction specifies the address of address of intended operand for example if instruction LOAD

Find the number of PROM chips & address lines, The capacity of 2K × 16 PROM...

The capacity of 2K × 16 PROM is to be expanded to 16 K × 16.  Find the number of PROM chips required and the number of address lines in the expanded memory. Ans. Capacity requi

Clocked sr flip flop, Clocked SR flip flop A clock pulse is a...

Clocked SR flip flop A clock pulse is a sequence of logic 0, logic 1, and logic 0 occuring on the CLK input. Time t n occurs before the clock pulse and time t n+1

What is common type system, What is "Common Type System" (CTS)?  CTS e...

What is "Common Type System" (CTS)?  CTS explain all of the basic types that can be used in the .NET Framework and the operations performed on those type. All this time we hav

Applications of thermodynamics, Discuss the applications of thermodynamics ...

Discuss the applications of thermodynamics in field of energy technology Sol: Thermodynamics has wide applications as basis of thermal engineering. Nearly all process and engi

Advantage and disadvantage of threaded binary trees, Advantage  1.     ...

Advantage  1.       By doing threading we neglect the recursive method of traversing a Tree , which makes use of stack and consumes many memory and time . 2.       The node

What are the functions of passes used in two-pass assembler, What are the f...

What are the functions of passes used in two-pass assembler? In an assembly language program, two pass translations can handle forward references early. The subsequent task

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd