Microcontroller Programming Keypad Decoding Tips
Microcontroller Programming Keypad Decoding Techniques
In the design of electronics project, it is very common to use a keypad matrix as a means for user to interface to the
product. In order to minimize the number of pins used in the microcontroller, the keys should be arranged in as square
a matrix as possible. One example is the use of 4 X 4 matrix arrangement in a 16 keys keypad. This arrangement require
only 8 pins. If it is arrange in a 2 X 8 matrix, 10 pins will be needed instead of 8.
The microcontroller programming keypad decoding method is as shown in the figure above. There are 4 inputs pins designated as row 1 to row 4 and 4
output pins designated as column 1 to column 4. The 4 input ports need to have a pulldowns resistor to ensure that
they are always at a deterministic state either login "0" or login "1". This is achieved by having an internal pulldown
resistor in the MCU itself or by having 4 external resisors connected to each of the input pin and ground.
At the start of the scanning, column 1 will be turned ON(login "1") and column 2, 3, and 4 turn OFF (logic "0"). When
this happen, the input ports row 1 to row 4 are scanned for its status. If key 7 is pressed, the pin PA2 at row 3 will
return as logic "1" and the rest of the rows will return logic "0". By having a debouncing routine as a means of
confirmation that the particular key has been pressed, the MCU will know which key is pressed and thus is able to
proceed to determine the next action to take.
Low Power Consumption Consideration
In the design of key interface, it is also important to choose a MCU that is able to go into power down mode after a certain
time has elapsed. This will ensure that the batteries that are used to power up the MCU will last longer. It will only
wake up when a key is pressed. Power down mode typically takes a fraction of current compared to when it is in active mode.
The PDF article below is an example of Motorola MC68HC705J1A Keypad decoding techniques that can be studied and used
for any other MCU. The flow chart and examples of the assembly code are also given.
Motorola Microcontroller Programming 4 X 4 Keypad Decoding Techniques Using MC68HC705J1A

|