Anschluss eines LCDs an das Contollerboard

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. Beide können ohne Probleme genutzt werden. Für beide Controller gibt es eine eigene Vorlage LCD mit HD44780.bas und LCD mit Ks0077.bas.

Der Anschluss erfolgt über eine 10poligen Normstecker am Board.

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 Attiny stellt nur 8 Datenleitungen zur Verfügung. Benötigt werden aber 8 Datenleitungen und zwei Steuerleitungen. Die LCD-Displays können aber auch im 4-Bit-Modus betrieben werden. Dann wird ein Byte in 2 Nibble (4bits) zerlegt und nacheinander übertragen. Dadurch sinkt die benötigten Datenleitungen am Attiny von 10 auf 6.

Der Schaltplan 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., Db5 = Portb., Db6 = Portb., Db7 = Portb., E = Portb., Rs = Portb.4


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.




Es öffnet sich ein Fenster mit dem LCD-Designer


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] muß nun noch durch die Zahl 0...7 ersetzt werden, dann kann das Sonderzeichen mit dem CHR-Befehl aufgerufen werden. Zum Beispiel mit LCD CHR(0), das das Sonderzeichen 0 aufruft.