Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Vorwort
Bernd-Dieter Schaaf, Peter Wissemann, Stephan Böcker
Mikrocomputertechnik
Aktuelle Controller 8051: Funktionsweise, äußere Beschaltung undProgrammierung
ISBN (Buch): 978-3-446-43078-5
ISBN (E-Book): 978-3-446-43348-9
Weitere Informationen oder Bestellungen unter
http://www.hanser-fachbuch.de/978-3-446-43078-5
sowie im Buchhandel.
© Carl Hanser Verlag, München
Vorwort des Herausgebers
Was können Sie mit diesem Buch lernen?
Wenn Sie dieses Lernbuch durcharbeiten, dann erwerben Sie umfassende Erkenntnisse undQualifikationen, die Sie zur Handlungsfähigkeit in der Mikrocomputertechnik mit Mikro-controllern führen.
Der Umfang dessen, was wir Ihnen anbieten, orientiert sich anden Studienplänen der Fachhochschulen für Technik,den Lehrplänen der Fachschulen für Technik in den Bundesländern,den Anforderungen der beruflichen Praxis,dem Stand der Technik.
Sie werden systematisch und schrittweise mit der spezifischen Hard- und Software eines Mi-krocomputersystems mit Mikrocontrollern vertraut gemacht. Sie können Programme konstru-ieren und Anwenderprogramme der Automatisierungstechnik nutzen.
Dabei gehen Sie folgenden Fragen nach:Welche Struktur der Baugruppen und ihrer Programmierung kennzeichnet einen Mikro-controller?Wie kann man ein Entwicklungssystem konstruieren?Welche Erweiterungen lässt das Mikrocontrollersystem zu?Wie programmiert man das System mit der Hochsprache „C“?
Wer kann mit diesem Buch lernen?
Jeder, dersich weiterbilden möchte,die Grundlagen der Datenverarbeitung kennt,Kenntnisse in den Grundlagen der Elektrotechnik besitzt.
Das können sein:Studenten an Fachhochschulen und Berufsakademien,Studenten an Fachschulen für Technik,Schüler an beruflichen Gymnasien und Berufsoberschulen,Schüler in der Assistentenausbildung,Facharbeiter, Gesellen und Meister während und nach der Ausbildung,Umschüler und Rehabilitanden,Teilnehmer an Fort- und Weiterbildungskursen,Autodidakten,
6 Vorwort des Herausgebers
vor allem in den Bereichen:Elektrische Energietechnik, Prozessautomatisierung, ProzessleittechnikInformations- und Kommunikationstechnik.
Wie können Sie mit diesem Buch lernen?
Ganz gleich, ob Sie mit diesem Buch in Hochschule, Schule, Betrieb, Lehrgang oder zu Hauseim „stillen Kämmerlein“ lernen, es wird Ihnen Freude machen.
Warum?
Ganz einfach, weil Ihnen hier ein Buch empfohlen wird, das in seiner Gestaltung die Grund-gesetze des menschlichen Lernens beachtet.
– Ein Lernbuch also! –
Sie setzen sich kapitelweise mit den Lerninhalten, Lehrstoffen auseinander, schrittweisedargestellt, in überschaubaren Lernsequenzen. Wo es möglich ist, wird der Lehrstoff aus-führlich beschrieben auf der linken Spalte der Buchseite und umgesetzt in die technisch-wissenschaftliche Darstellung auf der rechten Spalte der Buchseite. Die weitgehende Zuord-nung der behandelten Lerninhalte in den beiden Spalten erleichtert das Lernen wesentlich,Umblättern ist zum Beispiel in der Regel nicht nötig. An Beispielen konkretisiert und veran-schaulicht der Autor die neuen Lerninhalte.
– Ein unterrichtsbegleitendes Lehrbuch mit Beispielen! –
Jetzt können und sollten Sie sofort die Übungsaufgaben lösen, um das Neugelernte zu festigen,zu vertiefen und mit bisher Gelerntem zu verknüpfen. Die wesentlichen Schritte der Lösungund das Ergebnis der jeweiligen Übung sind am Ende des Buches vom Autor für Sie aufge-schrieben.
– Also auch ein Arbeitsbuch mit Übungen und Lösungen! –
Für das Aufsuchen entsprechender Kapitel steht Ihnen das Inhaltsverzeichnis am Anfang desBuches zur Verfügung. Für die Suche bestimmter Begriffe hat der Autor für Sie am Ende desBuches das Sachwortregister angelegt.
– Selbstverständlich mit Inhaltsverzeichnis und Sachwortregister! –
Sicherlich werden Sie durch die intensive Arbeit mit dem Buch Ihre „Bemerkungen zur Sache“unterbringen wollen und die Lösungen der Übungen an den jeweiligen Stellen zuordnen, umso ein individuelles Arbeitsmittel an der Hand zu haben.
– Am Ende ist Ihr Buch entstanden! –
Möglich wurde dieses Lernbuch für Sie durch die Bereitschaft des Autors und die intensiveUnterstützung des Verlages mit seinen Mitarbeitern. Ihnen sollten wir herzlich danken.
Beim Lernen wünsche ich Ihnen nun viel Freude und Erfolg.
Ihr Herausgeber
Manfred Mettke
Leseprobe
Bernd-Dieter Schaaf, Peter Wissemann, Stephan Böcker
Mikrocomputertechnik
Aktuelle Controller 8051: Funktionsweise, äußere Beschaltung undProgrammierung
ISBN (Buch): 978-3-446-43078-5
ISBN (E-Book): 978-3-446-43348-9
Weitere Informationen oder Bestellungen unter
http://www.hanser-fachbuch.de/978-3-446-43078-5
sowie im Buchhandel.
© Carl Hanser Verlag, München
2 Der Mikrocontroller
Der Mikrocontroller beinhaltet auf einem Chip einen kompletten Mikrocomputer, wie in Kapi-tel 1 beschrieben. Auf dem Chip sind die CPU, ein ROM-Speicher für das Programm, ein RAM-Speicher für die variablen Daten sowie parallele und serielle Ein- und Ausgabeports integriert.Die CPU ist über ein internes Bussystem mit dem Speicher und den Schnittstellen-Baugruppenverbunden. Der Controller wird hauptsächlich im Bereich der Automatisierungs-, Steuerungs-und Antriebstechnik eingesetzt. Speziell für diese Anwendungsgebiete sind außer den aufge-führten Standard-Baugruppen noch eine Reihe zusätzlicher Funktionseinheiten in den Con-troller integriert. Solche Funktionseinheiten sind z. B. schnelle Zähler (Timer), A/D-Wandleroder Interrupt-Controller.
Werden zusätzliche Funktionseinheiten benötigt, lässt sich ein externes Bussystem aufbauen.Daran lassen sich dann weitere Speicher oder Ports anschließen.
ParallelePorts
ParallelePorts
SeriellerPort
Interrupt-Controler
Speicher Zähler(Timer)
SpeicherA/D-Wandler
Schnitt-stellen
CPUMikrocontroller
interner Bus externer Bus
Dieses Buch stellt Controller der 8051-Familie bzw. deren Derivate vor. Obwohl die Architekturdes 8051-Controllers schon 1980 von Intel vorgestellt wurde, gibt es auch heute noch von fastjedem namenhaften Hersteller ein oder mehrere Controller, die diese Architektur verwenden.Dabei verwenden die Controller dann einen gleichen Befehlsatz, und unterscheiden sich nur inden zusätzlichen Funktionseinheiten, wie zum Beispiel dem „In-System-Programming“ odereinem zusätzlichen internen Speicher. Zudem haben die heutigen 8051-er Derivate optimierteBefehlsausführungszeiten und können mit einem höheren externen Takt betrieben werden.
2.1 Das Blockschaltbild des Mikrocontrollers 23
In diesem Buch soll beispielhaft ein 8051-er Derivat von Atmel, der AT89C51AC3 vorgestelltwerden. Zudem werden einige Vergleiche zwischen unterschiedliche Realisierungen (zum Bei-spiel beim A/D-Wandler) zu dem älteren nicht mehr erhältlichen Typ SAB 80C535 gemacht.
2.1 Das Blockschaltbild des Mikrocontrollers
Folgendes Blockschaltbild gilt für den Controller AT89C51AC3 von Atmel, welches mit kleinenAbweichungen anderen 8051er-Controllern gleicht.
UARTRAM256x8
Timer 0Timer 1
INTCtrl
CPU
C51CORE
IB-Bus
Flash64k x 8
Bootloader2k x 8
EEPROM2k x 8
ERAM2048 PCA Timer 2
Parallel I/O Ports and Ext. Bus
Port 0 Port 1 Port 2 Port 3 Port 4
WatchDog
EmulUnit
10 bitADC
SPIInterface
RxD
TxD
XTAL 1
XTAL 2
ALE
PSEN
EA
RD
WR
T0
T1
RE
SE
T
INT
0IN
T1
P0
P2
P3
P1(
1)
P4(
2)
MO
SI
SC
KM
ISO
EC
I
PC
A
T2E
X
T2VC
C
VS
S
Notes: 1. 8 analog Inputs / 8 Digital I/O2. 5-Bit- / 2Bit-I/O Port
2.1.1 Der C51-Core
Im linken umrahmten Teil des Blockschaltbildes ist die klassische 8051-Architektur mit derCPU, dem CPU-nahen 256 KByte RAM-Speicher, der seriellen Kommunikation (UART-Schnitt-stelle), zwei speziellen Timern und einem Interruptblock dargestellt. Dieser Teil entspricht ge-nau dem Urtypen der 8051-Architektur und lässt sich ohne Abweichungen gleich programmie-ren.
24 2 Der Mikrocontroller
CPU
Die CPU ist über das interne Bussystem mitden übrigen Funktionseinheiten verbunden.Der Systemtakt der CPU wird über einen ex-tern zugeschalteten Quarz an den Anschlüs-sen XTAL1 und XTAL2 erzeugt.
CPU
XTAL 1
XTAL 2
Quarz
Speicher
Der CPU-nahe Speicher dient zum schnel-len Abspeichern und Laden von variablenDaten. Meist sind dies einzelne Merkerbits,Zählvariablen oder Ähnliches.
RAM256x8
UART-Schnittstelle
Der Controller ist mit einer seriellen Schnitt-stelle ausgestattet, die vollduplex arbeitet.Die Sendeleitung TxD (Transmit Data) istder Anschluss 1 von Port 3. Die Empfangs-leitung RxD (Receive Data) ist der Anschluss0 des Portes 3. Der Schnittstelle können dieDaten von der CPU parallel übergeben wer-den.
Das serielle Senden und Empfangen mit ein-stellbaren Übertragungsprotokoll wird vonder Funktionseinheit selbstständig durchge-führt. Dasselbe gilt für die seriell empfange-nen Bits, die von der CPU parallel gelesenwerden können.
UARTR
xD
TxD
Timer
Die Timer 0 und 1 sind zwei unabhängigvoneinander arbeitende Zähler. Sie lassensich als Ereigniszähler oder als Zeitgeber ein-setzen.
Bei der Verwendung als Ereigniszähler wer-den externe Impulse gezählt, die an be-stimmten Eingängen der parallelen Portseintreffen. Bei Verwendung als Zeitgeberwerden interne Impulse gezählt, die von derOszillatorfrequenz abgeleitet werden. DieZeiten ergeben sich aus der Periodendauerdes internen Taktes und dem Zählwert.
Timer 0Timer 1
T0
T1
2.1 Das Blockschaltbild des Mikrocontrollers 25
Interrupt
Mithilfe der Interrupt-Control-Funktionkann ein laufendes Programm durch ein in-ternes oder externes Ereignis unterbrochenwerden und eine entsprechende Funktionausgeführt werden. Zum Beispiel, wenn einNot-Aus betätigt wird.
INTCtrl
INT
0IN
T1
2.1.2 Zusätzliche Funktionen
Rechts neben dem C51 Core sind in dem Blockschaltbild zusätzliche Blöcke angeordnet, dieüber den internen Bus des Controllers verbunden sind. Diese Blöcke sind von Atmel dem 8051-Kern hinzugefügt bzw. in bestimmten Bereichen optimiert worden, um den Mikrocontroller-Chip für den Anwender komfortabler und vielseitiger nutzbar zu machen. Die Funktionsweiseund Architektur dieser Blöcke weicht teilweise von den Urtypen der 8051-Architektur ab. VieleTeile sind auch hinzugefügt worden, wie zum Beispiel mehrere zusätzliche Speicher auf demChip.
Speicher
Zum zusätzlichen Speicher gehören ein64 KByte Flash-Speicher, in dem das ei-gentliche Programm gespeichert wird, einBootloader, mit dem das Programm di-rekt über die serielle Schnittstelle in denFlash-Speicher geschrieben werden kann,ein 2 KByte EEPROM, in dem Daten auchnach dem Ausschalten des Controllers erhal-ten bleiben und ein 2 KByte ERAM-Speicherfür die kurze Speicherung von Daten wäh-rend des Betriebes.
Flash64k x 8
Boot-loader2k x 8
EEPROM2k x 8
ERAM2048
Parallele Ports
Dieser Controller verfügt über fünf digitalePorts mit jeweils 8 Bit. Mithilfe dieser Portskönnen digitale Eingänge ausgelesen, bzw.digitale Ausgänge gesetzt und gelöscht wer-den.
Einige Ports haben zusätzliche Alternativ-funktionen, auf die per Programm umge-schaltet werden kann.
Parallel I/O Ports and Ext. Bus
Port 0 Port 1 Port 2 Port 3 Port 4
P0
P2
P3
P1(
1)
P4(
2)
26 2 Der Mikrocontroller
Timer 2
Der Timer 2 funktioniert wie die Timer 0 undTimer 1, ist allerdings mit zusätzlichen Funk-tionen ausgestattet, wie zum Beispiel mit ei-nem programmierbaren Takt-Ausgang.
Timer 2
T2E
X
T2
PCA
Die PCA-Einheit (Programmable CounterArray) ist ein komplexer Timer, der für ver-schiedene Anwendungen, wie zum Beispielder Pulsweitenmodulation genutzt wird. Mitdiesem Timer kann die CPU sehr entlastetwerden, und spezielle zeitgesteuerte Anwen-dungen können selbständig von diesem Mo-dul durchgeführt werden.
PCA
EC
I
PC
A
Watch Dog
Der Watch Dog ist ebenfalls ein speziellerZähler, der ständig überprüft, ob das Pro-gramm in einer festen Zeit zyklisch arbei-tet. Wenn das Programm an einer Stelle nichtmehr weiter bearbeitet wird, so stellt dies derWatch Dog fest, und führt zum Beispiel sel-ber einen Reset des Controller durch.
WatchDog
10-Bit ADC
Der 10-Bit ADC (Analog Digital Converter)wandelt analoge Eingangssignale in 10-Bit-Digitalwerte um. Hierzu stehen acht analogeEingänge bereit. Die Wandlung erfolgt nach-einander für jeden Analogeingang.
10 bitADC
SPI-Interface (nur Gehäuse über 52 Pins)
Das „Seriell Port Interface“ ist eine speziel-ler Baustein für die serielle Datenkommuni-kation zwischen mehreren Geräten. Hierbeikönnen sowohl Peripherie-Geräte als auchandere CPUs, seriell kommunizieren undsomit Daten austauschen. Die kompletteSteuerung hierfür übernimmt dieser Block.
SPIInterface
MO
SI
SC
KM
ISO
2.2 Anschlussbezeichnungen und Funktionen 27
2.2 Anschlussbezeichnungenund Funktionen
Die auf dem heutigen Markt erhältlichen Controller werden in unterschiedlichen Gehäusefor-men angeboten. So gibt es auch den Atmel AT89C51AC3 zum Beispiel in vier verschiedenenGehäuseformen. Zwei Gehäuseformen werden in der SMD-Bauweise angeboten, zwei anderelassen sich in einem PLCC-Sockel einsetzen. Das kleinste PLCC- Gehäuse weist 44 Pins auf,das größere 52 Pins. Die SMD-Gehäuse haben jeweils 44 Pins und 64 Pins. Bei dem Gehäu-se mit mehr Pins wird zusätzlich noch der Portpin P4.2, P4.3 und P4.4 nach außen geführt.In diesen Gehäusen steht dann das SPI-Interface zusätzlich zur Verfügung. Die anderen übriggebliebenen Pins sind meistens nicht angeschlossen („Not Connected“-NC).
Genaue Anschlussbezeichnungen und Funktionen
Symbolische Bezeichnungen Funktionen (E) = Eingang(A) = Ausgang
Hauptfunktion Alternativ- Hauptfunktion Alternativ-funktionen funktionen
P0.0...
P0.7
Port 0.0 (E/A)...
Port 0.7 (E/A)
Adressbus undDatenbus
A0/D0...
A7/D7P1.0 Port 1.0 (E/A)
AN0 Analogeingang 0 (E)T2 Takteingang Timer 2 (E)
P1.1 Port 1.1 (E/A)AN1 Analogeingang 1 (E)T2EX Triggereingang Timer 2 (E)
Stichwortverzeichnis
Bernd-Dieter Schaaf, Peter Wissemann, Stephan Böcker
Mikrocomputertechnik
Aktuelle Controller 8051: Funktionsweise, äußere Beschaltung undProgrammierung
ISBN (Buch): 978-3-446-43078-5
ISBN (E-Book): 978-3-446-43348-9
Weitere Informationen oder Bestellungen unter
http://www.hanser-fachbuch.de/978-3-446-43078-5
sowie im Buchhandel.
© Carl Hanser Verlag, München
Sachwortverzeichnis
A
Abfrage 75ACALL 172A/D Converter Characteristics 139ADC, 10-Bit 26ADCF 136ADCON 136, 138, 158ADEN 135ADEOC 135Adressbus 11 f., 32Adressierung, indirekte 41Adress-Latch-Enable 32ADSST 135Akkumulator 12ALE 32ALU 12Analog/Digital-Wandler 130, 202Analogeingang 134Anforderungs-Flag 155Anschlussbezeichnung 27Arithmetik-Logik-Einheit 12arithmetische Operation 168ASCII-Code 109Assembler 15, 64, 164Assemblerprogramm 17asynchroner Modus 145Atmel Flip 65Atmel Flip-Programm 67Auxiliary Flag 169
B
Baudrate 149Baudratentakterzeugung 150BCD-Code 183Befehl, 1-Byte- 15 f.–, 2-Byte- 15 f.–, 3-Byte- 15, 17Befehlsliste, Display 105– in Hex-Folge 20Befehlssatz 166Betriebssystem 66Binärkombination 77
Binäruhr 99bit 73Bit-Speicher 38 f.Bitverarbeitung 73, 80, 173BLJB 66Blockschaltbild 23Boole’sche Verknüpfung 173Bootloader 25, 45B-Register 169Bussystem 11 f., 32–, externes 32 f.Byte-Speicher 38, 40
C
C, Programmiersprache 71C51-Core 23CALL-Befehl 180Carry Flag 169char 73Codewandler, BCD in DUAL 185–, DUAL in BCD 186Compiler 64Controller, Anschlüsse 46–, Familie 8051 166– mit externem Bussystem 33Controller Erweiterung 114Controllerboard 45C-Programm, Aufbau 71CPU 12, 24
DDAPR 133Datenausgabe 53Datenblatt 55Datenbus 11, 32Dateneingabe 54Datenspeicher 31, 38, 41–, extern 36Datenspeicher-Lesezyklus 37Datenspeicher-Schreibzyklus 37Datentransfer 18, 166Datentyp 73
258 Sachwortverzeichnis
Datenübertragung, seriell 142Display 103–, Befehlsliste 105–, Initialisierung 106–, Initialisierungsphase 107–, Positionierung 112Dokumentation 67DO-WHILE-Schleife 89
EEA 50EEPROM 25Endlosschleife 72Entprellung 187Entwicklungsboard 45ERAM 25Ereigniszähler 116, 198Escape-Sequenz 153externe Interrupt-Quelle 155
F
Flag 168 f.Flankenerkennung 99, 188Flash-Speicher 25Flipflop 82, 175–, rücksetzdominant 82–, setzdominant 82float 73FOR-Schleife 89Freigabe-Bit 155Funktion 76–, Rückgabewert 76–, Übergabewert 76Funktionsplan 85
G
Gehäuseform 27
H
Hardwaretestumgebung 60Harvard-Architektur 30HD44780 103HEX-Datei 65High-Pegel 56Hochsprache 64
IIDE 63IEN0 158IEN1 158
IF-Abfrage 88IF-ELSE-Abfrage 89Impulsentprellung 187Impulszähler 187indirekte Adressierung 41Initialisierungsphase 107Instruktion 14 f.In-System-Programmierung 45In-System-Schnittstelle 65int 73Intel-Hex-Format 63interne Interrupt-Quelle 155Interrupt 25, 154, 205–, Enable 155–, Freigabe 156–, Priorität 158–, Quelle 155–, Request-Flag 154–, Service-Routine 154Interruptnummer 161Interrupt-Quelle, externe 155–, interne 155ISP 45Istwertanzeige 184Istwertzähler 184
K
Keil 71Kommentar 72Konstante 73Kontrollstruktur 75
L
Lastbetrachtung 58LCALL 172LCALL-Befehl 154LC-Display 102 f.Lesezyklus 35, 37Listing 64logische Operation 171LOW-Pegel 57
M
Makroassembler 64Maschinenprogramm 14, 63 f.Maschinensprache 63Maschinensteuerung 172Maschinenzykluszahl 66Maskierung 78MAX232 52
Sachwortverzeichnis 259
Mikrocomputer 11–, Arbeitsweise 14Mikrocontroller 22Mnemonic 18 f., 166 f., 170 ff.Modus, asynchroner 145–, synchroner 145MOV-Befehl 167MOVC 166MOVX 166mVision 71
O
Objektprogramm 63 f.Open Kollektor 59Operation, arithmetische 168–, logische 171Operationscode 16Operator 74Overflow Flag 169
P
Parity Flag 169PCA 26PCON 149Platine 45Polling 154POP-Befehl 181Port, Basisschaltung 54–, digitaler 52–, paralleler 13, 25–, Schaltung 53–, serieller 13Port-Treiberschaltung 53Prioritätsstufe 158Program Memory Code 35Programm 13 f.Programm Counter 12Programmablaufplan 69Programmentwicklung 183Programmiersprache C 71Programmlisting 63Programmspeicher 31–, lesen 35Programmspeicher-Lesezyklus 35Programmsteuerung 172Programmstruktur 177PSEN 31, 51PSW 169Pull-Up-Widerstand 57, 62PUSH-Befehl 181
Q
Quellprogramm 64
RRD 31Referenzspannung 131Register, Spezial-Funktions- 41, 169–, Timer-Control- 121–, Timer-Modus- 119Registerbank 38Registerinhalt, retten 181Request-Flag 155 f.Reset 50Retten von Registerinhalten 181
S
Sample and Hold 131sbit 73SBUF 144Schieberegister-Modus 145Schleife, DO-WHILE- 89–, FOR- 89–, fußgesteuerte 75–, kopfgesteuerte 75–, WHILE- 89–, zählergesteuerte 75Schnittstelle 51–, serielle 142, 202Schreibzyklus 37SCON 143serielle Schnittstelle 142, 202sfr 73SFR-Register 42Siebensegmentanzeige 95Signalabbild 83SMOD 149Spannungslupe 132Spannungsversorgung 49Speicher 12, 24–, Architektur 30 f.Speicherbereich, interner 38Speicherorganisation, externe 30Spezial-Funktions-Register 41, 169SPI-Interface 26Sprungbefehl 172Stack 180Stackpointer 180Standardchipsatz HD44780 103Steuerbus 12, 32Steuerregister 143Steuerungsverknüpfung 184
260 Sachwortverzeichnis
Strukturierung 183sukzessive Approximation 130synchroner Modus 145
T
T2CON 157Takterzeugung 50Taktgenerator 99TCON 121, 157Terminal, VT52- 153Terminal-Programm 202TF 121Timer 24, 115Timer 0 115Timer 1 115Timer 2 26Timer-Control-Register 121Timer-Funktion 119Timer-Modus-Register 119TMOD 119TR 121Transferbefehl 166Treiberbaustein 57TTL-Baustein 56
U
UART-Schnittstelle 24Überlauf-Flag 115Übertragungsrahmen 147unsigned char 73
unsigned int 73Unterbrechungsanforderung 154Unterprogramm 39, 180
V
Variable 73Verknüpfung, Boole’sche 173Verknüpfungssteuerung 68, 80, 174, 189–, Programmieren 174Von-Neuman-Architektur 31VT52-Terminal 153
W
Wägeverfahren 130Watch Dog 26WHILE-Schleife 89WR 31
XX2 66
Z
Zähler 115Zähler-Register 115Zählersteuerung 182, 190Zeitgeber 115, 122, 193Zeitinterrupt 208Zuweisung 74Zykluszeit 154