# Como hacer un Decodificador



## EinSoldiatGott

La codificación en los sistemas digitales, tiene varias finalidades, como encriptar información, reducir el ruido (código gray), ahorrar espacio (código hexadecimal).

El proceso consiste en primero codificar esta información, procesarla, transmitirla y al final debe de ser decodificada para poder interpretarla.

Sin embargo en ocasiones es preciso hacer uno mismo sus decodificadores, como en este caso, en el mercado encontramos decodificadores de BCD-Decimal y viceversa y variadas combinaciones, pero por ejemplo el otro día estuve buscando y no encontré uno de BCD a Hexadecimal.

Así que este tutorial servirá para aprender como hacer un decodificador y de paso que quede por si alguien ocupa algún día un decodificador de BCD a Hexa.

*Nota: No es de BCD-Hexa en realidad es Binario---->>>Hexa*


1.- Lo primero que hacemos es listar las entradas que tendremos al igual que las salidas y en que estado deben de estar estas para cada combinación en la entrada.







En la tabla anterior, cada salida corresponde a un segmento de un display de 7 segmentos, por ejemplo para el cero deben encender todos los segmentos menos G.






2.- Después para cada salida, aplicamos una reducción por mapas de Karnaugh. 






3.- Se hacen mapas de karnaught para cada salida  y en base a la expresión booleana resultante se elabora el circuito lógico, conectando cada salida a su correspondiente segmento del display.






En la animación anterior, se puede observar que el segmento a, enciende correctamente pues solo lo hace cuando las entradas generaban una salida en alto en la tabal de verdad.

4.- Y eso es todo, ahora solo hay que hacer lo mismo con cada una de las salidas.

Esta sería la reducción para cada una de las salidas.






5.- Y finalmente se hace el circuito lógico completo.

Nótese que este display no es alfanumérico, por ello no fue posible escribir algunas letras o más bien quedaron iguales a números, como es el caso de la D que aparece como 0, la B=8, para mostrar letras lo mejor es utilizar una matríz de leds.






Dudas? Espero les sea de utilidad


----------



## MaMu

Muy bueno.
Lo que me gustaria destacar de este mini tutorial que nos ha volcado el colega *EinSoldiatGott* no es solo la creacion de nuestros propios drivers de control de display, sino, la posibilidad que se nos brinda de poder crear nuestro propio código numérico.
Aqui les dejo un link de descarga de una pequeña pero sencillisima aplicación para trabajar sobre los mapas de Karnaugh. 

Mapas de Karnaugh

Saludos.


----------



## Willington

Esta buena, otra opcion es construir una memoria ROM con diodos, 2 74HC138
para fila - Columa. yo la hice asi para un trabajo en la universidad y me  salio 
mucho mas economica 

saludos


----------



## J_Sky_Walker

Amigo que programas estas usando para los mapas de karnugh y para el esquema del circuito,
Gracias de antemano
P.D: Felicitaciones por el buen trabajo


----------



## EinSoldiatGott

J_Sky_Walker dijo:
			
		

> Amigo que programas estas usando para los mapas de karnugh y para el esquema del circuito,
> Gracias de antemano
> P.D: Felicitaciones por el buen trabajo



Hola, para el esquema utilicé circuit maker, para los mapas los hice manualmente, esos cuadros que se ven son de excel es solo para darle presentación.

Les adjunto un excelente programa para simplificación.

Saludos, Gracias y espero le sirva


----------



## J_Sky_Walker

Amigo el programa me funciono de maravillas, me ayudo con el trabajo de Circuitos Digitales que estaba haciendo

He recomendado el foro a varios compañeros, me parece que esta muy bueno, lastima que no lo conocia de antes

Bye... Saludos a todos


----------



## Electronicko

Hola, por si les sirve de algo aquí hay una macro que simplifica un poco el cálculo de las funciones lógicas booleanas y los mapas de Karnaugh.

Macro para obtener ecuacion de boole a partir de funciones logicas

Saludos


----------



## David_$BEN

ahi mando un archivo sobre el sumador con displays

ahora le amplificadore al sumador hasta 198 este si funciona pero el interruptor suma\resta no funciona solo usen en suma esta explicado en el circuit maker como funciona

sumador hasta 198 con 3 displays

no SE PUEDE CONSTRUIR UN PROYECTO UN DECODIFICADOR DE BCD A HEXADECINAL  por que BCD solo llaga hasta 9 el resto son valores (no importa) y te diera lo mismo que nada un decodificador de binario a hexadecimal es posible


----------



## quimypr

HOla:

Les cuento q estudio en el Otto Krause, y como Tp nos mandaron un sumador de dos numeros (uno de 2bits y otro de 3 bits), y la suma se representa en un 7 seg CC. Otra cosa, cuando la suma da 10 (en efecto 2 bits (maximo 3 en decimal), mas 3 bits (7 en decimal) da 10 y en el diplay no se puede representar) un led se prendia, y el display se ponia en 0. Para el sumador use el 4008, para el desborde un 4070, y un 4081, y para la decodificacion un 4511. El tema es q para el colegio me piden q haga el circuito logico del 4511, y no se si lo de este turorial e servia ya q este es para decimal, y lo q yo necesito es q llegue hasta el 9. En todo caso deberia sacar alguinos unos del mapa??

Desde ya muchas gracias


----------



## clocko

efectivamente BCD es el sistema numerico decimal codificado en binario, y en el sistema decimal solo hay 10 numeros que abarcan del cero al nueve asi que el codigo BCD abarca del 0 al 9 en binario y no se puede hacer un decoder bcd a hexadecimal pues bla bla bla .16 digitos del hexadecimal.

quimypr:

no se si esto te sirva es un sumador como tu lo pides de un número de 2 bit mas un numero de 3 bits hecho con compuertas basicas, simplemente he formado un par de medios sumadores y un sumador completo y es todo, para las salidas hacia el decoder bcd a 7 segmentos basta con aplicar un poquito de algebra para calcular las salidas hacia dos displays espero te sirva de algo los calculos no te los pongo pero el circuito quedaria como el que anexo.


----------



## TrUk

hola yo estoy tratando de decodificar de binario a bcd con el 74185 pero la señal que quiero introducirle es de 7 bits y este componente solo tiene 5 entradas. ¿Alguien tan amable podria explicarme como puedo conectarlo, o algun diagrama para que pueda decodificarlo? Muchas gracias adelantadas!

P.D.: como programa utilizo el max+plus II


----------



## gabrielg

Hola TrUk

En la hoja de datos del 74185 esta lo que buscas. Esta es la direccion (ver hoja 7).

Como el circuito indica emplea 8 bits (B0 . B6), deberás colocar el bit 8 (B7) a cero, pudiendo decodificar de 0 a 127.

http://pdf1.alldatasheet.com/datasheet-pdf/view/102201/NSC/74185.html


----------



## inaejl

¡Qué tal!
Expones de una manera sencilla y didáctica algo que realmente requiere un buen de trabajo. Precisamente estoy haciendo el decodificador binario-hexadecimal. Después de haber hecho el circuito del decodificador (después de haber deducido las salidas del circuito con ayuda de mapas k, realizadas manualmente) procedí a simular el circuito en Livewire; después utilicé el  PCB wizard para hacer las pistas de la PCB. Ahora me encuentro inmerso en el montaje real del decodificador en la PCB.
Buen trabajo con el decodificador.


----------



## Axel87

OIE esto esta buenisimo de hecho yo tengo que hacer un sumador que sume hasta 11 y eso ya lo consegui pero ahora necesito pasar esas señales de 4 bit a decimal
y lo hiba a hacer a trabes de un led display de 2 segmentos, y yo comence a hacer lo mismo que tienes tu, en tu demostracion.
busque otras opciones, pero es lo unico que se puede hacer, por que con el
integrado decodificador 74LS47 y 74LS48 despues del 9 arroja unos simbolos
extraños...

una pregunta.
hay alguna manera de sacarle el maximo partido a las
compuertas logicas
por que tu en tu esquema solo ocupaste unas AND, NOT y OR
sabes de algun metodo?

por que mi decodificador tambien quedo un poco grande y se que 
si utilizara tal ves otras compuertas me quedaria mas reducido
si alguien sabe de algun metodo para  sacarle el maximo de rendimineto
a las compuertas, por fabor que me escriba 

 Gran tutorial EinSoldiatGott


----------



## Sir_Stone

Como estan respetada comunidad, es mi primer post y espero obterner su valiosa ayuda. Necesito mostrar en un solo display mi nombre, pero cada letra debe aparecer usando un solo switch manual que al accionarlo aparezcan cada una de las letras y al final se repita. Se como lograr hacerlo con un dip-switch manualmente pero con un solo switch no lo se hacer. Espero su ayuda, gracias.


----------



## cevollin

colega utiliza un circuito 74ls90 (contador) y en la entrada de clock 1  esa la controlas mediante un pulsador 
la entrada de clock dos la unes con el pin numero 12 del circuito integrado 

pero ojo utiliza una compuerta logica y un capacitor para que no te de rebote el pulsador 

despues armate un decodificador con compuertas logicas a y ya asi de sencillo


----------



## cevollin

bueno aqui te dejo un ejemplo de como hacer lo que tu dices el circuito esta hecho en proteus suerte


----------



## JvLIO

para que hagas un decodigicador de la parte mas facil tienes que hacer una tabla de verdad dependiendo que quieres obseravar en tu diplay luego un mapa de karnought para luego aplicar algebra de boole y luego inplementar que es lo mas facil.


----------



## Sir_Stone

Muchas gracias estimado, me sirvió bastante. Agradezco tu aporte.


----------



## cevollin

hola amigos pues la verdad eso de hacer decodificadores con compuertas logicas como que es un rollaso mapas de karnaug etc etc lo ideal seria usar multiplexores y unas cuantas compuertas logicas asi ahorrarias un poco  de  espacio en el protoboard o pcb aqui les adjunto un mini tutorial de como hacer decodificadores con estos maravillosos IC'S disfrutenlo


----------



## Federico González

Lo Bueno del diseño de un decodificador hecho sólo a base de compuertas es que es posible hacer un estudio profundo sobre toda la lógica combinacional, así pues quisiera compartir este diseño personal con los participantes de este foro:

DISEÑO Y MONTAJE DE DECODIFICADOR ALFABÉTICO EN DISPLAY SIETE SEGMENTOS.


----------



## kustavo2287

Aquí les dejo este aporte un decodificador de binario a decimal con dos display, cuatro entradas y 14 salidas de 0 a 15.


----------



## Necro

Disculpen por abrir un tema de mas de un año de inactividad pero queria hacer una notación en esta parte, ya que presisamente ando haciendo un trabajo de esto... emmm en tu tabla de verdad tienes un error a mi parecer.. normalmente cuando representas la B y D la tienes que representar en minuscula por que los puedes confundir con:   b (Se puede confundir con el 8)   y el d (se puede confundir con el 0). 

La codificacion para ambos... seria:

b= 0011111
d= 0111101

Lo que haria qe esos mapas de karnaugh esten incorrectos por no implementar correctamente esas dos letras, pero para practica estan bien, quiza lo implemente el otro fin de semana, que tenga tiempo para hacerlo ya que ahorita ando ago atorado

Si hicieron notacion de esto y ami se me paso no leerlo les pido una disculpa, por todo... saludos FElectronica 

Y creo que se simplificarian todavia mas si utilizan maxiterminos


----------



## Yeey

Podrian subir la sumulacion en proteus del deco binario a hexadecimal....


----------



## MrCarlos

Hola Yeey

Tu mismo la puedes realizar.
Básate en la imagen que está en la parte baja del mensaje #1 del originador (EinSoldiatGott) de este tema.
La puedes copiar a tu PC.
Abre el ISIS de Proteus y incerta compuertas AND de 2, 3 y 4 entradas así como compuertas OR de 2, 3 y 4 entradas y, por supuesto el Display de 7 Segmentos.
Empieza a hacer el alambrado como se ve en la imajen que adjunto el originador de este tema.

También puedes desarrollar ese decodificador utilizando la herramienta de SoftWare que tembien adjunto el originador de este tema en su mensaje #5.

saludos
a sus ordenes


----------



## Yeey

gracias muchas gracias por la descripcion hay estaba mi duda


----------



## Lina Denahi

Hola, yo tengo que hacer algo similar, agradecería mucho si me ayudaran con como empezar, es lo que sigue:
Ya tengo realizado mi circuito que va al decod 7 segmentos, y de ahi al display. Entonces, me despliega todos los valores correctamente hasta el 9, y de la A a la F, los da incompletos. Lo que tengo que hacer es completar en el display de la A a la F. 
Por ejemplo, en la letra A, encienden solo los segmentos d,e,g. Por lo cual falta que encienda el segmento c. (Hablando de una a minúscula). Y asi tengo que ir haciendo esto con cada letra. 

Tengo que hacerlo con TTL, y la vdd no se me ocurre como! ayudaaa


----------



## MrCarlos

Hola Lina Denahi 

Solamente viendo tu circuito podríamos opinar algo para que se vean en el Display de 7 segmentos de la A a la F.

Comprime, con WinZip o WinRar, el archivo que se genera con tu simulador y adjúntalo aquí.

Sin mirar tu diseño es muy difícil hacerte alguna recomendación.

saludos 
a sus ordenes


----------



## sp_27

Quizá baste con ver el circuito para darse cuenta del error, pero sería bueno también que mostraras los Mapas de Karnaugh que utilizaste para realizarlo, a veces el error viene desde el origen. Lo que si te aseguro es que así sin nada es difícil ayudarte, como dijo MrCarlos.

Recuerdo haber hecho ese proyecto hace unos años, ocupé casi completamente un protoboard de 3 pistas, y eso luego de hacer un montón de reducciones algebraicas y en el circuito


----------



## MrCarlos

Hola Lina Denahi

Pero. . . Qué pasó con lo que te recomendé en el Tema: convertidor de binario a hexadecimal.
Que se localiza en este enlace.
https://www.forosdeelectronica.com/f25/convertidor-binario-hexadecimal-57232/#post766140
En el mensaje #5 Fechado: 01/Feb/2013

Recuerdas lo qué te recomendé ??
_Para desarrollarlo puedes utilizar el *Boole-Deusto* el cual lo puedes encontrar en Google.com, bajarlo e instalarlo en tu PC._

Con ese SoftWare solo tienes que tener tu tabla de la verdad.
-Corres ese programa, Boole-Deusto.
-Nombras las variables de entrada y salidas.
-Metes la tabla de verdad.
-Y este te da los diseños –circuitos- para cada segmento.
-Mapas K.
Utilízalo, te puede servir en el futuro.

Te estoy adjuntando el archivo que se genera con este SoftWare. La extensión es SCO.
También te adjunto los diseños –circuitos- que genera. Estos van en formato .JPG
No te asustes si ves muchos inversores. Solo requiere 4, claro, aparte de otras compuertas. fíjate bien y lo descubrirás.

Pero. . . alcanzo a vislumbrar, por lo que dices, que tienes un decodificador, cualquiera: 74LS47, 74LS48 o cualquier otro que sea decodificador BCD a 7 segmentos y a este tienes conectado tu Display.
Entonces requieres una circuiteria para que después del 9 lograr que se vean en el Display desde la A hasta la F.
Es esto cierto ??

Con lo que te adjunto puedes realizar tu proyecto.
A propósito, qué simulador para circuitos electrónicos utilizas ??

saludos
a sus ordenes


----------



## aguevara

No es mejor usar un decodificador MC14495 y un display TIL311, de esa manera lo que tengan en BCD lo veran directamente en un display de 7 segmentos pero en su valor hexadecimal.
Solo es como aporte saludos
http://www.datasheetcatalog.org/datasheet/motorola/MC14495P1.pdf
http://www.df.unipi.it/~flaminio/laboratori/pdf_files/TIL311.pdf


----------



## MrCarlos

Hola aguevara

Si, efectivamente es mejor utilizar un decodificador MC14495 y un Display como el que mencionas.
Pero no en este caso.
Fíjate lo que menciona Lina Denahi en la última línea de su mensaje #28 dice:
*Tengo que hacerlo con TTL,*

Algo así como a nivel compuertas lógicas.

saludos
a sus ordenes


----------



## aguevara

Bueno MrCarlos, no me gustaria entrar en polemica y antes que nada presento mis respetos a tu persona, pero si debo aclarar algunos puntos:
a) TTL es una tecnica de fabricacion de compuertas logicas (Transistor Transistor Logic) como lo seria ECL, CMOS, etc.
b) Todos los IC digitales (decodificadores, contadores, microcontroladores etc) estan hechos en base a compuertas logicas, "algo asi como a nivel compuertas logicas"

Lo que si entiendo es que Lina Denahi se refiere a que quiere hacerlo con un tipo de familia especial de compuertas logicas con tecnologia TTL, lo mas razonable es usar la serie 74xx. Ahora bien al pie de mi nota use la frase "Solo como un aporte", es decir si hay alguien que desee implementar un deco como el que se plantea pero de la manera mas simple, pues posteo un posible solucion, y si lo desean hacer de otra manera adelante no pasa nada.
Saludos


----------



## savad

Lo mejor es aprender a usar el software WinCupl que es gratis, alli puedes simular tu circuito y generar el codigo HEX para grabarlo en cualquier GAL. Anteriormente me gustaba Boole-Desuto pero tiene la limitante de entradas, solo una salida, y limite en número de estados en circuitos secuenciales, pero para principiantes esta bueno. 

WinCupl tiene la ventaja de ser un programa profesional, ampliamente documentado y es el punto de inicio para software mas complejos.

Espero que te sea de utilidad


----------



## noelnajera

podrias compartir el digrama con el archivo del programa ?


----------

