Keil C51对C语言的关键词扩展之三: bdata

本文介绍了Keil C51编译器中bdata关键词的作用,它将变量置于8051内部RAM的可位寻址区。bdata变量必须为全局,不允许在函数内部定义。内容涵盖了bdata变量的定义、比特位寻址方法,以及如何在不同源文件间共享sbit变量和在结构体、联合体中使用sbit的示例。
摘要由CSDN通过智能技术生成

使用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 */


Keil C51编译器总是像对sfr16那样把可位寻址的变量视为little endian字节序,标准C类型如int ,long则以big endian方式存储。

调用其他源文件中定义的sbit变量,以如下方式声明:

extern bit mybit0;      
extern bit mybit15; 
extern bit Ary07;       
extern bit Ary37;       

操作bdata声明的对象,方式如下:

Ary37 = 0;        /* 对bary[3]的比特7清零*/
ba
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值