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)
| Pin | Nombre | Función lógica | Conexión en este caso |
|---|---|---|---|
| 1 | CKB | Entrada de reloj B | Conectado a QA (Cascada de contador interno) |
| 2 | MR1 | Reinicio maestro 1 | Conectado a RST |
| 3 | MR2 | Reinicio maestro 2 | Conectado a RST |
| 4 | NC | Sin conexión | Dejar sin conectar |
| 5 | VCC | Alimentación positiva | Conectado a VCC |
| 6 | MS1 | Ajuste maestro 1 (a 9) | Conectado a 0 (GND) |
| 7 | MS2 | Ajuste maestro 2 (a 9) | Conectado a 0 (GND) |
| 8 | QC | Salida C | Conectado a QC |
| 9 | QB | Salida B | Conectado a QB |
| 10 | GND | Tierra | Conectado a 0 (GND) |
| 11 | QD | Salida D (MSB) | Conectado a QD |
| 12 | QA | Salida A (LSB) | Conectado a QA |
| 13 | NC | Sin conexión | Dejar sin conectar |
| 14 | CKA | Entrada de reloj A | Conectado 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

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
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 (QA–QD) 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
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.
* 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)
.endResultados de Simulación (Transitorio)
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) ...




