DS18B20温度传感器如何与单片机相连接
DS18B20与单片机连接一个IO口就够,只需要满足相应的时序就能读到温度数据。至于1602显示,只要能读到温度数据,将数据转为字符串发送给1602就可以。
该温度传感器是数字传感器,内含处理器芯片,直接输出温度数字信号,单片机采用查询的方式回读数据后进行换算输出。
三通道18B20温度测量数码管显示。-55-+125℃,用1位数码管显示当前通道号,4位数码管显示18B20当前通道温度值,负号位与正温度百位1用同一位数码管显示清仔举,该位为答碧0不显示。
扩展资料:
DS18B20的读写时序和测戚袭温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号发送给计数器1。高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
参考资料来源:百度百科-DS18B20
单片机通过一根线来读DS18B20温度传感器采集的温度,DS18B20输出的脉冲时序是怎样的?
由于18b20是单总线结构 所以 时序一定要正确,也就是中间哪怕只差了几个us都可能出错误!
所以仔细看看说明书 ,读或写的时候 分别要多长时间,计算你系统IO输出输入读取的时间,要对应上
如果中间出现长时间延时(比如等待温度转换等等),此时一定要再次执行复位操作,以便时序达到统一
总体执行步骤是:复位→匹配ROM→温度转换→延时→复位→匹配ID→读取温度
如果线上只有一个传感器的话,可以发送忽略匹配ID命令。
我这里有现成的程序,PIC单片机C语言控制的 6条总线,每条线上挂载40以内 的程序,如果需要可供你参考