7.3.2 sbit型变量

sbit用于定义可位寻址对象,用于位寻址,从位寻址字节中定义位变量。例如,定义特殊功能寄存器某位为位变量。在C51语言中,有3种方式定义位变量。

❑sbit位变量名=位地址。该语句用于将位地址赋值给位变量名,示例如下。


sbit P1_1=0x91;//将位的绝对地址赋给位变量


这里需要注意的是,该语句中的位地址值必须位于80H~FFH范围之内。

❑sbit位变量名=特殊功能寄存器名^位位置。该语句使用符号“^”来获得位数据,并赋值给位变量,示例如下。


sfr P2=0xA0;//定义一个特殊功能寄存器名的地址为A0H

sbit P2_1=P2^1;//指定位变量名所在的位置为寄存器P2的第一位


❑sbit位变量名=字节地址^位位置。该语句和第二种方法是一样的,只是将特殊功能寄存器名用位地址常数直接表示,示例如下。


sbit P2_1=0xA0^1;//指定位变量名所在位置即地址为A0H的寄存器的第一位


以上3种表示方式在实际上是相同的操作和含义。在程序中,用户可根据需要灵活采用合适方便的定义方式,示例如下。


sbit EA=0xAF;


该语句用于指定第0xAF位为EA,即中断允许。