You are on page 1of 11

01/09/2014 P.G.F.

1
TECLADO MATRICIAL

Y

LCD

Ing. Paul Glvez
2010
01/09/2014 P.G.F. 2
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
01/09/2014 P.G.F. 3
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.
01/09/2014 P.G.F. 4
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.
01/09/2014 P.G.F. 5
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 STATUS,RP0 ;Selecciona Pagina 1 (Banco)
MOVLW 0F0h ;PB4-7 como entradas
MOVWF TRISB ;y PB0-3 como salidas
BSF OPTION_REG,RBPU ;Habilita R de polarizacin en entradas
BCF STATUS,RP0 ;Vuelve a la pagina 0 (Banco)
RETURN ;Retorna.

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.
01/09/2014 P.G.F. 6
Manejo teclados matriciales continuacin
KB_Scan CLRF Tecla ;Escanea el teclado Borra Tecla y
INCF Tecla,f ;prepara Tecla para primer cdigo.
MOVLW 0Eh ;Saca 0 a la primera fila
MOVWF PORTB ;de la Puerta B
NOP ;Nada para estabilizacin de seal.


Cheq_Col BTFSS PORTB,4 ;Primera columna = 0
GOTO antirebotes ;Sale si se ha pulsado tecla.
INCF Tecla,f ;Si no tecla pulsada, incrementa tecla.
BTFSS PORTB,5 ;Segunda columna = 0
GOTO antirebotes ;Sale si se ha pulsado tecla.
INCF Tecla,f ;Si no tecla pulsada, incrementa tecla.
BTFSS PORTB,6 ;Tercera columna = 0
GOTO antirebotes ;Sale si se ha pulsado tecla.
INCF Tecla,f ;Si no tecla pulsada, incrementa tecla.
BTFSS PORTB,7 ;Cuarta columna = 0
GOTO antirebotes ;Sale si se ha pulsado tecla.
INCF Tecla,f ;Si no tecla pulsada, incrementa Tecla.
Ultima_Tecla MOVLW d'17' ;comprueba si se a escaneado todo el teclado
;Carga W con el nmero de Teclas + 1.
SUBWF Tecla,w ;y lo compara con el valor actual de Tecla.
BTFSC STATUS,Z ;Si Tecla + 1 = valor actual.
GOTO NTeclas ;No ha sido pulsada ninguna tecla.
BSF STATUS,C ;Pone a 1 Bit C.
RLF PORTB,f ;as la Fila 1 pasa a 1 con la rotacin a izqda.
GOTO Cheq_Col
NTeclas CLRF Tecla ;Coloca variable Tecla a 0
RETURN ;y regresa.
01/09/2014 P.G.F. 7
antirebotes ;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.
Espera1 BTFSS PORTB,4 ;Si no se suelta la tecla FILA 1
GOTO Espera1 ;vuelve a esperar.
Espera2 BTFSS PORTB,5 ;Si no se suelta la tecla FILA 2
GOTO Espera2 ;vuelve a esperar.
Espera3 BTFSS PORTB,6 ;Si no se suelta la tecla FILA 3
GOTO Espera3 ;vuelve a esperar.
Espera4 BTFSS PORTB,7 ;Si no se suelta la tecla FILA 4
GOTO Espera4 ;vuelve a esperar.

MOVF Tecla,w ;pone en w el numero contenido en la variable
CALL T_Conv ;llama a la tabla de conversion y retorna
MOVWF Tecla ;con el valor en hexadecimal y lo pone en la variable.
RETURN ;vuelve al programa principal que hizo la llamada.
T_Conv ADDWF PCL,1
RETLW '0' ;Tecla n0 = 0
RETLW '1' ;Tecla n1 = 1
RETLW '4' ;Tecla n2 = 4
RETLW '7' ;Tecla n3 = 7
RETLW 'A' ;Tecla n4 = A
RETLW '2' ;Tecla n5 = 2
RETLW '5' ;Tecla n6 = 5
RETLW '8' ;Tecla n7 = 8
RETLW '0' ;Tecla n8 = 0
RETLW '3' ;Tecla n9 = 3
RETLW '6' ;Tecla n10 = 6
RETLW '9' ;Tecla n11 = 9
RETLW 'B' ;Tecla n12 = B
RETLW 'F' ;Tecla n13 = F
RETLW 'E' ;Tecla n14 = E
RETLW 'D' ;Tecla n15 = D
RETLW 'C' ;Tecla n16 = C

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.
01/09/2014 P.G.F. 8
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.
01/09/2014 P.G.F. 9
Manejo de pantallas de cristal lquido continuacin
La gran mayora de los LCD, llamados genricos, tienen la siguiente asignacin de teclas:
Pin Sismologa Nivel I/O Funcin
1 VSS - - 0 Vlts. Tierra ( GND ).
2 VCC - - + 5 Vlts. DC.
3 Vee = Vc - - Ajuste del Contraste.
4 RS 0/1 I
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 E 1 I Habilitacin del modulo LCD
7 DB0 0/1 I/O BUS DE DATO LINEA 1 ( LSB ).
8 DB1 0/1 I/O BUS DE DATO LINEA 2
9 DB2 0/1 I/O BUS DE DATO LINEA 3
10 DB3 0/1 I/O BUS DE DATO LINEA 4
11 DB4 0/1 I/O BUS DE DATO LINEA 5
12 DB5 0/1 I/O BUS DE DATO LINEA 6
13 DB6 0/1 I/O BUS DE DATO LINEA 7
14 DB7 0/1 I/O BUS DE DATO LINEA 8 (MSB).
15 A - - LED (+) Back Light
16 K - - 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.
01/09/2014 P.G.F. 10
Manejo de pantallas de cristal lquido continuacin
Mapa de Memoria de Datos
Direcciones de DDRAM
Lnea 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 A B C D E F
Lnea 2
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
0 1 2 3 4 5 6 7 8 9 A B C D E 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.
01/09/2014 P.G.F. 11
ESTIMADOS

LUEGO LES ENVIARE UN PROGRAMA TIPO PARA TRABAJAR CON LCD.



ATTE.
P.G.F.

You might also like