找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12401|回复: 3
收起左侧

51单片机中bit标志位的用法是怎么样的?求各位会的大佬解答

[复制链接]
ID:414974 发表于 2018-11-8 12:57 | 显示全部楼层 |阅读模式
bit定义的标志位变量只有1,0.有好多的用法我看了别人的程序,一到有bit定义的程序就看不懂了。例如bit set=0;然后下面就有if(set=1){......}
我实在是搞不懂if是怎么判断set是=1还是=0的。还有的好像这个bit定义的变量是可以直接给他赋值的例如语句直接执行set=1或者set=0;
这是什么原理
的用法.jpg
程序.jpg
回复

使用道具 举报

ID:401564 发表于 2018-11-8 19:09 | 显示全部楼层
SET就是一个位,就是片上的任意一个位,你可以自己用软件去改变它,也可以让它由其它条件去改变它
比如,SET是STC12C5A60S2的ADC的START位,那么,这个位你可以去让它=1或者等于0,你让它=1之后,ADC就开始转换,转换完成了,它又变成=0了,明白了没有
又比如,P1.0也是个BIT位,如果你加了个按键上去,你可以是P1.0=0
但如果你是一直按下这个按键的话,读取P1.0的话,P1.0=0
自己理解了
回复

使用道具 举报

ID:310519 发表于 2018-11-8 19:21 | 显示全部楼层
“=” 是赋值,“==”是比较。

你定义了一个位变量,你可以用它来标志任何状态。

这个状态不是自动改变的,而是要你自己改变它。

比如你定义了一个变量i, 你要用它来表示一个灯的开关状态, 1为开,0为关。

检测到灯开时,你的程序里要写 i =1,灯关时写i =0;

当需要根据灯的开或关执行不同的行为时:

if (i ==1){"i =1这里被执行"}else{"i =0这里被执行"};



回复

使用道具 举报

ID:244223 发表于 2018-11-8 22:42 | 显示全部楼层
肯定有其他条件啊,我用bit都是先赋值,当触发我设置的某个条件时会改变bit的值,然后在需要的地方判断bit的状态,执行相应的功能
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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