Baugruppen
 
 
Aktoren
 
 

 
 

LCD-Anzeige mit HD44780

 
 
Eigenschaften
 
 
 
 
 

 
 
 
 

 

 

 

 

 

 

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.

 

 

 

 

www..de