Impressum
< Speicher des 8051 Inhalt

Special Function Register (SFR)

Das Special Funtction Register (kurz SFR) ist ein 128 Byte großer Speicherbereich. Jedes Byte im SFR hat eine spezielle Funktion. Eine dieser Speicherzellen ist der Accumulator, welcher für Berechnungen speziell verbunden ist. Eine andere Gruppe sind die Ports P0 bis P3 (bzw. P0 bis P4) welche einen Datenaustausch zwischen dem Mikrocontroller und der Peripherie zulassen. Andere Register in diesem Speicherbereich dienen zur Konfiguration des Mikrocontrollers, so können diese Timer aktivieren oder die serielle Schnittstelle konfigurieren.
Je nach Mikrocontroller-Modell variiert die Ausstattung der integrierten Hardware (USB, CAN-Bus, I2C-Bus, AD-Wandler, ...). Da diese Hardware angesteuert und eingestellt werden muss, befinden sich hierfür immer Speicherzellen im SFR, welche somit je nach Modell unterschiedlich belegt sind. Die Grundausstattung des SFR ist jedoch immer gleich.
Im folgenden werden drei Belegungen des SFR betrachtet. Die erste stellt die minimale Grundausstattung eines jeden 8051 dar, die zweite ist die des AT89S8252, welcher unsere alten Mikrocontroller-Boards zierte und zu guter letzt, das SFR des AT89C51CC03, welcher auf unserern aktuellen Boards verbaut ist.

SFR Grundausstattung

Hier sind 21 der 128 Speicherplätze belegt. Alle anderen sind für spätere Erweiterungen reserviert und dürfen weder gelesen noch beschrieben werden.
Die Grundausstattung umfasst neben dem obligatorischen Accu und B-Register, welche beide für Berechnungen benötigt werden, das Programm Status Word (PSW), in welchem jedes Bit eine Bedeutung hat (Carry, Half-Carry, Parität etc.). Das SFR enthält ebenso den 16-Bit DataPointer (DPL, DPH), 4 Ports (P0-P3), zwei Timer (T0,T1) welche mittels TCon und TMod konfiguriert werden und die Register TL0/1 und TH0/1 als Variablen verwenden.
Des Weitern ist eine serielle Schnittstelle vorhanden (SCon, SBuf). Das Register PCon dient der Power-Konfiguration des Mikrocontrollers (Sleep-Mode etc.). Die Register IP und IE dienen der Interrupt-Konfiguration.
+0 +1 +2 +3 +4 +5 +6 +7
0F8h 0FFh
0F0h B
00000000
0F7h
0E8h 0EFh
0E0h ACCU
00000000
0E7h
0D8h 0DFh
0D0h PSW
00000000
0D7h
0C8h 0CFh
0C0h 0C7h
0B8h IP
xx000000
0BFh
0B0h P3
11111111
0B7h
0A8h IE
0x000000
0AFh
0A0h P2
11111111
0A7h
098h SCON
00000000
SBUF
xxxxxxxx
09Fh
090h P1
11111111
097h
088h TCON
00000000
TMOD
00000000
TL0
00000000
TL1
00000000
TH0
00000000
TH1
00000000
08Fh
080h P0
11111111
SP
00000111
DPL
00000000
DPH
00000000
PCON
0xxx0000
087h
+0 +1 +2 +3 +4 +5 +6 +7

SFR des AT89S8252

Der AT89S8252 verfügt über alle Komponenten eines 8051 Controllers. Zusätzlich besitzt er noch folgende Komponenten:
+0 +1 +2 +3 +4 +5 +6 +7
0F8h 0FFh
0F0h B
00000000
0F7h
0E8h 0EFh
0E0h ACCU
00000000
0E7h
0D8h 0DFh
0D0h PSW
00000000
SPCR
000001xx
0D7h
0C8h T2CON
00000000
T2MOD
xxxxxx00
RCAP2L
00000000
RCAP2H
00000000
TL2
00000000
TH2
00000000
0CFh
0C0h 0C7h
0B8h IP
xx000000
0BFh
0B0h P3
11111111
0B7h
0A8h IE
0x000000
SPSR
00xxxxxx
0AFh
0A0h P2
11111111
0A7h
098h SCON
00000000
SBUF
xxxxxxxx
09Fh
090h P1
11111111
WMCON
00000010
097h
088h TCON
00000000
TMOD
00000000
TL0
00000000
TL1
00000000
TH0
00000000
TH1
00000000
08Fh
080h P0
11111111
SP
00000111
DP0L
00000000
DP0H
00000000
DP1L
00000000
DP1H
00000000
SPDR
xxxxxxxx
PCON
0xxx0000
087h
+0 +1 +2 +3 +4 +5 +6 +7

SFR des AT89C51CC03

Der AT89C51CC03 verfügt über die Komponenten des Standart 8051, sowie den Timer 2, welcher schon im AT89S8252 vorhanden ist (rot hinterlegte Speicherzellen).
+0 +1 +2 +3 +4 +5 +6 +7
0F8h IPL1
xxxxx000
CH
00000000
CCAP0H
00000000
CCAP1H
00000000
CCAP2H
00000000
CCAP3H
00000000
CCAP4H
00000000
0FFh
0F0h B
00000000
ADCLK
xxx00000
ADCON
x0000000
ADDL
00000000
ADDH
00000000
ADCF
00000000
IPH1
xxxxx000
0F7h
0E8h IE1
xxxx000
CL
00000000
CCAP0L
00000000
CCAP1L
00000000
CCAP2L
00000000
CCAP3L
00000000
CCAP4L
00000000
0EFh
0E0h ACCU
00000000
0E7h
0D8h CCON
00000000
CMOD
00xxx000
CCAPM0
x0000000
CCAPM1
x0000000
CCAPM2
x0000000
CCAPM3
x0000000
CCAPM4
x0000000
0DFh
0D0h PSW
00000000
FCON
00000000
EECON
xxxxxx00
FSTA
xxxxxx00
SOCON
00010100
SPSCR
00000000
SPDAT
xxxxxxxx
0D7h
0C8h T2CON
00000000
T2MOD
xxxxxx00
RCAP2L
00000000
RCAP2H
00000000
TL2
00000000
TH2
00000000
CANEN1
x0000000
CANEN2
00000000
0CFh
0C0h P4
xx111111
CANGIE
xx00000x
CANIE1
x0000000
CANIE2
00000000
CANIDM1
xxxxxxxx
CANIDM2
xxxxxxxx
CANIDM3
xxxxxxxx
CANIDM4
xxxxxxxx
0C7h
0B8h IPL0
x0000000
SADEN
00000000
CANSIT1
00000000
CANSIT2
00000000
CANIDT1
xxxxxxxx
CANIDT2
xxxxxxxx
CANIDT3
xxxxxxxx
CANIDT4
xxxxxxxx
0BFh
0B0h P3
11111111
CANPAGE
00000000
CANSTCH
xxxxxxxx
CANCONCH
xxxxxxxx
CANBT1
xxxxxxxx
CANBT2
xxxxxxxx
CANBT3
xxxxxxxx
IPH0
x0000000
0B7h
0A8h IE0
0x000000
SADDR
00000000
CANGSTA
x0x00000
CANGCON
00000x00
CANTIML
00000000
CANTIMH
00000000
CANSTMPL
00000000
CANSTMPH
00000000
0AFh
0A0h P2
11111111
CANTCON
00000000
AUXR1
xxxx00x0
CANMSG
xxxxxxxx
CANTTCL
00000000
CANTTCH
00000000
WDTRST
11111111
WDTPRG
xxxxxxx0
0A7h
098h SCON
00000000
SBUF
00000000
CANGIT
0x000000
CANTEC
00000000
CANREC
00000000
CKCON1
xxxxxxx0
09Fh
090h P1
11111111
097h
088h TCON
00000000
TMOD
00000000
TL0
00000000
TL1
00000000
TH0
00000000
TH1
00000000
AUXR
x0010100
CKCON0
00000000
08Fh
080h P0
11111111
SP
00000111
DPL
00000000
DPH
00000000
PCON
0xxx0000
087h
+0 +1 +2 +3 +4 +5 +6 +7

Speicherzellen im SFR

ACCU

B

PSW

P0

P1

P2

P3

IE

TCON

TMOD

TL0

TL1

TH1

TH0

PCON

SP

DPL

DPH

SCON

SBUF

IP

DP0L

DP1L

DP0H

DP1H

T2CON

T2MOD

TL2

TH2

IE0

IE1

P4

IPL0

IPH0

IPL1

IPH1

Valid HTML 4.01 Transitional