特殊功能暫存器

特殊功能暫存器(special function register)簡稱SFR,是单片机裡控制或是監控不同層面功能的寄存器。依不同,特殊功能暫存器可能會包括以下這些

  • I/O和週邊控制(例如串列埠或是泛用I/O)
  • 計時器
  • 堆疊暫存器
  • 堆疊上限(以避免堆疊溢位)
  • 程式計數器
  • 子程序返回位址
  • 處理器狀態(是否在處理中斷,運作在保護模式等)
  • 狀態暫存器(上述比較的結果)

因為SFR和微處理器的狀態或是一些特殊功能緊密相關,有些单片机會規劃無法用一般指令(例如ADD, MOV)直接寫入SFR,而是要用特殊的指令才能修改。例如,程式計數器(PC)就無法直接用指令將特定值寫入,而是用子程序返回、跳躍或是條件分支等指令來改變其值。而狀態暫存器的值也無法直接修改,而是根據程式執行或是比較的狀態來變更其數值。

Intel微控制器
Intel微控制器的SFR在可定址記憶體的較高區塊,位址範圍是0x80至0xFF。此區域的記憶體不能用來儲存程式或是資料,是記憶體對映的埠和暫存器。所有的埠輸入和輸出都可以用SFR區特定記憶體的讀寫來表示。其中也對映了其他的狀態暫存器到SFR區,例如檢查8051狀態的暫存器,或是修改一些運行狀態的暫存器。

有些SFR的位元可以直接用位元定位讀寫的SETB/LDB指令處理。Intel 80196有24個SFR,每個的大小是一個位元組,標準的Intel 8051則有21個SFR。

外部連結

*

评论 (0)

  • 还没有评论,来抢沙发吧。