Wie nennt man diese Art von LCD-Anzeigen, die nur aus Ziffern bestehen?

Ich habe diese Art von LCD oft in Waagen, Taschenrechnern, Messgeräten, Mikrometern usw. gesehen. Ich weiß, dass es sich um ein ziemlich traditionelles Display handelt, aber ich mag seine Kompaktheit, Einfachheit und vielleicht kostet es sogar weniger als TFTs oder Smartphones. Typ Touch-Displays.

Nur-Ziffern-LCD


[ Wie heißt es? Beantwortet von @kevlar1818 und @stevenvh: "Siebensegmentanzeige"]

Ich würde gerne mit dieser Art von LCD arbeiten, zum Beispiel habe ich gerade dieses 8-stellige LCD namens VIM-878 aus dem Digikey-Katalog gefunden; hier ist sein datenblatt .

Wie interagiere ich damit? Ich würde gerne wissen, was eine gute / übliche Art der Verbindung mit einem einfachen AVR-Mikrocontroller wie einem Atmega8 wäre - vorzugsweise mit Schnittstellenschaltungen / Teilen, die physisch nicht zu groß sind.

  • Ich nehme an, dass eine Art Treiber oder Multiplexer erforderlich wäre? Ich schätze, ich suche nach einer Anfangsperspektive von anderen, die vielleicht bessere Erfahrungen mit der Schnittstelle zu dieser Art von LCD haben.
Vielen Dank, dass Sie die angeforderten Informationen hinzugefügt haben. Bitte achten Sie jedoch darauf, dass Sie dabei vorherige Bearbeitungen nicht rückgängig machen.
Genau das habe ich getan, nicht wahr, oops! Könnten Sie oder jemand helfen, das Bild zurückzusetzen?
Sie könnten versuchen, zu Bearbeiten 2 zurückzukehren und dann Ihre Informationen hinzuzufügen. Ich habe nicht den Vertreter, um Rollbacks durchzuführen, also werde ich es kennzeichnen.

Antworten (3)

Es ist eine 7-Segment-Anzeige . Im Gegensatz zu den Dot-Matrix-Zeichenanzeigen, auf die sich Kevlar bezieht, handelt es sich bei diesen meist nicht um intelligente Module. Die meisten Punktmatrix-Displays haben einen HD44780-kompatiblen Controller, auf den Sie einfach ASCII-Codes schreiben können, aber ein 7-Segment-LCD ist oft nur das Glas, mit Anschlüssen für Segmente und einer Reihe von Backplanes (oft bis zu 4).

Geben Sie hier die Bildbeschreibung ein

Das Ansteuern von LCDs kann umständlich sein, da sie nicht nur zwei Ebenen verwenden, sodass Sie sie nicht mit herkömmlicher digitaler Logik ansteuern können.

Geben Sie hier die Bildbeschreibung ein

Am besten wählen Sie einen Mikrocontroller mit integriertem LCD-Controller aus, an den Sie das Display direkt anschließen können, wie den TI MSP430x4xx . Wie die meisten Controller kennt auch dieser nur Segmente; es kennt keine Ziffern oder irgendetwas. (Großartig, zuerst hatten wir ein dummes Display, jetzt haben wir auch einen dummen Treiber!) Dafür gibt es einen Grund. Diese LCD-Treiber werden häufig verwendet, um benutzerdefinierte LCDs anzusteuern, die eine Mischung aus einem numerischen Teil, Balkendiagrammen und benutzerdefinierten Symbolen sein können. Ein solches Symbol ist auch ein einzelnes Segment, daher macht es keinen Sinn, über Ziffern zu sprechen.

Geben Sie hier die Bildbeschreibung ein

Diese Anzeige hat Symbole wie "Batterie" und "Wecker", aber auch alle Textfelder, wie "AM", "PM" und "SNOOZE" sind Symbole, die aus einem einzelnen Segment bestehen (dh durch ein einzelnes Bit gesteuert werden).

Weiterführende Literatur
MSP430x4xx Family User's Guide . LCD-Controller wird auf S.709 ff. behandelt.

Angenommen, Segmente bedeuten die Anzahl der Teile, die zum Erstellen eines Zeichens / einer Ziffer auf meinem LCD verwendet werden, denke ich, dass ein Mikrocontroller großartig wäre - er kann 96 unterstützen und hat nur eine Stromaufnahme von 200 uA. Schlagen Sie vor, meinen AVR durch den TI-Mikrocontroller zu ersetzen oder nur über ihn mit dem LCD zu kommunizieren? Ich würde letzteres aufgrund meiner AVR-basierten Erfahrung bevorzugen (ebenfalls begrenzt!); also kannst du das kommentieren?
@Inga - Mir ist kein AVR mit einem LCD-Treiber an Bord bekannt. Die Verwendung des MSP430 als Anzeigetreiber kann eine gute Idee sein: Ihr AVR kann sich an seine Hauptaufgabe halten, und das Programm für den MSP430 kann einfach (wenn Sie nicht viel Erfahrung damit haben) oder fortgeschritten (wenn Sie möchten) gehalten werden machen es zu einem intelligenten Treiber, den Sie mit Befehlen wie "increment" versorgen können).
Das klingt sehr machbar; Ich bin dabei, einen der TI-Chips zu bestellen! Übrigens, falls meine Programmierversuche mit diesem Mikrocontroller fehlschlagen, kann ich einen einfachen Multiplexer oder LED-Treiber verwenden, zB einen IC wie diesen, den ich gerade von Maxim gefunden habe ? Ich sehe Schwierigkeiten voraus, aufgrund dessen, was Sie über die mehreren Ebenen gesagt haben.
@Inga - Nein, du kannst den MAX7219 nicht verwenden, das ist ein LED-Treiber. Zum einen multiplexen sie viel zu schnell für LCDs. Die mehreren Ebenen sollten kein Problem sein; Dafür hast du einen Treiber. Das kümmert sich um alles. Was halten Sie von dem intelligenten Fahrer, der die anzuzeigenden Zahlen zählt? Sie könnten Befehle wie "Wert laden", "Zähler erhöhen", "Zähler zurücksetzen" usw. verwenden.
Haha, es hat wirklich solche Befehle?! Ich muss sicherlich selbst Code schreiben, um diese Funktionen zu implementieren, oder?
@Inga - Ja, du musst sie selbst schreiben; der LCD-Treiber kennt nur Segmente, sie müssen nicht einmal numerisch sein. Viele benutzerdefinierte LCDs haben Symbole als einzelnes Segment. Aber es könnte eine Last vom AVR nehmen, und Sie könnten es für andere Projekte wiederverwenden, in denen Sie eine numerische Anzeige benötigen.
Verstanden, also [LCD leuchtet angeforderte Segmente EIN] <<--- [MSP430-Code führt eine Funktion aus, die ich schreibe, um UART-empfangene Zeichen in Segmente zu übersetzen, die EIN/AUS getrieben werden] <<--- [AVR-Code sendet gewünschten Text an MSP430 über UART].
Eine Anmerkung: Wenn Sie sagten, der LCD-Treiber "kennt" nur Segmente (und die mehreren Ebenen werden von ihm erledigt); was bedeutet das? Wie nutze ich diese Funktion, wenn ich den TI-Chip/Treiber codiere? Ich fange an, das Datenblatt zu lesen, aber übersehe ich etwas?
Ich habe diese Referenz/Bedienungsanleitung für diesen Mikrocontroller/Treiber gefunden: Kapitel 25 befasst sich ausführlich mit der LCD-Steuerung. Vielleicht können Sie dies zu Ihrer Antwort hinzufügen, wenn dies möglich oder von Interesse ist.
@Inga - Ja, ich wollte Sie gerade auf das Benutzerhandbuch hinweisen; Das Datenblatt gibt Ihnen keine Details. Das Benutzerhandbuch enthält auch Programmierbeispiele. Sie werden sehen, dass die Anzeige als Array von 16 Bytes dargestellt wird. Es liegt an Ihnen, zu entscheiden, was jedes Bit darstellt: zum Beispiel ein Segment einer 7-stelligen Anzeige oder ein Symbol auf einer benutzerdefinierten Anzeige.
Vor einem Jahrzehnt habe ich in einem meiner Elektroniklabors eine 4(?)-stellige 7-Segment-Anzeige verwendet, die separate Eingangspins für jede Ziffer hatte und die mit einfacher digitaler Logik gesteuert wurde, sodass Muxing- und Controller-Chips nicht streng genommen sind erforderlich. Das Modul war allerdings ziemlich teuer; IIRC >100 $.
@Dan - Sie können das tun, wenn Sie kein Multiplexing benötigen / wollen. Der Nachteil ist, dass Sie viel mehr E / A benötigen: 33 für eine Anzeige mit 4 Ziffern + Dezimalpunkten (4 x 8 + 1 gemeinsam).

Was Sie denken, nennt man ein 7-Segment-LCD. Wenn Sie wissen, wie man eine normale LED zum Leuchten bringt, dann ist es 1/8 des Weges dorthin.

Hier ist das Wiki dazu. Es gibt eine Theorie darüber, wie Sie Zahlen erstellen würden, indem Sie verschiedene Arrays der LEDs aufleuchten lassen: http://en.wikipedia.org/wiki/Seven-segment_display

(De)Multiplexing ist eine gute Methode, um ein großes 7-Segment-Panel zu beleuchten, obwohl es nicht notwendig ist. Wenn Ihre E/A-Ports begrenzt sind, ist dies der richtige Weg. Die Grundlagen des Demuxens funktionieren so (vorausgesetzt, Sie kennen sich hier mit Binär aus). Schau dir dieses Bild an:

Mit einer 3-Bit-Binärzahl wie 000 können wir bis zur Zahl 7 darstellen (dh um Port 5 auszuwählen, müsste ABC 101 sein). Was in Ihrer Situation im Demux passieren würde, ist, dass ein Eingang so etwas wie ein hohes Signal ist und AB & C E / A-Ports sind. Die 0 bis 7 sind mit jedem Segment des LCD verbunden und indem Sie von Ihrem Controller aus auf ABC schreiben, können Sie ein Segment aufleuchten lassen. Sie sagen vielleicht, warten Sie, aber wenn ich eine Zahl aufleuchten lassen möchte, müssen viele Segmente beleuchtet sein, nicht nur das 5. Segment. Nun, danach können Sie in zwei Straßen schauen, damit das LCD eine Nummer anzeigt. Die erste besteht darin, weitere Demux für zusätzlich benötigte Segmente hinzuzufügen. Der zweite ist ein Software-Ansatz, bei dem jedes der Segmente sehr, sehr schnell aufblitzt, um die Illusion zu erzeugen, dass das Panel vollständig beleuchtet ist.

Ich mag den ersten Ansatz, den Sie vorgeschlagen haben: mehr Demux. Aber wenn ich diesen Weg gehen würde, wie könnte man die physische Größe der Komponenten reduzieren? In meinem Fall bräuchte ich 8 Ziffern = 56 Segmente, weißt du?
Äh, Sie werden nicht genug E / A haben, um 8 Ziffern mit einem reinen Hardware-Ansatz zu fahren. Hier ist ein Link, es ist beängstigend, ich weiß, aber ich glaube nicht, dass ich eine einfachere Aufschlüsselung zeichnen / erklären kann. doctronics.co.uk/4511.htm . Das ist aber die Theorie. In der Praxis würde ich die Scanmethode in Betracht ziehen, ich weiß, dass es so aussehen mag, als würde es kein schönes Bild liefern oder kompliziert sein, aber es ist eine sehr gängige Praxis in der Industrie. Viel Glück.
@Inga - sogar 64 wenn man auch Nachkommastellen mitzählt! Es gibt zwei Gründe, warum Sie diese nicht gemultiplext finden. Einer ist nur die schiere Anzahl von Pins, sowohl auf dem Display als auch auf dem Mikrocontroller. Der Mikrocontroller würde mindestens 80 Pins und mehr Pins = mehr Kosten benötigen. Aber es gibt auch Routing. Wenn Sie ein Multiplex-Display haben, geht das Routing eines Segments über ein benachbartes Segment, aber wenn sie alle getrennt sind, können Sie so etwas nicht tun. Auch das kostet extra.

Ich glaube, Sie meinen eine Sieben-Segment-Anzeige oder eine Punktmatrixanzeige .

Hier ist ein Beispiel auf Sparkfun mit dem entsprechenden Datenblatt . Dieses AVR-Beispiel/Tutorial haben Sie im Abschnitt „Dokumente“ auf der Produktseite gefunden. Ist Sparkfun nicht großartig?


Lassen Sie uns anhand dieser 14-Segment-Anzeige und ihres Datenblatts herausfinden, wie sie verwendet wird.

Nehmen wir das Beispiel der Anzeige von a 7im ersten Segmentcluster (ganz links).

Um ein zu schreiben 7, müssen wir die Segmente 1A, 1Bund 1Cbestätigen, wie im Datenblatt zu sehen. Diese Segmente sind alle Pin 35 des Geräts zugeordnet, jedoch auf unterschiedlichen COMLeitungen. Bei einem so kryptischen Datenblatt wäre meine beste Vermutung, dass diese COMLeitungen den Pins 17 bis 20 zugeordnet sind, wenn man die Tabelle im Datenblatt betrachtet.

Um also jedes obige Segment zu bestätigen, würden Sie Pin 35 hoch halten, während Sie schnell zwischen der Bestätigung von COM1, COM2, und COM3über die Pins 18, 19 bzw. 20 wechseln. Die drei Segmente würden alle gleichzeitig beleuchtet erscheinen und eine 7.

Abgesehen davon verwendet gut geschriebener Code einfach eine Art Karte für jedes beliebige Zeichen, das angezeigt werden soll. Die Herausforderung besteht darin, diese Karte für JEDES der Segment-Cluster zum Laufen zu bringen.


Ich empfehle immer noch ein Punktmatrix-Display wie das erste, das ich verlinkt habe; Es gibt sicherlich leichtere Designs da draußen. Der Vorteil der Verwendung eines Punktmatrix-Displays besteht darin, dass die meisten über ein integriertes Datenregister verfügen, sodass Sie einfach 8-Bit-ASCII-Zeichen übergeben können, ohne unkonventionelle Implementierungsprobleme wie im obigen 14-Segment-Beispiel.

Übrigens habe ich ein LCD, das dem von Ihnen geposteten Beispiel sehr ähnlich ist! Aber es ist ein sehr dickes Modul und ohne eingeschaltete Hintergrundbeleuchtung nicht sehr gut lesbar. Während die von mir gepostete trotz fehlender Hintergrundbeleuchtung viel besser sichtbar ist und irgendwie sauberer wirkt (kein schattenhaftes Erscheinungsbild der nicht angezeigten Ziffern). Irgendwelche Gedanken? Gibt es Unterkategorien innerhalb dieser Displays?
Mit dem Suchbegriff „Sieben-Segment-Anzeige“ bin ich auf diese hier gestoßen: Digikey-Seite Mit dieser möchte ich zum Beispiel arbeiten. Und das ist sein Datenblatt .
Ich wollte eigentlich sagen (basierend auf Ihrer Erklärung), dass das 14-Segment-Segment EINFACHER erscheint, oder? Nun gut, nicht einfacher als nur ASCII-Zeichen zu übergeben, aber ziemlich einfach in Bezug auf die Logik und den Umfang der Steuerung (z. B. nur ein Segment aufleuchten lassen). Übrigens, wie geht es in dem von Ihnen oben empfohlenen Ansatz mit dem um, was stevenvh in seiner Antwort gesagt hat, dass es für diese Anzeigen keine zwei Logikebenen gibt?
@Inga Es scheint mir nicht so, als müssten in dieser speziellen 14-Segment-Anzeige mehr als zwei Logikpegel vorhanden sein, da sie eine so ausführliche Pinbelegung hat. Ich bin jedoch immer noch nicht sicher, da das Datenblatt und die Digikey-Seite nichts über Spannungs- / Logikpegel aussagen. Ehrlich gesagt ist es normalerweise keine gute Praxis, ein so schlecht dokumentiertes Gerät zu kaufen.
Oy, es ist schlecht dokumentiert, nicht wahr! :( Darf ich Sie bitten, ein Modell oder sogar nur eine Firma zu empfehlen, bei der ich diese Art von Anzeige beziehen sollte, jedoch mit besserer Dokumentation, wenn ich beim Lernen bleiben möchte, wie Sie die 7-Segment-Anzeige so codieren, wie Sie sie oben eingeführt haben?
@Inga Ich habe wirklich keine Empfehlungen für 7-Seg-Displays; Ich denke immer noch, dass Sie ein gutes Punktmatrix-Display finden sollten. Ich würde einfach weiter nach Digikey und Sparkfun suchen, bis Sie eines mit guter Dokumentation und etwas finden, das Ihren Spezifikationen entspricht.
Warum nicht einige der LCD-Treiber verwenden, die über I2C kommunizieren, wie Holtek 1632 oder ähnliches? (Ich hoffe, ich habe das Teil richtig verstanden!)