Contador bidireccional BCD con velocidad de contaje variable en proteus

Estoy trabajando en un proyecto. Y su descripción es: Diseña un contador de 3 dígitos que debe tener 4 botones (arriba, abajo, derecha, izquierda).

Al presionar el botón arriba, el contador debe contar durante 5 segundos (cada conteo dura 1 segundo) y después de los 5 segundos, la velocidad de conteo debe duplicarse y esto continúa duplicando la velocidad después de cada 5 segundos hasta que la velocidad de operación llega a 128, luego opera con 128x hasta el final (por ejemplo si empezamos con 1Hz la frecuencia final debería ser 128Hz).

Al presionar el botón de abajo, el escenario anterior se invertirá (si comienza con 128 Hz, deberíamos terminar con 1 Hz).

al presionar el botón derecho, el contador debe contar uno por uno normalmente. al presionar el botón izquierdo debe actuar de manera opuesta al botón derecho.

Empecé con el contador 74ls192, un duplicador de frecuencia ( https://i.stack.imgur.com/ViirF.png ), divisor de frecuencia, etc.

Los botones izquierdo y derecho son triviales. Sin embargo, tuve un problema con la implementación de los botones arriba y abajo. Estoy pensando en colocar un generador de reloj delante de ellos y colocar un duplicador de frecuencia después y luego conectarlo al pin superior en 74ls192. y para el botón hacia abajo, colocamos un circuito de división de frecuencia por 2 y luego lo conectamos al IC. No sé cómo manejarlos con 5 segundos.

Implemento lo siguiente: CONTADOR LLENO el problema es que no funciona? donde estoy haciendo mal?

y dentro de cada bloque hay algo como esto: 74ls192

Entonces, ¿podría por favor guiarme para resolver este problema? O cómo empezar consejos.

PD: también se requiere diseñar cada función con solo puertas lógicas. (así que implementé 74ls192 por puertas yo mismo desde http://www.datasheetcafe.com/sn74ls193-datasheet-pdf/ ) e incluso chanclas (que tomó mucho tiempo)

Cualquier ayuda será apreciada.

En realidad nunca dijiste cuál era el problema que tenías. Nunca dibujaste tu circuito donde llegaste.
Es un poco desordenado. Lo agregaré a la publicación.
74LS192 es un contador de 4 bits. Con el tipo de reloj de 128x del que estás hablando, espero que tengas la idea de que el contador se desbordará después de cada 16 ciclos de reloj.
¿Por qué implementa 74LS192 usando puertas? ¿Qué tipo de tiempo libre tienes? ;-)
No fue intencionado. Nuestro instructor quiere que sea un desafío...

Respuestas (1)

Comience con el reloj más rápido que necesite y use una serie de flip flops T para dividir la frecuencia del reloj entre potencias de 2. Así que tiene la frecuencia más alta f, entonces el primer flip flop T produce f/2, el segundo produce f/4, el tercero produce f/8 y así sucesivamente hasta que el séptimo produce f/128.

Luego use un multiplexor para seleccionar uno de los 7 relojes y proporcionarlo a la entrada de reloj del contador. La dirección del multiplexor sería en sí misma un contador que se incrementa después de 5 segundos.

Espero que entiendas esto, pero si quieres más detalles, puedo hacer un esfuerzo para hacer un diagrama de bloques y editar mi respuesta.
Gracias. Intentaré eso. Aparte de eso, ¿mi circuito es correcto? ¿Algún circuito faltante que sugiera para manejar los 5s (¿simplemente use un temporizador?)?
Puede usar el circuito astable 555 para generar una onda cuadrada de 0.2 Hz. Pero no puedo decir nada sobre tu circuito.
Gracias. ¿Podría decirme cómo conectar en cascada los contadores BCD, porque cuando ejecuto mi diseño cuenta de 18 a 29, luego de 20 a 21 y así sucesivamente? luego detecto que cuando QD del primer BCD sube, el "arriba" del segundo contador se vuelve alto y comienza a contar, así que decidí agregar una puerta AND cuyas entradas son QA y QD, de modo que una vez que el primer contador llegue a 9 o "1001", entonces la entrada "arriba" del segundo contador se activa, pero tampoco funciona. ¿Cómo debo arreglar eso?
La conexión en cascada es fácil con 74192. Simplemente conecte el BO de la etapa actual a la parte inferior de la siguiente etapa y el CO de la etapa actual a la parte superior de la siguiente etapa.
Fue fácil :). gracias de nuevo.