TECLADO MATRICIAL

6
TECLADO MATRICIAL. Un teclado está compuesto de una serie de interruptores (pulsadores), los cuales están conectados en forma de matriz. Aunque los teclados pueden tener presentaciones de 4x3 (4 renglones x 3 columnas) o bien de 4x4, no observamos que salen 12 o 16 cables respectivamente, es decir no hay un cable por cada tecla. Lo normal es que se tengan 8 cables, para el caso de un teclado de 4x4, 4 cables corresponden a cada uno de los renglones y los 4 restantes a las columnas. Dentro del aprendizaje del manejo del teclado debe considerarse el saber identificar que cable corresponde a que columna o renglón, para después conectarse al microcontrolador. Esto se logra por simple observación del impreso del teclado. Como se puede ver en la figura, cada botón del teclado esta por un lado conectado a un renglón y a una columna, esto facilitará su identificación. Por ejemplo al presionar la tecla 3 estamos relacionando el renglón 2 con la columna 2 o en la tecla 4 renglón 1 con columna 0, como si fueran coordenadas. Entonces lo que se debe hacer en el programa para identificar que tecla es la que se está pulsando, es probar cada combinación que se puede tener de renglón-columna. Supongamos que decidimos trabajar el teclado matricial con el puerto C y que la conexión queda de la siguiente forma:

Transcript of TECLADO MATRICIAL

TECLADO MATRICIAL.Un teclado est compuesto de una serie de interruptores (pulsadores), los cuales estn conectados en forma de matriz.Aunque los teclados pueden tener presentaciones de 4x3 (4 renglones x 3 columnas) o bien de 4x4, no observamos que salen 12 o 16 cables respectivamente, es decir no hay un cable por cada tecla. Lo normal es que se tengan 8 cables, para el caso de un teclado de 4x4, 4 cables corresponden a cada uno de los renglones y los 4 restantes a las columnas.

Dentro del aprendizaje del manejo del teclado debe considerarse el saber identificar que cable corresponde a que columna o rengln, para despus conectarse al microcontrolador. Esto se logra por simple observacin del impreso del teclado.Como se puede ver en la figura, cada botn del teclado esta por un lado conectado a un rengln y a una columna, esto facilitar su identificacin. Por ejemplo al presionar la tecla 3 estamos relacionando el rengln 2 con la columna 2 o en la tecla 4 rengln 1 con columna 0, como si fueran coordenadas. Entonces lo que se debe hacer en el programa para identificar que tecla es la que se est pulsando, es probar cada combinacin que se puede tener de rengln-columna.Supongamos que decidimos trabajar el teclado matricial con el puerto C y que la conexin queda de la siguiente forma:PC7PC6PC5PC4PC3PC2PC1PC0

Rengln3Rengln2Rengln1Rengln0Col3Col2Col1Col0

Para identificar una tecla lo que debemos hacer es activar cada uno de los renglones (enviando un 1) y preguntar en que columna aparece ese mismo 1.

Primero activamos el rengln 0 (row0) que est en PC4, as al puerto le ponemos le asignamos el siguiente nmero (lo voy a poner en binario para que quede muy claro)puertoC= 0b0001000; // activamos rengln 0 y luego preguntamos if( puertoC==0b00010001){ lcd_gotoxy(1,1);printf(lcd_putc, es la tecla 7); }if( puertoC==0b00010010) {lcd_gotoxy(1,1);printf(lcd_putc, es la tecla 8 ); }if( puertoC==0b00010100) {lcd_gotoxy(1,1);printf(lcd_putc, es la tecla 9 ); }if( puertoC==0b00011000) {lcd_gotoxy(1,1);printf(lcd_putc, es la tecla A ); }//pasamos a activar el rengln 1 y luego preguntamospuertoC=0b00100000; // se activ el rengln 1if( puertoC==0b00100001) {lcd_gotoxy(1,1);printf(lcd_putc, es la tecla 4); }if( puertoC==0b00100010) {lcd_gotoxy(1,1);printf(lcd_putc, es la tecla 5); }.. y as debemos seguir en todo el programa, cambiamos 4 veces la informacin del rengln y preguntamos en cada una 4 veces por cada columna.Este es el modo ms rudimentario de identificar el teclado, otra forma sera creando funciones con una instruccin for.. para recorrer el 1 del rengln. O bien algn algoritmo.PIC-C ofrece una librera para identificar el teclado KBD.c, esta librera esta creada para un teclado de 4x3, pero se puede modificar y arreglar para un teclado de 4x4.Analicemos la librera kbd.c , hay que recordar que al inicio de la librera aparecen siempre las funciones que se encuentran habilitadas para poder hacer uso de la misma.En el caso de la librera kbd.c, solo tiene dos funciones:

KBDD.C //////// kbd_init() Must be called before any other function. Con esta funcin inicializamos el teclado y equivale a estar habilitando cada uno de los renglones. //// c = kbd_getc(c) Will return a key value if pressed . Con esta function se captura el valor de la tecla y se asigna dicho valor a una variable que en este caso la llaman c.// Un-comment the following define to use port B// #define use_portb_kbd TRUE la librera originalmente esta creada para controlar el teclado en el puerto D, pero si quitan los comentarios al #define anterior entonces quedara habilitado para el puerto B, que es la mejor opcin, ya que en el puerto B se encuentran una serie de resistencias de pull-up y al ser habilitadas nos simplifican mucho el hardware del teclado.Conexiones del teclado al microcontrolador. La librera trae definido como se debe realizar dicha conexin://Keypad connection: (for example column 0 is B2)#ifdef blue_keypad ///////////////////////////////////// For the blue keypad#define COL0 (1