Gibt es einen IC, mit dem 9-Bit-Binärcode in eine Sieben-Segment-Anzeige umgewandelt werden kann? Bsp.: 100101100->300 Ich möchte 300 in einer Sieben-Segment-Anzeige anzeigen, wenn der Binärcode 100101100 auf die Eingabe angewendet wird. Ich möchte dies nur mit ICs tun, die keine Mikrocontroller verwenden.
Ich kann mir drei Möglichkeiten vorstellen, dies zu tun. Ich beginne mit dem teuersten und kompliziertesten und arbeite mich nach unten vor.
Ich werde später ein paar Schaltpläne erstellen
Ich fürchte, es gibt keine solchen Standard-Chips. Es gibt zwar BCD- bis 7-Segment-Chips, aber es wird schwierig sein, einzelne Ziffern zu extrahieren, da dies „Teilen durch 10“-Chips erfordern würde.
Auch CPLDs sind für Sie da.
Wenn Sie separate Ziffern anstelle einer einzelnen 9-Bit-Zahl generieren können, können Sie Standardchips verwenden.
Der einfachste Weg wäre vielleicht, eine Konvertierungstabelle zu erstellen und sie mit mindestens 9 Adress- und 12 Datenleitungen in EPROM oder FLASH zu speichern. Ansonsten CPLD oder kleines FPGA ( opencores.org hat einige HDL dafür).
Wenn Sie dies wirklich mit diskreten ICs tun wollten, müssten Sie eine Zustandsmaschine konstruieren, die den Algorithmus implementiert, was die komplexeste Lösung wäre und sich nicht wirklich von Mikrocontrollern unterscheidet, abgesehen von erhöhtem Preis, Größe und Komplexität.
Ihre Beispieleingabe, 100101100, ist eine rohe Binärdatei für 300, keine binär codierte Dezimalzahl; BCD für 300 wäre 0011 0000 0000. Wenn Sie Zahlen anzeigen möchten, die tatsächlich BCD sind, ist das relativ einfach. Aber wenn Ihre Eingaben wirklich binär sind, ist es ein komplexeres Problem.
Um von rohen binären zu dezimalen Gruppierungen zu gelangen, die zum Ansteuern der Anzeige erforderlich sind, müssen Sie effektiv eine Basiskonvertierung durchführen, was eine ganzzahlige Division zur Folge hat. Sie können dies zwar mit logischen ICs erreichen, es wird jedoch eine ganze Schiffsladung von ihnen benötigt, was eine MENGE Verkabelung impliziert, was viele Möglichkeiten zum Debuggen bedeutet.
Sofern es keinen zwingenden Grund gibt, Logik-ICs zu verwenden, wäre dies eine ideale Aufgabe für einen 8-Bit-Mikrocontroller.
Ich glaube nicht, dass Sie dies einfach mit 1 IC lösen können. Sie könnten sich die MAX7231-Chips ansehen, aber sie scheinen alt und sehr teuer zu sein. Sie können vielleicht den HEF4511 (oder DS8669) verwenden, wenn Sie einen 10-Bit <> BCD-Encoder finden. Außerdem würde es Ihnen schwer fallen, es auf diese Weise zu erstellen.
Möglicherweise können Sie auch die booleschen Formeln für den 10-Bit-Code auf 3x einen BCD-Ausgang schreiben. Ich würde nicht erwarten, dass das sehr einfach ist, weil 10 Eingänge zu 3x4 Ausgängen eine Menge Arbeit zu sein scheinen.
Ich nehme an, Sie tun dies "nur zum Spaß", dies in der Ingenieurwelt zu tun, ist nicht sehr kosteneffektiv. Sie benötigen wahrscheinlich ein 7-Segment-Signal + 3 Anzeigen und 10-Bit-Eingang. Das sind etwa 20 E/A. Ein einfacher PIC oder AVR mit 24 oder 28 Pins kann damit umgehen (oder ein CLPD, wenn Sie eine schnellere Verarbeitung benötigen - Displays sind jedoch für das menschliche Auge bestimmt, müssen also nicht ultraschnell sein).
Es ist nicht allzu schwer, ein CPLD oder FPGA einzurichten, um binäre Daten, die MSB-zuerst verschoben werden, in Dezimaldaten umzuwandeln. Der Kernbaustein ist ein Modul mit Takt-, Daten- und Löscheingängen, vier Latches D0-D3 und einem kombinatorischen Next-Carry-Ausgang. Kaskadieren Sie die Blöcke wie bei einem Schieberegister. Nachdem der Binärwert hineingeschoben wurde, halten die Register das Äquivalent in BCD.
; Übertrag wenn >= 5 NextCarry = D3 | D2 & D1 | D2 & D0 ; Wird 8 oder 9 sein, wenn die Eingabe 4 oder 9 war D3 := !D3 & D2 & !D1 & !D0 | D3 & D0 ; Wird 4-7 sein, wenn die Eingabe 2-3 oder 7-8 war D2 := !D3 & !D2 & D1 | !D3 & D2 & D1 & D0 | D3 & !D0 ; Wird 2-3 oder 6-7 sein, wenn die Eingabe 1, 3, 6 oder 8 war D1 := !D3 & !D2 & D0 | !D3 & D2 & D1 & !D0 | D3 & !D0 ; Wird ungerade sein, wenn Carry-In eingestellt ist D0 := CarryIn
Beachten Sie, dass das Register vor jeder Verwendung gelöscht werden muss; Das Verschieben von Nullen reicht NICHT aus. Eine Löschschaltung ist nicht gezeigt, sollte aber offensichtlich sein.
Zufälligerweise gibt es eine Schaltung, die genau das tut, was Sie wollen - vorausgesetzt, Sie verwenden TTL-Logikpegel und 4 DIP-ICs entsprechen Ihren "beliebigen IC" -Anforderungen. Diese Schaltung ist die 74185 , und die genaue gewünschte Konfiguration finden Sie in Abbildung 6 auf Seite 7. Es gibt natürlich ein paar Nachteile. Zunächst einmal ist die 74185 30 Jahre alt und definitiv veraltet. Allerdings bekommt man sie bei eBay. Zweitens benötigen Sie 4 davon, und das bringt Ihnen mehr als 20 Dollar. Drittens beträgt die erforderliche Gesamtleistung 5 Volt bei 300 bis 400 mA.
Aber ansonsten ist es ziemlich einfach. Und für das, was es wert ist, entspricht es tatsächlich dem Geist einiger anderer Antworten. Wie im Datenblatt angegeben, ist der IC eigentlich ein 32 x 8 PROM.
Andernfalls haben Sie bei Single-Chip-Speichern Pech. Obwohl das lsb keine Transformation erfordert, benötigt ein Ausgang von 300 9 IC-Ausgänge, und Sie werden einfach kein (E) (E) PROMS mit mehr als 8 Ausgängen finden.
sternenblau
Olin Lathrop
Oldtimer
Oldtimer