使用bdata定义的变量即可字寻址,也可比特位寻址。
Keil C51编译器把使用bdata定义的变量放置在8051内部RAM可位寻址区。
bdata定义的变量必须为全局变量,不能在任一函数内部定义bdata类型的变量。
bdata关键词使用方法:
int bdata x1; /* 定义可位寻址的整型变量*/ char bdata bary [4]; /* 定义可位寻址的数组*/
此时,x1,bary均可按比特位寻址。使用sbit关键词定义可操作其任一比特位的变量。
sbit mybit0 = x1 ^ 0; /* x1的比特0*/ sbit mybit15 = x1 ^ 15; /* x1的比特15 */ sbit Ary07 = bary[0] ^ 7; /* bary[0]的比特7*/ sbit Ary37 = bary[3] ^ 7; /* bary[3]的比特7 */
调用其他源文件中定义的sbit变量,以如下方式声明:
extern bit mybit0; extern bit mybit15; extern bit Ary07; extern bit Ary37;
操作bdata声明的对象,方式如下:
Ary37 = 0; /* 对bary[3]的比特7清零*/ ba