# Codificador de binario a ascii



## mpina (Jun 29, 2006)

Buenas necesito ayuda yo estudio licenciatura en computacion y un profesor se volvio medio loco y nos mando a hacer un codificador de binario a ascii, bueno la cosa es que tengo que mostrar el codigo ascii, supongo que son los 7 bits de las siguientes letras F E H I J, asi que no tengo idea de como hacerlo porfa si alguien sabe informeme porfa lo necesito con urgencia


----------



## EinSoldiatGott (Jun 29, 2006)

mpina dijo:
			
		

> Buenas necesito ayuda yo estudio licenciatura en computacion y un profesor se volvio medio loco y nos mando a hacer un codificador de binario a ascii, bueno la cosa es que tengo que mostrar el codigo ascii, supongo que son los 7 bits de las siguientes letras F E H I J, asi que no tengo idea de como hacerlo porfa si alguien sabe informeme porfa lo necesito con urgencia




Como quiere que los muestre? en eun display de 7 segmentos? por puerto paralelo?


En un display de 7 segmentos, la F si se puede mostrar la E también, h si la I así no la J si aunque un poco fea.

Saludos


----------



## mpina (Jun 29, 2006)

Bueno realmente no hay ningun requerimiento, pero como tengo que mostrar el codigo ascii yo pense en colocar 7 leds de tal forma que si estan encedidos sean 1 y 0 apagados para mostrar el codigo ascii en binario de las letras pero no tengo ni idea de como hacer eso, pense con pulsadores hacer como si fuera cada uno letras especificas y con puertas logicas encender los leds que les corresponden.


----------



## EinSoldiatGott (Jun 30, 2006)

mpina dijo:
			
		

> Bueno realmente no hay ningun requerimiento, pero como tengo que mostrar el codigo ascii yo pense en colocar 7 leds de tal forma que si estan encedidos sean 1 y 0 apagados para mostrar el codigo ascii en binario de las letras pero no tengo ni idea de como hacer eso, pense con pulsadores hacer como si fuera cada uno letras especificas y con puertas logicas encender los leds que les corresponden.



Ahh entonces no tiene que ser desde el PC???


Mire hay display ya hechos para mostrar más que nada números, las letras no se pueden hacer muy bien.

Puede también utilizar una matríz de leds, ahi si se pueden mostrar más caracteres.

Para escribir del 0-9 puede usar un deco 7447, pero a partir del 10, salen símbolos raros, así que habría que poner posiblemente un multiplexor para meter un deco diferente.

Revise este link
https://www.forosdeelectronica.com/f25/hacer-decodificador-2074/

Saludos


----------



## Mon=) (Mar 6, 2009)

Hola a todos!

tengo una duda y de vdd espero que  me puedan ayudar.

Con un decodificador BCD puedo mostrar en un display de 7 segmentos letras? Necesito que en el display salgan las letras C y P.

resulta que tengo una especie de candado, es decir guardo en una memoria EPROM muchas combinaciones de numeros (la memoria tiene entradas de A0 a A13, y la opciones de salida de Q0 a Q7). y solo en una combinacion de numero la salida tiene q ser la indicada, representada por la letra P ( por ejemplo si introdusco el numero 111 en el display tiene que salir C, porque la clave correcta es 123, y si introduzco 123 mediante switches, tiene que salir P porque si es la clave correcta)

Entonces, vi en una pag. que el equivalente de la letra C en binario es  001 000 011, cierto? Entonces... si es cierto espacio de la memoria donde coincidan 123 (siguiendo con el ejemplo anterior) guardo 103, y conecto las salidas de Q0 a Q3 a un decodificador en el display saldra la letra C ?

Espero haberme explicado bien.... De antemano muchas gracias!

PD: cabe mencionar que tal vez no es la mejor manera de realizar un candado =) Pero debido a que mi curso esta empezando, solo puedo usar las memorias eprom, y compuertas, nada muy complicado =) 

SALUDOS!


----------



## Chico3001 (Mar 7, 2009)

Medio te entendi..   , Si puedes usar una EEPROM para mostrar caracteres en un display de 7 segmentos, pero el codigo para formar la letra depende de como hagas las conexiones entre la memoria y el display

La pregunta que me surge es, tu quieres que cuando metas del 0 al 9 binario en vez de que aparezca el numero en un display quieres que aparezcan letras? por que si se puede y es bien facil con una memoria EEPROM

O quieres que para los codigos 0 al 9 se vean numeros y del 10 al 15 se vean letras? eso tambien se puede pero ya no es codigo BCD, seria binario


----------



## Mon=) (Mar 8, 2009)

Ps... mas o menos la primera situacion.  la cosa esque supongamos que la clave secreta es 111, entonces, siempre que ponga 111 en el display saldra la letra P, mientras ponga otro numero (cualkier numero entre 000 y 999) tiene que salir la letra C en el display.

y es a lo que iba, que "numero o codigo" tengo que guardar en la memoria para que al seleccionar ese espacio de memoria determinado me de la letra que necesito?

Mira te anexo un mini analisis que hice, a ver si me explico mejor en el 

Gracias por contestar =)


----------



## Chico3001 (Mar 9, 2009)

mmm el decodificador BCD no te serviria de nada por que puedes programar la codificacion del display de 7 segmentos directamente en la memoria

abcdefgp
1001100   C
1100110   P

solo coloca esas 2 codificaciones en las localidades adecuadas de la memoria para mostrar los caracteres... incluso puedes guardar otros caracteres en otras localidades

usa este circuito como ejemplo de como conectar la memoria al display, el buffer lo puse por que no estoy seguro que la memoria de suficiente corriente para encender el display directamente....


----------



## Mon=) (Mar 9, 2009)

Mil gracias! Mañana lo conecto y te aviso que onda!

De vdd te lo agradezco muchisisisisissisisisimo tal parece que si saldra jejejejejeje

Saludos!


----------



## riverside (Oct 26, 2010)

oie quisiera saber si se puede acer un decoder de binario a 7 segmentos con eeprom la que quiero usar es una 27c4002 ya q tiene a su salida 16 pines y ocho a su entrada ya que ocupo conectarlo desde un adc0804 y requiero q su salida la decodifique para mostrarla en un disp'lay me seria de mucha ayuda su respuestas de antemano gracias.


----------



## Scooter (Oct 26, 2010)

Si que se puede, pero necesitas algo mas para poder visualizar 2 ó 3 dígitos.


----------



## MrCarlos (Oct 26, 2010)

Hola riverside

Tienes o sabes cómo programar el 27C4002 ?
Si tienes con que y sabes programarlo no hay mayor problema.

Por otra parte, en el siguiente enlace hay un circuito que te puede servir de ejemplo para programar el 27C4002.

Mensaje #55https://www.forosdeelectronica.com/f25/convertir-valores-binarios-bcd-3757/index3.html 
Espero te sea de utilidad.

saludos
a sus ordenes


----------



## riverside (Oct 26, 2010)

Muchas gracias por la respuesta scooter y MrCarlos

si tengo con que programarlo y realice una tabla con los valores que q*U*iero introducirle lo que yo quiero es que cuando le introdu*Z*ca una *E*netrada en binario la codifique para poder mostrarla en 2 displays de 7 segmento*S* ya tambien teng*O* una tabla para hacer decirle a la memoria que seccion se encienda con cada combinacion de entrada nada*-*mas que no se que salida de la eeprom mandar a que display si las primeras 8 a el display de las decenas y las otras 8 al de las unidades o como podria saber que salida puedo mandar a cada display???
Lo unico que no se es como programar la eeprom o como introducir los datos si me ayudaran les agradeceria mucho
de antemano gracias


----------



## MrCarlos (Oct 26, 2010)

Hola riverside

Quiere decir que no analizaste el circuito que viene en el enlace que te mencioné, Cierto ?

saludos
a sus ordenes


----------



## riverside (Oct 26, 2010)

Muchisimas gracias MrCarlos

No avia observado el enlace ya lo e leido y me es de mucha ayuda le avanzo con mi proyecto y comunico los resultados de la programacion
una ves mas muchas gracias


----------



## MrCarlos (Oct 27, 2010)

Hola riverside

El ADC0804 tiene 8 salidas las cuales están en Binario.
De tal suerte que solo utilizarás las primeras direcciones del EPROM, A00 Hasta A07; De los 18 BIT’s que Tiene.
Utilizarás tambien 14 salidas de este M27C4002, Desde Q00 Hasta Q13; De los 16 BIT’s que Tiene.
Las primeras 7 para las Unidades (Q00 Hasta Q06), las segundas 7 para las Decenas (Q07 Hasta Q13).

Cuando el ADC0804 tenga en sus 8 salidas 00000000 esta será la dirección 00000000 del EPROM y en sus Q’s debe haber 7 BIT’s Para el Display de las Unidades desde Q00 Hasta Q06 y muestre un 0 y, debe
Haber 7 BIT’s Para el Display de las Decenas desde  Q07 Hasta Q13 y muestre un 0.

Vamos estableciendo lo siguiente:
Q00 -> Display Unidades Segmento a.
Q01 -> Display Unidades Segmento b.
Q02 -> Display Unidades Segmento c.
Q03 -> Display Unidades Segmento d.
Q04 -> Display Unidades Segmento e.
Q05 -> Display Unidades Segmento f.
Q06 -> Display Unidades Segmento g.

Q07 -> Display Decenas Segmento a.
Q08 -> Display Decenas Segmento b.
Q09 -> Display Decenas Segmento c.
Q10 -> Display Decenas Segmento d.
Q11 -> Display Decenas Segmento e.
Q12 -> Display Decenas Segmento f.
Q13 -> Display Decenas Segmento g.

Supón ahora que en las salidas de ADC0804 tienes esta combinación 00111001, qué segmentos Deben Encender ?

Recuerda: Siempre, las salidas del ADC0804, van a ser la dirección del EPROM donde están guardados los datos de los segmentos que deben encender.
Este es todo el secreto: La Dirección contiene Los datos de los segmentos que deben encender.

Dicho en otra forma sería: 
Dir=ADC0804, Números en Los Display’s.
00 00000000, 00 (En la dirección 0 están los datos para que enciendan 0,0 en los Display’s)
01 00000001, 01 (En la dirección 1 están los datos para que enciendan 0,1 en los Display’s)
02 00000010, 02 (En la dirección 2 están los datos para que enciendan 0,2 en los Display’s)
03 00000011, 03 (En la dirección 3 están los datos para que enciendan 0,3 en los Display’s)

08 00001000, 08 (En la dirección 8 están los datos para que enciendan 0,8 en los Display’s)
10 00001010, 10 (En la dirección 10 están los datos para que enciendan 1,0 en los Display’s)
30 00011110, 30 (En la dirección 30 están los datos para que enciendan 3,0 en los Display’s)
40 00101000, 40 (En la dirección 40 están los datos para que enciendan 4,0 en los Display’s)

255 11111111, 255 no lo puedes mostrar con solo 2 Display’s.

Y, te faltarían BIT’s a las salidas del EPROM para completar otro Display de 7 segmentos ya que el EPROM solo tiene 16 BIT’s de salida y Tú requieres 21 BIT’s para 3 Display’s.

Puedes, desde luego, hacer un truco con los 2 BIT’s (Q14, Q15) restantes del EPROM.
Cuando la lectura(Salidas Del ADC0804) sea < 100 prenda 0 en Centenas.
Cuando la lectura(Salidas Del ADC0804) sea => 100 pero < 200 prenda 1 en Centenas.
Cuando la lectura(Salidas Del ADC0804) sea => 200 prenda 2 en Centenas.

Ve toda esta problemática desde este punto de vista:
Las salidas del ADC0804 están en Binario por lo tanto se requiere un convertidor de Binario a BCD.
Este convertidor viene descrito en el enlace que te adjunté mensajes atrás.

saludos
a sus ordenes


----------



## fdesergio (Oct 27, 2010)

Para convertir un numero binario enASCII solo debes pasar el binario a HEXAdecimal y sumaler 30H, solo eso y ya tenes el ASCII


----------



## riverside (Oct 29, 2010)

Gracias MrCarlos entendi eso de *CO*mo *H*a*C*erlo y lo otro q*UE* explicaste en el enlace antes puesto se tiene q*UE* separar de 4 en 4 y despues convertir a hexagecimal luego se le dan los codigos para q*UE* cuando se le introdu*Z*ca por ejemplo
00 00000000, 00 (En la dirección 0 están los datos para que enciendan 0,0 en los Display’s)
01 00000001, 01 (En la dirección 1 están los datos para que enciendan 0,1 en los Display’s)
02 00000010, 02 (En la dirección 2 están los datos para que enciendan 0,2 en los Display’s)
03 00000011, 03 (En la dirección 3 están los datos para que enciendan 0,3 en los Display’s)

si lo entendi y es mas ya tengo una tabla con los segmentos que quiero que se encienda con cada combinacion nada*-*mas que la duda que tengo es que cuando quiero  modificar la direccion en el programa que yo tengo para programar la eeprom si quiero modificar el primer numero (de derecha a izquierda) se modifican todos los anteriores y es lo que no comprendo si me explicaras me ayudarias muchicimo ese no es el programa que tengo pero *E*sta marcado donde tengo la duda


----------



## Fogonazo (Oct 29, 2010)

riverside dijo:


> Gracias MrCarlos entendi eso de *CO*mo *H*a*C*erlo y lo otro q*UE* explicaste en el enlace antes puesto se tiene q*UE* separar de 4 en 4 y despues convertir a hexagecimal luego se le dan los codigos para q*UE* cuando se le introdu*Z*ca por ejemplo....



*Reglas generales de uso del foro*

*05)* Escribe de manera correcta y legible para todos. Estás en un Foro no en un Chat.


----------



## MrCarlos (Oct 29, 2010)

Hola riverside

En la imagen que adjuntas, la columna DecAdr. Presenta la primer dirección, en decimal, de la fila correspondiente, Bloque amarillo. HexAdr es el mismo número(dirección) pero en HEXagecimal.
Las direcciones se presentan de 16 en 16, ve los números arriba del bloque amarillo, va desde 0 hasta F.

Si en cualquier columna DecAdr o HexAdr escribes 0001 cambias la presentación de las direcciones.

Fíjate: Abajo de HexAdr está 0000, luego abajo del 0 en la zona amarilla están los datos de la dirección 0, la columna que sigue a la derecha es el contenido de la dirección 1, Etc.

No tienes para que modificar la dirección solo captura los datos en la zona amarilla. 

saludos
a sus ordenes


----------



## riverside (Oct 29, 2010)

Muchas gracias MrCarlos hare lo que me dices lo intento y despues publico mis resultados de antemano gracias

Disculpe MrCarlos el proyecto me lo han cambiado los parametros de este ahora lo que requiero es que la eeprom genere es un decoder demultiplexer osea que con 8 entradas y 7 salidas me genere un conteo de 0-99 ademas de que con la ayuda de un timer conectado a la eeprom me de en caso de un nivel alto me encienda el display de las decenas y el de las unidades este apagado, y en caso de un nivel bajo me genere el numero en el display de las unidades y se apage el de las decenas desearia que m,e ayudaran ya que dispongo de poco tiempo pa entregar el proyecto los valores de entrada los genera un adc0804 al que lo alimenta un lm35


----------



## MrCarlos (Oct 29, 2010)

Hola riverside

Es un poco más difícil entender lo escrito cuando no se utilizan los signos de puntuación.
Retomo las frases de tu mensaje, a ver si entendí bien:

-Disculpe MrCarlos el proyecto me lo han cambiado los parámetros de este ahora lo que requiero es:

1-) Que la EEPROM genere es un Decoder Demultiplexer o sea que con 8 entradas y 7 salidas me genere un conteo de 0-99.
R- qué Decoder Demultiplexer pretendes utilizar ?.
R- Por qué la EEPROM debe generar un conteo de 0-99 ?. Qué no debe estar de acuerdo a lo que entrega el ADC0804 ?.

2-) Que con la ayuda de un Timer conectado a la EEPROM me dé en caso de un nivel alto me encienda el Display de las decenas y el de las unidades este apagado, 
R- Cómo conectarías un Timer a la EEPROM ?.

3-) Que en caso de un nivel bajo me genere el numero en el Display de las unidades y se apague el de las decenas.
R- Cómo conectarías un Timer a la EEPROM ?.

desearía que me ayudaran ya que dispongo de poco tiempo para entregar el proyecto los valores de entrada los genera un adc0804 al que lo alimenta un lm35

En el punto 1-), supongo que utilizarías el 7447 o el 7448 y enseguida los Display’s de 7 Segmentos, Cierto ?

En el Punto 2-) el Timer iría conectado a las entradas RBI del 7447 o 7448, con un inversor para el de las Decenas.

saludos
a sus ordenes


----------



## riverside (Oct 31, 2010)

Bueno MrCarlos lo que pienzo hacer es con la tabla que tenia planeada para hacer un solo ecoder, solo pienzo añadirle la variable que le introdusca un timer, que este a su vez con ayuda de transistores haran el multiplexado de los display´s, solo tengo que introducir una tabla para valores altos, y otra tabla para valores bajos dentro de la eeprom, segun yo me deberia generar el mismo resultado solo que encenderia un display para un nivel alto, y otro para un nivel bajo.
Si no es mucha molentia y tengo mal mi logica le agradeceria que me corrigiera 
de antemano Gracias


----------



## MrCarlos (Nov 1, 2010)

Hola riverside

Creo entender lo que pretendes hacer pero del modo que mencionas no creo que lo logres.
Según entiendo quieres es sistema de Display’s Multiplexado, Cierto ?

El EEPROM se programaría como hemos venido diciendo: Las columnas son Dirección y Contenido.
00 00
01 01
02 02
03 03
04 04
05 05
06 06
07 07
08 08
09 09
0A 10
0B 11
0C 12
0D 13
0E 14
0F 15
10 16
11 17 y así sucesivamente hasta la dirección FF.
Nota que la columna de Contenido está en base Decimal BCD. Mientras tanto la columna de Dirección Está en HEXagecimal.

En tu mensaje #18, en la zona amarilla de la tabla, allí programas el contenido en decimal.

El sistema Múltiplex, muy sencillo, se puede analizar en la imagen adjunta o en el archivo contenido en el ZIP.

saludos
a sus ordenes

Hola riverside

Creo entender lo que pretendes hacer pero del modo que mencionas no creo que lo logres.
Según entiendo quieres es sistema de Display’s Multiplexado, Cierto ?

El EEPROM se programaría como hemos venido diciendo: Las columnas son Dirección y Contenido.
00 00
01 01
02 02
03 03
04 04
05 05
06 06
07 07
08 08
09 09
0A 10
0B 11
0C 12
0D 13
0E 14
0F 15
10 16
11 17 y así sucesivamente hasta la dirección FF.
Nota que la columna de Contenido está en base Decimal BCD. Mientras tanto la columna de Dirección Está en HEXagecimal.

En tu mensaje #18, en la zona amarilla de la tabla, allí programas el contenido en decimal.

El sistema Múltiplex, muy sencillo, se puede analizar en la imagen adjunta o en el archivo contenido en el ZIP.

saludos
a sus ordenes


----------

