特殊功能寄存器简言之就是有特殊用途的寄存器,一般来说,单片机的各种片上资源如串口、定时器/计数器等都依靠特殊功能寄存器来控制。其实,特殊功能寄存器的划分界限是模糊的,因为其位于片内RAM存储器寻址区,我们在这里进行介绍,在后面的存储器讲解中也会提到特殊功能寄存器。
标准的8051内部有21个特殊寄存器,某些新的单片机则提供了更多的特殊功能寄存器,因为它们往往提供了更多的片上资源。典型的特殊功能寄存器如表1-3所示。
表1-3 特殊功能寄存器(SFR)
符 号 |
特殊功能寄存器名称 |
地 址 |
ACC |
累加器 |
E0H |
B |
乘法寄存器 |
F0H |
PSW |
程序状态字 |
D0H |
SP |
堆栈指针 |
81H |
DP0L |
数据指针DPTR0低8位 |
82H |
DP1L |
数据指针DPTR1低8位 |
84H |
DP0H |
数据指针DPTR0高8位 |
83H |
DP1H |
数据指针DPTR1高8位 |
85H |
IE |
中断允许控制器 |
A8H |
IP |
中断优先控制器 |
D8H |
P0 |
I/O端口0 |
80H |
P1 |
I/O端口1 |
90H |
P2 |
I/O端口2 |
A0H |
P3 |
I/O端口3 |
B0H |
PCON |
电源控制及波特率选择 |
87H |
SCON |
串行口控制器 |
98H |
SBUF |
串行数据缓冲器 |
99H |
TCON |
定时/计数器控制 |
88H |
T2CON |
定时/计数器2控制 |
C8H |
TMOD |
定时/计数器方式选择 |
89H |
T2MOD |
定时/计数器2方式选择 |
C9H |
TL0 |
定时/计数器0低8位 |
8AH |
TL1 |
定时/计数器1低8位 |
8BH |
TH0 |
定时/计数器0低8位 |
8CH |
TH1 |
定时/计数器1高8位 |
8DH |
TL2 |
定时/计数器2低8位 |
CCH |
TH2 |
定时/计数器2高8位 |
CDH |
RCAP2L |
定时/计数器2陷阱寄存器低字节 |
CAH |
RCAP2H |
定时/计数器2陷阱寄存器高字节 |
CBH |
AUXR |
辅助寄存器 |
8EH |
AUXR1 |
辅助寄存器1 |
A2H |
WDTRST |
WDT(看门狗)控制 |
A6H |
从表1-3中可以看出,特殊功能寄存器往往和单片机的各种功能部件对应,这在后面的程序设计中会经常用到。