Wir werden ein Stundenglas-Cursor entwickeln, der immer dann angezeigt wird, wenn der Computer gerade beschäftigt ist. Ein solch einfaches Icon ist wesentlich aussagekräftiger als ein auf dem Bildschirm ausgegebener Text, der darauf hinweist, dass der Computer gerade beschäftigt ist.
In dieser Übung wirst du erfahren, wie eigene Zeichen definiert, gespeichert, im Display gezeigt und animiert werden.
Eigene Zeichen im Parallax LCD darstellen
Das Parallax Serial LCD kann insgesamt acht selbst entwickelte Zeichen speichern. Vordefiniert sind bereits die Zeichen 0 und 1, das sind das BACKSLASH und die Tilde (Abb. 15), die sich mit dem Befehl im LCD darstellen lassen
SEROUT 14, 84, [0, 1]
Programmbeispiel LCD_6.bs2
Aufgabe |
|
In Abbildung 16 sind die acht Befehlsargumente, mit denen sich ein neues Zeichen anlegen lässt, aufgeführt. Dies erfolgt wiederum mit dem SEROUT Befehl. Die Reihenfolge ist:
Das LCD nutzt die unteren fünf Bit jedes erhaltenen Byte um das fünf Pixel breite Zeilenzeichen aufzubauen. Abb. 17 zeigt ein Beispiel für ein eigenes Zeichen 0 mit einem Stundenglas, das gerade umgedreht wurde. Dazu wird im SEROUT Befehl das Entwurf-Argument 248 eingegeben.
SEROUT 14, 84, [248, %00000, %11111, %11111, %01110, %00100, %01010, %10001, %11111]
Die mit SEROUT entwickelten eigenen Zeichen sind nicht permanent. Das heißt, dass jedesmal, wenn das LCD abgeschaltet wird, diese Zeichen verloren sind. Die BASIC Stamp und das LCD nutzen die gleiche Energiequelle, deshalb startet die Stamp neu, sobald die Energiequelle wieder eingeschaltet wird. Neue eigene Zeichen sollten deshalb zu Beginn eines Programmes definiert werden, sodass die BASIC Stamp diese Zeichen nach jedem Neustart wieder aufbauen kann.
Wir definieren ein weiteres Zeichen; diesmal zeigt es ein Stundenglass, dessen Sand nach unten abgelaufen ist. Mit dem SEROUT Argument 255 wird es als achtes Zeichen im RAM Speicher des LCD abgelegt.
SEROUT 14, 84, [255, %00000, %11111, %10001, %01010, %00100, %01110, %11111, %11111]
Die Belegung des Zeichen-RAM im LCD sieht nun wie folgt aus:
Mit diesen beiden neuen Zeichen schreiben wir jetzt ein paar Programmzeilen, die das Stundenglas in einer Endlosschleife so aussehen lassen, als ob der Sand von der oberen in die untere Hälfte läuft. Das geschieht auf folgende Weise:
Wiederhole diesen Vorgang beliebig oft.
Damit sind alle Schritte beschrieben, die eine ablaufende Sanduhr im LCD darstellen.
Programmbeispiel Sanduhr.bs2
Aufgabe |
|
Jetzt kommst du!
In Abb. 20 sind alle Zwischenschritte von einer gefüllten bis zu einer leer gelaufenen Sanduhr in 8 Schritten zu sehen.
Aufgabe |
|
Das Hauptprogramm könnte so aussehen wie in Abb. 21 gezeigt.
In einem LCD lassen sich pro Zeile nur 16 Zeichen darstellen. Was tun, wenn der auszugebende Text länger ist? Na, ganz einfach, der Text wird von rechts nach links Buchstabe für Buchstabe durch das Display "geschoben".
Wird fortgesetzt!