📜  嵌入式系统-SFR寄存器

📅  最后修改于: 2021-01-07 05:49:52             🧑  作者: Mango


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

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

下表列出了SFR及其地址。

Byte Address Bit Address
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 Not bit Addressable SBUF
98 9F 9E 9D 9C 9B 9A 99 98 SCON
90 97 96 95 94 93 92 91 90 P1
8D Not bit Addressable TH1
8C Not bit Addressable TH0
8B Not bit Addressable TL1
8A Not bit Addressable TL0
89 Not bit Addressable TMOD
88 8F 8E 8D 8C 8B 8A 89 88 TCON
87 Not bit Addressable PCON
83 Not bit Addressable DPH
82 Not bit Addressable DPL
81 Not bit Addressable SP
80 87 87 85 84 83 82 81 80 P0

请考虑以下有关SFR地址的两点。

  • 特殊函数寄存器的地址可以在80H至FFH之间。这些地址高于80H,因为从00到7FH的地址是8051内部RAM存储器的地址。

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

CY PSW.7 Carry Flag
AC PSW.6 Auxiliary Carry Flag
F0 PSW.5 Flag 0 available to user for general purpose.
RS1 PSW.4 Register Bank selector bit 1
RS0 PSW.3 Register Bank selector bit 0
OV PSW.2 Overflow Flag
PSW.1 User definable FLAG
P PSW.0 Parity FLAG. Set/ cleared by hardware during instruction cycle to indicate even/odd number of 1 bit in accumulator.

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

CY AC F0 RS1 RS0 OV P

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

RS1 RS2 Register Bank Address
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的第二个特殊函数寄存器中使用。