Está en la página 1de 8

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

Rengln 0
Rengln 1
Rengln 2
Rengln 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
conexin entre
renglones y columnas .
Cuando se oprime una tecla se
hace una conexi
conexin entre la
columna y el rengl
rengln 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 nmero 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 cdigo de 4 bits de la tecla ( con 16 teclas,
teclas, los
cdigos est
estn entre 0000 y1111 en binario)
binario) aparecer
aparecer en las 4 lneas de salida
y la lnea de dato disponible (DA) se pone en BAJO. Si se conecta a una lnea de
interrupci
interrupcin el microporcesador ser
ser interrumpido cuando se oprima alguna
tecla.
tecla. La Rutina de Servicio de la Interrupci
Interrupcin, 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

Conexin de un LCD y un Teclado Matricial de 16 teclas al 8051


+Vcc

4.7 K
3

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

R/W

P1.3
P1.4

P3.6
P3.7

M.C.
M.C. Carlos E. Canto Quintal

Microcontroladores

Tareas bsicas a realizar para un teclado matricial


Checar
Checarsisise
se
se
seoprimi
oprimi
alguna
algunatecla
tecla
No
regresar

Se
Seoprimi
oprimialguna
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
estlala
tecla
oprimida
tecla oprimida

Una
Unavez
vezidentificada
identificadalala
columna
y
conociendo
columna y conociendoelel
rengln
renglnse
seaplica
aplicaelel
algoritmo
para
algoritmo paraobtener
obtenerelel
binario
binariode
delalatecla
tecla
oprimida
oprimida
M.C.
M.C. Carlos E. Canto Quintal

Microcontroladores

Cmo saber que tecla se oprimi?


0

RENGLN 0

RENGLN 1

RENGLN 2

RENGLN 3
COLUMNA 3
COLUMNA 2

TECLA = 4xRi + Cj
Donde:
Tecla=la tecla oprimida en binario
Ri= # del rengln escaneado
Cj= #.de la columna donde se encontr la tecla

Ejemplo,si
Ejemplo se oprimi la tecla 6,
sta se encuentra en el rengln 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 rengln i
rastreo de rengln i
Renglones Scan
Renglones Scan

mandar
mandarceros
ceros
aalos
losrenglones
renglones

leer
leerlas
lascolumnas
columnas

leer
leerlas
lascolumnas
columnas

columnas
columnas
enen1s?
1s?

columnas
columnas
enen1s?
1s?
NO

contador
contadordederengln
renglnaa00
Ri0
Ri0
Inicializar
Inicializarrastreo
rastreo
dederenglones
renglones
Scan11111110
Scan11111110

columna
columna0=0
0=0??

NO
SI

SI

RiRi
Ri+1
Ri+1

col
col00

SI

Desplaza Scan
Desplaza Scan
A la izquierda
A la izquierda

Ri=4?
Ri=4?

Tecla4*Ri
Tecla4*Ri+col
+col

ret

NO

columna
columna1=0
1=0??
NO

columna
columna2=0
2=0??

SI

SI

Col
Col11

col
col22

NO

columna
columna3=0
3=0??

SI

Col
Col33

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
instruccin 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
instruccin 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
instruccin rota el contenido del acumulador hacia la derecha a
trav
travs 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
tena 1 antes de la ejecuci
ejecucin de RRC A, entonces el
bit 7 del acumulador contendr
contendr un 1 despu
despus de la ejecuci
ejecucin del RRC A.

M.C.
M.C. Carlos E. Canto Quintal

Microcontroladores

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..

M.C.
M.C. Carlos E. Canto Quintal

También podría gustarte