# Convertir valores binarios a BCD



## hector rubio

Primero un saludo a todos los que visitan este sitio tan provechoso para los que nos gusta la electronica..bueno mi problema es que estoy diseñando un termometro digital con display's, uso como sensor el LM35, de alli lo llevo a un ADC0804, y su salida es en codigo binario,he aqui el problema como convierto yo de binario a BCD para poder manejar los display's con los 7447.me dijeron que con un 74185,pero no tengo su diagrama de conexion...es por ello que les pido el favor si tienen algo referente a este se los sabre agradesre.....  GRACIAS SALUDOS


----------



## Guille DJ

podria coincidir con esto:

te lo dejo para que lo descargues y le eches un vistazo

un saludo

http://pdf1.alldatasheet.com/datasheet-pdf/view/98237/TI/74185.html


----------



## VichoT

Holas.hector rubio.Tengo enetndido que las salidas de un ADC Cualquiera dela serie ADCXXXX tiene una salida en codigo BCD y no binario.... asi esque la salida del ADC la podras enviar directo al 7447.

BYE!


----------



## hector rubio

hola,vichot muchas gracias por escribirme, bueno estube revisando algunos datasheets de convertidores ADC incluso algunos circuitos y las salidas del ADC0804 es en codigo binario,ahora por favor si tienes un ADC que su salida sea directamente en codigo BCD porfavor hasmelo saber....GRACIAS


----------



## fdesergio

Saludos, todos los Conversores A/D tienen la salida en BINARIO a excepcion de uno que la tiene en BCD multiplexada, ese IC es el CA3162 que se usa en conjunto con el CA3161, ac te dejo el dato , aplicaciones hay muchisimas tambien podes usar el IC ICL7106 para un LCD o el ICL7107 para Display de 7 segmentos, busca en la RED, espero te sirva, chauu


http://web.tiscali.it/i2viu/electronic/dvm.htm
http://213.97.130.124/termo/termo.htm
https://www.forosdeelectronica.com/f23/sensor-temperatura-lm35-1783/
http://orbita.starmedia.com/kobori/termometro.htm


----------



## VichoT

Holas.A Todos. sorry por mi error ..pero entonces pido información sobre que le llaman binario ???????????? ya que para mi codigo binario y BCD son casi lo mismo....para mi 0010 significa 2 en binario y en BCD....


BYE!


----------



## The_Master_Col

El decodificador 7447 tiene un amigo inseparable que es el contador 7490 juntos pueden convertir una entrada binaria a una salida BCD sin ningun problema.

VichoT no estoy seguro pero creo que la diferencia entre binario y BCD es que el codigo maneja 4 bits, me explico, el número 10 es 2 en binario pero en BCD no existe. Si estoy equivocado que alguien me corrija estamos aca para aprender todos.

Cualquier duda con el 7490, si se la respondere.

Saludos y feliz aprendisaje...


----------



## EinSoldiatGott

The_Master_Col dijo:
			
		

> El decodificador 7447 tiene un amigo inseparable que es el contador 7490 juntos pueden convertir una entrada binaria a una salida BCD sin ningun problema.
> 
> VichoT no estoy seguro pero creo que la diferencia entre binario y BCD es que el codigo BCD maneja 4 bits, me explico, el número 10 es 2 en binario pero en BCD no existe. Si estoy equivocado que alguien me corrija estamos aca para aprender todos.
> 
> Cualquier duda con el 7490, si se la respondere.
> 
> Saludos y feliz aprendisaje...



Hola, sería mucha molestia si pone un diagrama de como hacer un convertidor con el 7447 y el 7490??

La verdad me agradaría verlo y creo que algún día me será de gran ayuda.

Saludos y de antemano gracias


----------



## fdesergio

efectivamente el BCD solo posee 4 bits y el mumero maximo que podria mostar seria 15 que seria 1111 pero BCD solo muestras los 10 digitos decimales del 0 al 9 por lo tanto valores mayores de 9 no existen en BCD y son errores, si estos errores se ingresan a un decodificador de BCD a 7 segmentos nos muestra en el DISPLAY simbolos sin sentido, espero hayan entendido, chauuuuuuuuu


----------



## The_Master_Col

Hola, el circuitos integrado 7490 es un contador de decadas de forma automatica que funciona con pulsos de reloj, no convierte como yo habia dicho anteriormente, la unica forma que yo veo para implementarlo en un circuito es que este circuito tenga una sola salida la cual podría ser conectada a la entrada de reloj del 7490.

Hora he adjuntado un diagrama sencillo con un 7447 el cual uno ingresa de forma manual a través de los interruptores el codigo binario.

Explico un poco el funcionamiento:

Cuando los interruptores estan cerrados, a la entrada del 7447 llega un 0 y cuando estan abiertos llega un 1.

El circuito integrado tiene entradas ABCD pero para implementar el circuito se utilizaría DCBA, así, para visualizar el número 1 en el display se debe ingresar manualmente lo siguiente DCBA=0001, si se ingresa DCBA=1000, veríamos el número 8, esto es importante ya que para implementarlo en un circuito con 4 salidas en binario debemos simplemente reemplazar los interruptores por las salidas del circuito y tener cuidado al conectarlo porque las cosas podrían no salir como esperamos.

Para finalizar, cabe resaltar que el 7447 tiene salidas activas en nivel bajo por lo que el display debe ser uno con configuracion anodo común.

Espero que les sirva de algo y cualquier duda, solo pregunten.


----------



## EinSoldiatGott

En cuanto al circuito, si se utilizar el 7447 como decodificador, pero usted había dicho que con un 7490 y un 7447 podíamos convertir un código binario a BCD.

Saludos


----------



## The_Master_Col

Si eso dije pero fue una idea que se me ocurrio de repente mientras leia pero estoy en un error, lo que pasa es que el 7490 es simplmente un contador y mientras leia tube un cruce de conceptos, sin embargo, si se me ocurrio talves si sea posible, haré las respectivas pruebas y despues les comentare.

Saludos.


----------



## EinSoldiatGott

The_Master_Col dijo:
			
		

> Si eso dije pero fue una idea que se me ocurrio de repente mientras leia pero estoy en un error, lo que pasa es que el 7490 es simplmente un contador y mientras leia tube un cruce de conceptos, sin embargo, si se me ocurrio talves si sea posible, haré las respectivas pruebas y despues les comentare.
> 
> Saludos.



Hola, jeje si me sorprendió eso de usar un contador como decodificador, en fin en caso de que lo logre me avisa, por ahí vi la matrícula de un conversor de Bianrio a BCD pero no es muy comercial el circuito ese.

Saludos


----------



## The_Master_Col

De cualquier forma pienso que ayudaria que nuestro compañero hector rubio publicara el diagrama especificando la salida para poder observar el caso particular y asi brindarle una mejor asesoria.

Saludos.


----------



## capitanp

Miren lo que se busca es convertir valores binarios a decimal, osea un numro de 8 bit en un numero decimal del 0 al 255
se me ocurre dos contadores uno binaio y otro decimal que cuenten a la misma vez y al encontrar el par binario muestre el numero
como el de la imagen





tambien deja la simulacion por si hay que reinarlo
saludos


----------



## lilian.rosero

hector rubio dijo:
			
		

> Primero un saludo a todos los que visitan este sitio tan provechoso para los que nos gusta la electronica..bueno mi problema es que estoy diseñando un termometro digital con display's, uso como sensor el LM35, de alli lo llevo a un ADC0804, y su salida es en codigo binario,he aqui el problema como convierto yo de binario a BCD para poder manejar los display's con los 7447.me dijeron que con un 74185,pero no tengo su diagrama de conexion...es por ello que les pido el favor si tienen algo referente a este se los sabre agradesre.....  GRACIAS SALUDOS



Quito 2 de mayo 2007

Bueno el CI 74185 es un convetidor de binario a BCD con 5 entradas binarias y 8 salidas en bcd, obviamente si tienes 5 entradas binarias, maximo podras convertir  del 0 al 11111 (o sea del 0 al 31) , y como el rango de ese sensor de temperatura si no me equivoco es hasta 100 ° C no te va alcanzar este convetidor, necesitarás otro, minimiode 7 bits de entrada para que te convierta hasta el 127, Con todo si quieres saber mas sobre este conversor puedes verlo en el Data sheet, pero creo que ya no lo venden pues en un ECG que tengo aparece como DISCONTINUED. 

Espero poder haberte ayudado algo
Suerte en tu proyecto


----------



## lilian.rosero

VichoT dijo:
			
		

> Holas.A Todos. sorry por mi error ..pero entonces pido información sobre que le llaman binario ???????????? ya que para mi codigo binario y BCD son casi lo mismo....para mi 0010 significa 2 en binario y en BCD....
> 
> 
> BYE!



Quito 2 de mayo 2007

Saludos cordiales,


Sabes el codigo binario y el Bcd no son lo mismo se asemejan hasta el 9 pero a partir del 10 , el Bcd es distinto al Binario 
Por ejemplo:
el 10 en bin el 1010 y en Bcd es 00010000 
O sea cada dígito decimal lo codificas con 4 bits en binario, y obtienes el codigo BCD

para formar el 54 en bcd  pones el 5 = 0101 y el 4=0100 y los juntas y tienes: 01010100 que es el 54 en formato bcd,
Con todo revisas un tutorial que hay en este foro, sobre conversion binario a bcd te va a servir de mucho.


----------



## TrUk

Gracias por la explicacion sobre el 74185. Yo quisiera convertir 7 bits binarios a BCD para poder contar hasta 99. ¿hay algun componente similar al 74185 pero que tenga 7 entradas?

Gracias adelantadas!


----------



## gabrielg

hola
los numeros binarios y los codificados en BCD (decimal codificado en binario) son iguales para valores entre "0" y "9". Es decir: el 0 BCD es el 00000000 binario, el 1 BCD es el 00000001 binario y así hasta llegar al 9 BCD que es el 00001001. Los codigos restantes (de A a F) no tienen representacion en BCD.
Se suele utilizar un numero binario de 8 bits (Byte) como 2 numeros BCD pudiendo mostrarse de 00 a 99 en decimal. ¿Se entiende?. Suerte.


----------



## chat0

hola a todos, bueno soy nuevo en el foro, queria saber sobre el convertidor de binadio a bcd estub viendo la respuesta de "the master" el diagrama es correcto pero tengo una duda me piden convertir un numero binario de 4 bits a bcd, bueno un numero binario de 4 bits tenemos 16 convinaciones es decir hasta el numero 15 el cual en bcd seria 0001 0101 de esta manera requeriria de dos display, para tal caso del 0 al 9 como se haria para q displayen 09 y no 9...si me estoy equivocando en algo disculpen y haganmelo saber  , gracias por adelantado


----------



## ciri

Esto es lo que quieres?

http://www.alldatasheet.net/view.jsp?Searchword=CD4511BC


----------



## stgmoreno

Tengo un proyecto. Es convertir cualquier valor binario en BCD pero solo puedo usar contadores. Asi que ningun decodificador puedo emplearlo. Alguna sugerencia? Gracias.


----------



## JMata

stgmoreno, por lo que se el decodificador te ayuda a encender el display, si no lo usas tendras que hacerlo con logica, esto es cuando el numero es cero, que barritas del display encender, y asi para cada numero, hasta el nueve por supuesto, ya que el BCD, llega hasta el nueve en cada display, asi que tendrias que manejar tantos display como digitos quieras manejar, para unidades, decenas, centenas, etc. algo que se volveria muy complicado sin un decodificador para cada display.


----------



## truxy

Buenas!

Me he quedado atascado en un motaje, porque quiero pasar de binario natural de 8bits a BCD de 3 décadas y puedo utilizar una EPROM o una PAL, pero no se muy bien como programarlas para que me hagan esto, y aparte la EPROM tiene 8 salidas cuando creo que necesito 12 no?¿, y con la PAL me pasa lo mismo, porque como máximo se pueden utilizar 8 patillas como salidas.

Son la PAL 16R4/6 y la EPROM 2716

Un saludo


----------



## juanjo1786

BCD es lo mismo que un decimal en binario (Cuatro bits por digito);
Ejemplo: 35 d (Decimal)= 0011 0101 (BCD); es decir, si en decimal con un digito se puede representar como máximo el nueve, en BCD también, con 4 bits mostrariamos el nueve. 
El binario con 4 bits se pueden representar hasta el numero 15 (16 numeros, del 0 al 15), generalizando en binario, con n bits podemos contar hasta 2^(n-1).
Saludos!.


----------



## hector76

Hola buenas! Por primera vez escribo a este foro y veo que aqui estan interesados en convertir de bcd a binario, pero la pregunta mia es si hay algun pequeño c.i. (porque integrado creo que no hay)que convierte de bcd a binario, es decir al reves.
Gracias


----------



## rikrdos6

TrUk dijo:
			
		

> Gracias por la explicacion sobre el 74185. Yo quisiera convertir 7 bits binarios a BCD para poder contar hasta 99. ¿hay algun componente similar al 74185 pero que tenga 7 entradas?
> 
> Gracias adelantadas!



Esto que dices se puede implementar usando el mismo 74185, pero para una entrada de 7 bits, nesecitaras tres del mismo, revisa el datasheet del integrado, ahi esta el diagrama de un convertidor binario de 7 u 8 bits a bcd


----------



## Patico21

hola a todos espero puedan ayudarme quisiera convertir un numero binario de 5 bits a bcd...segun mire el 74185 es una opcion pero segun tambien lei esta descontinuado...sin el decodificador a mi alcanse como puedo hacerlo ayudenme con eso por favor les agradeceria mucho


----------



## juanjo1786

Sé que es mucho decir, ¡y tal vez suene un poco exagerado!, pero...¿Está dentro de tus posibilidades utilizar un microcontrolador?. Puede ser una opción en caso de que no encuentres el integrado.
Saludos.


----------



## Patico21

mira tan al alcanse de mis conocimientos no esta pero tengo prohivido utilizar un micro porque mi dichoso profesor nos obliga a sacar por medotos diferente y la verdad que no preciso la idea de como hacerlo si tu sabes de alguna para poder hecharme una mano con eso te lo agradeceria un mundo


----------



## juanjo1786

Me dices que tienes 5 bits.
Un númmero con K digitos decimales requerirá 4K bits en BCD. Por ejemplo el número 396, se representa en BCD con 12 bits, así: 0011 1001 0110 = 3 9 6. Cada grupo de cuatro bits representa un número decimal.
Ahora bien, tu tienes 5 bits ¿O te refieres a 20 bits, para tener 5 decimales?.
Saludos.


----------



## juanjo1786

De cualquier forma, se me ocurre con compuertas lógicas... .
Cualquier cosa aqui estamos por el foro.


----------



## Patico21

hola de nuevo muchas gracias por responder mira el problema que me plantearon es que tengo 2 dip swithc de 4 en esos 2 dip switch debo colocar 2 numeros cualesquiera obiamente del 0 al 15 y sumarlos mediante un 7483 pero este integrado me da la respuesta en binario a 5 bits por ejemplo sumo el 2 que en BCD seria 0010 y el 6 que seria 0110 los sumo en el 7483 y la salida me daria en binario el 8 que seria 01000 porque este integrado segun nos indico mi profesor nos da la respuesta en 5 bits....en definitiva el problema radica en que esa salida de la respuesta tengo que mostrarla en 2 displays e ahi el problema de como cambiar ese binario a BCD para poder utilizar el 7447 y mandarlo a los displays


----------



## rogerca

amigo puedo usar el 74ls148 es un codificador octal a bcd si no me equivoco de todas maneras revise su datasheet


----------



## Patico21

hola que tal ya logre realizar este sistema con muchos problemas a travez de una tabla de valores creando variables pero muchas gracias por tomarte la molestia en contestar


----------



## unleased!

hector76 dijo:
			
		

> Hola buenas! Por primera vez escribo a este foro y veo que aqui estan interesados en convertir de *bcd a binario*, pero la pregunta mia es si hay algun pequeño c.i. (porque integrado creo que no hay)que convierte de *bcd a binario*, es decir al reves.
> Gracias


----------



## Patico21

hola mira lo que yo hice para mi proyecto es basarme en un poco de logica para poder decodificar el numero binario a bcd es decir sumarle al numero binario que deceo mirar en bcd 6 en binario y ya te queda el numero en BCD para que puedas utilizar un 7447 y poderlo mirar en display de 7 segmentos


----------



## diego2011

hola  a todo soy nuevo en este foro, primero quiero agradecer de ante mano a las personas q puedan ayudarme con el siguente problema.

nesecito hacer un convertidor de 5 bits binarios a 2 bcd por medio de contadores... es urgente alguien podria ayudarme con eso por favor? yo puedo hacerlo con flip flop pero no se q contador utilizar ni como se pueda emplear dicho integrado... muchaas gracias


----------



## camiloamin89

Hola a todos a mi me pasa algo mas, estoy haciendo un termometro digital y utilizo los mismos componentes solo que no encuentro como llevar la salida en binario que me da el A/D a su representacion BCD para los 7447 ya que la pastilla que necesito no la venden si alguien me puede dar otra referencia de un convertidor de binario a decimal le agradezco.. chao


----------



## camiloamin89

hola me referia a un convertidor de binario a BCD para mostrarlo en display gracias


----------



## elosciloscopio

Ya sé que llego tarde, pero he estado con estos convertidores y he construido esto:

Funciona de maravilla y sólo hace falta un CD4511


----------



## nietzche

La respuesta del convertidor esta en un 7485 que es un sumador con fast carry. Yo he logrado hacerlo al revez, de BCD a BINARIO usando dos de estos integrados y jala de maravilla, lo unico que hay que acordarse es de sumas y restas en binario. Dejenme hacer el circuito y si me sale lo posteo


----------



## cerebroo

Si estas llevando circuitos digitales, pues creo que lo mejor no es que recibas el esquema hecho, solo para que lo montes, sino que tomes los conceptos mas importantes, y diseñes.. 
Si buscas hacerlo solo con logica y compuertas, pues es un trabajo muy extenso, io lo hice el ciclo pasado...  salieron como 4 protoboard. 
Perop si lo quieres para una aplicacion poersonal, pues mejor usa un PIC.. 

Saludos,

Cerebro¬¬


----------



## elaficionado

Hola.

Mira esto, tal vez te puede servir.

Chao.
elaficionado.


----------



## sony

elosciloscopio dijo:


> Ya sé que llego tarde, pero he estado con estos convertidores y he construido esto:
> 
> Funciona de maravilla y sólo hace falta un CD4511


cual diagrama usaste?


----------



## isremixes

woouu, gracias porfin pude encontrar esto, gracias me ayudaste muchisimo le diste al clavo


----------



## tahito

q onda vengo con el fin de q me ayuden tengo q elaborar un teclado numerico q por cada me salga la tecla precionada equivalente en ascii me pueden ayudar como convierto un valor binario a bcd 74158 no sirve gracias


----------



## annibal2010

hola...
alguien me puede ayudar con numeros BCD
en lo que respecta a sumas, se que se realiza igual que un binario, pero al querer sumar  80+81 en BCD no sale la respuesta.
para ciertos casos si sale pero para casos como estos no.


----------



## Eduardo

annibal2010 dijo:


> ...en lo que respecta a sumas, se que *se realiza igual que un binario*, pero al querer sumar  80+81 en BCD no sale la respuesta.
> para ciertos casos si sale pero para casos como estos no.


Error. 
 Es igual *solo la primer fase* (la suma binaria), despues viene el "ajuste decimal" --> Se controla si hubo carry y half-carry (del bit3 al 4) y si los valores de cada nibble son mayor que 9 --> de acuerdo a lo que de, se le suma 06h, 60h o 66h.

En el ejemplo que das estas usando 8 bits (dos digitos, packed-BCD) , mas o menos lo mismo pero mas sencillo si usas 1 digito (4 bits)


----------



## annibal2010

pero en el caso de 80+81 en BCD(1000 0000 + 1000 0001) no se produce el ajuste decimal, por lo tanto la respuesta es (1 0000 0001) = 101 en dec. lo cual no es la respuesta correcta. como hago para que la respuesta sea (1 0110 0001), 161 en dec.
estoy haciento estos ejercicios porque debo implementar un sumador BCD de 8 bits(2 digitos) y me han surgido estos inconvenientes


----------



## Eduardo

> pero en el caso de 80+81 en BCD(1000 0000 + 1000 0001) *no se produce el ajuste decimal*, por lo tanto la respuesta es (1 0000 0001) = 101 en dec. lo cual no es la respuesta correcta.


Como que no se produce? Y el carry que?  Lee de vuelta lo que escribi.


----------



## annibal2010

no entiendo la parte de 06h, 60h, 66h, la verdad solo tenia conocimiento que se sumaba
(0110)-> 6 dec,  si cada nibble del resultado era mayor que 9


----------



## Eduardo

Siempre que en el nibble haya carry o resulte mayor que 9 se suma 6 (cuantas veces te voy a tener que decir lo mismo? )

Ojo que al ser packed-BCD tenes 2 carrys.




		Código:
	

Con 4 bits:

        1000 ;   8
     +  0101 ; + 5
     -------
        1101 ; Mayor que 1001 ==> Sumar 6
     +  0110
     -------
      1 0011 ; 8 + 5 = 1 3 



        1000 ;   8
     +  1000 ; + 8
     -------
      1 0000 ; Hay carry ==> Sumar 6
     +  0110
     -------
      1 0110 ; 8 + 8 = 1 6 
      
           
           
Con 8 bits:      

        1000 1001  ;   89
     +  0101 1000  ; + 58
     ------------
        1110 0001  ; Hubo carry del bit3 al bit4
     +  0110 0110  ; y MSN es mayor que 1001 ==> Sumar 6 a cada nibble
     ------------
      1 0100 0111  ; 89 + 58 = 1 47


----------



## annibal2010

gracias Eduardo por tu ayuda...... no te enojes.... ja ja 
es una exelente explicacion....
estaba muy equivocado en mis apuntes---
ahora si ya tengo todo claro... gracias.....¡¡


----------



## MrCarlos

Hola a Todos

Un tema, en este foro, DESTACADO.
Convertir de Binario a BCD, creo que primero tenemos que comprender muy bien qué es Binario y qué es BCD.
(A) Convertidor de Binario a BCD.
Vean esa frase de arribita y la de aquí abajo:
(B) Binary to BCD converter.

Dicen lo mismo solo que una frase está en ingles y la otra en español.
Casi tienen las mismas LETRAS; vamos diciendo, por un momento que (A) está en BCD y (B) está en binario.
Los 2 frases utilizan letras para formar palabras y palabras para formar la frase. Dicen lo mismo.

Igual es el sistema de numeración binaria y BCD. La representación de un número es por ceros o unos SOLAMENTE. Esas solas 2 figuras (1, 0) son nuestro alfabeto, no existe otra figura para la representación de número binarios o BCD. 

Además recuerden siempre: en nuestros sistemas de numeración una cifra está directamente relacionada con la posición que ocupa, respecto a su valor, dentro del número sea decimal o binario, así que por ejemplo:
1946: mientras más a la izquierda esté vale más.
1 ocupa el lugar de los miles.
9 ocupa el lugar de los cientos.
4 ocupa el lugar de los dieses.
6 ocupa el lugar de las unidades.

En binario es igual
11110011010: mientras más a la izquierda esté vale más.
1 Ocupa el lugar de los 1024. 
1 Ocupa el lugar de los 512.
1 Ocupa el lugar de los 256.
1 Ocupa el lugar de los 128.
0 Ocupa el lugar de los 64.
0 Ocupa el lugar de los 32.
1 Ocupa el lugar de los 16.
1 Ocupa el lugar de los 8.
0 Ocupa el lugar de los 4.
1 Ocupa el lugar de los 2.
0 Ocupa el lugar de los 1.
Para comprobar solo hay que sumar el valor de la posición de aquellos que sean 1. debe resultar 1946.

En BCD es igual.
Y qué es eso de BCD ? Bueno, lo que quieren decir esas siglas es: Binario Con Código DECIMAL.
Esto es: sigue siendo Binario 1’s y 0’s (Nuestro alfabeto), pero es formato decimal es de código decimal. Solo del 0 al 9. son todas las cifras en decimal, Cierto ?. Código decimal quiere decir solo del 0 al 9.
Recordemos de nuevo que una cifra está directamente relacionada con la posición que ocupa, respecto a su valor, dentro del número sea decimal o binario.
Así que en Binario para representar una cifra decimal requerimos de 4 Bit’s y tienen un valor de: (los primeros 4)
8, 4, 2, 1.
Entonces:
0001, 1001, 0100, 0110: mientras más a la izquierda esté vale más.
Vamos eliminando los 3 0’s de la extrema izquierda. Cero a la izquierda no vale nada igual que en decimal.
1, 1001, 0100, 0110

1 ocupa el lugar de los 1000

1 Ocupa el lugar de los 800
0 Ocupa el lugar de los 400
0 Ocupa el lugar de los 200
1 Ocupa el lugar de los 100

0 Ocupa el lugar de los 80
1 Ocupa el lugar de los 40
0 Ocupa el lugar de los 20
0 Ocupa el lugar de los 10

0 Ocupa el lugar de los 8
1 Ocupa el lugar de los 4
1 Ocupa el lugar de los 2
0 Ocupa el lugar de los 1

Noten como en cada grupo de 4 se utilizan solo 8, 4, 2, 1 y al grupo que sigue más significativo se le agrega un 0.

Bien: este Número: 1, 1001, 0100, 0110 Binario (Porque 1’s y 0’s) tiene CODIGO decimal (Porque 0 a 9) y es igual a 1946 Decimal.
Fácil no ?

No es nada más separar en grupos de 4 un número binario, hay que hacer cierto procedimiento para convertir de Binario a BCD.

Conozco 4 Métodos para convertir de binario a BCD: (Bueno 5 pero el 74185 está basado en el procedimiento (2))

(1) Sumar 6 a cada Década.
Del 10 al 19 se suman 6.
Del 20 al 29 se suman 12.
Del 30 al 39 se suman 18.
Del 40 al 49 se suman 24 Etc, Etc.
El circuito para lograr este convertidor es muy grande pues debemos saber en que rango está el número a convertir, (Comparadores de magnitud 4063) sumadores para si cae en el primer rango sumar 6 y si en el tercero sumar 18, (Sumadores 4008), en fin muchos circuitos integrados.

(2) Shift (Corrimiento).
Si los 3 Bit’s más significativos del número binario son mayor de 4 (100) se le suma 3 (011) y se recorren todos los Bit’s una posición a la izquierda. Se vuelve a hacer lo anterior hasta que todos los Bit’s del número binario hayan sido examinados.
El circuito para lograr este convertidor también es muy grande: comparadores de magnitud, sumadores, registros de desplazamiento Etc, Etc.
Este método es el que utiliza el circuito integrado 74185 pero desafortunadamente ya no lo fabrican, creo.

(3) Con contadores.
Este método me gusta ya que para convertir un número binario de 8 Bit’s (00 a FFHex, 000 a 255Dec) solo se requieren 2 contadores binarios y 3 contadores de decenas. Aparte de una pequeña circuiteria.
Los contadores binarios deben ser programables y que puedan contar descendentemente, con los contadores decimales no hay problema.
En las entradas de programación de los contadores binarios se “Programa” el número binario que se desea convertir.
Se cargan en sus Q’s y se le aplican pulsos. Como cuenta descendentemente “Un día” llegará a cero en sus Q’s.
Esto hay que detectarlo y parar el conteo inmediatamente.
Como los pulsos también se aplican simultáneamente a los contadores “decimales” estos tendrán en sus Q’s el número Binario Con Código Decimal.

(4) Grabar ROM o EEROM.
Este método probablemente vaya a ser el de más popularidad ya que solo se requiere de una memoria de tantas direcciones y de tantos Bit’s de salida (Datos) como sea de grande el número binario que queremos convertir.
Es muy fácil: en una dirección BINARIA se graba el correspondiente número BCD, cuando pongamos esa dirección en sus entradas, en la salida de datos tendremos el número BCD.
Fácil no ?
Claro se requiere de un programador de ROM’s pero podemos ir con un amigo a que nos lo programe.
Si programamos de la dirección 00 a la FF los datos 000 a 255 ya tenemos un convertidor de binario a BCD de 8 Bit’s.

Adjunto el circuito donde se utiliza este metodo para grabar ROM’s 
Casi todos estos tipos de memorias tienen las entradas de dirección, las salidas/entradas de datos y las entradas de control como son:
CS, que se puede interpretar como Chip Select = Circuito Seleccionado (0).
WE, que se puede interpretar como Write Enable = habilitada la función de escribir (0).

Las terminales correspondientes a los datos son entradas y salidas, entradas cuando lo estamos grabando, salidas cuando lo estamos leyendo.
Así que si queremos gravar en la dirección 00001111 los datos 0000, 0001, 0110 solo tenemos que poner esos niveles en las entradas de dirección y los datos en las entradas de datos, hacer cierta la entrada CS (0 por el pequeño circulo en esa entrada) y como vamos a escribir la entrara WE hacerla cierta (0) también.
Si queremos ver que hay en la dirección 00001111 solo hay que poner esa dirección y ver las salidas de datos pero la señal WE hacerla falsa (1) y los datos aparecerán.

O sea: si no esta escribiendo(0), está leyendo(1).

saludos
a sus ordenes


----------



## el espiritu

capitanp dijo:


> Miren lo que se busca es convertir valores binarios a decimal, osea un numro de 8 bit en un numero decimal del 0 al 255
> se me ocurre dos contadores uno binaio y otro decimal que cuenten a la misma vez y al encontrar el par binario muestre el numero
> como el de la imagen
> 
> 
> 
> 
> 
> tambien deja la simulacion por si hay que reinarlo
> saludos



hermano ese archivo es .ctk algo asi con q abro ese archivo y disculpa la ladilla


----------



## MrCarlos

Hola el espiritu

ese archivo lo abres con Circuit Maker

saludos
a sus ordenes


----------



## LxL

Hola MrCarlos!

Esa opcion de usar una ROM esta genial, pero me gustaria me que dijeras q modelos de ROM me recomiendas.


----------



## Scooter

La que prefieras, la cuestión es programarla.


----------



## MrCarlos

Hola LxL

Si Mal No Recuerdo Tu Circuito Aquí:
En Mensaje #27
_https://www.forosdeelectronica.com/f25/sumador-4bit-cada-numero-mostrar-display-12916/index2.html#post348324_
Es de 7 BIT’s De Entrada Por 12 BIT’s De salida; lo ideal sería que hubiera una memoria (RAM, ROM, EPROM) con esa cantidad de Entradas y Salidas. 7 BIT’s de direcciones y 12 BIT’s de datos. Pero creo que no la hay.
Por otra parte debes buscar una memoria que la puedas adquirir fácilmente en tu localidad o atraves de internet.

Lo que sí te puedo recomendar es que utilizas una memoria tipo EPROM ya que la puedes Reprogramar, en cambio la RAM cada que apagues el circuito se borra y la ROM si la programas mal ya no la puedes Reprogramar.

En este enlace puedes encontrar fácilmente si buscas por DESCRIPTION la palabra EPROM.
http://www.alldatasheet.com/

Tal vez es más fácil ver cuales venden en tu localidad y luego buscar las hojas de datos en el enlace anterior.
Trata de encontrar una memoria que sea de Xk Direcciones x 16BIT’s pues Tú, en tu circuito utilizas 12 BIT’s ó:
2 Circuitos de 8BIT’s ó
3 Circuitos de 4BIT’s.

Tengo un circuito (Binario a BCD) que alguien, no recuerdo quien, dejó por aquí pero es de 6BIT’s; si lo puedes completar para 7BIT’s te podría servir en lugar de la EPROM. Está hecho solo con sumadores.
(Binary To BCD 6 BIT's To BCD 2 Digits).

Aquí mismo tengo un circuito en el mensage #55 que te puede dar una idea de cómo programar tu EPROM o EPROM’s. Ese circuito Fue desarrollado con el SoftWare CircuitMaker 2000.


saludos
a sus ordenes


----------



## 9u574v0

Hola a todos!!
soy nuevo en este foro, realmente me parece muy interesante todo lo que se habla, en realidad no encontre como poder escribir un nuevo mensaje asi que lamento tener que publicarlo aqui en otra pregunta, alguno de ustedes sabe como puedo hacer un circuito que me de una salida de voltaje distinta, es decir, tengo como entradas 4 electrodos y lo que yo quiero es que si mi circuito recibe una señal del 3er electrodo entonces a la salida me de por ejemplo mmm 20v por decir algo, y si es del 2do entonces a lo mejor 10v, lo habia pensado con un comparador de voltaje pero pues creo que no es la solucion y no se si poniendo resistencias a la salida que cambien el voltaje sea conveniente, realmente estoy un poco confundido, podrian ayudarme cordiales saludos...


----------



## LxL

(3) Con contadores.
Este método me gusta ya que para convertir un número binario de 8 Bit’s (00 a FFHex, 000 a 255Dec) solo se requieren 2 contadores binarios y 3 contadores de decenas. Aparte de una pequeña circuiteria.
Los contadores binarios deben ser programables y que puedan contar descendentemente, con los contadores decimales no hay problema.
En las entradas de programación de los contadores binarios se “Programa” el número binario que se desea convertir.
Se cargan en sus Q’s y se le aplican pulsos. Como cuenta descendentemente “Un día” llegará a cero en sus Q’s.
Esto hay que detectarlo y parar el conteo inmediatamente.
Como los pulsos también se aplican simultáneamente a los contadores “decimales” estos tendrán en sus Q’s el número Binario Con Código Decimal.



Tienes el circuito que pusiste como metodo 3... con contadores binarios y de decenas!
Es que yo hice uno con el metodo "Corra y sume 3"... Lo hice con sumadores (74ls83) y comparadores (74ls85) pero es bastante grande....


----------



## MrCarlos

Hola LxL
Si, así es el del método “Corre y suma 3” es mucho muy grande. El más pequeño es el de grabar una memoria RAM o ROM se requiere una Memoria de 256 Direcciones(base 10) = 100 Base Hex.

En el mensaje #15 de capitanp está un Binario a BCD, en este mismo tema.
Aquí:
Mensaje #15 De capitanphttps://www.forosdeelectronica.com/f25/convertir-valores-binarios-bcd-3757/se desarrollo con el SoftWare CorcuitMaker.

Tengo uno desarrollado con el SoftWare LiveWire, alguno de los 2 te puede servir.

Saludos
a sus ordenes


----------



## LxL

Hola!
Todo bien! Ya logre hacer e circuito convertidor de binario a BCd...
Ahora, lo que me gustaria saber es como hacer para usar un mismo Dip-Switch de entrada y otro para que seleccione el circuito al que va a ir, por ejemplo para que esos bits de entrada vayan al circuito Sumador-restador 7-Bits o se vayan al multiplicador de 7x7-Bits...
Y para que al final la salida del circuito seleccionado sea la que vaya al circuito covnetidor de binario a BCD...

Hay me avisa si entiende la idea.
Saludos,


----------



## MrCarlos

Hola LxL

Puedes utilizar unas compuertas de 3 estados. Por ejemplo el 74LS125.

Mejor analiza la imagen adjunta.

saludos
a sus ordenes


----------



## xavi28

oigan ya lei todo el tema, y quisiera saber si el chavo que empezo el tema pudo terminar us proyecto, porque esto es parte de un proyecto de la escuela, asi que me podria ayudar, igual tengo la duda, despues de usar el ADC pues me lo da en binario, si utilizo el CI 74185 y lo implemento para 7 bits, despues como meteria las salidas del bcd a mis displays de 7segmentos, puedo usar maximos 4????Debo usar los decodificadores y si es asi como deberia conectarlos para dividirlos de 4 en 4?


----------



## Sergio Alpizar

Usa el ICL7107CPLZ de intersil


----------



## MrCarlos

Perdón, es un error de mi parte


----------



## elrojito

saludos 

ha sido de gran ayuda me lei todito jejeje me podrian ayudar lo que pasa es que tengo un pic que cuenta segun una señal externa y me entrega en binario a la salida del puerto B, ahora tengo q transformar este binario en BCD para mostrar en 7 segmentos, o lo podria programar en el mismo pic??


----------



## pigho

juanjo1786 dijo:


> Me dices que tienes 5 bits.
> Un númmero con K digitos decimales requerirá 4K bits en BCD. Por ejemplo el número 396, se representa en BCD con 12 bits, así: 0011 1001 0110 = 3 9 6. Cada grupo de cuatro bits representa un número decimal.
> Ahora bien, tu tienes 5 bits ¿O te refieres a 20 bits, para tener 5 decimales?.
> Saludos.



el 396 que dices es en hexadecimal verdad? porque lo saco de binario a decimal y no da eso que dices





MrCarlos dijo:


> Hola a Todos
> 
> Un tema, en este foro, DESTACADO.
> Convertir de Binario a BCD, creo que primero tenemos que comprender muy bien qué es Binario y qué es BCD.
> (A) Convertidor de Binario a BCD.
> Vean esa frase de arribita y la de aquí abajo:
> (B) Binary to BCD converter.
> 
> Dicen lo mismo solo que una frase está en ingles y la otra en español.
> Casi tienen las mismas LETRAS; vamos diciendo, por un momento que (A) está en BCD y (B) está en binario.
> Los 2 frases utilizan letras para formar palabras y palabras para formar la frase. Dicen lo mismo.
> 
> Igual es el sistema de numeración binaria y BCD. La representación de un número es por ceros o unos SOLAMENTE. Esas solas 2 figuras (1, 0) son nuestro alfabeto, no existe otra figura para la representación de número binarios o BCD.
> 
> Además recuerden siempre: en nuestros sistemas de numeración una cifra está directamente relacionada con la posición que ocupa, respecto a su valor, dentro del número sea decimal o binario, así que por ejemplo:
> 1946: mientras más a la izquierda esté vale más.
> 1 ocupa el lugar de los miles.
> 9 ocupa el lugar de los cientos.
> 4 ocupa el lugar de los dieses.
> 6 ocupa el lugar de las unidades.
> 
> En binario es igual
> 11110011010: mientras más a la izquierda esté vale más.
> 1 Ocupa el lugar de los 1024.
> 1 Ocupa el lugar de los 512.
> 1 Ocupa el lugar de los 256.
> 1 Ocupa el lugar de los 128.
> 0 Ocupa el lugar de los 64.
> 0 Ocupa el lugar de los 32.
> 1 Ocupa el lugar de los 16.
> 1 Ocupa el lugar de los 8.
> 0 Ocupa el lugar de los 4.
> 1 Ocupa el lugar de los 2.
> 0 Ocupa el lugar de los 1.
> Para comprobar solo hay que sumar el valor de la posición de aquellos que sean 1. debe resultar 1946.
> 
> En BCD es igual.
> Y qué es eso de BCD ? Bueno, lo que quieren decir esas siglas es: Binario Con Código DECIMAL.
> Esto es: sigue siendo Binario 1’s y 0’s (Nuestro alfabeto), pero es formato decimal es de código decimal. Solo del 0 al 9. son todas las cifras en decimal, Cierto ?. Código decimal quiere decir solo del 0 al 9.
> Recordemos de nuevo que una cifra está directamente relacionada con la posición que ocupa, respecto a su valor, dentro del número sea decimal o binario.
> Así que en Binario para representar una cifra decimal requerimos de 4 Bit’s y tienen un valor de: (los primeros 4)
> 8, 4, 2, 1.
> Entonces:
> 0001, 1001, 0100, 0110: mientras más a la izquierda esté vale más.
> Vamos eliminando los 3 0’s de la extrema izquierda. Cero a la izquierda no vale nada igual que en decimal.
> 1, 1001, 0100, 0110
> 
> 1 ocupa el lugar de los 1000
> 
> 1 Ocupa el lugar de los 800
> 0 Ocupa el lugar de los 400
> 0 Ocupa el lugar de los 200
> 1 Ocupa el lugar de los 100
> 
> 0 Ocupa el lugar de los 80
> 1 Ocupa el lugar de los 40
> 0 Ocupa el lugar de los 20
> 0 Ocupa el lugar de los 10
> 
> 0 Ocupa el lugar de los 8
> 1 Ocupa el lugar de los 4
> 1 Ocupa el lugar de los 2
> 0 Ocupa el lugar de los 1
> 
> Noten como en cada grupo de 4 se utilizan solo 8, 4, 2, 1 y al grupo que sigue más significativo se le agrega un 0.
> 
> Bien: este Número: 1, 1001, 0100, 0110 Binario (Porque 1’s y 0’s) tiene CODIGO decimal (Porque 0 a 9) y es igual a 1946 Decimal.
> Fácil no ?
> 
> No es nada más separar en grupos de 4 un número binario, hay que hacer cierto procedimiento para convertir de Binario a BCD.
> 
> Conozco 4 Métodos para convertir de binario a BCD: (Bueno 5 pero el 74185 está basado en el procedimiento (2))
> 
> (1) Sumar 6 a cada Década.
> Del 10 al 19 se suman 6.
> Del 20 al 29 se suman 12.
> Del 30 al 39 se suman 18.
> Del 40 al 49 se suman 24 Etc, Etc.
> El circuito para lograr este convertidor es muy grande pues debemos saber en que rango está el número a convertir, (Comparadores de magnitud 4063) sumadores para si cae en el primer rango sumar 6 y si en el tercero sumar 18, (Sumadores 4008), en fin muchos circuitos integrados.
> 
> (2) Shift (Corrimiento).
> Si los 3 Bit’s más significativos del número binario son mayor de 4 (100) se le suma 3 (011) y se recorren todos los Bit’s una posición a la izquierda. Se vuelve a hacer lo anterior hasta que todos los Bit’s del número binario hayan sido examinados.
> El circuito para lograr este convertidor también es muy grande: comparadores de magnitud, sumadores, registros de desplazamiento Etc, Etc.
> Este método es el que utiliza el circuito integrado 74185 pero desafortunadamente ya no lo fabrican, creo.
> 
> (3) Con contadores.
> Este método me gusta ya que para convertir un número binario de 8 Bit’s (00 a FFHex, 000 a 255Dec) solo se requieren 2 contadores binarios y 3 contadores de decenas. Aparte de una pequeña circuiteria.
> Los contadores binarios deben ser programables y que puedan contar descendentemente, con los contadores decimales no hay problema.
> En las entradas de programación de los contadores binarios se “Programa” el número binario que se desea convertir.
> Se cargan en sus Q’s y se le aplican pulsos. Como cuenta descendentemente “Un día” llegará a cero en sus Q’s.
> Esto hay que detectarlo y parar el conteo inmediatamente.
> Como los pulsos también se aplican simultáneamente a los contadores “decimales” estos tendrán en sus Q’s el número Binario Con Código Decimal.
> 
> (4) Grabar ROM o EEROM.
> Este método probablemente vaya a ser el de más popularidad ya que solo se requiere de una memoria de tantas direcciones y de tantos Bit’s de salida (Datos) como sea de grande el número binario que queremos convertir.
> Es muy fácil: en una dirección BINARIA se graba el correspondiente número BCD, cuando pongamos esa dirección en sus entradas, en la salida de datos tendremos el número BCD.
> Fácil no ?
> Claro se requiere de un programador de ROM’s pero podemos ir con un amigo a que nos lo programe.
> Si programamos de la dirección 00 a la FF los datos 000 a 255 ya tenemos un convertidor de binario a BCD de 8 Bit’s.
> 
> Adjunto el circuito donde se utiliza este metodo para grabar ROM’s
> Casi todos estos tipos de memorias tienen las entradas de dirección, las salidas/entradas de datos y las entradas de control como son:
> CS, que se puede interpretar como Chip Select = Circuito Seleccionado (0).
> WE, que se puede interpretar como Write Enable = habilitada la función de escribir (0).
> 
> Las terminales correspondientes a los datos son entradas y salidas, entradas cuando lo estamos grabando, salidas cuando lo estamos leyendo.
> Así que si queremos gravar en la dirección 00001111 los datos 0000, 0001, 0110 solo tenemos que poner esos niveles en las entradas de dirección y los datos en las entradas de datos, hacer cierta la entrada CS (0 por el pequeño circulo en esa entrada) y como vamos a escribir la entrara WE hacerla cierta (0) también.
> Si queremos ver que hay en la dirección 00001111 solo hay que poner esa dirección y ver las salidas de datos pero la señal WE hacerla falsa (1) y los datos aparecerán.
> 
> O sea: si no esta escribiendo(0), está leyendo(1).
> 
> saludos
> a sus ordenes




segun entiendo el codigo decimal del que hablas es lo que yo conozco como HEXADECIMAL jejeje pues las converciones que  realisas son para valores headecimales cierto?


----------



## MrCarlos

Hola pigho

Depende como se escriba.
*0*, *1*. Binario
*1001* Binario es igual a *9* decimal.
*1010* Binario es igual a *A* HEXagecimal.
*1 0000* Binario código decimal(BCD) es igual a *10* decimal

El HEXagecimal abarca desde 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, F. Que representado en binario sería:
0000 
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

saludos
a sus ordenes


----------



## edgarmedina20

tabla:
BINARIO ---             BCD
 0000    ---             0000
 0001    ---             0001
 0010    ---             0010
 0011    ---             0011
 0100    ---             0100
 0101    ---             0101
 0110    ---             0110
 0111    ---             0111
 1000    ---             1000
 1001    ---             1001
 1010    ---    0001   0000   = 10
 1011    ---    0001   0001   = 11
 1100    ---    0001   0010   = 12
 1101    ---    0001   0011   = 13
 1110    ---    0001   0100   = 14
 1111    ---    0001   0101   = 15
10000   ---   0001   0110    = 16

el BCD es como su nombre lo dice(Binary Code Decimal) binario Decimal codificado es como veras un COGIDO asi como el AIKEN, ASCII, EXCESO 3, BIQUINARIO, etc. Este CODIGO (encriptacion de numeros), es una representacion de los numeros decimales en binario a diferencia del los NUMEROS BINARIOS NATURALES que simplemente son 1s y 0s (numeros en base 2)...

Para mayor informacion 

https://es.wikipedia.org/wiki/Decimal_codificado_en_binario

O mi favorito 

www.google.com

suerte!


----------



## pigho

MrCarlos dijo:


> Hola pigho
> 
> Depende como se escriba.
> *0*, *1*. Binario
> *1001* Binario es igual a *9* decimal.
> *1010* Binario es igual a *A* HEXagecimal.
> *1 0000* Binario código decimal(BCD) es igual a *10* decimal
> 
> El HEXagecimal abarca desde 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, F. Que representado en binario sería:
> 0000
> 0001
> 0010
> 0011
> 0100
> 0101
> 0110
> 0111
> 1000
> 1001
> 1010
> 1011
> 1100
> 1101
> 1110
> 1111
> 
> saludos
> a sus ordenes



practicamente agrupas en grupos de 4 y el valor de cada grupo es una cifra en BCD casi igual como se hace la convercion de binario a hexadecimal con la diferencia que en BCD no se usa A B C D etc...


----------



## MrCarlos

Hola pigho

El HEXagecimal abarca desde 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, F. Que representado en binario sería:
0000 = 0Dec = 0Hex, En BCD Sería 0 0000
0001 = 1Dec = 1Hex, En BCD Sería 0 0001
0010 = 2Dec = 2Hex, En BCD Sería 0 0010
0011 = 3Dec = 3Hex, En BCD Sería 0 0011
0100 = 4Dec = 4Hex, En BCD Sería 0 0100
0101 = 5Dec = 5Hex, En BCD Sería 0 0101
0110 = 6Dec = 6Hex, En BCD Sería 0 0110
0111 = 7Dec = 7Hex, En BCD Sería 0 0111
1000 = 8Dec = 8Hex, En BCD Sería 0 1000
1001 = 9Dec = 9Hex, En BCD Sería 0 1001
1010 = 10Dec = AHex, En BCD Sería 1 0000
1011 = 11Dec = BHex, En BCD Sería 1 0001
1100 = 12Dec = CHex, En BCD Sería 1 0010
1101 = 13Dec = DHex, En BCD Sería 1 0011
1110 = 14Dec = EHex, En BCD Sería 1 0100
1111 = 15Dec = FHex, En BCD Sería 1 0101

saludos
a sus ordenes


----------

