热门问题
时间线
聊天
视角
特殊功能寄存器
来自维基百科,自由的百科全书
Remove ads
特殊功能寄存器(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。
外部链接
- i8051 SFRs (页面存档备份,存于互联网档案馆)
- SPECIAL FUNCTION REGISTERS 1/2,存档于互联网档案馆(存档日期 2014-01-29)
- SFRs in C programming for AVR (页面存档备份,存于互联网档案馆)
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads