Aufgabenstellungen für Statemachines mit Lösungen

Bsp1) Steigende Flanke erkennen:  einen Taste E1 wird gedrückt; geben Sie bei  der steigenden Flanke einen Impuls für eine Taktperiode aus

graphics1

Bsp2) Modulo2/3 UP/Down-Counter: der Zähler ist umschaltbar. Er zählt entweder 000-111-000-111... usw. oder 000-010-101-000-010-... usw. aufwärts oder abwärts

graphics2

Bsp3) Codeschloss: bei Eingabe dere Codefolge 1000-0100-0010-0001 geht die wird das Schloss freigegeben (Ausgang OK=1), bei einem falschen Code wird ein Fehlerzustand erreicht und das Signal ER=1 ausgegeben. Es muss immer ein vierstelliger Code eingegeben werden, bevor der Endzustand erreicht wird (also auch im Fehlerfall)

graphics3

Bsp: Ein Zähler zählt umschaltbar 0-3-6-7-5-0-3-6-7-5-... oder 0-6-3-0-6-3-...

graphics4

Bsp: Stopp-Zähler: ein Zähler zählt 0-1-2-3-4-0-1-2-3- usw.

Er kann jederzeit durch eine Stopp-Taste angehalten werden. Solange die Stopp-Taste gedrückt ist, bleibt der Zähler stehen; wenn die Taste losgelassen wird, zählt er an der Stelle weiter, wo er angehalten wurde.

graphics5

Bsp) Gegeben ist folgendes Timing-Diagramm

 

graphics6

Lösung: siehe oben (Flankendetektor)

 

Bsp) Gegeben ist folgendes Timing-Diagramm

mit Lösung

graphics7

kurze Erklärung: das Timing läuft mit dem Taktschlag ab; nachdem die Taste erkannt wurde geht das System in den Zustand S1 und gibt für MUTE=1 und MASK=0 aus; mit dem nächsten Taktschlag ist die Ausgabe MUTE=1,MASK=1; dann muss gewartet werden, weil sonst das Timing sofort wieder ablaufen würde, wenn die Taste immer noch gedrückt wäre