SFR函数和SFRBIT函数详解

要理解这两个函数首先要理解单片机中的特殊功能寄存器,网上资料很多,本文不再

以CC2530单片机的头文件“ioCC2530.h”为例:

SFR(  P1SEL     ,  0xF4  )

他的作用是定义一个单片机特殊功能寄存器(special function register)。单片机内部有很多个小模块,每个模块居住在拥有唯一房间号的房间内,同时每个模块都有 8 个控制开关,。P1SEL就是一个功能模块,就住在了 0xF4 这个房间里,我们就是通过设置 P1SEL 内部这个模块的 8 个开关,即相应的二进制的8位数,来让单片机的 P1SEL 这 8 个 IO 口输出高电平或者低电平。而单片机内部有很多寄存器,如果我们想使用的话必须提前进行 sfr 声明。不过IAR软件已经把所有这些声明都预先写好并保存到一个专门的文件中去了,我们要用的话只要文件开头添加一行#include”ioCC2530.h”即可

SFRBIT( P1      ,  0x90, P1_7, P1_6, P1_5, P1_4, P1_3, P1_2, P1_1, P1_0 )

这个 SFRBIT,就是对刚才所说的 SFR 里边的8个开关分别进行定义。经过上边第二条语句后,以后只要在程序里写 P1_0,就可以单独控制 P1.0 口的开关状态了,也可以在程序里写P1控制所有开关,如P1=0xFF即为关闭所有开关,注意这个 P 必须大写。

发表评论

[/0o0] [..^v^..] [0_0] [T.T] [=3-❤] [❤.❤] [^v^] [-.0] [!- -] [=x=] [→_→] [><] 更多 »
昵称

抢沙发~