Mikroprozessoren Jörg Zschocke Der Mikroprozessor 6809 Jörg Zschocke Der Mikroprozessor 6809 Mikroprozessoren --------------~ Der Mikroprozessor 6809 von J. Zschocke Mikrocomputer. Aufbau und Anwendung. Arbeitsbuch zum /lP von J. Zschocke Mikroprozessoren (6502,6800,8080, Z 80,9900) von H. Schumny Assembler-Programmierung von Mikroprozessoren (8080,8085, Z 80) mit dem ZX-Spectrum von P. Kahlig Der Mikroprozessor MC 68000 von J. W. Coffron Vieweg ----------------------" Jörg Zschocke Der Mikroprozessor 6809 Herausgegeben von Harald Schumny Springer Fachmedien Wiesbaden GmbH Das in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgend einer Art verbunden. Der Autor und der Verlag übernehmen infolgedessen keine Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht. 1986 Alle Rechte vorbehalten © Springer Fachmedien Wiesbaden 1986 Ursprünglich erschienen bei Friedr. Vieweg & Sohn Verlags gesellschaft mbH, Braunschweig 1986. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Umschlaggestaltung: Ludwig Markgraf. Wiesbaden ISBN 978-3-528-04477-0 ISBN 978-3-663-14182-2 (eBook) DOI 10.1007/978-3-663-14182-2 v Vorwort Der MC6809 von Motorola wird von Kennern als "der Größte unter den Kleinen" be zeichnet. Obwohl er unter den 8-Bit-Prozessoren sicher zu den leistungsfähigsten gehört, blieb er relativ unbekannt. Das vorliegende Buch soll ein wenig dazu beitragen, diesen Zu stand zu ändern. Bei der Gestaltung des Textes stand die anwendungsorientierte Information im Mittel punkt. Dem Leser werden Problembeispiele in Form von Hardware-Entwürfen einschließ lich 'der notwendigen Software aufgezeigt, die die eigene Problemlösung erleichtern. Eine breite Stoffauswahl und systematischer Aufbau sollen das Buch auch zum Nachschlagen geeignet machen. Vor allem durch die ersten Kapitel ist das Buch zum Selbststudium für den Anfänger geeignet, gerade auch als Einführungslektüre im Hinblick auf den 68000 und den 68020. An dieser Stelle möchte ich mich ganz herzlich bei den Herren Dipl.-Ing. Safferthal von der Firma Dolch, Dietzenbach und Dipl.-Ing. Havel, Computer Graphics, München für ihre Mitarbeit am Buch bedanken. Ein Dankeschön auch an die Firma Motorola, München, speziell an Herrn Dipl.-Ing. Hilf, für die Bereitstellung von Informationen und illustra tionen. Besondere Anerkennung verdient der Verlag Vieweg für die vertrauensvolle Zusammen arbeit und die gute Ausstattung des Buches. Ich möchte auch nicht unerwähnt lassen, daß nur durch die vielfältige Unterstützung meiner Frau - vor allem was die Schreibarbeit betrifft - dieses Buch möglich wurde. Steinen-Weitenau, im August 1986 Jörg Zschacke VI Inhaltsverzeichnis 1 Einführung in die Struktur und Arbeitsweise eines Mikroprozessorsystems .................................. . 1.1 Einführung in die Hardware-Struktur ......................... . 1.1.1 Grundsätzlicher Systemaufbau ......................... 1 1.1.2 Mikroprozessor ................................... 6 1.1.3 Speicher........................................ 7 1.1.4 Ein·/ Ausgabebaustein ............................... 9 1.2 Einführung in die Programmierung ........................... 9 1.2.1 Aufbau eines Befehls ............................... 9 1.2.2 Bearbeitung eines Befehls ............................ 12 1.2.3 Ablauf eines Programms ............................. 12 2 Der Mikroprozessor 6809 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 19 2.1 Mikroprozessorsystem 6809 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 19 2.1.1 Entwurfsphilosophie ............................... 19 2.1.2 Organisation eines Standardsystems . . . . . . . . . . . . . . . . . . . . .. 21 2.1.3 Architektur der CPU 6809 . . . . . . . . . . . . . . . . . . . . . . . . . . .. 24 2.1.4 Adressierung und Befehlsformat beim 6809 ................ 30 2.2 Adressierungsarten des 6809 ............................... 34 2.2.1 Inherent-Adressierung............................... 36 2.2.2 Register-Adressierung ............................... 36 2.2.3 Immediate-Adressierung ............................. 39 2.2.4 Extended-Adressierung .............................. 40 2.2.5 Direct-Adressierung und Direct Page Register ............... 40 2.2.6 Branch Relative-Adressierung . . . . . . . . . . . . . . . . . . . . . . . . .. 44 2.2.7 Indexed-Adressierung ............................... 53 2.2.8 Program Counter Relative-Adressierung ................... 60 2.2.9 Indirect-Adressierung ............................... 61 2.3 Befehlssatz des 6809 .................................... 66 2.3.1 Register- und Datentransportbefehle ..................... 66 2.3.2 Arithmetische und logische Befehle. . . . . . . . . . . . . . . . . . . . . .. 78 2.3.3 Komplementierungs- und Schiebebefehle .................. 85 2.3.4 Vergleichs-und Testbefehle ........................... ~7 2.3.5 Verzweigungs-und Sprungbefehle . . . . . . . . . . . . . . . . . . . . . .. 89 2.3.6 Sonstige Befehle .................................. 93 2.4 Prozessorsignale und Interrupt-Verhalten ....................... 95 2.4.1 Versorgung und Takterzeugung ........................ 96 2.4.2 Daten und Adressen ................................ 97 2.4.3 Bus-Status ...................................... 98 2.4.4 Bus-Timing...................................... 101 2.4.5 Halt-Steuerung und DMA-Transfer ...................... 104 Inhaltsverzeichnis VII 2.4.6 Reset-Verhalten 107 2.4.7 Hardware-Interrupts................................ 110 2.4.8 Software-Interrupts ................................ 116 2.4.9 Befehle mit Interrupt-Eigenschaften ..................... 117 2.4.10 Der6809E ...................................... 121 3 Mikroprozessorbausteine .................................. 123 3.1 Speicherbausteine ...................................... 123 3.1.1 Ordnungsprinzip und Kenngrößen von Speichern ... . . . . . . . . .. 124 3.1.2 Einteilung der Halbleiterspeicher 125 3.1.3 Speicherorganisation ............................... 129 3.1.4 Speicherzellentypen ................................ 132 3.1.5 RAM-Speicher.................................... 138 3.1.6 Einige Beispiele industrieller Standard-RAM-Speicher .......... 142 3.1.7 Festwertspeicher .................................. 151 3.1.8 Maskenprogrammierbarer Festwertspeicher (ROM) ........... 154 3.1.9 Anwenderprogrammierbarer Festwertspeicher (PROM) ......... 156 3.1.10 Mehrfach programmierbarer Festwertspeicher (REPROM) ....... 157 3.1.11 Der 2716-EPROM-Speicher ........................... 158 3.1.12 Einfache Programmer-Schaltung für 2716-EPROM ............ 163 3.1.13 Aufbau von Speichersystemen ......................... 165 3.2 Ein-/ Ausgabe mit TTL-Bausteinen . . . . . . . . . . . . . . . . . . . . . . . . . . .. 169 3.2.1 Ein-/ Ausgabe-Prinzip ............................... 169 3.2.2 Anschluß von Anzeigen an den Mikroprozessor .............. 171 3.2.3 Anschluß von Schaltern an den Mikroprozessor .............. 178 3.3 Peripherie-Interface-Adapter (PIA) ........................... 182 3.3.1 AnschlüssedesPIA6820 ............................. 183 3.3.2 Interner Aufbau des PIA 6820 ......................... 185 3.3.3 Steuerregister des PI A 6820 . . . . . . . . . . . . . . . . . . . . . . . . . .. 186 3.3.4 Adressierung des PIA 6820 ........................... 188 3.3.5 Initialisierung des PIA 6820 . . . . . . . . . . . . . . . . . . . . . . . . . .. 189 3.3.6 Beispiel einer Ein-/ Ausgabe-Schaltung mit einem PIA .......... 190 3.3.7 Multiplexbetrieb von 7-Segment-Anzeigen mit einem PIA ....... 192 3.3.8 Tastaturanschluß mit einem PIA . . . . . . . . . . . . . . . . . . . . . . .. 194 3.4 Asynchronous Communications Interface Adapter (AClA) ........... 197 3.4.1 Formatierung .................................... 197 3.4.2 Serielle Anpassung mit Software . . . . . . . . . . . . . . . . . . . . . . .. 198 3.4.3 I nterner Aufbau des ACIA . . . . . . . . . . . . . . . . . . . . . . . . . . .. 199 3.4.4 Steuerregister des ACIA 202 3.4.5 Statusregister des ACIA 203 3.4.6 Initialisierung des ACIA 205 3.4.7 Terminalanschluß mit ACIA 206 3.5 Spezielle Bausteine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 207 3.5.1 Programmierbarer Zählerbaustein (PTM) .................. 207 3.5.2 Priotitäts-Interrupt-Controller (PIC) ..................... 213 3.5.3 Baustein für direkten Speicherzugriff (OMA) . . . . . . . . . . . . . . .. 215 VIII Inhaltsverzeichnis 3.5.4 Floppy·Disk-Controlier (FDC) ......................... 217 3.5.5 CRT-Controller .................................. . 219 4 Mikroprozessorsysteme mit dem 6809 . . . . . . . . . . . . . . . . . . . . . . .. 220 4.1 Minimalsystem im Selbstbau ............................... 220 4.1.1 KurzbeschreibungdesGLS09 ......................... 220 4.1.2 Blockschaltbild, technische Daten, Eigenschaften . . . . . . . . . . . .. 221 4.1.3 Speicherbelegungsplan und Adressencodierung .............. 223 4.1.4 Erweiterungsmöglichkeiten, Treiberbausteine ............... 227 4.2 Personalcomputer mit dem 6809 ............................ 230 4.2.1 DRAGON 32/64 .................................. 230 4.2.2 T07-70 ........................................ 231 4.2.3 TRS-80 Color Computer ............................. 233 4.2.4 EUROCOM 1/11 ................................... 234 E 4.3 Der KF-Computer - ein industrielles Entwicklungssystem . . . . . . . . . .. 234 4.3.1 Beschreibung des Systemkonzepts . . . . . . . . . . . . . . . . . . . . . .. 234 4.3.2 6809-CPU-Karte .................................. 238 4.3.3 6821 Parallel Interface-Karte 240 4.3.4 6850 Serielle Interface-Karte 242 5 Datensteuerung und Schnittstellen .......................... 244 5.1 Datenaustausch durch Programmsteuerung ...................... 244 5.2 Datenaustausch durch I nterrupt ............................. 245 5.3 Datenaustausch durch Handshaking . . . . . . . . . . . . . . . . . . . . . . . . . .. 246 5.3.1 Synchronisation der Datenübertragung . . . . . . . . . . . . . . . . . . .. 246 5.3.2 Datenverkehr zwischen zwei Mikrocomputern im Handshake-Betrieb mit Interrupt ....................... 247 5.4 Mehrfache I nterrupt-Verarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . .. 256 5.4.1 Software-I nterrupt-Steuerung . . . . . . . . . . . . . . . . . . . . . . . . .. 256 5.4.2 Hardware-I nterrupt-Steuerung ..................... 259 5.5 Anpassungsprobleme ................................... 266 5.5.1 Elektrische Anpassung .............................. 266 5.5.2 Zeitliche Anpassung ................................ 269 5.6 Serielle Schnittstellen .................................... 271 5.6.1 Die 20 mA-Stromschleife ............................ 272 5.6.2 Die RS-232 (V24)-Empfehlung . . . . . . . . . . . . . . . . . . . . . . . .. 272 5.6.3 Beispiel einer RS-232-Schnittstelle mit ACIA 273 5.7 IEC-Bus-Schnittstelle ............................... . 278 5.7.1 Funktionselemente ............................... . 278 5.7.2 Signalleitungen .................................. . 279 5.7.3 Nachrichtenübertragung im Dreidraht-Handshake-Verfahren 282 5.7.4 Adressen und Befehle .............................. . 283 5.7.5 Schaltungsbeispiel mit dem GPIA 68488 ................. . 284 5.7.6 Mechan ische und elektrische Spezifikationen 287 Inhaltsverzeichnis IX 6 Einführung in maschinenorientiertes Programmieren mit dem 6809 ......................... . 289 6.1 Programmierungstechniken .............................. 289 6.1.1 Arbeitsweise beim Programmieren . . . . . . . . . . . . . . . . . . . . . .. 289 6.1.2 Flußdiagramm............. . . . . . . . . . 295 6.1.3 Verzweigung, Verteiler ...... . 295 6.1.4 Schleifen ................. . 296 6.1.5 Struktogramme ...... . 298 6.1.6 Unterprogrammtechniken ........ . 299 6.2 Assemblerprogrammierung 301 6.2.1 Die Assemblersprache .. 301 6.2.2 6809·Assembler·Syntax 304 6.3 Programmierbeispiele ......................... . 308 6.3.1 Addition von Dualzahlen .................. . 308 6.3.2 Löschen, Suchen, Sortieren und Verschieben von Speicherinhalten .............................. . 310 6.3.3 Operationen mit Zahlen in Mehrfachgenauigkeitsdarstellung 316 6.3.4 Codes und Codewandlung .......................... . 324 6.3.5 Zeitschleifen ......... . 331 7 Der 6809 im praktischen Einsatz ......................... . 336 7.1 Einfache Anwendungen zum Experimentieren ........ . 336 7.1.1 Arbeiten mit dem Experimentierboard ................... . 336 7.1.2 Automatische Ampelsteuerung ...................... . 337 7.1.3 Lauflichtsteuerung mit Interrupt 339 7.1.4 Anschluß von 7·Segment·Anzeigen 341 7.1.5 Anschluß einer Tastatur ...... . 344 7.1.6 Der 6809 als Musikgenerator ... . 347 7.1.7 Der 6809 als Funktionsgenerator 351 7.1.8 Schrittmotorsteuerung ............................ . 356 7.2 Logikanalyse - der 6809 in der Meßtechnik (R. R. Safferthal) ...................................... . 358 7.2.1 Funktionsweise eines Logikanalysators ........... . 359 7.2.2 Anschluß eines Logikanalysators an den 6809 .. 361 7.2.3 Aufzeichnungsprobleme ........... . 362 7.2.4 Die Diassemblierung ................... . 366 7.2.5 Datenqualifikation .................... . 368 7.2.6 Time Stamp ............. . ......... . 370 7.3 CAD/CAM - der 6809 in der Steuer· und Regeltechnik (Havel) ....... . 371 7.3.1 Geräteausstattung . . . . . . . . . ..... . 371 7.3.2 Funktionen . . . . . . . . . ..... . 372 7.3.3 Technische Daten .......................... . 377 Anhang: Befehlstabelle des 6809 378 Sachwortverzeichnis ............................... . 387