Caso práctico: Contador decimal BCD de 0 a 9

Prototipo de Contador decimal BCD de 0 a 9 (Maker Style)

Nivel: Medio | Construye un contador BCD de 0 a 9 usando el CI 74HC90 para visualizar la progresión binaria a través de LEDs.

Objetivo y caso de uso

Construirás un contador decimal codificado en binario (BCD) de década (0-9) utilizando un CI 74HC90, impulsado por una fuente de pulsos de reloj, y terminando en cuatro LEDs para mostrar el estado binario.

Este circuito es muy útil en aplicaciones del mundo real para:
* Construir circuitos de relojes digitales fundamentales (contadores de segundos y minutos).
* Sistemas de conteo de eventos en líneas de fabricación.
* Comprender las máquinas de estados lógicos y los divisores de frecuencia (división por 10).
* Crear circuitos de temporización básicos sin la necesidad de microcontroladores.

Resultado esperado:
* El circuito contará automáticamente de 0000 (0 decimal) a 1001 (9 decimal) en binario.
* Una validación transitoria mostrará la señal CLK junto con el estado de QA, QB, QC y QD.
* Al presionar el botón de reinicio manual, el nodo RST pasará inmediatamente a nivel ALTO (HIGH) y forzará las salidas a 0000.
* Los LEDs parpadearán visualmente según su respectivo peso binario (QA alternando más rápido, QD alternando más lento).

Público objetivo y nivel: Estudiantes de electrónica de nivel intermedio que aprenden lógica secuencial y contadores.

Materiales

  • V1: Fuente de alimentación de 5 V DC
  • VCLK: Fuente de reloj de onda cuadrada de 5 V (1 Hz), función: entrada de reloj
  • U1: CI contador de década 74HC90
  • SW1: Pulsador (Normalmente Abierto), función: disparador de reinicio manual
  • R1: Resistencia de 10 kΩ, función: pull-down para el nodo RST
  • R2: Resistencia de 330 Ω, función: limitación de corriente del LED para QA
  • R3: Resistencia de 330 Ω, función: limitación de corriente del LED para QB
  • R4: Resistencia de 330 Ω, función: limitación de corriente del LED para QC
  • R5: Resistencia de 330 Ω, función: limitación de corriente del LED para QD
  • D1: LED rojo, función: indicador de QA (LSB)
  • D2: LED rojo, función: indicador de QB
  • D3: LED rojo, función: indicador de QC
  • D4: LED rojo, función: indicador de QD (MSB)

Pin-out del CI utilizado

74HC90 (Contador de década)

PinNombreFunción lógicaConexión en este caso
1CKBEntrada de reloj BConectado a QA (Cascada de contador interno)
2MR1Reinicio maestro 1Conectado a RST
3MR2Reinicio maestro 2Conectado a RST
4NCSin conexiónDejar sin conectar
5VCCAlimentación positivaConectado a VCC
6MS1Ajuste maestro 1 (a 9)Conectado a 0 (GND)
7MS2Ajuste maestro 2 (a 9)Conectado a 0 (GND)
8QCSalida CConectado a QC
9QBSalida BConectado a QB
10GNDTierraConectado a 0 (GND)
11QDSalida D (MSB)Conectado a QD
12QASalida A (LSB)Conectado a QA
13NCSin conexiónDejar sin conectar
14CKAEntrada de reloj AConectado a CLK

Guía de conexionado

  • V1: se conecta entre VCC y 0 (GND).
  • VCLK: se conecta entre CLK y 0.
  • SW1: se conecta entre VCC y RST.
  • R1: se conecta entre RST y 0.
  • U1 Pin 5 (VCC): se conecta a VCC.
  • U1 Pin 10 (GND): se conecta a 0.
  • U1 Pin 14 (CKA): se conecta a CLK.
  • U1 Pin 1 (CKB): se conecta a QA.
  • U1 Pin 2 (MR1): se conecta a RST.
  • U1 Pin 3 (MR2): se conecta a RST.
  • U1 Pin 6 (MS1): se conecta a 0.
  • U1 Pin 7 (MS2): se conecta a 0.
  • U1 Pin 12 (QA): se conecta a QA.
  • U1 Pin 9 (QB): se conecta a QB.
  • U1 Pin 8 (QC): se conecta a QC.
  • U1 Pin 11 (QD): se conecta a QD.
  • R2: se conecta entre QA y el nodo N_D1.
  • D1 (LED QA): se conecta entre N_D1 (ánodo) y 0 (cátodo).
  • R3: se conecta entre QB y el nodo N_D2.
  • D2 (LED QB): se conecta entre N_D2 (ánodo) y 0 (cátodo).
  • R4: se conecta entre QC y el nodo N_D3.
  • D3 (LED QC): se conecta entre N_D3 (ánodo) y 0 (cátodo).
  • R5: se conecta entre QD y el nodo N_D4.
  • D4 (LED QD): se conecta entre N_D4 (ánodo) y 0 (cátodo).

Diagrama de bloques conceptual

Conceptual block diagram — 74HC90 Decimal counter
Lectura rápida: entradas → bloque principal → salida (actuador o medida). Resume el esquemático ASCII de la siguiente sección.

Esquemático

[ VCLK: 1Hz Clock ] ------------------------(CLK)--> [ U1: 74HC90 Decade Counter ] --(QA)--> [ R2: 330 Ω ] --> [ D1: Red LED (LSB) ] --> GND
                                                     [                           ]
[ SW1: Button (VCC) + R1: Pull-down (GND) ] -(RST)-> [ CKA: CLK                  ] --(QB)--> [ R3: 330 Ω ] --> [ D2: Red LED ] --------> GND
                                                     [ MR1, MR2: RST             ]
[ GND ] ------------------------------------(0 V)---> [ MS1, MS2: GND             ] --(QC)--> [ R4: 330 Ω ] --> [ D3: Red LED ] --------> GND
                                                     [ CKB: Connects to QA       ]
                                                     [                           ] --(QD)--> [ R5: 330 Ω ] --> [ D4: Red LED (MSB) ] --> GND
Esquema Eléctrico


Mediciones y pruebas

  • Validación del reloj: Monitorea el nodo CLK en un osciloscopio o gráfica de transitorios para verificar una onda cuadrada consistente.
  • Secuencia de conteo: Grafica QA, QB, QC y QD simultáneamente. Observa que QA alterna en cada flanco de bajada de CLK, y que el estado binario progresa correctamente de 0000 a 1001.
  • Reinicio del ciclo BCD: Observa la transición después de 1001 (9 decimal). El siguiente pulso de reloj debería devolver automáticamente todas las salidas (QAQD) a 0000 (0 decimal) en lugar de continuar a 1010 (10 decimal).
  • Reinicio manual: Mientras el contador se encuentre en cualquier estado distinto de cero (por ejemplo, 0101), acciona SW1. Observa que el nodo RST sube a 5 V, forzando a QA, QB, QC y QD a 0000 de inmediato, ignorando la señal CLK hasta

Más Casos Prácticos en Prometeo.blog

Encuentra este producto y/o libros sobre este tema en Amazon

Ir a Amazon

Como afiliado de Amazon, gano con las compras que cumplan los requisitos. Si compras a través de este enlace, ayudas a mantener este proyecto.

Netlist SPICE y simulación

Netlist SPICE de referencia (ngspice) — extractoNetlist SPICE completo (ngspice)

* 0 to 9 BCD Decimal Counter
.width out=256

* Power Supply
V1 VCC 0 DC 5

* Clock Source (1 Hz square wave)
VCLK CLK 0 PULSE(0 5 0 0.01 0.01 0.49 1)

* Manual Reset Trigger (Push-button simulated with a switch)
S_SW1 VCC RST SW_CTRL 0 btn_sw
V_SW_CTRL SW_CTRL 0 PULSE(0 5 0.1 0.01 0.01 0.2 20)
.model btn_sw SW(VT=2.5 RON=1 ROFF=100MEG)

* RST Pull-down Resistor
R1 RST 0 10k

* U1: 74HC90 Decade Counter (Behavioral Subcircuit)
X_U1 CLK QA RST RST 0 0 QA QB QC QD VCC 0 IC_7490

* ... (truncated in public view) ...

Copia este contenido en un archivo .cir y ejecútalo con ngspice.

🔒 Este contenido es premium. Con la suscripción mensual (7 días gratis) podrás desbloquear el material didáctico completo y el pack PDF listo para imprimir.🔓 Desbloquéalo — 7 días gratis
* 0 to 9 BCD Decimal Counter
.width out=256

* Power Supply
V1 VCC 0 DC 5

* Clock Source (1 Hz square wave)
VCLK CLK 0 PULSE(0 5 0 0.01 0.01 0.49 1)

* Manual Reset Trigger (Push-button simulated with a switch)
S_SW1 VCC RST SW_CTRL 0 btn_sw
V_SW_CTRL SW_CTRL 0 PULSE(0 5 0.1 0.01 0.01 0.2 20)
.model btn_sw SW(VT=2.5 RON=1 ROFF=100MEG)

* RST Pull-down Resistor
R1 RST 0 10k

* U1: 74HC90 Decade Counter (Behavioral Subcircuit)
X_U1 CLK QA RST RST 0 0 QA QB QC QD VCC 0 IC_7490

* LEDs and Current Limiting Resistors
R2 QA N_D1 330
D1 N_D1 0 LED_RED

R3 QB N_D2 330
D2 N_D2 0 LED_RED

R4 QC N_D3 330
D3 N_D3 0 LED_RED

R5 QD N_D4 330
D4 N_D4 0 LED_RED

* Red LED Model
.model LED_RED D(IS=1e-19 N=1.6 RS=2.5)

* --- Subcircuits for 7490 Behavioral Model ---
.subckt IC_7490 CKA CKB MR1 MR2 MS1 MS2 QA QB QC QD VCC GND
* Dummy resistors to prevent floating pins if VCC/GND are unused internally
R_VCC VCC 0 100k
R_GND GND 0 1m

* Internal Reset/Set Logic
B_MR MR_int 0 V = (V(MR1)>2.5) * (V(MR2)>2.5) ? 5 : 0
B_MS MS_int 0 V = (V(MS1)>2.5) * (V(MS2)>2.5) ? 5 : 0
B_RST_bc RST_bc 0 V = ((V(MR_int)>2.5) + (V(MS_int)>2.5)) > 0.5 ? 5 : 0

* Divide-by-2 Section (FFa)
B_Da Da 0 V = V(QA)>2.5 ? 0 : 5
X_FFa CKA Da MR_int MS_int QA DFF_FALL

* Divide-by-5 Section (FFb, FFc, FFd)
B_Db Db 0 V = (V(QD)<2.5) * (V(QB)<2.5) ? 5 : 0
X_FFb CKB Db RST_bc 0 QB DFF_FALL

B_Dc Dc 0 V = ( (V(QB)>2.5)*(V(QC)<2.5) + (V(QB)<2.5)*(V(QC)>2.5) ) > 0.5 ? 5 : 0
X_FFc CKB Dc RST_bc 0 QC DFF_FALL

B_Dd Dd 0 V = (V(QB)>2.5) * (V(QC)>2.5) ? 5 : 0
X_FFd CKB Dd MR_int MS_int QD DFF_FALL
.ends

* Falling Edge Triggered D-Flip-Flop
.subckt DFF_FALL CLK D RST SET Q
B_CLK_B CLKB 0 V = V(CLK)>2.5 ? 0 : 5
X_Master CLK D RST SET QM DLATCH
X_Slave CLKB QM RST SET Q DLATCH
.ends

* Analog D-Latch with Reset and Set Priority
.subckt DLATCH EN D RST SET Q
B_Qnext Qnext 0 V = V(RST)>2.5 ? 0 : ( V(SET)>2.5 ? 5 : ( V(EN)>2.5 ? (V(D)>2.5 ? 5 : 0) : V(Q_int) ) )
R1 Qnext Q_int 100
C1 Q_int 0 10n
R2 Q_int 0 1G
E1 Q 0 Q_int 0 1
.ends
* ---------------------------------------------

* Simulation Commands
.op
.tran 0.01 12 0 1m
.print tran V(CLK) V(QA) V(QB) V(QC) V(QD) V(RST)
.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)
Análisis: The transient analysis spans 0 s to 12 s and captures the switching interval. Main ranges: v(qa) -9.44 mV -> 5.01 V; v(qb) -8.98 mV -> 5.01 V; v(qc) -8.98 mV -> 5.01 V.
Show raw data table (12301 rows)
Index   time            v(clk)          v(qa)           v(qb)           v(qc)           v(qd)           v(rst)
0	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
1	1.000000e-04	5.000000e-02	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
2	2.000000e-04	1.000000e-01	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
3	4.000000e-04	2.000000e-01	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
4	8.000000e-04	4.000000e-01	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
5	1.600000e-03	8.000000e-01	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
6	2.600000e-03	1.300000e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
7	3.600000e-03	1.800000e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
8	4.600000e-03	2.300000e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
9	5.600000e-03	2.800000e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
10	6.310643e-03	3.155321e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
11	6.959607e-03	3.479804e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
12	7.789270e-03	3.894635e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
13	8.789270e-03	4.394635e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
14	9.789270e-03	4.894635e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
15	1.000000e-02	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
16	1.010000e-02	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
17	1.030000e-02	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
18	1.070000e-02	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
19	1.150000e-02	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
20	1.250000e-02	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
21	1.350000e-02	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
22	1.450000e-02	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
23	1.550000e-02	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00	4.999500e-04
... (12277 more rows) ...

Quiz rápido

Pregunta 1: ¿Cuál es el objetivo principal del circuito descrito en el artículo?




Pregunta 2: ¿Qué rango de números decimales cuenta este circuito antes de reiniciarse?




Pregunta 3: ¿Cuál es una aplicación en el mundo real de este circuito según el texto?




Pregunta 4: ¿Qué sucede cuando se presiona el botón de reinicio manual?




Pregunta 5: ¿Qué componente impulsa el conteo del circuito?




Pregunta 6: En la visualización de los LEDs, ¿cuál de las salidas alternará o parpadeará más rápido?




Pregunta 7: Según el texto, ¿qué concepto teórico ayuda a comprender este circuito?




Pregunta 8: ¿A qué nivel de dificultad está dirigido este proyecto?




Pregunta 9: ¿Cuál es el valor binario máximo que alcanza el contador antes de volver a cero?




Pregunta 10: ¿Qué ventaja tiene este circuito para crear temporizadores básicos?




Carlos Núñez Zorrilla
Carlos Núñez Zorrilla
Electronics & Computer Engineer

Ingeniero Superior en Electrónica de Telecomunicaciones e Ingeniero en Informática (titulaciones oficiales en España).

Sígueme:
Scroll al inicio