Sitio: Decodificador|

En el caso de que este decodificador no se adapte a vuestras necesidades, os puedo elaborar uno a medida €$.
Hay ocasiones en donde necesitamos realizar un decodificador y no encontramos el integrado que cumpla con nuestros requerimientos, pues os ofrezco la posibilidad de que vosotros mismos sin conocimientos de programación podáis introducir la tabla de verdad en un microcontrolador PIC 16F628 para que realice la función que necesitéis.
El circuito no necesita ningún tipo de componente adicional, el mismo microcontrolador lleva incorporado internamente su propio oscilador para funcionar, tan solo será necesario alimentarlo con 5V.
El microcontrolador dispone de 8 salidas tipo TOTEN-POLE (proporciona "0" y "1"), y 8 entradas, en donde la numero 7 actúa a modo de latch.
El LATCH (input 7) cuando se encuentra en "0" habilita las entradas, obteniendo en las 8 salidas el resultado de la tabla de verdad, mientras que si se encuentra en "1" las salidas se mantienen en el ultimo estado, y no actúan con los cambios de las entradas.
Las 8 salidas proporcionan hasta 20mA en modo fuente y 25mA en modo sumidero, con lo que pueden atacar directamente a un display de 7 segmentos, tanto de ánodo como de cátodo común.

Para facilitar la programación de este codificador-decodificador a usuarios sin conocimientos en microcontroladores, solo tendréis que rellenar la tabla de verdad, cambiando los datos que se encuentran en la zona de memoria de la eeprom.
Necesitaremos un grabador de microcontroladores y un software que lo gestione. Tras seleccionar el 16F628A procederemos a cargar este código HEX, el cual contiene el Código de funcionamiento, el cual no debemos modificar, así como Los datos que se grabaran en la zona de la eeprom.
Tenéis que editar la zona de Datos, la cual dispone de 128 posiciones.

Con los 7 bits de las entradas podemos cubrir el total de las 128 posiciones de la tabla. Previamente he cargado algunos datos en la eeprom, para que os orientéis en la posición que debéis de grabar los datos.
Al cargar los datos hay que hacerlo en Hexadecimal, en donde podéis utilizar la calculadora que incorpora Windows para pasar de binario a hexadecimal o bien utilizar esta TABLA.
Ejemplo: haremos un conversor BCD a 7 segmentos.
ENTRADAS . . . . . . . . . . . . . . . . SALIDAS
|
tenemos que pasar el resultado de la tabla y expresarlo en Hexadecimal: 00111111=3F, 00000110=06, 01011011=5B, 01001111=4F 01100110=66, 01101101=6D, 01111101=7D, 00000111=07 01111111=7F, 01100111=67. En nuestro grabador sustituiremos los valores que actualmente aparecen 00,01,02,03,04,05,06,07,08,09 por estos otros: 3F,06,5B,4F,66,6D,7D,07,7F,67. Como en este ejemplo solo hemos utilizado 4 entradas, cogeremos las 3 restantes y las conectaremos a Vss (masa). |
Para los más avanzados en programación podéis ver el código fuente realizado en ASM.