Die 8051-Mikrocontrollerfamilie. 3. Die 8051-Mikrocontrollerfamilie

Größe: px
Ab Seite anzeigen:

Download "Die 8051-Mikrocontrollerfamilie. 3. Die 8051-Mikrocontrollerfamilie"

Transkript

1 3. Anfang der 80-er Jahre brachte Intel den 8051-Mikrocontroller als Nachfolger der ersten Mikrocontrollergeneration 8048 auf den Markt. Der Befehlssatz ist stark auf die Lösung von Steuerungsaufgaben zugeschnitten, doch neben speziellen Befehlen zur Einzelbitverarbeitung stehen auch Befehle zur Multiplikation und Division zur Verfügung, sodaß auch Aufgaben der Meßwertverarbeitung und der Regelungstechnik effizient gelöst werden können. Die 8051-Familie bestand zu Beginn aus folgenden Prozessorvarianten: 8051 Prozessor mit integriertem Programmspeicher (ROM) für Anwendungen mit hohen Stückzahlen. Der Programmspeicher wird schon bei der Herstellung des Chips programmiert Prozessor ohne internen Programmspeicher. Der Programmspeicher muß extern angeschaltet werden. Nachteil: für die Anschaltung des Programmspeichers werden Portanschlüsse benötigt, die dann u.u. für Ein/Ausgaben fehlen Prozessor mit integriertem 4 kbyte EPROM. Das EPROM ist mit UV-Licht löschbar und der Prozessor anschließend wieder programmierbar. Alle Portanschlüsse sind frei verfügbar. Durch das im Gehäuse befindliche Quarzglasfenster ist dieser Prozessor in der Herstellung erheblich teurer als die ROM-lose Version. Der 8751 ist etwa um den Faktor 5 bis 10 teurer als der Durch die Einführung von Special-Function-Registern im internen RAM hat man eine Rechnerstruktur entwickelt, die sehr flexibel erweiterbar ist. Unter Beibehaltung der Grundstruktur des 8051 und seines Befehlssatzes läßt sich ein erweitertes System einfach dadurch entwickeln, indem man zusätzliche Funktionen wie z.b. einen Analog- Digitalwandler auf dem Chip integriert und die Register des Analog-Digitalwandlers an freie Stellen im Special- Function-Registerbereich legt. Maximal sind 128 verschiedene Special-Function-Register (SFR) adressierbar, der 8051 benutzt hiervon 21. Die meisten dieser 21 SFR sind für die 8051-Familie und ihre Derivate verbindlich, sodaß bereits vorhandene Software in großem Umfang wiederverwendbar ist. Eine größere Anzahl von Herstellern hat von Intel Lizenzen für die Benutzung des 8051-Kernes genommen und den Kern um eigene Funktionen erweitert. Siemens hat z.b. die Zahl der Parallelports erweitert, einen weiteren, leistungsfähigen Zähler/Zeitgeber und einen Analog-Digitalwandler mit 8-Kanal-Multiplexer integriert. Dieser Baustein hat die Bezeichnung 80515, seine ROM-lose Version heißt Eine nochmals stark erweiterte Prozessorversion ist 1990 als auf den Markt gekommen. Eine noch größere Zahl von 8051-Derivaten bietet Philips an, vor allem auf dem Gebiet der Konsumelektronik und der verteilten Controllersysteme (CAN - Controller Area Network). Obwohl die erwähnten 8051-Derivate wesentlich leistungsfähiger und moderner sind als der schon etwas "betagte" 8051, werden in den nächsten Kapiteln nur die Funktionen des 8051 benutzt. Im Rahmen dieser Einführung ist es aus Gründen der Übersichtlichkeit sinnvoll, sich auf die grundsätzlichen Zusammenhänge zu beschränken. Hinweise auf den im Labor benutzten Prozessor findet man in einem der letzten Kapitel. In diesem Skript soll eine Einführung in die maschinennahe Programmierung vermittelt werden. Es wird daher im folgenden auf die Registerstruktur, die Speicheraufteilung und den Befehlssatz eingegangen. Dies ist eine Beschreibung aus der Sicht des Programmierers. Die Beschreibung der Hardware wird auf das zum allgemeinen Verständnis Notwendige beschränkt. 3-1

2 3.1. Hardwarestruktur des 8051 Der 8051 ist ein Ein-Chip-Mikrocontroller, der alle für einen Mikrorechner notwendigen Funktionseinheiten bis auf die Taktversorgung enthält. In Abb ist das Blockschaltbild des 8051 angegeben. 4-KByte- Programmspeicher 128-byte- Datenspeicher 2 x 16-bit- Zähler/Zeitgeber 8-bit-CPU 1-bit-Boolescher- Prozessor Interrupt-Logik Parallele Eingabe-Ausgabe 4 x 8 bit Serielle Eingabe-Ausgabe Abb Blockschaltbild des 8051 In dem Baustein befinden sich 8-Bit-CPU 1-Bit-Boolscher Prozessor 4K Byte Programmspeicher 128 Byte interner Datenspeicher 4 Ein/Ausgabeports à 8 Bit 2 16-Bit Zeitgeber/Zähler serielle Schnittstelle für Vollduplexbetrieb Interruptsystem für 5 unterschiedliche Interruptquellen in zwei Prioritätsebenen Der Verständlichkeit halber ist in Abb ein verfeinertes Blockschaltbild des 8051 angegeben. Man erkennt hier sehr gut den internen Daten- und Adressbus und die Anschaltung einzelner Funktionsblöcke an das Bussystem. Über Port 0 und Port 2 kann ein externes Bussystem an das interne Bussystem angekoppelt werden. Als einzige externe Bauelemente sind ein Quarz und zwei Kondensatoren an den Controller anzuschließen. Die 8-Bit-CPU hat drei Arbeitsregister: den ACC für alle arithmetischen und logischen Operationen das B-Register für 8-Bit-Multiplikation und Division sowie als allgemein nutzbares Register das Programmstatuswort PSW, das die vier von der ALU beeinflußten Flags CY, AC, OV und P enthält sowie ein durch Software setz- bzw. rücksetzbares Flag F0 und zwei Auswahlbits RS0 und RS1 zur Festlegung der aktiven Registerbank, siehe auch Abb

3 Abb. 3.2 Verfeinertes Blockschaltbild des 8051 (nach Valvo-Unterlagen) 3-3

4 Abb Programmstatuswort des 8051 CY AC F0 RS1 RS0 OV -- P CY - Übertragsbit, wird von Additions- und Subtraktion- sowie logischen und Schiebeoperationen beeinflußt AC - Hilfsübertragsbit (Auxiliary Carry) wird von Additions- und Subtraktionsbefehlen beeinflußt. Muß bei BCD-Arithmetik verwendet werden. OV - Überlaufbit bei Rechnung mit vorzeichenbehafteten Zahlen im 2-Komplement P - Parität. Wird gesetzt, wenn die Anzahl der "Einsen" im Accu ungerade ist, sonst wird es rückgesetzt F0 - ist ein vom Benutzer frei verfügbares Bit (Flag) RS1,RS0 wählen die gerade aktive Registerbank aus. Nach Einschalten des Prozessors wird automatisch Registerbank 0 eingeschaltet. Die von der ALU beeinflußten Flags werden nach jeder arithmetischen und logischen Operation je nach Ergebnis gesetzt bzw. rückgesetzt. Das CY-Flag wird z.b. nach jeder Addition oder Subtraktion gesetzt, wenn das Ergebnis nicht im 8-Bit- darstellbar ist (Übertrag), es wird rückgesetzt, wenn das Ergebnis in 8 Bit darstellbar ist. Mit Hilfe von bedingten Sprungbefehlen kann dann auf ein Übertragsereignis reagiert werden. Mit dem Befehl JC FEHLER würde z.b. zum Programmteil Fehler gesprungen werden, wenn ein Übertrag aufgetreten ist (JC - Jump on Carry). Der 8051 enthält in seinem Programmstatuswort kein Z-Flag (Zero Flag)! Die bedingten Sprungbefehle JZ (Jump on Zero) bzw. JNZ (Jump on no Zero) werten bei ihrer Ausführung den Inhalt des Accus direkt aus. Das Carry-Bit des PSW dient zusätzlich als 1-Bit-Boolscher Accumulator, d.h. Ergebnisse logischer Bitoperationen stehen grundsätzlich im Carry-Bit. Der Befehl ORL C,P1.1 z.b. verknüpft das Carry-Bit mit dem Bit P1.1 (Port 1, Bit 1) ODER und schreibt das Ergebnis der Operation in das Carry-Bit zurück. Der Boolsche macht das sonst bei vielen Prozessoren notwendige Ausmaskieren von Bits vor deren Weiterverarbeitung überflüssig und beschleunigt damit den Programmablauf. Der 8051 hat getrennte Programm- und Datenspeicheradreßräume (Havard-Architektur). Grundsätzlich muß man unterscheiden zwischen Programmspeicher (interner Programmspeicher je nach Prozessortyp 4K Byte oder 0K Byte, externer Programmspeicher bis 60K Byte bzw. 64K Byte) interner Datenspeicher 128 Byte RAM (Bei Nachfolgetypen meistens 256 Byte ) Bereich der Special-Function-Register max. 128 Byte externer Datenspeicher bis zu 64K Byte anschließbar Für den Programmierer ist vor allem der Datenspeicher interessant. Abb gibt eine erste Übersicht über den internen und externen Datenspeicher 3-4

5 direkt adressierbar FF 80 7F 0 obere 128 Byte internes RAM untere 128 Byte internes RAM Special Function Register direkt und indirekt adressierbar FFFF 0 Externer Datenspeicher (optional) Abb Datenspeicher und zulässige Adressierung Immer vorhanden ist der interne Datenspeicher im Bereich von 0 bis 7FH ( ). Alle Speicherplätze in diesem Bereich sind byteweise les- und schreibbar und sowohl direkt als auch registerindirekt adressierbar. Es gibt hier aber auch Bereiche, die zusätzliche Funktionen haben. So sind in den unteren 32 Byte des internen RAM's vier Registerbänke mit jeweils acht Registern (R0 bis R7) untergebracht. Die Register sind vom Befehlssatz her sehr flexibel einsetzbar. Sie dienen vor allem als temporäre Speicherplätze für Größen, auf die häufig zugegriffen wird. Es ist zur Zeit jeweils immer nur eine Registerbank aktiv. Welche dies ist, wird über die Bits RS0 und RS1 im Programmstatuswort festgelegt (s. Abb. 3.3.). Damit bei der Bearbeitung mehrerer Aufgaben nicht immer die Register gerettet werden müssen, kann bei Aufgabenwechsel in eine andere Bank umgeschaltet werden. Ist die neue Aufgabe beendet und soll die zuvor unterbrochene Aufgabe fortgesetzt werden, muß nur auf die alte Registerbank umgeschaltet werden. Die in dieser Registerbank befindlichen Register sind nicht verändert worden, obwohl im unterbrochenen Programm ebenfalls mit den Registern R0 bis R7 gearbeitet wurde. Diese sind aber, da sie zu einer anderen Registerbank gehörten, in anderen Speicherplätzen angesiedelt. Der Bereich 20H bis 2FH ist zusätzlich bitadressierbar. Jedes Bit in diesem Bereich kann über entsprechende Befehle direkt angesprochen und ausgewertet werden. In Abb sind die einzelnen Bitadressen angegeben. Das niederwertigste Bit des Speicherplatzes 21H hat demnach die Bitadresse 8. Dieses Bit kann z.b. durch den Befehl SETB 8 gesetzt oder durch CLR 8 rückgesetzt werden. Ein bedingter Sprung in Abhängigkeit von diesem Bit ist ebenfalls möglich, z.b. JB 8,FEHLER bedeutet, daß zu einer Fehlerbehandlung gesprungen wird, wenn das Bit 8 gesetzt ist. Im Assemblerprogramm können diese Bits auch mit symbolischen Namen versehen werden, sodaß der bedingte Sprung dann auch die Form JB ÜBERLAST,FEHLER haben könnte. Das Bit mit der physikalischen Adresse 8 hat aus Gründen der leichteren Lesbarkeit eines Programms den symbolischen Namen ÜBERLAST bekommen. Der Bereich von 30H bis 7FH ist ein allgemein nutzbarer Speicherbereich, in dem beim 8751 auch noch der Kellerspeicher (Stack) untergebracht werden muß. Der Stack wird vom 8-Bit-Stackpointer verwaltet und kann im gesamten internen Daten-RAM plaziert werden. Der Stackpointer zeigt jeweils auf den letzten vom Prozessor bei Stackoperationen beschriebenen Speicherplatz. Eine Plazierung des Stacks im externen Daten-RAM ist nicht möglich. Abb zeigt die Aufteilung der unteren 128 Byte des internen RAM-Speichers. Er ist sowohl direkt als auch über die Register R0 und R1 indirekt adressierbar. 3-5

6 7FH 30H 7F 7E 7D 7C 7B 7A FH EH 6F 67 5F 57 4F 47 3F 37 2F 27 1F 17 0F 07 6E 6D 6C 6B 6A DH CH 5E 5D 5C 5B 5A BH AH 4E 4D 4C 4B 4A H H 3E 3D 3C 3B 3A H H 2E 2D 2C 2B 2A H E 1D 1C 1B 1A H 23H 22H 0E 0D 0C 0B 0A H H RB 3 1FH 18H 17H RB 2 10H 0FH RB 1 08H R7 R6 R5 R4 R3 R2 R1 R0 RB 0 07H 06H 05H 04H 03H 02H 01H 00H Abb Aufteilung der unteren 128 Byte des internen RAM Im Adressbereich 80H bis FFH des internen RAM liegen nach Abb zwei Speicher parallel, die oberen 128 Byte des internen Daten-RAM und der Bereich der Special-Function-Register (SFR). Die Eindeutigkeit ihrer Adressierung wird durch unterschiedliche Adressierungsarten, mit denen diese Bereiche angesprochen werden, erreicht. Die oberen 128 Byte Datenspeicher, die nicht im 8051, aber in fast allen Nachfolgetypen vorhanden sind, sind nur über registerindirekte Adressierung über die Register R0 und R1 ansprechbar. In Assemblerschreibweise wird registerindirekte Adressierung mit dem Zeichen '@' kenntlich gemacht. Um einen Speicherplatz in den oberen 128 Byte ansprechen zu können, muß also zuerst seine Adresse entweder in das Register R0 oder R1 geladen werden (nur diese beiden Register sind für registerindirekte Adressierung zugelassen) und dann ein registerindirekter Zugriff erfolgen. Beispiel: Lesen des Inhaltes des Speicherplatzes des internen Daten-RAM mit der Adresse 80H: MOV R0,#80H ; Adresse in Zeigerregister laden MOV A,@R0 ; Inhalt in Accu bringen Diese Art der Adressierung ist etwas umständlicher und langsamer als die direkte Adressierung in den unteren 128 Byte des internen RAM. Man wird deshalb bestrebt sein, häufig benutzte Variable im direkt adressierbaren RAM und weniger häufig benutzte Variable im indirekt adressierbaren RAM, sofern vorhanden, abzuspeichern. Ist der RAM-Bereich ab 80H vorhanden, sollte in ihm auch der Stack angelegt werden, denn der 8-Bit Stackpointer kann das gesamte interne RAM verwalten. 3-6

7 Der parallel zum Daten-RAM liegende Special-Function-Register-Bereich ist nur durch direkte Adressierung erreichbar. Will man z.b. den Speicherplatz 80H des SFR-Bereiches lesen, so erfolgt dies durch direkte Angabe der Adresse im Befehl: MOV A,80H ;Inhalt des Speicherplatzes 80H --> ACCU Abb zeigt den SFR-Bereich des 8051 mit den dort vorhandenen 21 Special-Function-Registern. B *) F0H ACC *) E0H PSW *) D0H IP *) B8H P3 *) B0H IE *) A8H P2 *) A0H SBUF SCON *) 99H 98H P1 *) 90H TH1 TH0 TL1 TL0 TMOD TCON *) PCON 8DH 8CH 8BH 8AH 89H 88H 87H DPH DPL SP P0 *) 83H 82H 81H 80H *) bitadressierbar Abb Special-Function-Register des 8051 Relativ einfache SFR sind die 8-Bit-Ports P0 bis P3. Durch eine geschickt gewählte Hardwarestruktur sind sie ohne zusätzliche Programmierung sowohl als Eingabe- als auch als Ausgabeports nutzbar. Die Ein/Ausgabe über Parallelports beschränkt sich damit auf das direkte Lesen und Schreiben der entsprechenden Special-Function- Register. Die serielle Schnittstelle und die Timer benötigen zusätzlich zu den Datenregistern weitere Register zur Steuerung, zur Einstellung der Betriebsart und zur Anzeige des Status. Auch diese Register sind im SFR-Bereich angesiedelt. Beispielhaft sei hier der Zähler/Zeitgeber 0 beschrieben. Die Funktionsweise und die Programmierung anderer Funktionsblöcke muß dem Datenbuch entnommen werden. Der Zähler/Zeitgeber 0 besteht aus den beiden kaskadierbaren 8-Bit-Zählern TH0 (obere 8 Bit) und TL0 (untere 8 Bit). Die Zähler können in verschiedenen Betriebsarten betrieben werden. Festgelegt wird die Betriebsart durch 4 Bits des SFR TMOD. Die Steuerung des Zählers und die Anzeige des Status erfolgt über Bits im Steuer/Status- Register TCON. 3-7

8 Osz. 12 GateC/T M1 M0 Betriebsartenregiste r TMOD TH0, TL0 ext. Anschluß T0 1 > 1 ext. Gate-Anschl. & Steuer/Statusregiste TR1TF1TR0TF0 r TCON Abb Struktur des Zählers/Zeitgebers 0 Über die Bits M1 und M0 von TMOD wird die Betriebsart des Zählerblocks T0 festgelegt. M1=0 M0=0: 8-Bit-Zähler/Zeitgeber mit Vorteiler M1=0 M0=1: 16-Bit Zähler/Zeitgeber M1=1 M0=0: 8-Bit Zähler/Zeitgeber mit automatischer Rückladung. TH0 enthält den Wert, der nach Überlauf von TL0 geladen wird. M1=1 M0=1: TL0 ist 8-Bit Zähler/Zeitgeber, TH0 ist 8-Bit-Zeitgeber. Das Bit C/T im SFR TMOD legt fest, ob T0 als Zeitgeber (C/T=0) oder als Zähler (C/T=1) betrieben werden soll, während über Gate die am externen Anschluß für T0 anliegenden Zählimpulse freigegeben bzw. gesperrt werden können. Das Bit Gate ermöglicht die Steuerung des Zählers/Zeitgebers durch eine Torschaltung. Wenn Gate=1 ist, wird der Zähler/Zeitgeber nur dann aktiviert, wenn am externen Gateanschluß ein High-Pegel anliegt und das Bit TR0 gesetzt ist. Durch Setzen bzw. Rücksetzen dieser vier Bits läßt sich die Funktionsweise des Zählers/ Zeitgebers in weiten Grenzen softwaremäßig einstellen. Über das Steuer/Statusregister TCON kann T0 softwaremäßig über das Bit TR0 insgesamt gesperrt bzw. freigegeben werden. In TF0 wird ein Überlauf des Zählers T0 angezeigt. Diese kurze Darstellung des Zählers/Zeitgebers T0 soll nur zu einem ersten Überblick über die Arbeitsweise des Special Function Register dienen. Für eine Programmierung sollte auf jeden Fall das Datenbuch herangezogen werden. Abb zeigt noch einmal alle durch Programmierung erreichbaren RAM-Speicherplätze des

9 Abb Programmiermodell des

10 3.2 Befehlssatz und Adressierungsarten des 8051 Die unter 2.2. allgemein betrachteten Befehlstypen sollen an dieser Stelle für den 8051 genauer besprochen werden. Eine ausführliche Beschreibung jedes einzelnen Befehls findet man in den entsprechenden Datenbüchern und im Anhang. Für die Schreibweise von Befehlen mit zwei Operanden gilt in der 8051-Assemblersyntax, daß der erste Operand das Ziel und der zweite Operand die Quelle für die auszuführende Operation darstellt. So bedeutet der Befehl MOV A,B zum Beispiel, daß der Inhalt des B-Registers in den Accumulator gebracht werden soll. 1. Transportbefehle Betrachtet man das Programmiermodell für den 8051 in Abb. 3.8., so ergeben sich für den Datenfluß die folgenden, sinnvollen Datentransportbefehlstypen: a. Register <--> Register Der Befehlssatz kennt für die Registeradressierung die Register R0, R1,... R7 der ausgewählten Registerbank, den Accumulator A, das Register B und den 16-Bit-Datapointer DPTR, der aus den beiden 8-Bit-Registern DPH (obere 8 Bit) und DPL (untere 8 Bit) besteht. Beispiele: MOV R0,A ;Inhalt von A nach R0 bringen MOV A,R7 ;Inhalt von R7 nach A bringen XCH A,R1 ;Inhalte von A und R1 vertauschen b. Register <--> Speicher Entsprechend dem Speichermodell des 8051 muß zwischen internem direkt adressierbaren Speicher (0.. 7FH), internem registerindirekt adressierbarem Speicher (0.. FFH), externem RAM-Speicher (0.. FFFFH) und Programmspeicher (0.. FFFFH) unterschieden werden. Am flexibelsten ist der Datentransport zwischen internem RAM-Speicher und Registern durchführbar. Dagegen kann ein Datenaustausch mit externen Speichern grundsätzlich nur über den Accumulator erfolgen. Befehle für Datentransfer zwischen Registern und internem RAM-Speicher haben die Form MOV und XCH, beim Transfer vom und zum externen RAM-Speicher werden Befehle der Form MOVX (X für externes RAM) und beim Transfer vom Programmspeicher wird ein Befehl der Form MOVC (C für Codespeicher) benutzt. Beispiele: MOV A,40H ;Inhalt des internen Speicherplatzes 40H ;in den Accu bringen XCH A,40H ;Inhalt des Accus in den durch R0 ;adressierten Speicherplatz im ;internen RAM bringen ;Inhalt des Speicherplatzes 40H mit Accu ;vertauschen MOVX A,@R0 MOVC A,@A+DPTR ;Inhalt des über R0 adressierten externen ;RAM in den Accu bringen ;Inhalt des Speicherplatzes, dessen ;Adresse die Summe des Accus und des ;Datapointers ist, in den Accu bringen 3-10

11 c. Register <--> Ein/Ausgabe Die Ein/Ausgabe erfolgt beim 8051 grundsätzlich über Special-Function-Register, die die Verbindung zur Außenwelt darstellen. Für die Parallel-Ein/Ausgabe sind dies die 8-Bit-Ports P0 bis P3 und für die serielle Ein/Ausgabe das SFR SBUF. Beispiele: MOV P3,A ;Den im Accu stehenden Wert über Port 3 ;ausgeben MOV SBUF,R3 ;Inhalt von R3 seriell über SBUF ausgeben d. Speicher <--> Ein/Ausgabe Es ist möglich, den Inhalt von Speicherplätzen direkt auszugeben bzw. extern anliegende Informationen direkt nach internen Speicherplätzen zu bringen. Beispiele: MOV P3,40H ;Inhalt des internen Speicherplatzes 40H ;über Port 3 ausgeben ;Port 0 einlesen und unter dem internen ;Speicherplatz abspeichern, dessen Adresse ;in R0 steht e. Bit <--> Bit Der Befehlssatz des 8051 läßt die Einzelbitverarbeitung zu. Als Boolscher Accumulator dient dabei das Carry-Bit. Im 8051 sind max. 256 Bit direkt adressierbar, davon befinden sich die Bits mit den Adressen 0 bis 7FH im Bereich 20H bis 2FH des internen RAM's. Des weiteren sind Bits von verschiedenen Special-Function-Registern direkt adressierbar. Beispiele: MOV C,3 ;Bringe das direkt adressierte Bit 3 in das ;Carry-Bit MOV 20.2,C ;wie vorhergehender Befehl, Bitadresse aber über ;Position des Bits innerhalb des Bytes angegeben ;(Bit 2 des internen Speicherplatzes 20H) MOV C,P3.4 ;Die an Port 3 Bit 4 anliegende Information ;ins Carry lesen 2. Arithmetische und logische Befehle a. Addition, Subtraktion, Inkrement und Dekrement Alle im 8051 implementierten arithmetischen Befehle beziehen sich auf 8-Bit-Operanden. Das Ergebnis von Addition und Subtraktion steht grundsätzlich im Accumulator. Die Addition kann mit oder ohne Berücksichtigung des Carry-Bits durchgeführt werden, während bei der Subtraktion grundsätzlich das "Borrow"-Bit ("Borrow" entspricht dem "Borge"-Bit; es ist identisch mit dem Carry-Bit des Flag-Registers PSW) berücksichtigt wird. Soll eine Subtraktion ohne Berücksichtigung des "Borrow's" durchgeführt werden, muß das Carry-Bit zuvor gelöscht werden (CLR C). Beispiele: ADD A,B ;Inhalt des B-Registers zum Inhalt des ;Accus addieren, Ergebnis in A ADDC A,40H ;Inhalt des Speicherplatzes 40H zum ;Accu addieren SUBB A,#30H ;Die Konstante 30H vom Accu unter ;Berücksichtigung des Borrow's abziehen Inkrement und Decrement sind Sonderfälle der Additions- und Subtraktionsbefehle. Beim Inkrementbefehl wird der Operand um Eins erhöht, beim Dekrementbefehl um Eins erniedrigt. Im Gegensatz zu den Additions- und Subtraktionsbefehlen werden von den Inkrement- und Dekrementbefehlen keine Flags im PSW beeinflußt. 3-11

12 b. Multiplikation, Division Im 8051-Befehlssatz ist eine 8-Bit-Multiplikation und Division implementiert. Bei der Multiplikation und Division werden vorzeichenlose 8-Bit-Inhalte von Accumulator und B-Register miteinander multipliziert bzw. dividiert. Im Accumulator stehen nach Ausführung des Befehls die niederwertigen 8 Bit des Ergebnisses, das B-Register enthält die höherwertigen 8 Bit. Die Division ist ebenfalls eine vorzeichenlose, ganzzahlige 8-Bit-Division, bei der der Dividend im Accumulator und der Divisor im B-Register übergeben werden muß. Der ganzzahlige Teil des Ergebnisses steht im Accumulator, der Teilungsrest im B-Register. Beispiele: MOV A,#5 ;Konstanten Wert 5 in Accu MOV B,#3 ;Konstanten Wert 3 in B-Register MUL AB ;Multiplikation, Ergebnis in Accu und ;B-Register c. Logische Funktionen Operanden von logischen Funktionen können entweder 1 Bit oder 8 Bit lang sein. Logische Operationen auf 8-Bit-Operanden werden für jede Stelle einzeln durchgeführt. Als byteweise logische Operationen sind zugelassen: UND-, ODER-, Exclusiv-ODER-, Komplement- und Schiebebefehle. Das Ergebnis der logische Verknüpfung steht jeweils im Accumulator. Beispiele: ANL A,#0FH ;Inhalt des Accu's mit der Konstanten 0FH ;logisch UND verknüpfen ORL A,B ;Inhalte von A und B logisch ;ODER verknüpfen Folgende Bitoperationen mit Booleschen Variablen sind möglich: Löschen eines Bits (CLR ), Setzen eines Bits (SETB), Komplementieren (CPL), UND- und ODER-Verknüpfung eines Bits mit dem Carry-Bit. 3. Sprungbefehle Beispiele: SETB 3 ;Das direkt adressierbare Bit 3 setzen und ANL C,3 ;mit dem Carry-Bit UND verknüpfen ORL C,P3.1 ;Das Carry-Bit mit dem am zweiten Bit ;von Parallelport 3 anliegenden Signal ; ODER verknüpfen a. Unbedingte Sprünge Es gibt drei verschiedene Befehle für unbedingte Sprünge, die sich jeweils in der Darstellung des Sprungziels unterscheiden. Liegt das Sprungziel innerhalb der ersten 2 K-Byte des Programmspeichers, ist es mit dem AJMP-Befehl (Befehlslänge 2 Byte, Adresse absolut in 11 Bit dargestellt) erreichbar. Ist das Sprungziel nicht weiter als vom augenblicklichen Stand des Programmzählers entfernt, kann der SJMP-Befehl (Befehlslänge 2 Byte, Sprungadresse berechnet sich aus dem augenblicklichen Stand des Befehlszählers und einem im 2-Komplement angegebenen 8-Bit-Offset) im gesamten Programmspeicherbereich benutzt werden. Ist das Sprungziel außerhalb der untersten 2 K-Byte des Programmspeichers und die Sprungweite nicht in einer 8-Bit 2-Komplementzahl darstellbar, ist der LJMP-Befehl (3 Byte Länge, Sprungziel wird in 2 Byte absolut angegeben) zu benutzen. Leistungsfähige Assembler legen automatisch den jeweils benötigten Sprungbefehl fest, wenn vom Programmierer ein JMP-Befehl eingegeben wird. 3-12

13 b. Bedingte Sprünge Bei bedingten Sprüngen wird das Sprungziel immer relativ zum augenblicklichen Stand des Befehlszählers in einer 8-Bit 2-Komplementzahl angegeben. Bedingungen, auf die verzweigt werden kann, sind: - JZ, JNZ Sprung, wenn der Inhalt des Accus Null bzw. ungleich Null ist (Jump on Zero bzw. Jump on No Zero). Es wird kein Flag ausgewertet, sondern vielmehr direkt der Inhalt des Accus geprüft. - JC, JNC Sprung in Abhängigkeit des Carry-Flags (Jump on Carry bzw. Jump on No Carry) - JB, JNB Sprung in Abhängigkeit eines direkt adressierbaren Bits (Jump on Bit bzw. Jump on No Bit) - CJNE Vergleich zweier Operanden und Sprung, wenn diese ungleich sind (Compare and Jump if Not Equal). Es sind nur wenige Operandentypen zugelassen. - DJNZ Dekrementieren eines Schleifenzählers und Sprung, solange dieser noch nicht Null ist (Decrement and Jump if Not Zero) Ist die Sprungbedingung nicht erfüllt, wird jeweils die auf den bedingten Sprung folgende Instruktion ausgeführt. c. Unbedingte Unterprogrammaufrufe Es gibt zwei verschiedene Befehle für unbedingte Unterprogrammaufrufe, die sich jeweils in der Darstellung der Startadresse des Unterprogramms unterscheiden. Liegt die Startadresse innerhalb der ersten 2 K-Byte des Programmspeichers, ist es mit dem ACALL-Befehl (Befehlslänge 2 K-Byte, 11 Bit Adresse) aufrufbar. Mit dem LCALL-Befehl (3 Byte Länge, 16 Bit Adresse ) kann jedes Unterprogramm an beliebiger Stelle im Programmspeicher aufgerufen werden. d. Beendigung von Unterprogrammen Unterprogramme müssen mit dem Befehl RET abgeschlossen werden. Es wird, sofern der Stack im Unterprogramm fehlerfrei verwaltet wurde, an die Adresse zurückgesprungen, an der der nächste Befehl steht, der auf den gerade ausgeführten Unterprogrammaufruf folgt. 3-13

14 Adressierungsarten des 8051 Der 8051 kennt fünf verschiedene Adressierungsarten. 1. Registeradressierung Über Registeradressierung kann auf die 8 Register (R0... R7) der eingeschalteten Registerbank zugegriffen werden. Weiterhin sind der Accumulator ACC, das B-Register und der Datenpointer DPTR als Register ansprechbar z.b. MOV A,R3 2. Direkte Adressierung Hier wird die Adresse eines Speicherplatzes des internen RAMs angegeben. Die Special-Function- Register (obere 128 Byte des internen RAMs) sind nur über diese Adressierungsart erreichbar. Auch die unteren 128 Byte des internen RAMs sind direkt adressierbar z.b. MOV 40H,#77H (in den internen Speicherplatz 40H wird der konstante Wert 77H geladen) 3. Registerindirekte Adressierung Registerindirekte Adressierung ist nur über R0 und R1 (erreichbar: die unteren 256 Byte des internen und des externen RAMs) sowie über den Datapointer DPTR (erreichbar: gesamter adressierbarer Bereich des externen Datenspeichers) möglich. Special-Functin-Register können nicht über registerindirekte Adressierung angesprochen werden. Kennzeichen für registerindirekte z.b. MOV A,@R0 (der Inhalt des Speicherplatzes, auf den R0 zeigt, wird in den Accu gebracht). 4. Unmittelbare (immediate) Adressierung Hiermit können Konstanten als Teile von Befehlen direkt angegeben werden. Kennzeichen für direkte Adressierung: # z.b. MOV A,#77H. 5. Adressierung über Basis- plus Indexregister Nur über diese Adressierungsart kann auf den Programmspeicher zugegriffen weden. Indexregister ist grundsätzlich der Accumulator, Basisregister können der Datapointer DPTR oder der Programmzähler PC sein. Beispiel MOVC A,A+@DPTR 3-14

15 Arithmetische Operationen ADD A,Rr ADD A,direct ADD ADD A,#data ADDC A,Rr ADDC A,direct ADDC ADDC A,#data SUBB A,Ri SUBB A,direct SUBB SUBB A,#data INC A INC Rr INC direct INC DPTR DEC A DEC Rr DEC direct MUL AB DIV AB DA A Addiere Register r zum Addiere direktes Byte zum Addiere indirekt aus RAM zum Addiere unmittelbare Daten zum Addiere Register r und Übertrag zum Addiere direktes Byte und Übertrag zum Addiere indirekt aus RAM sowie Übertrag zum Addiere unmittelbare Daten und Übertrag zum Subtrahiere Register r und Übertrag vom Subtrahiere direktes Byte und Übertrag vom Subtrahiere indirekt aus RAM sowie Übertrag vom Subtrahiere unmittelbare Daten und Übertrag vom Inkrementiere Inkrementiere Register r Inkrementiere direktes Byte Inkrementiere indirekt RAM-Byte Inkrementiere Datenzeiger Dekrementiere Dekrementiere Register r Dekrementiere direktes Byte Dekrementiere indirekt RAM-Byte Multipliziere mit Register B Dividiere durch Register B Dezimalkorrektur des s bei Addition 3-15

16 Logische Operationen ANL A,Rr Verknüpfe Register r durch logisches UND zum ANL A,direct Verknüpfe direktes Byte durch logisches UND zum ANL A,@Ri Verknüpfe indirekt aus RAM durch logisches UND zum ANL A,#data Verknüpfe unmittelbare Daten durch logisches UND zum ANL direct,a Verknüpfe durch logisches UND zu direktem Byte ANL direct,#data Verknüpfe unmittelbare Daten durch durch logisches UND zu direktem Byte ORL A,Rr ORL A,direct ORL A,@Ri ORL A,#data ORL direct,a ORL direct,#data XRL A,Ri XRL A,direct XRL A,@Ri XRL A,#data XRL direct,a XRL direct,#data CLR A CPL A RL A RLC A RR A RRC A SWAP A Verknüpfe Register r durch logisches ODER zum Verknüpfe direktes Byte durch logisches ODER zum Verknüpfe indirekt aus RAM durch logisches ODER zum Verknüpfe unmittelbare Daten durch logisches ODER zum Verknüpfe durch logisches ODER zu direktem Byte Verknüpfe unmittelbare Daten durch logisches ODER zu direktem Byte Verknüpfe Register r durch logisches Exklusiv-ODER Verknüpfe direktes Byte durch logisches Exklusiv-ODER zum Verknüpfe indirekt aus RAM durch logisches Exclusiv-ODER zum Verknüpfe unmittelbare Daten durch logisches Exklusiv-ODER zum Verknüpfe durch logisches Exclusiv-ODER zu direktem Byte Verknüpfe unmittelbare Daten durch logisches Exclusiv-ODER zu direktem Byte Lösche Komplementiere Schiebe Akkunmulator nach links rund Schiebe nach links durch Übertragsbit rund Schiebe nach rechts rund Schiebe nach rechts durch Übertragsbit rund Vertausche Halbbytes im 3-16

17 Datentransport-Befehle MOV A,Rr MOV A,direct MOV MOV A,#data MOV Rr,A MOV Rr,direct MOV Rr,#data MOV direct,a MOV direct,rr MOV direct,direct MOV MOV direct,#data MOV DPTR,#data16 MOVC MOVC MOVX MOVX PUSH direct POP direct XCH A,Rr XCH A,direct XCH XCHD Transportiere Register r zum Transportiere direktes Byte zum Transportiere indirekt aus RAM zum Transportiere unmittelbare Daten zum Transportiere zum Register r Transportiere direktes Byte zu Register r Transportiere umittelbare Daten zu register r Transportiere zu direktem Byte Transportiere Register r zu direktem Byte Transportiere direktes Byte zu direktem Byte Transportiere indirekt aus RAM zu direktem Byte Transportiere unmittelbare Daten zu direktem Byte Transportiere indirekt zum RAM Transportiere direktes Byte indirekt zum RAM Transportiere unmittelbare Daten indirekt zum RAM Lade Datenzeiger mit einer 16bit-Konstante Transportiere Programmbyte relativ zu DPTR zum Transportiere Programmbyte relativ zu PC zum Transportiere indirekt vom externen RAM (8bit-Adresse) zum Akumulator Transportiere indirekt vom externen RAM (16bit-Adresse) zum Transportiere indirekt zu externem RAM (8bit- Adresse) Transportiere indirekt zu externem RAM (16bit- Adresse) Bringe direktes Byte in den Stack Bringe direktes Byte aus dem Stack Vertausche Register r mit Vertausche direktes Byte mit Vertausche indirekt aus RAM mit Vertausche unteres Halbbyte indirekt aus RAM mit unterem Halbbyte des s 3-17

18 Bitoperationen CLR C CLR bit SETB C SETB bit CPL C CPL bit ANL C,bit ANL C,/bit ORL C,bit ORL C,/bit MOV C,bit MOV bit,c JC rel JNC rel JB bit,rel JNB bit,rel JBC bit,rel Lösche Übertragsbit Lösche direktes Bit Setze Übertragsbit Setze direktes Bit Komplementiere Übertragsbit Komplementiere direktes Bit Verknüpfe direktes Bit durch logisches UND zum Übertragsbit Verknüpfe Komplement des direkten Bits durch logisches UND zum Übertragsbit Verknpüpfe direktes Bit durch logisches ODER zum Übertragsbit Verknüpfe Komplement des direkten Bits durch logisches ODER zum Übertragsbit Transportiere direktes Bit zum Übertragsbit Transportiere Übertragsbit zu direktem Bit Springe, wenn Übertragsbit gesetzt ist Springe wenn Übertragsbit nicht gesetzt ist Springe, wenn direktes Bit gesetzt ist Springe, wenn direktes Bit nicht gesetzt ist Springe, wenn direktes Bit gesetzt ist und lösche das Bit 3-18

19 Programmverzweigungen ACALL addr11 LCALL addr16 Unbedingter Aufruf einer Subroutine innerhalb 2KBytes im Programmspeicher Unbedingter Aufruf einer Subroutine innerhalb des 64KByte- Programmspeichers RET RETI Rücksprung von Subroutine Rücksprung von Interrupt AJMP addr11 LJMP addr16 SJMP rel JZ rel JNZ rel CJNE A,direct,rel CJNE A,#data,rel CJNE Rr,#data,rel Unbedingter Sprung innerhalb 2KBytes im Programmspeicher Unbedingter Sprung innerhalb des 64KByte-Programmspeicher Unbedingter Sprung innerhalb im Programmspeicher Springe indirekt relativ zu DPTR Springe, wenn Null ist Springe, wenn nicht Null ist Vergleiche direktes Byte mit und springe, wenn sie ungleich sind Vergleiche unmittelbare Daten mit und springe, wenn sie ungleich sind Vergleiche unmittelbare Daten mit Register r und springe, wenn sie ungleich sind Vergleiche unmittelbare mit indirekten Daten und springe, wenn sie ungleich sind DJNZ Rr,rel DJNZ direct,rel NOP Dekrementiere Register r und springe, wenn es ungleich Null ist Dekrementiere direktes Byte und springe, wenn es ungleich Null ist Keine Operation 3-19

20 Alphabetische Auflistung des Befehlsvorrates ACALL addr11 Unbedingter Aufruf einer Subroutine innerhalb 2KBytes im Programmspeicher ADD A,#data Addiere unmittelbare Daten zum ADD Addiere indirekt aus RAM zum ADD A,direct Addiere direktes Byte zum ADD A,Rr Addiere Register r zum ADDC A,#data Addiere unmittelbare Daten und Übertrag zum ADDC A,@Ri Addiere indirekt aus RAM sowie Übertrag zum ADDC A,direct Addiere direktes Byte und Übertrag zum ADDC A,Rr Addiere Register r und Übertrag zum AJMP addr11 Unbedingter Sprung innerhalb 2KBytes im Programmspeicher ANL A,#data Verknüpfe unmittelbare Daten durch logisches UND zum ANL A,@Ri Verknüpfe indirekt aus RAM durch logisches UND zum ANL A,direkt Verknüpfe direktes Byte durch logisches UND zum ANL A,Rr Verknüpfe Register r durch logisches UND zum ANL C,/bit Verknüpfe Komplement des direkten Bits durch logisches UND zum Übertragsbit ANL C,bit Verknüpfe direktes Bit durch logisches UND zum Übertragsbit ANL direct,#data Verknüpfe unmittelbare Daten durch durch logisches UND zu direktem Byte ANL direct,a Verknüpfe durch logisches UND zu direktem Byte Vergleiche unmittelbare mit indirekten Daten und springe, wenn sie ungleich sind CJNE A,#data,rel Vergleiche unmittelbare Daten mit und springe, wenn sie ungleich sind CJNE A,direct,rel Vergleiche direktes Byte mit und springe, wenn sie ungleich sind CJNE Rr,#data,rel Vergleiche unmittelbare Daten mit Register r und springe, wenn sie ungleich sind CLR A Lösche CLR bit Lösche direktes Bit CLR C Lösche Übertragsbit CPL A Komplementiere CPL bit Komplementiere direktes Bit CPL C Komplementiere Übertragsbit DA A Dezimalkorrektur des s bei Addition Dekrementiere indirekt RAM-Byte DEC A Dekrementiere DEC direct Dekrementiere direktes Byte DEC Rr Dekrementiere Register r DIV AB Dividiere durch Register B 3-20

21 DJNZ direct,rel DJNZ Rr,rel INC A INC direct INC DPTR INC Rr JB bit,rel JBC bit,rel JC rel JNB bit,rel JNC rel JNZ rel JZ rel LCALL addr16 LJMP addr16 MOV A,#data MOV A,@Ri MOV A,direct MOV A,Rr MOV bit,c MOV C,bit MOV direct,#data MOV direct,rr MOV direct,@ri MOV direct,a MOV direct,direct MOV DPTR,#data16 MOV Rr,#data MOV Rr,A MOV Rr,direct MOVC A,@A+DPTR MOVC A,@A+PC MOVX A,@DPTR Dekrementiere direktes Byte und springe, wenn ungleich Null Dekrementiere Register r und springe, wenn es ungleich Null ist Inkrementiere indirekt RAM-Byte Inkrementiere Inkrementiere direktes Byte Inkrementiere Datenzeiger Inkrementiere Register r Springe, wenn direktes Bit gesetzt ist Springe, wenn direktes Bit gesetzt ist und lösche das Bit Springe, wenn Übertragsbit gesetzt ist Springe indirekt relativ zu DPTR Springe, wenn direktes Bit nicht gesetzt ist Springe wenn Übertragsbit nicht gesetzt ist Springe, wenn nicht Null ist Springe, wenn Null ist Unbedingter Aufruf einer Subroutine innerhalb des 64KByte- Programmspeichers Unbedingter Sprung innerhalb des 64KByte-Programmspeicher Transportiere unmittelbare Daten indirekt zum RAM Transportiere indirekt zum RAM Transportiere direktes Byte indirekt zum RAM Transportiere unmittelbare Daten zum Transportiere indirekt aus RAM zum Transportiere direktes Byte zum Transportiere Register r zum Transportiere Übertragsbit zu direktem Bit Transportiere direktes Bit zum Übertragsbit Transportiere unmittelbare Daten zu direktem Byte Transportiere Register r zu direktem Byte Transportiere indirekt aus RAM zu direktem Byte Transportiere zu direktem Byte Transportiere direktes Byte zu direktem Byte Lade Datenzeiger mit einer 16bit-Konstante Transportiere umittelbare Daten zu register r Transportiere zum Register r Transportiere direktes Byte zu Register r Transportiere Programmbyte relativ zu DPTR zum Transportiere Programmbyte relativ zu PC zum Transportiere indirekt zu externem RAM (16bit- Adresse) Transportiere indirekt zu externem RAM (8bit- Adresse) Transportiere indirekt vom externen RAM (16bit-Adresse) zum 3-21

22 MOVX MUL AB NOP ORL A,#data ORL ORL A,direct ORL A,Rr ORL C,/bit ORL C,bit ORL direct,#data ORL direct,a POP direct PUSH direct RET RETI RL A RLC A RR A RRC A SETB bit SETB C SJMP rel SUBB A,#data SUBB A,@Ri SUBB A,direct SUBB A,Ri SWAP A XCH A,@Ri XCH A,direct XCH A,Rr XCHD A,@Ri XRL A,#data Transportiere indirekt vom externen RAM (8bit-Adresse) zum Akumulator Multipliziere mit Register B Keine Operation Verknüpfe unmittelbare Daten durch logisches ODER zum Verknüpfe indirekt aus RAM durch logisches ODER zum Verknüpfe direktes Byte durch logisches ODER zum Verknüpfe Register r durch logisches ODER zum Verknüpfe Komplement des direkten Bits durch logisches ODER zum Übertragsbit Verknpüpfe direktes Bit durch logisches ODER zum Übertragsbit Verknüpfe unmittelbare Daten durch logisches ODER zu direktem Byte Verknüpfe durch logisches ODER zu direktem Byte Bringe direktes Byte aus dem Stack Bringe direktes Byte in den Stack Rücksprung von Subroutine Rücksprung von Interrupt Rotiere Akkunmulator nach links rund Rotiere nach links durch Übertragsbit rund Rotiere nach rechts rund Rotiere nach rechts durch Übertragsbit rund Setze direktes Bit Setze Übertragsbit Unbedingter Sprung innerhalb im Programmspeicher Subtrahiere unmittelbare Daten und Übertrag vom Subtrahiere indirekt aus RAM sowie Übertrag vom Subtrahiere direktes Byte und Übertrag vom Subtrahiere Register r und Übertrag vom Vertausche Halbbytes im Vertausche indirekt aus RAM mit Vertausche direktes Byte mit Vertausche Register r mit Vertausche unteres Halbbyte indirekt aus RAM mit unterem Halbbyte des s Verknüpfe unmittelbare Daten durch logisches Exklusiv-ODER zum 3-22

23 XRL XRL A,direct XRL A,Ri XRL direct,#data XRL direct,a Verknüpfe indirekt aus RAM durch logisches Exclusiv-ODER zum Verknüpfe direktes Byte durch logisches Exklusiv-ODER zum Verknüpfe Register r durch logisches Exklusiv-ODER Verknüpfe unmittelbare Daten durch logisches Exclusiv-ODER zu direktem Byte Verknüpfe durch logisches Exclusiv-ODER zu direktem Byte Abkürzungserklärung: A : addr11 : 11-Bit Zieladresse. Wird von ACALL und AJMP verwendet. Es ist hierbei eine Verzweigung innerhalb 2KByte des Programmspeichers, angefangen vom ersten Byte des folgenden Befehls, möglich. addr16 : 16-Bit Zieladresse. Wird von LCALL und LJMP verwendet. Eine Verzweigung kann überall innerhalb des 64KByte Programmspeichers erfolgen. B : Register B (für Multiplikation und Division) bit : Direkt adressiertes Bit im internen RAM oder Special-Function-Register (SFR). #data : #data16: 8-Bit Konstante. Direkte Daten-/Wertangabe. 16- Bit Konstante. Direkte Daten-/Wertangabe. direkt : 8-Bit Adresse des internen RAM (0..127) oder des SFR ( ). Direkte Adressierung. rel : Relative 8-Bit Sprung-Adresse. Der Bereich geht von -128 bis +127 Bytes bezogen auf das erste Byte des folgenden : Indirekte Adressierung des internen RAM (0..255) oder eines 256 Byte großen Gebiets innerhalb des externen Datenspeichers. Die indirekte Adressierung erfolgt mittels R0 und R1 (in der aktuellen Registerbank) Rr : Register 0 bis 7 der selektierten Registerbank. 3-23

24 3-24

25 Zustandsbits (Flags): Folgende Befehle beeinflussen bei ihrer Ausführung die angegebenen Zustandsbits. Die Flags bleiben solange in ihrem Zustand, bis sie durch einen weiteren, diese Flags beeinflussenden Befehl neu gesetzt bzw. rückgesetzt werden. Alle Datentransportbefehle bis auf die Befehle MOV C,bit und MOV bit,c mit 208<bit<216 sowie MOV PSW,Operand verändern grundsätzlich keine Flags. Das Statusregister enthält kein Zero-Flag. die Z-Bedingung wird durch Auswertung des Inhalts des Accus bestimmt. 3-25

MOP: Befehlsliste für den Mikrocontroller 8051

MOP: Befehlsliste für den Mikrocontroller 8051 Beuth Hochschule Berlin FB VI, Labor für Digitaltechnik MOP: Befehlsliste für den Mikrocontroller 8051 Erläuterung der Operanden Operand A addr11 addr16 bit /bit C #data #data16 direct DPTR PC Ri Rn rel

Mehr

Befehlssatz der Mikrocontroller der 51er -Familie

Befehlssatz der Mikrocontroller der 51er -Familie Befehlssatz der Mikrocontroller der 51er -Familie Abkürzungen: Mikrocontrollerfamilie 8051 Befehlssatz A : Akkumulator Rn : Register R0..R7 Ri : R0 oder R1 dadr : direkte Byte-Adresse im int. Speicher

Mehr

Befehlssatz der Mikrocontroller der 51er -Familie

Befehlssatz der Mikrocontroller der 51er -Familie Befehlssatz der Mikrocontroller der 51er -Familie Abkürzungen: Mikrocontrollerfamilie 8051 Befehlssatz A : Akkumulator Rn : Register R0..R7 Ri : R0 oder R1 dadr : direkte Byte-Adresse im int. Speicher

Mehr

Zusammenfassung der Assemblerbefehle des 8051

Zusammenfassung der Assemblerbefehle des 8051 Zusammenfassung der Assemblerbefehle des 8051 Seite 1 von 5 Befehl Bezeichnung Syntax Wirkung / Beispiel Befehle zum Datentransfer MOV Move MOV [Ziel],[Quelle] MOV P1,P3 Kopiert den Inhalt von P3 nach

Mehr

4 Assembler für die 8051-Controller-Familie

4 Assembler für die 8051-Controller-Familie 4 Assembler für die 8051-Controller-Familie Tabelle 4.1 Wichtige Schreibweisen und Bedeutungen für die Befehle Abkürzung #data data addr Rr @Rr code addr Bedeutung Daten sind in der Instruktion codiert

Mehr

Architektur der Intel 8051 Familie und Grundlegende Programmierung Reto Gurtner 2005

Architektur der Intel 8051 Familie und Grundlegende Programmierung Reto Gurtner 2005 Architektur der Intel 8051 Familie und Grundlegende Programmierung Reto Gurtner 2005 1 1. DIE GESCHICHTE DER 8051-MIKROCONTROLLERFAMILE 4 2. GRUNDLEGENDE HARDWARESTRUKTUR UND FUNKTIONSMODELL 5 2.1 HARDWARESTRUKTUR

Mehr

Praktikum Mikrorechner 4 (Bitmanipulation und Spezialregister)

Praktikum Mikrorechner 4 (Bitmanipulation und Spezialregister) Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal November 5, 2014 1/18 Praktikum Mikrorechner 4 (Bitmanipulation und Spezialregister) Prof. Kemnitz Institut für Informatik, Technische

Mehr

EDT-REFERAT Adressierungsarten

EDT-REFERAT Adressierungsarten EDT-Referat BÜLBÜL Erkan 2ANB 95 /96 Seite 1 EDT-REFERAT Adressierungsarten INHALTSVERZEICHNIS 1.Theoretische Grundlagen 1.0 Einführung 1.1 Programm- & Datenspeicheradressierbereiche 2.Adressierungsarten

Mehr

Komponenten eines Mikrocontrollers

Komponenten eines Mikrocontrollers MC 27.04.2017 Komponenten eines Mikrocontrollers - Zentraleinheit: CPU (Central Processing Unit): 4, 8, 16 oder 32 Bit Datenwortbreite - Arbeitsspeicher: RAM (Random Access Memory = Speicher mit wahlfreiem

Mehr

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 -

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikrocomputertechnik Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikroprozessor-Achritekturen Folie 2 Mikroprozessor-Achritekturen Klassifizierung anhand Wortbreite CPU-Architektur und Busleitungen

Mehr

Hardwareaufbau der Mikrocontroller der 51er -Familie

Hardwareaufbau der Mikrocontroller der 51er -Familie Hardwareaufbau der Mikrocontroller der 51er -Familie Mikrocontroller (51er Familie) Quarz Port Timer A D Serielle Schnittst. CPU ROM RAM Ext. ROM Ext. RAM Programmspeicher (ROM) Datenspeicher (RAM) FFFFh

Mehr

8051-Mikrocontroller-Familie

8051-Mikrocontroller-Familie 8051-Mikrocontroller-Familie 8051-Komponenten und -Eigenschaften Prof. Dr.-Ing. Alfred Rożek MC65-Teil1.doc 1/17 Prof. Dr.-Ing. Alfred Rożek MC65-Teil1.doc 2/17 Prof. Dr.-Ing. Alfred Rożek MC65-Teil1.doc

Mehr

Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c

Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c 1 Transportbefehle 1.1 Verwendung nur Akku und Register (R0, R1,... R7) 1.1.1 Kopieren Sie den Wert aus Register1 nach

Mehr

Praktikum Mikrorechner 3 (Adressierungsarten)

Praktikum Mikrorechner 3 (Adressierungsarten) G. Kemnitz Institut für Informatik, Technische Universität Clausthal November 5, 2014 1/15 Praktikum Mikrorechner 3 (Adressierungsarten) G. Kemnitz Institut für Informatik, Technische Universität Clausthal

Mehr

MikroController der 8051-Familie

MikroController der 8051-Familie i Dipl.-Ing. Roland Dilsch MikroController der 8051-Familie Aufbau, Funktion, Einsatz Vogel Buchverlag Inhaltsverzeichnis Vorwort 5 1 Was ist ein MikrocontroUer? 13 1.1 Aufbau eines Computers 13 1.2 Entstehung

Mehr

05. Assembler-Programmierung. Datenstrukturen des ATMega32. Literatur

05. Assembler-Programmierung. Datenstrukturen des ATMega32. Literatur 0. Assembler-Programmierung Datenstrukturen des ATMega32 Literatur mikrocontroller.net avr-asm-tutorial.net asm Alles über AVR AVR-Assembler-Einführung Assembler AVR-Aufbau, Register, Befehle 2008: ouravr.com/attachment/microschematic/index.swf

Mehr

9. Assembler: Der Prozessor Motorola 68000

9. Assembler: Der Prozessor Motorola 68000 9.1 Architektur des Prozessors M 68000 9.2 Adressierungsarten des M 68000 9-1 9.1 Beschreibung des Prozessors M 68000 Charakteristische Daten des 56 Maschinenbefehle 14 Adressierungsarten Zweiadressmaschine

Mehr

Speicheraufbau des AT89C5131

Speicheraufbau des AT89C5131 Speicheraufbau des AT89C5131 Prinzip: - getrennter Programmspeicher (ROM) und Datenspeicher (RAM) - interner Speicher (auf dem Chip) und externer Speicher (Zusatzbausteine) Das Experimentalsystem hat keinen

Mehr

10. Die Adressierungsarten des MSP 430

10. Die Adressierungsarten des MSP 430 10. Die Adressierungsarten 10.1 Übersicht über die Adressierungsarten 10.2 -Operanden 10.3 Indexregister mit Distanz 10.4 Symbolische (relativ zum ) 10.5 Absolute 10.6 Indirekte 10.7 Indirekte Adressierung

Mehr

LCD-Display am MVUS 80535 (nur einfachste Betriebsweise im Text Display Modus - ausführliche Beschreibung )

LCD-Display am MVUS 80535 (nur einfachste Betriebsweise im Text Display Modus - ausführliche Beschreibung ) Prof. Komar - 1 - LCD-Display LCD-Display am MVUS 80535 (nur einfachste Betriebsweise im Text Display Modus - ausführliche Beschreibung ) Das LCD-Modul TLX-1021 besteht aus einem - LCD-Panel mit 120 x

Mehr

3.0 8051 Assembler und Hochsprachen

3.0 8051 Assembler und Hochsprachen 3.0 8051 Assembler und Hochsprachen Eine kurze Übersicht zum Ablauf einer Programmierung eines 8051 Mikrocontrollers. 3.1 Der 8051 Maschinencode Grundsätzlich akzeptiert ein 8051 Mikrocontroller als Befehle

Mehr

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht Kap.2 Befehlsschnittstelle Prozessoren, externe Sicht 2 Befehlsschnittstelle 2.1 elementare Datentypen, Operationen 2.2 logische Speicherorganisation 2.3 Maschinenbefehlssatz 2.4 Klassifikation von Befehlssätzen

Mehr

Mikrocomputertechnik

Mikrocomputertechnik Mikrocomputertechnik Bernd-Dieter Schaaf Mit Mikrocontrollern der Familie 8051 ISBN 3-446-40017-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40017-6 sowie im Buchhandel

Mehr

Grundlagen Mikroprozessortechnik

Grundlagen Mikroprozessortechnik Grundlagen Mikroprozessortechnik Assemblerprogrammierung Übungsaufgaben Dipl.-Ing. Peter Weinmann 26.10.2016 Inhaltsverzeichnis 1. Einleitung... 5 1.1 Anlegen eines Entwicklungsprojektes in µvision für

Mehr

Kurzbeschreibung der Hardware, das Schreiben von Software, Testen und Simulation mittels ASM51 und C51 sowie dscope (tscope)-51 und µprofi 51

Kurzbeschreibung der Hardware, das Schreiben von Software, Testen und Simulation mittels ASM51 und C51 sowie dscope (tscope)-51 und µprofi 51 µc 8051 Lernhilfe (Riemer) Seite 1 Mikrocontroller 8051, Kurzbeschreibung der Hardware, das Schreiben von Software, Testen und Simulation mittels ASM51 und C51 sowie dscope (tscope)-51 und µprofi 51 Eine

Mehr

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl

Mehr

Zähler- und Zeitgeber-Baugruppen

Zähler- und Zeitgeber-Baugruppen Zähler- und Zeitgeber-Baugruppen Sinn: häufig müssen Zeitbedingungen eingehalten werden z.b.: einige ms warten, Häufigkeit von Ereignissen zählen etc... Lösung: 1.) Zeitschleifen = Programm abarbeiten,

Mehr

Von-Neumann-Architektur

Von-Neumann-Architektur Von-Neumann-Architektur Bisher wichtig: Konstruktionsprinzip des Rechenwerkes und Leitwerkes. Neu: Größerer Arbeitsspeicher Ein- und Ausgabewerk (Peripherie) Rechenwerk (ALU) Steuerwerk (CU) Speicher...ppppp...dddddd..

Mehr

Praktikum Mikrorechner 1 (Einführung)

Praktikum Mikrorechner 1 (Einführung) G. Kemnitz Institut für Informatik, Technische Universität Clausthal November 5, 2014 1/16 Praktikum Mikrorechner 1 (Einführung) G. Kemnitz Institut für Informatik, Technische Universität Clausthal November

Mehr

Interruptverarbeitung. 7. Interruptverarbeitung. 7.1 Ablauf einer Programmunterbrechung

Interruptverarbeitung. 7. Interruptverarbeitung. 7.1 Ablauf einer Programmunterbrechung 7. Interruptverarbeitung Normalerweise wird ein Programm sequentiell abgearbeitet, d.h. der Ablauf des Programms, Verzweigungen und unbedingte Sprünge werden einzig und allein vom gerade laufenden Programm

Mehr

Aufbau eines Taschenrechners

Aufbau eines Taschenrechners siehe Skizze Aufbau einer Waage siehe Skizze Speichermöglichkeit Aufbau eines Taschenrechners Speichermöglichkeit Adressbus 65536 (2 16 ) (2 wegen der Zustände =aus und 1=an) => 65536 Möglichkeiten =>

Mehr

Maschinenorientierte Programmierung

Maschinenorientierte Programmierung Prof. Dr. Sven-Hendrik Voß Wintersemester 2015 Technische Informatik (Bachelor), Semester 2 Termin 10, 08.12.2015 Maschinenorientierte Programmierung Seite 2 Timer- und Counter-Programmierung Maschinenorientierte

Mehr

Mikrocontrollerprogrammierung in Assembler und C

Mikrocontrollerprogrammierung in Assembler und C mitp Professional Mikrocontrollerprogrammierung in Assembler und C für die Mikrocontroller der 8051-Familie - Simulation unter Multisim von Herbert Bernstein 1. Auflage Mikrocontrollerprogrammierung in

Mehr

Mikrocomputertechnik 2.Mikroprozessor

Mikrocomputertechnik 2.Mikroprozessor 2.3 Programmiermodell des 68000 Aus Sicht des Programmierers besteht der Prozessor aus Registersatz Befehlssatz Adressierungsarten Registersatz des 68000 8 universelle Datenregister (32 Bit) D0 D7 8 Adress-Register

Mehr

Microcomputertechnik

Microcomputertechnik Microcomputertechnik mit Mikrocontrollern der Familie 8051 Bearbeitet von Bernd-Dieter Schaaf 2. Auflage 2002. Buch. 230 S. Hardcover ISBN 978 3 446 22089 8 Format (B x L): 16 x 22,7 cm Gewicht: 407 g

Mehr

2

2 TINF Interrupts EDT-Referat Jürgen Schwarzbauer 2ANB 1995/96 Inhalt : Was ist ein Interrupt? Zweck von Interrupts Maskierbare und nicht maskierbare Interrupts Aufruf eines Interrupts Anwendung von Interrupts

Mehr

10. Der Befehlssatz des MSP 430

10. Der Befehlssatz des MSP 430 1. Der Befehlssatz des MSP 43 1.1 Befehlsformate 1.2 Zweiadressbefehle 1.3 Einadressbefehle 1.4 Sprungbefehle 1.5 Emulierte Befehle Programmierkurs II Wolfgang Effelsberg 1. Befehlssatz des MSP 43 1 1

Mehr

Praktikum Mikrorechner 8 (Pulsweitenmodulation und Automaten)

Praktikum Mikrorechner 8 (Pulsweitenmodulation und Automaten) G. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 24 /6 Praktikum Mikrorechner 8 (Pulsweitenmodulation und Automaten) G. Kemnitz Institut für Informatik, Technische Universität

Mehr

Einführung in das Mikrocontroller-System 80(C)515/80(C)535

Einführung in das Mikrocontroller-System 80(C)515/80(C)535 Seite 2 von 228 Inhalt Seite 1 Einführung... 7 2 Grundzüge der Architektur... 10 2.1 Die CPU... 10 2.2 Die Speicherorganisation... 10 2.3 Die externe Buserweiterung... 10 2.4 Die integrierten Peripheriekomponenten...

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

Daniel Betz Wintersemester 2011/12

Daniel Betz Wintersemester 2011/12 Daniel Betz Wintersemester 2011/12 Digitally signed by daniel.betz@daniel-betz.com Date: 2011.12.04 17:24:40 +01'00' Insgesamt 16 Register von je 16 Bit (=WORD) Breite Untere 8 Register auch als 2 Register

Mehr

1. Inhaltsverzeichnis

1. Inhaltsverzeichnis Mikrocomputer Simulator Inhaltsverzeichnis _ 2 _ 1. Inhaltsverzeichnis 1. INHALTSVERZEICHNIS...2 2. AUFBAU UND BEDIENUNG...3 2.1. EINFÜHRUNG...3 2.1.1. TECHNISCHE DATEN... 3 2.1.2. VERWENDUNGSZWECK...

Mehr

Die Mikroprogrammebene eines Rechners

Die Mikroprogrammebene eines Rechners Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.

Mehr

Praktikum Mikrorechner 9 (serielle Schnittstelle)

Praktikum Mikrorechner 9 (serielle Schnittstelle) Prof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 1/13 Praktikum Mikrorechner 9 (serielle Schnittstelle) Prof. G. Kemnitz Institut für Informatik, Technische Universität

Mehr

PIC16 Programmierung in HITECH-C

PIC16 Programmierung in HITECH-C PIC16 Programmierung in HITECH-C Operatoren: Arithmetische Operatoren - binäre Operatoren + Addition - Subtraktion * Multiplikation / Division % Modulo + - * / sind auf ganzzahlige und reelle Operanden

Mehr

Allgemeine Struktur eines Digitalrechners

Allgemeine Struktur eines Digitalrechners 2. Allgemeine Struktur eines Digitalrechner In diesem Skript soll im wesentlichen die maschinennahe Programmierung von Digitalrechnern behandelt werden. Deshalb wird auf die hardwaremäßige Realisierung

Mehr

Steffen Weißer Juni 2003 TG 12/3

Steffen Weißer Juni 2003 TG 12/3 Steffen Weißer Juni 2003 TG 12/3 I Inhaltsverzeichnis I Inhaltsverzeichnis...1 II Aufgabenbeschreibung...3 III Inbetriebnahme...3 IV Technologieschema...4 V Schaltplan...5 VI Funktionsbeschreibungen...6

Mehr

Mikrocomputertechnik. Adressierungsarten

Mikrocomputertechnik. Adressierungsarten Adressierungsarten Ein Mikroprozessor bietet meist eine Reihe von Möglichkeiten, die Operanden für eine Rechenoperation zu bestimmen. Diese Möglichkeiten bezeichnet man als Adressierungsarten. unmittelbare

Mehr

Mikrocontrollertechnik

Mikrocontrollertechnik Aufgaben: Impulse zählen (Zählerfunktion) Zeitintervalle erzeugen (Zeitgeberfunktion) Prinzipschaltbild: Die Programmierung erfolgt mit den Registern TMOD und TCON: timer.doc TSC Seite 1/8 timer.doc TSC

Mehr

Vorwort 8. Kap. 1: Grundlagen 10

Vorwort 8. Kap. 1: Grundlagen 10 Inhaltsverzeichnis Vorwort 8 Kap. 1: Grundlagen 10 1.1 Analogie zwischen der Spieluhr und einem Prozessor 10 1.2 Unterschiede zwischen Mikroprozessor und Spieluhr 11 1.3 Die Programmierung eines Mikroprozessors

Mehr

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Fachgebiet Rechnerarchitektur Fachbereich Informatik Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Aufgabe 9.1: Dinatos-Algorithmus-Analyse Die folgenden Verilog-Zeilen

Mehr

Einführung in AVR Assembler

Einführung in AVR Assembler Einführung in AVR Assembler Dennis Fassbender Institut für Technik Autonomer Systeme (LRT8) Universität der Bundeswehr München 09042014 Was ist Assembler? Low-level-Programmiersprache Erlaubt direkten

Mehr

Der Anschluss eines seriellen 16kb EEProms an die I²C Schnittstelle ist denkbar einfach: Hier als Beispiel mit einem ST24C16:

Der Anschluss eines seriellen 16kb EEProms an die I²C Schnittstelle ist denkbar einfach: Hier als Beispiel mit einem ST24C16: 12.0 Ein serielles EEProm an der I²C Schnittstelle Eine serielles EEProm wird häufig zur Speicherung von Systemkonfigurationen verwendet und könnte z.b. die optimalen Betriebsfrequenzen des Elliptecmotors

Mehr

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Rechnertechnik und Rechnerorganisation Prof. Dr. Arndt Bode Einführung in die Rechnerarchitektur Wintersemester 2016/2017 Zentralübung

Mehr

Rechnerarchitektur Atmega 32. 1 Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7

Rechnerarchitektur Atmega 32. 1 Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7 1 Vortrag Atmega 32 Von Urs Müller und Marion Knoth Urs Müller Seite 1 von 7 Inhaltsverzeichnis 1 Vortrag Atmega 32 1 1.1 Einleitung 3 1.1.1 Hersteller ATMEL 3 1.1.2 AVR - Mikrocontroller Familie 3 2 Übersicht

Mehr

Das Projekt Pathfinder

Das Projekt Pathfinder Das Projekt Pathfinder Das Entwicksteam und die französischen Kommilitonen Eine Studie der HS-Karlsruhe im Rahmen der Vorlesungen Konstruktion IV & Mikrocomputertechnik Rahmenbedingungen Problemstel An

Mehr

$NOMOD51 $INCLUDE (reg515.inc) ; Ein Zeichen auf Tastendruck S1 senden...

$NOMOD51 $INCLUDE (reg515.inc) ; Ein Zeichen auf Tastendruck S1 senden... MC SS2016 - Aufgabenblatt 11a - Übung 4 Serielle Schnittstelle - Zeichen sen & empfangen In diesem Versuch lernen Sie die serielle Schnittstelle des AT89C5131 Mikrocontrollers kennen. Im ersten Versuchsteil

Mehr

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Prinzipieller Aufbau und Funktionsweise eines Prozessors Prinzipieller Aufbau und Funktionsweise eines Prozessors [Technische Informatik Eine Einführung] Univ.- Lehrstuhl für Technische Informatik Institut für Informatik Martin-Luther-Universität Halle-Wittenberg

Mehr

Assembler Integer-Arithmetik

Assembler Integer-Arithmetik Assembler Integer-Arithmetik Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler Integer-Arithmetik 1/23 2008-04-01 Arithmetik

Mehr

Die Entwicklungsumgebung

Die Entwicklungsumgebung 5. für den 8051/80535-Mikrocontroller Programmentwicklung für den Mikrocontroller erfolgt heute mit Softwarewerkzeugen, die den gesamten Entwicklungsprozeß vom Schreiben des Programms über die Übersetzung

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943 / 659 338 FB

Mehr

einfache PIC-Übungsprogramme

einfache PIC-Übungsprogramme einfache PIC-Übungsprogramme Schreibe in MPLAB für das PIC-Übungsboard 01 mit dem PIC16F88 folgendes Programm, assembliere und dokumentiere dieses, schreibe es anschließend mittels dem Programmiergerät

Mehr

Mikrocomputertechnik

Mikrocomputertechnik Mikrocomputertechnik Bernd-Dieter Schaaf Mit Mikrocontrollern der Familie 8051 ISBN 3-446-40017-6 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40017-6 sowie

Mehr

Der Toy Rechner Ein einfacher Mikrorechner

Der Toy Rechner Ein einfacher Mikrorechner Der Toy Rechner Ein einfacher Mikrorechner Dr. Gerald Heim Haid-und-Neu-Str. 10-14 76131 Karlsruhe 16. Mai 1995 Allgemeine Informationen 2 Quelle: Phil Kopmann, Microcoded versus Hard-Wired Logic, Byte

Mehr

Maschinensprache und Assembler

Maschinensprache und Assembler 4. Befehle, die ein Digitalrechner ausführen soll, müssen binär codiert vorliegen. Diese Befehle werden als Maschinenbefehle bezeichnet. Will man z.b. beim 8051 den Inhalt des Accus in das Register R2

Mehr

Teil III: Wat macht ene Mikrokontroller?

Teil III: Wat macht ene Mikrokontroller? Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13 Eine Einführung in Aufbau, Funktionsweise, Programmierung und Nutzen von Mikroprozessoren Teil III: Wat macht ene Mikrokontroller?

Mehr

Technische Informatik 2 Adressierungsarten

Technische Informatik 2 Adressierungsarten Technische Informatik 2 Adressierungsarten Prof. Dr. Miroslaw Malek Sommersemester 2009 www.informatik.hu-berlin.de/rok/ca Thema heute X-Adressmaschine 0-Adressmaschine 1-Adressmaschine 2-Adressmaschine

Mehr

verzeichnis Bernd-Dieter Schaaf, Peter Wissemann, Stephan Böcker Mikrocomputertechnik

verzeichnis Bernd-Dieter Schaaf, Peter Wissemann, Stephan Böcker Mikrocomputertechnik verzeichnis Bernd-Dieter Schaaf, Peter Wissemann, Stephan Böcker Mikrocomputertechnik Aktuelle Controller 8051: Funktionsweise, äußere Beschaltung und Programmierung ISBN (Buch): 978-3-446-43078-5 ISBN

Mehr

Skriptum Mikrocontroller-Systeme. Kapitel 6: Kapitel 7:

Skriptum Mikrocontroller-Systeme. Kapitel 6: Kapitel 7: Hochschule Karlsruhe Fakultät Elektro- und Informationstechnik Studiengang Energie- und Automatisierungstechnik Skriptum Mikrocontroller-Systeme Kapitel 6: Befehlssatz des Mikrocontrollers C517 Kapitel

Mehr

Inhaltsverzeichnis VII. Teil I: PC- und Mikrocomputer-Technik

Inhaltsverzeichnis VII. Teil I: PC- und Mikrocomputer-Technik VII Teil I: PC- und Mikrocomputer-Technik 1 Interne Darstellung von Informationen... 2 1.1 Darstellung positiver ganzer Zahlen... 2 1.1.1 Binär- und Hexadezimalsystem... 3 1.1.2 Umrechnungsverfahren...

Mehr

MC Mikrocomputertechnik (MC) Bitte nehmen Sie sich ein Exemplar der bereitliegenden Kopien

MC Mikrocomputertechnik (MC) Bitte nehmen Sie sich ein Exemplar der bereitliegenden Kopien Mikrocomputertechnik (MC) Bitte nehmen Sie sich ein Exemplar der bereitliegenden Kopien Lehrkräfte: Mikrocomputertechnik (MCT) 1.) Prof. Dr.-Ing. Martin Pollakowski Raum B2.1.04, Tel.: - 226, E-Mail: martin.pollakowski@w-hs.de

Mehr

PC/XT/AT ASSEMBLER-BUCH

PC/XT/AT ASSEMBLER-BUCH PC/XT/AT ASSEMBLER-BUCH Alle Befehle + Makro-Assembler KLAUS-DIETER THIES t

Mehr

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 2007 8. Vorlesung Inhalt Gleitkomma-Darstellung Normalisierte Darstellung Denormalisierte Darstellung Rechnerarchitekturen Von Neumann-Architektur Harvard-Architektur Rechenwerk (ALU)

Mehr

Prozessor HC680 fiktiv

Prozessor HC680 fiktiv Prozessor HC680 fiktiv Dokumentation der Simulation Die Simulation umfasst die Struktur und Funktionalität des Prozessors und wichtiger Baugruppen des Systems. Dabei werden in einem Simulationsfenster

Mehr

Mikrocomputertechnik

Mikrocomputertechnik Bernd-Dieter Schaaf Mikrocomputertechnik Mit MikroControllern der Familie 8051 unter Mitarbeit von Peter Wissemann 4., aktualisierte Auflage mit 267 Bildern sowie zahlreichen Beispielen und Übungen HANSER

Mehr

Inhaltsverzeichnis VII

Inhaltsverzeichnis VII 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

Mehr

Inhaltsverzeichnis 1 Ein-Bit-Rechner Mikrorechentechnik-Grundlagen Das Mikrocontrollersystem ein Überblick am Beispiel MSP430F1232

Inhaltsverzeichnis 1 Ein-Bit-Rechner Mikrorechentechnik-Grundlagen Das Mikrocontrollersystem ein Überblick am Beispiel MSP430F1232 Inhaltsverzeichnis 1 Ein-Bit-Rechner... 15 1.1 Rechenwerk... 15 1.1.1 Register und Takt... 16 1.1.2 Zwischenspeicher... 17 1.1.3 Native und emulierte Datenmanipulationsbefehle... 18 1.2 Steuerwerk... 20

Mehr

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Kap 4. 4 Die Mikroprogrammebene eines Rechners 4 Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten (Befehl holen, Befehl dekodieren, Operanden holen etc.).

Mehr

7.0 PWM - Pulsbreitenmodulation

7.0 PWM - Pulsbreitenmodulation 7.0 PWM - Pulsbreitenmodulation PWM ist eine Abkürzung für Pulse Width Modulation (Pulsbreitenmodulation). Zwei unabhängige PWM-Ausgänge erlauben die Erzeugung von Rechtecksignalen mit einstellbarer Frequenz

Mehr

Geräteentwurf mit Mikroprozessoren 1

Geräteentwurf mit Mikroprozessoren 1 Geräteentwurf mit Mikroprozessoren 1 Vorlesung am Institut für Elektronik der TU Graz Dipl.-Ing. Dr. Gerhard Stöckler SS 2003 Vorausgesetzte Kenntnisse: Grundlagen der Digitaltechnik Binäre Informationsdarstellung

Mehr

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit)

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit) Der Demo-Computer besitzt einen 4Bit-Mikroprozessor. Er kann entsprechend Wörter mit einer Breite von 4 Bits in einem Schritt verarbeiten. Die einzelnen Schritte der Abarbeitung werden durch Lampen visualisiert.

Mehr

Mikrocomputertechnik

Mikrocomputertechnik Mikrocomputertechnik Bernd-Dieter Schaaf Mit Mikrocontrollern der Familie 051 ISBN 3-446-4071-9 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-4071-9 sowie im Buchhandel

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

E Mikrocontroller-Programmierung

E Mikrocontroller-Programmierung E Mikrocontroller-Programmierung E Mikrocontroller-Programmierung E.1 Überblick Mikrocontroller-Umgebung Prozessor am Beispiel AVR-Mikrocontroller Speicher Peripherie Programmausführung Programm laden

Mehr

Teil 2: Rechnerorganisation

Teil 2: Rechnerorganisation Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung

Mehr

Prof. Dr. Sven-Hendrik Voß Sommersemester 2017 Technische Informatik (Bachelor), Semester 2 Termin 2, Maschinenorientierte Programmierung

Prof. Dr. Sven-Hendrik Voß Sommersemester 2017 Technische Informatik (Bachelor), Semester 2 Termin 2, Maschinenorientierte Programmierung Prof. Dr. Sven-Hendrik Voß Sommersemester 2017 Technische Informatik (Bachelor), Semester 2 Termin 2, 24.04.2017 Maschinenorientierte Programmierung Seite 2 Organisationsprinzipien und Adressierung Maschinenorientierte

Mehr

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Rechnertechnik und Rechnerorganisation Prof. Dr. Arndt Bode Einführung in die Rechnerarchitektur Wintersemester 2016/2017 Tutorübung

Mehr

Befehle zur Verarbeitung von Daten ( data processing ):

Befehle zur Verarbeitung von Daten ( data processing ): ARM: Befehlssatz Befehle zur Verarbeitung von Daten ( data processing ): Register/Register-Befehle: ,, (Achtung! Andere Interpretation: ) Transport-Befehl: MOV ,

Mehr

Informatikgrundlagen I Grundlagen der Informatik I

Informatikgrundlagen I Grundlagen der Informatik I Informatikgrundlagen I Grundlagen der Informatik I Dipl.-Inf. Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Inhalt 1. Einführung,

Mehr

Inhaltsverzeichnis VII.

Inhaltsverzeichnis VII. \ 1 Grundlagen der Mikrocontrolier 1 1.1 Mikrocontroller-Familie ATtiny2313, ATtiny26und ATmega32 6 1.1.1 Merkmale des ATtiny2313, ATtiny26und ATmega32 8 1.1.2 Pinbelegung des ATtiny2313, ATtiny26 und

Mehr

Mikroprozessor als universeller digitaler Baustein

Mikroprozessor als universeller digitaler Baustein 2. Mikroprozessor 2.1 Allgemeines Mikroprozessor als universeller digitaler Baustein Die zunehmende Integrationsdichte von elektronischen Schaltkreisen führt zwangsläufige zur Entwicklung eines universellen

Mehr

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)

Mehr

Stack, Stackpointer, Unterprogramm HP: 0 * 1 * 2 * 3 CAL UP1 4 * 5 * 6 CAL UP2 7 *... UP1: 30 * 33 RET UP2: 40 * 41 CAL UP1 42 * 43 RET

Stack, Stackpointer, Unterprogramm HP: 0 * 1 * 2 * 3 CAL UP1 4 * 5 * 6 CAL UP2 7 *... UP1: 30 * 33 RET UP2: 40 * 41 CAL UP1 42 * 43 RET Stack, Stackpointer, Unterprogramm HP: 0 * 1 * 2 * 3 CAL UP1 4 * 5 * 6 CAL UP2 7 *... UP1: 30 * 33 RET UP2: 40 * 41 CAL UP1 42 * 43 RET Stack, Stackpointer, UP Stack (Stapel, FIFO) wird benötigt UP-Ruf:

Mehr

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel Prozessorarchitektur Kapitel - Wiederholung M. Schölzel Wiederholung Kombinatorische Logik: Ausgaben hängen funktional von den Eingaben ab. x x 2 x 3 z z = f (x,,x n ) z 2 z m = f m (x,,x n ) Sequentielle

Mehr

4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen

4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen 4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen Ein Rechner besteht aus den folgenden Bestandteilen: Rechenwerk Rechenoperationen wie z.b. Addition, Multiplikation logische Verknüpfungen

Mehr

Übungsblatt 10 (Block C 2) (16 Punkte)

Übungsblatt 10 (Block C 2) (16 Punkte) georg.von-der-brueggen [ ] tu-dortmund.de ulrich.gabor [ ] tu-dortmund.de pascal.libuschewski [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 2016 Übungsblatt 10 (Block C 2) (16

Mehr

B1 Stapelspeicher (stack)

B1 Stapelspeicher (stack) B1 Stapelspeicher (stack) Arbeitsweise des LIFO-Stapelspeichers Im Kapitel "Unterprogramme" wurde schon erwähnt, dass Unterprogramme einen so genannten Stapelspeicher (Kellerspeicher, Stapel, stack) benötigen

Mehr

Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note:

Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note: Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 95 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel

Mehr