首页

8051单片机特殊功能寄存器(SFRs)

在前面的8051单片机教程中,我们已经学习了指令集和寻址模式。在本教程中,我们将看一看8051单片机特殊函数寄存器(SFRs)。

如果你还记得8051单片机存储器组织本教程中,8051单片机的内部RAM或数据存储器分为通用寄存器、位可寻址寄存器、寄存器库和特殊功能寄存器(SFRs)。

8051单片机专用功能寄存器用于对定时器、串口、I/O口等硬件外设进行编程和控制。事实上,通过操作8051微控制器特殊功能寄存器(SFRs),您可以评估或改变8051微控制器的工作模式。

提示一下,下图展示了8051单片机内部RAM的基本结构。

8051内存组织RAM

8051单片机特殊功能寄存器(SFRs)

8051单片机专用功能寄存器作为控制表,监视和控制8051单片机的操作。如果观察内部RAM结构,从80H到FFH的地址空间被分配给SFRs。

在这128个内存位置(80H到FFH)中,只有21个位置实际分配给了SFRs。每个SFR都有一个字节地址和一个指定其用途的唯一名称。

由于SFRs是内部RAM结构的一部分,所以您可以像访问内部RAM一样访问SFRs。主要的区别是地址空间:前128字节(00H到7FH)用于常规内部RAM,后128字节(80H到FFH)用于SFRs。

提示:由于可能的128个SFR内存位置中只分配了21个,因此建议在编程期间不访问剩余的寄存器或内存位置。

在进一步讨论之前,先弄清楚一个想法8051单片机的体系结构

8051单片机特殊功能寄存器列表

  • 或ACC
  • B
  • DPL
  • 衰变时
  • 知识产权
  • P0
  • P1
  • P2
  • P3
  • PCON
  • PSW
  • SCON
  • SBUF
  • SP
  • TMOD
  • TCON
  • TL0
  • TH0
  • TL1
  • TH1

8051单片机专用功能寄存器分类

所有218051微控制器特殊功能寄存器(SFRs)及其功能和内部RAM地址如下表所示。

8051单片机特殊功能寄存器(SFRs

有许多方法可以对这21种特殊函数寄存器进行分类,但我认为下面的方法是合适的。8051单片机的21种特殊功能寄存器分为7类。它们是:

数学或CPU寄存器:A和B

状态寄存器:PSW(程序状态字)

指针寄存器:DPTR(数据指针- DPL, DPH)和SP(堆栈指针)

I / O端口锁存:P0(端口0)、P1(端口1)、P2(端口2)、P3(端口3)

外围控制寄存器:PCON, SCON, TCON, TMOD, IE和IP

外围数据寄存器:TL0, TH0, TL1, TH1和SBUF

CPU或数学寄存器

A或蓄电池(ACC)

累加器或寄存器A是8051单片机中最重要和最常用的SFRs。寄存器A位于SFR内存空间的地址E0H。累加器用于保存几乎所有ALU操作的数据。

使用Accumulator的一些操作有:

  • 算术运算,如加、减、乘等。
  • 逻辑运算,如与、或、非等。
  • 数据传输操作(在8051和外部存储器之间)

“累加器”这个名字来源于这样一个事实:这个寄存器用于累加(或存储)所有算术运算和大多数逻辑运算的结果。

8051单片机特殊功能寄存器(SFRs

B (B)登记

在乘法和除法运算中,B寄存器与ACC一起使用。这两个操作只对存储在寄存器A和寄存器B中的数据执行。在乘法操作中,一个操作数(乘数或被乘数)存储在寄存器B中,以及结果的高字节。

在除法运算的情况下,B寄存器保存除数和结果的余数。它也可以用作一般操作的通用寄存器,也经常被程序员用作存储临时结果的辅助寄存器。

寄存器B位于SFR地址空间的地址F0H。

8051单片机特殊功能寄存器(SFRs

程序状态字(PSW)

程序状态字寄存器(PSW)又称标志寄存器(Flag Register),是程序状态字寄存器的重要组成部分之一。PSW寄存器由标志位组成,它帮助程序员检查结果的条件,并作出决定。

标志是1位存储元素,用于存储和指示执行某些指令产生的结果的性质。下图显示了PSW寄存器的内容。

8051单片机特殊功能寄存器(SFRs

各标志的作用如下表所示。

8051单片机特殊功能寄存器(SFRs

指针寄存器

数据指针(DPTR - DPL和DPH)

数据指针是一个16位寄存器,物理上是DPL(数据指针低)和DPH(数据指针高)SFRs的组合。数据指针可以用作单个16位寄存器(DPTR)或两个8位寄存器(DPL和DPH)。

DPTR没有物理内存地址,但是DPL (DPTR的低字节)和DPH (DPTR的高字节)在SFR内存空间中有单独的地址。DPL = 82H, DPH = 83H。

DPTR寄存器被程序员用来寻址外部存储器(程序- ROM或数据- RAM)。

8051单片机特殊功能寄存器(SFRs

堆栈指针(SP)

SP或堆栈指针指向堆栈的顶部,它指示下一个要访问的数据。堆栈指针可以使用PUSH, POP, CALL和RET指令访问。堆栈指针是一个8位寄存器,在重置时,堆栈指针用07H初始化。

当向堆栈写入新的数据字节时,SP(堆栈指针)自动加1,并将新数据写入地址SP+1。当从堆栈中读取数据时,从SP中的Address中检索数据,然后SP减1 (SP-1)。

8051单片机特殊功能寄存器(SFRs

I/O端口寄存器(P0, P1, P2和P3)

8051单片机的四个接口可以作为输入和/或输出。这四个接口分别是P0、P1、P2和P3。每个端口都有一个相同名称的寄存器(端口寄存器也是P0、P1、P2和P3)。端口寄存器的地址如下:P0 - 80H、P1 - 90H、P2 - A0H和P2 - B0H。

这些SFRs中的每个位对应于8051微控制器中的一个物理引脚。所有这些端口寄存器都是位可寻址和字节可寻址的。在端口寄存器位上写入1或0将反映为相应引脚上的适当电压(5V和0V)。

如果Port Bit为SET(声明为1),对应的Port Pin将被配置为Input,类似地,如果Port Bit为clear(声明为0),对应的Port Pin将被配置为Output。重置后,所有的端口位为SET(1),因此,所有的端口引脚被配置为输入。

8051单片机特殊功能寄存器(SFRs

外围控制寄存器

PCON(功率控制)

PCON或电源控制寄存器,顾名思义是用来控制8051微控制器的电源模式,位于SFR内存空间的87H。使用PCON寄存器中的两位,微控制器可以设置为空闲模式和关机模式。

注意:PCON寄存器不可位寻址。

在空闲模式下,微控制器将停止时钟信号到ALU (CPU),但它是给其他外围设备,如定时器,串行,中断等。为了终止空闲模式,你必须使用中断或硬件重置。

在Power Down模式下,振荡器将停止,功率将减少到2V。要终止关机模式,您必须使用硬件重置。

除了这两个以外,PCON寄存器还可以用于一些额外的用途。PCON寄存器中的smd位用于控制串口的波特率。

在PCON寄存器中有两个通用的标志位,程序员可以在执行期间使用它们。

8051单片机特殊功能寄存器(SFRs

下表描述了PCON寄存器中每个位的功能。

象征 描述 额外的信息
7 SMOD 串口波特率修改位

如果为1,则通过Timer 1将波特率增加一倍。如果为0,表示普通定时器的波特率为1。

6 - 4

—- - - - - - -

3.

GF1

通用用户标志(第1位)

2 GF0 通用用户标志(0位)

1

PD 关闭一些 进入下电模式,设置为1
0 IDL 空闲模式位

进入Idle Down模式,设置为1

SCON(串行控制)

8051单片机的串口采用串行控制或SCON SFR控制。地址为98H。通过SCON可以控制串口的“工作模式”、“波特率”、“串口收发数据”等。

SCON寄存器也由位组成,当一个字节的数据被传输或接收时,这些位被自动设置。

8051单片机特殊功能寄存器(SFRs

下表描述了SCON寄存器中每个位的功能。

象征 描述
7 SM0

串口模式选择位0

6

SM1 串口模式选择位1
5 SM2

多处理器通信。一些

4

收到使钻头
3. TB8

传播一些8

2

RB8 收到8位
1 “透明国际”

传输中断标志

0

国际扶轮

接收中断标志

“串口模式选择位”(SM0和SM1)决定了串口模式的选择UART还有波特率。下表概述了如何使用串口模式选择位来配置8051的串口(UART)。

串口模式选择位

SM0

SM1 模式 描述 波特率
0 0 0 8位同步移位寄存器模式

固定的波特率

(振荡器频率/ 12)

0

1 1 8位标准UART

模式

波特率可变(可通过定时器1设定)
1 0 2 9位多处理器通讯模式

固定的波特率

(振荡器频率/ 32或振荡器频率/ 64

1

1 3. 9位多处理器通讯模式

波特率可变(可通过定时器1设定)

TCON(定时器控制)

定时器控制或TCON寄存器用于启动或停止8051单片机的定时器。它还包含指示计时器是否溢出的位。TCON SFR也由中断相关位组成。

8051单片机特殊功能寄存器(SFRs

下表给出了TCON SFR中每个bit的描述。

象征 描述

额外的信息

7

TF1 定时器1溢出标志 当定时器1溢出时设置(所有的1都为0)。当处理器在001BH执行ISR时清除。
6 TR1 定时器1运行控制位

定时器/计数器:设置为1。清除以停止计时器。

5

TF0 定时器0溢出标志 当定时器0溢出时设置(所有的1都为0)。当处理器在000BH执行ISR时清除。
4 TR0 定时器0运行控制位

定时器/计数器:设置为1。清除以停止计时器。

3.

IE1 中断1边缘标志 当INT1 (P3.3)接收到HIGH到LOW时设置。当处理器在0013H执行ISR时清除。
2 IT1 中断1类型控制位

如果是1,则中断1发生在下降沿。如果0,中断1发生在低电平。

1

IE0 中断0边缘标志 当INT0 (P3.2)接收到HIGH到LOW时设置为1。当处理器在0003H执行ISR时清除。
0 IT0 中断0类型控制位

如果是1,则在下降沿发生中断0。如果为0,则在低电平上发生中断0。

TMOD(定时器模式)

TMOD或Timer Mode寄存器或SFR用于设置定时器T0和T1的工作模式。低4位配置Timer0,高4位配置Timer1。

8051单片机特殊功能寄存器(SFRs

下表给出了TMOD SFR中每个位的简要描述。

象征

描述

7 / 3

OR门使能位
6 / 2 C / Tx

选择计时器或计数器模式

5/1

TxM1 定时器/计数器工作模式选择位1
4/0 TxM0

定时器/计数器操作模式选择位0

Gatex位用于操作与INTx引脚相关或与INTx引脚无关的Timerx。

  • GATE1 = 1 ==>只有当TCON中的TR1为SET且INT1上的信号为HIGH时,才会操作Timer1。
  • GATE1 = 0 ==> Timer1与INT1引脚上的信号无关,但TR1(在TCON中)必须设置。
  • GATE0 = 1 ==>只有当TCON的TR0为SET且INT0的信号为HIGH时,才会操作Timer0。
  • GATE0 = 0 ==> Timer0与INT0引脚上的信号无关,但TR0(在TCON中)必须设置。

C/Tx位用于选择定时器计数的脉冲源。

  • C/T1 = 1 ==> Timer1计数脉冲从Pin T1 (P3.5)(计数器模式)
  • C/T1 = 0 ==> Timer1计数来自内部振荡器的脉冲(定时器模式)
  • C/T0 = 1 ==> Timer0计数脉冲从Pin T0 (P3.4)(计数器模式)
  • C/T0 = 0 => Timer0计数来自内部振荡器的脉冲(定时器模式)

TxM0

TxM1 模式

描述

0

0 0 13位定时器模式(THx - 8位和TLx - 5位)

0

1 1 16位定时器模式
1 0 2

8位自动重新加载计时器模式

1 1 3.

两种8位定时器模式或分裂定时器模式

注意:x = 0表示定时器0,x = 1表示定时器1。

IE(中断启用)

IE或中断启用寄存器用于启用或禁用单个中断。如果某个位是SET,则相应的中断被启用,如果该位被清除,则中断被禁用。IE寄存器的Bit7(即EA位)用于启用或禁用所有中断。

8051单片机特殊功能寄存器(SFRs

下表描述了IE寄存器中每一位的作用。

象征 描述

额外的信息

7

EA 全局中断使能位。 如果设置为1,可以启用单个中断。如果设置为0,则禁用所有中断。
6 - - - - - -

- - - - - -

5

ET2 保留
4 西文 串口中断使能位

如果设置为“1”,表示启用“串口中断”。如果设置为0,则禁用串口中断。

3.

ET1 Timer 1 Overflow Interrupt使能位 如果设置为1,则使能定时器1溢出中断。如果设置为0,则定时器1溢出中断被禁用。
2 例1 Ext. Interrupt 1使能位

如果设置为1,则启用Ext. Interrupt 1。如果设置为0,则禁用Ext. Interrupt 1。

1

ET0 Timer 0 Overflow Interrupt使能位 如果设置为1,则定时器0溢出中断被启用。如果设置为0,则定时器0溢出中断被禁用。
0 EX0 Ext. Interrupt 0使能位

如果设置为1,则启用Ext. Interrupt 0。如果设置为0,则禁用Ext. Interrupt 0。

注意:Interrupt Enable (IE) SFR是位可寻址的。

IP(中断优先级)

IP或中断优先级寄存器用于设置中断的优先级为高或低。如果位被清除,相应的中断被分配低优先级,如果位被设置,中断被分配高优先级。

8051单片机特殊功能寄存器(SFRs

下表描述了IP寄存器中每一位的作用。

象征

描述

7

- - - - - - - - - - - -
6 - - - - - -

- - - - - -

5

PT2 保留
4 PS

串口中断的优先级

3.

PT1 定时器1溢出中断优先级
2 PX1

Ext. Interrupt优先级

1

PT0 定时器0溢出中断优先级
0 PX0

Ext. Interrupt 0优先级

注意:中断优先级(IP) SFR是位可寻址的。

外围数据寄存器

串行数据缓冲区

串行缓冲区或SBUF寄存器用于在传输或接收时保存串行数据。

8051单片机特殊功能寄存器(SFRs

TL0/TH0 (Timer 0 Low/High)

Timer 0由两个SFRs组成:TL0和TH0。TL0是较低的字节,TH0是较高的字节,它们共同构成一个16位的Timer0寄存器。

8051单片机特殊功能寄存器(SFRs

TL1/TH1 (Timer 1 Low/High)

TL1和TH1分别为Timer 0的低字节和高字节。

8051单片机特殊功能寄存器(SFRs

在本教程中,我们已经了解了8051单片机特殊函数寄存器(SFRs),它们的地址,结构,重置值等。

6的反应

留下一个回复

你的电邮地址不会被公布。必填字段被标记

Electronicshub图标
Baidu
map