Was ist der Sinn von D0-D3 auf dem LCD?

10

Die Arduino LiquidCrystal-Bibliothek enthält 4 Konstruktoren mit unterschiedlichen Argumenten:

LiquidCrystal(rs, enable, d4, d5, d6, d7) 
LiquidCrystal(rs, rw, enable, d4, d5, d6, d7) 
LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7) 
LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7)

Die folgenden Kommentare werden für die Konstruktorargumente angegeben:

[...] d0, d1, d2 und d3 sind optional; Wenn nicht angegeben, wird das LCD nur über die vier Datenleitungen (d4, d5, d6, d7) gesteuert.

Was bringt es, d0-d3wenn sie nicht benötigt werden? Verringern sie die Reaktionszeit?

Freund von Kim
quelle

Antworten:

12

Dieser LCD-Typ verfügt über zwei Hauptbetriebsarten: 4-Bit-Modus mit 4 Datenpins (d4-d7) und 8-Bit-Modus mit allen 8 Datenpins (d0-d7).

Der 4-Bit-Modus hat den Vorteil, dass auf Ihrem Arduino weniger Ausgangspins erforderlich sind. Dies bedeutet jedoch, dass Ihre Skizze jeden Befehl / jedes Zeichen als zwei separate 4-Bit-Stapel (nacheinander) senden muss. Dies wird automatisch von der LiquidCrystal-Bibliothek für Sie erledigt, sodass Sie keine zusätzliche Komplexität in Ihrem Code benötigen. Dies bedeutet jedoch, dass Ihre Skizze ungefähr doppelt so viele Prozessorzyklen benötigt, um etwas an das LCD zu senden.

Im Gegensatz dazu sendet der 8-Bit-Modus jeden Befehl / jedes Zeichen als einen einzelnen Stapel von 8-Bit. Das bedeutet einfach, dass es technisch etwas schneller läuft.

Trotzdem wird eine Person, die auf das Display schaut, wahrscheinlich die meiste Zeit keinen signifikanten Geschwindigkeitsunterschied feststellen, da es immer noch sehr schnell geht. Die Hauptauswirkung wird auf den Mikrocontroller (in diesem Fall das Arduino) sein. Wenn es den schnelleren 8-Bit-Modus verwenden kann, kann es etwas mehr Verarbeitungszeit für andere Dinge verwenden. Dies kann besonders für zeitkritische Anwendungen hilfreich sein.

Peter Bloomfield
quelle
With that said, a person looking at the display probably won't see a significant speed difference most of the time, as it still goes very quickly.Dies ist normalerweise kein Problem, da viele Module (insbesondere billige chinesische wie die bei eBay) tendenziell niedrige Aktualisierungsraten aufweisen. Sie können sie daher nicht zu schnell aktualisieren, ohne dass sie ohnehin zu einem verschwommenen, unlesbaren Durcheinander werden.
Synetech
3

Die Antwort befindet sich auf derselben Seite wie das von Ihnen erwähnte Zitat (ich habe die wichtige Aussage hervorgehoben):

Erstellt eine Variable vom Typ LiquidCrystal. Die Anzeige kann über 4 oder 8 Datenleitungen gesteuert werden . Wenn erstere, lassen Sie die Pin-Nummern für d0 bis d3 weg und lassen Sie diese Leitungen nicht verbunden. Der RW-Pin kann mit Masse verbunden werden, anstatt mit einem Pin am Arduino verbunden zu werden. Wenn ja, lassen Sie es in den Parametern dieser Funktion weg.

Es stellt sich heraus, dass das Hitachi HD44780 LCD-Display im 4-Bit- oder 8-Bit-Modus arbeiten kann.

jfpoilpret
quelle
1
Ja, es heißt, dass es sowohl mit 4 als auch mit 8 Datenleitungen gesteuert werden kann. Aber was bringt es, 8 zu verwenden, wenn Sie nur 4 benötigen? Ich meine, gibt es keinen Vorteil, 8 gegenüber 4 zu verwenden? Warum 4 Datenleitungen verschwenden, wenn es keinen Nutzen hat?
Freund von Kim
1
Die Verwendung des 8-Bit-Modus ist auf der Arduino-Seite etwas schneller und einfacher (weniger Code). Aber im Allgemeinen lohnt es sich nicht wirklich, im Vergleich zu 4 Ausgangspins zu sparen.
jfpoilpret
Es lohnt sich @jfpoilpret wenn Sie haben vier zusätzliche Output - Pins ...
Anonymous Penguin
@annon Kannst du konkreter sagen, wie es sich lohnt, den 8-Pins-Modus zu verwenden? Konkrete Versuchswerte?
jfpoilpret
1
@jfpoilpret Wie in Peters Antwort angegeben , gibt es dem Chip etwas mehr Verarbeitungszeit. Wenn Sie vier zusätzliche Stifte haben, fügen Sie diese hinzu. Wenn es viel größer / teurer sein müsste, lohnt es sich nicht wirklich.
Anonymer Pinguin
1

Das Vorhandensein dieser Pins ist eine Anforderung der Technik, die verwendet werden musste, um das LCD mit den Mikroprozessoren zu verbinden, die bei der Entwicklung des HD44780U-Controller-Chips verfügbar waren.

Einzelchip-Mikrocontroller, wie wir sie kennen, waren noch in der Zukunft und das LCD musste mit den gleichen Techniken wie jedes andere 8-Bit-E / A- oder Speichergerät, das ein 8-Bit-Mikrogerät war, an die damaligen 8-Bit-Mikroprozessorchips angeschlossen werden. Bit Bus.

floresta
quelle