Die folgenden Beispiele dienen nur zur Demonstration. Sie zeigen eine mögliche Einbindung der zuvor beschriebenen Unterprogramme.
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.
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.
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.
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:
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.
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
Das erste Demonstrationsbeispiel soll mit Hilfe der Assembler-Basis-Routinen den Text "HELLO WORLD" am Grafik-LC-Display ausgeben. (siehe Bild)
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.
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.
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.