7.2.3 bdata存储类型

bdata区是可位寻址数据存储器,可以将要求可位寻址的数据定义为bdata,该区中可以声明变量和位变量。将变量设置为bdata存储类型的一般形式如下:


标识符bdata变量名


其中,标识符为变量的类型,bdata为关键字,表示存储类型为bdata,示例如下。


char bdata bet;//在位寻址区定义字符变量bet

int bdata n[10];//在位寻址区定义整型数组n[10]

sbit bet5=bet^3;//用关键字sbit定义位变量来可寻址对象其中一位

sbit n8=n[1]^6;


本例中,先将字符变量bet和整型数组n[10]设置为bdata存储类型,接着定义sbit类型的变量bet5和n8,其值由位寻址bet和n获得。关于sbit的用法将在下一节详细介绍。

这里需要注意的是,在使用bdata定义变量时,不允许定义float和double型变量。若要对浮点型变量寻址,可用包含float和long的联合来实现,示例如下。


typedef union//定义联合

{

unsigned long c;//无符号长整型,共32位

float f;//浮点型,共32位

}bitf;//联合名

bitf bdata ufloat;//在bdata段声明联合

sbit uflo=ufloat^10;//定义位变量名


本例中,使用自定义类型声明了联合bitf,该联合中可以存放浮点型变量,将变量ufloat的成员定义为bdata存储类型,即可对浮点型变量进行寻址。

设置为bdata存储类型的变量存放在片内RAM的可位寻址区。该区总共16字节单元,共128位,既可采用字节寻址方式,也可采用位寻址方式,每位可单独寻址。使用位操作指令可以便捷地控制程序。