FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand...

21
Das Franzis Lernpaket Mikrocontroller programmieren

Transcript of FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand...

Page 1: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

Das Franzis Lernpaket

Mikrocontrollerprogrammieren

65135-6 Handbuch+Titelei_A5 31.05.12 14:13 Seite 1

Page 2: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

© 2012 Franzis Verlag GmbH, 85540 Haar bei München

Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Das

Erstellen und Verbreiten von Kopien auf Papier, auf Datenträgern oder im Internet, insbesondere als PDF, ist nur mit

ausdrücklicher Genehmigung des Verlags gestattet und wird widrigenfalls strafrechtlich verfolgt.

Die meisten Produktbezeichnungen von Hard- und Software sowie Firmennamen und Firmenlogos, die in diesem Werk

genannt werden, sind in der Regel gleichzeitig auch eingetragene Warenzeichen und sollten als solche betrachtet werden.

Der Verlag folgt bei den Produktbezeichnungen im Wesentlichen den Schreibweisen der Hersteller.

Bibliografische Information der Deutschen Bibliothek

Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;

detaillierte Daten sind im Internet über http://dnb.ddb.de abrufbar.

Alle in diesem Buch vorgestellten Schaltungen und Programme wurden mit der größtmöglichen Sorgfalt entwickelt, geprüft

und getestet. Trotzdem können Fehler im Buch und in der Software nicht vollständig ausgeschlossen werden. Verlag und

Autor haften in Fällen des Vorsatzes oder der groben Fahrlässigkeit nach den gesetzlichen Bestimmungen. Im Übrigen haften

Verlag und Autor nur nach dem Produkthaftungsgesetz wegen der Verletzung des Lebens, des Körpers oder der Gesundheit

oder wegen der schuldhaften Verletzung wesentlicher Vertragspflichten. Der Schadens- ersatzanspruch für die Verletzung

wesentlicher Vertragspflichten ist auf den vertragstypischen, vorhersehbaren Schaden begrenzt, soweit nicht ein Fall der

zwingenden Haftung nach dem Produkthaftungsgesetz gegeben ist.

Liebe Kunden!

Dieses Produkt wurde in Übereinstimmung mit den geltenden europäischen Richtlinien hergestellt und trägt

daher das CE-Zeichen. Der bestimmungsgemäße Gebrauch ist in der beiliegenden Anleitung beschrieben.

Bei jeder anderen Nutzung oder Veränderung des Produktes sind allein Sie für die Einhaltung der geltenden

Regeln verantwortlich. Bauen Sie die Schaltungen deshalb genau so auf, wie es in der Anleitung beschrieben wird.

Das Produkt darf nur zusammen mit dieser Anleitung weitergegeben werden.

Das Symbol der durchkreuzten Mülltonne bedeutet, dass dieses Produkt getrennt vom

Hausmüll als Elektroschrott dem Recycling zugeführt werden muss. Wo Sie die nächstgelegene

kostenlose Annahmestelle finden, sagt Ihnen Ihre kommunale Verwaltung.

Franzis

65135-6 Handbuch+Titelei_A5 31.05.12 14:13 Seite 2

Page 3: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

3

Vorwort Mit der kompakten Platine dieses Lernpakets bauen Sie einem komplet-ten Steuercomputer für den universellen Einsatz. Mikrocontroller findet man überall, in Haushaltsgeräten, in Geräten der Unterhaltungselektro-nik, in Fahrzeugen, in Messgeräten und sogar in unbemannten Raum-fahrzeugen. Überall tun sie Dinge, die ihnen ein Programm befiehlt. Es ist spannend, auch selbst einmal einfache Steuerprogramme zu erzeugen.

Der erste Schritt ist meist, dass man einen Mikrocontroller oder Pro-zessor aussucht, der möglichst genau zu der gewünschten Aufgabe passt. Man hat die Auswahl zwischen unzähligen Typen verschiedener Firmen. Und auch die Programmiersprache kann gewählt werden. Meist wird Assembler und C angeboten, in vielen Fällen auch Basic oder eine andere Hochsprache. Normalerweise braucht man zur Programmierung auf-wendige Software und ein Programmiergerät. Neben dem finanziellen Aufwand ist auch die Einarbeitungszeit nicht zu vernachlässigen.

Der hier verwendete Mikrocontroller ist ganz anders. Zum Programmie-ren brauchen Sie nicht mehr als zwei Tastschalter auf der Platine. Die »Tastenprogrammierbare Steuerung« (TPS) kennt nur relativ wenige Befehle, die sich leicht erlernen lassen und die mithilfe der Tasten in den Controller programmiert werden. Eine Änderung des Programms ist jederzeit und ohne besondere Hilfsmittel möglich.

Das System eignet sich besonders für kompakte Anwendungen im Bereich Messen, Steuern und Regeln. Viele Aufgaben sind mit diesem System bereits vollwertig lösbar. Dazu kommt, dass Sie den Mikrocon-troller nach erfolgreicher Programmierung in eigene Schaltungen ein-bauen können. Grundwissen im Bereich Elektronik wird dabei voraus-gesetzt.

Zugleich eignet sich die Platine auch als Grundlage für die Ausbildung und für die ersten Schritte in die Mikrocontroller-Programmierung. Erfolge stellen sich schneller ein als bei anderen Systemen. Die Struktu-

Page 4: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

4 Vorwort

ren sind aber ähnlich wie in anderen Programmiersprachen, sodass der spätere Übergang erleichtert wird.

Ich wünsche viel Spaß und Erfolg beim Programmieren! Tipps und Tricks, zusätzliche Programmbeispiele sowie künftige Entwicklungen und Erweiterungen rund um die Tastenprogrammierbare Steuerung finden Sie im Internet: www.elektronik-labor.de.

Ihr Burkhard Kainka

Page 5: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

5

Inhaltsverzeichnis 1 Einleitung ............................................................................... 7

2 Hardwaretests ...................................................................... 15 2.1 Grundaufbau.............................................................15 2.2 Wechselblinker .........................................................17 2.3 Binärzähler und PWM-Ausgabe .................................18 2.4 Der Analog-Digital-Wandler .......................................23 2.5 Zufallsgenerator........................................................25 2.6 Impulslängenmessung..............................................27

3 Der Programmiermodus ........................................................ 31 3.1 Programme auslesen ................................................31 3.2 Programme eingeben ................................................34 3.3 Wiederherstellung der Beispielprogramme ...............36

4 TPS-Befehle .......................................................................... 37 4.1 Die Basisbefehle.......................................................37 4.2 Rechnen mit Variablen ..............................................40 4.3 Sprünge und Verzweigungen.....................................43 4.4 Die Befehlstafel ........................................................46

5 Programmstrukturen und Beispielprogramme....................... 49 5.1 Zählschleifen ............................................................49 5.2 Vergleiche.................................................................51 5.3 Einzelbit-Verarbeitung...............................................52 5.4 Logische Grundfunktionen ........................................56 5.5 Unterprogramme.......................................................58

6 Fortgeschrittene Anwendungen ............................................ 61 6.1 Dämmerungsschalter ................................................61 6.2 Zweipunktregler ........................................................62 6.3 LED-Dimmer ..............................................................64

Page 6: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

6 Inhaltsverzeichnis

6.4 Ein Morseprogramm..................................................66 6.5 Start/Stopp-Zeitmesser.............................................69 6.6 Zahlenschloss...........................................................70

Anhang ................................................................................. 73

Page 7: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

7

1 Einleitung Das Prinzip des TPS-Controllers ist einfach. Man hat vier digitale Eingänge E1 bis E4 und vier digitale Ausgänge A1 bis A4. Außerdem gibt es zwei analoge Eingänge AD1 und AD2 sowie einen quasi-analogen PWM-Ausgang. Ein Reset-Eingang mit einer angeschlossenen Reset-Taste setzt ein Programm an den Anfang zurück. Der Controller wird von drei AA-Zellen mit ca. 4,5 V versorgt und kann in einem Bereich von 2,2 V bis 5,5 V arbeiten.

qÉÅÜåáëÅÜÉ=a~íÉåW=

Mikrocontroller: HT46F47 Taktfrequenz: 2 MHz Internes EEPROM: 128 Bytes Spannungsversorgung: 2,2 V bis 5,5 V Stromaufnahme: 1 mA bei 4,5 V 4 Ausgangsports: belastbar bis 10 mA 1 PWM-Ausgang: belastbar bis 10 mA 4 Eingangsports: Ruhezustand 1 2 analoge Eingänge: 0 V ... Vcc 2 Tasteneingänge: Ruhezustand 1

_~ìíÉáäÉ=áã=iÉêåé~âÉíW=

Platine Batteriefach 3 x AA Draht HT46F47 mit TPS-Firmware 3 Tastschalter 4 LEDs 3 mm, rot 1 LED 3 mm, grün 1 LDR 1 Piezo-Schallwandler 3 Scheibenkondensatoren 100 nF 1 Elko 47 µF 5 Widerstände 2,2 kΩ

Page 8: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

8 Kapitel 1: Einleitung

1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ

Zur Programmierung braucht man die beiden Tasten S1 und S2 und eine einfache LED-Anzeige aus vier LEDs an den Ausgängen A1 bis A4. Es gibt insgesamt 14 einfache Befehle mit zugehörigen Daten oder Unterbefehlen. Befehle und Daten sind jeweils als 4-Bit-Binärzahlen im Bereich 0000 bis 1111 (dezimal 0 bis 15) kodiert und werden an den Anzeige-LEDs direkt sichtbar. Die jeweilige Zahl wird beim Program-mieren durch Tastendrücke auf S1 programmiert. Mit S2 wird jeweils zwischen Befehl und Daten gewechselt und die Adresse der Befehlszeile erhöht. Die gesamte Programmstruktur ist so einfach, dass man sie nach einiger Übung aus dem Kopf beherrschen kann.

Abb. 1.1: Grundschaltung des Systems

Abb. 1.1 zeigt den vereinfachte Schaltung des Systems mit allen Bau-teilen, die immer benötigt werden. Auf der Platine sind zusätzliche Steckverbinder vorgesehen. Außerdem bekommt auch der PWM-Aus-gang eine LED mit Vorwiderstand. Abb. 1.2 zeigt den vollständigen Schaltplan.

Page 9: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

Kapitel 1: Einleitung 9

Abb. 1.2: Schaltplan mit allen Steckverbindern

Die meisten Anschlüsse sind mehrfach zugänglich. Die großen Löt-anschlüsse eignen sich für einfache Experimente mit direkt angelöteten Bauteilen oder zum Anlöten von Kabeln. Alternativ können auch Schraubklemmen eingesetzt werden. Zusätzlich ist die Bestückung zehn-poliger Pfostenstecker vorgesehen, sodass die Platine auch mit Flach-bandkabeln verbunden werden kann. Schraubklemmen und Pfosten-stecker gehören nicht zum Lieferumfang des Lernpaktes und können bei Bedarf zusätzlich besorgt werden.

Page 10: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

10 Kapitel 1: Einleitung

Abb. 1.3: Das Platinenlayout

Abb. 1.4: Die unbestückte Platine

Page 11: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

Kapitel 1: Einleitung 11

Die Platine ist mit allen Bauteilewerten beschriftet, sodass die Bestü-ckung keine Probleme bereitet. Der Mikrocontroller erhält einen IC-Sockel, damit er später auch in andere Schaltungen eingebaut werden kann. Achten Sie auf die korrekte Einbaurichtung der vier roten LEDs, deren Kathoden (kurzer Draht) zum Platinenrand weisen. Lassen Sie alle äußeren Anschlüsse und Steckverbinder zunächst frei. Die PWM-LED und ihr Vorwiderstand können jetzt schon bestückt werden, auch wenn sie bei den ersten Versuchen noch nicht benötigt werden. Beachten Sie die Einbaurichtung der PWM-LED, deren Kathode anders als bei den übrigen vier LEDs zur Mitte der Platine weist.

Abb. 1.5: Standardaufbau mit Tastschaltern

Abb. 1.6 zeigt die mögliche Bestückung mit Schraubklemmen vom Typ AK500. Falls Sie diese Anschlüsse in Betracht ziehen, sollten Sie die ent-sprechenden Anschüsse möglichst nicht vorher anlöten. Man kann zwar auch später noch das überflüssige Zinn aus den Lötlöchern entfernen, aber das bedeutet mehr Arbeit.

Page 12: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

12 Kapitel 1: Einleitung

Abb. 1.6: Verwendung von Schraubklemmen

Zur Verbindung mit externen Baugruppen wie Leistungstreibern, Relaistreibern oder Optokopplern können auch die Pfostenstecker ver-wendet werden, wobei wahlweise gerade oder gewinkelte Typen einge-setzt werden können.

Abb. 1.7: Verwendung der Pfostenstecker

Alle Lötanschlüsse sind auch über die Pfostenstecker erreichbar. Die Ausgänge stehen an SV1 bereit, die Eingänge an SV2. An beiden Steckern

Page 13: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

Kapitel 1: Einleitung 13

liegt auch die Betriebsspannung, sodass man wahlweise die Platine über das Flachbandkabel oder aber externe Peripherie über die am System an-geschlossene Spannungsquelle versorgen kann. Ab SV1 stehen überdies mit Reset, S1 und S2 alle Anschlüsse bereit, die man für die Program-mierung des Systems braucht.

1 S2 S1 2

3 Reset PWM 4

5 A1 A2 6

7 A3 A4 8

9 GND VCC 10

Pfostenstecker SV1

1 S2 S1 2

3 AD1 AD2 4

5 E1 E2 6

7 E3 E4 8

9 GND VCC 10

Pfostenstecker SV2

Page 14: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1
Page 15: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

15

2 Hardwaretests Einige Grundprogramme sind bereits im Auslieferungszustand (Default) im TPS-Controller vorhanden und können direkt gestartet werden. Des-halb ist es möglich, den Controller Schritt für Schritt in Betrieb zu nehmen. Machen Sie sich zunächst mit den Hardware-Funktionen ver-traut und beginnen Sie dann erst mit eigenen Programmen.

Bei den ersten Tests werden kleine Programme gestartet, die bereits fertig im Controller vorliegen. Die zugehörigen Programmlisten vermit-teln einen ersten Eindruck von den Möglichkeiten. Sie werden jeweils nur kurz erläutert. Die genaue Erklärung der einzelnen Befehle folgt im nächsten Kapitel.

2.1 Grundaufbau Schließen Sie nun eine Stromversorgung an. Beachten Sie unbedingt die korrekte Polung des Batteriefachs mit dem Minuspol (schwarz) an GND und dem Pluspol (rot) an VCC. Hier werden noch nicht alle Kompo-nenten der Platine verwendet. Insbesondere die Taster S1 und S2 sowie die grüne PWM-LED sind noch ohne Funktion, sie stören jedoch auch nicht. Unbedingt erforderlich sind:

• Anschluss der Spannungsversorgung an GND (Minus) und VCC (Plus)

• Ein Abblockkondensator 100 nF zwischen VCC und GND

• Reset-Widerstand nach VCC und Reset-Kondensator nach GND

• Oszillatorwiderstand 100 kΩ nach VCC und Kondensator nach GND

Der Mikrocontroller HT46F47 wird mit seinem internen RC-Oszillator betrieben. Der Widerstand am Osc1-Eingang legt die Taktfrequenz fest. Mit 100 kΩ wird eine Frequenz von ca. 2 MHz eingestellt. Bei Bedarf kann mit kleinerer oder größerer Geschwindigkeit gearbeitet werden.

Page 16: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

16 Kapitel 2: Hardwaretests

Der angeschlossene Kondensator dient nur zur Abblockung und hat keinen Einfluss auf die Taktfrequenz. Der Anschluss Osc2 (Anschluss P3) bleibt frei. Bei Bedarf kann man aber hier einen zusätzlichen Wider-stand gegen VCC anschließen und Impulse mit einem Viertel der Takt-frequenz auskoppeln.

Abb. 2.1: Vier LEDs an den Ausgängen

Das einmal angeschlossene Batteriefach sollte möglichst immer verbun-den bleiben, um die Lötanschlüsse nicht durch zu häufiges Erhitzen zu beschädigen. Setzen Sie nun drei 1,5-V-Batterien oder alternativ drei NiMh-Akkus in das Batteriefach ein. Nehmen Sie zum Abschalten eine der Batterien aus dem Fach.

Page 17: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

2.2 Wechselblinker 17

Abb. 2.2: Minimale Beschaltung mit LEDs

2.2 Wechselblinker Mit dem Anschluss der Stromversorgung starten Sie das erste Beispiel-programm mit einem Wechselblinker mit der linken und der rechten LED. Die Blinkfrequenz beträgt etwa 1 Hz. Das Programm-Listing zeigt das einfache Programm mit nur fünf Zeilen. Es wird abwechselnd die LED 1 und die LED 8 eingeschaltet. Dazwischen liegen Wartebefehle mit einer Wartezeit von 0,5 s. Ein Rücksprung zum Anfang sorgt dafür, dass das Blinken endlos wiederholt wird. Die einzelnen Befehle werden weiter unten noch genauer erläutert. Sie können aber an diesem Beispiel schon die Einfachheit der Programmierung erkennen. Die Firmware des Con-trollers besitzt einen Interpreter, der die einfachen Kommandos erkennt und ausführt. Programme werden daher um ein Vielfaches kompakter als in anderen Systemen.

Das Beispiel belegt den Adressbereich ab 20h (dezimal 32). Mehrere Programme im oberen Adressbereich können später auch aus eigenen Anwendungen heraus gestartet werden. Die Adressen können alternativ auch mit eigenem Programmcode überschrieben werden. Bei Bedarf kann der Controller aber auch wieder in den Grundzustand gesetzt werden, wobei die ursprünglichen Beispielprogramme wiederhergestellt werden.

Page 18: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

18 Kapitel 2: Hardwaretests

Adresse Befehl Daten Kommentar

20 1 1 LED 1

21 2 8 Warte 500 ms

22 1 8 LED 8

23 2 8 Warte 500 ms

24 3 4 Springe – 4

Listing 2.1: Wechselblinker

Falls das gewünschte Ergebnis ausbleibt, überprüfen Sie zuerst die kor-rekte Polung der LEDs. Hilfreich ist auch eine Messung einiger Span-nungen. Verwenden Sie z. B. ein Digitalmultimeter im 20-V-Bereich und lassen Sie den Minusanschluss an GND. Alle Spannungen werden damit gegen GND gemessen:

• VCC: 4,5 V

• Reset: 4,5 V

• Osc1: 1,5 V

• E1 bis E4: 4,5 V

• A1: wechselnd

• A2, A3: 0 V

• A3: wechselnd

2.3 Binärzähler und PWM-Ausgabe Alle digitalen Eingänge sind mit einem internen Widerstand gegen VCC hochgezogen (Pullup-Widerstand) und haben eine Ruhespannung in Höhe der Betriebsspannung. Sie können aber jeden der Eingänge mit einem Draht oder einem Kontakt an GND legen. Beim Start liest das Default-Programm den Portzustand und wertet ihn aus. Einzelne Anschlüsse können an GND gelegt werden, sodass hier ein Null-Zustand gelesen wird. In Abhängigkeit vom Ergebnis werden verschiedene Pro-gramme aufgerufen.

Page 19: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

2.3 Binärzähler und PWM-Ausgabe 19

Abb. 2.3: Einsatz der PWM-LED

Abb. 2.4: Start des Binärzählers

Page 20: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

20 Kapitel 2: Hardwaretests

Legen Sie den Eingang E1 an GND. Sie können einen Draht zwischen E1 und GND anlöten, für diesen Versuch reicht es jedoch, einen Draht nur vorübergehend an die Anschlüsse zu halten. Damit startet nach einem Reset das zweite Beispielprogramm. Es zählt die Ausgangszustände binär hoch. Es werden laufend die Zustände 0000 (dezimal 0) bis 1111 (dezi-mal 15) durchlaufen. Das Programm verwendet die Variable A für eine einfache Addition und zur Ausgabe an die digitalen Ausgänge sowie an den PWM-Ausgang. Die Befehle 7 und 5 besitzen Unterfunktionen, die als Daten geschrieben werden.

Adresse Befehl Daten Kommentar

25 7 1 A = A + 1

26 5 4 Port = A

27 5 9 PWM = A

28 2 6 Warte 100 ms

29 3 4 Springe – 4

Listing 2.2: Binärzähler mit LED- und PWM-Ausgabe

Das Zählprogramm kann als Übungsprogramm für das Lesen von Binär-zahlen eingesetzt werden, die für die eigene Programmierung beherrscht werden müssen. Jede der vier LEDs stellt ein Bit dar. Insgesamt kann daher eine 4-Bit-Zahl angezeigt werden. Die LEDs werden im Schaltplan und auf der Platine entsprechend ihrer Wertigkeit 8, 4, 2 und 1 bezeich-net. Durch Addition der jeweiligen Werte erhält man die Dezimalzahl. In hexadezimaler Schreibweise werden die Zahlen 10 bis 15 durch die großen Buchstaben A bis F dargestellt.

»8« »4« »2« »1« Dezimal Hexadezimal

0 0 0 0 0 0

0 0 0 1 1 1

0 0 1 0 2 2

0 0 1 1 3 3

0 1 0 0 4 4

0 1 0 1 5 5

Page 21: FRANZIS | - 65135-6 Mikrocontroller …...8 Kapitel 1: Einleitung 1 Widerstand 10 kΩ 1 Widerstand 27 kΩ 2 Widerstände 100 kΩ Zur Programmierung braucht man die beiden Tasten S1

2.3 Binärzähler und PWM-Ausgabe 21

»8« »4« »2« »1« Dezimal Hexadezimal

0 1 1 0 6 6

0 1 1 1 7 7

1 0 0 0 8 8

1 0 0 1 9 9

1 0 1 0 10 A

1 0 1 1 11 B

1 1 0 0 12 C

1 1 0 1 13 D

1 1 1 0 14 E

1 1 1 1 15 F

Das Programm lässt sich auch als Blinkgeber für unterschiedliche Fre-quenzen einsetzen. Der nächsthöhere Ausgang hat jeweils die halbe Fre-quenz bzw. die doppelte Periodendauer:

• A1: 200 ms

• A2: 400 ms

• A3: 800 ms

• A4: 1600 ms

Zusätzlich werden die aufsteigenden Zahlenwerte auch an den PWM-Ausgang (Pulsweitenmodulation) ausgegeben. Das PWM-Signal ist ein Rechecksignal mit einer Frequenz von ca. 16 kHz. Die Pulslänge wird dabei gesteuert, sodass das Puls-Pausen-Verhältnis die durchschnittliche Einschaltdauer und damit die Helligkeit der LED bestimmt. Die Hellig-keit der hier angeschlossenen LED wird in 15 Stufen zwischen Null und voller Helligkeit gesteuert.

Ein PWM-Signal kann mithilfe eines RC-Tiefpassfilters mit 10 kΩ und 47 µF zu einer Gleichspannung geglättet werden. Der PWM-Ausgang wird damit zu einem Analogausgang. Mit diesem Programm erhalten Sie eine stufenweise von 0 V bis 4,5 V ansteigende Gleichspannung. Verfol-gen Sie den Spannungsverlauf mit einem Messgerät oder einem Oszillo-skop.