Sie sind auf Seite 1von 8

Sistemas Basados en

Microprocesador

B2 Conexin de un teclado
matricial (4x4) a la placa NXP
LPC1768
1
Keypad 4x4

Y1

Y2

Y3
A B C

Y4

X1 X2 X3 X4

SistemasBasadosenMicroprocesador 2
Keypad 4x4

Y1

Y2

Y3
A B C

Y4

X1 X2 X3 X4

SistemasBasadosenMicroprocesador 3
Keypad 4x4

SistemasBasadosenMicroprocesador 4
Keypad 4x4

SistemasBasadosenMicroprocesador 5
Keypad 4x4

4 lneas GPIO como salida 4 columnas (X1-X4)


Valor inicial?

4 lneas GPIO como entradas (interrupcin) 4 filas (Y1-Y4)


Pull-up?
Pull-down?

SistemasBasadosenMicroprocesador 6
Keypad 4x4

LPC1768 datasheet
https://www.nxp.com/docs/en/data-
sheet/LPC1769_68_67_66_65_64_63.pdf

void GPIO_SetDir (uint32_t port_num, uint32_t pin_num, uint32_t dir)

int32_t PIN_Configure (uint8_t port, uint8_t pin, uint8_t function, uint8_t mode, uint8_t open_drain)

SistemasBasadosenMicroprocesador 7
Keypad 4x4

Ejemplo de configuracin (mltiples posibilidades):

Establecer 4 lneas como SALIDA, con nivel inicial HIGH (1), conectadas a las COLUMNAS (X1-X4)
Establecer 4 lneas como ENTRADA, que generen INTERRUPCIONES por flanco, conectadas a las
FILAS (Y1-Y4). Lneas de entrada con pull-down (valor por defecto LOW (0)).

Funcionamiento:
Sin ninguna tecla pulsada, todas las entradas estarn en estado LOW (0) debido al pull-down.
Cuando se pulse una tecla (por ejemplo, el 5) el 1 de la columna correspondiente (p.e. X2) se
conectar a la fila correspondiente (p.e. Y2), generando una interrupcin por flanco de subida.

Identificacin de la tecla pulsada (barrido):


Cada fila, y por tanto cada interrupcin, corresponde a 4 teclas.
Es necesario identificar la columna a la que pertenece la tecla
pulsada.
Cuando se produce una interrupcin en la lnea asociada a una
fila (n), y mientras la tecla est pulsada, se debe:
1. Poner todas las columnas (X1-X4) a 0
2. Poner la columna i a 1 y comprobar si la fila n est a
1. Si es as, la tecla pulsada ser la correspondiente al
cruce de la fila n con la columna i.
3. Repetir los pasos 1 y 2 hasta detectar la tecla pulsada.

SistemasBasadosenMicroprocesador 8