嵌入式系统 - SFR 寄存器


特殊功能寄存器(或特殊用途寄存器,或简称特殊寄存器)是微处理器内的寄存器,用于控制或监视微处理器的各种功能。由于特殊寄存器与处理器的某些特殊功能或状态紧密相关,因此它们可能无法通过普通指令(如添加、移动等)直接写入。相反,某些处理器架构中的某些特殊寄存器需要特殊指令来修改它们。

在 8051 中,寄存器 A、B、DPTR 和 PSW 是通常称为 SFR(特殊功能寄存器)的寄存器组的一部分。SFR 可以通过其名称或地址进行访问。

下表显示了 SFR 及其地址的列表。

字节地址 位地址
FF
F0 F7 F6 F5 F4 F3 F2 F1 F0
E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC
D0 D7 D6 D5 D4 D3 D2 - D0 PSW
B8 - - - 公元前 BB 学士 B9 B8 知识产权
B0 B7 B6 B5 B4 B3 B2 B1 B0 P3
A2 AF - - 交流电 AB AA A9 A8 IE
A0 A7 A6 A5 A4 A3 A2 A1 A0 P2
99 不可位寻址 SBUF
98 9楼 9E 9D 9C 9B 9A 99 98 斯康
90 97 96 95 94 93 92 91 90 P1
8D 不可位寻址 TH1
8C 不可位寻址 TH0
8B 不可位寻址 TL1
8A 不可位寻址 TL0
89 不可位寻址 TMOD
88 8楼 8E 8D 8C 8B 8A 89 88 总控
87 不可位寻址 电脑控制网络
83 不可位寻址 DPPH
82 不可位寻址 数据保护层
81 不可位寻址 SP
80 87 87 85 84 83 82 81 80 P0

关于 SFR 地址,请考虑以下两点。

  • 特殊功能寄存器的地址可以在 80H 到 FFH 之间。这些地址都在80H以上,因为从00到7FH的地址是8051内部RAM存储器的地址。

  • 并非所有 80 到 FF 的地址空间都被 SFR 使用。未使用的位置(80H 至 FFH)被保留,不得由 8051 编程器使用。

CY PSW.7 携带旗帜
交流电 PSW.6 辅助进位标志
F0 PSW.5 标志 0 可供用户用于一般用途。
RS1 PSW.4 寄存器组选择器位 1
RS0 PSW.3 寄存器组选择器位 0
OV PSW.2 溢出标志
- PSW.1 用户可定义的标志
PSW.0 奇偶校验标志。在指令周期内由硬件置位/清零,以指示累加器中 1 位的偶数/奇数。

在以下示例中,SFR 寄存器的名称替换为其地址。

CY 交流电 F0 RS1 RS0 OV -

我们可以使用 RS0 和 RS1 位选择相应的寄存器组位。

RS1 RS2 注册银行 地址
0 0 0 00H-07H
0 1 1 08H-0FH
1 0 2 10点-17点
1 1 3 18H-1FH

程序状态字 (PSW) 包含反映 CPU 当前状态的状态位。8051 变体提供了一个特殊功能寄存器 PSW,具有此状态信息。8251 提供两个附加状态标志 Z 和 N,可在称为 PSW1 的第二个特殊功能寄存器中使用。