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 AGibt den Wert der Variabel A aus
CLSLöscht das Display und setzt den Cursor an die Position 1
Locate x,ySetzt den Fokus an die Position x,y auf dem Display
y = 1 oder 2  ; x = 0....16
CursorON / OFF   BLINK/NOBLINK
ShiftLCDLEFT / RIGHT Verschiebt den Text um eine Position nach rechts oder links
ShiftCursorLEFT / 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.