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

LCD Modul

In den Steuerungssystemen von Heizungsanlagen, in elektrischen Geräten wie Küchenmaschinen, Mikrowellen u. a. finden sich vielfach LCD-Anzeigen, über die der Nutzer etwas über den Zustand des Gerätes erfährt.

In diesem Abschnitt erfährst du etwas über den Anschluss von LCD-Modul an einen Mikrocontroller, wie man Text an ein Display überträgt und wie man ein LCD-Modul  parallel und seriell ansteuert.

9 - Punkt-Matrix-LCD Anzeige

Kurzinformationen

Ausführungsformen

Die eingesetzten Controller, wie KS0070B oder andere, sind HD44780 kompatibel. Die Anzeigen gibt es mit grünem Hintergrund und schwarzer Schrift oder blauem Hintergrund und weißer Schrift in den Ausführungsformen 1x16, 2x16, 4x16, 4x20 Zeichen und mehr.

Parallele Übertragung

Die meisten Anzeige-Module haben 14, bei integrierter Hintergrundbeleuchtung sogar 16 Anschlusspins.

Das Datenblatt gibt für das jeweilige Modul genauere Auskunft über die Pinbelegungen und weitere Eigenschaften. Die Daten werden über die Anschlüsse DB0 ... DB7 parallel an das Display übertragen.

Serielle Übertragung

Das LCD-Modul von Parallax Inc. besitzt nur drei Anschlüsse. Zwei für die Spannungsversorgung (+5V, GND) und eine dritte Leitung (RX), über die das Modul seriell angesteuert wird.

Das in Übung 1 verwendete LCD ist ein LM162551 von Sharp mit 16 Zeichen, 2 Zeilen und einer 5x7 Punktematrix pro Zeichen. Es kann mit einem Mikrocontroller im 4- oder 8-Bit Parallelmodus an +5 Volt betrieben werden und verfügt über einen erweiterten Befehlssatz.

Im 4-Bit Parallelmodus werden die Datenbit-Pin DB0 - DB3 nicht benötigt; sie können unbeschaltet bleiben. Ich habe sie im dargestellten Versuchsaufbau auf GND gelegt.

Anschlüsse

Über das BASCOM Hilfesystem bekommt man unter dem Stichwort CONFIG LCD das notwendige Hintergrundwissen für die Anwendung der Konfigurations- und Ausführungsbefehle.

  • BASCOM unterstützt verschiedene LCD-Darstellungstypen (1-, 2- und 4-zeilig, mit 16, 20 und 40 Zeichen pro Zeile) für die Chipsets: HD44780, KS077, DOGM und ST7032.
  • Im 4-Bit Modus benötigt man 6 Portpins für die Ansteuerung eines LCDs.

In der ersten Übung geht es darum, ein LCD-Modul unter BASCOM parallel anzusteuern und den Text: "Moin, moin!" in Zeile 1 (oben) und "Test bestanden." in Zeile 2 (unten) auszugeben.

Parallele Ansteuerung eines LCD-Moduls

Übung 1

Aufgaben

  • Baue die Schaltung nach der Skizze auf.
  • Übertrage das Programm lcd_parallel1.bas in den BASCOM Editor und speichere es ab.
  • Starte das Programm.
  • Überzeuge dich davon, dass der programmierte Text auf dem Display erscheint.
  • Füge eine weitere beliebige Print-Anweisung in das Programm ein.

Material

  • 1x  Steckbrett
  • 1x  Nullkraftsockel
  • 1x  USB-UART Adapter
  • 1x  Netzteil
  • 1x  ATmega8A oder ähnlich
  • 1x  Programm BASCOM
  • div. Steckdrähte
  • 1x  LCD-Modul mit Controller HD44780

 

Schaltskizze

Abbildung 0 - Pin 3 steuert den Kontrast. Üblich ist, hier einen Spannungsteiler aus Widerstand (10 kOhm) und Potenziometer (2,5 kOhm) einzubauen und damit die korrekte Helligkeit auszusteuern. Aus Vereinfachungsgründen ist er hier weggelassen worden.

Das Programm lcd_parallel1.bas

Abbildung 1 - Programm lcd_parallel1.bas

Textausgabe im LCD-Display

Abbildung 2 - Textausdruck im LCD-Modul

Wie arbeitet das Programm lcd_parallel1.bas?

Zeilen 18 - 21

Die Konfiguration für ein LCD erfolgt über Zeile 18. Hilfe zu den einzelnen Parametern erhält man über das Hauptmenü unter Hilfe - Hilfethemen im Register Suchen und dem Fenster Suchbegriff(e) eingeben unter dem Stichwort LCD.

Es wird im 4-Bit Modus gearbeitet; die dazu notwendigen Pinverbindungen zwischen Display und Mikrocontroller sind in den Zeilen 18, 19 und 20 aufgeführt. Die Zeile 21 ist nicht notwendig, da BASCOM bei fehlender Eingabe von Config Lcd = ... davon ausgeht, dass ein Display mit 16 Zeichen und zwei Zeilen vorhanden ist.

 

Zeilen 24 - 31

In der Endlosschleife Do ... Loop werden die Druckbefehle für das Display aufgerufen. Cls (clear screen) löscht es und Lcd "Moin, moin!" druckt den Text in Hochkomma im Display aus.

Nach einer Wartezeit von 1 Sekunde wird mit lowerline in Zeile 2 des Displays der zweite Text aus Programmzeile 29 ausgegeben.

Die Steuerbefehle für ein LCD-Modul

Befehl Wirkung
lowerline gibt einen Text in der unteren Zeile eines 2-zeiligen Displays aus.
locate Zeile, x-Position

gibt einen Text in Zeile 1, 2, 3 oder 4 (hängt vom Display ab) an der Position x (1 ... 16 oder 1 ... 20) aus.

Shiftlcd right/left schiebt einen Text im Display nach rechts/ links
Shiftcursor right/left versetzt einen Cursor nach rechts/links
Home upper setzt den Cursor nach oben links im Display
Cursor on/off  noblink/blink schaltet das Cursorsymbol ein/aus nicht blinkend/blinkend
Display on/off schaltet das Display ein/aus

LCD Designer

Mit BASCOM lassen sich Sonderzeichen für ein LCD-Modul sehr leicht und schnell erstellen. Über den LCD-Designer wird das neue Symbol entworfen und anschließend in ein bereits fertiges Programm übernommen. Wie das geht, soll diese kleine Übung zeigen.

Übung 2

Aufgaben

  • Baue die Schaltung nach der Skizze auf.
  • Übertrage das Programm lcd_sonderzeichen1.bas in den BASCOM Editor und speichere es ab.
  • Starte den LCD Designer und entwirf das neue Symbol.
  • Ändere das Programm anschließend ab, wie beschrieben und starte es.
  • Überzeuge dich davon, dass das neu entworfene Zeichen im Display ausgegeben wird.
  • Entwirf weitere Zeichen.

Material

  • 1x  Steckbrett
  • 1x  Nullkraftsockel
  • 1x  USB-UART Adapter
  • 1x  Netzteil
  • 1x  ATmega8A oder ähnlich
  • 1x  Programm BASCOM
  • div. Steckdrähte
  • 1x  LCD-Modul mit Controller HD44780

 

Programm lcd_sonderzeichen1.bas

Abbildung 3 - Programm lcd_sonderzeichen1.bas

Ein neues Zeichen entwerfen

Das Sonderzeichen wird so erstellt, dass man als erstes über das Hauptmenü Werkzeuge - LCD Designer (Strg-L) oder über das Icon-Menü das Icon Run LCD-Designer aufruft. In dem 8x5 Matrixfeld trägt man die neue Figur/ das neue Symbol mit einem Klick in die jeweiligen Kästchen ein und beendet den Entwurf mit Ok. Die unterste Zeile der Matrix darf nicht für den Symbolentwurf genutzt werden.

Abbildung 4 - Entwurf eines Sonderzeichens im LCD Designer von BASCOM

Die erste Figur ist ein nach oben weisender Pfeil. Wird die Eingabe mit Ok beendet, erscheint im Programm eine neue Programmzeile. In diesem Fall:

  • Deflcdchar [x] , 4 , 14 , 31 , 4 , 4 , 4 , 31 , 32 

mit dem Hinweis

  • ' replace [x] with number (0-7)

Ersetze die Zeichenfolge [x] in diesem Fall durch die Zahl 0 und tausche die Programmzeilen 24 - 27 des vorherigen Programmes durch die Zeilen 24 - 28 des neuen aus. Speichere das Programm ab und starte es. Das Sonderzeichen sollte in der 2. Zeile erscheinen.

Abbildung 5 - Die Programmzeilen für das Sonderzeichen ersetzen die Programmzeilen 24 - 27 aus Abb. 3

Auf diese Weise lassen sich bis zu acht verschiedene Sonderzeichen im Modul abspeichern und für kleine Animationen aufrufen. Probiere es selber aus, in dem du neue Symbole entwirfst und sie nacheinander im Display anzeigst.

Serielle Ansteuerung

In dieser Übung wird ein LCD der Fa. Parallax zweckentfremdet. In meiner Bastelkiste befindet sich noch ein solches LCD von der BASIC Stamp 2; es wäre zu schade, wenn man es nicht auch für einfache Ausgaben verwendete. Das Modul ist bereits mit einem DIP-Schalter für die Baudrate und einem Kontrasteinsteller auf der Rückseite der Platine ausgerüstet. Für die Übertragung von Text an das LCD-Modul steht nur der Pin RX zur Verfügung.

Der Vorteil gegenüber einer parallelen Ansteuerung ist der geringe Bedarf an Portpins - hier nur einer. Damit lässt sich dieses Display auch an dem Winzling ATtiny13A betreiben.

Übung 3

Material

  • 1x  Steckbrett
  • 1x  Nullkraftsockel
  • 1x  USB-UART Adapter
  • 1x  Netzteil
  • 1x  ATmega8A oder ähnlich
  • 1x  Programm BASCOM
  • div. Steckdrähte
  • 1x  LCD-Modul (Parallax)

Aufgaben

  • Baue die Schaltung nach der Schaltskizze auf.
  • Übertrage das Programm lcd_seriell1.bas in den BASCOM Editor und speichere es ab.
  • Starte das Programm.
  • Überzeuge dich davon, dass der programmierte Text auf dem Display erscheint.

Bei einer seriellen Datenübertragung an ein LCD-Display wird nur eine Datenleitung benötigt. Die BASCOM-spezifischen Ansteuerungsbefehle für ein LCD funktionieren nicht. Dazu müssen die herstellerspezifischen Voreinstellungen aufgerufen werden. Sie findet man im Datenblatt zu diesem LCD-Display beim Hersteller Parallax Inc.

LCD (Fa. Parallax)

Kurzinformationen

Eigenschaften

  • Eingebauter Piezo-Lautsprecher, mit dem sich zur Textausgabe zeitgleich auch Warn- oder Hinweistöne ausgeben lassen.
  • Einstellbare Baudrate über Dip-Schalter auf der Rückseite des Moduls.
  • Einstellbarer Kontrast über ein Potenziometer auf der Rückseite des Moduls.
  • Versorgungsspannung: 5 Volt

Das Display besteht aus zwei Zeilen mit jeweils 16 Zeichen. Dabei verfügt das Display tatsächlich in jeder Zeile über vier weitere Zeichenplätze, die allerdings nicht auf dem Display angezeigt werden können. Insgesamt stehen somit 40 Speicherplätze für 32 darstellbare Zeichen zur Verfügung.

Abbildung 6 - Aufbau des Parallax LCD-Moduls. Die Speicherstellen 0x10 - 0x13 werden nicht angezeigt; ebenso 0x24 - 0x27.

Der Speicherbereich von 0x10 - 0x13 und 0x24 - 0x27 ist nicht sichtbar, wird aber vom Programm genutzt.

Das kann man selbst ausprobieren, indem man in einer Variable S den Text "Text in Zeile 1!" und in der Variablen T den Text "Text in Zeile 2!" ablegt. Wird anschließend dieser Text im Display ausgegeben, dann erscheint in Zeile 1 der Inhalt der Variablen S und in Zeile 2 der Text von T minus der ersten vier Zeichen; die werden in den Speichern 0x10 - 0x13 abgelegt (Abb. 6).

Serielles LCD

Kurzinformationen

Steuerbefehle

Zeilenrücklauf             13
Displayinhalt löschen      12
Display AUS                21
Display EIN                24
Cursor in Z0, Pos. 0      128
Cursor in Z1, Pos. 0      148

Das Programm lcd_seriell1.bas

Textausgabe im LCD

Abbildung 7 - Beispiel für eine Textausgabe in Zeile 0 und Zeile 1 im LCD.
Bild 8 - Beispiel für eine Textausgabe an Position 6 in Zeile 0 (133).

Weiter geht´s mit dem Kapitel Sensor HC-SR04

Druckversion | Sitemap
© Reinhard Rahner - Gettorf