conexion de teclados

4

Click here to load reader

Upload: elmanzaneda

Post on 26-Jun-2015

268 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conexion de Teclados

1

1

Sistemas basados en Microcontroladores

Teclados ©ATE-Universidad de Oviedo

Teclados Muy utilizado para introducir información al microcontrolador.

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

• Los hay de varios tipos: de lámina flexible, de efecto Hall, de efectoinductivo, de efecto capacitivo.

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

+Vcc

u1

R

u1

u1

t

t

IDEAL

REAL

SOLUCIONES

Hw: Red R-CBiestables

Sw: Espera deun tiemposuficiente

SOLUCIONES

Hw: Red R-CBiestables

Sw: Espera deun tiemposuficiente

2

Sistemas basados en Microcontroladores

Teclados ©ATE-Universidad de Oviedo

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

E0

E1

En

De este modo, cuando elmicrocontrolador detecteun “0” al final de la línea, sesabrá que se ha pulsado unatecla y, además, se sabrácuál ha sido.

Basta con que el programacompruebe periódicamente elestado de las entradas a lasque se ha conectado el teclado.

Basta con que el programacompruebe periódicamente elestado de las entradas a lasque se ha conectado el teclado.

+Vcc

Page 2: Conexion de Teclados

2

3

Sistemas basados en Microcontroladores

Teclados ©ATE-Universidad de Oviedo

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

0

0

0

+Vcc

0

1

1

1

1

SF1

SF2

SF3

SF4

EC1

EC2

EC3

EC4

La pulsación de una tecla sepone de manifiesto en lasentradas del microcontroladorconectadas al teclado.

En este ejemplo, se sabeque se ha pulsado una teclade la tercera columna, pero

no se sabe cuál.Se necesita desarrollaralgoritmos que permitan

determinar cuál es la teclaque se ha pulsada.

En este ejemplo, se sabeque se ha pulsado una teclade la tercera columna, pero

no se sabe cuál.Se necesita desarrollaralgoritmos que permitan

determinar cuál es la teclaque se ha pulsada.

0

4

Sistemas basados en Microcontroladores

Teclados ©ATE-Universidad de Oviedo

Muestreo secuencial.Una vez que se ha detectado que se ha pulsado una tecla, se cambia el valorde 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á latecla que se ha pulsado.

1

0

1

+Vcc

1

1

1

0

1

SF1

SF2

SF3

SF4

EC1

EC2

EC3

EC4

1

0

1

+Vcc

1

1

1

0

1

SF1

SF2

SF3

SF4

EC1

EC2

EC3

EC4

SF1 SF2 SF3 SF4 EC1 EC2 EC3 EC4

0 1 1 1 1 1 1 11 0 1 1 1 1 0 11 1 0 1 1 1 1 11 1 1 0 1 1 1 1

Es un método sencillo de implementar,pero tardará más o menos en encontrar

la tecla pulsada en función de laposición que ocupe ésta.

Es un método sencillo de implementar,pero tardará más o menos en encontrar

la tecla pulsada en función de laposición que ocupe ésta.

Page 3: Conexion de Teclados

3

5

Sistemas basados en Microcontroladores

Teclados ©ATE-Universidad de Oviedo

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

Esto dará lugar a que en las nuevasentradas sólo aparezca un cero en lafila a la que pertenece la teclapulsada.

Este método es más rápidoque el anterior y tarda lo

mismo en identificarcualquier tecla.

Este método es más rápidoque el anterior y tarda lo

mismo en identificarcualquier tecla.

1

0

1

+Vcc

1

1

1

0

1

EF1

EF2

EF3

EF4

SC1

SC2

SC3

SC4

6

Sistemas basados en Microcontroladores

Teclados ©ATE-Universidad de Oviedo

0

0

0

+Vcc

0

1

1

1

1

RB0

RB1

RB2

RB3

RB4

RB5

RB6

RB7

[S]

[E]

pull-up resistors

F1

F2

F3

F4

C1

C2

C3

C4

0

0

0

+Vcc

0

1

1

1

1

RB0

RB1

RB2

RB3

RB4

RB5

RB6

RB7

[S]

[E]

pull-up resistors

F1

F2

F3

F4

C1

C2

C3

C4

0

0

0

+Vcc

0

1

1

1

1

RB0

RB1

RB2

RB3

RB4

RB5

RB6

RB7

[S]

[E]

pull-up resistors

F1

F2

F3

F4

C1

C2

C3

C4

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.

* La posibilidad dehabilitar resistencias depull-up reduce el número

de componentes externos.

* La existencia de unainterrupción asociada a

cambios en los bitsRB<4:7> avisa de que se ha

pulsado una tecla.

* La posibilidad dehabilitar resistencias depull-up reduce el número

de componentes externos.

* La existencia de unainterrupción asociada a

cambios en los bitsRB<4:7> avisa de que se ha

pulsado una tecla.

Page 4: Conexion de Teclados

4

7

Sistemas basados en Microcontroladores

Teclados ©ATE-Universidad de Oviedo

El Puerto B es el más indicado para conectar un teclado matricial 4×4debido a la capacidad de habilitar resistencias de pull-up y de generar unainterrupción cada vez que cambia el estado de alguno de sus cuatro bits másaltos 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 dospines del Puerto B para llevar a cabo tareas de emulación (RB7 y RB6).

Esto se traducirá en que, durante la emulación delsistema, 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 microcontroladordefinitivo, todas las teclas pasarán a estar operativas.

8

Sistemas basados en Microcontroladores

Teclados ©ATE-Universidad de Oviedo

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.

0

0

0

+Vcc

0

1

1

1

1

SF1

SF2

SF3

SF4

EC1

EC2

EC3

EC4

Decodif.

4 ÷ 16

Codif

16 ÷ 4

TecladoMatricial

16 × 16

+Vcc

1

1

1

1

SF1

SF2

SF3

SF4

EC1

EC2

EC3

EC4

Decodif.

4 ÷ 16

Codif

16 ÷ 4

TecladoMatricial

16 × 16

En este caso se debería usar la exploración secuencial

Barr

ido

en c

omb.

de s

alid

a