嵌入式系統 - 特殊功能暫存器 (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 的第二個特殊功能暫存器中可用。

廣告