找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3304|回复: 6
打印 上一主题 下一主题
收起左侧

谁知道下面的单片机C语言bdata代码flag^7是什么意思吗?

[复制链接]
跳转到指定楼层
楼主
ID:894870 发表于 2021-3-29 19:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
bdata uchar flag;          //可位寻址数据
sbit bit_out=flag^7;
sbit bit_in=flag^0;
//一般都是定义P1^1这样的,所以不是很理解上面的代码是什么意思
//求解?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:160500 发表于 2021-3-29 20:07 | 只看该作者
表示flag的第7位和第0位
回复

使用道具 举报

板凳
ID:898258 发表于 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位单独操作。
回复

使用道具 举报

地板
ID:57657 发表于 2021-3-29 22:16 | 只看该作者
bdata 将变量 flag 分配到可位寻址区域,P1是可位寻址寄存器,flag是可位寻址变量,都可以用sbit操作。
回复

使用道具 举报

5#
ID:767423 发表于 2021-3-30 08:17 | 只看该作者
51单片机的的存储单元里有一段可位寻址区域 bdata是keil c51中特殊类型,一般用于把变量定义在可位寻址区域,就可以像端口一样可以按位操作了。
回复

使用道具 举报

6#
ID:743654 发表于 2021-3-30 08:48 | 只看该作者
P1是单片机自带的端口寄存器,可以位寻址。bdata是可位寻址区域,bdata uchar flag; 定义了一个可位寻址变量,所以可以像操作寄存器一样位操作。
回复

使用道具 举报

7#
ID:887371 发表于 2021-3-30 09:13 | 只看该作者
bdata sbit是51单片机的特有语法,注意不要在其它mcu使用。为了方便移植,就是在51中也建议不要这么使用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表