标题: 谁知道下面的单片机C语言bdata代码flag^7是什么意思吗? [打印本页]

作者: 123456789hyy    时间: 2021-3-29 19:54
标题: 谁知道下面的单片机C语言bdata代码flag^7是什么意思吗?
bdata uchar flag;          //可位寻址数据
sbit bit_out=flag^7;
sbit bit_in=flag^0;
//一般都是定义P1^1这样的,所以不是很理解上面的代码是什么意思
//求解?


作者: liuzx66    时间: 2021-3-29 20:07
表示flag的第7位和第0位
作者: tudou_nangua    时间: 2021-3-29 21:10
bdata是keil c51中特殊类型,是一种存储器类型说明。比如我定义了一个:
bdata BData=0x00;
然后用:
sbit BData_1=BData^1;  //表示取bit1
sbit BData_7=BData^7;  //表示取bit7
这样就可以把一个byte拆成8个bit位,每个bit位单独操作。
作者: npn    时间: 2021-3-29 22:16
bdata 将变量 flag 分配到可位寻址区域,P1是可位寻址寄存器,flag是可位寻址变量,都可以用sbit操作。
作者: hsl32    时间: 2021-3-30 08:17
51单片机的的存储单元里有一段可位寻址区域 bdata是keil c51中特殊类型,一般用于把变量定义在可位寻址区域,就可以像端口一样可以按位操作了。
作者: cheney03    时间: 2021-3-30 08:48
P1是单片机自带的端口寄存器,可以位寻址。bdata是可位寻址区域,bdata uchar flag; 定义了一个可位寻址变量,所以可以像操作寄存器一样位操作。
作者: datouyuan    时间: 2021-3-30 09:13
bdata sbit是51单片机的特有语法,注意不要在其它mcu使用。为了方便移植,就是在51中也建议不要这么使用。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1