www.jb-electronics.de » Elektronik » Digitaltechnik » LCD-Einstieg
Wenn immer es in der Elektronik gilt, eine optische Schnittstelle zwischen Mensch und Maschine herzustellen, kommt man um ein Display nicht umher. Sollen numerische Werte angezeigt werden, kann man sich verschiedenster Siebensegment-Anzeigen bedienen, aber sobald Text dazukommt, wird es kompliziert. Wenn da die LCDs nicht wären.
LCDs (Liquid Crystal Displays) sind relativ preiswert, sehen gut aus und verbrauchen wenig Strom. Sie haben einen großen Zeichenvorrat, mit ihnen lässt sich fast alles anzeigen, es gibt sogar graphische LCDs mit Touchsensoren.
Aber mit steigender Funktionalität kommt natürlich auch eine Komplexität der Ansteuerung einher. Diese Schaltung stellt die Grundlagen der LCDs dar und ermöglicht es, Daten einfach und unkompliziert anzuzeigen, ohne dass man sich in den Tiefen der LCD-Ansteuerung auskennen muss.
Trotzdem ein bisschen Theorie. Die meisten LCDs haben folgende Anschlüsse:
Bezeichnung | Funktion |
VDD | Betriebsspannung |
VSS | GND |
V0 | Kontrastspannung |
RS | Daten-/Kommando-Umschaltung |
RW | Schreib-/Lese-Umschaltung |
ENABLE | Datenübertragung |
D0...D7 | Dateneingänge, 1 Byte weit (also 8 Bits) |
(A) | Hintergrundbeleuchtungs-LED, Anode |
(K) | Hintergrundbeleuchtungs-LED, Lathode |
Zwischen VDD und GND wird die Betriebsspannung (5V bei den meisten Typen) angelegt. V0 regelt den Kontrast des Displays, er wird über ein Potentiometer wiefolgt angeschlossen:
Je nach Typ besitzt das LCD auch eine Hintergrundbeleuchtung in Form einer LED, deren Anode und Kathode wie für eine LED gewohnt verschaltet werden. Wichtig: Diese LED hat meistens keinen eigenen Vorwiderstand eingebaut, dieser muss noch extern hinzugefügt werden, sonst zerstört man die LED-Hintergrundbeleuchtung durch einen zu hohen Strom.
Aber nun zum Interessanten: Der eigentlichen Ansteuerung. Man kann Daten (so z.B. einen darzustellenden Buchstaben) an das LCD senden, oder Steuerkommandos. Um z.B. den Buchstaben B in die Zeile 2, Spalte 7 zu schreiben, muss man erst das LCD auf Schreibemodus schalten, dann den Cursor mittels Befehl positionieren, und dann den Buchstaben B als Zeichen senden.
Dazu stellt man die beiden Pins RS und RW ein:
RS | RW | Aktion |
0 | 0 | Zeichen in das LCD schreiben |
0 | 1 | Zeichen zurücklesen |
1 | 0 | Steuerkommandos schreiben |
1 | 1 | Betriebsbereitschaft prüfen |
Die Reihenfolge ist immer die selbe:
Das sind schon die Grundzüge. Das Gute ist: Die Befehle, und auch die ganze Ansteuerung sind weitestgehend auf einen Industriestandard genormt - es ist also egal, von welchem Hersteller mein 2x16 LCD kommt, es lässt sich immer gleich ansteuern.
Für die Ansteuerung eines LCDs ist ein Microcontroller nicht zu vermeiden; hier wird ein Programm verwendet, dass schon viele Methoden zur LCD-Ansteuerung enthält.
Damit ließ sich zum Beispiel folgendes Bild erzeugen:
Hier ist der Schaltplan zu sehen:
Hier ist der Schaltplan in höherer Auflösung zu finden.
Im C-Quellcode sind einige Routinen enthalten, die das Arbeiten mit LCDs vereinfachen (Achtung: Die Ansteuerung ist hier auf ein 2x16 LCD einprogrammiert). Hier eine Übersicht über die verschiedenen Methoden:
Methode | Beschreibung |
void initLCD () | initlialisiert ein 2x16 LCD mit unsichbarem Cursor |
void setCursor (uchar DISPLAY_ON, uchar CURSOR_ON, uchar BLINKING) | Setzt die Einstellungen des Cursors. Alle Argumente sind etweder 1 oder 0. |
void setCursorHome () | Setzt den Cursor nach oben links |
void clearDisplay () | löscht das gesamte Display |
void writeChar (uchar Zeichen, uchar Row, uchar Column | schreibt ein Zeichen an eine beliebige Stelle im LCD |
void writeCharBuffered (uchar Zeichen, uchar Row, uchar Column) | schreibt ein Zeichen in den Software-Zeichenpuffer des Programms |
void writeTextBuffered (uchar Text[], uchar Row, uchar Column, uchar Length) | schreibt ein Character-Array (also im Prinzip einen Text) an eine beliebige Stelle im Display, aber auch gepuffert. |
void updateLCD (); | sendet alle Daten aus dem Puffer an das LCD, spart bei vielen Einzelzeichen deutlich Zeit ein im Gegensaz zur direkten Methode |
Es sind weitere Methoden im Programm enthalten, die obigen sind jedoch die wichtigsten.
Wer mehr über LCDs erfahren will, informiert sich am besten unter http://www.sprut.de/electronic/lcd/, wohl einer der ausführlichsten deutschen Seiten zu LCDs.
Für alle Interessierten gibt es hier den C-Quellcode und das fertig kompilierte HEX-File: LCD.zip (4KB)
www.jb-electronics.de » Electronics » Digital Technology » Introduction in LCDs
There is no English translation of this page available yet. It will take some more time for me to translate the whole website.
If you have a particular interest in this page getting translated as fast as possible, please contact me; I will see what I can do. Please click here for the German version.