> ## Documentation Index
> Fetch the complete documentation index at: https://apuntes.simulab.es/llms.txt
> Use this file to discover all available pages before exploring further.

# Contadores y registros de desplazamiento: binario, módulo N, anillo y Johnson

> Contadores digitales con biestables: binario ascendente y descendente, módulo N, en anillo y Johnson, registros de desplazamiento, divisores de frecuencia y diagramas de tiempos.

<Card title="Abrir el simulador" icon="flask" href="https://simulab.es/electronica/contadores">
  Contadores binarios, módulo N, en anillo y Johnson, y registros de desplazamiento.
</Card>

Un biestable guarda un bit. Si se encadenan varios, aparecen circuitos que **cuentan** pulsos, **dividen** la frecuencia de un reloj o **desplazan** datos. Están en relojes digitales, temporizadores, teclados, comunicaciones serie y dentro de cualquier procesador.

## Lo que vas a aprender

* Cómo un contador binario recorre sus estados.
* Por qué cada bit divide la frecuencia entre 2.
* Cómo se hace un contador módulo N.
* Los contadores en anillo y Johnson.
* Para qué sirven los registros de desplazamiento.

## Cómo se usa el simulador

* Elige el tipo: **binario**, **módulo N**, **anillo**, **Johnson** o **registro**.
* **Biestables**: de 2 a 6. **Sentido**: ascendente o descendente. **Velocidad del reloj**: de 0,5 a 8 Hz.
* **⎍ Pulso de reloj**, **▶ Reloj automático** y **↺ Reset**.
* Se ven los biestables con el peso de cada bit, el **diagrama de tiempos**, el **valor** actual, el **número de estados** del ciclo y la **secuencia completa**.

## Fundamentos teóricos

### Contador binario

Con $n$ biestables T (con $T = 1$) se cuentan $2^n$ estados, de 0 a $2^n - 1$, y se vuelve a empezar.

* $Q_0$ cambia en **cada** flanco.
* $Q_1$ cambia cada **2** flancos.
* $Q_2$, cada **4**…

Cada bit tiene **la mitad de frecuencia** que el anterior: un contador de $n$ bits es también un **divisor de frecuencia** por $2^n$.

### Síncrono y asíncrono

* **Asíncrono** (de rizado): el reloj de cada biestable es la salida del anterior. Sencillo, pero los cambios se propagan con retraso.
* **Síncrono**: todos reciben el mismo reloj y cambian a la vez. Más rápido y fiable.

### Contador módulo N

Cuenta de 0 a $N - 1$ y vuelve a 0. Se detecta el estado $N$ con una puerta y se usa para poner el contador a cero. Hacen falta $\lceil\log_2 N\rceil$ biestables.

### Contador en anillo

Un registro de desplazamiento con la salida conectada a la entrada, por el que circula **un único 1**: 1000, 0100, 0010, 0001… Tiene $n$ estados con $n$ biestables. Útil para activar dispositivos por turno.

### Contador Johnson

Como el anillo, pero realimenta el **complemento** del último bit: 0000, 1000, 1100, 1110, 1111, 0111… Tiene **$2n$ estados** con $n$ biestables.

### Registros de desplazamiento

En cada pulso, todos los bits se mueven una posición. Sirven para pasar datos de **serie a paralelo** y al revés (puertos serie, USB, SPI) y para multiplicar o dividir por 2.

## Ejemplos resueltos

<AccordionGroup>
  <Accordion title="Ejemplo 1 · Contador módulo 10" defaultOpen>
    $2^3 = 8 < 10 \le 2^4 = 16$: hacen falta **4 biestables**, con reinicio al llegar a 10 (1010).
  </Accordion>

  <Accordion title="Ejemplo 2 · Johnson">
    Un Johnson de 4 biestables tiene $2 \cdot 4 = 8$ estados.
  </Accordion>

  <Accordion title="Ejemplo 3 · Divisor de frecuencia">
    Con un reloj de 32 768 Hz (el de los relojes de cuarzo) y un contador de 15 bits, el último bit oscila a $32\,768/2^{15} = 1$ Hz: un pulso por segundo.
  </Accordion>
</AccordionGroup>

## Experimenta con el simulador

<Steps>
  <Step title="Frecuencias">
    Con el contador binario, mira el diagrama de tiempos. ¿Cuántos flancos tarda en cambiar cada bit?
  </Step>

  <Step title="Módulo N">
    Configura un módulo 6 y comprueba la secuencia de estados.
  </Step>

  <Step title="Anillo y Johnson">
    Con 4 biestables, cuenta los estados de cada uno.
  </Step>
</Steps>

## Errores frecuentes

* **Pensar que $n$ biestables cuentan hasta $2^n$**: cuentan hasta $2^n - 1$.
* **Confundir los estados del anillo ($n$) y del Johnson ($2n$).**

## Herramientas relacionadas

<CardGroup cols={3}>
  <Card title="Biestables" icon="memory" href="/electronica/logica-secuencial/biestables">
    El bloque básico.
  </Card>

  <Card title="Conversor de bases" icon="calculator" href="/electronica/sistemas-numeracion/conversor-bases">
    Leer el valor del contador.
  </Card>

  <Card title="Sumador binario" icon="plus" href="/electronica/logica-combinacional/sumador-binario">
    Otra aritmética con bits.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.