Special Function Registers SFR

是一组用于控制单片机各种硬件特性和功能的特殊寄存器,本质是地址:特定的地址使用可读性较好的名称代替。

这些寄存器位于单片机的地址空间的高128个字节范围内,即地址从0x80到0xFF。 SFR是单片机内部各种硬件模块的控制中心,通过读写这些寄存器,可以配置和控制单片机的 I/O端口、定时器、串行通信、8051中断系统等。

freecompress-Pasted image 20240508100119.png

地址都是十六进制,实际上能被 0001 0000 整除的地址都可以按位操作 -0H -8H 都可以按位操作 (比如 88H 90H)

A

ACC 累加器(Accumulator)的标识,它是 8051 微控制器中的一个特殊功能寄存器,经常用于存储操作数和结果。

  • A 是累加器寄存器,也是 8 位寄存器,用于运算和暂存数据。

DPTR

Data Pointer DPH + DPL 16 位寄存器 数据指针寄存器,是一个 16 位寄存器,它可以存储一个 16 位地址,通常用来指向程序存储器或外部数据存储器中的某个区域 DPTR 是数据指针寄存器,是一个 16 位寄存器,它可以存储一个 16 位地址,通常用来指向程序存储器或外部数据存储器中的某个区域。

PC

Program Counter 程序计数器

  • 指令定位:PC 寄存器指向程序存储器中的下一条将要执行的指令。

  • 顺序执行:在大多数情况下,每执行完一条指令后,PC 会自动增加,指向下一条指令的地址,确保程序顺序执行。

  • 跳转操作:通过使用跳转指令(如 AJMP, LJMP, SJMP 等),可以改变 PC 的值,从而跳转到程序的不同部分执行。

  • PC 寄存器是程序流程控制的核心,它确保程序能够按照预定的顺序执行,或者根据需要跳转到程序的其他部分。

  • 在嵌入式系统和微控制器编程中,理解和正确管理 PC 寄存器对于设计高效、可靠的程序至关重要。

SP

Stack Pointer 用于指向当前使用的堆栈顶部。 当执行 push 操作时,SP 首先减去要推入数据的字节数(例如,如果是一个 8 位的数据,则 SP 减 1;如果是 16 位,则 SP 减 2),然后当前 SP 指向的内存位置存储这些数据。当执行 pop 操作时,数据从 SP 指向的位置读取,并将 SP 增加相应的字节数,以指向堆栈中的下一个有效数据。

PSW

Program State Sord 程序状态字寄存器 存放程序运行过程中的各种状态信息

D7D6D5D4D3D2D1D0
CYACF0RS1RS0OVP
  • CY(进位标志):第7位,用于指示上一次算术运算是否产生了进位或借位。 CY
  • AC(辅助进位标志):第6位,通常用于BCD(二进制编码的十进制数)运算,指示低四位是否有进位发生。
  • F0(用户可定义标志):第5位,程序员可以用于任何目的,比如作为状态标志或循环计数的标志。
  • RS1、RS0(寄存器组选择标志):第4位和第3位,用于选择不同的寄存器组(0到3组),以便快速切换寄存器组,实现更大的寄存器空间。
  • OV(溢出标志):第2位,指示上一次算术运算是否产生了溢出。
  • P(奇偶标志):Parity 数据传输可靠性的奇偶校验,根据累加器A中1的个数的奇偶性来设置,如果1的个数是偶数则为1(偶),否则为0(奇)。