Keypads are very common input devices in embedded systems. The most common method of interfacing a keypad involves scanning of rows and columns to determine which key has been pressed. The multiple keys in a keypad are arranged in the form of a matrix to reduce the number of interface pins but that still requires quite a bit of I/O resources which may not be affordable by mid-range microcontrollers. This article is about a keypad interfacing technique that requires only two connections to interface with a microcontroller. It uses a 555 timer IC configured as an astable multivibrator where the frequency of oscillation is varied with the pressed key.
The technique has been demonstrated with a PIC16F628A microcontroller that couts the 555 output pulses through the Timer0 module for an interval of 100 ms. The information about the pressed key is derived from the number of times the
timer module overflows during the interval.