desktop

Convertir valores binarios a BCD

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
 

Adjuntos

  • dscn0753_556.jpg
    dscn0753_556.jpg
    203.3 KB · Visitas: 672
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
 
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.. :D
Si buscas hacerlo solo con logica y compuertas, pues es un trabajo muy extenso, io lo hice el ciclo pasado... :D salieron como 4 protoboard.
Perop si lo quieres para una aplicacion poersonal, pues mejor usa un PIC.. :D

Saludos,

Cerebro¬¬
 
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
 
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.
 
...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)
 
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
 
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.
 
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? (n))

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
 
Última edición:
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.....¡¡
 
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
 

Adjuntos

  • Binary To BCD 8-Bit's Eith EPROM.jpg
    Binary To BCD 8-Bit's Eith EPROM.jpg
    187.9 KB · Visitas: 647
  • Binary To BCD 8-Bit's With EPROM.zip
    4.8 KB · Visitas: 288
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
convb-d.JPG

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
 
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
 

Adjuntos

  • Binary To BCD 6BIT's To BCD 2 Digits.jpg
    Binary To BCD 6BIT's To BCD 2 Digits.jpg
    183.6 KB · Visitas: 448
  • Binary To BCD 6 BIT's To BCD 2 Digits.zip
    3.4 KB · Visitas: 211
Atrás
Arriba