BCD Bidirektionaler Zähler mit variabler Zählgeschwindigkeit in proteus

Ich arbeite an einem Projekt. Und seine Beschreibung lautet: Entwerfen Sie einen 3-stelligen Zähler, der 4 Tasten haben sollte (hoch, runter, rechts, links).

Beim Drücken der Aufwärtstaste sollte der Zähler 5 Sekunden lang aufwärts zählen (jede Zählung dauerte 1 Sekunde) und nach den 5 Sekunden sollte die Zählgeschwindigkeit verdoppelt werden, und dies verdoppelt die Geschwindigkeit nach jeweils 5 Sekunden, bis die Betriebsgeschwindigkeit 128 erreicht, dann arbeitet er mit 128x bis zum Ende (wenn wir zum Beispiel mit 1Hz beginnen, sollte die Endfrequenz 128Hz sein).

Durch Drücken der Abwärtstaste wird das obige Szenario umgekehrt (wenn Sie mit 128 Hz beginnen, sollten wir bei 1 Hz enden).

Beim Drücken der rechten Taste sollte der Zähler normalerweise einzeln hochzählen. beim Drücken der linken Taste sollte es entgegengesetzt zur rechten Taste wirken.

Ich begann mit einem 74ls192-Zähler, einem Frequenzverdoppler ( https://i.stack.imgur.com/ViirF.png ), einem Frequenzteiler usw.

Die linken und rechten Tasten sind trivial. Ich hatte jedoch Probleme mit der Implementierung der Auf- und Ab-Tasten. Ich denke darüber nach, einen Taktgenerator vor ihnen zu platzieren und einen Frequenzverdoppler danach zu platzieren und ihn dann mit Up-Pin in 74ls192 zu verbinden. und für die Abwärtstaste platzieren wir eine Frequenzteilung durch 2-Schaltung und verbinden sie dann mit dem IC. Ich weiß nicht, wie ich sie mit 5 Sekunden verwalten soll.

Ich implementiere folgendes: COUNTER FULL das Problem ist, dass es nicht funktioniert? wo mache ich falsch?

und in jedem Block steht so etwas: 74ls192

Könnten Sie mich bitte anleiten, um dieses Problem zu lösen? Oder wie man Tipps startet.

PS: Es ist auch erforderlich, jede einzelne Funktion nur mit logischen Gattern zu entwerfen. (also habe ich 74ls192 von Gates selbst von http://www.datasheetcafe.com/sn74ls193-datasheet-pdf/ implementiert ) und sogar Flip-Flops (was viel Zeit gekostet hat)

Jede Hilfe wird sehr geschätzt.

Du hast nie wirklich gesagt, was das Problem war, das du hattest. Du hast deine Schaltung nie dort gezeichnet, wo du hingekommen bist.
Es ist ein bisschen chaotisch. Ich füge es dem Beitrag hinzu.
74LS192 ist ein 4-Bit-Zähler. Ich hoffe, Sie haben bei der Art von 128x-Takt, von der Sie sprechen, die Vorstellung, dass der Zähler nach jeweils 16 Taktzyklen überläuft.
Warum implementieren Sie 74LS192 mit Gates? Was für Freizeit hast du? ;-)
Es war nicht beabsichtigt. unser Lehrer möchte, dass es eine Herausforderung ist ...

Antworten (1)

Beginnen Sie mit dem schnellsten Takt, den Sie benötigen, und verwenden Sie eine Reihe von T-Flip-Flops, um die Taktfrequenz durch Potenzen von 2 zu teilen. Sie haben also die höchste Frequenz f, dann erzeugt das erste T-Flip-Flop f/2, das zweite erzeugt f/4, der dritte erzeugt f/8 und so weiter, bis der siebte f/128 erzeugt.

Wählen Sie dann mit einem Multiplexer einen der 7 Takte aus und stellen Sie ihn dem Takteingang des Zählers zur Verfügung. Die Multiplexeradresse wäre selbst ein Zähler, der nach 5 Sekunden hochzählt.

Ich hoffe, Sie verstehen das, aber wenn Sie mehr Details wünschen, kann ich mich bemühen, ein Blockdiagramm zu erstellen und meine Antwort zu bearbeiten.
Danke schön. Ich werde das versuchen. Abgesehen davon, stimmt meine Schaltung? Irgendeine fehlende Schaltung, die Sie vorschlagen würden, um die 5s zu verwalten (einfach einen Timer verwenden?)?
Sie können eine 555 astabile Schaltung verwenden, um eine 0,2-Hz-Rechteckwelle zu erzeugen. Aber zu deiner Schaltung kann ich nichts sagen.
Danke schön. Könnten Sie mir bitte sagen, wie ich die BCD-Zähler kaskadieren kann, denn wenn ich mein Design ausführe, zählt es von 18 bis 29, dann 20, dann 21 und so weiter. Dann erkenne ich, dass, wenn QD des ersten BCD hoch wird, das "Up" des zweiten Zählers hoch wird und zu zählen beginnt, also entschied ich mich, ein UND-Gatter hinzuzufügen, dessen Eingänge QA und QD sind, so dass, sobald der erste Zähler 9 erreicht oder "1001", dann wird der "Up"-Eingang des zweiten Zählers aktiv, aber es funktioniert auch nicht. wie soll ich das beheben?
Mit 74192 ist die Kaskadierung einfach. Verbinden Sie einfach das BO der aktuellen Stufe mit dem unteren Ende der nächsten Stufe und das CO der aktuellen Stufe mit dem oberen Ende der nächsten Stufe.
Es war einfach :). Danke noch einmal.