Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

1 - LCD Animation mit eigenen Zeichen

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]
    
Abbildung 15 - Vordefinierte Zeichen 0 und 1 im LCD Speicher

Programmbeispiel  LCD_6.bs2

Aufgabe
  • Gib das Programm LCD_6.bs2 ein und speichere es ab.
  • Starte das Programm und überzeuge dich, dass die beiden Zeichen BACKSLASH und Tilde im Display erscheinen.
Programm LCD_6.bs2

2 - Neue Zeichen entwerfen

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:

  • Teile dem LCD über den SEROUT Befehl mit, welches Zeichen du anlegen/ändern möchtest.
  • Übertrage an das LCD acht Bytes, die das neue Zeichen beschreiben.
Abbildung 16

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]
    
Abbildung 17 - Zeichen 0

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]
    
Abbildung 18 - Zeichen 7

Die Belegung des Zeichen-RAM im LCD sieht nun wie folgt aus:

Abbildung 19 - Belegung des RAM Bereichs im LCD nach dem Entwurf von zwei neuen Zeichen

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:

  • Positioniere den Cursor in Zeile 0, Position 5 im LCD.
  • Gib das Entwurfzeichen 0 an dieser Stelle im LCD aus (Sanduhr voll).
  • Nach einer kurzen Pause wird der Cursor um eine Position zurückgesetzt - wieder in Position 5.
  • Gib das Entwurfzeichen 7 aus (Sanduhr leer). Es steht an der gleichen Stelle wo vorher Entwurfzeichen 0 stand.

Wiederhole diesen Vorgang beliebig oft.

Damit sind alle Schritte beschrieben, die eine ablaufende Sanduhr im LCD darstellen.

Programmbeispiel Sanduhr.bs2

Aufgabe
  • Übertrage das Programm Sanduhr.bs2 in den Editor und speichere das Programm ab.
  • Überzeuge dich, dass es nacheinander zwei Sanduhren zeigt - eine leer gelaufen, die andere voll.
Programm Sanduhr.bs2

Jetzt kommst du!

In Abb. 20 sind alle Zwischenschritte von einer gefüllten bis zu einer leer gelaufenen Sanduhr in 8 Schritten zu sehen.

Abbildung 20 - Entwurf für eine leer laufende Sanduhr in acht Einzelbildern
Aufgabe
  • Speicher das Programm Sanduhr.bs2 über File - Save As... unter dem neuen Namen Sanduhr2.bs2 ab.
  • Erweitere die Initialisierungsroutine auf alle acht Zeichen.
  • Ändere das Programm so ab, dass der Eindruck einer ablaufenden  Sanduhr im LCD entsteht.

Das Hauptprogramm könnte so aussehen wie in Abb. 21 gezeigt.

Programm Stundenglass2.bs2

3 - Lauftext und LCD

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!

Kommentar schreiben

Kommentare

  • olaf (Sonntag, 10. Dezember 2017 08:35)

    wow...die mit Abstand beste Site, die ich bisher zu diesem Thema gesehen habe :-))
    Vielen Dank dafür. Hilft super beim Erklären!!

  • David Eisenblätter (Sonntag, 11. Februar 2018 13:38)

    Sehr schön erklärt, und zufällig heute, wo ich nochmal nach einer detailierten Gedankenstütze diesbezüglich gesucht habe!

    Vielen vielen Dank!

    David.

Bitte geben Sie den Code ein
* Pflichtfelder
Druckversion Druckversion | Sitemap
© Reinhard Rahner - Gettorf