Herbert Bernstein. Mikrocontroller. Grundlagen der Hard- und Software der Mikrocontroller ATtiny2313, ATtiny26 und ATmega32

Ähnliche Dokumente
Inhaltsverzeichnis VII.

Inhaltsverzeichnis VII

Grundlagen der doppelten Buchführung

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Arbeitsbuch Mathematik

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Wirtschaftliche Unternehmensführung im Architektur- und Planungsbüro

Konsumentenverhalten im Zeitalter der Mass Customization

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Die Reihe wendet sich an Praktiker und Wissenschaftler gleichermaßen und soll insbesondere auch Nachwuchswissenschaftlern Orientierung geben.

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Weitere Bände in dieser Reihe

Hygiene in Kindertagesstätten

Springer essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

Die überzeugende Bewerbung

Heiner Keupp. Reflexive Sozialpsychologie

Elektrisch leitfähige Polymerwerkstoffe

Springer Essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

360 -Beurteilung und Persönlichkeitstest in der Führungsbeurteilung

Erfolgreiches Produktmanagement

Instrumente des Care und Case Management Prozesses

Susanne Kleinhenz. Die dunkle Seite der Macht: Eine Typologie von Führung

Springer Essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Fachwissen Technische Akustik

Springer Essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

Aufgabensammlung Fertigungstechnik

Illegale Migration und transnationale Lebensbewältigung

Günter Schmidt. Prozessmanagement. Modelle und Methoden. 3. überarbeitete Auflage

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Logistik, Transport und Lieferbedingungen als Fundament des globalen Wirtschaftens

Kompetent für einen inklusiven Unterricht

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Konsumentenverhalten im Zeitalter der Digitalisierung

Die Assistenz im Management

Verstehen in der Sozialen Arbeit

Der Kampf um den Konsens

Kommunikation im Krankenhaus

Konstruktionsleitfaden Fertigungstechnik

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Demokratie in einer globalen Welt

Mit oder ohne Urknall

Entwurf integrierter 3D-Systeme der Elektronik

Intelligente Verkehrssysteme und Telematikanwendungen in Kommunen

Soziale Arbeit in Theorie und Wissenschaft. Herausgegeben von E. Mührel, Emden B. Birgmeier, Eichstätt-Ingolstadt

Kunst- und Kulturmanagement. Herausgegeben von A. Hausmann, Frankfurt (Oder), Deutschland

Muslimische Milieus im Wandel?

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Multi-Channel im stationären Einzelhandel

Tobias Kollmann Holger Schmidt. Deutschland 4.0 Wie die Digitale Transformation gelingt

Berufseinstieg für Ingenieure

Einstieg in das Influencer Marketing

Klaus Weltner. Leitprogramm Mathematik für Physiker 1

Springer Essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

Gerd Czycholl. Theoretische Festkörperphysik Band 1. Grundlagen: Phononen und Elektronen in Kristallen 4. Auflage

Storytelling und Narration in den Public Relations

Lernen zu lernen. Werner Metzig Martin Schuster. Lernstrategien wirkungsvoll einsetzen

Dietmar Richard Graeber. Handel mit Strom aus erneuerbaren Energien

Der Direktvertrieb in Mehrkanalstrategien

Ideengeschichte der Physik

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Studienwerkstätten in der Lehrerbildung

Löschmittel in der Brandbekämpfung

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Bettina Heberer. Grüne Gentechnik. Hintergründe, Chancen und Risiken

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Das Ingenieurwissen: Technische Thermodynamik

Essentials liefern aktuelles Wissen in konzentrierter Form. Die Essenz dessen, worauf es als State-of-the-Art in der gegenwärtigen Fachdiskussion

Chefsache Nachhaltigkeit

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Springer Essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

Zukunftsorientierte Unternehmenssteuerung in der Energiewirtschaft

Die Monte-Carlo-Methode

Das neue Menschenbild

Christian J. Jäggi. Migration und Flucht. Wirtschaftliche Aspekte regionale Hot Spots Dynamiken Lösungsansätze

Wettbewerbsintensität im Profifußball

Das doppelt geteilte Land

Kompakt Edition: Geschäftsführer im Konzern

Wie wir zu dem werden, was wir sind

Prüfungstraining zum Bankfachwirt

Anerkennung und Anrechnung außerhochschulisch

Praxiswissen Online-Marketing

Spezielle und allgemeine Relativitätstheorie Grundlagen, Anwendungen in Astrophysik und Kosmologie sowie relativistische Visualisierung

Gentechnik geht uns alle an!

Photovoltaik Wie Sonne zu Strom wird Wesselak, Viktor; Voswinckel, Sebastian, ISBN

Arbeitswelt im Zeitalter der Individualisierung

Studienbücher zur Kommunikationsund Medienwissenschaft

Das Ingenieurwissen: Chemie

Springer Essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

Quantenfeldtheorie Wie man beschreibt, was die Welt im Innersten zusammenhält

Globale Gesellschaft und internationale Beziehungen. Herausgegeben von Th. Jäger, Köln, Deutschland

Kraft, Energie, Leistung

Basiswissen Soziale Arbeit. Band 6

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Transkript:

Mikrocontroller

Herbert Bernstein Mikrocontroller Grundlagen der Hard- und Software der Mikrocontroller ATtiny2313, ATtiny26 und ATmega32

Herbert Bernstein München, Deutschland ISBN 978-3-658-02812-1 DOI 10.1007/978-3-658-02813-8 ISBN 978-3-658-02813-8 (ebook) Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. Springer Vieweg Springer Fachmedien Wiesbaden 2015 Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung, die nicht ausdrücklich vom Urheberrechtsgesetz zugelassen ist, bedarf der vorherigen Zustimmung des Verlags. Das gilt insbesondere für Vervielfältigungen, Bearbeitungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Gedruckt auf säurefreiem und chlorfrei gebleichtem Papier. Springer Vieweg ist eine Marke von Springer DE. Springer DE ist Teil der Fachverlagsgruppe Springer Science+Business Media www.springer-vieweg.de (www.springer.com)

Vorwort ATMEL hat mehrere leistungsfähige 8-Bit- und 32-Bit-Mikrocontroller in seinem Programm. Für den Unterricht und für das Buch wurden die drei Mikrocontroller ATtiny2313, ATtiny26 und ATmega32 verwendet. Die drei Mikrocontroller verwenden für die Speicherung des Programms einen 2-Kbyte-Flash-Speicher, der über eine In-System-Programmierung (3-Draht-ISP-Schnittstelle) programmiert wird. Die Programmierung übernehmen diese Bausteine selbständig durch eine interne High-Voltage- Programmierung. Mit dem bekannten digitalen 8-Bit-Mikrocontroller ATtiny2313, einem Industriestandard in einem praktischen 20-poligen DIL-Gehäuse, steht für den Elektroniker ein kostengünstiger Mikrocontroller zur Verfügung. Mit diesem Baustein lassen sich zahlreiche Aufgaben aus dem Bereich der Hobbyelektronik und aus der Praxis lösen. Der analoge 8-Bit-Mikrocontroller ATtiny26, ebenfalls ein Industriestandard in einem praktischen 20-poligen DIL-Gehäuse, hat mehrere 10-Bit-AD-Wandler zur Verfügung. Mit dem AD-Wandler lassen sich zahlreiche Versuche durchführen. Der große 8-Bit-Mikrocontroller ATmega32 ist ebenfalls ein Industriestandard in einem praktischen 40-poligen DIL-Gehäuse und hat mehrere 10-Bit-AD-Wandler zur Verfügung. Mit dem AD-Wandler lassen sich zahlreiche Versuche durchführen. Die Versuche mit dem ATtiny2313, ATtiny26 und ATmega32 sind einfach auf einer Lochrasterplatine oder im Steckgehäuse aufgebaut, man benötigt für die einzelnen Aufbauten etwa eine Stunde an Lötzeit. Die Bauelemente erhalten Sie im Versandhandel. Die Versuche werden alle im AVR-Assembler programmiert. Entwickler, Studenten und Schüler können auf komfortable Weise die ATMEL-Software für Ihre Anwendungen auf dem PC implementieren und testen. Die sehr leistungsfähige Entwicklungsumgebung mit der Bezeichnung AVR-Studio bündelt alle benötigten Funktionen vom Assembler bis zum Simulator. Wie bekommt man nun das Programm in Assemblersprache in den Mikrocontroller? Man muss es übersetzen, entweder in Hexadezimal- oder in Binärzahlen. Vor 20 Jahren musste man ein Programm in Assemblersprachen manuell übersetzen, Befehl für Befehl, und dies bezeichnete man als Hand-Assemblierung. Wie im Falle der Umwandlung hexadezimal in binär ist die Hand-Assemblierung eine Routine-Aufgabe, die uninteressant, sich wiederholend und anfällig für zahllose kleine Irrtümer ist. Verwenden der falschen V

VI Vorwort Zeile, Vertauschen von Ziffern, Auslassen von Befehlenund falsches Lesen dercodessind nur einige der Fehler, die einem unterlaufen können. Die meisten Mikrocontroller machten früher die Aufgaben noch komplizierter, indem sie verschiedene Befehle mit unterschiedlichen Wortlängen verwendeten. Manche Befehle sind nur ein Wort lang, während andere eine Länge von zwei oder drei Worten besitzen. Einige Befehle benötigen Daten im zweiten und dritten Wort, andere benötigen Speicheradressen, Registernummern oder andere Informationen. Assembler besitzen eigene Regeln, die man erlernen muss. Diese enthalten die Verwendung bestimmter Markierungen oder Kennzeichen (wie Zwischenräume, Kommata, Strichpunkte oder Doppelpunkte) an den entsprechenden Stellen, korrekte Aussprache, die richtige Steuer-Information und vielleicht auch die ordnungsgemäße Platzierung von Namen und Zahlen. Diese Regeln stellen nur ein kleines Hindernis dar, das man leicht überwinden kann. Ferner muss man beim Programmieren in Assemblersprache eine sehr detaillierte Kenntnis des verwendeten Mikrocontrollers besitzen. Man muss wissen, welche Register und Befehle der Mikrocontroller hat, wie die Befehle die verschiedenen Register genau beeinflussen, welche Adressierverfahren der Mikrocontroller verwendet und eine Unmenge weiterer Informationen. Keine dieser Informationen ist für die Aufgabe, die der Mikrocontroller letztlich ausführen muss, relevant. Ich bedanke mich bei meinen Studenten für die vielen Fragen, die viel zu einer besonders eingehenden Darstellung wichtiger und schwieriger Fragen beigetragen haben. Meiner Frau Brigitte danke ich für die Erstellung der Zeichnungen. Die E-Mail-Adresse des Autors lautet Bernstein-Herbert@t-online.de. München, im Februar 2015 Herbert Bernstein

Inhaltsverzeichnis 1 Grundlagen der Mikrocontroller... 1 1.1 Mikrocontroller-Familie ATtiny2313, ATtiny26 und ATmega32... 6 1.1.1 Merkmale des ATtiny2313, ATtiny26 und ATmega32... 8 1.1.2 Pinbelegung des ATtiny2313, ATtiny26 und ATmega32... 14 1.1.3 ALU (Arithmetik- und Logikeinheit)... 16 1.2 Register im Mikrocontroller... 21 1.2.1 I/O-Register im I/O-Adressraum... 23 1.2.2 I/O-Ports als digitale Ein- und Ausgänge... 24 1.2.3 Konfiguration der Anschlüsse... 26 1.2.4 Konfiguration der Pins... 26 1.2.5 Lesen der Pinzustände... 28 1.2.6 Unbenutzte Pins... 29 1.2.7 Alternative Port-Funktionen... 29 1.2.8 SFIOR-Register... 32 1.2.9 Alternative Funktionen von Port B... 32 1.2.10 Alternative Funktionen von Port C... 34 1.2.11 Alternative Funktionen von Port D... 36 1.2.12 Beschreibung der Register der I/O-Ports... 37 1.3 Statusregister... 39 1.4 Programmzähler (program counter)... 42 1.5 Stapel (Stack)... 43 1.6 Rücksetzen (Reset)... 44 1.7 Zeitgeber und Zähler (Timer und Counter)... 45 1.7.1 8-Bit-Timer/Counter 0... 46 1.7.2 Timer/Counter Interrupt-Mask-Register (TIMSK)... 46 1.7.3 Timer/Counter Interrupt-Flag-Register (TIFR)... 46 1.8 Peripherie... 47 1.8.1 I/O-Ports... 48 1.8.2 Synchrone serielle Schnittstelle (SPI)... 53 1.8.3 Asynchrone serielle Schnittstelle (USART)... 59 1.8.4 Analogkomparator... 62 VII

VIII Inhaltsverzeichnis 1.8.5 Watchdog-Timer... 64 1.8.6 Interrupthandling... 67 1.9 Speichereinheiten... 75 1.9.1 Programmspeicher (Flash)... 75 1.9.2 Datenspeicher (SRAM)... 76 1.9.3 EEPROM-Speicher... 78 1.9.4 I/O-Speicher... 82 2 Hard- und Software für die Entwicklungsumgebung... 83 2.1 Entwicklungsumgebung... 85 2.1.1 Editor... 85 2.1.2 Cross-Assembler und Linker... 88 2.1.3 Emulatoren und Debug-Stationen... 91 2.2 Arbeiten und Erstellung für Programme mit AVR-Studio 4... 94 2.2.1 Fenster des AVR-Studio 4... 97 2.2.2 Programmentwicklung...103 2.2.3 Programm erstellen (Build)...105 2.2.4 Programm testen (Debugging)...105 2.2.5 In-Circuit-Emulator (ICE) und In-System-Programmierung (ISP)...106 2.3 Simulator...111 2.3.1 Unterbrechungspunkte (Breakpoints)...112 2.3.2 Variablenwerte von Register und Prozessor ausgeben...112 2.4 Programmieren des Mikrocontrollers...113 3 Befehle der ATMEL-AVR-Mikrocontroller-Familie...121 3.1 Arithmetische und logische Befehle...121 3.2 Logische Befehle...124 3.3 Sprungbefehle...125 3.4 Vergleichsbefehle...133 3.5 Unbedingte Sprungbefehle...134 3.6 Unterprogrammaufrufe...134 3.7 Datentransferbefehle...135 3.8 Bitmanipulationsbefehle...137 3.9 Löschbefehle...140 3.10 Schiebebefehle...142 3.11 Sonstige Befehle...143 3.12 Befehlsverzeichnis in alphabetischer Reihenfolge...144 3.13 Befehle in Assembler...147 3.14 Ports für die AVR-Mikrocontroller...150 3.15 Assemblerdirektiven für die AVR-Mikrocontroller...151

Inhaltsverzeichnis IX 3.16 Befehle und Adressierung...151 3.16.1 Datentransferbefehle (Datentransportbefehle)...152 3.16.2 Arithmetische und logische Operationen (Befehle)...155 3.16.3 Bitorientierte Befehle...155 3.16.4 Sprungbefehle (jump), Verzweigungsbefehle (branch) und Unterprogrammbefehle (call)...155 3.16.5 Sonstige Befehle...156 3.16.6 Zustands- oder Statusregister SREG...156 3.16.7 Adressierungsarten...158 3.16.8 Direkte Adressierung der SF-Register (Sonderfunktions-Register)...161 3.16.9 Direkte Adressierung des Datenspeichers (SRAM)...161 3.16.10 Indirekte Adressierung...162 3.16.11 Indirekte Adressierung mit automatischem Erhöhen bzw. Verringern des Adresszeigers...163 3.16.12 Indirekte Adressierung mit konstantem Abstand...164 3.16.13 Indirekte Adressierung mit PUSH und POP...166 3.16.14 Adressierung des Programmbereichs...166 3.16.15 Direkte Adressierung von Konstanten im Programmspeicher mit lpm...167 4 Programmierung in Assembler...171 4.1 Programm für den Mikrocontroller...171 4.1.1 Probleme des Programmierens...172 4.1.2 Assemblerprogramm...174 4.1.3 Eigenschaften von Assemblern...175 4.1.4 Nachteile der Assemblersprache...176 4.1.5 Höhere Programmiersprachen...178 4.1.6 Vorteile von höheren Programmiersprachen...180 4.1.7 Nachteile von höheren Programmiersprachen...181 4.1.8 Höhere Sprachen für Mikroprozessoren und Mikrocontroller..183 4.2 Assembler...186 4.2.1 Eigenschaften von Assemblern...186 4.2.2 Marken (Labels)...187 4.2.3 Assembler-Mnemoniks...189 4.2.4 Pseudooperationen...190 4.2.5 Pseudooperation EQUATE (oder DEFINE)...192 4.2.6 Pseudooperation ORIGIN...193 4.2.7 Reserve-Pseudooperation...194 4.2.8 Adressen und Operandenfeld...196 4.2.9 Bedingte Assemblierung...198

X Inhaltsverzeichnis 4.2.10 Makros...199 4.2.11 Kommentare...200 4.2.12 Typen von Assemblern...201 4.2.13 Fehler...202 4.2.14 Lader...203 5 8-Bit-Mikrocontroller ATtiny2313 für digitale Anwendungen...205 5.1 Merkmale des Mikrocontrollers ATtiny2313...205 5.1.1 Anschlüsse des Mikrocontrollers ATtiny2313...206 5.1.2 Interner Aufbau des Mikrocontrollers ATtiny2313...209 5.1.3 Programmierkopf des Mikrocontrollers ATtiny2313...210 5.1.4 Ein- und Ausgänge des ATtiny2313...215 5.1.5 Programmierung des ATtiny2313...219 5.1.6 Registerüberprüfung...222 5.2 ATtiny2313 mit Speicherverhalten...224 5.3 ATtiny2313 als Rechteckgenerator...227 5.4 Steuerbarer Blinker...243 5.5 Einschaltverzögerung...245 5.6 Ein- und Ausschaltverzögerung...249 5.7 Logische Verknüpfung zwischen zwei Tasten...250 5.8 RS-Flipflop...252 5.9 Steuerbarer Blinker...253 5.10 PWM-Helligkeitssteuerung einer Leuchtdiode...254 5.11 Steuerung einer Fußgängerampel...264 5.12 Ampelsteuerung für Nebenstraße...268 5.13 Hexadezimaler Zähler mit 7-Segment-Anzeige...271 5.14 Elektronischer Würfel mit 7-Segment-Anzeige...275 5.15 Garagenzähler mit neun Stellplätzen...276 5.16 Lottomat mit 2-stelliger 7-Segment-Anzeige...278 6 Hard- und Software für den ATtiny26...283 6.1 Interner AD-Wandler...286 6.1.1 Sukzessive Approximation...286 6.1.2 Starten einer Umsetzung...291 6.1.3 Wechsel der Kanäle und Referenzspannung...294 6.1.4 Störungsunterdrückung...297 6.1.5 Schaltung der Analogeingänge...298 6.1.6 Definitionen der ADC-Genauigkeit...300 6.1.7 Register für den AD-Wandler...302 6.2 Bau und Programmierung eines digitalen TTL-Messkopfes...306 6.3 Programmierung eines digitalen Thermometers von 0 C bis 99 C...313

Inhaltsverzeichnis XI 6.4 Programmierung eines dreistelligen Voltmeters von 0 V bis 2,55 V...322 6.5 Differenzmessung von Spannungen im 10-mV-Bereich...325 6.6 Messungen und Anzeigen von zwei Spannungen...329 7 Hard- und Software für den ATmega32...333 7.1 Interner Aufbau...334 7.1.1 Ein- und Ausschaltverzögerung...337 7.1.2 Stackpointer im Mikrocontroller...342 7.2 Ansteuerung der LCD-Anzeige...347 7.2.1 Ansteuerung der LCD-Anzeige im 4-Bit-Format...356 7.2.2 Zweistellige Darstellung der LCD-Anzeige...362 7.3 8-Bit-DA-Wandler MAX505 mit vier Ausgängen...364 7.3.1 Analoge Signalverarbeitung...364 7.3.2 Bewertungsnetzwerk...367 7.3.3 Eigenschaften des MAX505...369 7.3.4 MAX505 am ATmega32...370 7.3.5 Sinusgenerator mit dem MAX505...379 7.4 Hard- und Software für ein Platinensystem mit dem Mikrocontroller ATmega32...383 7.4.1 Mikrocontroller ATmega32...385 7.4.2 Abfrage der Tastatur...388 7.4.3 Ansteuerung der Leuchtdioden...390 7.4.4 Lauflicht...394 7.4.5 Ansteuerung der Tastatur...396 7.5 Programmierbarer Schnittstellenbaustein 8255...402 7.5.1 Betriebsarten des 8255...405 7.5.2 Ausgabebetrieb des 8255...408 7.5.3 Eingabebetrieb des 8255...413 7.5.4 Ein-Ausgabebetrieb des 8255...416 7.5.5 Elektronischer Würfel...418 7.5.6 TTL-Logiktester...420 7.5.7 Vier-Kanal-Logiktester...424 7.5.8 Einstufiger Vor-/Rückwärtszähler...425 7.5.9 Zweistufiger Vor-/Rückwärtszähler...430 7.5.10 Zweistelliges Betriebsvoltmeter...432 7.5.11 Ansteuerung einer zehnstelligen Baranzeige...434 7.6 ATmega32 mit der LCD-Anzeige...440 7.6.1 Voltmeter mit vier Messkanälen...444 7.6.2 Anzeige eines kombinierten Volt- und Amperemeters...450 7.6.3 Sägezahngenerator...458 7.6.4 Programm zur Berechnung einer Sinusfunktion...460

XII Inhaltsverzeichnis 7.7 Mikrocontroller ATmega32 mit Quarz...467 7.7.1 ATmega32 mit Quarzoszillator...469 7.7.2 ATmega32 mit externem RC-Oszillator...471 7.7.3 ATmega32 mit internem RC-Oszillator...472 7.7.4 ATmega32 mit externem Taktgenerator...473 Sachverzeichnis...477