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位,既可采用字节寻址方式,也可采用位寻址方式,每位可单独寻址。使用位操作指令可以便捷地控制程序。