Open In App

Telephone Keypad Scanner

Improve
Improve
Like Article
Like
Save
Share
Report

A telephone keypad is designed using a PLD(Programmable Logic Device).
The keypad is wired in a matrix form with a switch at the intersection of each row and column. The purpose of this keypad scanner is to determine which has been pressed and output a binary number N=N3 N2 N1 N0 which corresponds to the key number. For example: Pressing the key ‘5’ will give the output 0101, Pressing ‘*’ key will give 1010 as the output.

Whenever a valid key is detected, the scanner should output a signal V for on clock time T. Assuming one key is pressed at a time, resistors and ground are connected to each row of the keyboard so that R1=R2=R3=R4=0 when no key is pressed.

  1. Apply logic 1 to columnsC0, C1, C2 and wait.
  2. If any key is pressed, logic 1 will appear on corresponding resistor-R0, R1, R2 or R3.
  3. Apply a logic 1 to column C0 only. If any of Resistors is 1, a valid key is detected. Set V=1 and the output is the corresponding N.
  4. If no key is detected in the first column, apply a 1 to C1 and repeat. Repeat for C2 if no key is detected in the second column.
  5. When a valid key is detected, apply 1s to C0, C1, C2 and wait until no key is pressed.
    In the process of scanning a keyboard to determine which key is pressed, the scanner must take “Contact Bounce” into account. When the mechanical switch is opened or closed, the switch contact will bounce, causing noise to switch output.
  6. Thus the output signal indicates that the key press must be synchronized with the clock.
    Thus for a debouncing circuit, Clock Period > Bounce time.

The logic equations for the decoder are:

N3 = R2(C0)' + R3(C1)'
N2 = R1 + R2CO
N1 = R0(C0)' + (R2)'C2 + (R1)'(R0)'(C0)
N0 = R1C1 + (R1)'C2 + (R3)'(R1)'(C1)'

Last Updated : 13 Feb, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments