特殊功能寄存器
Special Function Registers SFR
是一组用于控制单片机各种硬件特性和功能的特殊寄存器,本质是地址:特定的地址使用可读性较好的名称代替。
这些寄存器位于单片机的地址空间的高128个字节范围内,即地址从0x80到0xFF。
SFR是单片机内部各种硬件模块的控制中心,通过读写这些寄存器,可以配置和控制单片机的 I/O端口、定时器、串行通信、8051中断系统等。
地址都是十六进制,实际上能被 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 程序状态字寄存器
存放程序运行过程中的各种状态信息
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
CY | AC | F0 | RS1 | RS0 | OV | P |
- CY(进位标志):第7位,用于指示上一次算术运算是否产生了进位或借位。 CY
- AC(辅助进位标志):第6位,通常用于BCD(二进制编码的十进制数)运算,指示低四位是否有进位发生。
- F0(用户可定义标志):第5位,程序员可以用于任何目的,比如作为状态标志或循环计数的标志。
- RS1、RS0(寄存器组选择标志):第4位和第3位,用于选择不同的寄存器组(0到3组),以便快速切换寄存器组,实现更大的寄存器空间。
- OV(溢出标志):第2位,指示上一次算术运算是否产生了溢出。
- P(奇偶标志):Parity
数据传输可靠性的奇偶校验,根据累加器A中1的个数的奇偶性来设置,如果1的个数是偶数则为1(偶),否则为0(奇)。