当前位置:首页 >> 行业知识库 >> 单片机行业知识库 >> 单片机中|=是什么意思?

单片机中|=是什么意思?

下面是一个单片机中ds302芯片用的读程序,请大虾指导;
void read_commend()
{
uchar i,date;
for(i=0;i<8;i++)
{
date>>=1;//要返回的数据右移一位
if(SDA==1)//当数据线为高时,证明该位数据为 1
date|=0x80;//要传输数据的当前值置为 1,若不是,则为 0
sclk=1;//拉高时钟线
sclk=0;//制造下降沿
}
return date;//返回读取出的数据
}
最佳答案:
date|=0x80 等同于:data=data | 0x80; 意思是:用变量data的值与0x80做“按位或”运算,并将运算结果再赋值给变量data;

因0x80 写成二进制就是:10000000b;
所以等同于:data=data | 10000000b;
由“按位或”运算的特性可分析出,此语句的目的是要把变量data的值的最高位写成“1”,而不改变其它位的值,
其 他 回 答: (共4条)
1楼
i是变量,I等 就是赋值给I
2楼

|是“或”,将左右两数的二进制形式“逐位相加”(可以这么理解,即两数的每个位只要有一个是1就是1,例:
1|0=1, 1|1=1, 0|1=1, 0|0=0
10|01=11 00|10=10 11|00=11 ......

11000110|11101100:

11000110
+11101100
_________
=11101110
而A|=B即A=A|B
3楼

……楼上的错了……“|=”是“或等于”的意思。具体例如a |= 0x02就是说a和0x02相或后的值赋给a。“或”运算不用说了吧……
查看更多相关问题 >>
相关单片机行业知识库

友情链接:

首页 | 网站简介 | 采购市场 | 行业分类 | 信息投诉/删除/联系本站

手机版 | 电脑版

Copyright © 商名网

京ICP备17049264号