Caso práctico: Contador ascendente de 4 bits con LEDs

Prototipo de Contador ascendente de 4 bits con LEDs (Maker Style)

Nivel: Básico. Verifique el funcionamiento de un contador binario de 4 bits visualizando la secuencia de conteo con LEDs.

Objetivo y caso de uso

En este caso práctico, construirá un circuito digital síncrono utilizando el circuito integrado 74HC161 para contar pulsos de reloj en binario desde 0 (0000) hasta 15 (1111). Visualizará los estados de salida utilizando cuatro LEDs que representan los bits desde LSB (Bit menos significativo) hasta MSB (Bit más significativo).

Por qué es útil:
* Relojes digitales: Forma el bloque fundamental para el seguimiento del tiempo (segundos, minutos, horas).
* División de frecuencia: Los contadores se utilizan para reducir señales de reloj de alta frecuencia a frecuencias más bajas y utilizables para otros componentes.
* Direccionamiento de memoria: En sistemas informáticos, los contadores generan direcciones secuenciales para acceder a datos en la memoria.
* Conteo de eventos: Útil en automatización industrial para contar artículos en una cinta transportadora o activaciones de sensores.
* Máquinas de estados: Proporciona la secuencia de estados requerida para controlar operaciones lógicas digitales complejas.

Resultado esperado:
* Cuatro LEDs (D1–D4) se encenderán en un patrón binario (0000, 0001, 0010… 1111).
* La secuencia se repite cada 16 pulsos de reloj.
* Activar el interruptor de reset fuerza a que todos los LEDs se apaguen inmediatamente.
* Tensión de salida de Lógica Alta aprox. 5 V; Lógica Baja aprox. 0 V.

Público objetivo y nivel:
Estudiantes y aficionados familiarizados con niveles lógicos básicos que se inician en el diseño de lógica secuencial.

Materiales

  • U1: 74HC161, función: CI contador binario síncrono de 4 bits
  • V1: Fuente de alimentación de 5 V CC, función: fuente de alimentación principal
  • V2: Fuente de tensión pulsada (0 V a 5 V), función: Señal de reloj (1 Hz para visualización)
  • R1: Resistencia de 330 Ω, función: limitación de corriente para el LED Q0
  • R2: Resistencia de 330 Ω, función: limitación de corriente para el LED Q1
  • R3: Resistencia de 330 Ω, función: limitación de corriente para el LED Q2
  • R4: Resistencia de 330 Ω, función: limitación de corriente para el LED Q3
  • R5: Resistencia de 10 kΩ, función: pull-up para Master Reset
  • D1: LED rojo, función: Indicador para Q0 (LSB)
  • D2: LED rojo, función: Indicador para Q1
  • D3: LED rojo, función: Indicador para Q2
  • D4: LED rojo, función: Indicador para Q3 (MSB)
  • S1: Pulsador momentáneo (normalmente abierto), función: disparador de Reset

Pin-out del CI utilizado

Chip seleccionado: 74HC161 (Contador Binario Síncrono de 4 bits, Reset Asíncrono)

Pin Nombre Función lógica Conexión en este caso
1 \overlineMR Master Reset (Activo bajo) Conectado al nodo Reset (S1/R5)
2 CP Pulso de reloj (Flanco ascendente) Conectado a V2 (Fuente de reloj)
7 CEP Habilitación de conteo paralelo Conectado a VCC (Siempre habilitado)
8 GND Tierra Conectado a 0 (GND)
9 \overlinePE Habilitación paralela (Carga) Conectado a VCC (Deshabilitado)
10 CET Habilitación de conteo «Trickle» Conectado a VCC (Siempre habilitado)
11 Q3 Bit de salida 3 (MSB) Conectado a D4 a través de R4
12 Q2 Bit de salida 2 Conectado a D3 a través de R3
13 Q1 Bit de salida 1 Conectado a D2 a través de R2
14 Q0 Bit de salida 0 (LSB) Conectado a D1 a través de R1
16 VCC Alimentación (+5 V) Conectado a VCC

Nota: Los pines 3, 4, 5, 6 (Entradas de datos paralelos) y 15 (Salida de acarreo «Ripple Carry») no se utilizan en esta configuración básica de conteo y las entradas pueden conectarse a tierra si se prefiere, aunque normalmente son irrelevantes cuando la Carga (Load) está deshabilitada.

Guía de conexionado

Construya el circuito siguiendo estas conexiones de nodos explícitas:

  • Nodos de alimentación:

    • Conecte el terminal positivo de V1 al nodo VCC.
    • Conecte el terminal negativo de V1 al nodo 0 (GND).
    • Conecte el pin 16 de U1 a VCC.
    • Conecte el pin 8 de U1 a 0.
  • Entradas de control:

    • Conecte el positivo de V2 (Fuente de reloj) al nodo CLK. Conecte el negativo de V2 a 0.
    • Conecte el pin 2 de U1 al nodo CLK.
    • Conecte los pines 7 (CEP), 10 (CET) y 9 (\overlinePE) de U1 directamente a VCC para habilitar el conteo y deshabilitar la carga paralela.
    • Circuito de Reset: Conecte R5 entre VCC y el nodo RESET_N. Conecte S1 entre el nodo RESET_N y 0. Conecte el pin 1 de U1 a RESET_N.
  • Salidas (Indicadores LED):

    • Bit 0 (LSB): Conecte el pin 14 de U1 al nodo Q0. Conecte R1 entre Q0 y el nodo LED_A1. Conecte el ánodo de D1 a LED_A1 y el cátodo a 0.
    • Bit 1: Conecte el pin 13 de U1 al nodo Q1. Conecte R2 entre Q1 y el nodo LED_A2. Conecte el ánodo de D2 a LED_A2 y el cátodo a 0.
    • Bit 2: Conecte el pin 12 de U1 al nodo Q2. Conecte R3 entre Q2 y el nodo LED_A3. Conecte el ánodo de D3 a LED_A3 y el cátodo a 0.
    • Bit 3 (MSB): Conecte el pin 11 de U1 al nodo Q3. Conecte R4 entre Q3 y el nodo LED_A4. Conecte el ánodo de D4 a LED_A4 y el cátodo a 0.

Diagrama de bloques conceptual

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

Esquemático

+-------------------------------------------------------------------------------------------------------+
|                                  PRACTICAL CASE: 4-BIT UP COUNTER                                     |
+-------------------------------------------------------------------------------------------------------+

      INPUTS & CONTROL                     PROCESSING (U1)                     OUTPUTS & LOAD
   (Left-to-Right Flow)                   (74HC161 Counter)                 (LED Visualization)

                                     +-------------------------+
                                     |                         |
[ V2: Clock Source ] --(CLK 1Hz)---> | [Pin 2] CP              |
                                     |                         |
                                     |                         |          (Bit 0 - LSB)
[ Reset Logic ]                      |             [Pin 14] Q0 | --(Q0)--> [ R1: 330 ] --> [ D1: Red ] --> GND
(VCC->R5->Node->S1->GND) --(RST_N)-> | [Pin 1] ~MR             |
                                     |                         |
                                     |                         |          (Bit 1)
                                     |             [Pin 13] Q1 | --(Q1)--> [ R2: 330 ] --> [ D2: Red ] --> GND
[ VCC: 5 V Source ] --(Enable High)-> | [Pin 7]  CEP            |
                   --(Enable High)-> | [Pin 10] CET            |
                   --(Disable Load)> | [Pin 9]  ~PE            |          (Bit 2)
                                     |             [Pin 12] Q2 | --(Q2)--> [ R3: 330 ] --> [ D3: Red ] --> GND
                                     |                         |
                                     |                         |
                                     |                         |          (Bit 3 - MSB)
                                     |             [Pin 11] Q3 | --(Q3)--> [ R4: 330 ] --> [ D4: Red ] --> GND
                                     |                         |
                                     +-------------------------+
                                            |           |
                                         [Pin 16]    [Pin 8]
                                            |           |
                                           VCC         GND
Esquema Eléctrico

Mediciones y pruebas

  1. Comprobación de alimentación: Antes de conectar el CI, mida la tensión entre VCC y 0 para asegurarse de que sea estable a 5 V.
  2. Verificación del reloj: Ajuste V2 a una frecuencia baja (p. ej., 1 Hz). Verifique que la señal en el nodo CLK oscila entre 0 V y 5 V.
  3. Observación de la secuencia: Encienda el circuito. Observe de D1 a D4. Deberían alternar en la secuencia binaria:
    • 0: Todos APAGADOS
    • 1: D1 ENCENDIDO
    • 2: D2 ENCENDIDO
    • 3: D1 y D2 ENCENDIDOS
    • … hasta 15: Todos ENCENDIDOS.
  4. Prueba de Reset: Mientras el contador está funcionando, presione S1. Todos los LEDs deben apagarse inmediatamente (Reset Asíncrono) o en el siguiente flanco de reloj (si se usa una variante de reset síncrono, aunque el Reset del 74HC161 estándar suele ser asíncrono).
  5. Niveles lógicos: Use un multímetro para medir el nodo Q3 cuando D4 esté encendido. Debería leer cerca de 5 V (Lógica Alta).

Netlist SPICE y simulación

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

* Practical case: 4-bit up counter with LEDs (74HC161)
* NGSPICE Netlist
* Requires XSPICE extensions

.width out=256

* --- Power Supplies ---
V1 VCC 0 DC 5
* Clock Source: 1 Hz Pulse (0V to 5V), 50% duty cycle
* Corrected to 1 Hz per BOM (Period = 1s, Pulse Width = 0.5s)
V2 CLK 0 PULSE(0 5 0 1u 1u 0.5 1)

* --- Reset Circuit ---
* Pull-up resistor for Master Reset
R5 VCC RESET_N 10k
* S1: Momentary Push Button (Normally Open)
* Implemented as a Voltage Controlled Switch driven by V_BTN source
S1 RESET_N 0 CTRL_RST 0 SW_BTN
* Button Actuator (Simulates a press at 8s for 1s duration to test reset)
V_BTN CTRL_RST 0 PULSE(0 1 8 1m 1m 1 20)
* ... (truncated in public view) ...

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

🔒 Parte del contenido de esta sección es premium. Con el pase de 7 días o la suscripción mensual tendrás acceso al contenido completo (materiales, conexionado, compilación detallada, validación paso a paso, troubleshooting, mejoras/variantes y checklist) y podrás descargar el pack PDF listo para imprimir.

* Practical case: 4-bit up counter with LEDs (74HC161)
* NGSPICE Netlist
* Requires XSPICE extensions

.width out=256

* --- Power Supplies ---
V1 VCC 0 DC 5
* Clock Source: 1 Hz Pulse (0V to 5V), 50% duty cycle
* Corrected to 1 Hz per BOM (Period = 1s, Pulse Width = 0.5s)
V2 CLK 0 PULSE(0 5 0 1u 1u 0.5 1)

* --- Reset Circuit ---
* Pull-up resistor for Master Reset
R5 VCC RESET_N 10k
* S1: Momentary Push Button (Normally Open)
* Implemented as a Voltage Controlled Switch driven by V_BTN source
S1 RESET_N 0 CTRL_RST 0 SW_BTN
* Button Actuator (Simulates a press at 8s for 1s duration to test reset)
V_BTN CTRL_RST 0 PULSE(0 1 8 1m 1m 1 20)
.model SW_BTN sw(vt=0.5 ron=1 roff=10Meg)

* --- 74HC161 4-bit Binary Counter Subcircuit Instance ---
* Connections match Wiring Guide:
* Pin 1 (MR_N) -> RESET_N
* Pin 2 (CP) -> CLK
* Pin 3-6 (D0-D3) -> 0 (GND)
* Pin 7 (CEP) -> VCC
* Pin 8 (GND) -> 0
* Pin 9 (PE_N) -> VCC
* Pin 10 (CET) -> VCC
* Pin 11-14 (Q3-Q0) -> Output Nodes
* Pin 15 (TC) -> TC_NC (Floating)
* Pin 16 (VCC) -> VCC
XU1 RESET_N CLK 0 0 0 0 VCC 0 VCC VCC Q3 Q2 Q1 Q0 TC_NC VCC 74HC161

* --- LED Output Indicators ---
* Bit 0 (LSB)
R1 Q0 LED_A1 330
D1 LED_A1 0 LED_RED
* Bit 1
R2 Q1 LED_A2 330
D2 LED_A2 0 LED_RED
* Bit 2
R3 Q2 LED_A3 330
D3 LED_A3 0 LED_RED
* Bit 3 (MSB)
R4 Q3 LED_A4 330
D4 LED_A4 0 LED_RED

* --- Models ---
.model LED_RED D(Is=1e-14 Rs=5 N=2)

* --- Subcircuit Definition: 74HC161 ---
* Behavioral XSPICE implementation of a 4-bit Counter with Async Reset
.subckt 74HC161 MR_N CP D0 D1 D2 D3 CEP GND PE_N CET Q3 Q2 Q1 Q0 TC VCC
    * XSPICE Models
    .model adc_in adc_bridge(in_low=2.0 in_high=3.0)
    .model dac_out dac_bridge(out_low=0.0 out_high=5.0)
    .model dff_mod d_dff(rise_delay=10n fall_delay=10n)
    .model inv_mod d_inverter(rise_delay=5n fall_delay=5n)

    * Input Bridges (Analog to Digital)
    A_IN [MR_N CP] [mr_dig cp_dig] adc_in

    * Reset Logic (MR_N is active low, d_dff reset is active high)
    A_RST_INV mr_dig rst_high inv_mod

    * Counter Chain (Ripple Up Counter)
    * Bit 0: Toggles on CP rising edge
    A_D0 q0_inv cp_dig NULL rst_high q0_dig q0_inv dff_mod

    * Bit 1: Toggles on Q0 falling edge (Q0_inv rising edge)
    A_D1 q1_inv q0_inv NULL rst_high q1_dig q1_inv dff_mod

    * Bit 2: Toggles on Q1 falling edge
    A_D2 q2_inv q1_inv NULL rst_high q2_dig q2_inv dff_mod

    * Bit 3: Toggles on Q2 falling edge
    A_D3 q3_inv q2_inv NULL rst_high q3_dig q3_inv dff_mod

    * Output Bridges (Digital to Analog)
    A_OUT [q3_dig q2_dig q1_dig q0_dig] [Q3 Q2 Q1 Q0] dac_out

    * Terminal Count (Unused/Dummy pull-down)
    R_TC TC 0 100k
.ends

* --- Simulation Commands ---
* Transient analysis: 20s duration to capture full counting cycle (0-15) at 1 Hz
.op
.tran 10m 20s

* Print critical signals (Inputs first)
.print tran V(CLK) V(RESET_N) V(Q0) V(Q1) V(Q2) V(Q3)

.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)

Análisis: The simulation shows a correct 4-bit binary counting sequence (0000 to 1111) on outputs Q0-Q3. The clock toggles at 1Hz. The reset button press at 8s is simulated, but the log data shows RESET_N remaining high (~4.99V) throughout the sampled points, suggesting the reset event might have been missed in the condensed log or the switch resistance ratio wasn’t sufficient to pull the node to logic low in the analog domain against the pull-up, although the counter continues counting correctly.
Show raw data table (3020 rows)
Index   time            v(clk)          v(reset_n)      v(q0)           v(q1)           v(q2)           v(q3)
0	0.000000e+00	0.000000e+00	4.995005e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
1	1.000000e-08	5.000000e-02	4.995005e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
2	2.000000e-08	1.000000e-01	4.995005e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
3	4.000000e-08	2.000000e-01	4.995005e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
4	8.000000e-08	4.000000e-01	4.995005e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
5	1.600000e-07	8.000000e-01	4.995005e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
6	3.200000e-07	1.600000e+00	4.995005e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
7	6.400000e-07	3.200000e+00	4.995005e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
8	6.520000e-07	3.260000e+00	4.995005e+00	0.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
9	6.760000e-07	3.380000e+00	4.995005e+00	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
10	7.240000e-07	3.620000e+00	4.995005e+00	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
11	8.200000e-07	4.100000e+00	4.995005e+00	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
12	1.000000e-06	5.000000e+00	4.995005e+00	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
13	1.019200e-06	5.000000e+00	4.995005e+00	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
14	1.057600e-06	5.000000e+00	4.995005e+00	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
15	1.134400e-06	5.000000e+00	4.995005e+00	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
16	1.288000e-06	5.000000e+00	4.995005e+00	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
17	1.595200e-06	5.000000e+00	4.995005e+00	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
18	2.209600e-06	5.000000e+00	4.995005e+00	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
19	3.438400e-06	5.000000e+00	4.995005e+00	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
20	5.896000e-06	5.000000e+00	4.995005e+00	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
21	1.081120e-05	5.000000e+00	4.995005e+00	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
22	2.064160e-05	5.000000e+00	4.995005e+00	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
23	4.030240e-05	5.000000e+00	4.995005e+00	5.000000e+00	0.000000e+00	0.000000e+00	0.000000e+00
... (2996 more rows) ...

Errores comunes y cómo evitarlos

  1. Dejar los pines Enable flotando: La serie 74HC tiene entradas de alta impedancia. Si los pines 7 (CEP) o 10 (CET) no están conectados a VCC, el contador puede no contar o comportarse de manera errática. Siempre conecte las entradas de control no utilizadas a un nivel lógico definido.
  2. Frecuencia de reloj demasiado alta: Si V2 se ajusta a 1 kHz o más, todos los LEDs parecerán estar tenuemente encendidos de forma continua debido a la persistencia de la visión. Mantenga el reloj por debajo de 5 Hz para la depuración visual.
  3. Pin de Carga Paralela flotante: Si el pin 9 (\overlinePE) se deja flotando o bajo, el chip podría intentar cargar constantemente datos desde las entradas P0-P3 en lugar de contar. Asegúrese de que el pin 9 esté conectado a VCC.

Solución de problemas

  • Los LEDs nunca se encienden: Verifique las conexiones de alimentación a los pines 16 y 8. Asegúrese de que los LEDs estén insertados con la polaridad correcta (ánodo a resistencia/CI, cátodo a tierra).
  • El contador se queda en cero: Verifique que el pin de Reset (1) esté Alto (5 V). Si S1 está atascado o falta la resistencia de pull-up R5, el chip permanece en estado de Reset. Además, verifique que los pines Enable (7, 10) estén Altos.
  • El contador salta números: Esto se debe a menudo al «rebote del interruptor» (switch bounce) si está utilizando un interruptor mecánico como reloj manual. Use un generador de onda cuadrada limpia o un circuito antirrebote (condensador + resistencia) para la entrada de reloj.
  • Secuencia aleatoria: Verifique si el pin de Habilitación Paralela (\overlinePE) está accidentalmente Bajo o flotando. Debe estar Alto.

Posibles mejoras y extensiones

  1. Contador de 8 bits: Conecte en cascada un segundo 74HC161 conectando la Salida de Acarreo (pin 15) del primer contador a la Habilitación «Trickle» (pin 10) del segundo contador. Esto permite contar hasta 255.
  2. Reloj manual: Reemplace el generador de frecuencia V2 con un circuito temporizador 555 en modo astable o un pulsador con antirrebote para avanzar la cuenta manualmente.

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.

Quiz rápido

Pregunta 1: ¿Qué circuito integrado se utiliza en este caso práctico para el contador binario?




Pregunta 2: ¿Cuál es el rango de conteo en binario que realiza este circuito?




Pregunta 3: ¿Qué representan las siglas LSB y MSB mencionadas en el texto?




Pregunta 4: ¿Cuál es una aplicación útil de los contadores mencionada en el texto con respecto a la frecuencia?




Pregunta 5: ¿Qué utilidad tiene el conteo de eventos en la automatización industrial según el texto?




Pregunta 6: ¿Cada cuántos pulsos de reloj se repite la secuencia de conteo completa (0 a 15)?




Pregunta 7: ¿Qué función fundamental cumplen los contadores en los relojes digitales?




Pregunta 8: ¿Qué función cumplen los contadores en el direccionamiento de memoria?




Pregunta 9: ¿Qué tipo de circuito digital se construye en este caso práctico?




Pregunta 10: ¿Qué patrón visual se espera observar en los cuatro LEDs?




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