Está en la página 1de 11

TECLADO MATRICIAL Y LCD

24/04/12

P.G.F.

Ing. Paul Glvez 1 2010

Manejo teclados matriciales


Un teclado de este tipo consta de 16 teclas (matriz 4 X 4). Por cada fila y cada columna de la matriz hay un "cable" que pasa por detrs de las teclas, las cuales estn colocadas en las intersecciones entre filas y columnas.

As pues, la columna 1 (COL1) es un "cable" que pasa por debajo del 1, del 4, del 7 y del * ; la fila 1 (FIL1) pasa debajo de la A, 3, 2 y 1.Filas y columnas no estn conectadas entre si. Cuando se pulsa una tecla se conecta la columna y la fila que pasa por debajo de dicha tecla. Por ejemplo, si se pulsa el 1 se conecta la COL1 con FIL1; si se pulsa el 8 se conecta la COL2 con FIL3, y as sucesivamente con el resto de las teclas

24/04/12

P.G.F.

Manejo teclados matriciales continuacin


Esta forma estratgica de colocar todas las teclas y conexiones permite manejar 16 pulsadores con solo llevar 8 cables. Si en lugar de esto usramos 16 pulsadores tendramos 32 cables, sin necesidad de pensar mucho se nos podra ocurrir ponerlos todos con un terminal comn, con lo que tendramos 17 cables, La ventaja de usar la configuracin matricial es clara. Para manejar este circuito, con un microcontrolador, se deben ir dando distintos valores a las columnas para saber, dependiendo de los valores que se reflejen en las filas, la tecla pulsada.

Para realizar la exploracin del teclado se pueden ocupar libreras prediseadas, las cuales configuran las salidas y entradas para usar el teclado. Aqu se escanean las teclas y si es pulsada alguna retorna el valor de tecla en modo hexadecimal para ser mostrado directamente en un display LCD.

24/04/12

P.G.F.

Manejo teclados matriciales continuacin


Por ejemplo, se mostrar a continuacin una librera para el control de un teclado matricial, el cual utiliza las siguientes rutinas y variables: KB_Port Configura los puertos B del PIC para ser usados con el teclado. KB_Scan Escanea todas las teclas y devuelve la tecla pulsada en formato Hexadecimal. Tecla Variable en donde se devuelve la tecla pulsada

Descripcin: Para controlar el teclado, los puertos del PIC conectados a las filas se programan como salidas y los conectados a las columnas del teclado se programan como entradas, tambin se activan las resistencias de polarizacin internas (pull-up). Esto se hace mediante la llamada a la etiqueta "KB_Port" que inicializa los puertos para ser usados con el teclado matricial.

24/04/12

P.G.F.

Manejo teclados matriciales continuacin

KB_Port

;Inicializa la puerta B para las entradas del ;teclado. Programa RB0-3 como salidas y RB4-7 ;entradas con las resistencias de polarizacin ;habilitadas BSF 0F0h MOVWF BSF BCF RETURN STATUS,RP0 TRISB OPTION_REG,RBPU STATUS,RP0 ;Selecciona Pagina 1 (Banco) ;PB4-7 como entradas ;y PB0-3 como salidas ;Habilita R de polarizacin en entradas ;Vuelve a la pagina 0 (Banco) ;Retorna.

MOVLW

Ahora para saber que tecla esta siendo pulsada necesitamos escanear el teclado, y esto se consigue mediante la siguiente rutina que consiste en ir poniendo una a una las lneas RB0 a RB3 (conectadas a las filas del teclado) a nivel bajo ya que estas salidas tienen conectada la resistencia de polarizacin a Vcc y por lo tanto estn siempre a nivel lgico alto. Cada vez que una fila se pone a nivel bajo se hacen 4 comprobaciones para ver si una de las cuatro columnas se a puesto a nivel bajo y as saber la tecla pulsada.

24/04/12

P.G.F.

Manejo teclados matriciales continuacin


KB_Scan CLRF INCF MOVLW MOVWF NOP BTFSS GOTO INCF BTFSS GOTO INCF BTFSS GOTO INCF BTFSS GOTO INCF MOVLW SUBWF BTFSC GOTO BSF RLF GOTO NTeclas RETURN Tecla Tecla,f 0Eh PORTB ;Escanea el teclado Borra Tecla y ;prepara Tecla para primer cdigo. ;Saca 0 a la primera fila ;de la Puerta B ;Nada para estabilizacin de seal. ;Primera columna = 0 ;Sale si se ha pulsado tecla. ;Si no tecla pulsada, incrementa tecla. ;Segunda columna = 0 ;Sale si se ha pulsado tecla. ;Si no tecla pulsada, incrementa tecla. ;Tercera columna = 0 ;Sale si se ha pulsado tecla. ;Si no tecla pulsada, incrementa tecla. ;Cuarta columna = 0 ;Sale si se ha pulsado tecla. ;Si no tecla pulsada, incrementa Tecla. ;comprueba si se a escaneado todo el teclado ;Carga W con el nmero de Teclas + 1. ;y lo compara con el valor actual de Tecla. ;Si Tecla + 1 = valor actual. ;No ha sido pulsada ninguna tecla. ;Pone a 1 Bit C. ;as la Fila 1 pasa a 1 con la rotacin a izqda. ;Coloca variable Tecla a 0 ;y regresa.

Cheq_Col

Ultima_Tecla

PORTB,4 antirebotes Tecla,f PORTB,5 antirebotes Tecla,f PORTB,6 antirebotes Tecla,f PORTB,7 antirebotes Tecla,f d'17' Tecla,w STATUS,Z NTeclas STATUS,C PORTB,f Cheq_Col CLRF Tecla

24/04/12

P.G.F.

Manejo teclados matriciales continuacin


La parte de cdigo pintada en amarillo puede ser eliminada sin ningn problema si no queremos que el pic tenga que esperar a que soltemos la tecla para continuar con su ejecucin normal.

antirebotes

Espera1 Espera2 Espera3 Espera4

BTFSS GOTO BTFSS GOTO BTFSS GOTO BTFSS GOTO MOVF CALL MOVWF RETURN

PORTB,4 Espera1 PORTB,5 Espera2 PORTB,6 Espera3 PORTB,7 Espera4 Tecla,w T_Conv Tecla

;ahora se espera a que la tecla sea soltada para evitar rebotes ;y reactivaciones de tecla ;esta parte puede ser eliminada si para nuestro proyecto no es necesaria ;o es un inconveniente. ;Si no se suelta la tecla FILA 1 ;vuelve a esperar. ;Si no se suelta la tecla FILA 2 ;vuelve a esperar. ;Si no se suelta la tecla FILA 3 ;vuelve a esperar. ;Si no se suelta la tecla FILA 4 ;vuelve a esperar. ;pone en w el numero contenido en la variable ;llama a la tabla de conversion y retorna ;con el valor en hexadecimal y lo pone en la variable. ;vuelve al programa principal que hizo la llamada.

T_Conv

ADDWF RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW

PCL,1 '0' '1' '4' '7' 'A' '2' '5' '8' '0' '3' '6' '9' 'B' 'F' 'E' 'D' 'C'

;Tecla n0 = 0 ;Tecla n1 = 1 ;Tecla n2 = 4 ;Tecla n3 = 7 ;Tecla n4 = A ;Tecla n5 = 2 ;Tecla n6 = 5 ;Tecla n7 = 8 ;Tecla n8 = 0 ;Tecla n9 = 3 ;Tecla n10 = 6 ;Tecla n11 = 9 ;Tecla n12 = B ;Tecla n13 = F ;Tecla n14 = E ;Tecla n15 = D ;Tecla n16 = C

24/04/12

P.G.F.

Manejo de pantallas de cristal lquido


Las pantallas de cristal lquido (LCD) son circuitos integrados que incluyen memorias de datos y circuitos de control, los cuales son manejable a travs de una serie de comandos enviados por otro dispositivo electrnico como un PC o un microcontrolador.

24/04/12

P.G.F.

Manejo de pantallas de cristal lquido

continuacin

La gran mayora de los LCD, llamados genricos, tienen la siguiente asignacin de teclas:
Pin 1 2 3 4 Sismologa VSS VCC Vee = Vc RS Nivel 0/1 I/O I Funcin 0 Vlts. Tierra ( GND ). + 5 Vlts. DC. Ajuste del Contraste. 0= Entrada de una Instruccin. 1= Entrada de un dato. 5 R/W 0/1 I 0= Escribir en el modulo LCD. 1= Leer del modulo LCD 6 7 8 9 10 11 12 13 14 15 16 E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 A K 1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 I I/O I/O I/O I/O I/O I/O I/O I/O Habilitacin del modulo LCD BUS DE DATO LINEA 1 ( LSB ). BUS DE DATO LINEA 2 BUS DE DATO LINEA 3 BUS DE DATO LINEA 4 BUS DE DATO LINEA 5 BUS DE DATO LINEA 6 BUS DE DATO LINEA 7 BUS DE DATO LINEA 8 (MSB). LED (+) Back Light LED (-) Back Light.

Dnde RS controla el tipo de informacin (dato o instruccin), R/W controla escritura o lectura y E controla la habilitacin del dispositivo.

24/04/12

P.G.F.

Manejo de pantallas de cristal lquido


Mapa de Memoria de Datos

continuacin

Direcciones de DDRAM Lnea 1 Lnea 2 0 0 4 0 0 1 4 1 0 2 4 2 0 3 4 3 0 4 4 4 0 5 4 5 0 6 4 6 0 7 4 7 0 8 4 8 0 9 4 9 0 A 4 A 0 B 4 B 0 C 4 C 0 D 4 D 0 E 4 E 0 F 4 F

Para evidenciar lo expuesto anteriormente se mostrar un cdigo que muestra dos mensajes en un LCD, a travs del uso de libreras previamente diseadas. Esto se debe a que es muy importante respetar los tiempos de ejecucin de cada uno de los comandos, los cuales ya estn incluidos en estas libreras. Por otro lado, es importante destacar, que para ciertas aplicaciones, es conveniente ocupar otro puerto distinto al PORTB para el manejo de teclado, tal como el puerto D. Adems para controlar el LCD se necesitan 3 pines ms, los cuales pueden ser los pines RE0, RE1 y RE2, pero para esto se debe deshabilitar la funcin especial del conversor anlogo digital (ver contenidos semana 12) y habilitar el puerto D cono entrada y salida digital.

24/04/12

P.G.F.

10

ESTIMADOS LUEGO LES ENVIARE UN PROGRAMA TIPO PARA TRABAJAR CON LCD.

ATTE. P.G.F.

24/04/12

P.G.F.

11