硬件接口定义不是这样的。
参见SBIT类型定义了一个特殊功能寄存器(SFR)内的位。它以下列方式之一使用:sbit name = sfr-name ^ bit-position ;sbit name = sfr-address ^ bit-position ;sbit name = sbit-address ;
name | 是位的名称。 | SFR name | 是以前定义的SFR的名称。 | 位位置 | 是SFR内位的位置。 | SFR地址 | 是SFR的地址。 | SBIT地址 | 是SFR位的地址。 |
- 注意
- 存储使用sbit访问的对象被认为是小端(最低位在前)。这是sfr16类型的存储格式, 但与int,long数据类型的存储方式相反。使用sbit 访问标准数据类型中的位时必须小心。
任何符号名称都可以在sbit声明中使用。等号右边的表达式('=')指定符号名称的绝对位地址。 - 并不是所有的SFR都是可以位寻址的。只有那些地址可以被8整除的SFR才是可以位寻址的。SFR地址的低半字节必须是0或8.例如,0xA8和0xD0的SFR是可位寻址的,而0xC7和0xEB的SFR不是。要计算SFR位地址,请将位位置添加到SFR字节地址。因此,要访问0xC8的SFR中的位6,SFR位地址将为0xCE(0xC8 + 6)。
- 特殊功能位表示一个独立的声明类,不能与其他位声明或位域互换。
- 所述SBIT数据类型声明可以被用来访问与声明的变量的各个位BDATA存储器类型说明符。。
- sbit变量不能在函数内声明。它们必须在函数体外部声明。
|