DS18B20电路解析
一:功能要求
(1)DS18B20正确测量温度,小数点后保留一位;
(2)数码管显示芯片测得的数据,然后每2秒一次,发送给串口;
二:原理图
三:程序流程图及流程解析
四:时序图
(1)初始化时序图
是不是觉得DS8B20程序好简单,轻轻松松就能解决?
也许现在的你看到该时序认为极为简单,但是写文档的我之前是何等的纠结
首先讲讲芯片复位的问题
主机发送复位脉冲:
(A)480us≤Master_TX≤960us
(B)数据线SDA释放后慢慢回升时间; 15us≤T_SDA≤60us
(C)60us之后,从机自动拉低,表示从机回应了主机(如果从机没有拉低,可能芯片坏了)
(D)第三步骤操作:SDA=1;delayus(100);present=SDA; //此时从机肯定拉低了,我们可以提取此时SDA的数据,作为判定依据
//presence的判定,需要在 等于0的区域才行,所以 大于60us后再判定
(E)注意,关键点到了, 480us≤ Master_RX; //必须满足该条件,不然复位会失败;
(2)‘写’时序图 + ‘读’时序图
再讲讲读写数据的关键点
写数据:
SDA=0;
delayus(2)//大于1us即可;
SDA=1;//释放总线
判定需要写入的数据是1,还是0;// SDA=1 SDA=0;
延时超过60us即可;
读数据:(在此处栽过跟头)
SDA=0;
delayus(2)//