Está en la página 1de 8

El Teclado matricial El Teclado matricial

El Teclado matricial
Microcontroladores Microcontroladores
M.C M.C. Carlos E. Canto Quintal . Carlos E. Canto Quintal
Teclado matricial Teclado matricial Teclado matricial
Los Los teclados teclados matriciales matriciales son son
ensamblados ensamblados en forma de en forma de matriz matriz , ,
como como se se ilustar ilustar en la en la figura figura. .
El El diagrama diagrama muestra muestra un un teclado teclado
como como una una matriz matriz de 4X4 de 4X4 - - 16 16
teclas teclas configuradas configuradas en 4 en 4
columnas columnas y 4 y 4 renglones renglones. .
Cuando Cuando no se ha no se ha oprimido oprimido
ninguna ninguna tecla tecla, ( , (todos todos las las teclas teclas
abiertas abiertas) no hay ) no hay conexi conexi n n entre entre
renglones renglones y y columnas columnas . .
Cuando Cuando se se oprime oprime una una tecla tecla se se
hace hace una una conexi conexi n n entre entre la la
columna columna y el y el rengl rengl n n de la de la tecla tecla. .
Rengln 0
Rengln 1
Rengln 2
Rengln 3
Columna 0
Columna 1
Columna 2
Columna 3
0
1
3
4 5 6 7
8 9
A B
C
D E F
2
Microcontroladores Microcontroladores
M.C M.C. Carlos E. Canto Quintal . Carlos E. Canto Quintal
Decodificador de teclado Decodificador
Decodificador
de
de
teclado
teclado
Muchos Muchos teclados teclados comerciales comerciales ya ya traen traen incluido incluido su su decodificador decodificador, , que que escanena escanena
el el teclado teclado y y si si, , una una tecla tecla es es presionada presionada, , regresa regresa un un n n mero mero que que identifica identifica la la
tecla tecla. .
Otra Otra alternativa alternativa es es adquirir adquirir por por separado separado un chip un chip decodificador decodificador y y conectarlo conectarlo al al
teclado teclado. .
El El decodificador decodificador mostrado mostrado tiene tiene 8 8 entradas entradas; ; las las 4 4 entradas entradas X X son son conectadas conectadas a a
las las 4 4 columnas columnas del del teclado teclado y y las las 4 4 entradas entradas Y Y son son conectadas conectadas al al los los 4 4
renglones renglones. No se . No se muestran muestran los los capacitores capacitores que que gobiernan gobiernan la la rapidez rapidez a la a la que que se se
escanea escanea el el teclado teclado. .
Cuando Cuando se se oprime oprime una una tecla tecla el el c c digo digo de 4 bits de la de 4 bits de la tecla tecla ( con 16 ( con 16 teclas teclas, , los los
c c digos digos est est n n entre entre 0000 y1111 en 0000 y1111 en binario binario) ) aparecer aparecer en en las las 4 4 l l neas neas de de salida salida
y la y la l l nea nea de de dato dato disponible disponible (DA) se pone en BAJO. (DA) se pone en BAJO. Si Si se se conecta conecta a a una una l l nea nea de de
interrupci interrupci n n el el microporcesador microporcesador ser ser interrumpido interrumpido cuando cuando se se oprima oprima alguna alguna
tecla tecla. La . La Rutina Rutina de de Servicio Servicio de la de la Interrupci Interrupci n n, , entonces entonces lee lee los los 4 bits y 4 bits y procesa procesa
el el dato dato . .
El chip del El chip del decodificador decodificador se se encarga encarga de de eliminar eliminar el el rebote rebote de de las las teclas teclas, lo , lo que que
libera libera al al programador programador de de esta esta responsabilidad responsabilidad, , esto esto es es una una ventaja ventaja al al usar usar un un
chip chip decodificador decodificador. .
Microcontroladores Microcontroladores
M.C M.C. Carlos E. Canto Quintal . Carlos E. Canto Quintal
DECODIFICADOR DE TECLADO MATRICIAL HEXADECIMAL DECODIFICADOR DE TECLADO MATRICIAL HEXADECIMAL
D
D
C
C
F
F
E
E
9
9
8
8
B
B
A
A
5
5
4
4
7
7
6
6
1
1
0
0
3
3
2
2
X4
X3
X2
X1
Y4
Y1
Y3
Y2
Decodificador de teclado de
4X4
INT
DA
Q4
Q3
Q2
Q1
Microcontroladores Microcontroladores
M.C M.C. Carlos E. Canto Quintal . Carlos E. Canto Quintal
OE
MM74C922 MM74C923
16-Key Encoder 20-Key Encoder
MM74C922 MM74C923
16-Key Encoder 20-Key Encoder
Microcontroladores Microcontroladores
M.C M.C. Carlos E. Canto Quintal . Carlos E. Canto Quintal
Conexi Conexi n de un LCD y un Teclado Matricial de 16 teclas al n de un LCD y un Teclado Matricial de 16 teclas al 8051 8051
+Vcc
10 K
ren0
ren1
ren2
ren3
Col 3
Col 2
Col 1
Col 0
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
0 1 2 3
4 5 6 7
8 9 A B
C D E F
4.7 K
DB7
DB6
DB5
DB4
P1.7
P1.6
P1.5
P1.4
P1.3
RS E R/W
P1.4
Microcontroladores Microcontroladores
M.C M.C. Carlos E. Canto Quintal . Carlos E. Canto Quintal
Tareas bsicas a realizar para un teclado matricial
Checar si se
se oprimi
alguna tecla
Checar si se
se oprimi
alguna tecla
Se oprimi alguna
Tecla ?
Se oprimi alguna
Tecla ?
Rastrear renglones
Para encontrar la columna
de la tecla oprimida
Rastrear renglones
Para encontrar la columna
de la tecla oprimida
Descifrar o decodificar
que tecla se oprimi
Descifrar o decodificar
que tecla se oprimi
regresar
No
Si
Se cargan ceros a
todos los renglones en
el Puerto C , se leen
las columnas y se
pregunta si son puros
unos
Se cargan ceros a
todos los renglones en
el Puerto C , se leen
las columnas y se
pregunta si son puros
unos
Se carga cero a los
renglones uno a uno
hasta que se encuentre
la columna donde est la
tecla oprimida
Se carga cero a los
renglones uno a uno
hasta que se encuentre
la columna donde est la
tecla oprimida
Una vez identificada la
columna y conociendo el
rengln se aplica el
algoritmo para obtener el
binario de la tecla
oprimida
Una vez identificada la
columna y conociendo el
rengln se aplica el
algoritmo para obtener el
binario de la tecla
oprimida
Microcontroladores Microcontroladores
M.C M.C. Carlos E. Canto Quintal . Carlos E. Canto Quintal
Cmo saber que tecla se oprimi?
Microcontroladores Microcontroladores
M.C M.C. Carlos E. Canto Quintal . Carlos E. Canto Quintal
0 1 2 3
4 5 6 7
8 9 A B
C D E F
COLUMNA 0
COLUMNA 1
COLUMNA 2
COLUMNA 3
RENGLN 0
RENGLN 1
RENGLN 2
RENGLN 3
TECLA = 4xRi + TECLA = 4xRi + Cj Cj
Donde:
Tecla=la tecla oprimida en binario
Ri= # del rengln escaneado
Cj= #.de la columna donde se encontr la tecla
Ejemplo Ejemplo,si se oprimi la tecla 6,
sta se encuentra en el rengln 1 y
columna 2, entonces:
Tecla=4x1+2=6 Tecla=4x1+2=6
Diagrama de flujo del programa del teclado matricial
mandar ceros
a los renglones
mandar ceros
a los renglones
leer las columnas
leer las columnas
columnas
en 1s?
columnas
en 1s?
contador de rengln a 0
Ri0
contador de rengln a 0
Ri0
Inicializar rastreo
de renglones
Scan11111110
Inicializar rastreo
de renglones
Scan11111110
columnas
en 1s?
columnas
en 1s?
rastreo de rengln i
Renglones Scan
rastreo de rengln i
Renglones Scan
leer las columnas
leer las columnas
Ri Ri+1
Ri Ri+1
Desplaza Scan
A la izquierda
Desplaza Scan
A la izquierda
col0
col0
columna 0=0 ?
columna 0=0 ?
Col1
Col1
columna 1=0 ?
columna 1=0 ?
Ri=4?
Ri=4?
col2
col2
columna 2=0 ?
columna 2=0 ?
Col3
Col3
columna 3=0 ?
columna 3=0 ?
Tecla4*Ri +col
Tecla4*Ri +col ret
ret
Inicio
Inicio
SI
SI
SI
SI
SI
SI
NO
SI
NO
NO
NO
NO
Microcontroladores Microcontroladores
M.C M.C. Carlos E. Canto Quintal . Carlos E. Canto Quintal
Microcontroladores Microcontroladores
M.C M.C. Carlos E. Canto Quintal . Carlos E. Canto Quintal
MOV P3,#0F0H
MOV A,P3
CJNE A,#0F0H,SCAN_REN
RET
SCAN_REN: MOV R0,#00
MOV P3,#0FEH
MOV A,P3
ANL A,#0F0H
CJNE A,#0FH,SCAN_COL
INC R0
RR A (Rotate Right the Accumulator)
Microcontroladores Microcontroladores
M.C M.C. Carlos E. Canto Quintal . Carlos E. Canto Quintal
cada bit es desplazado una localidad hacia la derecha, donde el cada bit es desplazado una localidad hacia la derecha, donde el bit 0 se bit 0 se
va al bit 7. va al bit 7.
Esta instrucci Esta instrucci n rota el contenido del acumulador hacia la derecha: n rota el contenido del acumulador hacia la derecha:
RL A ( RL A (Rotate Rotate Left Left the the Accumalator Accumalator) )
Microcontroladores Microcontroladores
M.C M.C. Carlos E. Canto Quintal . Carlos E. Canto Quintal
Cada Cada bit es desplazado una localidad hacia la izquierda , tal que el bit es desplazado una localidad hacia la izquierda , tal que el bit 7 bit 7
se va al bit 0 se va al bit 0
Esta instrucci Esta instrucci n rota el contenido del acumulador hacia la izquierda: n rota el contenido del acumulador hacia la izquierda:
RRC A ( RRC A (Rotate Rotate Right Right through through the the Carry Carry ) )
Microcontroladores Microcontroladores
M.C M.C. Carlos E. Canto Quintal . Carlos E. Canto Quintal
Cada Cada bit es desplazado una localidad hacia la derecha , donde el bit bit es desplazado una localidad hacia la derecha , donde el bit 0 se 0 se
va al bit de acarreo (C) del PSW, mientras que el acarreo se va va al bit de acarreo (C) del PSW, mientras que el acarreo se va al bit 7 al bit 7
(esto es: si el acarreo ten (esto es: si el acarreo ten a 1 antes de la ejecuci a 1 antes de la ejecuci n de RRC A, entonces el n de RRC A, entonces el
bit 7 del acumulador contendr bit 7 del acumulador contendr un 1 despu un 1 despu s de la ejecuci s de la ejecuci n del RRC A. n del RRC A.
Esta instrucci Esta instrucci n rota el contenido del acumulador hacia la derecha a n rota el contenido del acumulador hacia la derecha a
trav trav s del Acarreo ( C ) : s del Acarreo ( C ) :
Otra alternativa
Otra alternativa
Mientras no se oprima ninguna tecla el programa
escanea rengln 0, rengln1, rengln 2, rengln 3 y se
regresa de nuevo al rengln 0 continuamente.
cuando se oprime una tecla, el nmero de esa tecla es
puesto en R0.
Ya que el nmero de la tecla presionada ser
almacenada en R0, R0 inicialmente es 0. Cada tecla es
escaneada y sino es la tecla oprimida, R0 es
incrementado, de esa forma cuando la tecla oprimida es
encontrada , R0 contendr el nmero de la tecla.
la bandera de propsito general F0, ser usada por la
subrutina de scaneo de las columnas, para indicar
cuando una tecla se oprimi o no en esa columna. Si al
regresar de la subrutina F0 es 1, significa que la tecla
fue encontrada..
Microcontroladores Microcontroladores
M.C M.C. Carlos E. Canto Quintal . Carlos E. Canto Quintal

También podría gustarte