Forum: Mikrocontroller und Digitale Elektronik lauflicht mit jk-ff´s


von hans w. (elektropepi)


Lesenswert?

guten tag elektronik freunde,

habe folgendes problem:
muss ein lauflicht mit jk-ff realisieren.
1 eigang u:
wenn u=0-->von links nach rechts laufen(4 leds)
wenn u=1-->von rechts nach links laufen(4 leds)

led1 leuchtet-->alle aus-->led2 leuchtet-->alle aus usw.

wie sieht die warheitstabelle und das zustandsdiagramm aus?
muss ja von alle aus=0000 auf jeden zustand "springen"

hoffe ihr versteht mein problem:)

danke

von Schlumpf (Gast)


Lesenswert?

hans werner schrieb:
> muss ein lauflicht mit jk-ff realisieren.

Hausaufgabe?

von hans w. (elektropepi)


Lesenswert?

ne nur übung

von Helmut S. (helmuts)


Lesenswert?

Verbinde J mit Q und K mit Q\ um die Schiebefunktion zu realisieren.
Jetzt brauchst du noch einen Umschalter um zwischen den Q-Ausgängen vom 
linken oder rechten Flipflop zu wählen.

Natürlich setzt das voraus, dass beim Start eines und zwar nur eines 
gesetzt ist. Das könnte asynchron zu Beginn gemacht werden.

Man kann das natürlich synchron und sicher machen, wenn man aus jeder 
ungültigen Kombination synchron auf 1000 springt. Alles machbar.
Ungültige Kombinationen:
0000 und alle Kombinationen mit mehr als einer 1.

von Schlumpf (Gast)


Lesenswert?

Kam mir nur so vor, weil du direkt nach der Lösung gefragt hast.

Du kannst entweder 4 + 1 Zustände codieren (für jede LED einen Zustand 
und für "alle aus" einen Zustand) oder 8 Zustände (für jeden Schritt 
einen eigenen Zustand)

Falls du 4+1 codierst, musst du halt in dem Zustand "alle aus" 
auswerten, welches der Zustand davor war und anhand dessen und des 
Richtungssignals den Folgezustand bestimmen.

Falls du 8 Zustände codierst, gehst du immer "stur" durch die Reihe und 
drehst mit dem Richtungssignal nur die Ablaufrichtung um. Also quasi 
einen Zähler, dessen Richtung umgedreht wird.

von Schlumpf (Gast)


Lesenswert?

Helmut S. schrieb:
> um die Schiebefunktion

An sowas dachte ich auch zuerst, aber offensichtlich will er folgenden 
Ablauf:

1000
0000
0100
0000
0010
0000
0001

von Schlumpf (Gast)


Lesenswert?

Jetzt hab ich noch ne ganz fiese Idee:

Mit dem angesprochenen Schieberegister kommst ja nicht auf diese 
"Zwischenzustände 0000".
Man könnte jetzt mit nem Trick arbeiten, indem man das Taktsignal selbst 
auscodiert (setzt voraus, dass das Verhältnis 50/50 ist).

Die Ausgänge des Schieberegisters werden über jeweis ein UND-Gatter 
geführt und mit dem Takt sozusagen enabled.

Also immer, wenn der Takt low ist, wird der Ausgang des Schieberegisters 
nicht mehr auf die LED geführt..

von hans w. (elektropepi)


Lesenswert?

Schlumpf schrieb:
> An sowas dachte ich auch zuerst, aber offensichtlich will er folgenden
> Ablauf:
>
> 1000
> 0000
> 0100
> 0000
> 0010
> 0000
> 0001

genau so meinte ich es und eben auch andere richtung..

von Schlumpf (Gast)


Lesenswert?

hans werner schrieb:
> genau so meinte ich es und eben auch andere richtung..

Na und dafür hast ja jetzt auch drei mögliche Ansätze bekommen...

von Schlumpf (Gast)


Lesenswert?

Ein weiterer Ansatz wäre:
Binäre Up-own-Counter (3 Bit) und mit dem LSBit wird die Leitung zu den 
LEDs disabled...

Wie du siehst, es gibt zig Ansätze, das zu lösen..

von Helmut S. (helmuts)


Lesenswert?

Lösung mit alle 4LEDs "aus" dazwischen:

Nimm 8 JK-FFs und benutze nur den Q-Ausgang von jedem 2. FF zur Anzeige.
Verbinde J mit Q und K mit Q\ um die Schiebefunktion zu realisieren.
Jetzt brauchst du noch einen Umschalter um zwischen den Q-Ausgängen vom
linken oder rechten Flipflop zu wählen.

Natürlich setzt das voraus, dass beim Start eines und zwar nur eines
gesetzt ist. Das könnte asynchron zu Beginn gemacht werden.

Man kann das natürlich synchron und sicher machen, wenn man aus jeder
ungültigen Kombination synchron auf 10000000 springt. Alles machbar.
Ungültige Kombinationen:
00000000 und alle Kombinationen mit mehr als einer 1.


Das Ganze geht mit weniger Aufwand mit D-FF.

JK-FF sind eigentlich nur für Auszubildende gedacht. :-)

von Schlumpf (Gast)


Lesenswert?

@Helmut:

Oder so :-)

von hans w. (elektropepi)


Lesenswert?

ok erstens einmal vielen dank für eure schnelle hilfe!!:)
bin in digitaltechnik nicht besonders fit:)
problem ist dass ich wahrheitstabelle und kv-diagramme mache und mit 8 
ff dauert das glaube ich etwas...und richtig ich bin azubi:)

wir haben immer zuerst zustandsdiagrmm gemacht, daraus wht und daraus 
wiederum kv-diagramme hier mein ansatz:

u=richtung

u-------------n+1(folgezustand)
0000 aus------|0001
0001 led4-----|0010
0010 aus------|0011
0011 led3-----|0100
0100 aus------|0101
0101 led2-----|usw.
0110 aus
0111 led1(vorne beginnen)
-----
1111 led1
1110 aus
1101 led2
1100 aus
1011 led3
1010 aus
1001 led4
1000 aus(wieder von vorne)

kann man das so realisieren wenn ja wie viele ff´s und wie kann ich das 
auf 4 leds konvertieren??

vieln dank im vorraus:)

von hans w. (elektropepi)


Lesenswert?

möglich das ich sage
000 ist aus
010 ist aus
100 ist aus???

von Schlumpf (Gast)


Lesenswert?

Dein Ansatz ist schonmal richtig.

Wie du selber siehst, hast du dann 8 Zustände, welche sich mit 3 Bit 
abbilden lassen.

000, 001, 010, .... 111

Der Folgezustand ergibt sich dann eigentlich nur aus dem 
Richtungssignal. Also gehst du einen Zustand weiter oder einen zurück.

Wieviele FlipFlops du dazu brauchst, kannst du eigentlich selber 
beantworten. Denn in den FlipFlops legst du das ab, was quasi 
"gespeichert" werden muss. Und das ist dein aktueller Zustand. Da es 
acht Zustände gibt, kannst du das mit 3 FlipFlops abspeichern. (2^3).

Das Konvertieren auf ddie LEDs machst du dann anhand der Zustände der 
FlipFlops.

in deinem Beispiel wäre das exemplarisch:

LED4 soll im Zustand 001 leuchten. (FF(2)=0, FF(1)=0, FF(0)=1)
Also gilt folgene Gleichung für LED4 :
LED4 = /FF(2) AND /FF(1) AND FF(0)

Die entpsrechenden Gleichungen stellst du dann für alle 4 LEDs auf und 
kannst sie dann mit KV vereinfachen.

von hans w. (elektropepi)


Lesenswert?

habe jetzt 3 bit zähler gemacht!

2^3--> 8 zustände aber wie kann ich mit den 3 bit die 4 leds ansteuern??

mfg

von hans w. (elektropepi)


Lesenswert?

ok vielen dank sry haben anscheinen gleichzeitig geschrieben desswegen 
die frage nach deiner antwort....

besten dank:))

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.