Decodificador de BCD a 7 segmentos: de los números a la pantalla
Mapea un dígito BCD de 4 bits a los siete segmentos de una pantalla digital mediante una tabla de verdad, mapas de Karnaugh y los controladores 74LS47 y 74LS48.
Resumen: Un decodificador BCD a 7 segmentos toma un dígito decimal codificado en binario de 4 bits (0–9) y enciende la combinación correcta de segmentos a–g en una pantalla digital. La correspondencia se define mediante una tabla de verdad de 10 filas; la expresión booleana de cada segmento se deriva de esa tabla y se minimiza con mapas de Karnaugh, para después implementarse en un circuito integrado como el 74LS47 (ánodo común) o el 74LS48 (cátodo común).
La pantalla de siete segmentos es el dispositivo de salida más reconocible de la electrónica digital: la usan relojes, microondas, calculadoras, marcadores y hasta los antiguos surtidores de gasolina. Detrás de cada dígito de la pantalla hay un pequeño circuito combinacional que convierte un número de 4 bits en un patrón de 7 bits que indica qué LED debe encenderse. Ese circuito es el decodificador de BCD a 7 segmentos, una de las aplicaciones prácticas más claras del álgebra booleana y los mapas de Karnaugh.
Esta publicación define BCD, presenta la convención para nombrar los segmentos, construye la tabla de verdad, deriva las ecuaciones booleanas de cada segmento, contrasta el cableado de ánodo común con el de cátodo común y señala los circuitos integrados 74LS47/74LS48 que implementan todo el conjunto. Las plantillas del simulador mencionadas al final permiten cablear uno manualmente.
¿Qué es BCD?
BCD, decimal codificado en binario, es una codificación que usa 4 bits para representar cada dígito decimal del 0 al 9. A diferencia del binario puro, BCD desperdicia los códigos 1010 a 1111 (del 10 al 15 en decimal): simplemente no se utilizan.
| Dígito decimal | BCD (4 bits) | A B C D |
|---|---|---|
| 0 | 0000 | 0 0 0 0 |
| 1 | 0001 | 0 0 0 1 |
| 2 | 0010 | 0 0 1 0 |
| 3 | 0011 | 0 0 1 1 |
| 4 | 0100 | 0 1 0 0 |
| 5 | 0101 | 0 1 0 1 |
| 6 | 0110 | 0 1 1 0 |
| 7 | 0111 | 0 1 1 1 |
| 8 | 1000 | 1 0 0 0 |
| 9 | 1001 | 1 0 0 1 |
| 10–15 | 1010–1111 | sin usar (no importa) |
La convención de esta publicación es que A es el bit más significativo y D, el menos significativo. Algunos libros de texto usan el orden contrario; las ecuaciones son idénticas si se renombran las variables.
¿Por qué BCD en lugar de binario puro? Los dígitos decimales se corresponden directamente con pantallas orientadas a dígitos, y una cantidad decimal de escala fija puede conservar los dígitos almacenados sin convertir fracciones binarias. La aritmética solo es exacta mientras el resultado matemático cabe en la cantidad de dígitos y la escala elegidas; la división y otros resultados no terminantes aún necesitan una regla de redondeo.
La comparación de almacenamiento necesita un denominador. BCD usa 4 bits por dígito decimal, mientras que la información de diez símbolos es de bits. Aproximadamente el 16,9 % del espacio teórico de códigos de cada nibble BCD queda sin usar; de forma equivalente, 4 bits son aproximadamente un 20,4 % más que . Para un intervalo entero acotado concreto, compara las anchuras reales del binario y del BCD en lugar de aplicar un porcentaje a ciegas.
Los seis códigos sin usar —1010 a 1111— pueden convertirse en entradas no importa al minimizar las ecuaciones de los segmentos, pero solo si el sistema garantiza que sus salidas visibles son irrelevantes. Si un código inválido puede aparecer durante un reinicio, una transición del bus o un fallo, asígnale en su lugar un patrón deliberado de pantalla en blanco o de error. Un «no importa» es un permiso de diseño, no una afirmación de que el hardware nunca pueda presentar esa entrada.
Los siete segmentos
Una pantalla estándar de 7 segmentos tiene siete LED dispuestos como un 8, etiquetados convencionalmente de a a g:
┌─── a ───┐
│ │
f b
│ │
├─── g ───┤
│ │
e c
│ │
└─── d ───┘
aes la barra horizontal superior.bes la barra vertical superior derecha.ces la barra vertical inferior derecha.des la barra horizontal inferior.ees la barra vertical inferior izquierda.fes la barra vertical superior izquierda.ges la barra horizontal central.
Cada dígito decimal enciende un subconjunto concreto:
| Dígito | Segmentos encendidos |
|---|---|
| 0 | a, b, c, d, e, f |
| 1 | b, c |
| 2 | a, b, d, e, g |
| 3 | a, b, c, d, g |
| 4 | b, c, f, g |
| 5 | a, c, d, f, g |
| 6 | a, c, d, e, f, g |
| 7 | a, b, c |
| 8 | a, b, c, d, e, f, g |
| 9 | a, b, c, d, f, g |
El componente SEVEN_SEGMENT_DISPLAY de DigiSim recibe siete entradas exactamente en este orden; DIGIT_DISPLAY es una abstracción de nivel superior que recibe directamente la entrada BCD de 4 bits y gestiona internamente la decodificación.
La tabla de verdad completa
Al combinar la codificación BCD con la correspondencia de segmentos se obtiene una tabla con 16 filas (10 válidas y 6 «no importa») y 7 columnas de segmentos:
| ABCD | dígito | a | b | c | d | e | f | g |
|---|---|---|---|---|---|---|---|---|
| 0000 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
| 0001 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
| 0010 | 2 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
| 0011 | 3 | 1 | 1 | 1 | 1 | 0 | 0 | 1 |
| 0100 | 4 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
| 0101 | 5 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
| 0110 | 6 | 1 | 0 | 1 | 1 | 1 | 1 | 1 |
| 0111 | 7 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
| 1000 | 8 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| 1001 | 9 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
| 1010 | — | × | × | × | × | × | × | × |
| 1011 | — | × | × | × | × | × | × | × |
| 1100 | — | × | × | × | × | × | × | × |
| 1101 | — | × | × | × | × | × | × | × |
| 1110 | — | × | × | × | × | × | × | × |
| 1111 | — | × | × | × | × | × | × | × |
La tabla supone órdenes lógicas activas en alto para los segmentos: un 1 significa «solicitar que se encienda este segmento». Un controlador de cátodo común suele poder usar esa polaridad, mientras que uno de ánodo común suele utilizar salidas activas en bajo. Las etapas físicas de control también difieren en la dirección de la corriente, la caída de tensión y la estructura de salida; la diferencia no es solo un inversor esquemático.
Derivación de las ecuaciones de los segmentos
Cada columna de segmentos anterior es una función booleana de cuatro entradas. Con 6 filas «no importa», la minimización mediante mapas de Karnaugh produce expresiones mucho más cortas que una suma de productos ingenua. La técnica es el método de suma de productos con reducción mediante mapas de Karnaugh.
Segmento a
El segmento a está encendido para los dígitos 0, 2, 3, 5, 6, 7, 8 y 9, y apagado para 1 y 4. Si los «no importa» se tratan de forma óptima, la minimización mediante mapas de Karnaugh da:
(Aquí significa NO B; algunos libros lo escriben como .) El término —tanto B como D son cero— cubre eficazmente los casos 0 y 2; —ambos son uno— cubre 3, 5, 7 y 9; por sí solo cubre 8 y 9 (y los «no importa» del 10 al 15); por sí solo cubre 2, 3, 6 y 7.
Esta expresión usa una AND por término de producto y una reducción OR. El número exacto de celdas o transistores depende de la familia lógica, de la disponibilidad de señales complementadas y de la asignación de síntesis.
Segmento b
El segmento b está encendido para 0, 1, 2, 3, 4, 7, 8 y 9, y apagado para 5 y 6. El mapa de Karnaugh da:
Segmento c
El segmento c está encendido para 0, 1, 3, 4, 5, 6, 7, 8 y 9, y solo está apagado para 2. El mapa de Karnaugh da:
Es la más sencilla de todas: solo tiene tres términos porque hay una única fila con salida cero y los «no importa» rellenan el resto del mapa.
Segmento d
El segmento d está encendido para 0, 2, 3, 5, 6, 8 y 9, y apagado para 1, 4 y 7. El mapa de Karnaugh da:
Segmento e
El segmento e está encendido para 0, 2, 6 y 8, y apagado para 1, 3, 4, 5, 7 y 9. El mapa de Karnaugh da:
Observa que ambos términos comparten ; de forma equivalente, . Los dígitos pares son necesarios para e con esta convención de entrada, pero no suficientes: el dígito 4 tiene y aun así e permanece apagado. La forma factorizada puede usar una OR seguida de una AND, además de las inversiones necesarias.
Segmento f
El segmento f está encendido para 0, 4, 5, 6, 8 y 9, y apagado para 1, 2, 3 y 7. El mapa de Karnaugh da:
Segmento g
El segmento g —la barra central— está encendido para 2, 3, 4, 5, 6, 8 y 9, y apagado para 0, 1 y 7. El mapa de Karnaugh da:
Estas expresiones son una minimización válida bajo las hipótesis indicadas de señales activas en alto y entradas «no importa». Las formas mínimas equivalentes pueden tener otro aspecto, y la red interna de un decodificador comercial no tiene por qué coincidir con esta suma de productos de manual.
Ánodo común frente a cátodo común
La propia pantalla de 7 segmentos existe en dos cableados físicos. Se diferencian en qué lado de cada LED se comparte con un único pin común.
Cátodo común
Los siete cátodos de los LED (terminales negativos) están unidos a un único pin común conectado a tierra. Cada ánodo se controla por separado. Para encender un segmento, lleva su ánodo a nivel alto.
- Salida del controlador: activa en alto:
1enciende el segmento. - Interpretación de la tabla de verdad: coincide directamente con la tabla anterior.
- Circuito integrado asociado: 74LS48; sus salidas son activas en alto.
Ánodo común
Los siete ánodos de los LED están unidos a un único pin común conectado a V_CC. Cada cátodo se controla por separado. Para encender un segmento, lleva su cátodo a nivel bajo.
- Salida del controlador: activa en bajo:
0enciende el segmento. - Interpretación de la tabla de verdad: invierte cada columna de salida.
- Circuito integrado asociado: 74LS47; sus salidas son activas en bajo (colector abierto).
En el nivel booleano, el cambio de polaridad puede representarse invirtiendo la salida. En el hardware físico, elige un controlador capaz de entregar o absorber la corriente necesaria y coloca un elemento limitador de corriente en el recorrido de cada segmento iluminado. Nunca conectes un segmento LED a una fuente de tensión sin limitar.
El 74LS47 y el 74LS48
Los 74LS47 y 74LS48 son funciones TTL de decodificador/controlador BCD a siete segmentos. Son referencias útiles, pero selecciona y cablea un dispositivo concreto disponible en el mercado a partir de su hoja de datos; no trates esos nombres como abstracciones intercambiables basadas únicamente en la polaridad.
| Circuito integrado | Polaridad de salida | Tipo de pantalla |
|---|---|---|
| 74LS47 | Activa en bajo (colector abierto) | Ánodo común |
| 74LS48 | Activa en alto (con pull-ups internos) | Cátodo común |
La nomenclatura clásica del dispositivo suele etiquetar A como la entrada BCD menos significativa y D como la más significativa. En este artículo hemos elegido A como MSB y D como LSB en las ecuaciones. Renombra las variables antes de copiar una ecuación en un diseño a nivel de pines con un 74LS47/48.
Ambos circuitos integrados incluyen además tres entradas auxiliares útiles:
- LT (prueba de lámparas): se lleva a nivel bajo para forzar las siete salidas a encendido, independientemente de la entrada BCD. Se usa para comprobar que todos los LED funcionan.
- RBI (entrada de supresión en cascada): se lleva a nivel bajo junto con la entrada BCD
0000para apagar la pantalla en lugar de mostrar 0. Se usa para suprimir ceros iniciales en pantallas de varios dígitos:00073se convierte en73. - BI/RBO (entrada de supresión / salida de supresión en cascada): pin de doble función que permite anular la supresión y encadenar la supresión de ceros. Su comportamiento depende de las demás entradas de control; sigue la tabla de funciones del dispositivo en lugar de tratarlo como un pin lógico bidireccional ordinario.
Juntos, esos tres pines permiten encadenar varios pares decodificador/pantalla para formar una pantalla numérica de varios dígitos en la que los ceros iniciales desaparecen automáticamente.
El comportamiento ante entradas BCD inválidas (1010–1111) lo define el circuito integrado y produce patrones de segmentos atípicos que no forman dígitos; pueden servir como señal de depuración, pero no son portables.
Aplicaciones reales
La decodificación de BCD a siete segmentos es habitual en dispositivos con pantallas numéricas:
- Relojes digitales: los contadores o dígitos de tiempo almacenados alimentan la generación combinacional de segmentos, a menudo mediante un controlador multiplexado. Los segundos y minutos requieren un comportamiento módulo 60, normalmente descompuesto en dígitos de unidades y decenas.
- Calculadoras y medidores: varios dígitos pueden compartir el control de segmentos mediante multiplexación. El controlador selecciona un dígito y su patrón de segmentos cada vez. La frecuencia de refresco, la corriente máxima, el ciclo de trabajo, el brillo y el efecto fantasma deben diseñarse conjuntamente.
- Voltímetros y contadores de frecuencia de varios dígitos: un contador alimenta un registro codificado en BCD, el registro alimenta el decodificador y el decodificador enciende los segmentos.
- Marcadores y cuentakilómetros: la misma técnica de multiplexación, a menudo con matrices LED más brillantes.
Constrúyelo en DigiSim
Abre el componente DECODER para ver el bloque de construcción de un decodificador de propósito general. Para el caso específico de BCD a 7 segmentos, coloca un DIGIT_DISPLAY, que ya incorpora la conversión, o construye el decodificador manualmente y lleva sus siete salidas a un SEVEN_SEGMENT_DISPLAY.
Cablea cuatro interruptores de entrada como A, B, C y D (del más significativo al menos significativo). Implementa primero el segmento a con la ecuación anterior:
- Dos puertas AND: una para y otra para .
- Una OR de 4 entradas que combine , y las dos salidas AND.
Alterna los interruptores por los códigos BCD del 0 al 9 y verifica que el segmento a se encienda en los casos correctos. Después añade los segmentos b a g siguiendo las ecuaciones anteriores.
Por último, prueba los códigos del 10 al 15. Si se usaron como «no importa», registra los patrones reales y confirma que la lógica anterior impide que aparezcan cuando la pantalla está visible. Para un diseño que indique fallos, sustituye los «no importa» por un glifo definido de pantalla en blanco o de error y vuelve a minimizar.
La siguiente publicación de la serie combinacional —BCD: fundamentos del decimal codificado en binario— trata la suma BCD, la corrección mediante la adición de 6 cuando el resultado contiene un dígito no válido o un acarreo decimal, y el almacenamiento BCD empaquetado frente al desempaquetado. Consúltela junto con Decodificadores y codificadores para controlar una pantalla de 7 segmentos para comprender cómo unas pocas entradas binarias seleccionan un patrón de pantalla entre muchos.



