Está en la página 1de 4

Sistemas basados en Microcontroladores

Teclados
Muy utilizado para introducir información al microcontrolador.
• Los hay de varios tipos: de lámina flexible, de efecto Hall, de efecto
inductivo, de efecto capacitivo.

• Los más comunes son los de lámina flexible.


El problema de los rebotes.
• Debido al efecto muelle del pulsador, se producen oscilaciones en la
señal tanto al pulsar como al soltar la tecla.
u1 SOLUCIONES
+Vcc SOLUCIONES

IDEAL Hw:
Hw: Red
Red R-C
R-C
Biestables
Biestables
t
u1
u1
Sw:
Sw: Espera
Espera de
de
R un
un tiempo
tiempo
REAL suficiente
suficiente
t
Teclados 1
©ATE-Universidad de Oviedo

Sistemas basados en Microcontroladores

Teclados lineales
Muy sencillos, pero no permiten disponer de muchas teclas.
+Vcc

De este modo, cuando el


microcontrolador detecte
un “0” al final de la línea, se
sabrá que se ha pulsado una
tecla y, además, se sabrá
E0 cuál ha sido.

E1
Basta
Bastacon
conque
queelelprograma
programa
compruebe
compruebeperiódicamente
periódicamenteelel
En estado
estadode
delas
lasentradas
entradasaalas
las
que
quese
seha
haconectado
conectadoelelteclado.
teclado.

Teclados 2
©ATE-Universidad de Oviedo

1
Sistemas basados en Microcontroladores

Teclados matriciales
Varias teclas controladas con un número reducido de puertos E/S.
+Vcc

La pulsación de una tecla se


SF1 0 pone de manifiesto en las
entradas del microcontrolador
SF2 0 conectadas al teclado.
SF3 0
SF4 0 En
Eneste
esteejemplo,
ejemplo,sesesabe
sabe
que
que se ha pulsado unatecla
se ha pulsado una tecla
EC1 1 de
delalatercera
terceracolumna,
columna,peropero
EC2 1 no
nose
sesabe
sabecuál.
cuál.
Se
Senecesita
necesitadesarrollar
desarrollar
EC3 1
0 algoritmos
algoritmosquequepermitan
permitan
determinar
determinarcuál cuáles
eslalatecla
tecla
EC4 1 que
queseseha
hapulsada.
pulsada.

Teclados 3
©ATE-Universidad de Oviedo

Sistemas basados en Microcontroladores

Muestreo secuencial.
Una vez que se ha detectado que se ha pulsado una tecla, se cambia el valor
de las salidas en el microcontrolador de modo que sólo una de ellas valga ‘0’
en cada instante.

La combinación que dé lugar a un ‘0’ en alguna de las entradas identificará la


tecla que se ha pulsado.
SF1 SF2 SF3 SF4 EC1 EC2 EC3 EC4
+Vcc

0 1 1 1 1 1 1 1
SF1 1 1 0 1 1 1 1 0 1
SF2 0 1 1 0 1 1 1 1 1
SF3 1
1 1 1 0 1 1 1 1
SF4 1
EC1 1
Es
Esun
unmétodo
métodosencillo
sencillode
deimplementar,
implementar,
EC2 1 pero
pero tardará más o menosen
tardará más o menos enencontrar
encontrar
EC3 0 lalatecla
tecla pulsada en funciónde
pulsada en función delala
EC4 1 posición
posiciónque
queocupe
ocupeésta.
ésta.

Teclados 4
©ATE-Universidad de Oviedo

2
Sistemas basados en Microcontroladores

Inversión de línea.
Tras detectar que hay una tecla pulsada, se almacena el valor que hay en las
entradas, se invierten las líneas (las que eran entradas pasan a ser salidas y
viceversa) y se saca por las nuevas salidas la combinación almacenada.

Esto dará lugar a que en las nuevas


+Vcc entradas sólo aparezca un cero en la
fila a la que pertenece la tecla
pulsada.
EF1 1
EF2 0
EF3 1
EF4 1
Este
Estemétodo
métodoes esmás
másrápido
rápido
SC1 1
que
que el anterior ytarda
el anterior y tardalolo
SC2
mismo
mismoenenidentificar
identificar
1
cualquier
cualquiertecla.
tecla.
SC3 0
SC4 1

Teclados 5
©ATE-Universidad de Oviedo

Sistemas basados en Microcontroladores

Conexión de teclados matriciales en los PIC.


El puerto B de los microcontroladores PIC está especialmente pensado
para conectar un teclado matricial de 4×4.

+Vcc

pull-up resistors
F1
RB0 0 **La
F2 Laposibilidad
posibilidaddede
RB1 0 habilitar
habilitarresistencias
resistenciasdede
[S] pull-up
pull-upreduce
reduceelelnúmero
F3
RB2 0 número
F4 de
decomponentes
componentesexternos.
externos.
RB3 0
RB4 1
C1
**La
Laexistencia
existenciade deuna
una
RB5 1
[E] C2 interrupción
interrupción asociadaaa
asociada
RB6 1 cambios
C3 cambiosenenlos
losbits
bits
RB7 1 RB<4:7>
RB<4:7>avisa
avisade
deque
quese
seha
ha
C4
pulsado
pulsadouna
unatecla.
tecla.

Teclados 6
©ATE-Universidad de Oviedo

3
Sistemas basados en Microcontroladores

El Puerto B es el más indicado para conectar un teclado matricial 4×4


debido a la capacidad de habilitar resistencias de pull-up y de generar una
interrupción cada vez que cambia el estado de alguno de sus cuatro bits más
altos RB<4:7>.

Por ello se va a usar este puerto para conectar este tipo de teclados.

Sin embargo debe tenerse en cuenta que el debugger ICD2 hace uso de dos
pines del Puerto B para llevar a cabo tareas de emulación (RB7 y RB6).

Esto se traducirá en que, durante la emulación del


sistema, algunas teclas “no funcionarán”: las filas o
columnas conectadas a las líneas RB6 y RB7 del PORTB
Una vez grabado el programa en el microcontrolador
definitivo, todas las teclas pasarán a estar operativas.

Teclados 7
©ATE-Universidad de Oviedo

Sistemas basados en Microcontroladores

Extensión a teclados de más de 16 teclas.


Se puede ampliar el tamaño del teclado sin más que utilizar codificadores
y decodificadores.
+Vcc
Barrido en comb.

SF1 0
de salida

Teclado
SF2 0 Decodif.
Matricial
SF3 0 4 ÷ 16
16 × 16
SF4 0
EC1 1
EC2 1 Codif

EC3 1 16 ÷ 4
EC4 1
En este caso se debería
Teclados usar la exploración secuencial
©ATE-Universidad de Oviedo
8

También podría gustarte