49
1 Mikrocomputertechnik Herzlich Willkommen Jürgen Walter

Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

Embed Size (px)

Citation preview

Page 1: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

1

Mikrocomputertechnik

Herzlich WillkommenJürgen Walter

Page 2: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

2

Abb. 4.1 Zahlendarstellung

0101 1001

Low Nibble

High Nibble

5 9 Hexadezimal 8 9 Dezimal

Page 3: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

3

Abb. 4.2 Befehl für 8051

mov A,#89

Quelle ist die Zahl 89

Ziel ist der Akkumulator

Befehl: Bewege Quelle in Ziel

Page 4: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

4

Tabelle 4.1 Übersetzung des Codes in eine Hexadezimal

Bitkombination Als Hexadezimalzahl Mnemotechnischer Code

0111 0100B 74H mov A,

0101 1001B 59H   #89

Page 5: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

5

Abb. 4.3 Beschaltung der Ports

+5V

P3.2

P1.1

T1

L1

1,8k

P3.4

P1.3

L3

1,8k

P3.3

P1.2

L2

1,8k

Prozessoranschlüsse

S2.4VGC13

T2

S2.5VGA14

T3

S2.6VGC14

VGC19 VGA19 VGC18S2.1 S2.2 S2.3

Page 6: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

6

Tabelle 4. 2 Dokumentation der Beschaltung

Port Anschluss BemerkungP1.1 T1 Taster 1P1.2 T2 Taster 2P1.3 T3 Taster 3P3.2 L1 Leuchtdiode 1P3.3 L2 Leuchtdiode 2P3.4 L3 Leuchtdiode 3

Page 7: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

7

Abb. 4.4 Struktogramm für das erste, einfache Programm EIN_AUS.ASM

Programmbeginn

Programmende

Welche Taste wurde betätigt ?

Taster 1 Taster 2 Taster 3Port 3.2löschenLicht ein

Port 3.2setzen

Licht ausSprung

ausSchleife

Schleife für Tastenbetätigung

Page 8: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

8

Programm: EIN_AUS

$ title (EIN_AUS)$debug;Einfaches Programm zum Ein- Ausschalten einer Leuchte;Taster 1 Einschalten, Taster 2 Ausschalten;Taster 3 Programm beendenCSEG AT 0H ;Legt absolute Codesegmentadresse auf 0hljmp ANFANG ;Sprung auf ProgrammanfangORG 100H ;Programmstart bei 100HANFANG:jnb P1.1,LICHT_EIN ;Schalter 1 betaetigt ?jnb P1.2,LICHT_AUS ;Schalter 2 betaetigt ?jnb P1.3,PROGRAMM_ENDE ;Programmendeajmp ANFANG ;Springe zur Adresse AnfangLICHT_EIN:clr P3.2 ;Licht einschaltenajmp Anfang ;Springe zur Adresse AnfangLICHT_AUS:setb P3.2 ;Licht ausschaltenajmp ANFANG ;Springe zur Adresse AnfangPROGRAMM_ENDE:ljmp 8000H ;Monitoreinsprungend

Page 9: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

9

Abb. 4.5 Symbole für Programm-Ablaufpläne

Struktur-

element

Klassische

Darstellung Struktogramme

<Eingangsgröße>

<Ausgangsgröße>

Schnittstelle

Sequenz

Verzweigung

Wiederholung

Anfang

Ende

<Block 1>

<Block 2>

<Block 2><Block 1>

<Bedingung>?ja nein<Bedingung>?

<Bedingung>?

ja nein

<Block 2>

<Block 3>

b1b2

bn<Block 1>

<Block n><Block 2>

<Block 1>

<Block 1>

für <Bedingung>

<Block>

<Block>

Schleife für <Bedingung>

<Bedingung>?

<Block 1>

<Bedingung>?

ja nein

<Block 2>

<Bedingung>?

<Block>

<Block>

janein

<Block 1>

ja nein<Bedingung>?

<Bedingung>?

<Block 2>

<Block 2>

Sprung ausSchleife

Schleife

<Block 1>

<Block 2>

Page 10: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

10

Abb. 4.6 Erstellen eines neuen Projektes

Page 11: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

11

Abb. 4.7 Speichern der Projektdatei: Ein_aus.uv2

Page 12: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

12

Abb. 4.8 Auswahl des Controllers

Page 13: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

13

Abb. 4.9 Auswahl des Derivates SAB 80C535 für die EURO-535-Karte

Page 14: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

14

Abb. 4.10 Einstellungen für die gewählte Hardwareumgebung     

Page 15: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

15

Abb. 4.11 Hinzufügen der Datei

Page 16: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

16

Abb. 4.12 Das editierte Programm EIN_AUS.asm

Page 17: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

17

Abb. 4.13 Das editierte Programm Ein_aus.asm mit Start/Stop Debug Session

Page 18: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

18

Abb. 4.14 Das editierte Programm Ein_aus.asm im Debug-Modus

Page 19: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

19

Abb. 4.15 Das editierte Programm Ein_aus.asm mit abgearbeiteten Befehlen

Page 20: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

20

Abb. 4.16 Einstellungen in der Registerkarte Debug

Page 21: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

21

Abb. 4.17 Das editierte Programm Ein_aus.asm nach Auslösen des Ladevorganges zur EURO_535

Page 22: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

22

Abb. 4.18 Debug-Fenster nach Verbindungsaufnahme mit der EURO_535-Karte mit MON51 und das Setzen

von Breakpoints

Page 23: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

23

Abb. 4.19 Breakpoint LICHT_AUS

Page 24: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

24

Abb. 4.20 Entwicklungsablauf

ProduktVorstellung

PrototypHardware

Design

Spezifi-kation

Produkt

Konstruk-tion

PrototypHardware

Endtest

PrototypHardware

SoftwareDesign

Prototyp

CodierungSoftwarePrototyp

EndtestSoftwarePrototyp

System

Integration

Beginn der

Produktion

Ü

BE

RP

ÜF

R

NG

U

Page 25: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

25

Abb. 4.21 Ablauf Programm-entwicklung

BSP_3.ASM

Start

ASCII-EditorTurbo-Pascal 6.0 Editor

Word in TXT-Format

BSP_2.ASMBSP_1.ASM

AssemblerASM51

BSP_4.C

C-51 Compiler

verschiebbarer Objektcode

Anwender BibliothekLibrary Manager

L51 Linker/LocatorBL51 Banking Linker

C-Libraries

PL/M-51

OHObjekt-Hex-Code-Wandler

BSP_GES.

Absolute Programme

CSEG, ORG

PC

80535MonitorEPROM

PC80535

EPROM

SP8051KE

Symbolprä-prozessor

HITOP

Simulator

PC

SP8051KE

Symbolprä-prozessor

SP8051KE

Symbolprä-prozessor

EmulatorHardwareohne

µ-Controller

Simulator Remote Debug Emulator EPROM

Page 26: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

26

Abb. 4.22 Speicherbereiche 8051 / 80535

Page 27: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

27

Tabelle 4.3 und Tabelle 4.4 Assembler Anweisungen

Symbolische Adresse

Anweisung

Operant Funktion Funktionsbeschreibung

Speicher Initialisierung und Reservierung[<name>:] DB <expression>

<string><list>

Define byte in program memory

Definiere Byte (8 Bit) im Programmspeicher

[<name>:] DW <expression><string><list>

Define word in program memory

Definiere Wort (16 Bit) im Programmspeicher

Page 28: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

28

Tabelle 4.3 und Tabelle 4.4 Assembler Anweisungen

Symbolische Adresse

Anweis-ung

Operant Funktion Funktionsbeschreibung

[<name>:] DBIT <expression> Advance bit location counter

Reserviere <expression> Byte im bitadressierbaren Bereich

Symbol Definitionen<name> EQU <expression> Create new symbol Definition eines neuen Symbols

(nicht redefinierbar)<name> SET <expression> Set symbol value

temporarilyDefinition eines neuen Symbols (redefinierbar)

USING <expression>- 0,1,2,3 -

Select register bank Wahl der aktuellen Registerbank mit R0, R1, R2, R3, R4, R5, R6, R7

<name> CODE <expression> Define code address symbol

Definition eines Symbols im Programmspeicher

<name> DATA <expression> Define data adress symbol Definition eines neuen Symbols iminternen Datenspeicher

<name> IDATA <expression> Define indirect data adress symbol

Definition eines neuen Symbols im indirekt adressierbaren internen Datenspeicher

<name> XDATA <expression> Define an off chip data adress symbol

Definition eines neuen Symbols imexternen Datenspeicher

<name> BIT <expression> Define a bit adress symbol Definition eines Symbols imbitadressierbaren Bereich

Page 29: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

29

Tabelle 4.3 und Tabelle 4.4 Assembler Anweisungen

Relative Segmente<segment-name>

SEGMENT

{CODE|XDATA|DATA|IDATA|BIT}[ _{PAGE|INPAGE|INBLOCK|BITADRESSABLE|UNIT}]

Declare relocatable segment. [Assign attributes]

Definition eines Segmentnamens mit einer Typangabe sowie ggf. Speichergrenzen

RSEG <segment-name>

Select relocatable segment

Aktivieren des vorher definierten relativen Segments <segment-name>

Page 30: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

30

Tabelle 4.3 und Tabelle 4.4 Assembler Anweisungen

Absolute SegmenteCSEG [AT<absolut

adress>]select code segment Die folgenden Befehle und Definitionen werden auf

absolute Adressen im CODE-Segment bezogenDSEG [AT<absolut

adress>]select internal data segment

Die folgenden Definitionen werden auf absolute Adressen im internen Datenspeicher-Segment bezogen

ISEG [AT<absolut adress>]

Select indirect internal segment

Die folgenden Definitionen werden auf absolute Adressen im indirekt adressierbaren Datenspeicher-Segment bezogen

XSEG [AT<absolut adress>]

select external data segment

Die folgenden Definitionen werden auf absolute Adressen im externen Datenspeicher-Segment bezogen

BSEG [AT<absolut adress>]

select bit adress segment

Die folgenden Definitionen werden auf absolute Adressen im bitadressierbaren Segment bezogen

Assembler Kontrolle für ZuständeORG <expression> Set location counter

valueSetzt den Adresszähler auf <expression>

END End of program Ende des Programms

Page 31: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

31

Abb. 4.23 Registerbänke

Registerbank 1

10H

17H

00H

07H08H

0FH

18H

1FHRegisterbank 3

Registerbank 2

Registerbank 0

@R1@R0R0

R1

R2R3R4R5R6

R7

kann Adressevon Speicher enthalten

Page 32: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

32

Tabelle 4.5 Interrupt Vektoren im Programmspeicherbereich des 8051

PC 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

Page 33: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

33

Abb. 4.24 Programmspeicher

0000H0FFFH

OFF-CHIP

ROM

4 K IN-Chip ROM /EA=1

FFFFH

TIMER 00BH Timer 0 Überlauf Interrupt

RESET00H Startadresse nach Reset

EXTI003H externer Interrupt 0

EXTI113H externer Interrupt 1

TIMER 11BH Timer 1 Überlauf Interrupt

SINT23H Interrupt serielle Schnittstelle

0FFH Für Erweiterungen-Software-Portierbarkeit

freihalten

Page 34: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

34

Abb. 4.25 Interner Datenspeicher

7FH

00H

2FH

80H

FFH

Registerbänke

RAM

1FH

RAM BIT ADRESS RAUM

21 SFR

Special Function

Registers

indirekt @Ri i=0,1

direkt adressierbar

nur direkt adressierbar

Page 35: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

35

Abb. 4.26 Externer Datenspeicher

0000H

FFFFH

über

nur indirekt adressierbar

@DPTR - @Ri

RAM

Page 36: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

36

Abb. 4.27 Bitadressierbarer Bereich

7FH

00H

2FH

80H

FFH

Registerbänke

RAM

1FH

RAM BIT ADRESS RAUM

Special Function

20H

20H 0001

2BH

20H.0

21H 0809

2AH

23H22H

2FH2EH2DH2CH

25H24H

29H28H27H26H

02

7F

Page 37: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

37

Abb. 4.28 Speicherbereiche - Segmente

direkt adressierbar

Programm-speicher

Datenspeicher Daten

speicher

interner

0000H

FFFFH

0000H

FFFFH

7FH

00H

2FH

80H

FFH

Registerbänke

RAM

1FHBSEG indirekt @Ri i=0,1

nur direkt

ISEG

DSEG

XSEGCSEG

interner / externer externer

adressierbar

Page 38: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

38

Tabelle 4.6 Assembler Controls.

Control Default Abkürzung

Funktion

[ { _ MOD51 } ] *[ { _ NOMOD51 } ] *

MOD51 - Mit MOD51 benutzt der Assembler die SFR- und Bitsymbole des SAB8051. NOMOD51 unterdrückt die Standardsymbole des 8051.

[ { _ DATE (<date>) } ] *

DATE () DA Text aus max. 9 Zeichen wird im Seitenkopf als Überschrift ausgegeben

[ { _ DEBUG } ] *[ { _ NODEBUG } ] *

NODEBUG DB / NODB

Aufnahme bzw. Unterdrückung der Symboltabelle in die Objektcodedatei für das symbolische Testen mit dem ETA

[ { _ EJECT } ] no EJECT EJ Papiervorschub auf Formularanfang[ { _ GEN } ] GE Generieren der Makro-Definition, der Makroaufrufe

und der Makroexpansionen in der List-Datei[ { _ GENONLY } ] GENONLY GO Generieren von ausschließlich Makroexpansionen in

der List-Datei, als ob die Expansion Teil des Quellenprogramms wäre.

[ { _ NOGEN } ] NOGE Generieren der Makro-Definitionen, der Makroaufrufe.

Page 39: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

39

Tabelle 4.6 Assembler Controls. Control Default Abkürzung Funktion

[ { _ LIST } ][ { _ NOLIST } ]

LIST LI / NOLI Erstellen bzw. Unterdrücken einer Übersetzungsliste

[ { _ MACRO [ (<memory percent>) } ] *[ { _ NOMACRO } ] *

MACRO (50)

MR / NOMR Auswerten und Expandieren von Makro-Aufrufen (bzw. keine Auswertung und Expansion bei NOMACRO). Prozentuale Zuweisung des verfügbaren Speichers

[ { _ OBJECT (<file>) } ] *[ { _ NOOBJECT } ] *

OBJECT (<source file.OBJ>)

OJ / NOOJ Erstellung bzw. Unterdrückung einer Objekt-codedatei

[ { _ PAGELENGTH (<n>) } ] *

PAGELENGTH (60)

PL Einstellung der Anzahl der Zeilen pro Seite (minimal 10, maximal 65535)

[ { _ PAGEWIDTH (<n>) } ] *

PAGEWIDTH (120)

PW Einstellung der Anzahl der Zeichen pro Zeile (72 <= n <= 132)

[ { _ PAGING } ] *[ { _ NOPAGING } ] *

PAGING PI / NOPI Aufteilung bzw. Nichtaufteilung der Über-setzungsliste in Seiten mit Überschrift

[ { _ PRINT (<file>) } ] *[ { _ NOPRINT } ] *

PRINT (<source file.LST>)

PR / NOPR Erstellung bzw. Unterdrückung einer Übersetzungs-Listendatei

Page 40: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

40

Tabelle 4.6 Assembler Controls.

[ { _ REGISTERBANK (<n> [...]) } ] *[ { _ NOREGISTERBANK } ] *

REGISTERBANK (0)

RB / NORB

Reservierung der benutzten Registerbänke im Programm Modul. Mit NORB wird keine Registerbank reserviert

[ { _ RESTORE } ] no RESTORE

RS Wiederaktivierung der zuletzt sichergestellten Steuerparameter LIST, GEN

[ { _ SAVE } ] no SAVE SA Sicherstellen der augenblicklichen Zustände der Steuerparameter LIST, GEN

[ { _ SYMBOLS } ] *[ { _ NOSYMBOLS } ] *

SYMBOLS SB / NOSB

Aufnahme bzw. Unterdrückung der Symboltabelle in die Übersetzungsdatei

[ { _ TITLE ('<string>') } ]

no TITLE TT Ausgabe der Zeichenfolge <string> in der Über-setzungszeile (max. 60 Zeichen) einer jeden Seite der List-Datei

[ { _ WORKFILES (ddd[, ddd]) } ] *

same drive as source file

WF Zuweisung Laufwerke für temporäre Arbeitsdateien des Assemblers

[ { _ XREF } ] *[ { _ NOXREF } ] *

NOXREF XR / NOXR

Aufnahme bzw. Unterdrückung der Symbol-Querverweisliste in die Übersetzungsdatei

Page 41: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

41

Tabelle 4.7 Program Status Word - Programm-Status-Wort

Abkürz-ung

AdresseBedeutung

CY BIT 0D7H Carry flagAC BIT 0D6H Auxiliary carry flag for BCD operationsF0 BIT 0D5H General purpose user flagRS1 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 flagF1 BIT 0D1H General purpose user flagP BIT 0D0H Parity flag. wird bei jeder Instruktion gesetzt,

rückgesetzt, ODD-EVEN von Akkumulator

Page 42: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

42

Tabelle 4.8 Special Function

Register nach funktionellen

Gruppen

Block Symbol Register Adresse Wert nach Reset

CPU ACC Akkumulator 0E0H1) 00HB Hilfsregister B 0F0H1) 00HDPTR Datenzeiger, High Byte

Low Byte83H82H

0000H

PSW Programm-Status-Wort 0D0H1) 00HSP Stapel-Zeiger 81H 07HPC Programm-Zähler 0000H

Interrupt IE Interrupt-Freigabe 0A8H1) 00HSystem IP Interrupt-Priorität 0B8H1) 00HPorts P0 Port 0 80H1) 0FFH

P1 Port 1 90H1) 0FFHP2 Port 2 0A0H1) 0FFHP3 Port 3 0B0H1) 0FFH

Serielle SCON Serielle Port Kontrolle 098H1) 00HSchnittstelle SBUF Serielle Ein-/ Ausgangspuffer 99H undefinedTimer 0/ TCON Zeitgeberkontrolle 88H1) 00HTimer 1 TMOD Zeitgebermodus 89H 00H

TH0,TL0

Zählerinhalt Zeitgeber 0 8CH8AH

0000H

TH1,TL1

Zählerinhalt Zeitgeber 1 8DH8BH

0000H

80535-ErweiterungInterrupt IEN0 Interrupt-Freigabe-Register 0 0A8H1) 00HSystem IEN1 Interrupt-Freigabe-Register 1 0B8H1) 00H

Page 43: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

43

Tabelle 4.8 Special Function Register nach funktionellen

Gruppen

BlockSymbol Register Adresse Wert nach

Reset

IP0 Interrupt Priorität Register 0 0A9H 00HIP1 Interrupt Priorität Register 1 0B9H XX00

0000B3)

IRCON Interrupt Anforderung Kontrolle 0C0H1) 00HTCON2) Zeitgeber 1 Kontrolle 88H1) 00HT2CON2) Zeitgeber 2 Kontrolle 0C8H1) 00H

Ports P4 Port 4 0E8H1) 0FFHP5 Port 5 0F8H1) 0FFHP6 Port 6, Analog/Digital Input 0DBH

Power Saving Mode

PCON Energiespar-ModusPower Control Register

87H 00H

SerielleSchnittstelle

ADCON A/D Wandlung, aber hier 7. Bit BD Baudrate 4800/9600

0D8H1) 00H

PCON2) Power Control, aber hier 7. Bit SMOD Baudrate verdoppelt

87H undefined

Compare/ CCEN Vergleich Übernahme Freigabe 0C1H 00HCapture-Unit

CCH1CCL1

Vergleich Übernahme Register 1 0C3H0C2H

00H

(CCU) CCH2CCL2

Vergleich Übernahme Register 2 0C5H0C4H

00H

CCH3CCL3

Vergleich Übernahme Register 3 0C7H0C6H

00H

CCH4CCL4

Vergleich Übernahme Register 4 0CFH0CEH

00H

CRCHCRCL

Vergleich /Lade/Übernahme Register

0CBH0CAH

00H

TH2TL2

Zählerinhalt Zeitgeber 2 0CDH0CCH

0000H

T2CON Zeitgeberkontrolle 2 0C8H1) 00HA/D ADCON A/D-Wandler Kontrolle 0D8H1) 00HWandler ADDAT A/D-Wandler Datenregister 0D9H 00H

DAPR D/A-Wandler Kontrolle 0DAH 00H

Page 44: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

44

Tabelle 4.9 Wichtige Schreibweisen und Bedeutungen für die Befehle

Abkürzung Bedeutung#data Daten sind in der Instruktion codiert - # = Zahldata addr Speicheradresse innerhalb des ChipsRr 0 r 7 Allgemein verwendbares Register der Registerbänke@Rr 0 r 1 indirekt adressierbares Register der Registerbänkecode addr 16-Bit-Adresse decodiert als:

volle 16-Bit-Adresse11-Bit-Seitenadresse8-Bit relativer Offset

A AkkumulatorC Carry Flagbit addr Bit-Adresse auf dem Chip/ bit addr Komplementierter Inhalt der Bit-AdresseDPTR Datenzeiger ( Data Pointer )PC Programmzähler ( Program Counter )AB Register Paar

Page 45: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

45

Tabelle 4.10 Registerinhalte nach RESET mit Übersetzung

Register Register 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 Serielle Ein-/ Ausgangspuffer

SBUF Undef.

Stack Pointer 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

Page 46: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

46

Tabelle 4.10 Registerinhalte nach RESET mit Übersetzung

80535-Erweiterung 80535-Erweiterung

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

A/D Conv. data Register A/D-Wandler Datenreg. 8 ADDAT 00H

Page 47: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

47

Tabelle 4.11 PCON BITS Power Control Bits

    87H SMOD PDS IDLS - GF1 GF0 PDE IDLE PCON   

Diese Bits werden nicht für den Stromsparmodus verwendet  

Bit FunktionPDS 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 IDLE-Mode (nur CPU ohne Takt) umgeschaltet wird.

GF1 Bit zur allgemeinen VerwendungGF0 Bit zur allgemeinen VerwendungPDE Power Down Enable. Ermöglicht bei "1" den Stromsparmodus IDLE Idle mode Enable bit. Ermöglicht bei "1" den IDLE-Mode

Page 48: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

48

Tabelle 4.12 IEN0 Interrupt 0 Control Bits

  A8H 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)

Page 49: Mikrocomputertechnik 4 Assembler für die 8051-Controller-Familie Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen

49

Tabelle 4.13 IP0 Control Bits

Bit FunktionWDTS Watchdog timer status flag

"1" wird durch Hardware bei Start des Watchdog Timers erzeugt. Kann durch Software ausgelesen werden.

0A9H - WDTS IP0.5 IP0.4 IP0.3 IP0.2 IP0.1 IP0.0 IP0

 Wird nicht für Watchdog verwendet