Ansteuerung des Grafik-LC-Display NLC-122B032
(mit PIC-Mikrocontroller, Elektronik)


zurück zu Elektronik, Homepage


6. Demonstrationsbeispiele

Die folgenden Beispiele dienen nur zur Demonstration. Sie zeigen eine mögliche Einbindung der zuvor beschriebenen Unterprogramme.

nach oben

6.1. Hardware

Schaltung zur Demonstration

Bei diesen Demonstrationsbeispielen soll ein Mikrocontroller (PIC16F877) beliebige Texte (z.B. Hello, World) und einfache Grafiken (Linien, Rechtecke, usw.) am Grafik-LC-Display ausgeben. Die Beschaltung des Grafik-LC-Displays erfolgt gemäß Abschnitt 2.

Für die Takterzeugung dient eine Standardbeschaltung bestehend aus einem 4-MHz-Quarz (X1), zwei Kondensatoren (C3, C4) und einem Widerstand (R2).

Zur Erzeugung des Reset (für den Mikrocontroller) wurde ebenfalls eine einfache Standardlösung bestehend aus einem Widerstand (R1) und einem Elektrolyt-Kondensator (C1) gewählt. Da diese RC-Kombination nur beim Anlegen der Betriebsspannung (also beim Einschalten) einen Reset erzeugt, wurde zusätzlich der Taster S1 hinzugefügt. Mit diesem Taster kann nun jeder Zeit ein Reset ausgelöst werden. Da der Reseteingang des Mikrocontrollers (MCLR, Pin 1) auch gleichzeitig die Programmierspannung (ca. 13V) bei der ICSP-Programmierung ist, darf während einer Programmierung kein Reset ausgelöst werden. Durch die Diode D2 ist ein Reset durch das RC-Glied (R1 und C1) während einer Programmierung via ICSP nicht möglich.

Die Diode D1 ist notwendig, damit beim Programmieren des Mikrocontroller (IC1) das Programmiergerät nicht die gesamte Hardware versorgt, sondern nur den Mikrocontroller.

Der Kondensator C2 dient zur Entkoppelung der Betriebsspannung für den Mikrocontroller. Für diesen Koppelkondensator sollte ein Keramiktyp verwendet werden. Dieser muss möglichst nahe an diesen IC angebracht werden.

Die ICSP-Schnittstelle (K1) dient zur Programmierung des Mikrocontrollers (IC1), wobei bei dieser Methode der Mikrocontroller nicht aus der Schaltung entfernt werden muss. (siehe auch Abschnitt 6.5. Programmieren mit ICSP)

Diese ICSP-Schnittstelle beinhaltet folgende Leitungen:

Die Stromversorgung besteht ebenfalls aus einer einfachen Standardlösung. Ein Festspannungsregler (IC3) vom Typ 7805 übernimmt mit den Kondensatoren C7 bis C10 die Spannungsregelung. Als Spannungsquelle dient beispielsweise ein unstabilisiertes 9-V-Steckernetzteil.
Die Diode D3 dient hier als Verpolungsschutz, und die Leuchtdiode D4 dient zusammen mit dem Vorwiderstand R5 als Spannungskontrolle.

nach oben

6.2. Nachbauanleitung (der Hardware)

Dieser Abschnitt beschreibt den Nachbau dieses Demonstrationsbeispiels. Das Herstellen der Platine wird hier nicht beschrieben, da hier jeder seine eigene Methode besitzt, außerdem werden industriell gefertigte Platinen (auch in der Einzelfertigung und auch für eine Privatperson) immer günstiger, so dass die Eigenfertigung immer mehr abnimmt.

Schritt 1: Platine herstellen

Zu diesem Zweck kann im Download-Bereich ein Layout (im Ordner Hardware) gedownloadet und ausgedruckt werden.

Selbstverständlich kann eine eigene Platine entworfen werden, die den eigenen Anforderungen entspricht.

Schritt 2: Platine bestücken

Das Bestücken der Platine ist erst dann sinnvoll, wenn alle für diese Platine benötigten Bauteile vorhanden sind. Es sollten generell nur erstklassige und neuwertige Bauteile verwendet werden. Auf Bauteile aus ausgeschlachteten Geräten sollte grundsätzlich verzichtet werden, da ihre Funktionalität nicht gewährleistet ist, und eine unnötige Fehlersuche dadurch vermieden werden kann.

Weiters sollte ausreichend Platz und vor allem ausreichend Zeit für die Bestückung der Platine vorhanden sein.

Die Bauelemente entsprechend dem unteren Bild der folgenden Reihenfolge, der Stückliste und dem Schaltplan bestücken. Die nach dem anlöten überstehenden Anschlüsse mit einem kleinen Seitenschneider entfernen.

Reihenfolge zur Bestückung der Platine:

Schritt 3: Grafik-LC-Display vorbereiten

Auf der "Unterseite" des Grafik-LC-Displays eine 20polige Kontaktleiste anlöten. Beim Löten ist dabei äußerste Vorsicht geboten. Kurzschlüsse zwischen Grafik-LC-Display und Kontaktleiste können nur sehr schwer gefunden und entfernt werden.

Grafik-LC-Display (Ansicht von unten)

Schritt 4: Test

Schritt 5: Zusammenbau

Zusammenbau
nach oben

6.3. Stückliste

Nr.             Bezeichnung               St.  Liefe-   Bestell   E-     Bemerkungen
                                               rant      -Nr.     Preis
------------------------------------------------------------------------------------
R2              Widerstand 270 Ohm         1   Conrad   418188    0,14
R5              Widerstand 1k              1   Conrad   418250    0,14
R1              Widerstand 10k             1   Conrad   418374    0,14
R3              Widerstand 36k             1   Conrad   420921    0,14
R4              Trimmer 10k                1   Conrad   430862    0,40

C3, C4          Keramikkondensator 22pF    2   Conrad   457167    0,14
C5,C6           Keramikkondensator 10nF    2   Conrad   453323    0,23
C2, C8, C9      Keramikkondensator 100nF   3   Conrad   453358    0,25
C10             Tantal 1µF/35V             1   Conrad   481670    0,62
C1, C7          Mini-Elko 10µF/25V         2   Conrad   460524    0,14

D1, D2          Diode 1N5711               2   Conrad   155499    0,30
D3              Diode 1N4001               1   Conrad   162213    0,08
D4              Low-current-LED 3mm grün   1   Conrad   145971    0,21

IC1             PIC16F877                  1   Farnell  413-7358 10,50
IC2             Timer 7555                 1   Conrad   175200    0,78
IC3             Spannungsregler 7805       1   Conrad   179205    0,54

X1              Quarz 4MHz                 1   Conrad   182087    1,15

LCD1            Grafik-LC-Display          1   Conrad   187399   28,99
                (122x32 Pixel)

                IC-Präzisions-Sockel 8pol  1   Conrad   189600    0,35   für IC2
                IC-Präzisions-Sockel 40pol 1   Conrad   189677    1,15   für IC1

S1              Taster                     1   Conrad   700460    0,43

JP1             Stiftleiste 2pol           1   Conrad   732478    0,79   Preis für 36pol
                Buchsenleiste 16pol        1   Conrad   740438    1,15   Preis für 32pol
                Kontafktstreifen 20pol     1   Conrad   739073    3,57   Preis für 32pol

                Schraubkleme 2pol          1   Conrad   729949    0,42

                Platine-Basismaterial      1   Conrad   529249    2,71   Preis für Euroformat

                Distanz M3x10              4                             optional
                Mutter M3                  4                             optional
                Distanz M2,5x8             4                             optional
                Zylinderkopfschraube
                M2,5x6                     4                             optional
                Zahnscheibe M3             8                             optional

    
nach oben

6.4. Softwarebeispiel 1 ("HELLO WORLD" in Assembler)

Das erste Demonstrationsbeispiel soll mit Hilfe der Assembler-Basis-Routinen den Text "HELLO WORLD" am Grafik-LC-Display ausgeben. (siehe Bild)

Demo 1

Die Programmierung des Mikrocontrollers erfolgt mittels ICSP-Schnittstelle (siehe Abschnitt 8. Programmieren mit ICSP).

Die Software zu diesem Demonstrationsbeispiel befindet sich im Download- Bereich auf dieser Seite.

Die Software besteht im Wesentlichen aus einem kurzen Hauptprogramm, die im Abschnitt 4. Software (Assembler) beschriebenen Unterprogramme und einem weiteren Unterprogramm namens AUSGABE.

Das Hauptprogramm besteht nach der Initialisierung des Controllers (Unterprogramm INIT) und des Grafik-LC-Displays (Unterprogramm GLCD_INIT) nur mehr aus einem Unterprogramm zur Ausgabe des Textes am Grafik-LC-Display (Unterprogramm AUSGABE) und aus einer Endlosschleife.

Das Unterprogramm INIT dient zur Initialisierung des Mikrocontrollers. Hier, bei diesem Demonstrationsbeispiel, werden nur die Ports B und D als Ausgang konfiguriert.
Das Unterprogramm GLCD_INIT initialisiert das LC-Display (siehe Abschnitt 4.3.1. Unterprogramm GLCD_INIT).

Nach der Initialisierung des Grafik-LC-Displays (Unterprogramm GLCD_INIT) ist das Grafik-LC-Display bereit Zeichen oder Werte anzuzeigen. Die Ausgabe der anzuzeigenden Zeichen übernimmt hier das Unterprogramm AUSGABE. Zuerst muss das Display mit dem Unterprogramm GLCD_CLEAR gelöscht werden und der Cursor an die erste Zeile und erste Spalte gesetzt werden. Nun können beliebige Zeichen, oder Symbole gemäß Abschnitt 3.3. Zeichensatz) an das Grafik-LC-Display übertragen werden.

nach oben

6.5. Softwarebeispiel 2 in C mit CC5x

Das zweite Demonstrationsbeispiel soll mit Hilfe der C-Routinen (C-Routinen (aus Abschnitt 5.3.)) die Informationen gemäß dem folgenden Bild (Uhrzeit und Datum) am Grafik-LC-Display anzeigen. Die angezeigten Daten (hier Uhrzeit und Datum) sind in den Registern UHRZEIT_STD, UHRZEIT_MIN, UHRZEIT_SEK, DATUM_TAG und KALENDERWOCHE gespeichert. Die Texte für den Wochentag, Monat und das Jahr werden direkt als ASCII-Zeichen an das Grafik-LC-Display gesendet. Wie die Uhrzeit und das Datum zustande kommen ist bei diesem Demonstrationsbeispiel nicht von Bedeutung.

Demo 2

Aufgrund der 1k-Grenze des CC5X-Kompilers muss der C-Code in mehrere C-Dateien aufgeteilt werden. Abschnitt 9. 1k-Grenze beim CC5X).

Die Programmierung des Mikrocontrollers erfolgt auch hier mittels ICSP-Schnittstelle (siehe Abschnitt 8. Programmieren mit ICSP).

Auch hier befindet sich die Software zu diesem Demonstrationsbeispiel im Download- Bereich auf dieser Seite

Die Software besteht hier im Wesentlichen aus einem sehr kurzen Hauptprogramm (main in der Datei demo2.c), die im Abschnitt 5. Software (C mit CC5X) beschriebenen Unterprogramme (in den Dateien GLCD_BASIS_ROUTINE.C, GLCD_FONT5X7.C, GLCD_FONT8X14.C und GLCD_FONT10X22.C) einem weiteren Unterprogramm namens AUSGABE (in der Datei demo2.c) und je einem Unterprogramm zur Umwandlung in BCD-Darstellung der 8-Bit-Zahlenwerte für jede Schriftgröße (auch in der Datei demo2.c).

Das Hauptprogramm besteht nach der Initialisierung des Controllers (Unterprogramm INIT) und des Grafik-LC-Displays (Unterprogramm GLCD_INIT) nur mehr aus einem Unterprogramm zur Ausgabe der Daten gemäß dem oberen Bild am Grafik-LC-Display (Unterprogramm AUSGABE).

Das Unterprogramm INIT dient zur Initialisierung des Controllers. Hier, bei diesem Demonstrationsbeispiel, werden nur die Ports B und D als Ausgang konfiguriert und die Datenregister für Uhrzeit und Datum mit Demonstrationsinhalten geladen.
Das Unterprogramm GLCD_INIT initialisiert das LC-Display (siehe Abschnitt 5.3.1. Unterprogramm GLCD_INIT).

Nach der Initialisierung des Grafik-LC-Displays (Unterprogramm GLCD_INIT) ist das Grafik-LC-Display bereit Zeichen oder Werte anzuzeigen. Die Ausgabe der anzuzeigenden Zeichen übernimmt hier das Unterprogramm AUSGABE. Zuerst muss das Display mit dem Unterprogramm GLCD_CLEAR gelöscht werden. Anschließend den Cursor mit den beiden Unterprogrammen GLCD_SETCURSOR_ZEILE und GLCD_SETCURSOR_SPALTE an die gewünschte Position am Grafik-LC-Display (Zeile und Spalte) setzen. Nun können beliebige Daten (z.B. mit dem Unterprgramm AUSGABEBCD_5x7) oder Zeichen und Symbole (z.B. mit dem Unterprgramm GLCD_ZEICHEN_5x7) an das Grafik-LC-Display übergeben werden.

nach oben


zurück zu Elektronik, Homepage

Autor: Buchgeher Stefan
Erstellt: 14. August 2005
Letzte Änderung: 16. September 2006