Mostrar el número decimal grande usando la pantalla de siete segmentos [cerrado]

0

Tengo un valor de 8 bits en la salida de ADC. Necesito mostrar este número en 3 pantallas de siete segmentos. ¿Cómo hacerlo? Estoy trabajando en Multisim 11.0.

Puedes ver un esquema de ADC que tengo:

DosesquemasazulesaladerechaconviertenBCDenvalorenlaspantallasyfuncionacorrectamentemientrasqueelvaloresinferiora9.Perocuandoesmásgrande,laspantallasmuestranunvalorincorrecto.

PS:Esto La pregunta tiene como una de las respuestas el enlace a la Hoja de datos DM9368, pero parece que no existe tal esquema en Multisim.

P.P.S .: De hecho, solo necesito 6 bits si el número muestra valores de 0 a 64.

    
pregunta Henry1996

4 respuestas

1

Dado que la salida de su ADC es binaria y necesita BCD para conducir los controladores de pantalla de BCD a 7 segmentos, necesitará un convertidor de binario a BCD entre la salida de ADC y los controladores de siete segmentos.

Una forma de hacer la conversión en hardware es cargar la salida del ADC en un contador descendente binario de 8 bits y, al mismo tiempo, borrar tres contadores de BCD.

Luego, usando el mismo reloj para todos los contadores, registre simultáneamente todos los contadores. Cuando el contador binario cuenta a cero, detenga el reloj / deshabilite los contadores y - ¡VOILA! - La salida del ADC, en BCD, se mantendrá en las salidas Q de los contadores ascendentes.

Me gusta esto:

    
respondido por el EM Fields
0

De la forma en que lo diseñó, le está dando 4 bits a una pantalla y 4 bits a la otra pantalla. Eso es genial si estás tratando de mostrar tu valor en hexadecimal. (... que asume los símbolos compatibles con el chip del controlador de LED 7447 AbCdEF.)

De lo contrario, necesitará otro IC que ingrese un valor digital de 8 bits y le proporcione un BCD de 3 dígitos (2,4,4 cables) o puede controlar directamente los segmentos LED (cables 3x7). Si su número nunca superará los 63, no necesita conectar físicamente el tercer dígito.

Alternativamente, puede encontrar otro módulo de visualización que ingrese 8 bits y muestre un valor decimal sin signo de 2-3 dígitos.

    
respondido por el Harper
0

Si desea convertir binario a decimal, tendrá que hacer una división de una forma u otra. Esto podría ser sucesivamente, como contar, o dividir directamente.

Si bien es posible juntar suficientes chips lógicos digitales dedicados para lograr lo que desea, un microcontrolador es la solución más simple para la mayoría de los casos. Una forma de generar dígitos decimales es seguir dividiendo un número entre 10. El resto de cada división son los valores de los dígitos en el orden menos significativo al más significativo. Tenga en cuenta que esto funciona independientemente del tamaño del número original.

En el caso especial de que el valor de entrada solo sea 0-255, son posibles varios accesos directos. Una fuerza bruta pero un enfoque simple es usar una tabla de búsqueda. Como solo tiene 256 valores de entrada posibles, no es necesario que sea grande. La tabla de búsqueda podría dar como resultado los valores BCD de 4 bits para cada dígito. Como el dígito más alto solo puede ser 0,1,2, en realidad solo necesita 2 bits para su valor BCD. Eso significa que una tabla de búsqueda de 8 bits en 10 bits soluciona este problema de manera muy sencilla.

O, la tabla podría incluso dar como resultado los valores de 7 segmentos para cada dígito directamente. Eso requeriría un mínimo de 21 bits por entrada de tabla. Incluso si terminaste usando 32 bits por entrada de tabla por conveniencia, eso es solo 1024 bytes de memoria de programa. Esa es una "pequeña" cantidad de memoria para un modesto microcontrolador moderno.

    
respondido por el Olin Lathrop
0

El método más simple, tal vez, es 3 28C64 EEPROM (más 20 resistencias)

Uno para cada dígito, alimenta a todos los mismos 8 bits. Para 6 bits 0..64 solo necesitas 2 EEPROMS y 14 resistencias. Si tiene un reloj, puede biplexar las pantallas y usar una sola EEPROM y 7 resistencias.

Lo suficientemente fácil como para escribir un programa en C (o Python o lo que quieras) para escupir el código hexadecimal para programar las EEPROM y necesitarías un programador de EEPROM compatible. Podría ampliar esta idea hasta 13 bits con 4 pantallas, 4 EEPROM y 28 resistencias.

Por cierto, si alguna vez construyes el circuito que se muestra en tu pregunta, quemarás las pantallas y / o los 7447s. Debe tener resistencias en serie, una por segmento si desea que funcione correctamente.

Por supuesto, en realidad, la mayoría de nosotros usaríamos una pequeña parte de un programa de microcontroladores para hacer esto.

    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas