top of page

Laboratorio 11: PSoC - El teclado matricial.

Juan David Combita Murcia, 20181007017

Electrónica Digital

Grupo 743

Universidad Distrital Francisco José


Resumen:


El teclado matricial es un elemento muy sencillo y practico a lo hora de la entrada de datos, por lo que en la presente practica se programara mediante PSoC Creator el teclado matricial y se realizara su respectiva visualización en la tarjeta de desarrollo.


I. Objetivos:


Objetivo general:


Implementar un decodificador de teclado matricial a binario natural.


Objetivos específicos:


1) Implementar el decodificador de teclado matricial que se presenta en la guía.

2) Realizar la conversión del anterior decodificador a binario natural.

3) Mostrar su funcionamiento en un display de 7 segmentos y en 4 LEDS en la tarjeta de desarrollo.


II. Recursos:


1) PSoC 5

2) Tarjeta de desarrollo

3) Ejercicio teclado matricial del libro "Introducción al PSoC5LP. Teoría y aplicaciones prácticas" de César Perdomo y Julián Camargo.


III. Marco teórico:


El teclado matricial:


El teclado matricial es un componente que viene normalmente de 4 filas por 4 columnas o 4 filas por 3 columnas, la diferencia entre el uno y el otro son las letras que se pueden ver en el que tienen ustedes en casa con el que se presenta en la figura 1.

Figura 1. El teclado matricial presentado en filas y columnas.


Su principio de funcionamiento es que cuando usted oprime por ejemplo el número 1, se cierra un circuito entre (según la imagen) el pin 3 y el pin 2, si por ejemplo usted oprime el asterisco, se cierra un circuito entre el pin 4 y el pin 3. Mientras que se podrían tener en este caso 12 entradas si tuviéramos todos los botones aislados, esto permite gastando un poco más de lógica, ahorrar en espacio y cantidad de pines.[1]


Para decodificar un teclado matricial, el método convencional es realizar el barrido de las columnas del teclado por medio de la rotación de 'O' lógico a una frecuencia adecuada que depende de qué tan "sensible" se necesite la operación del teclado, utilizando para esto una combinación de contador y decodificador. Las filas del teclado son conectadas a un codificador que tiene sus entradas conectadas a Vcc por medio de resistencias de pull up; de esta manera se asegura un ' 1 ' lógico en cada una de las entradas. Este codificador detecta cuándo una entrada cambia a '0'; al ocurrir esto se genera una señal que detiene temporalmente al contador, manteniendo durante un breve momento la combinación fila columna, con lo que puede generarse un código binario equivalente a la combinación detectada.


Se plantea la solución basada en el decodificador comercial 74C922, fabricado por Fairchild Semiconductor y por National Semiconductor, que puede decodificar un teclado matricial de hasta 4x4 teclas (16 teclas). En la figura 2 puede verse el diagrama circuital del decodificador, la idea del diseño propuesto es tomar las partes básicas del decodificador comercial e implementarlas realizando las adaptaciones necesarias de acuerdo con las funcionalidades del PSoC.[2]

Figura 2. Diagrama circuital del decodificador 74C922


Se toman para el diseño con sus respectivas adecuaciones el bloque decodificador de 2 a 4 con salidas activas en bajo, que tiene como entrada un contador ascendente de 2 bits. Este conjunto es utilizado para el manejo de las columnas de teclado, el codificador de 4 a 2 para el manejo de las filas del teclado, además 4 flip flops tipo D para generar y almacenar el código binario de salida del decodificador, el bloque que elimina el rebote generado por el contacto mecánico de las teclas y finalmente la señal de dato disponible o tecla oprimida que puede ser utilizada para generar interrupciones. La funcionalidad de poner en alta impedancia la salida del decodificador de teclado no fue implementada.[2]

Figura 3. Diagrama del decodificador de teclado matricial.


IV. Simulaciones y análisis de resultados:


El objetivo de la practica es realizar la visualización de cada tecla del teclado matricial en un display de 7 segmentos en forma hexadecimal, siendo * el E y # el F y visualizar su codigo en 4 display de la tarjeta de desarrollo.


Para esto, inicialmente se realizo el decodificador de teclado matricial en la herramienta de programación PSoC Creator:

El cual nos da un valor en binario independiente para cada signo, letra o numero del teclado, los cuales tienen un orden arbitrario, por lo cual se desarrollo un decodificador que pase cada numero binario a binario natural según corresponda, es decir; el 0 equivalente al binario 0000, el 1 al 0001 y así sucesivamente. Para ello se realiza la tabla de verdad y mapas de karnaugh para obtener las ecuaciones correspondiente de cada bit correspondiente al binario natural, donde A es el binario de entrada y B el natural:

Diseño:

Ya teniendo en orden cada entrada del teclado matricial, se implemento el decodificador de binario natural a 7 segmentos para 4 bits del laboratorio numero 5, por lo cual simplemente se tomo el diseño realizado en CircuitVerse y se implemento en PSoC Creator:

Posterior a esto, se implemento los anteriores decodificadores en el TopDesign o circuito principal del programa, adicionando las conexiones externas al cual este seria conectado, sin contar el display, ya que el programa no dispone de este.

Se realiza la asignación de pines de tal forma que queden de la forma mas practica al ser implementada en la PSoC en relación con la tarjeta de desarrollo:

Y finalmente se compila y programa la tarjeta PSoC, como se puede observar en la siguiente imagen. Al final del vídeo que encontrara mas abajo, se puede ver la implementacion completa del circuito en la tarjeta de desarrollo:

V. Conclusiones:


El teclado matricial es una de las herramientas principales en la tarjeta de desarrollo, por lo que tener estos decodificadores y saber como realizar su respectiva visualización es fundamental para el desarrollo de circuitos mas complejos, que requieran el ingreso de datos, mediante el teclado.


VI. Vídeo:



Referencias:


[1] Guía practica 11.


[2] Ejercicio teclado matricial del libro "Introducción al PSoC5LP. Teoría y aplicaciones prácticas" de César Perdomo y Julián Camargo.

Comments


bottom of page