4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik 1 Stand November 2007 Herzlich Willkommen Jürgen Walter Prof. J. Walter Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik 2 Low Nibble High Nibble 5 8 9 9 Hexadezimal Dezimal Stand November 2007 0101 1001 Prof. J. Walter Abb. 4.1 Zahlendarstellung 3 Quelle ist die Zahl 89 Ziel ist der Akkumulator Befehl: Bewege Quelle in Ziel Stand November 2007 mov A,#89 Prof. J. Walter Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Abb. 4.2 Befehl für 8051 0111 0100B 74H mov A, 0101 1001B 59H #89 Stand November 2007 Bitkombination Als Hexadezimalzahl Mnemotechnischer Code Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik 4 Tabelle 4.1 Übersetzung des Codes in eine Hexadezimal 1,8k 1,8k 1,8k L1 L2 L3 VGC19 S2.1 P3.2 S2.2 VGC18 P3.3 S2.3 P3.4 Prozessoranschlüsse P1.1 VGC13 S2.4 T1 5 VGA19 P1.2 VGA14 S2.5 T2 P1.3 VGC14 Stand November 2007 +5V Prof. J. Walter Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Abb. 4.3 Beschaltung der Ports S2.6 T3 6 Anschluss T1 T2 T3 L1 L2 L3 Bemerkung Taster 1 Taster 2 Taster 3 Leuchtdiode 1 Leuchtdiode 2 Leuchtdiode 3 Stand November 2007 Port P1.1 P1.2 P1.3 P3.2 P3.3 P3.4 Prof. J. Walter Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Tabelle 4. 2 Dokumentation der Beschaltung Welche Taste wurde betätigt ? Taster 1 Taster 2 Taster 3 Port 3.2 Port 3.2 löschen setzen Sprung Licht ein Licht aus aus Schleife Schleife für Tastenbetätigung Programmende 7 Stand November 2007 Programmbeginn Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.4 Struktogramm für das erste, einfache Programm EIN_AUS.ASM 8 Stand November 2007 $ title (EIN_AUS) $debug ;Einfaches Programm zum Ein- Ausschalten einer Leuchte ;Taster 1 Einschalten, Taster 2 Ausschalten ;Taster 3 Programm beenden CSEG AT 0H ;Legt absolute Codesegmentadresse auf 0h ljmp ANFANG ;Sprung auf Programmanfang ORG 100H ;Programmstart bei 100H ANFANG: jnb P1.1,LICHT_EIN ;Schalter 1 betaetigt ? jnb P1.2,LICHT_AUS ;Schalter 2 betaetigt ? jnb P1.3,PROGRAMM_ENDE ;Programmende ajmp ANFANG ;Springe zur Adresse Anfang LICHT_EIN: clr P3.2 ;Licht einschalten ajmp Anfang ;Springe zur Adresse Anfang LICHT_AUS: setb P3.2 ;Licht ausschalten ajmp ANFANG ;Springe zur Adresse Anfang PROGRAMM_ENDE: ljmp 8000H ;Monitoreinsprung end Prof. J. Walter Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Programm: EIN_AUS Struktur- Klassische element Darstellung Struktogramme Anfang <Eingangsgröße> Ende <Ausgangsgröße> <Block 1> <Block 2> Abb. 4.5 Symbole für ProgrammAblaufpläne ja <Block 2> <Bedingung>? <Block 1> nein <Block 2> <Bedingung>? ja <Block 1> nein <Block 2> Verzweigung b1 <Bedingung>? <Bedingung>? b2 <Block 1> <Block 1> <Block 2> bn <Block 2> <Block 3> <Block n> für <Bedingung> <Bedingung>? <Block> <Block 1> <Block> <Block> ja <Bedingung>? nein Schleife für <Bedingung> Wiederholung <Block> ja 9 <Bedingung>? <Block 1> nein ja <Bedingung>? <Block 2> <Block 2> Schleife nein Sprung aus Schleife Stand November 2007 <Block 1> Sequenz Prof. J. Walter Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Schnittstelle 10 Prof. J. Walter Stand November 2007 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.6 Erstellen eines neuen Projektes 11 Prof. J. Walter Stand November 2007 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.7 Speichern der Projektdatei: Ein_aus.uv2 12 Prof. J. Walter Stand November 2007 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.8 Auswahl des Controllers 13 Prof. J. Walter Stand November 2007 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.9 Auswahl des Derivates SAB 80C535 für die EURO-535-Karte 14 Prof. J. Walter Stand November 2007 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.10 Einstellungen für die gewählte Hardwareumgebung 15 Prof. J. Walter Stand November 2007 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.11 Hinzufügen der Datei 16 Prof. J. Walter Stand November 2007 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.12 Das editierte Programm EIN_AUS.asm 17 Prof. J. Walter Stand November 2007 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.13 Das editierte Programm Ein_aus.asm mit Start/Stop Debug Session 18 Prof. J. Walter Stand November 2007 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.14 Das editierte Programm Ein_aus.asm im Debug-Modus 19 Prof. J. Walter Stand November 2007 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.15 Das editierte Programm Ein_aus.asm mit abgearbeiteten Befehlen 20 Prof. J. Walter Stand November 2007 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.16 Einstellungen in der Registerkarte Debug 21 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Prof. J. Walter Stand November 2007 Abb. 4.17 Das editierte Programm Ein_aus.asm nach Auslösen des Ladevorganges zur EURO_535 Stand November 2007 Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik 22 Abb. 4.18 Debug-Fenster nach Verbindungsaufnahme mit der EURO_535-Karte mit MON51 und das Setzen von Breakpoints 23 Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Stand November 2007 Abb. 4.19 Breakpoint LICHT_AUS Prototyp Hardware Design Abb. 4.20 Entwicklungsablauf Prototyp Hardware Konstruktion Prototyp Hardware Endtest Ü B E R P R Ü F U N G Prototyp Software Design Prototyp Software Codierung Prototyp Software Endtest System Integration Beginn der Produktion 24 Stand November 2007 Produkt Spezifikation Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Produkt Vorstellung Start Turbo-Pascal 6.0 Editor Word in TXT-Format BSP_2.A SM BSP_4.C BSP_3.A SM Assembler C-51 Compiler PL/M-51 ASM51 Abb. 4.21 Ablauf Programmentwicklung verschiebbarer Objektcode Anwender Bibliothek Library Manager C-Libraries L51 Linker/Locator BL51 Banking Linker Absolute Programme CSEG, ORG BSP_GES. Symbolpräprozessor SP8051KE Symbolpräprozessor SP8051KE PC PC HITOP Simulator 80535 Monitor EPROM 25 Simulator Remote Debug Stand November 2007 BSP_1.A SM Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik ASCII-Editor Symbolpräprozessor SP8051KE OH Objekt-HexCode-Wandler PC 80535 EPROM Hardware ohne µ-Controller Emulator Emulator EPROM 26 Prof. J. Walter Stand November 2007 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.22 Speicherbereiche 8051 / 80535 27 [<name>:] DB [<name>:] DW <expression > <string> <list> <expression > <string> <list> Define byte in Definiere Byte (8 Bit) im program memory Programmspeicher Define word in Definiere Wort (16 Bit) im program memory Programmspeicher Stand November 2007 Symboli Anwei Operant Funktion Funktionsbeschreibung sche sung Adresse Speicher Initialisierung und Reservierung Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Tabelle 4.3 und Tabelle 4.4 Assembler Anweisungen 28 Funktion Funktionsbeschreibung [<name>:] <expression> Advance bit location counter Reserviere <expression> Byte im bitadressierbaren Bereich Definition eines neuen Symbols (nicht redefinierbar) Definition eines neuen Symbols (redefinierbar) Wahl der aktuellen Registerbank mit R0, R1, R2, R3, R4, R5, R6, R7 Definition eines Symbols im Programmspeicher DBIT Symbol Definitionen <name> EQU <expression> Create new symbol <name> SET <expression> USING Set symbol value temporarily Select register bank <name> CODE <expression> - 0,1,2,3 <expression> <name> DATA <expression> <name> IDATA <expression> <name> XDATA <expression> <name> BIT <expression> Define code address symbol Define data adress symbol Definition eines neuen Symbols im internen Datenspeicher Define indirect data adress Definition eines neuen Symbols im indirekt symbol adressierbaren internen Datenspeicher Define an off chip data Definition eines neuen Symbols im adress symbol externen Datenspeicher Define a bit adress symbol Definition eines Symbols im bitadressierbaren Bereich Stand November 2007 Symbolisch Anweis- Operant e Adresse ung Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Tabelle 4.3 und Tabelle 4.4 Assembler Anweisungen 29 <segment- SEGME {CODE|XDA Declare Definition eines Segmentnamens mit TA|DATA|IDA relocatable name> NT einer Typangabe sowie ggf. TA|BIT} segment. Speichergrenzen [ [Assign attributes] _{PAGE|INPA GE|INBLOCK | BITADRESS ABLE|UNIT}] RSEG <segmentname> Stand November 2007 Relative Segmente Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Tabelle 4.3 und Tabelle 4.4 Assembler Anweisungen Select relocatable Aktivieren des vorher definierten segment relativen Segments <segment-name> 30 ISEG [AT<absolut Select indirect adress>] internal segment Die folgenden Befehle und Definitionen werden auf absolute Adressen im CODE-Segment bezogen Die folgenden Definitionen werden auf absolute Adressen im internen Datenspeicher-Segment bezogen XSEG [AT<absolut select external data adress>] segment Die folgenden Definitionen werden auf absolute Adressen im indirekt adressierbaren DatenspeicherSegment bezogen Die folgenden Definitionen werden auf absolute Adressen im externen Datenspeicher-Segment bezogen BSEG [AT<absolut select bit adress adress>] segment Die folgenden Definitionen werden auf absolute Adressen im bitadressierbaren Segment bezogen Assembler Kontrolle für Zustände ORG <expression> Set location counter Setzt den Adresszähler auf <expression> value END End of program Ende des Programms Stand November 2007 Absolute Segmente CSEG [AT<absolut select code segment adress>] DSEG [AT<absolut select internal data adress>] segment Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Tabelle 4.3 und Tabelle 4.4 Assembler Anweisungen Registerbank 3 18H 17H Registerbank 2 10H 0FH Registerbank 1 08H 07H Registerbank 0 00H R7 R6 R5 R4 R3 R2 R1 R0 31 Stand November 2007 1FH Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.23 Registerbänke @R1 @R0 kann Adresse von Speicher enthalten Interrupt Name Erklärung 0000H RESET Start Address after Reset 0003H EXTIO External Interrupt 0 000BH TIMER 0 Timer 0 Overflow Interrupt 0013H EXTI1 External Interrupt 1 001BH TIMER1 Timer 1 Overflow Interrupt 0023H SINT Serial Channel 0 Interrupt Stand November 2007 PC Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik 32 Tabelle 4.5 Interrupt Vektoren im Programmspeicherbereich des 8051 33 Für ErweiterungenSoftware-Portierbarkeit 0FFH freihalten OFF-CHIP ROM 0FFFH 0000H 4 K IN-Chip ROM /EA=1 23H SINT Interrupt serielle Schnittstelle 1BH TIMER 1 Timer 1 Überlauf Interrupt 13H EXTI1 externer Interrupt 1 0BH TIMER 0 Timer 0 Überlauf Interrupt 03H EXTI0 externer Interrupt 0 00H RESET Startadresse nach Reset Stand November 2007 FFFFH Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.24 Programmspeicher 34 21 SFR Special Function nur direkt adressierbar Registers 80H 7FH RAM 2FH 1FH 00H RAM BIT ADRESS RAUM Registerbänke indirekt @Ri i=0,1 direkt adressierbar Stand November 2007 FFH Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.25 Interner Datenspeicher 35 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik nur indirekt adressierbar RAM über @DPTR - @Ri 0000H Stand November 2007 FFFFH Prof. J. Walter Abb. 4.26 Externer Datenspeicher Special Function 80H 7FH RAM 2FH 20H 1FH 00H RAM BIT ADRESS RAUM Registerbänke 2FH 2EH 2DH 2CH 2BH 2AH 29H 28H 27H 26H 25H 24H 23H 22H 21H 20H 7F Stand November 2007 FFH Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.27 Bitadressierbarer Bereich 09 08 02 01 00 20H.0 36 FFFFH interner Daten speicher FFFFH FFH nur direkt CSEG XSEG adressierbar 80H 7FH DSEG RAM ISEG 2FH 0000H 37 externer Daten speicher Stand November 2007 interner / externer Programmspeicher 0000H 1FH 00H BSEG Registerbänke indirekt @Ri i=0,1 direkt adressierbar Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Abb. 4.28 Speicherbereiche - Segmente Default Abkürzu Funktion ng [ { _ MOD51 } ] * [ { _ NOMOD51 } ] * MOD51 - [ { _ DATE (<date>) } ] DATE () DA * [ { _ DEBUG } ] * NODEBUG DB / [ { _ NODEBUG } ] * NODB [ { _ EJECT } ] [ { _ GEN } ] no EJECT EJ GE [ { _ GENONLY } ] GENONLY GO [ { _ NOGEN } ] 38 NOGE Mit MOD51 benutzt der Assembler die SFR- und Bitsymbole des SAB8051. NOMOD51 unterdrückt die Standardsymbole des 8051. Text aus max. 9 Zeichen wird im Seitenkopf als Überschrift ausgegeben Aufnahme bzw. Unterdrückung der Symboltabelle in die Objektcodedatei für das symbolische Testen mit dem ETA Papiervorschub auf Formularanfang Generieren der Makro-Definition, der Makroaufrufe und der Makroexpansionen in der List-Datei Generieren von ausschließlich Makroexpansionen in der List-Datei, als ob die Expansion Teil des Quellenprogramms wäre. Generieren der Makro-Definitionen, der Makroaufrufe. Stand November 2007 Control Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Tabelle 4.6 Assembler Controls. 39 Default [ { _ LIST } ] LIST [ { _ NOLIST } ] [ { _ MACRO MACRO [ (<memory percent>) } ] (50) * [ { _ NOMACRO } ] * [ { _ OBJECT (<file>) } OBJECT ]* (<source [ { _ NOOBJECT } ] * file.OBJ>) [ { _ PAGELENGTH PAGELEN (<n>) } ] * GTH (60) [ { _ PAGEWIDTH PAGEWID (<n>) } ] * TH (120) [ { _ PAGING } ] * PAGING [ { _ NOPAGING } ] * [ { _ PRINT (<file>) } ] *PRINT [ { _ NOPRINT } ] * (<source file.LST>) Abkürzung Funktion LI / NOLI Erstellen bzw. Unterdrücken einer Übersetzungsliste MR / NOMR Auswerten und Expandieren von Makro-Aufrufen (bzw. keine Auswertung und Expansion bei NOMACRO). Prozentuale Zuweisung des verfügbaren Speichers OJ / NOOJ Erstellung bzw. Unterdrückung einer Objektcodedatei PL Einstellung der Anzahl der Zeilen pro Seite (minimal 10, maximal 65535) PW Einstellung der Anzahl der Zeichen pro Zeile (72 <= n <= 132) PI / NOPI Aufteilung bzw. Nichtaufteilung der Übersetzungsliste in Seiten mit Überschrift PR / NOPR Erstellung bzw. Unterdrückung einer Übersetzungs-Listendatei Stand November 2007 Control Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Tabelle 4.6 Assembler Controls. 40 RB / NORB Reservierung der benutzten Registerbänke im Programm Modul. Mit NORB wird keine Registerbank reserviert RS Wiederaktivierung der zuletzt sichergestellten Steuerparameter LIST, GEN Sicherstellen der augenblicklichen Zustände der Steuerparameter LIST, GEN Aufnahme bzw. Unterdrückung der Symboltabelle in die Übersetzungsdatei Ausgabe der Zeichenfolge <string> in der Übersetzungszeile (max. 60 Zeichen) einer jeden Seite der List-Datei Zuweisung Laufwerke für temporäre Arbeitsdateien des Assemblers Aufnahme bzw. Unterdrückung der SymbolQuerverweisliste in die Übersetzungsdatei SA [ { _ SYMBOLS } ] * SYMBOLS SB / [ { _ NOSYMBOLS } ] * NOSB [ { _ TITLE ('<string>') } no TITLE TT ] [ { _ WORKFILES (ddd[, same drive WF ddd]) } ] * as source file [ { _ XREF } ] * NOXREF XR / [ { _ NOXREF } ] * NOXR Stand November 2007 [ { _ REGISTERBANK REGISTER (<n> [...]) } ] * BANK (0) [{_ NOREGISTERBANK } ] * [ { _ RESTORE } ] no RESTORE [ { _ SAVE } ] no SAVE Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Tabelle 4.6 Assembler Controls. Stand November 2007 Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik 41 Tabelle 4.7 Program Status Word - Programm-StatusWort AbkürzAdresseBedeutung ung CY BIT 0D7H Carry flag AC BIT 0D6H Auxiliary carry flag for BCD operations F0 BIT 0D5H General purpose user flag RS1 BIT 0D4H Register bank select bits (00 - Bank 0; 01 Bank 1) RS0 BIT 0D3H Register bank select bits (10 - Bank 2; 11 Bank 3) OV BIT 0D2H Overflow flag F1 BIT 0D1H General purpose user flag P BIT 0D0H Parity flag. wird bei jeder Instruktion gesetzt, rückgesetzt, ODD-EVEN von Akkumulator Register Adresse Wert nach Reset CPU ACC B DPTR Akkumulator Hilfsregister B Datenzeiger, High Byte Low Byte Programm-Status-Wort Stapel-Zeiger Programm-Zähler Interrupt-Freigabe Interrupt-Priorität Port 0 Port 1 Port 2 Port 3 Serielle Port Kontrolle Serielle Ein-/ Ausgangspuffer Zeitgeberkontrolle Zeitgebermodus Zählerinhalt Zeitgeber 0 0E0H1) 0F0H1) 83H 82H 0D0H1) 81H 00H 00H 0000H Interrupt System Ports Serielle Schnittstelle Timer 0/ Timer 1 Interrupt System PSW SP PC IE IP P0 P1 P2 P3 SCON SBUF TCON TMOD TH0, TL0 TH1, TL1 IEN0 IEN1 Zählerinhalt Zeitgeber 1 80535-Erweiterung Interrupt-Freigabe-Register 0 Interrupt-Freigabe-Register 1 0A8H1) 0B8H1) 80H1) 90H1) 0A0H1) 0B0H1) 098H1) 99H 88H1) 89H 8CH 8AH 8DH 8BH 0A8H1) 0B8H1) 00H 07H 0000H 00H 00H 0FFH 0FFH 0FFH 0FFH 00H undefined 00H 00H 0000H 0000H 00H 00H Stand November 2007 Symbol Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik 42 Tabelle 4.8 Special Function Register nach funktionellen Gruppen Block Adresse Wert nach Reset IP0 IP1 Interrupt Priorität Register 0 Interrupt Priorität Register 1 0A9H 0B9H 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik 43 Tabelle 4.8 Special Function Register nach funktionellen Gruppen IRCON TCON2) T2CON2) Ports P4 P5 P6 Power Saving PCON Mode Serielle ADCON Schnittstelle PCON2) Compare/ Capture -Unit (CCU) A/D Wandler Interrupt Anforderung Kontrolle 0C0H1) Zeitgeber 1 Kontrolle 88H1) Zeitgeber 2 Kontrolle 0C8H1) Port 4 0E8H1) Port 5 0F8H1) Port 6, Analog/Digital Input 0DBH Energiespar-Modus 87H Power Control Register A/D Wandlung, aber hier 7. Bit BD 0D8H1) Baudrate 4800/9600 Power Control, aber hier 7. Bit 87H SMOD Baudrate verdoppelt CCEN Vergleich Übernahme Freigabe 0C1H CCH1 Vergleich Übernahme Register 1 0C3H CCL1 0C2H CCH2 Vergleich Übernahme Register 2 0C5H CCL2 0C4H CCH3 Vergleich Übernahme Register 3 0C7H CCL3 0C6H CCH4 Vergleich Übernahme Register 4 0CFH CCL4 0CEH CRCH Vergleich /Lade/Übernahme 0CBH CRCL Register 0CAH TH2 Zählerinhalt Zeitgeber 2 0CDH TL2 0CCH T2CON Zeitgeberkontrolle 2 0C8H1) ADCON A/D-Wandler Kontrolle 0D8H1) ADDAT A/D-Wandler Datenregister 0D9H DAPR D/A-Wandler Kontrolle 0DAH 00H XX00 0000B3) 00H 00H 00H 0FFH 0FFH 00H 00H undefined 00H 00H 00H 00H 00H 00H 0000H 00H 00H 00H 00H Stand November 2007 Register Prof. J. Walter Symbol Block Bedeutung Daten sind in der Instruktion codiert - # = Zahl Speicheradresse innerhalb des Chips 0 r 7 Allgemein verwendbares Register der Registerbänke 0 r 1 indirekt adressierbares Register der Registerbänke 16-Bit-Adresse decodiert als: volle 16-Bit-Adresse 11-Bit-Seitenadresse 8-Bit relativer Offset A C bit addr / bit addr DPTR PC AB Akkumulator Carry Flag Bit-Adresse auf dem Chip Komplementierter Inhalt der Bit-Adresse Datenzeiger ( Data Pointer ) Programmzähler ( Program Counter ) Register Paar Stand November 2007 Abkürzung #data data addr Rr @Rr code addr Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik 44 Tabelle 4.9 Wichtige Schreibweisen und Bedeutungen für die Befehle Symbol Wert Accumulator Akkumulator ACC 00H Multiplicationsregister Hilfsregister B B 00H Data Pointer Datenzeiger DPTR 0000H Interrupt Enable Interrupt Freigabe IEN0,IEN1 00H Interrupt Priority Interrupt Priorität IP0, IP1 00H Port 0 Port 0 P0 0FFH Port 1 Port 1 P1 0FFH Port 2 Port 2 P2 0FFH Port 3 Port 3 P3 0FFH Program Counter Programm Zähler PC 0000H Program Status Word Programm Status Wort PSW 00H Serial Port Control Serielle Port Kontrolle SCON 00H Serial I/O-Buffer SBUF Undef. Stack Pointer Serielle Ein-/ Ausgangspuffer Stapel-Zeiger SP 07H Timer Control Zeitgeberkontrolle TCON 00H Timer Mode Zeitgebermodus TMOD 00H Timer 0 Counter Zählerinhalt Zeitgeber 0 TH0,TL0 0000H Timer 1 Counter Zählerinhalt Zeitgeber 1 TH1,TL1 0000H Stand November 2007 Register Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik 45 Tabelle 4.10 Registerinhalte nach RESET mit Übersetzung Register Timer 2 Control Zeitgeber 2 Kontrolle T2CON 00H Register Register Symbol Wert Timer 2 Counter Zählerinhalt Zeitgeber 0 TH2,TL2 0000H Interr. Request Reg. Interrupt Anforderung IRCON 00H Interrupt Control Reg. Interrupt Kontrollregister IRCON 00H Comp. Capture Reg. 1 Vergl. Übern. Reg. 1 CCH1,CCL1 00H Comp. Capture Reg. 2 Vergl. Übern. Reg. 2 CCH2,CCL2 00H Comp. Capture Reg. 3 Vergl. Übern. Reg. 3 CCH3.CCL3 00H Comp./Rel./Capture Vergl. /Lade/Übern. Reg. CRCH,CRCL 00H Timer 2 Control Reg. Zeitgeberkontrolle 2 T2CON 00H A/D Conv. Contr. Reg. A/D-Wandler Kontrolle ADCON 00H D/A Conv. Progr. Reg. D/A-Wandler Kontrolle DAPR 00H Power Control Reg. Versorgungs-Kontrolle PCON 00H Comp./capture enable Vergl.-Übern. Freigabe CCEN 00H ADDAT 00H A/D Conv. data Register A/D-Wandler Datenreg. 8 Stand November 2007 80535-Erweiterung Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik 46 Tabelle 4.10 Registerinhalte nach RESET mit Übersetzung 80535-Erweiterung 47 IDLS - GF1 GF0 PDE IDLE PCON Diese Bits werden nicht für den Stromsparmodus verwendet Bit PDS Funktion Power Down Start Bit. Wird dieses Bit gesetzt, ist dies der letzte Befehl, bevor in den Stromsparmodus umgeschaltet wird. IDLS IDLS Start Bit Wird dieses Bit gesetzt, ist dies der letzte Befehl, bevor in den IDLEMode (nur CPU ohne Takt) umgeschaltet wird. GF1 Bit zur allgemeinen Verwendung GF0 Bit zur allgemeinen Verwendung PDE Power Down Enable. Ermöglicht bei "1" den Stromsparmodus IDLE Idle mode Enable bit. Ermöglicht bei "1" den IDLE-Mode Stand November 2007 87H SMOD PDS Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Tabelle 4.11 PCON BITS Power Control Bits 48 EAL WDT ET2 ES ET1 EX1 ET0 EX0 IEN0 Wird nicht für Watchdog verwendet Bit Funktion WDT "0" Externer Interrupt 0 gesperrt "1" Erzeugt ein Zurücksetzen des Watchdog Timers. Muss unmittelbar vor SWDT gesetzt werden, um ein unbeabsichtigtes Rücksetzten zu vermeiden. SWDT Watchdog Timer start/refresh flag ist in IEN1 (0B8H) Stand November 2007 A8H Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Tabelle 4.12 IEN0 Interrupt 0 Control Bits 49 - WDTS IP0.5 IP0.4 IP0.3 IP0.2 IP0.1 IP0.0 Wird nicht für Watchdog verwendet Bit Funktion WDTS Watchdog timer status flag "1" wird durch Hardware bei Start des Watchdog Timers erzeugt. Kann durch Software ausgelesen werden. IP0 Stand November 2007 0A9H Prof. J. Walter 4 Assembler für die 8051-Controller-Familie Mikrocomputertechnik Tabelle 4.13 IP0 Control Bits
© Copyright 2024 Paperzz