一、DS18B20应用电路
Ds1820_Bus = data_1820&0x01; //从低位开始送数
Delay_X15us(3);// 延时程序延时45us,保证18b20采样到数据(等待15微秒然后从15us到45us开始对总线采样)
Ds1820_Bus = 1; //拉高电平完成送数
Delay_X15us(1);//连续送数要间隔至少1us(这里15us)
data_1820>>=1;//移位
注意:写周期最少为60微秒,最长不超过120微秒。总线拉低1微秒表示写周期做为主机时写周期的开始。但写周期做为主机有两种情况,即:若主机写0时,则继续拉低电平最少60微秒直至写周期结束,然后释放总线为高电平;若主机写1时,在一开始拉低总线电平1微秒后就释放总线为高电平,一直到写周期结束。
读数据操作时序也分为两种情况,即:读1时序,读时隙是从主机把单总线拉低之后,在1微秒之后就得释放单总线为高电平,以让DS18B20把数据传输到单总线上;读0时序,DS18B20在检测到总线被拉低1微秒后,便开始送出数据,若是要送出0就把总线拉为低电平直到读周期结束。
二、DS18B20温度计C程序有原理图