Diseñe un contador: 12-10-8-6-4-2-0-1-3-5-7-9-11 utilizando D Flip Flop.
Mi primer enfoque es diseñar un contador 8 - 6 - 4 - 2 - 0 - 1 - 3 - 5 - 7 - 9 - 8 - 6 ... y mostrarlos en el LED de 7 segmentos.
Después de escribir el código binario de estos números de arriba, me doy cuenta de que parecen obedecer una regla
1 0 0 0 (8)
0 1 1 0 (6)
0 1 0 0 (4)
0 0 1 0 (2)
0 0 0 0 (0)
0 0 0 1 (1)
0 0 1 1 (3)
0 1 0 1 (5)
0 1 1 1 (7)
1 0 0 1 (9)
Se puede ver que el LSB de los números pares siempre es 0, mientras que siempre son 1 para los números impares. En cuanto a 3 bits a la izquierda, son simétricos. Así que mi idea para este problema es después de contar de 8 a 0, el LSB cambiaría de 0 a 1 y comenzará a contar (usando 3 o 4 D-Flip-Flop y puertas lógicas). Pero después de escribir la siguiente tabla de estados, me enfrento a la forma de obligar a que mi número inicial sea 8.
Estado actual ---- Estado siguiente
0 0 0 0 ------------ 1 0 0 0 (el siguiente estado es 8 si el número inicial es 0)
1 0 0 0 ------------ 0 1 1 0 (pantalla 8, el estado siguiente es 6)
0 1 1 0 ------------ 0 1 0 0 (pantalla 6, el siguiente estado es 4)
0 1 0 0 ------------ 0 0 1 0 (pantalla 4, el siguiente estado es 2)
0 0 1 0 ------------ 0 0 0 0 (pantalla 2, el estado siguiente es 0)
0 0 0 0 ------------ 0 0 0 1 (muestra 0, cambia LSB a 1 y activa el conteo ascendente)
El problema aquí es que el estado 0 0 0 0 se usa dos veces (una vez para forzar que el número inicial sea 8 y una vez para cambiar LSB en 1) y creo que mi contador se confundiría. Entonces, me pregunto si hay alguna forma de implementar este tipo de contador.
Gracias de antemano por cualquiera de tus respuestas.
Mi circuito funciona, se basa en el circuito de @Trevor Gracias a todos por sus ideas increíbles.