|
|
|
|
|
|
Allgemeines
|
|
|
|
- Das
Bild zeigt beispielhaft ein LCD-Display ( = Controller + LCD
Anzeige), das aus einem Controller HD 44780 (alternativ LSI
KS0070B, LSI KS0076B, SED 1278f) und einer LCD Anzeige 4x20
besteht. Beide Komponenten sind hardwaremässig
miteinander verschaltet, müssen jedoch noch funktional
miteinander verbunden werden. Dies ist notwendig, weil
LCD-Anzeigen mit unterschiedlichen Eigenschaften an dem
Controller angeschlossen sein können. Im obigen Fall
besitzt die LCD-Anzeige 4 Zeilen mit je 20 Spalten, sowie
Punkmatrizen von 5*7 Pixeln, in denen die Textzeichen
dargestellt werden. Andere LCD-Anzeigen können 2 Zeilen
mit 40 Zeichen und/oder Punktmatrizen von 5*10 Pixeln, oder
andere Varianten besitzen. Von diesen Eigentümlichkeiten
der LCD-Anzeige weiss der Controller nichts, obwohl beide eine
schaltungstechnische Einheit bilden. Der Benutzer des
LCD-Displays muss dem Controller durch geeignete Steuerbefehle
davon berichten. Diesen Vorgang nennt man Initialisierung des
LCD-Displays.
-
-
Der Controller seinerseits besitzt einen
Zeichengenerator-ROM (CG-ROM)
mit 192 Punktmustern, welche die Zeichen ergeben, die auf einer
LCD-Anzeige dargestellt werden können. Dies sind vor allem
die Zeichen nach dem ASCII-Code. Zudem umfassen die Punktmuster
auch Sonderzeichen. Die Punktmuster im CG-ROM können vom
Benutzer nicht geändert werden. Dafür kann dieser für
acht weitere Zeichen, Punktmuster in dem Zeichengenerator-RAM
(CG-RAM)
festlegen. All diese Punktmuster besitzen Ordnungsnummer, die
zumindest bei den Zeichen nach ASCII, dem ASCII-Code
entsprechen (Rest siehe CG-ROM Tabelle). Wird dem Controller
über seinen Datenbus eine solche Ordnungsnummer gesendet,
so steuert er nach dem entsprechenden Punktmuster des CG-ROM
oder CG-RAM die LCD-Anzeige an, worauf dort das Zeichen
sichtbar entsteht.
-
-
Die Ordnungsnummern oder Codes für
die auszugebenden Zeichen werden in einem Anzeige-RAM (DD-RAM)
des Controllers abgelegt und zur Ausgabe gebracht. Dabei ist
jede Speicherzelle dieses RAM mit einer Position auf der
LCD-Anzeige fest verknüpft. So wird beispielsweise der
Code im RAM-Speicher 80h auf Zeile 1, Spalte 1 der LCD-Anzeige
dargestellt und entsprechend der Code im RAM-Speicher 81h auf
Zeile 1, Spalte 2.
-
-
Gewöhnungsbedürftig ist, wie
dabei den zwei virtuellen RAM-Zeilen des Controllers die vier
realen Ausgabezeilen der LCD-Anzeige zugeordnet sind. Wird die
erste RAM-Speicherzeile des Controllers mit dem Code für
Zeichen gefüllt, so stellen sich die Zeichen auf den
Zeilen 1 und 3 der LCD-Anzeige dar. Entsprechendes gilt für
die zweite Zeile des RAM, die auf den Zeilen 2 und 4
dargestellt wird.
|
|
|
|
|
|
|
|
Schnittstellenanschlusspins des
Controllers
|
|
|
|
Der Controller und die LCD-Anzeige
bilden wie oben beschrieben das Display. Dieses muss mit einem
Rechner verbunden werden, welcher die bereitgestellten
Anzeigemöglichkeiten nutzen möchte. Zur Verbindung des
Displays mit dem Steuerrechner stehen 16 Signalpins bereit.
Schnell zu verstehen sind die zwei
Anschlusspins
der 5V Gleichstrom-Spannungsversorgung, bei der ein dritter Pin
dafür sorgt, dass der Kontrast der LCD-Anzeige eingestellt
werden kann. Hinzu kommen zwei Pins, an welchen die Spannung
einer wahlweise vorhandenen Hintergrundbeleuchtung der Anzeige
angeschlossen werden kann.
Drei weitere Pins führen die
Steuersignale RS,
RW, EN des HD44780. Mit diesen kann dem Controller
mitgeteilt werden, ob es sich bei der folgenden Übertragung
um Daten oder Kommandos (Signal RS) handelt, ob diese von ihm
gesendet werden sollen oder ob er diese von dem angeschlossenen
Rechner erhält (Signal RW), und wann die Datenübertragung
stattfindet (Signal EN).
Zur Übertragung der Daten zwischen
dem HD44780-Controller und dem steuernden Rechner steht zuletzt
ein Datenbus bereit, der 4 oder 8 Bit umfassen kann. Wird der 8
Bit Datenbus gewählt, geht die Übertragung der Daten
schneller von statten, jedoch werden 1½ Tore am
steuernden Rechner benötigt. Beschränkt man die
Übertragung auf 4 Bits (Halbbytes oder Nibbles) dauert die
Übertragung etwas länger, jedoch wird nur 1 Tor am
steuernden Rechner belegt.
|
|
|
|
|
|
|
|
Initialisierung des Controllers
|
|
|
|
- Nachdem eine hardwaremässige
Verschaltung des Displays mit dem Steuerrechner stattgefunden
hat, müssen der Steuerrechner, der Controller und seine
LCD-Anzeige funktional und unter Programmkontrolle miteinander
verbunden werden. Hierbei spricht man von der Initialisierung
des Displays. Diese kann nicht sofort nach dem Einschalten des
Displays stattfinden, denn der Controller ist ein
Einchipcomputer und benötigt eine Zeit, bis er sich zur
Arbeit vorbereitet hat (seinen Reset durchlaufen hat).
Dementsprechend sind die
Initialisierungsschritte,
dem Datenblatt des Displays folgend, fest vorgegeben.
-
Zunächst muss der Zeitpunkt gefunden
werden, nach dem das Display seinen Reset durchlaufen hat. Nun
folgt die Klärung zwischen Steuerrechner und Controller,
welche Datenbusbreite (4 oder 8 Bit) benutzt werden soll und
zuletzt muss dem Controller mitgeteilt werden, welche
Eigenschaften die an ihm befestigte LCD-Anzeige besitzt. Dieser
Ablauf ist einmalig und kann nur nach dem Einschalten des
Displays stattfinden. Eine Wiederholung würde zur
Fehlfunktion des Controllers führen.
-
-
Am Ende dieses Vorgangs sind der
Steuerrechner und der HD44780 Controller über die
gewünschte Datenbusbreite miteinander verbunden und der
Controller kennt die Eigentümlichkeiten der mit ihm
verbundenen LCD-Anzeige.
-
Die nachfolgenden Datenblätter
werden die oben genannten Eigenheiten eines Displays mit einer
LCD-Anzeige von 4*20 Ausgabepositionen beschreiben. Bei diesem
müssen, als Einstellungen für den Controller,
folgende Werte gewählt werden ..
2 virtuelle Zeilen und 5*7 Punktmatrix
|
|
|
|
|
|
|
|
Ausgabe von Zeichen und Kommandos
|
|
|
|
Wurde der Contoller initialisiert ist
er zu der Ausgabe von Zeichen auf seinem Display bereit. Wie das
geschieht und welche zusätzlichen Möglichkeiten das
Anzeigemodul bereithält kann der Befehlstabelle
entnommen werden. Sie ist das Hauptwerkzeug des Programmierers,
der einen Treiber für das LCD-Modul schreibt.
|
|
|
|
|
|