Forum: Mikrocontroller und Digitale Elektronik universeller 4 bit Zähler


von Michael H. (itse)


Angehängte Dateien:

Lesenswert?

Hallo,

es soll ein universeller 4 bit Zähler (asychron) realisiert werden. Man 
kann also mit jeweils 4 Schaltern binär den Startwert und den Endwert 
des Zählers bestimmen. Das Ganze soll über flankengesteuerte 
J-K-Master-Slave-Flip-Flops erfolgen. Diese haben direkte Set und 
Reset-Eingänge. Ausgabe erfolgt auf einer 7-Segment-Anzeige

Um einen asynchronen 4 bit Zähler zu realisieren, brauche ich ja 4 
JK-Flip-Flops bei denen setze ich J=K=1 jeweils.

Nun hatte ich mir vorgestellt, dass ich den Zähler ganz normal laufen 
lasse, also bei Null beginnend. Damit nun der Startwert realisiert 
werden kann, wollte ich einen Volladdierer verwenden, der vor Ausgabe 
einfach immer den Startwert draufaddiert.

Zudem muss ja bei Erreichen des Endwertes der Zähler einen Reset 
erfahren, um wieder mit dem Startwert zu beginnen.

Kann ich das mit einem Komparator machen oder einem zweiten zusätzlichen 
Addierer?

Ich wollte nun testen, ob das mit dem Startwert so hinhaut, per 
Volladdierer, jedoch hat das keine Auswirkung, der Zähler beginnt 
trotzdem bei Null.

Anbei die Schaltung. Wo liegt da der Fehler.

Ich verstehe das mit den Reset und Set-Eingängen nicht so ganz, wie muss 
ich diese ansteuern?

Vielen Dank
Michi

von MaWin (Gast)


Lesenswert?

Deine Lösung ist sicherlich anders als die der anderen, mit dem 
Volladdierer nach dem Zähler, aber möglich.
Den Endwert musst du am Ausgang des Volladdieres vergleichen und an 
R(eset) des Zähler legen.
Wenn R des Zählers beim nächsten Takt synchron ausgewertet wird, ist als 
Endwert der letzte mögliche Wert zu nehmen, ist R ein asynchroner 
Eingang, ist der nächste Wert, also der erste der nicht mehr erreicht 
werden darf, zu nehmen, mit dem Problem, dass es eventuell 5 bit werden.
Der Rest, tja der Rest wurde dir in der Schulstunde erklärt, einfach mal 
hingehen und zuhören.

von Michael H. (itse)


Lesenswert?

Guten Morgen,

vielen Dank für den Hinweis mit der Schulstunde, da war ich, hat aber 
leider nicht viel gebracht.

Wenn ich das so mit dem Addierer, nach dem Zähler mache, habe ich ja ein 
Problem wenn es einen Übertrag gibt, also das 5.Bit gesetzt wird.

Mir fällt aber ansonsten keine wirkliche Möglichkeit ein.

Kann ich die Set-Eingänge des JK-Flip-Flops nicht direkt mit dem 
Startwert belegen?

Wenn ich das probiere, geht gar nichts mehr.

Für konstruktive Hilfe wäre ich sehr dankbar.

von Lola (Gast)


Lesenswert?

Wir haben ein ähnliches Problem, wie Du. Bist Du weiter gekommen bei der 
Bearbeitung?

von MaWin (Gast)


Lesenswert?

> Wenn ich das so mit dem Addierer, nach dem Zähler mache, habe ich ja ein
> Problem wenn es einen Übertrag gibt, also das 5.Bit gesetzt wird.

Ja nun, dann baut man eben ein 5. Bit hinzu, wenn man es so lösen will, 
wie du.

> Wenn ich das probiere, geht gar nichts mehr.

Klar, der wird dann ja immer gesetzt statt zu zählen. Du wirst das 
aktive Signal auf den Startzeitpunkt begrenzen müssen.

> Wir haben ein ähnliches Problem, wie Du.

Tja ja, andere Klasse, gleicher Lehrplan...

von hela (Gast)


Lesenswert?

Hallo,

außer Addierer gibt es auch noch Komparatoren (z.B. 74'85). Mit dem 
könnte man den Zählerstand mit dem Startwert vergleichen und falls der 
Zählerstand kleiner als der Startwert ist, dann wird der Startwert in 
den Zähler geladen.

von Stefan M. (celmascant)


Lesenswert?

Sagt mal bin ich eigendlich der einzige dem auffällt, das man 4bit nicht 
mit einer Dezimalstelle ausgeben kann? Bei mir sind 4bit 16 möhliche 
Dezimalzahlen (0-15). Das macht sich schlecht mit einer 
7-Segmen-Anzeige...

Zum Thema selbst kann ich leider auch keine Auskunft geben.
Solche Theoriefragen gehen mir immer tierisch auf den Sack! Das braucht 
niemal irgend Jemand! Jeder normale Mensch nimmt dafür eine Steuerung, 
fertigen Zähler, Microkontroller was weis ich, aber mit einzelnen 
Gattern wird das seit mindestens 25 Jahren nicht mehr gemacht!

Naja, Theorie halt...

Sorry für OT,
Gruss Stefan

von Gast (Gast)


Lesenswert?

Naja, alle anderen haben erkannt, dass man auch ABCDEF darstellen kann..

von Stefan M. (celmascant)


Lesenswert?

Hrrrg Verdammt, da könntest du recht haben ;)
Das kommt dabei raus wenn man früh um 3Uhr aufstehen muss...

... wobei B und 8 nicht zu unterscheiden wären^^

von Gast (Gast)


Lesenswert?

kleines b...

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

@  Michael H. (itse)

>es soll ein universeller 4 bit Zähler (asychron) realisiert werden.

AUTSCH! Asynchron ist böse!!!
Dafür hab ich zu Schüler und Studentenzeiten schon mehrere virtuelle 
Ohrfeigen kassiert.

>kann also mit jeweils 4 Schaltern binär den Startwert und den Endwert
>des Zählers bestimmen.

Mach es RICHTIG! Und zwar synchron.
Isz auch icht wirklich schwer. Mittel 4 Bit Vergleicher 74HC85 kann man 
den Maximalwert erkennen, dann wird SYNCHRON ein Reset ausgelöst. Ein 4 
Bit Addierer tut sein übriges.

Das Ganze kann man als TTL-Grab oder CPLD praktisch umsetzen.

>Um einen asynchronen 4 bit Zähler zu realisieren, brauche ich ja 4
>JK-Flip-Flops bei denen setze ich J=K=1 jeweils.

VERGISS DAS GANZEN ASYNCHRONGEMURKSE!

@  Stefan M. (celmascant)

>Sagt mal bin ich eigendlich der einzige dem auffällt, das man 4bit nicht
>mit einer Dezimalstelle ausgeben kann? Bei mir sind 4bit 16 möhliche
>Dezimalzahlen (0-15). Das macht sich schlecht mit einer
>7-Segmen-Anzeige...

Dir ist schon klar, dass die auch A..F anzeigen kann?

> Das braucht niemal irgend Jemand! Jeder normale Mensch nimmt dafür eine 
>Steuerung,
>fertigen Zähler, Microkontroller was weis ich, aber mit einzelnen
>Gattern wird das seit mindestens 25 Jahren nicht mehr gemacht!

Hier geht nicht um eine industrietaugliche Lösung, sondern um einen 
Lerneffekt für Lernende!
Du hast das damals scheinbar weggelassen. Merkt man.

>Naja, Theorie halt...

Die ist zwar oft verpönt, aber ohne die geht GAR NIX!!!!
Dass es da teilweis Typen gibt, die aus der Theorie nicht heraus kommen 
und es nicht praktisch hinkriegen bzw. zu akademisch umsetzen ist eine 
ganz andere Frage.

MfG
Falk

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.