Das serielle LCD-Display

Das serielle LCD wurde mit einem 2x8 Zeichen LCD-Modul verwirklicht. Zur Ansteuerung verwendete ich einen AT90S2313 und für die Verbindung zum PC habe ich einen Max232 eingesetzt. Um die Platine so klein wie möglich zuhalten habe ich den AVR und den Max unter das Display gesetzt. Das kleine Board kann direkt mit 5V oder mit 7-30V versorgt werden. Die Hintergrundbeleuchtung habe ich auf einen kleinen Wert mit einem Festwiderstand angeschlossen.


Für die Kontrasteinstellung ist ein kleines Poti (unten im Bild) vorhanden. Der AVR kann über eine ISP-Schnittstelle jederzeit umprogrammiert werden. Die Funktion ist denkbar einfach, jedes Zeichen, dass über die RS232 kommt wird auf dem Display angezeigt und zwar solange bis das LCD voll ist, danach muss der Inhalt des LCD gelöscht werden. Die Version 1.0 hatte nur die Funktion die Zeichen anzuzeigen und man musste darauf achten, dass kein Überlauf der Daten stattfindet. Danach habe ich das Modul wieder in die Ecke gelegt und mich um anderes gekümmert.

Da lag es nun einige Monate bis ich es mal wieder gebrauchen konnte und prompt war mir das ganze Ding zu popelig programmiert. In einer kleinen Nachtschicht habe ich mich also wieder an die Programmierung gesetzt und das ist jetzt dabei heraus gekommen; die Version 1.2.

Die Baudrate habe ich auf 56KBd angepasst, nach dem Einschalten läuft auf dem LCD eine kleine Benutzerhilfe ab. Sie zeigt an mit welchen Parametern die Application kommunizieren kann und zeigt auch die wichtigsten Befehle zum Ansteuern.


Steuerbefehle und Wirkung am LCD:

Senden einer Raute “#”
Löscht alle Zeichen im Display und setzt den Cursor auf Position 1,1

Senden eines Sterns “*”
Setzt das Display auf Startposition und zeigt die Benutzerhilfe und Version an.

Senden einer öffnenden Klammer “(“
Schaltet den Cursor im LCD ab

Senden einer schliessenden Klammer “)”
Schaltet den Cursor im LCD wieder an


Nach dem Einschalten des LCD´s läuft die Benutzerhilfe wie folgt ab:

Ser.LCD
er.1.2

Wartezeit von 2 Sekunden...

RS232
Settings

Wartezeit von 2 Sekunden...

56Kbd8N1
by CWNet

Wartezeit von 2 Sekunden...

this Info
with ‘*’

Wartezeit von 2 Sekunden...

ClearLCD
with ‘#’

Wartezeit von 2 Sekunden...

Curs.off
with ‘(‘

Wartezeit von 2 Sekunden...

Curs.on
with ‘)‘

Wartezeit von 2 Sekunden...

Danach wird das Display gelöscht und wartet auf Daten an der RS232.



Das LCD-Modul mit abgenommenem LCD, man sieht wie schön platzsparend die Huckepack-Montage ist. Neben dem Max und dem D-Sub Stecker kann man einen Jumperblock erkennen, diesen habe ich grundsätzlich auf allen Platinen mit Serieller Schnittstelle drauf. Mit diesen beiden Jumpern kann ich jederzeit RxD und TxD zum Nullmodembetrieb tauschen. Es ist nicht zwingend notwendig das LCD auf die Platine zu stecken, man kann auch jedes beliebige LCD mit einem Flachbandkabel und Pfostensteckern benutzen.

Einen Schaltplan versuche ich noch nachzureichen und hier einzubauen!

Autor: Clemens Wagner

Quelle: http://www.cwnet.de