ebps.de.vu > Schaltungen > AVR > Intelligentes RS232-LCD

Intelligentes RS232-LCD

Beschreibung

Für viele Anwendungsfälle soll ein LCD nicht mehr tun als einen Text, der von einem Controller oder vom PC gesendet wird, anzeigen. Außerdem sollte ein Zeilenumbruch - falls erforderlich - nur an Leerzeichen erfolgen, damit kein Wort mittendrin geteilt wird. Diese Schaltung erfüllt genau diese Ansprüche - der Text wird einfach per RS232 gesendet und mit einem Nullbyte oder einem Leerzeichen beendet, damit der AVR weiß, dass das letzte Wort beendet ist. Getrennt wird der Text so, dass das LCD optimal genutzt wird, ohne Wörter zerteilen zu müssen. Lediglich Wörter mit mehr Zeichen, als in eine LCD-Zeile passen, müssen natürlich abgeschnitten und in der nächsten Zeile fortgesetzt werden. In der letzten Zeile des LCDs erfolgt ebenfalls kein Umbruch mehr, um möglichst viel Text darstellen zu können. Ist der Text trotzdem zu lang für das LCD, wird an letzter Stelle (unten rechts) ein Pfeil nach rechts angezeigt. Gelöscht wird das LCD mit dem ASCII-Zeichen 0x0C (Form Feed), mit 0x0A (Line Feed) kann ein Zeilenumbruch vor dem Ende der Zeile erzwungen werden. Alle anderen Steuerzeichen werden ignoriert.

Aufbau

Der Aufbau ist sehr einfach gehalten und bedarf eigentlich keiner weiteren Hinweise. Das LCD muss HD44780-kompatibel sein und wird im 8-Bit-Modus betrieben. Die Anschlußbelegung am AVR ist so gewählt, dass bei einem Aufbau auf dem Steckbrett ein LCD mit Standardbelegung direkt an die obere Pin-Reihe des AVR angeschlossen werden kann und je nach Anordnung auf einer Platine auch hier möglichst wenig Brücken nötig sind (da mein LCD die Pinleiste dummerweise oben hatte, musste ich alle Pins kreuzen, damit der AVR unter dem LCD platziert werden konnte). Der Vorwiderstand muss an die LED-Beleuchtung des verwendeten LCDs angepasst werden, bei LCDs ohne Beleuchtung entfällt er, bei Beleuchtung mit CCFL oder EL-Folie muss ein passender Inverter verwendet werden.

Software

Die Anzahl der Zeilen und Spalten des LCDs wird am Anfang des Quellcodes eingestellt. Die verwendete Baudrate für die RS232-Schnittstelle (Standard: 9600 Baud) sowie die verwendeten Pins für die Steuerleitungen des LCDs können Sie bei Bedarf ebenfalls dort anpassen. Für LCDs mit 2 Controllern (z.B. 4x40 Zeichen) muss außerdem die Einstellung DualController auf 1 gesetzt werden. Die Einstellung LCD_E2 gibt dann den Pin für die Enable-Leitung des zweiten Controllers an.

Fotos

[Foto]
800 | 1280
Die Schaltung auf einer Lochrasterplatine, auf die das LCD als "Doppeldecker" gesteckt wird. Das Poti für die Kontrasteinstellung ist eine stehende Mini-Ausführung, um auch bei aufgestecktem LCD noch heranzukommen.
[Foto]
800 | 1280
Der Startbildschirm nach dem Einschalten. Die beiden Platinen sind hier bereits miteinander verschraubt.
[Foto]
800 | 1280
Anzeige des gerade laufenden Musiktitels in xmms (dafür kann das Perl-Script von der VFD-Ansteuerung in der aktuellen Version verwendet werden). Da die schließende Klammer nicht mehr auf das LCD passen würde, wird hier der Pfeil nach rechts angezeigt um deutlich zu machen, dass der Text nicht auf das LCD passt. Die Schaltung ist auf diesem Foto noch auf dem Steckbrett aufgebaut.