7 segmento binario a hexadecimal

5

Estoy intentando mostrar un número binario de 4 bits en un LED de 7 segmentos como un número hexadecimal (0-F). Tengo un surtido de 7400 series IC, incluido el 7447. Pero ese solo funciona para BCD (0-9). La serie 7400 no parece tener un decodificador de hexadecimal a 7 segmentos y no tengo uno a mano.

Así que me imagino que tendría que construir mi propio. La hoja de datos para un 7447 viene con el circuito interno, pero no pude encontrar un circuito similar para hexadecimal a 7 segmentos. Hice diagramas de K para cada segmento de LED a mano, pero los términos son bastante grandes, mucho más grandes que para BCD.

¿Alguien tiene un circuito terminado para esto contra el que pueda verificar mi trabajo?

¿Alguien tiene un circuito optimizado para esto que aproveche los subterráneos comunes? No hay muchos términos duplicados (como A0 & ~ A1 & A2) pero tal vez utilice (A0 & A2) & ~ A1 permitiría compartir el entramado (A0 y amp; A2) y, en general, reducir el recuento de puertas.

¿O quizás algunos trucos para usar las puertas NAND, NOR o XOR para algunas partes?

No me importa la longitud de la ruta o las carreras diferentes en el circuito, ya que solo impulsará los LED y debería ser demasiado rápido para ver algo de eso.

    

10 respuestas

1

Creo que ahora he logrado encontrar la solución óptima (una de ellas). Utiliza las 24 puertas de 6 circuitos integrados:

  • 2x 7486 (quad XOR)
  • 1x 7408 (quad AND)
  • 2x 7402 (quad NOR)
  • 1x 7432 (quad OR)

Me las arreglé para encontrar soluciones diferentes utilizando solo 23 puertas pero más circuitos integrados. Tengo la sensación de que no hay una solución con solo 5 circuitos integrados.

Nota: el circuito emite una luz BAJA cuando el LED debería estar encendido, ya que mi LED de 7 segmentos tiene un VCC común.

simular este circuito : esquema creado usando CircuitLab

D3-D0 son las entradas con D3 como MSB. A-G son las salidas, donde A es el LED superior, luego giran en el sentido de las agujas del reloj y la última G es el LED central.

    
respondido por el Goswin von Brederlow
15

Encuentre en qué museo faltan sus circuitos integrados lógicos 74xx y devuélvalos. Luego, obtenga un pequeño microcontrolador y haga todo esto en un solo chip. Como beneficio adicional, estará listo para otros proyectos avanzados a partir de finales de la década de 1980 y más allá.

    
respondido por el Olin Lathrop
9

Tal vez, si te sientes particularmente aventurero, incluso puedes usar una ROM de diodo, con tal vez dos decodificadores de línea de 3 a 8 de 74'138 para decodificar / manejar las cosas. :)

Aquí hay un tosco esquema de todo el artilugio; Si utiliza algunas pantallas LED de alta eficiencia, puede incluso ser capaz de conducir un ánodo común directamente.

El pin '! EN' puede ser cualquiera de los pines de la compuerta del '138. También puede conectar los otros dos pasadores de la puerta juntos, lo que le permite activar o desactivar la salida de la pantalla a su gusto.

Esto también tiene el beneficio sobre la solución de ROM sugerida que no es costoso construir / crear un prototipo si tiene las partes a mano, o si no puede molestarse particularmente en programar las ROM.

Además, incluso se podría decir que esto es divertido :)

    
respondido por el Richard the Spacecat
9

Si quieres jugar con las puertas, otra posibilidad es usar un FPGA o CPLD pequeño. Puede comenzar con un FPGA basado en flash por unas pocas decenas de dólares.

Reprogramelo tantas veces como sea necesario para hacerlo bien, y por lo general se obtienen muchos pines de E / S por dólar.

Código VHDL de ejemplo aquí

Por ejemplo, (bucle inestable y no del todo completo, pero se te ocurre la idea):

    
respondido por el Spehro Pefhany
6
  

Pero ese solo funciona para BCD (0-9).

En realidad, 7447 puede aceptar físicamente los valores hexadecimales de AF, pero muestran imágenes erróneas para ellos; consulte aquí página 3.

En mi opinión, hacer un decodificador de hex a siete segmentos puede ser bueno para la educación y la visualización de cómo funciona la electrónica digital, pero desde el punto de vista práctico es una idea realmente mala: es un complejo innecesario y consume mucha energía en comparación con otras soluciones.

Recuerdo haber tenido una placa de diagnóstico de PC en ~ 1995 que mostraba códigos de error / estado en hexadecimal (algo como esto ), y esta placa utilizó chips de la gala - predecesores de CPLD.

Si ha buscado la solución en Internet, es posible que haya visto muchos proyectos similares utilizando lógica programable o dispositivos basados en MCU como Arduino .

@ dirac16 sugirió otra forma: utilizar un chip ROM paralelo, una clase de tabla de búsqueda con bytes que representan segmentos de activación / desactivación para la dirección correspondiente (valor de entrada).

    
respondido por el Anonymous
5

MC14495, DM8880 / 9368, V40511, D345, D346, 4311, 4368 o 74C915

Todo esto es difícil de conseguir hoy en día.

    
respondido por el Janka
2

Si desea diseñar las funciones a mano y verifíquelas antes de (o en lugar de) implementarlas en el hardware, puede usar una calculadora en línea como este .

También hay herramientas que pueden minimizar múltiples funciones lógicas compartiendo entradas comunes. Uno es expresso , que tiene implementaciones gratuitas en Windows y Linux.

    
respondido por el Dmitry Grigoryev
1

Se ha dicho puede probar ICM7218 o algunos otros chips.

También puedes intentar construir tu propio circuito combinado. Este es un excelente video tutorial sobre cómo hacerlo y su mecánica. Si desea optimizarlo, hay algunas hojas de datos ( 1 , 2 ) con la parte BCD (0-9).

Como seguimiento, este tipo también hizo un video de seguimiento sobre cómo hacer lo mismo. con una EEPROM. Por supuesto, todavía tienes que programarlo, pero puede valer la pena.

Y hablando de programación, también puede hacerlo todo con un microcontrolador. Por lo general, es más fácil de programar que un CPLD ( que también puede usar ), y hay un código y tabular implementaciones. Usaría esta opción, ya que estoy familiarizado con los microcontroladores (no está limitado a Arduino) y solo por el chip, podría ser la opción más barata.

    
respondido por el Ronan Paixão
1

Use Google para encontrar elementos "hex 7-segment", incluidos enlace el cual tiene una tabla de verdad hexadecimal Otros artículos incluyen diagramas y demostraciones de video.

En realidad estaba buscando pantallas de cuatro dígitos y siete segmentos que decodifican el hex por ti, pero se consideran "antiguas" (sniff) y las modernas usan i2c en lugar de interfaces paralelas.

    
respondido por el Lurker Larry
0

He estado usando el DM9368N para ese propósito durante años y es bastante fácil de obtener (15 $ por un paquete de 10 en eBay o Aliexpress).     

respondido por el WooShell

Lea otras preguntas en las etiquetas

Comentarios Recientes

se garantiza que no serán iguales en varios versículos). Sin embargo, en comparación con la huella de memoria extremadamente grande de 6 x 2 Mbytes de tamaño de mensaje con espacio insignificante para cualquier dato codificado (por ejemplo, mapas y estructuras) en una máquina de cuatro núcleos y las mismas necesidades de memoria para perfiles espectrales completos y nombres de archivos FNV, este ejemplo de hecho representa un serio desafío. Se han presentado una serie de técnicas descritas para acelerar por... Lees verder