Mikrocomputertechnik mit der 8051-Controller Familie 3 ...978-3-540-69465-6/1.pdf · Vorwort zur...

12
Mikrocomputertechnik mit der 8051-Controller Familie 3. neu bearbeitete Auflage

Transcript of Mikrocomputertechnik mit der 8051-Controller Familie 3 ...978-3-540-69465-6/1.pdf · Vorwort zur...

Page 1: Mikrocomputertechnik mit der 8051-Controller Familie 3 ...978-3-540-69465-6/1.pdf · Vorwort zur dritten Auflage Der 8051-Controller ist aufgrund seiner weiten Verbreitung besonders

Mikrocomputertechnik mit der 8051-Controller Familie3. neu bearbeitete Auflage

Page 2: Mikrocomputertechnik mit der 8051-Controller Familie 3 ...978-3-540-69465-6/1.pdf · Vorwort zur dritten Auflage Der 8051-Controller ist aufgrund seiner weiten Verbreitung besonders

Jürgen Walter

Mikrocomputertechnik mitder 8051-Controller Familie

Hardware, Assembler, C

3. neu bearbeitete Auflage

123

Page 3: Mikrocomputertechnik mit der 8051-Controller Familie 3 ...978-3-540-69465-6/1.pdf · Vorwort zur dritten Auflage Der 8051-Controller ist aufgrund seiner weiten Verbreitung besonders

Prof. Dipl.-Ing. Jürgen WalterHS KarlsruheFachgebiet MechatronikMoltkestr. 3076133 [email protected]

ISBN 978-3-540-66758-2

DOI 10.1007/978-3-540-69465-6

e-ISBN 978-3-540-69465-6

Bibliografische Information der Deutschen NationalbibliothekDie Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

© 2008, 1996, 1994 Springer-Verlag Berlin Heidelberg

Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der Über-setzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funksendung,der Mikroverfilmung oder der Vervielfältigung auf anderen Wegen und der Speicherung in Datenver-arbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfältigungdieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der gesetzlichenBestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutschland vom 9. September 1965 inder jeweils geltenden Fassung zulässig. Sie ist grundsätzlich vergütungspflichtig. Zuwiderhandlungenunterliegen den Strafbestimmungen des Urheberrechtsgesetzes.

Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werkberechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinneder Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jeder-mann benutzt werden dürften.

Satz: Digitale Druckvorlage des AutorsHerstellung: le-tex publishing services oHG, LeipzigEinbandgestaltung: eStudioCalamar S.L., F. Steinen-Broo, Girona, Spanien

Gedruckt auf säurefreiem Papier

9 8 7 6 5 4 3 2 1

springer.com

Page 4: Mikrocomputertechnik mit der 8051-Controller Familie 3 ...978-3-540-69465-6/1.pdf · Vorwort zur dritten Auflage Der 8051-Controller ist aufgrund seiner weiten Verbreitung besonders

Vorwort zur dritten Auflage Der 8051-Controller ist aufgrund seiner weiten Verbreitung besonders

als Modellsystem für die Mikrocomputertechnik geeignet. Dieses Buch führt in die technischen Grundlagen dieses Prozessorsystems, die Assembler- und C-Programmierung mit Anwendungen, sowie die Hardwa-reentwicklung ein. Die beiliegende CD-ROM enthält ein voll funktionales Entwicklungspaket mit Simulator, Assembler und C-Compiler. Für die zweite Auflage wurde das Softwarepaket um ein Lehrprogramm erweitert, mit dem die Grundlagen der Digitaltechnik repetiert und dynamische Ab-läufe anschaulich dargestellt werden können. Mit seinem didaktischen Aufbau, den verständlichen Erklärungen, den Übungsaufgaben, den mitge-lieferten Übungs- und Entwicklungsprogrammen wendet sich dieses Lern-paket vor allem an die praxisorientierten Ingenieure und Studenten. Für die dritte Auflage wurde die CD-ROM durch Programme für die wichtige praktische Anwendung erweitert.

Karlsruhe 8. Oktober 2007 Jürgen Walter

Vorwort zur zweiten Auflage Als Autor bin ich erfreut über die Resonanz, die dieses Buch mit CD ge-

funden hat. Das Lehrangebot wurde auf der CD zusätzlich durch ein CBT (Computer Based Training) ergänzt. Insbesondere können Sie hier interak-tiv mit Hilfe des Rechners in Ihrer eigenen Lerngeschwindigkeit arbeiten.

Die Software zum Debuggen von Programmen wurde auf die Windows-Oberfläche umgestellt.

Ein Programm zur Pulsweitenmodulation ergänzt die verschiedenen Programmbeispiele.

Durch die Einrichtung eines FTP-Servers an der FH Karlsruhe können Sie die aktuellsten Programme über Internet abrufen. Die Adresse ist: http://WWW.FH-Karlsruhe.de/ . Auf der ersten Seite befindet sich eine Volltextsuche an der Sie als Stichwort „8051“ eingeben sollten.

Karlsruhe 2. März 1996 Jürgen Walter

Page 5: Mikrocomputertechnik mit der 8051-Controller Familie 3 ...978-3-540-69465-6/1.pdf · Vorwort zur dritten Auflage Der 8051-Controller ist aufgrund seiner weiten Verbreitung besonders

Vorwort zur ersten Auflage Es ist mir eine große Freude, als Hochschuldidaktiker das Vorwort zu

dieser gelungenen Einführung in die µ-Computertechnik zu schreiben. Um die Vorzüge dieses Buches zu illustrieren, ist eine kurze Betrach-

tung des Lernprozesses erforderlich. Traditionelles Lernen besteht in dem Versuch, eine komplexe Informa-

tionsfülle - etwa in einer Vorlesung oder aus einem Buch - aufzunehmen. Je passiver dies geschieht, desto geringer sind die Aussichten für einen nachhaltigen Lernerfolg. Nach Möglichkeit sollte das "Schlucken" der In-halte bereits mit einem "Kauvorgang" (z.B. in Form einer strukturierten Mitschrift oder eigenen Markierungen bzw. Kommentaren im Buchtext verbunden werden.

Nach der Aufnahme der Information muss diese in einem zweiten

Schritt "verdaut" werden. Hiermit ist der Prozess gemeint, in welchem eine Vernetzung der neuen Begriffe, Theorieelemente und Sachverhalte mit dem Vorwissen des Studenten erfolgt. Da jeder Studierende andere Vor-kenntnisse und Vorerfahrungen sowie einen anderen Lernstil hat, gestaltet sich dieser Arbeitsvorgang sehr individuell. In jedem Fall aber ist er ein aktiver Prozess, in dessen Verlauf die alte Wissensstruktur so umgebildet werden muss, dass sich die neuen Wissenselemente einfügen. Jede Frage und jeder kognitive Konflikt, der in dieser Phase auftaucht, kann als Brü-ckenkopf zu der gewünschten Vernetzung beitragen. Jede abgeblockte oder verdrängte Frage aber ist eine vertane Chance zu einer solchen Brü-ckenbildung, zur Vernetzung zwischen erschlossenen und noch uner-schlossenen Wissenselementen. Hier liegt die große Bedeutung von Dis-kussionen fachlicher Inhalte in kleinen Gruppen. Unvernetztes Wissen "haftet nicht", bleibt "oberflächlicher Wissenslack", der vielleicht noch in der Prüfung "glänzen" mag, aber schon bei geringen Herausforderungen "abblättert" und nicht von Dauer ist. Ein geeigneter Test auf die Vernet-zungstiefe hingegen ist die Fähigkeit, einem Mitstudierenden auch komp-lexe Sachverhalte in einfacher, alltagsnaher Sprache darzustellen.

Vor der eigentlichen Bewährungsprobe steht das erworbene Wissen

dann im dritten Schritt, der Anwendung auf einen neuen Aufgabentyp mit unbekannter Lösung. Hier muss der Student selbständig unter verschiede-nen Strategien auswählen und bekannte Wissenselemente praxisbezogen

Page 6: Mikrocomputertechnik mit der 8051-Controller Familie 3 ...978-3-540-69465-6/1.pdf · Vorwort zur dritten Auflage Der 8051-Controller ist aufgrund seiner weiten Verbreitung besonders

VII

kombinieren. Wie wir essen und verdauen, um mit der in körperliche Energie verwandelten Nahrung konkret Arbeit zu verrichten, so eignen wir uns Wissen an, um mit seiner Hilfe auch neuartige Probleme in den Griff zu bekommen. Dabei muss sich die neue Wissensstruktur in Aktion be-währen und erst in dieser Funktion hat Wissen sein Ziel erreicht.

Wozu dieser Exkurs? Das vorliegende Buch trägt den Anforderungen

aktiven Lernens, die hier formuliert wurden, in besonderer Weise Rech-nung. Es macht nicht nur in systematischer Weise mit den wichtigsten Grundtatsachen der µ-Computertechnik vertraut, es tut dies auch in einer sehr alltagsnahen Sprache und so ausführlich, dass der Leser stets folgen kann und ihm berüchtigte Phrasen der Art "wie man leicht sieht ..." erspart bleiben. Er wird terminologisch und inhaltlich dort "abgeholt", wo er als Neuling in seinem Wissen steht.

Der Clou des Buches jedoch ist die Tatsache, das es mittels der dem

Buch beigefügten CD konsequent von den Möglichkeiten moderner Daten-technik zur Unterstützung aktiven Lernens Gebrauch macht. Die Idee, As-sembler, C-Compiler und Simulator für einen 8051/80535-Controller auf einem modernen Datenträger mitzuliefern, macht aus der Kombination von Buch und CD ein komplettes µ-Computer-Labor.

Ausführliche Beispiele und zahlreiche praktische Hinweise befähigen

den Leser, selbständig und aktiv in die faszinierenden Anwendungsmög-lichkeiten des µ-Controllers einzusteigen. Didaktisch besonders hervorzu-heben ist, dass sich am Bildschirm die Programmstruktur gleichzeitig auf zwei Ebenen (Quellcode, Assembler) verfolgen und zugleich die Aus-wirkung jedes einzelnen Befehls beobachten lässt. Damit wird das Prog-rammieren eines µ-Controllers in vorbildlicher Weise transparent.

Beeindruckt hat mich, mit welchem Engagement und welcher hohen

Sachkompetenz Studierende, die in die Technik der µ-Computer nach dem hier realisierten Konzept eingeführt wurden, komplizierte Steuerungsauf-gaben in Studienprojekten bewältigt haben. Die für eine profunde Wis-sensverarbeitung erforderlichen Diskussionen und der Transfer des Wis-sens auf neuartige Problemstellungen haben die Arbeit der Teams in hohem Maße beflügelt und die individuellen Lernerfolge durch selbständig gewonnene Erfahrung nachhaltig abgestützt.

Ich möchte das Buch Studenten und Dozenten wärmstens empfehlen.

Den letztgenannten bietet es den zusätzlichen Vorteil, dass der Dozent die

Page 7: Mikrocomputertechnik mit der 8051-Controller Familie 3 ...978-3-540-69465-6/1.pdf · Vorwort zur dritten Auflage Der 8051-Controller ist aufgrund seiner weiten Verbreitung besonders

VIII

Grafiken und Programme auf der mitgelieferten CD als Quelle und Aus-gangsbasis für die Erstellung eigener Unterlagen verwenden kann.

Karlsruhe 27. Oktober 1994 Hans-Peter Voss Leiter der Geschäftsstelle

für Hochschuldidaktik

Page 8: Mikrocomputertechnik mit der 8051-Controller Familie 3 ...978-3-540-69465-6/1.pdf · Vorwort zur dritten Auflage Der 8051-Controller ist aufgrund seiner weiten Verbreitung besonders

Danksagung Das vorliegende Buch konnte nur durch die tatkräftige Mithilfe der Stu-

denten und Kollegen entstehen. Besonders möchte ich die Anregungen von Herrn W. Müller und Herrn W. Marx hervorheben. Prof. O. Onnen sowie Herrn Prof. D. Girke unterstützten durch ihre Anregungen das Vorhaben. Prof. G. Danner ermöglichte als Leiter des Labors für Automatisierungs-technik den Aufbau des Labors zur Einführung in die µ-Computertechnik mit den µ-Controllern der 8051-Familie. Herr B. Beck hatte maßgeblichen Anteil an der Entwicklung der EURO_535-Karte.

Die Firmen Siemens, Intel, Hitex und Keil ermöglichten erst durch Ihre

großzügige Unterstützung in Form von Datenbüchern, Assembler zur Eva-luation, Kommunikationssoftware, Simulator und C-Compiler zur Evalua-tion das Gelingen des kombinierten Studiums.

Die Studienkommission für Hochschuldidaktik an Fachhochschulen in

Baden-Württemberg unterstützte durch ihr Wirken dieses Konzept an ver-schiedenen Hochschulen und Fachbereichen. Prof. Dr.-Ing. W. Fischer sei als Vorsitzendem dieser Kommission und als Rektor für das angenehme Hochschulklima gedankt.

Frau A. Scholl M.A. möchte ich recht herzlich für die unermüdlichen

Korrekturarbeiten danken. Die Zusammenarbeit mit Personen aus anderen Fachgebieten, wie beispielsweise der Germanistik habe ich sehr genossen und kann diese nur weiterempfehlen. Herrn Dr. D. Merkle und Herrn B. Huhn vom Springer-Verlag gilt hier ebenfalls mein Dank. Diese Arbeit wurde in hervorragender Weise von Frau Eva Hestermann-Beyerle in der dritten Auflage fortgesetzt.

Anregungen und Hinweise aus dem Leserkreis zur Weiterentwicklung

der Lehre nehme ich gerne entgegen. Karlsruhe 11. November 2007 Jürgen Walter

Page 9: Mikrocomputertechnik mit der 8051-Controller Familie 3 ...978-3-540-69465-6/1.pdf · Vorwort zur dritten Auflage Der 8051-Controller ist aufgrund seiner weiten Verbreitung besonders

Inhaltsverzeichnis

1 Einführung 1 1.1 Zielsetzung und Methode 1 1.2 Einführung in die µ-Computertechnik 2 1.3 Erläuterungen zum Sprachgebrauch: Englisch - Deutsch 4 1.4 Begriffsbestimmung µ-Computer und µ-Controller 5 1.5 Turingmaschine 6 2 Die Peripherie des µ-Controllers 11 2.1 Das D-Kippglied - D-Flip-Flop 11 2.2 Tri-State-Ausgang 16 2.3 Register 17 2.4 Latch 18 2.5 Empfehlungen für digitale Schaltungen 19 2.6 Adress-Decoder 21 2.7 Bus 23 2.8 Schaltplan EURO_535 Karte 27 3 Aufbau von µ-Controllern der 8051-Familie 30 3.1 Pin-Definitionen und Funktionstabelle 31 3.2 Prinzipieller Aufbau eines 8051-Ports. 32 3.2.1 Port 0 35 3.2.2 Port 1 37 3.2.3 Port 2 37 3.2.4 Port 3 38 3.3 Blockdiagramm 8051 - 8051A 39 3.4 Aufbau des klassischen Digitalrechners 42 3.5 Blockdiagramm 80C515/C535 45 3.6 Adressbereiche 8051 46 3.7 Timingberechnungen für 80535-Speicher 47 3.7.1 16K-EPROM an 80535 50 3.7.2 Timingberechnung 32K-RAM am 80C535 57 3.7.3 RAM-Berechnung für die EURO_535-Karte 58 4 Assembler für die 8051-Controller-Familie 61 4.1 Erstellen eines einfachen Assemblerprogramms 67 4.2 Debuggen – Test und Fehlerbeseitigung 71 4.3 Test des EIN_AUS-Programms mit dem Simulator 72

Page 10: Mikrocomputertechnik mit der 8051-Controller Familie 3 ...978-3-540-69465-6/1.pdf · Vorwort zur dritten Auflage Der 8051-Controller ist aufgrund seiner weiten Verbreitung besonders

XI

4.4 Test des EIN_AUS-Programms mit EURO_535 74 4.5 Entwicklungsprozess für ein µ-Controller-Programm 79 4.6 Prototyp Software Design 81 4.7 Die Speicherbereiche des 8051 / 80535 82 4.8 ASM 51 Macro Assembler 83 4.9 Die Assembler-Anweisungen im Detail 85 4.9.1 Vereinbarungen für Symbole und Syntax 85 4.9.2 Speicherbereich Initialisierung und Reservierung 85 4.9.3 Die Registerbänke 0 bis 3 86 4.9.4 Der Programmspeicherbereich 87 4.9.5 Der interne Datenspeicher 88 4.9.6 Der externe Datenspeicher 89 4.9.7 Die Bit-Adressen 90 4.10 Segmente 90 4.10.1 Relative Segmente 91 4.10.2 Absolute Segmente 92 4.10.3 Assembler-Anweisungen ORG - END 92 4.10.4 Quellcode-Anweisungen für den Linker 92 4.11 Assembler-Steueranweisungen (Assembler Controls ) 93 4.12 Stack 95 4.13 Special Function Register 96 4.14 Program Status Word 96 4.15 Die Befehle für die 8051 µ-Controller-Familie 99 4.16 Der System Reset 105 4.17 Der Stromsparmodus 106 4.18 Watchdog Timer 107 5 Projekte mit Assembler gelöst 108 5.1 Standardkopf für Assemblerprogramme 110 5.2 Blinklicht mit vorgegebener Blinkfrequenz 111 5.2.1 Timer / Counter - Zeitgeber / Zähler des 8051 111 5.2.2 Interrupt-System des 8051 / 80535 114 5.3 Projekt A/D-Wandlung 126 5.3.1 Wesentliche Daten des A/D-Wandlers im 80535 126 5.4 Projekt Serielle Schnittstelle 133 5.4.1 Die serielle Schnittstelle im Detail 138 5.4.2 Die Baudrate 139 5.5 Projekt Effektivwertmesser 141 5.5.1 Erweiterungen - Wiederverwendung der Software 142 5.5.2 Modularisierung 142 5.5.3 Vereinfachung der Aufgabenstellung 144 5.5.4 Timer 2 145

Page 11: Mikrocomputertechnik mit der 8051-Controller Familie 3 ...978-3-540-69465-6/1.pdf · Vorwort zur dritten Auflage Der 8051-Controller ist aufgrund seiner weiten Verbreitung besonders

XII

5.6 Der Linker 161 5.7 Projekt Effektivwertmesser mit dem Linker erzeugt 161 6 C für die 8051-Familie 175 6.1 Einführung in den C-Compiler 176 6.1.1 Das Programm EIN_AUS 176 6.1.2 Test des EIN_AUS Programms in C mit dem Simulator 179 6.1.3 Test des EIN_AUS Programmes in C in Hardware-Umgebung 182 6.2 Die Eigenschaften des C-51-Compilers 182 6.2.1 Die Datentypen des C-51-Compilers 183 6.2.2 Speichertypen und Speichermodelle 184 7 Projekte in C gelöst 186 7.1 Standardkopf für Programme in C 187 7.2 Blinklicht mit vorgegebener Blinkfrequenz 188 7.3 Projekt A/D-Wandlung 193 7.4 Die serielle Schnittstelle in C 196 7.5 Das Programm Effektivwert in C 198 8 Prozessorarchitekturen im Überblick 200 8.1 Grundstrukturen und Einteilung von µ-Prozessoren 200 8.1.1 80x86-Prozessoren 203 8.1.2 Signalprozessoren 207 8.2 Derivate der 8051-Controller-Familie 212 8.2.1 C515C-Controller 213 8.2.2 8051-Derivat C8051F340 214 9 Entwicklung von µ-Computer-Hardware 217 9.1 Klärung der Anforderungen 218 9.2 Abschätzung der CPU-Belastung - Datenflüsse 221 9.3 Wahl der CPU 223 9.4 Blockschaltbild der Karte 224 9.5 Schaltplan 225 9.6 Stückliste - Bezugsquellen 226 9.7 Schnittstellen 228 9.8 Layout - Bestückungsplan 230 9.9 Fertigungsunterlagen 231 9.10 Fehlerfindung, Diagnose 232 9.11 Lieferumfang 232 9.12 Software - Liste verfügbarer Software 233 9.13 Weiterentwicklungswünsche , Verbesserungen 234

Page 12: Mikrocomputertechnik mit der 8051-Controller Familie 3 ...978-3-540-69465-6/1.pdf · Vorwort zur dritten Auflage Der 8051-Controller ist aufgrund seiner weiten Verbreitung besonders

XIII

10 Übungsaufgaben 236 10.1 Übungsklausur 1 236 10.2 Übungsklausur 2 247 10.3 Übungsklausur 3 259 10.4 Übungsklausur 4 271 11 Anhang 284 11.1 Zusammenstellung der Register von 8051/80535 284 11.1.1 REG8051.PDF 284 11.1.2 REG535.PDF Datei 287 11.1.3 REGISTER DECLARATIONS FOR 80535 mit Erklärungen 291 11.1.4 EURO_535.h 298 11.2 Installation der Software 301 11.3 Hilfreiche Bücher zum Aufarbeiten der Grundlagen 303 11.4 Vortragsfolien 303 Literaturverzeichnis 304 Bildverzeichnis 305 Tabellenverzeichnis 308 Stichwortverzeichnis 310