Jump to content

binär zu 7Segment Anzeige inklusive Hex Werte A-F - ein Bastelreport...


Wurstbrot_deluxe

Empfohlene Beiträge

Hallo Redstone Nerds!

Wer hat schon Lust immer nur Türen zu öffnen mit Druckplatten oder Schaltern? Wer die Frage mit "ich" beantwortet, braucht gar nicht weiterlesen.

Nach meiner jüngst vorgestellten Matrixanzeige mit 31Byte und 8bit möchte ich hier den Entwicklungsweg zu einer Erweiterung dokumentieren. Ziel ist eine Anzeige, die vier bit binär als 7 Segment Anzeige darstellt, inklusive der Hex Werte A-F.
Bauteile sind Hebel, Redstone und Redstonefackeln, Verstärker, Redstonelampen und verschiedene Steine. 
Aktueller Stand am 23.2.17 ist, dass die Theorie erledigt ist und der "proof of concept" für eines der sieben Segmente erfolgreich abgeschlossen ist. Sprich, eines der Segmente (nämlich das unterste) leuchtet so wie es soll. Es ist noch die Logik für die anderen sechs Segmente zu bauen.
Bis jetzt stecken schon mehrere Stunden Arbeit für die Theorie darin, da ich einige Sachen seit der Ausbildung nicht mehr benötigte. Muss man erstmal wieder reinkommen.

Der erste Schritt ist nicht wild drauf losbauen, sondern Papier oder Excel. Man benötigt eine Wahrheitstabelle. Darin wird dokumentiert, welches Segment der Anzeige bei welchen Zuständen auf den vier Leitungen angesteuert werden muss, um den hexadezimalen Wert darzustellen.
Vier Datenleitungen ( A-D) ergeben 16 mögliche verschiedene Zustände, im Bild seht Ihr die komplette Wahrheitstabelle.
Diese Tabelle ist die Basis, um für jedes einzelne Segment eine Gleichung zu erstellen, wann am Ausgang ein Signal benötigt wird und wann nicht.

01_7seg-truth.png.af382594d8a9f9b3d89ad9df4e028825.png

Im nächsten Schritt sagen wir erstmal den Nerds der 1950er Jahre danke, den Herren Karnough und Veitch. Nach denen ist das Karnough-Veitch-Diagramm benannt, dass zur Vereinfachung logischer Funktionen genutzt wird.
Wir benötigen später insgesamt sieben Diagramme, für jedes Anzeigesegment eins. 

Die vier Eingangsvariablen (A-D) werden so angeordnet, dass in dem enstehenden Quadrat jeder der 16 möglichen Zustände ein Kästchen erhält. Unwahre Variablen, also negierte Werte werden mit einem Strich darüber dargestellt.
So kommen wir zu folgender Vorlage:

02_karnough-veitch-raw.png.e9202f7529eb8754c41078b1fe3610ae.png

Erläuterung: wenn auf den Eingängen A, B, C und D kein Signal anliegt, also logisch Null, dann heisst das also: Nicht A und Nicht B und Nicht C und Nicht D. Auf das Kästchen unten rechts im Diagramm trifft das zu.

Erarbeiten wir uns nun mal das Karnough-Veitch Diagramm für Segment d (ganz unten) der 7-Segment Anzeige. Das Segment wird benötigt bei der Darstellung von 0,2,3,5,6,8,9,B,C,D,E.
Sonst nicht. Also kommen Kreuze an die entsprechenden Positionen im Diagramm. Ignoriert bitte erstmal die grünen Markierungen der unwahren Werte.

03_karnough-veitch-segment-d.png.1aedd3694ce37dc59ea1e9ab2847324a.png

Voila!

Aus dem Diagramm erarbeiten wir nun eine Gleichung, die aussagt, wann ein Ausgangssignal benötigt wird.
Nehmen wir mal nur die dritte Reihe mit vier Keuzen nebeneinander.
Man könnte jetzt schreiben: ich brauche ein Ausgangssignal (x) wenn A und B nicht und C nicht und D wahr sind oder A und B nicht und C und D wahr sind oder A nicht und B nicht  und C und D oder A nicht und B nicht und C nicht und D.  Na raucht der Kopf schon?
Es geht auch einfacher, denn A und C spielen in dieser Zeile keine Rolle. Man könnte auch schreiben x=B nicht und D. Damit sind vier Werte auf einmal abgedeckt in einem kurzen Term. Diese Methode nennt man minterm, die wahren Werte werden zusammengefasst zu einer Gleichung.
Wenn man viele wahre Werte hat, dann kann die minterm Methode dennoch zu langen Gleichungen führen.
Das Gegenteil ist die maxterm Methode, man fasst die unwahren Werte zusammen (eben die grün markierten) und negiert das Gesamtergebnis. In diesem Fall bleibt eine Gleichung mit vier Termen übrig, die insgesamt negiert wird.

Beispiel minterm gegen maxterm:
Minterm: Wenn Chantalle, Marvin und Kevin da sind und Paul (der Spiesser) nicht da ist, dann hol den Schnaps aus Vaters Bar.
Maxterm: Wenn Paul (der Spiesser) da ist, dann hol nicht den Schnaps aus Vaters Bar.

So sieht die Gleichung aus, die als Basis für den Bau in Minecraft dient. Wohl gemerkt, für eines der sieben Segmente - nämlich d.

04-segment-d-maxterm.png.25b8356de1e077116d2d6e2bef856b92.png

Jetzt kann man Mincraft anwerfen und anfangen zu überlegen.
Wie groß sollen die einzelnen Segmente sein? Ich nehme je drei Lampen neben- oder übereinander. Das sieht gut aus und lässt sich gerade noch mit einem Redstonekabel von der Rückseite ansteuern. 
Schafft man es, die komplette Logik hinter der Anzeige zu verstecken, dass man von vorne nichts sieht? Vermutlich nicht.
Und beim Bauversuch hat sich herausgestellt, dass es bei Und-Verknüpfungen mit vier Eingangen sehr viel einfacher ist, daraus eine Oder-Schaltung zu bauen.
Wenn die Gleichung heißt x=A und B und C kann man daraus auch machen: x nicht = A nicht oder B nicht oder C nicht. Beipiel gefällig?

05-and-to-or.thumb.png.e329d47af0c00888a94b29430eaadd69.png

 

Da Du jetzt bis hierher gescrollt, oder im Idealfall sogar gelesen hast, hier noch ein Bild des aktuellen Bauzustands. Das untere Segment d arbeitet so wie es soll.06-proof-of-concept-segment-d.thumb.png.c0f2de68093f2e4358ec006f684b2ae3.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Läuft, vollständig. Nach sehr vielen nicht gezählten Stunden Bastelarbeit ist die binär-zu-7Segment Anzeige fertig. Die Besonderheit ist, dass auch die hexadezimalen Werte berücksichtigt sind.
Der benötigte Raum für die Anzeige und die gesamte Logik beträgt sieben Blöcke in der Breite, 17 Blöcke in der Höhe und 49 Blöcke in der Tiefe. Die Breite von sieben Blöcken war dabei am Wichtigsten, um auch mehrere Anzeigen nebeneinander setzen zu können. Momentan wird die gesamte Anzeige noch gespiegelt dargestellt, mit dem Anbau an den Adressbus des 31x8 Display ändert sich auch das noch.
Im ersten Entwurf versuchte ich, die Adressleitungen von unten parallel durchzuführen und dann die Logik der einzelnen Segmente übereinander zu bauen. Das wäre sehr groß geworden.

2017-02-27_15_33_27.thumb.png.760fee25cd3e02aadc652dfc4e4f2d10.png

Bei der Logik für das Display hat man zwei Optionen, entweder die Segmente einschalten, die benötigt werden. Oder die Segmente ausschalten, die gerade nicht benötigt werden. Bei der bereits im vorherigen Beitrag erwähnten Optimierung mittels Karnough-Veitch-Diagramm stellte sich heraus, dass die zweite Option die Bessere ist. Im Endeffekt ist eine Schaltlogik mit insgesamt 32 Nicht-Oder-Gattern entstanden.
Die Zuführung der vier Datenleitungen erfolgt von unten und mittels Fackeln werden die Signale senkrecht nach oben transportiert. So stehen zeilenweise die Leitungssignale oder deren negierte Werte zur Verfügung um für die einzelnen NOR-Gatter die Eingänge zu liefern. Für jedes Segment der Anzeige werden drei oder vier Gatter benötigt, mit jeweils drei oder vier Eingängen. es gibt nur ein Gatter mit nur zwei Eingängen. Die Ausgänge der Gatter der ersten Stufe führen auf ein weiteres NOR-Gatter. Dessen Ausgang führt dann direkt zur 7-Segment Anzeige.

2017-02-27_15_34_12.thumb.png.813d89841bcebe2f3a077f0921af9136.png
Blick von oben: Die farbigen Tonblöcke führen die Eingangssignale nach oben. An den Fackeln werden die Eingangssignale für die NOR-Gatter abgenommen.

Gruss wb_d

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B