¿Cómo mostrar un valor decimal de dos dígitos en una pantalla de siete segmentos?

0

Hace poco terminé un proyecto de sumador de 4 bits y quería "extenderlo". Ahora mismo, la salida está representada por 4 led (1 por cada bit). Quiero mostrar la respuesta como un decimal en un segmento de siete El valor más grande que el sumador puede generar es 15 (ya que es un sumador de 4 bits). Tengo dos pantallas de un solo segmento de siete segmentos. Estaba pensando en usar el chip 74ls47 para hacer la conversión del binario a siete seg. Aquí está la hoja de datos de BCD A 7-SEGMENT CODER / DRIVER

¿Cómo verifico si el resultado de la suma es un número de dos dígitos? Con esta información, ¿cómo "digo" al convertidor de binario a siete seg, que es un dígito doble? ¿Necesito dos de estos chips? Mi última pregunta es: el decimal más grande que puede representar un solo segmento de siete segmentos es 9. Cuando 74ls47 obtiene una entrada mayor que esto, comienza a mostrar jibberish :( Obtuve esa información de Utilizando el BCD 74xx47 en la pantalla de siete segmentos .

¿Cómo evitaría que se muestre el jibberish (básicamente necesito una forma de verificar si la salida de la adición es 10 o mayor)?

Perdón por todas las preguntas, este es el primer circuito lógico digital que he creado.

    
pregunta zack1544

3 respuestas

2

Lo que necesitas hacer es convertir el binario en algo llamado BCD - Decimal codificado en binario.

Básicamente, BCD es binario, pero solo toma los valores 0-9 para cada dígito.

Si aún puedes conseguirlos (no sé si puedes), hubo un CI de la serie 7400 que realiza la conversión. Según recuerdo, era 74185.

Alternativamente, si no están disponibles, puedes usar un IC EEPROM paralelo o algo así. Si almacena los valores equivalentes de BCD en las direcciones 0-15 de la EEPROM, entonces los 4 bits de dirección inferiores se convierten en su entrada binaria de 4 bits, entonces 5 de los bits de las salidas de datos pueden ser su valor BCD (el quinto bit que se transporta, es decir, 10).

Pensándolo bien, incluso podría usar una EEPROM de 8 bits para hacer todo el proceso (incluido el segmento 7). Si utiliza los 7 bits más bajos para los primeros 7 segmentos, y el otro bit de datos puede ir a los segmentos B y am en la segunda pantalla de 7 segmentos. Nuevamente, al almacenar los valores equivalentes en las direcciones 0-15, puede hacer una tabla de búsqueda para generar la asignación.

    
respondido por el Tom Carpenter
3

Puedes usar una ROM pero eso es una especie de trampa.

Otro método es detectar cuándo el número es > 9 y agregar 0x6 al número (es necesario tener otro sumador de 4 bits). Luego tendrá 0..9 en el dígito menos significativo y 1 o 0 en el dígito más significativo (si el número antes del segundo sumador es > 9 es 1, de lo contrario 0).

    
respondido por el Spehro Pefhany
2

La salida sobre '9' no es jibberish, está definida, consulte 74ls47 Hoja de datos . Si no te gusta la apariencia, hay otros chips que mostrarán 'A' 'b' 'C' 'd' 'E' 'F'. dame un segundo para encontrar uno Aquí hay uno: Hoja de datos de DM9368 .

    
respondido por el Jrican

Lea otras preguntas en las etiquetas