STC单片机的特殊功能寄存(SFR)

今天我们来聊一聊STC单片机的特殊功能寄存器(SFR)。

首先,特殊功能寄存器位于何处呢? STC单片机的内部随机读取存储器(RAM),在物理和逻辑上可分为两大部分,内部256字节的随机读取存储器,内部扩展的随机读取存储器。其中,第一部分的地址为00H至FFH,第二部分根据单片机型号的不同空间的大小也有所不同。第一部分又分为两个模块:地址为00H~7FH的低128字节通用RAM,和地址为80H~FFH的高128字节RAM,而我们所讨论的特殊功能寄存器,就位于高128字节的地址空间中。如图1.

STC单片机的特殊功能寄存(SFR)

图1 特殊功能寄存器的位置

这种内存划分适用于基本所有stc系列单片机,如STC89C51/52,STC10/12/15乃至最新的STC8系列单片机。如图2.

STC单片机的特殊功能寄存(SFR)

图2 各种型号的STC单片机

那么,具体到一种型号的单片机上,如何查询和使用某一特殊功能寄存器呢?这是stc 12c5a60s2系列单片机的特殊功能寄存器及地址映象的对应表。如图3.

STC单片机的特殊功能寄存(SFR)

图3 特殊功能寄存器的地址映象

在使用相应的寄存器时,先声明寄存器地址,再对寄存器赋值即可。比如我们要将P1端口的输出模式配置为推挽输出,这样操作即可。如图4.

STC单片机的特殊功能寄存(SFR)

图4 将P1端口设置为推挽输出

我们需要注意特殊功能寄存器的地址能够被8整除,那么就可以进行位操作,反之则不可进行位操作。那么,表中的第一列均可进行位操作。如图5.

STC单片机的特殊功能寄存(SFR)

图5 第一列可进行位操作

例如我们将P1端口的第二位电平拉高,可以直接对该位进行赋值,而不不必对整个P1端口进行或运算。

STC单片机的特殊功能寄存(SFR)

图6 将P1端口的第二位拉高

最后,在代码编写时,常常有朋友问到, reg51.h和reg 52.h这两个头文件有什么区别。这两个头文件都用于声明单片机的特殊功能寄存器。我们直接打开这两个头文件,注释内容告诉我们,reg51.h适用于80c51及80c31控制器,而reg52.h则适用于80c52及80c32控制器。如图7.

STC单片机的特殊功能寄存(SFR)

图7 两种头文件的区别

而c52单片机是c51单片机的增强板,主要区别为前者多了一个T2定时器,那么在头文件中,reg52.h就多了相应的T2定时器的相关特殊功能寄存器的声明,如定时器T2高八位、低八位寄存器:TH2,TL2;定时器T2中断允许寄存器:ET2等。如图8.

STC单片机的特殊功能寄存(SFR)

图8 reg52.h头文件多出的寄存器

免责声明:文章内容来自互联网,本站仅作为分享,不对其真实性负责,如有侵权等情况,请与本站联系删除。
转载请注明出处:STC单片机的特殊功能寄存(SFR) https://www.zentong.com/zt/8556.html

(1)
上一篇 2024年7月4日 07:35:39
下一篇 2024年7月4日 07:36:12

相关推荐

联系我们

在线咨询: QQ交谈

邮件:362039258#qq.com(把#换成@)

工作时间:周一至周五,10:30-16:30,节假日休息