特殊功能寄存器地址表
SFR |
符号 |
字节 地址 |
位地址和位名称 |
|||||||
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|||
P0口 |
P0 |
80H |
P0.7 |
P0.6 |
P0.5 |
P0.4 |
P0.3 |
P0.2 |
P0.1 |
P0.0 |
87H |
86H |
85H |
84H |
83H |
82H |
81H |
80H |
|||
堆栈指针 |
SP |
81H |
||||||||
数据指针低字节 |
DPL |
82H |
||||||||
数据指针高字节 |
DPH |
83H |
||||||||
…… (此处保留3字节) |
||||||||||
电源控制与波特率选择 |
PCON* |
87H |
SMOD |
GF1 |
GF0 |
PD |
IDL |
|||
定时器计数器控制寄存器 |
TCON* |
88H |
TF1 |
TR1 |
TF0 |
TR0 |
IE1 |
IT1 |
IE0 |
IT0 |
8FH |
8EH |
8DH |
8CH |
8BH |
8AH |
89H |
88H |
|||
定时器/计数器方式控制 |
TMOD * |
89H |
GATE |
C/T^ |
M1 |
M0 |
GATE |
C/T^ |
M1 |
M0 |
定时器/计数机0低字节 |
TL0 |
8AH |
||||||||
定时器/计数器1低字节 |
TL1 |
8BH |
||||||||
定时器/计数器0高字节 |
TH0 |
8CH |
||||||||
定时器/计数器1高字节 |
TH1 |
8DH |
||||||||
……(此处保留2字节) |
||||||||||
P1口 |
P1 |
90H |
P1.7 |
P1.6 |
P1.5 |
P1.4 |
P1.3 |
P1.2 |
P1.1 |
P1.0 |
97H |
96H |
95H |
94H |
93H |
92H |
91H |
90H |
|||
……(此处保留7字节) |
||||||||||
串行控制 |
SCON |
98H |
SM0 |
SM1 |
SM2 |
REN |
TB8 |
RB8 |
TI |
RI |
9FH |
9EH |
9DH |
9CH |
9BH |
9AH |
99H |
98H |
|||
串行数据线缓冲器 |
SBUF |
99H |
||||||||
P2口 |
P2 |
A0H |
P2.7 |
P2.6 |
P2.5 |
P2.4 |
P2.3 |
P2.2 |
P2.1 |
P2.0 |
A7H |
A6H |
A5H |
A4H |
A3H |
A2H |
A1H |
A0H |
|||
中断允许控制 |
IE * |
A8H |
EA |
ES |
ET1 |
EX1 |
ET0 |
EX0 |
||
AFH |
AEH |
ADH |
ACH |
ABH |
AAH |
A9H |
A8H |
|||
P3口 |
P3 |
B0H |
P3.7 |
P3.6 |
P3.5 |
P3.4 |
P3.3 |
P3.2 |
P3.1 |
P3.0 |
B7H |
B6H |
B5H |
B4H |
B3H |
B2H |
B1H |
B0H |
|||
中断优先控制 |
IP * |
B8H |
PS |
TP1 |
PX1 |
PT0 |
PX0 |
|||
BCH |
BBH |
BAH |
B9H |
B8H |
||||||
定时器/计数器2控制寄存器 |
T2CON |
C8H |
TF2 |
EXF2 |
RCLK |
TCLK |
EXEN2 |
TR2 |
C/T2 |
CP/RL2 |
CF |
CE |
CD |
CC |
CB |
CA |
C9 |
C8 |
|||
RCAP2L |
CAH |
|||||||||
RCAP2H |
CBH |
|||||||||
定时器/计数器2低字节 |
TL2 |
CCH |
||||||||
定时器/计数器2高字节 |
TH2 |
CDH |
||||||||
程序状态寄存器 |
PSW |
D0H |
CY |
AC |
F0 |
RS1 |
RS0 |
OV |
P |
|
D7H |
D6H |
D5H |
D4H |
D3H |
D2H |
D1H |
D0H |
|||
累加器 |
ACC |
E0H |
||||||||
B寄存器 |
B |
F0H |
****************************************************************************************
SMOD 波特率加倍位;如果将定时器1作为串行端口的波特率时钟,且工作于模式1、2或3,那么将SMODH设置为1可使波特率加倍
GF1 通用标志位1
GFV 通用标志位V
PD 掉电模式位;对于CMOS版本的8V51,将该位置1可以进入掉电模式
IDL 空闲模式位;对于CMOS版本的8V51,将该位置1可以进入空闲模式
*****************************************************************************************
TF1 定时器1溢出标志;当定时器Y计数器发生溢出时由硬件置位;该位可以用软件清零,当CPU转向中断服务程序时该位被自动清零。
TR1 定时器1运行控制,由软件置位和清零,分别可以启动和停止定时Y计数器1。
TF0 定时器0溢出标志。
TR0 定时器0运行控制。
IE1 外部中断1的中断标志,当探测到外部中断1时由硬件置位,当转入中断服务程序后用软件清零。
IT1 外部中断1控制位,其置位和清零由软件设置,分别对应着外部中断1的下降沿触发和低电平触发
IE0 外部中断0的中断标志。
IT0 外部中断0控制位。
*******************************************************************************************
SM0 串行端口方式位V,参阅表DX1
SM1 串行端口方式位1,参阅表DX1
SM2 串行端口方式位2,可将方式2和方式3设置为多处理器通信方式。在方式2和方式3中,如果将SM2位设置为1,当接收到的第9数据位(RB8)为V时RI不置位。在方式1 中,如果未接收到有效停止位则RI不 被置位。在方式V中,SM2必须设置为0。
REN 接收启用位,由软件置位Y清零,分别对应接收的启用/禁用。
TB8 发送数据位8,对于方式2和方式3,TB8作为第9数据位发送,由软件置位/清零
RB8 接收数据位8,在方式2和方式3中,RB8是接收到的第数据位。对于方式1,如果SM2=V,RB8存放的是接收到的停止位。
TI 发送中断标志,对于方式0,当发送完第8位数据后由硬件置位,在其他方式下,在开始发送停止位的同时由硬件置位。TI位必须由软件清零。
RI 接收中断标志,对于方式0,接收完第8位数据后,该位由硬件置位。在其他方式下,当接收到停止位后,该位由件置位。RI必须由软件清零。
******************************************************************************************
EA 启用/禁用所有中断。如果EA=0,所有的中断都被禁用。如果EA=1,各中断的启用或禁用通过对各自的启用位进行置位或清零来设置.
ET2 启用/禁用定时器2的溢出或捕捉中断(仅对于80×2).
ES 启用/禁用串行端口中断.
ET1 启用/禁用定时器1溢出中断.
EX1 启用/禁用外部中断1.
ET0 启用/禁用定时器0溢出中断.
EX0 启用/禁用外部中断0.
*******************************************************************************************
PT2 定时器2中断优先级(只有80×2).
PS 串行端口中断优先级.
PT1 定时器1中断优先级.
PX1 外部中断1优先级.
PT0 定时器0中断优先级.
PX0 外部中断0优先级.
*******************************************************************************************
TF2 定时器2溢出标志,硬件置位软件清零。当RCLKH=1或TCLKH=H1时,TF2不会被置位.
EXF2 定时器2外部标志,当T2EX输入引脚的负跳变导致发生捕捉或重载且EXEN2=1时,该位由硬件置位。在定时器2中断被允许时,EXF2=1将使CPU转向定时器2的中 断服务子例程。EXF2必须由软件清零.
RCLK 接收时钟,当RCLK=1,使得串行端口工作在方式1和方式3时由定时器2的溢出作为接收时钟;RCLK=0导致串行端口工作在方式1和方式3时由定时器1的溢出作为 接收时钟.
TCLK 发送时钟,TCLK=1导致串行端口工作在方式和方式3时由定时器2的溢出作为发送时钟;TCLK=0导致串行端口工作在方式1和方式3时由定时器1的溢出作为发送时 钟
EXEN2 定时器2外部启用,如果将其置位,当定时器2不用作串行波特率时钟时,T2EX上的负跳变将导致一次捕捉或重载.
TR2 定时器2运行位,由软件控制定时器2的启动和停止,置位该位可启动定时器2。
C/T2 定时器2的计数器Y定时器选择,V=内部定时器;1=外部事件计数器(下降沿触发)
CP/RL2 定时器2的捕捉Y重载选择,当该位置1时,如果EXEN2=1,那么在T2EX产生负跳变时捕捉;当该位清零时,如果EXEN2=1,那么定时器2溢出或在T2EX出现负跳 变时将自动重装载。当RCLK=1H或TCLK=1时该位将被忽略,定时器2将工作在自动重装载方式.
<单片机内部结构图>