找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

DS18B20读时序问题

[复制链接]
a797980 发表于 2015-5-22 02:21:45 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
unsigned char Read18B20()
{
unsigned char dat;
unsigned char mask;


EA=0;
for(mask=0x01;mask!=0;mask<<=1)
{
IO_18B20=0;
_nop_();
_nop_();
IO_18B20=1;
_nop_();
_nop_();
if(!IO_18B20)
dat&=~mask;
else
dat|=mask;
DelayX10us(6);
}
EA=1;
return dat;
}


dat&=~mask;
dat|=mask;
这两个看的不是很懂,麻烦可以清楚讲解一下
假如我把最低一位写了0那mask=0000 0010,一取反就是1111 1101,再dat&,怎么得到把最低位写零。
而第二个,假如我写了最低一位为1,mask=0000 0011,dat|=mask;
那dat=? 怎么把最低位写1的信息赋值到dat?
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-23 11:04 , Processed in 0.051742 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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