circuito lógico para 2 pulsadores de cambio de bits

0

Estoy tratando de entender cómo podría implementar, utilizando IC de lógica (y no una unidad de control de usuario), lo siguiente:

hay dos pulsadores momentáneos y 3 leds. Los leds indican el "estado" lógico, que puede ser 0 (inicial), +1 y -1. Al presionar los botones pulsadores, cambia el estado.

Dibujé este pequeño diagrama que debería ayudar a comprender mejor el tema.

Así que al principio estás en el estado 0 (y el led central está encendido), si presionas +1, pasas al estado +1 (y solo el led +1 está encendido). Si presionas de nuevo +1 no pasa nada. Y así sucesivamente ...

¿Cómo puedo obtener eso usando un circuito lógico? Hasta ahora solo entiendo cómo hacer que los conmutadores se enganchen con D-FlipFlop

    
pregunta Dimitri Petrucci

2 respuestas

2

Recomiendo abstraer las cosas primero:

  • Tienes tres estados (dos bits son suficientes para representar eso). La salida es de tres LEDs. Puede inferir directamente qué LED deberían estar encendidos desde el estado.
  • Sabes sobre puertas lógicas (AND, OR, NAND y así sucesivamente). Por lo tanto, sabe cómo tener dos entradas (los dos bits del estado) y tres salidas (LED). Si eso no está claro, dibuje una tabla de verdad y encuentre los términos mínimos necesarios para encender los LED correctos.
  • El siguiente estado solo depende del estado actual + un bit (es decir, cuál de los dos botones se presionó).

Entonces, lo que necesitas es un

  1. dos flipflops para almacenar el estado
  2. Puertas lógicas para iluminar los LED correspondientes a los dos bits de estado
  3. Puertas lógicas para determinar el siguiente estado según el estado actual + el botón que se presionó
  4. una entrada de "reloj" que dice "ok, ahora evalúa la lógica de transición de estado y pasa al siguiente estado".

Vamos a enrollarlo desde la parte inferior:

El reloj es el más fácil. Simplemente use una compuerta OR en ambos botones. Cuando se haya presionado uno de los botones, la siguiente transición de estado debe cargarse en los fliflops:

+ button \
          OR ---> Latch of flipflops
- button /

La lógica del LED también es fácil: por ejemplo, suponga que la estadística interna 00 es su estado inicial. Así que solo construye una compuerta NOR en el estado inicial que ilumina el LED central. Lo haces para todos los LEDs.

La lógica del "siguiente estado" también es fácil: solo tiene la misma lógica que para los LED, pero con el botón derecho para obtener el siguiente estado interno.

    
respondido por el Marcus Müller
2

Como Marcus indicó que en realidad solo se necesitan dos pestillos para esto. Una para el led izquierdo y otra para el derecho. El LED central estaría encendido cuando ninguno de los otros dos lo esté.

Una vez que llegue a esa realización, la lógica necesaria para configurar y restablecer cada pestillo se vuelve bastante simple. Yo usaría los pestillos J-K para esto

Clock = Either button pressed delayed through two gates.

Centre Led On = Left Led Off AND Right Led Off

Button 1 Action
   Set Left Led = Button1_Pressed AND Right Led Is Off
   Reset Right Led

Button 2 Action
   Set Right Led = Button2_Press AND Left Led Is Off
   Reset Left Led

Por cierto: también necesitas deshacer los botones.

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Trevor_G

Lea otras preguntas en las etiquetas