DSB操作时序详解Word文档下载推荐.docx
《DSB操作时序详解Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《DSB操作时序详解Word文档下载推荐.docx(6页珍藏版)》请在冰豆网上搜索。
uinti;
//i定义为uchar型
ds=0;
i=103;
while(i>
0)i--;
ds=1;
//在这里不做存在检测
}
2.DS18B20写程序
时序分析:
单片机由高电平拉低至低电平产生写时间隙
15us之后就需要将所需要写的位送到总线上面
DS18B20在开始之后的15-60us内对总线进行采样(注意采样时间)
uintdswrite(uchardat)
uchari;
uintj;
sbittempbyte;
for(i=0;
i<
8;
i++)
tempbyte=dat&
0x01;
dat>
>
=1;
//从最低位开始每一位送到tempbyte临时位
//总线拉低为低电平
if(tempbyte)//写1
j++;
//延时个13us
j=8;
while(j>
0)j--//延时个71us
else
0)j--;
//保证大于1us-
3.DS18B20读时序
时序分析
单片机从高电平拉低至低电平
低电平保持4us后将总线拉高产生读时间隙
读时间在4us后到15us之前(注意一定在15us之前)读时间才有效
从拉低总线60us-120us之间释放总线(注意是在这个时间间隙之间,严格按照时序操作)
bittempbit()
bitdat;
//延时个4us
//仿真结果在8.86us左右
dat=ds;
//确保在15us之前
returndat;
uchardsread()//用uchar来装读到的数据足够
uchari,j,dat;
j=tempbit();
dat=(j<
<
7)|(dat>
1);
//因为首先读到是低位的数据,后面读的数据加到高位,并依
//此往低位挪动