Das LCD-Display
LCDs
(Liquid cristall displays) sind heute schon für unter 10€ zu
bekommen. Dabei sind diese Displays selbst mit einem eigenen Controller
ausgestattet, der die meisten Aufgaben schon übernimmt. Daher ist ein
solches Display sehr einfach anzuschliessen und zu programmieren.
Bascom stellt für diesen Fall eine Reihe von wertvollen Befehlen zur
Verfügung, so dass die Programmierung leicht gelingt. In der Industrie
haben sich zwei Controllertypen weitgehend durchgesetzt. Einmal der
HD44780 und der KS0077. Das LCD-Display ist fest auf dem Board
integriert und verfügt über eine Kontrastregler und eine
Hintergrundbeleuchtung.
Die LCD-Displays sind mit einer 14 bzw 16poligen Anschlussleiste versehen.
VDD
|
+5V
|
VSS
|
GND
|
V0
|
Eine Spannung zwischen +5V und GND
|
RS
|
Reset
|
R/W
|
Read/Write (wird mit GND verbunden, Lesen nicht interessant
|
E
|
Enabel
|
D0-D7
|
Datenbus
|
Die Spannung V0 wird mit einem Spannungsteile erzeugt. Damit kann der
Kontrast des Displays geregelt werden. Das Display kann beschrieben
(Write) und ausgelesen werden (Read). Das Auslesen ist für unsere
Anwendungen nicht erforderlich, daher wird dieser Eingang fest mit GND
verbunden.
Der Schaltplan der Verdrahtung auf dem Atmega-Board für den Anschluss sieht also folgendermaßen aus:
Damit der Attiny das LCD-Display korrekt ansteuern kann, muß man
ihm mitteilen, welcher Pin des PortsB mit welchem Port des LCD-Displays
verbunden ist. Dies geschieht mit dem Befehl
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.0 , Rs = Portc.1
Die Datenübertragung erfolgt im 4-Bit-Modus, wie weiter oben schon
beschrieben. Auch dies muß dem Display mitgeteilt werden. Dazu dient
der Befehl
Config Lcdbus = 4
Nach der Übertragung wird das LCD-Display mit dem Befehl InitLCD einmalig korrekt eingerichtet. Dieser Befehl überträgt auch die frei programmierbaren Sonderzeichen.
Mit LCD"Test" wird das Wort Test auf dem Display angezeigt.
Wichtige Befehle für das LCD-Display
LCD"Test" | Gibt Test auf dem Display aus |
LCD A | Gibt den Wert der Variabel A aus |
CLS | Löscht das Display und setzt den Cursor an die Position 1 |
Locate x,y | Setzt den Fokus an die Position x,y auf dem Display y = 1 oder 2 ; x = 0....16 |
Cursor | ON / OFF BLINK/NOBLINK |
ShiftLCD | LEFT / RIGHT Verschiebt den Text um eine Position nach rechts oder links |
ShiftCursor | LEFT / RIGHT Verschiebt den Cursor um eine Position nach rechts oder links |
Sonderzeichen auf dem LCD-Display
Das Display hat einen
RAM-Speicher für 7 frei definierbare Zeichen, die mit dem Befehl
InitLCD an das Display übertragen werden. BASCOM hat einen eingebauten
LCD-Designer, der den Entwurf eines Sonderzeichens sehr einfach macht.
Dazu wird in Bascom auf das Symbol LCD geklickt.
Mit der Maus können die einzelnen Quadrate angeklickt werden, um das Sonderzeichen zu zeichnen. Das Ergebnis könnte so aussehen:
Mit OK wird in Bascom eine neue Programmzeile erzeugt. Diese muss ggf. vor den Befehl InitLCD kopiert werden.
Das [x] muss nun gegen eine Zahl von 0 bis 7 ausgetauscht werden. Mit CHR(0) kann dann das Sonderzeichen ausgegeben werden.
In der Datei
lcd_atmega.bas ist ein kleines Beispielprogramm zu finden.