18B20划横线的程序看不懂,大神帮忙解释一下

2019-07-15 09:20发布

划横线的程序看不懂,大神帮忙解释一下。这个是18B20的写 的程序部分,这个for语句是什么意思?能执行18B20的什么?

E3D67C515ECF8D541D309F150A21781E.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
fight281
2019-07-16 10:25
这是一个写dat程序,内容应该是if(dat&mask)   循环8次,按位发送状态,是1就发一个1 ,是0就发一个0。 在总线通讯中经常用到。我在下边列出完整的程序 注释给你看。希望能帮到你。

完整的程序是:
        for(mask=0x01; mask!= 0; mask<<=1)  //进入按位赋值循环
        {
                IO_18B20 = 0;    //拉低引脚
                _nop_();
                _nop_();   
                if((mask&dat) == 0)   //按位与,mask的1在什么位置和对应的dat相与。
                        IO_18B20 = 0;
                else
                        IO_18B20 = 1;  //按位与的结果是1为真,否则为假。
                DelayX10us(6);
                IO_18B20 = 1;
        }

一周热门 更多>