|
一.初始化
1.先将数据线置高电平1;
2.延时2ms
3.数据线拉到低电平0;
4.延时750us(从480us到960us)
5.数据线拉到高电平1;
6.延时等待。如果初始化成功在15到60us时间之内产生一个由DS18B20返回的低电平0,据该状态可以来确定它的存在,但是应注意不能无线的进行等待,不然会使程序进入死循环,所以要进行超时判断;
7.若CPU读到了数据线上的低电平0后,还要做延时,其延时的时间从发出的高电平算起(第五步的时间算起)最少要480us;
8.将数据线再次拉高到高电平1后结束;
二.给18B20写数据
1.数据线先置低电平0;
2.延时确定的时间为15us
3按从低位到高位的顺序发送数据(一次只发送一位);
4延时时间为45us;
5.将数据线拉到高电平
6重复上1到5步,知道发送完整个字节
7最后将数据线拉高
三.从18B20读数据
1.将数据线拉高为1
2延时2us
3将数据线拉低0
4延时6us
5将数据线拉高1
6延时4us
7读数据线的状态得到1个状态位,并且进行数据处理
8延时30us
9重复1到7步,知道读取完一个字节 (本文引自www.mcujl.com/article.asp?conID=505)
---------------------------------------------------------------------------------------------------
[ 打印文章] [ 关闭本页] [ 返回顶部]
|