嵌入式系统 - 特殊功能寄存器 (SFR)



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

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

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

字节地址 位地址
FF
F0 F7 F6 F5 F4 F3 F2 F1 F0 B
E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC
D0 D7 D6 D5 D4 D3 D2 - D0 PSW
B8 - - - BC BB BA B9 B8 IP
B0 B7 B6 B5 B4 B3 B2 B1 B0 P3
A2 AF - - AC AB AA A9 A8 IE
A0 A7 A6 A5 A4 A3 A2 A1 A0 P2
99 不可位寻址 SBUF
98 9F 9E 9D 9C 9B 9A 99 98 SCON
90 97 96 95 94 93 92 91 90 P1
8D 不可位寻址 TH1
8C 不可位寻址 TH0
8B 不可位寻址 TL1
8A 不可位寻址 TL0
89 不可位寻址 TMOD
88 8F 8E 8D 8C 8B 8A 89 88 TCON
87 不可位寻址 PCON
83 不可位寻址 DPH
82 不可位寻址 DPL
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 进位标志
AC PSW.6 辅助进位标志
F0 PSW.5 用户可用的通用标志 0。
RS1 PSW.4 寄存器组选择位 1
RS0 PSW.3 寄存器组选择位 0
OV PSW.2 溢出标志
- PSW.1 用户可定义标志
P PSW.0 奇偶标志。在指令周期中由硬件设置/清除,以指示累加器中 1 位的奇偶数。

在下面的示例中,SFR 寄存器的名称被它们的地址替换。

CY AC F0 RS1 RS0 OV - P

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

RS1 RS2 寄存器组 地址
0 0 0 00H-07H
0 1 1 08H-0FH
1 0 2 10H-17H
1 1 3 18H-1FH

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

广告
© . All rights reserved.