Keyboard interface, Description – Rainbow Electronics AT89C5132 User Manual
Page 134
134
AT8xC5132
4173A–8051–08/02
Keyboard Interface
The AT8xC5132 implement a keyboard interface allowing the connection of a 4 x n
matrix keyboard. It is based on 4 inputs with programmable interrupt capability on both
high or low level. These inputs are available as alternate function of P1.3:0 and allow
exit from idle and power down modes.
Description
The keyboard interfaces with the C51 core through two special function registers:
KBCON, the keyboard control register (see Table 122); and KBSTA, the keyboard con-
trol and status register (see Table 123).
The keyboard inputs are considered as 4 independent interrupt sources sharing the
same interrupt vector. An interrupt enable bit (EKB in IEN1 register) allows global
enable or disable of the keyboard interrupt (see Figure 110). As detailed in Figure 111
each keyboard input has the capability to detect a programmable level according to
KINL3:0 bit value in KBCON register. Level detection is then reported in interrupt flags
KINF3:0 in KBSTA register.
A keyboard interrupt is requested each time one of the four flags is set, i.e. the input
level matches the programmed one. Each of these four flags can be masked by soft-
ware using KINM3:0 Bits in KBCON register and is cleared by reading KBSTA register.
This structure allows keyboard arrangement from 1 by n to 4 by n matrix and allow
usage of KIN inputs for any other purposes.
Figure 110. Keyboard Interface Block Diagram
Figure 111. Keyboard Input Circuitry
Power Reduction Mode
KIN3:0 inputs allow exit from idle and power down modes as detailed in Section “Power
Management”, page 46. To enable this feature, KPDE bit in KBSTA register must be set
to logic 1.
Due to the asynchronous keypad detection in power down mode (all clocks are
stopped), exit may happen on parasitic key press. In this case, no key is detected and
software must enter power-down again.
KIN0
Keyboard Interface
Interrupt Request
EKB
IEN1.4
Input Circuitry
KIN1
Input Circuitry
KIN2
Input Circuitry
KIN3
Input Circuitry
KIN3:0
KINM3:0
KBCON.3:0
KINF3:0
KBSTA.3:0
KINL3:0
KBCON.7:4
0
1