Post on 23-Feb-2016
description
transcript
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
1
Mikrocomputertechnik
Herzlich WillkommenJürgen Walter
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
2
Abb. 4.1 Zahlendarstellung
0101 1001
Low NibbleHigh Nibble
5 9 Hexadezimal 8 9 Dezimal
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
4
Tabelle 4.1 Übersetzung des Codes in eine Hexadezimal
Bitkombination Als Hexadezimalzahl Mnemotechnischer Code
0111 0100B 74H mov A,
0101 1001B 59H #89
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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.2setzenLicht aus
Sprungaus
Schleife
Schleife für Tastenbetätigung
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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>
ja nein
<Block 1>
ja nein<Bedingung>?
<Bedingung>?
<Block 2>
<Block 2>
Sprung ausSchleife
Schleife
<Block 1>
<Block 2>
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
10
Abb. 4.6 Erstellen eines neuen Projektes
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
11
Abb. 4.7 Speichern der Projektdatei: Ein_aus.uv2
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
12
Abb. 4.8 Auswahl des Controllers
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
13
Abb. 4.9 Auswahl des Derivates SAB 80C535 für die EURO-535-Karte
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
14
Abb. 4.10 Einstellungen für die gewählte Hardwareumgebung
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
15
Abb. 4.11 Hinzufügen der Datei
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
16
Abb. 4.12 Das editierte Programm EIN_AUS.asm
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
17
Abb. 4.13 Das editierte Programm Ein_aus.asm mit Start/Stop Debug Session
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
18
Abb. 4.14 Das editierte Programm Ein_aus.asm im Debug-Modus
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
19
Abb. 4.15 Das editierte Programm Ein_aus.asm mit abgearbeiteten Befehlen
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
20
Abb. 4.16 Einstellungen in der Registerkarte Debug
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
21
Abb. 4.17 Das editierte Programm Ein_aus.asm nach Auslösen des Ladevorganges zur EURO_535
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
22
Abb. 4.18 Debug-Fenster nach Verbindungsaufnahme mit der EURO_535-Karte mit MON51 und das Setzen
von Breakpoints
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
23
Abb. 4.19 Breakpoint LICHT_AUS
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
24
Abb. 4.20 Entwicklungsablauf
ProduktVorstellung
PrototypHardware
Design
Spezifi-kation
Produkt
Konstruk-tion
PrototypHardware
Endtest
PrototypHardware
SoftwareDesign
Prototyp
CodierungSoftwarePrototyp
EndtestSoftwarePrototyp
SystemIntegration
Beginn derProduktion
ÜBERP
ÜF
R
NG
U
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
25
Abb. 4.21 Ablauf Programm-entwicklung
BSP_3.ASM
Start
ASCII-Editor Turbo-Pascal 6.0 EditorWord 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
PC 80535EPROM
SP8051KE
Symbolprä-prozessor
HITOPSimulator
PC
SP8051KE
Symbolprä-prozessor
SP8051KE
Symbolprä-prozessor
EmulatorHardwareohne
µ-Controller
Simulator Remote Debug Emulator EPROM
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
26
Abb. 4.22 Speicherbereiche 8051 / 80535
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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>
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
30
Tabelle 4.3 und Tabelle 4.4 Assembler Anweisungen Absolute Segmente
CSEG [AT<absolut adress>]
select code segment Die folgenden Befehle und Definitionen werden auf absolute Adressen im CODE-Segment bezogen
DSEG [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
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
31
Abb. 4.23 Registerbänke
Registerbank 1
10H
17H
00H
07H08H
0FH
18H
1FHRegisterbank 3
Registerbank 2
Registerbank 0
@R1@R0R0
R1R2R3R4R5R6R7
kann Adressevon Speicher enthalten
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
32
Tabelle 4.5 Interrupt Vektoren im Programmspeicherbereich des 8051PC 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
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
33
Abb. 4.24 Programmspeicher
0000H0FFFH
OFF-CHIPROM
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-Portierbarkeitfreihalten
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
34
Abb. 4.25 Interner Datenspeicher
7FH
00H
2FH
80H
FFH
Registerbänke
RAM
1FHRAM BIT ADRESS RAUM
21 SFR
Special Function
Registers
indirekt @Ri i=0,1
direkt adressierbar
nur direkt adressierbar
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
35
Abb. 4.26 Externer Datenspeicher
0000H
FFFFH
über
nur indirekt adressierbar
@DPTR - @Ri
RAM
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
36
Abb. 4.27 Bitadressierbarer Bereich
7FH
00H
2FH
80H
FFH
Registerbänke
RAM
1FHRAM BIT ADRESS RAUM
Special Function
20H
20H 0001
2BH
20H.0
21H 0809
2AH
23H22H
2FH2EH2DH2CH
25H24H
29H28H27H26H
02
7F
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
DSEGXSEGCSEG
interner / externer externer
adressierbar
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
38
Tabelle 4.6 Assembler Controls. Control Default Abkürzu
ngFunktion
[ { _ 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.
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
45
Tabelle 4.10 Registerinhalte nach RESET mit Übersetzung
Register Register Symbol WertAccumulator Akkumulator ACC 00HMultiplicationsregister Hilfsregister B B 00HData Pointer Datenzeiger DPTR 0000HInterrupt Enable Interrupt Freigabe IEN0,IEN1 00HInterrupt Priority Interrupt Priorität IP0, IP1 00HPort 0 Port 0 P0 0FFHPort 1 Port 1 P1 0FFHPort 2 Port 2 P2 0FFHPort 3 Port 3 P3 0FFHProgram Counter Programm Zähler PC 0000HProgram Status Word Programm Status Wort PSW 00HSerial Port Control Serielle Port Kontrolle SCON 00HSerial I/O-Buffer Serielle Ein-/
AusgangspufferSBUF Undef.
Stack Pointer Stapel-Zeiger SP 07HTimer Control Zeitgeberkontrolle TCON 00HTimer Mode Zeitgebermodus TMOD 00HTimer 0 Counter Zählerinhalt Zeitgeber 0 TH0,TL0 0000HTimer 1 Counter Zählerinhalt Zeitgeber 1 TH1,TL1 0000H
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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)
Mik
roco
mpu
tert
echn
ik 4
Ass
embl
er fü
r di
e 80
51-C
ontr
olle
r-Fa
mili
e
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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