作为51单片机特殊功能寄存器 速查表,在编程时可提供快速参考,对初学者可能不友好,建议使用电脑查看。
特殊功能寄存器表:SFR
名称 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 | 地址 |
---|---|---|---|---|---|---|---|---|---|
TCON* | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 | 88H |
TMOD | GATE | C/ T ‾ \overline{T} T | M1 | M0 | GATE | C/ T ‾ \overline{T} T | M1 | M0 | 89H |
PCON | SMOD | - | - | - | - | - | - | - | 87H |
SCON* | SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI | 98H |
IE* | EA | - | ET2 | ES | ET1 | EX1 | ET0 | EX0 | A8H |
P3* | R D ‾ \overline{RD} RD | W R ‾ \overline{WR} WR | T1 | T0 | I N T 1 ‾ \overline{INT1} INT1 | I N T 0 ‾ \overline{INT0} INT0 | TXD | RXD | B0H |
IP* | - | - | - | PS | PT1 | PX1 | PT0 | PX0 | B8H |
PSW* | CY | AC | F0 | RS1 | RS0 | OV | - | P | D0H |
ACC* | E0H |
-
XX*代表该寄存器可以位寻址
-
P0* SP DPL DPH TL0 TL1 TH0 TH1 P1* SBUF P2* B* 不详细描述
-
SP复位值为0x07H
-
B用作数值寄存器时,等同于立即数#F0H的一个别名
定时器/计数器控制:TCON
0x88 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|
符号 | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
位地址 | 0x8F | 0x8E | 0x8D | 0x8C | 0x8B | 0x8A | 0x89 | 0x88 |
描述:
TF1 ,TF0 :加法计数器(THx/TLx)溢出标志位,溢出后硬件自动置 1,响应中断服务程序后自动清 0
TR1 ,TR0 :C/T运行控制位。置 1 后开始运行,清 0 停止运行
IT1 ,IT0 :外部中断引脚触发方式选择
- ITx = 1为脉冲触发模式,外部中断引脚 I N T x ‾ \overline{INTx} INTx出现下降沿脉冲时产生外部中断请求信号
- ITx = 0为电平触发模式,外部中断引脚 I N T x ‾ \overline{INTx} INTx处于低电平状态时产生外部中断请求信号
IE1 ,IE0 :外部中断请求标志位,当CPU检测到外部中断请求信号后硬件自动置 1。
- 当 I N T x ‾ \overline{INTx} INTx引脚以下降沿脉冲方式触发时,响应中断请求后由硬件自动清 0;
- 当 I N T x ‾ \overline{INTx} INTx引脚以低电平方式触发时,需要由软件清 0
定时器/计数器模式控制:TMOD
0x89 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|
符号 | GATE | C/T# | M1 | M0 | GATE | C/T# | M1 | M0 |
定时器 | T1 | T0 |
描述:
M1 | M0 | 模式 | 描述 | 结构 |
---|---|---|---|---|
0 | 0 | 0 | 13位C/T模式。 | 由THx的全8位和TLx的低5位构成 |
0 | 1 | 1 | 16位C/T模式。 | THx为高字节,TLx为低字节 |
1 | 0 | 2 | 8位自动装载C/T模式。 | THx为8位预加载计数器,TLx为8位加法计数器,中断触发加载 |
1 | 1 | 3 | 组合模式 | T0:TL0可选作8位C/T,TH0固定为T; T1:可选作C/T |
C/ T ‾ \overline{T} T:工作方式选择位,0 定时器(T)工作方式,1 计数器(C)工作方式
GATE:门控位,C/T启动是否受外部中断引脚控制。
- GATE=0 时,C/T只受 TRx位 控制;
- GATE=1时,C/T由INTx引脚和 TRx位 共同控制,只有在INTx引脚为高电平和TRx=1时,C/T才会运行。
注意:
-
在T0/T1用作定时器时,输入时钟源由晶体振荡器12分频后提供,与机器周期相同
-
定时时间 = ( 2 计 数 宽 度 2^{计数宽度} 2计数宽度 - 计数初值 ) x 单位计数时长。28/13/16 = 256/8192/65536。THx=计数初值/256、TLx=计数初值%256
-
T0/T1处于模式0和模式1:
出现溢出后,需要软件再次装载计数初值
-
T0/T1处于模式2:
THx存有计数初值,TLx用作8位加法计数器,当数据溢出时,THx会自动向TLx覆盖写入计数初值
-
T0处于模式3:
-
T0 ,在该模式下,T0 被拆分两个独立的8位TL0和TH0。TL0可以用作标准的计数器/定时器,T0控制位和引脚信号都归其使用。TH0固定为定时器使用(时钟源由晶振分频后提供,不能由外部引脚输入),并借用T1的控制位TR1 TF1 ET1PT1,成为T1的中断信号源
T0在模式3下,TL0和TH0结构图:
-
T1 ,当T0工作在模式3时,T1可用作定时器/计数器使用。T1在模式0、模式1或模式2时,其TR1、TF1、ET1和PT1不可用,溢出信号直连串口,对应GATE位无效。设置为模式3可以使T1停止运行
T0在模式3下,T1结构图:
-
串行控制:SCON
0x98 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|
符号 | SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI |
位地址 | 0x9F | 0x9E | 0x9D | 0x9C | 0x9B | 0x9A | 0x99 | 0x98 |
描述:
SM0 | SM1 | 模式 | 功能 | 波特率 |
---|---|---|---|---|
0 | 0 | 0 | 同步移位寄存器输入/输出 | f o s c _{osc} osc/12 |
0 | 1 | 1 | 8位UART | f T 1 _{T1} T1x 2 S M O D 2^{SMOD} 2SMOD/32 |
1 | 0 | 2 | 9位UART | f o s c _{osc} oscx 2 S M O D 2^{SMOD} 2SMOD/64 |
1 | 1 | 3 | 9位UART | f T 1 _{T1} T1x 2 S M O D 2^{SMOD} 2SMOD/32 |
f o s c _{osc} osc = 晶振频率、f T 1 _{T1} T1 = T1 溢出频率
SM2:多机通信控制位。
-
串口在模式0下,SM2必须为 0
-
串口在模式1下,若SM2=1,则只有接收到有效停止位时才会置位RI
-
串口在模式2或模式3下。
-
若SM2=1,只有接收数据第9位(RB8)为1时,才会将8位数据送入SBUF,并置位RI
-
若SM2=0,接收的8位数据始终送入SBUF
-
REN:允许接收数据控制位,为 1 时允许接收数据;模式0下,控制数据移位方向
TB8:发送数据的第9位,在模式2或模式3时,由用户通过软件设置
- 双机通信时,作为奇偶校验位
- 多机通信时,TB8=0表示数据包为数据帧,TB=1表示数据包为地址帧
RB8:接收数据的第9位
TI:发送完成中断标志位,由硬件自动置 1,由软件清 0
RI:接收完成中断标志位,由硬件自动置 1,由软件清 0
串口4种工作模式:
- 模式0
- 同步移位寄存器输入/输出模式,常用于对I/O的拓展。RXD(P3.0)作为数据输入/输出,TXD(P3.1)作为时钟输出。无起始位和停止位,输出数据低位在前。接收或发送数据完成后硬件自动置位TI或RI,下次数据传输前需软件清 0,否则时钟引脚不会输出信号
- REN 为0时发送数据,为1时接收数据
- 时钟上升沿输入输出数据,与同步通信相类似
- 模式1
-
可变波特率的8位串行异步通信方式。由起始位、8位数据位和停止位,低位在前传输。
-
波特率 = T1溢出率 x ( 2 S M O D 2^{SMOD} 2SMOD / 32),计数器初值为 X = 256 - ( 2 S M O D 2^{SMOD} 2SMOD x f o s c _{osc} osc )/( 384 x 波特率 )
-
当发送完8位数据和插入停止位前,硬件自动置位TI;当接收到有效停止位后硬件自动置位RI。下次传输数据前需软件清除TI和RI
-
- 模式2
-
固定波特率的9位串行异步通信方式。
-
波特率 = 晶振频率 x ( 2 S M O D 2^{SMOD} 2SMOD / 64)
-
- 模式3
-
可变波特率的9位串行异步通信方式。
-
波特率 = T1溢出率 x ( 2 S M O D 2^{SMOD} 2SMOD / 32),计数器初值为 X = 256 - ( 2 S M O D 2^{SMOD} 2SMOD x f o s c _{osc} osc )/( 384 x 波特率 )
-
中断使能:IE
0xA8 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|
符号 | EA | - | ET2 | ES | ET1 | EX1 | ET0 | EX0 |
位地址 | 0xAF | - | 0xAD | 0xAC | 0xAB | 0xAA | 0xA9 | 0xA8 |
描述
EA :总中断使能,为0 屏蔽所有中断。若使 I N T x ‾ \overline{INTx} INTx引脚以查询方式工作,也要置位EA
ES :串口中断使能,0 屏蔽串口RI/TI中断
ET1 :定时器1溢出中断使能
EX1 :外部中断引脚1中断使能
ET0:定时器0溢出中断使能
EX0:外部中断引脚1中断使能
中断检测周期为1个机械周期
中断服务函数入口地址
中断源 | 标志位 | 向量地址 | 编号 |
---|---|---|---|
I N T 0 ‾ \overline{INT0} INT0 | IE0 | 0003H | 0 |
T0 | TF0 | 000BH | 1 |
I N T 1 ‾ \overline{INT1} INT1 | IE1 | 0013H | 2 |
T1 | TF1 | 001BH | 3 |
UART1 | RI & TI | 0023H | 4 |
程序状态字:PSW
0xD0 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|
符号 | CY | AC | F0 | RS1 | RS0 | OV | - | P |
位地址 | 0xD7 | 0xD6 | 0xD5 | 0xD4 | 0xD3 | 0xD2 | 0xD1 | 0xD0 |
描述
CY :最高位进位标志位,当ACC:7 位出现进位或借位时置 1;参与布尔运算
AC :辅助进位标志位 ,在进行BCD运算时,如ACC:3位发生进位或借位时则置 1
F0 : 用户状态标志位,用户可以通过编程自由修改
RS1,RS0 :用户组选择
OV :数据溢出标志位
P :奇偶标志位,当ACC内容在二进制形式下1的数量是偶数时为0,奇数时为1
中断优先级:IP
0xB8 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|
符号 | - | - | - | PS | PT1 | PX1 | PT0 | PX0 |
位地址 | - | - | - | 0xBC | 0xBB | 0xBA | 0xB9 | 0xB8 |
描述
PS :串口优先级,0 优先级低,1 优先级高
PT1 :定时器1优先级
PX1:外部中断1优先级
PT0:定时器0优先级
PX0 :外部中断1优先级
电源控制:PCON
0x87 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|
符号 | SMOD | - | - | - | - | - | - | - |
描述:
SMOD:为1时,若串口工作在模式1~3,串口波特率加倍
累加器:ACC
0xE0 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|
符号 | ||||||||
位地址 | 0xE7 | 0xE6 | 0xE5 | 0xE4 | 0xE3 | 0xE2 | 0xE1 | 0xE0 |
主要参考文献:
-
Intel:《 MCS ® 51 Family of Microcontrollers Architectural Overview 》
-
Atmel:《 Atmel 8051 Microcontrollers Hardware Manual 》
-
姜志海:《 单片机原理及应用 (第五版)》