Ich versuche zu verstehen, wie ich mit Logik-ICs (und nicht mit einem uC) Folgendes implementieren könnte:
Es gibt zwei momentane Drucktasten und 3 LEDs. Die LEDs zeigen den logischen "Zustand" an, der 0 (anfänglich), +1 und -1 sein kann. Durch Drücken der Drucktasten ändern Sie den Zustand.
Ich habe dieses kleine Diagramm gezeichnet, das helfen soll, das Thema besser zu verstehen.
Am Anfang befinden Sie sich also im Zustand 0 (und die mittlere LED leuchtet), wenn Sie +1 drücken, gehen Sie in den Zustand +1 (und nur die +1-LED leuchtet). Wenn Sie erneut +1 drücken, passiert nichts. Usw..
Wie kann ich das mit einer Logikschaltung erreichen? Bisher verstehe ich nur, wie man die Schalter mit D-FlipFlop zum Latchen bringt
Ich würde empfehlen, die Dinge zuerst zu abstrahieren:
Was Sie also brauchen, ist ein
Rollen wir es von unten auf:
Die Uhr ist am einfachsten. Verwenden Sie einfach ein ODER-Gatter auf beiden Tasten. Wenn eine der beiden Tasten gedrückt wurde, sollte der nächste Zustandsübergang in die Flipflops geladen werden:
+ button \
OR ---> Latch of flipflops
- button /
Die LED-Logik ist auch einfach: Nehmen Sie zum Beispiel an, der interne Status 00
ist Ihr Anfangszustand. Sie bauen also einfach ein NOR-Gatter auf den Anfangszustand, das die mittlere LED aufleuchtet. Das machst du für alle LEDs.
Die „Nächster-Zustand“-Logik ist ebenfalls einfach: Haben Sie einfach die gleiche Logik wie für die LEDs, aber UND-verknüpft mit der rechten Taste, um den nächsten internen Zustand zu erzeugen.
Wie Marcus angedeutet hat, werden dafür wirklich nur zwei Riegel benötigt. Eine für die linke LED und eine für die rechte. Die mittlere LED würde an sein, wenn keine der anderen beiden es sind.
Sobald Sie zu dieser Erkenntnis gelangt sind, wird die Logik, die zum Setzen und Zurücksetzen jedes Latches erforderlich ist, ziemlich einfach. Ich würde dafür zwei JK-Verriegelungen verwenden
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
Übrigens: Sie müssen diese Tasten auch entprellen.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Markus Müller
Olin Lathrop