Sunteți pe pagina 1din 2

GESTION DE UN TECLADO MATRICIAL USANDO CCS COMPILER (PICC)

Hoy día es más frecuente encontrar en el mercado teclados matriciales que teclados tipo
telefónico, por esta razón en CCS el enfoque del manejo de los teclados se explica basado en la
operación de este tipo de teclado. Si, por otro lado, se trabaja con un teclado telefónico, el
procedimiento a seguir es utilizar el CI 74147 y trabajar las entradas como pulsadores. En los
teclados matriciales (1x4, 3x4 ó 4x4) su modo de funcionamiento consiste en la unión de una línea
continua entre una fila y una columna del teclado por medio de la tecla presionada.

Figura 1. Teclado Matricial de 3x4 y 4x4.

El compilador de C incluye el driver KBD.c para manejar el teclado matricial (3x4). Las funciones
que incorpora son las siguientes:

kbd_init();

Inicializa el sistema, debe ser la primera función en el programa.

kbd_getc()

Devuelve el valor de la tecla pulsada en función de la tabla que tiene programada. El driver KBD.c
ya tiene asignados los valores de cada tecla (Figura 2).

Figura 2. Segmento de código del driver KBD.c para ver la tabla programada para las teclas del teclado matricial 4x3

Modificando los valores de esta tabla es posible adecuar el resultado de las diferentes carátulas
del teclado. Al igual que el LCD.c, el archivo KBD.c está pensado para trabajar con el PORTB o el
PORTD y su selección se hace poniendo o quitando el comentario respectivo que activa el uso del
puerto B (Figura 3) y activar sus respectivas resistencias de pullup si así se requiere.
Figura 3. Segmento de código del driver KBD.c que modifica el puerto a usar con el teclado

Las conexiones vienen dadas por el driver, pero se pueden modificar:

Figura 4. Segmento de código donde se definen los pines asociados a las conexiones del teclado matricial

Se puede trabajar con el LCD y el teclado a través de puertos separados o compartiendo el mismo
puerto (con el ahorro de patillas que conlleva). Compartir puerto suele conllevar problemas si se
quiere trabajar con el teclado y las interrupciones RB4/RB7. En el Ejemplo 4 y los archivos
picCCS_006.c se observa como se puede hacer este ahorro y además notar la diferencia entre el
valor del carácter leído, el código ASCII y el número como tal.

S-ar putea să vă placă și