HD44780

Wechseln zu: Navigation, Suche

Der HD44780 ist ein Steuer-IC für Textdisplays (siehe LCD). Praktisch alle Textdisplays werden mit diesem oder einem kompatiblen Controller (z. B. KS0066) angesteuert.


Allgemeine Ansteuerung[Bearbeiten]

Pinbelegung[Bearbeiten]

Die Pinbelegung des ICs selber ist für den Anwender praktisch uninteressant. Hier ist die häufigste Anschluss-Belegung der damit ausgestatteten LCD-Module angegeben.

ACHTUNG: Es gibt Displays mit abweichender Anschluss-Belegung, falscher Anschluss kann zur Zerstörung führen! Daher immer das zugehörige Datenblatt zu Rate ziehen.

Pin Funktion Beschreibung
1 Vcc Versorgungsspannung + 5 Volt
2 Vdd Versorgungsspannung 0 Volt
3 V0 Kontrastspannung, zwischen VEE und VCC, kann auf VSS gelegt oder via Poti angeschlossen werden.
Bei großflächigen LCDs oder LCDs für den erweiterten Temperaturbereich kann auch eine negative Kontrastspannung nötig sein.
4 RS Registerauswahl
0 = Befehlsregister, 1 = Datenregister
5 R/W Lese- oder Schreibzugriff; kann fest auf GND gelegt werden, wenn Busy-Auswertung durch Timing ersetzt wird
0 = Schreiben, 1 = Lesen
6 E Taktleitung (Achtung! Diese Leitung hat im Gegensatz zu den anderen bei einigen Displays keinen internen Pullup, man muss also einen externen vorsehen, falls man mit Open-Drain-Ausgängen arbeitet.)
7 DB0 Datenleitung (bleibt im 4-Bit-Modus offen)
8 DB1 Datenleitung (bleibt im 4-Bit-Modus offen)
9 DB2 Datenleitung (bleibt im 4-Bit-Modus offen)
10 DB3 Datenleitung (bleibt im 4-Bit-Modus offen)
11 DB4 Datenleitung
12 DB5 Datenleitung
13 DB6 Datenleitung
14 DB7 Datenleitung
15 A Anode der LED-Hintergrundbeleuchtung (fakultativ)
16 K Kathode der LED-Hintergrundbeleuchtung (fakultativ)
Es gibt auch Displays ohne die Datenleitungen DB0-3 (werden nur im 4-Bit-Modus angesteuert), dann rutschen die Bezeichnungen dann entsprechend nach unten

Speicher[Bearbeiten]

Ein HD44780 besitzt mehrere Speicher. In ihnen wird der Inhalt des Displays sowie das Aussehen von Sonderzeichen gespeichert.

CGROM[Bearbeiten]

Der Character Generator ROM enthält die Zeichen in Form von 5x8 oder 5x10 Punktmatrizen. Er kann nicht geändert werden, ausser man sendet einen EEPROM zu Hitachi für eine Massenproduktion. Es sind viele verschiedene ROMs (Zeichensätze, engl. Fonts) verfügbar. Er ist für den Anwender nicht zugänglich.

CGRAM[Bearbeiten]

Im Character Generator RAM können acht 5x8 Pixel oder vier 5x10 Pixel große benutzerdefinierte Zeichen abgelegt werden. Braucht man keine benutzerdefinierten Zeichen, kann man diesen Bereich als Auslagerungsspeicher für den ansteuernden Mikrocontroller benutzen. Dazu muss aber die R/W Leitung angesteuert werden.

DDRAM[Bearbeiten]

Im Display Data RAM ist der Inhalt des LCDs gespeichert. Die Kodierung orientiert sich weitestgehend am ASCII Zeichensatz.

Das DDRAM hat üblicherweise mehr Speicherstellen als das Display gleichzeitig anzeigt. Durch Anwenden der Display-Shift-Befehle können die nicht sichtbaren Zeichen zur Anzeige gebracht werden.

Benachbarte Zeichen haben im DDRAM nicht zwangsweise auch aufeinanderfolgende Adressen. So ist etwa bei 1x16-Displays (1 Zeile, 16 Zeichen) oft in der Mitte des Displays ein Adresssprung von 0x07 auf 0x40; bei 2x16-Displays ist der Sprung auf 0x40 normalerweise (programmiererfreundlich) zwischen Ende der ersten und Beginn der zweiten Zeile. Näheres ist dem Datenblatt zu entnehmen.

Kommandos[Bearbeiten]

HD44780 Befehlssatz
Befehl RS RW D7 D6 D5 D4 D3 D2 D1 D0
Bildschirminhalt löschen 0 0 0 0 0 0 0 0 0 1
Cursor auf Startpos 0 0 0 0 0 0 0 0 1 X
Modus festlegen 0 0 0 0 0 0 0 1 I/D S
Display/Cursor 0 0 0 0 0 0 1 D C B
Cursor/Display schieben 0 0 0 0 0 1 S/C R/L X X
Funktionen 0 0 0 0 1 DL N F X X
CGRAM Adresse setzen 0 0 0 1 CGRAM-Adresse
DDRAM Adresse setzen 0 0 1 DDRAM-Adresse
Adresse/Status lesen 0 1 BF CG-/DDRAM-Adresse
Daten in DDRAM/CGRAM schreiben 1 0 Daten
Daten aus DDRAM/CGRAM lesen 1 1 Daten


Kodierung der Steuerbits
Bit 0 1
I/D Cursorposition dekrementieren Cursorposition inkrementieren
S Displayinhalt fest Displayinhalt weiterschieben
D Display aus Display an
C Cursor aus Cursor an
B Cursor blinkt nicht Cursor blinkt
S/C Cursor bewegen Displayinhalt schieben
R/L Nach links schieben Nach rechts schieben
DL 4-Bit Interface 8-Bit Interface
N 1-zeiliges Display 2/4-zeiliges Display
F 5×7-Font 5×10-Font
BF Kann Kommandos annehmen Ist beschäftigt

Ansteuerung per Microcontroller[Bearbeiten]

Die Ansteuerung eines HD44780-basierten Displays gestaltet sich sowohl in Bezug auf den Hardware- als auch den Softwareaufwand recht einfach. Sie eignet sich somit sehr gut als Übungsprojekt für Anfänger.

Das HD44780-Interface besteht aus acht Datenleitungen (D0-D7) sowie den drei Steuerleitungen RS (Register Select), R/W (Read/Write) und E (Enable). Die Displays werden mit 5V Betriebsspannung versorgt, die Kontrastspannung V0 bekommt man, indem man ein 10kΩ-Potentiometer zwischen VCC und GND anschließt und den mittleren Anschluss als Kontrastspannung verwendet. Bei ca. 0,5 Volt werden dann die Pixel sichtbar. Optional haben viele Displays noch eine LED-Beleuchtung eingebaut, diese kann manchmal direkt an 5V angeschlossen werden, da der Vorwiderstand auf der LCD-Platine integriert ist. Oft ist aber auch ein externer Vorwiderstand nötig! Darum vorher besser im Datenblatt nachschauen.

Möchte man IO-Pins am Mikrocontroller sparen, kann das Display im 4-Bit-Modus betrieben werden, die Dateneingänge D0 bis D3 bleiben dann offen. Durch zusätzliche Bauteile (AVR-Tutorial:_Schieberegister) kann die Zahl der benötigten Port-Pins noch weiter reduziert werden.

Beispielprogramme zur Ansteuerung findet man zuhauf im Internet, u.a. auch hier: AVR-Tutorial: LCD und AVR-GCC-Tutorial: LCD-Ansteuerung

Fertige Projekte oder Bibliotheken[Bearbeiten]

Benutzerdefinierte Sonderzeichen[Bearbeiten]

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]