El Teclado matricial - Electrónica 60 Norte

Anuncio
Microcontroladores
El Teclado matricial
M.C.
M.C. Carlos E. Canto Quintal
Microcontroladores
Teclado matricial
Los teclados matriciales son
ensamblados en forma de matriz ,
como se ilustar en la figura.
figura.
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
Renglón 0
Renglón 1
Renglón 2
Renglón 3
Columna 3
Columna 2
Columna 1
El diagrama muestra un teclado
como una matriz de 4X4 - 16
teclas configuradas en 4
columnas y 4 renglones.
renglones.
Cuando no se ha oprimido
ninguna tecla,
tecla, (todos
(todos las teclas
abiertas)
abiertas) no hay conexió
conexión entre
renglones y columnas .
Cuando se oprime una tecla se
hace una conexió
conexión entre la
columna y el rengló
renglón de la tecla.
tecla.
Columna 0
M.C.
M.C. Carlos E. Canto Quintal
Microcontroladores
Decodificador de teclado
Muchos teclados comerciales ya traen incluido su decodificador,
decodificador, que escanena
el teclado y si,
si, una tecla es presionada,
presionada, regresa un número que identifica la
tecla.
tecla.
Otra alternativa es adquirir por separado un chip decodificador y conectarlo al
teclado.
teclado.
El decodificador mostrado tiene 8 entradas;
entradas; las 4 entradas “X” son conectadas a
las 4 columnas del teclado y las 4 entradas “Y “son conectadas al los 4
renglones.
renglones. No se muestran los capacitores que gobiernan la rapidez a la que se
escanea el teclado.
teclado.
Cuando se oprime una tecla el código de 4 bits de la tecla ( con 16 teclas,
teclas, los
códigos está
están entre 0000 y1111 en binario)
binario) aparecerá
aparecerá en las 4 líneas de salida
y la línea de dato disponible (DA) se pone en BAJO. Si se conecta a una línea de
interrupció
interrupción el microporcesador será
será interrumpido cuando se oprima alguna
tecla.
tecla. La Rutina de Servicio de la Interrupció
Interrupción, entonces lee los 4 bits y procesa
el dato .
El chip del decodificador se encarga de eliminar el rebote de las teclas,
teclas, lo que
libera al programador de esta responsabilidad,
responsabilidad, esto es una ventaja al usar un
chip decodificador.
decodificador.
M.C.
M.C. Carlos E. Canto Quintal
Microcontroladores
DECODIFICADOR DE TECLADO MATRICIAL HEXADECIMAL
X4
X3
X2
X1
FF
E
E
D
D
C
C
Y4
B
B
A
A
99
88
Y3
77
66
55
44
Y2
33
22
11
00
Y1
Q1
Q2
Q3
Q4
DA
INT
OE
Decodificador de teclado de
4X4
M.C.
M.C. Carlos E. Canto Quintal
Microcontroladores
MM74C922 • MM74C923
16-Key Encoder • 20-Key Encoder
M.C.
M.C. Carlos E. Canto Quintal
Microcontroladores
Conexión de un LCD y un Teclado Matricial de 16 teclas al µ8051
+Vcc
4.7 KΩ
3
2
1
0
7
6
5
4
B
A
9
8
F
E
D
C
ren0
ren1
ren2
P3.0
P3.1
P3.2
ren3
Col 0
Col 1
Col 2
Col 3
P3.3
P3.4
P3.5
P1.7
P1.6
P1.5
P1.4
DB7
DB6
DB5
DB4
RS
10 KΩ
E
R/W
P1.3
P1.4
P3.6
P3.7
M.C.
M.C. Carlos E. Canto Quintal
Microcontroladores
Tareas básicas a realizar para un teclado matricial
Checar
Checarsisise
se
se
seoprimió
oprimió
alguna
algunatecla
tecla
No
regresar
Se
Seoprimió
oprimióalguna
alguna
Tecla
Tecla??
Si
Rastrear
Rastrearrenglones
renglones
Para
Paraencontrar
encontrarlalacolumna
columna
de
delalatecla
teclaoprimida
oprimida
Descifrar
Descifraroodecodificar
decodificar
que
quetecla
teclase
seoprimió
oprimió
Se
Secargan
cargan ceros
cerosaa
todos
los
renglones
todos los renglonesen
en
elel Puerto
PuertoCC, ,se
seleen
leen
las
lascolumnas
columnasyyse
se
pregunta
preguntasisison
sonpuros
puros
unos
unos
Se
Secarga
carga cero
ceroaa los
los
renglones
uno
renglones unoaauno
uno
hasta
hastaque
quese
seencuentre
encuentre
lalacolumna
donde
columna dondeestá
estálala
tecla
oprimida
tecla oprimida
Una
Unavez
vezidentificada
identificadalala
columna
y
conociendo
columna y conociendoelel
renglón
renglónse
seaplica
aplicaelel
algoritmo
para
algoritmo paraobtener
obtenerelel
binario
binariode
delalatecla
tecla
oprimida
oprimida
M.C.
M.C. Carlos E. Canto Quintal
Microcontroladores
¿Cómo saber que tecla se oprimió?
0
1
2
3
RENGLÓN 0
4
5
6
7
RENGLÓN 1
8
9
A
B
RENGLÓN 2
C
D
E
F
RENGLÓN 3
COLUMNA 3
COLUMNA 2
TECLA = 4xRi + Cj
Donde:
Tecla=la tecla oprimida en binario
Ri= # del renglón escaneado
Cj= #.de la columna donde se encontró la tecla
Ejemplo,si
Ejemplo se oprimió la tecla 6,
ésta se encuentra en el renglón 1 y
columna 2, entonces:
Tecla=4x1+2=6
COLUMNA 1
COLUMNA 0
M.C.
M.C. Carlos E. Canto Quintal
Microcontroladores
Diagrama de flujo del programa del teclado matricial
Inicio
Inicio
ret
SI
rastreo de renglón i
rastreo de renglón i
Renglones ÅScan
Renglones ÅScan
mandar
mandarceros
ceros
aalos
losrenglones
renglones
leer
leerlas
lascolumnas
columnas
leer
leerlas
lascolumnas
columnas
columnas
columnas
enen1’s?
1’s?
columnas
columnas
enen1’s?
1’s?
NO
contador
contadordederenglón
renglónaa00
RiÅ0
RiÅ0
Inicializar
Inicializarrastreo
rastreo
dederenglones
renglones
ScanÅ11111110
ScanÅ11111110
columna
columna0=0
0=0??
NO
SI
SI
RiRiÅ
ÅRi+1
Ri+1
colÅ
colÅ00
SI
Desplaza Scan
Desplaza Scan
A la izquierda
A la izquierda
Ri=4?
Ri=4?
TeclaÅ4*Ri
TeclaÅ4*Ri+col
+col
ret
NO
columna
columna1=0
1=0??
NO
columna
columna2=0
2=0??
SI
SI
ColÅ
ColÅ11
colÅ
colÅ22
NO
columna
columna3=0
3=0??
SI
ColÅ
ColÅ33
M.C.
M.C. Carlos E. Canto Quintal
Microcontroladores
SCAN_REN:
MOV P3,#0F0H
MOV A,P3
CJNE A,#0F0H,SCAN_REN
RET
MOV R0,#00
MOV P3,#0FEH
MOV A,P3
ANL A,#0F0H
CJNE A,#0FH,SCAN_COL
INC R0
M.C.
M.C. Carlos E. Canto Quintal
Microcontroladores
RR A (Rotate Right the Accumulator)
Esta instrucció
instrucción rota el contenido del acumulador hacia la derecha:
cada bit es desplazado una localidad hacia la derecha, donde el bit 0 se
va al bit 7.
M.C.
M.C. Carlos E. Canto Quintal
Microcontroladores
RL A (Rotate Left the Accumalator)
Esta instrucció
instrucción rota el contenido del acumulador hacia la izquierda:
Cada bit es desplazado una localidad hacia la izquierda , tal que el bit 7
se va al bit 0
M.C.
M.C. Carlos E. Canto Quintal
Microcontroladores
RRC A (Rotate Right through the Carry )
Esta instrucció
instrucción rota el contenido del acumulador hacia la derecha a
travé
través del Acarreo ( C ) :
Cada bit es desplazado una localidad hacia la derecha , donde el bit 0 se
va al bit de acarreo (C) del PSW, mientras que el acarreo se va al bit 7
(esto es: si el acarreo tení
tenía 1 antes de la ejecució
ejecución de RRC A, entonces el
bit 7 del acumulador contendrá
contendrá un 1 despué
después de la ejecució
ejecución del RRC A.
M.C.
M.C. Carlos E. Canto Quintal
Microcontroladores
Otra alternativa
•
•
•
•
Mientras no se oprima ninguna tecla el programa
escanea renglón 0, renglón1, renglón 2, renglón 3 y se
regresa de nuevo al renglón 0 continuamente.
cuando se oprime una tecla, el número de esa tecla es
puesto en R0.
Ya que el número 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 número de la tecla.
la bandera de propósito 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..
M.C.
M.C. Carlos E. Canto Quintal
Descargar