Está en la página 1de 5

CIRCUITO CODIFICADOR

Explica detalladamente el funcionamiento del siguiente circuito codificador de teclado
hexadecimal, 74C922.

Envía tu actividad a través de este medio.

Básicamente el circuito consta de ocho entradas (x1 a x4.El Codificador 74C922 Con este dispositivo se puede controlar fácilmente y sin necesidad de ninguna librería un teclado 4X4. Si miráis el esquema de bloques del componente. Otra ventaja de este componente electrónico es que está modelado en Proteus. La salida en función de la tecla pulsada la tendremos en formato binario en las patillas A. Si en vez de interrupciones utilizamos el sistema “polling”. C y D. donde conectaremos las cuatro filas y columnas del teclado. con lo que podemos simular su funcionamiento junto con un Microcontrolador. y1 a y4). El ejemplo ya hecho del display quedaría de la siguiente manera: El valor de la tecla pulsada lo leeremos a través de las patillas RB4-RB7 y la salida DA la conectaremos a la patilla RB0/INT. con lo que el valor de la tecla pulsada se mantiene hasta que se pulsa otra y sobrescribe el antiguo valor. Además dispone de una salida (DA) que se pone a nivel alto cada vez que se pulsa una tecla (ideal para el empleo de interrupciones). B. es decir la comprobación constante del estado de las patillas (RB4-RB7) a través de un bucle infinito dentro de la función principal ó de otra cualquiera. . para emplear la interrupción por entrada de pulso externo. veréis que estas salidas van a través de unas básculas tipo D que hacen de memoria. ampliable fácilmente a 2 teclados 4X4. con cuatro líneas serían suficientes para el control del teclado.

12.puerto_D = 0x06.\*-----------------------------------------------------------*/ 06.//5 37.case 0x90: 39.break.{ 19.break. 50.break. //1 25. 23. 14.break. NOBROWNOUT.| 05. NOPUT.#use delay(clock=4000000) //Frecuencia de reloj 4MHz 11.break.| autor: biblioman | 04.puerto_D = 0x3F.case 0xB0: 33.#byte puerto_D = 0x08 // Identificador para el puerto C. 13.puerto_D = 0x66.puerto_D = 0x7F.case 0x70: 42. 32. //3 31. 35./*-----------------------------------------------------------*\ 02. 26. 07.puerto_D = 0x4F.case 0x30: 51.h> 08. 47.break. 44.puerto_D = 0x07.#int_EXT 15. //2 28. NOPROTECT. NOLVP.puerto_D = 0x6D. NOWRT.switch( puerto_B & 0xF0 ) 18. //A . 41.#byte puerto_B = 0x06 // Identificador para el puerto B.case 0xA0: 36. 20.case 0xE0: 27.case 0xF0: 24.puerto_D = 0x5B.//7 43. 29.case 0x50: 48.El código fuente del microcontrolador sería el siguiente: 01. 38. //6 40.break. //4 34.//Configuración de los fusibles.void EXT_isr(void){ 16.| Control de un teclado 4X4 con con el codificador 74C922 | 03. XT.#FUSES NOWDT.break. //9 49.#include <16F877.break.puerto_D = 0x7D. 17.case 0x60: 45. //8 46.puerto_D = 0x6F.puerto_D = 0xF7. //0 22.break. 09. NODEBUG 10. NOCPD.case 0xD0: 30.case 0x20: 21.

86.//RD6-RD0 -->como salida. //b 55. 62.void main() 77.break.puerto_D = 0x71.puerto_D = 0x7C. 59.break. 76.case 0xC0: 66. 68.case 0x80: 63.break. 74.puerto_D = 0x79. 53. 85.} 75. 72. 81. 56.{ 78.} 73. 92.break.case 0x10: 54. .case 0x00: 57. RD7--> Entrada (No utilizado) 80. //F 67.puerto_D =0x80. Lo más fácil es que conectéis el teclado al codificador como queráis y simuléis el circuito en Proteus antes de conectar el microcontrolador y hagáis una tabla de verdad con los valores de la salida en función de la tecla pulsada.//habilito interrupción externa 83.{ 90.set_tris_d( 0x80 ).puerto_D = 0x5E. 84. //inicializo puerto D (RD6-RD0=0) 87. 71.//código principal 91.enable_interrupts(GLOBAL).break.break. 69.puerto_D = 0x58. 65. //Puerto B como entrada 79.break. 88.52.//habilito interrupción global 82.while(True) 89. 94.} Comentario Dependiendo de cómo se conecten las filas y columnas del teclado al codificador 74C922 se tendrá una combinación de valores a la salida diferente.} 93.enable_interrupts(INT_EXT).default: 70.set_tris_b(0xFF). //c 58. en función del código que queramos emplear en el teclado. //E 64. //d 61.case 0x40: 60.

Utilización de menos patillas en el PIC. Fácil implementación del código a través de interrupciones. Ventajas:      No se necesita ninguna librería externa para controlar el teclado. el tamaño de la placa inevitablemente tendrá que ser un poco más grande.HEX generado al compilar es más pequeño. Posibilidad de ampliar el teclado a uno de 32 teclas. . que se puede implementar por software.Para el ejemplo de figura la tabla sería la siguiente: Tecla Salida 74C922 0 0x20 1 0xF0 2 0xE0 3 0xD0 4 0xB0 5 0xA0 6 0x90 7 0x70 8 0x60 9 0x50 A 0x30 b 0x10 c 0x00 d 0x40 E 0x80 F 0xC0 Ventajas y desventajas del uso de este componente para el control de teclados Bajo mi punto de vista. Aunque estos componentes son muy baratos y se pueden conseguir fácilmente por Internet. En fin un componente que no sustituye a la librería convencional. se puede controlar un teclado de 32 teclas con solo cinco pines del PIC. estas son las ventajas y desventajas de utilizar este componente para controlar la salida de un teclado junto a un microcontrolador: Desventajas:  la desventaja yo creo que es clara y es el tener que incluir más componentes al circuito para hacer una cosa. (en el datasheet viene el esquema de cómo hacerlo). pero que en determinados circuitos será interesante tener en cuenta. por lo que dispondremos de más memoria de programa en el PIC. El .