04 assembler fuer die 8051-controller-familie.pptx

Download Report

Transcript 04 assembler fuer die 8051-controller-familie.pptx

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
5
1,8k 
1,8k 
1,8k 
L1
L2
L3
VGC19
S2.1
P3.2
P1.1
VGC13
VGA19
S2.2
VGC18
P3.3
Prozessoranschlüsse
P1.2
S2.4 VGA14
S2.5
T1
T2
S2.3
P3.4
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
Symbolpräprozessor
SP8051KE
OH
Objekt-HexCode-Wandler
PC
80535
EPROM
Hardware
ohne
µ-Controller
Emulator
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
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
31
Stand November 2007
1FH
Registerbank 3
18H
17H
Registerbank 2
10H
0FH
Registerbank 1
08H
07H
Registerbank 0
00H
R7
R6
R5
R4
R3
R2
R1
R0
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