DS18B20多点测温 Proteus仿真
以前使用DS18B20进行温度采集都是控制一个传感器进行单独的温度采集,DS18B20的单总线是支持多点组网的功能的,可以将多个DS18B20挂在同一个总线上进行温度采集,这样只使用单片机的1个IO就可以完成8个测温点的温度测量。今天发一个基于51单片机8点温度采集仿真和程序。Proteus仿真图如下。

仿真中将8个DS18B20的数据端口并联接到单片机的P20引脚上。对8个传感器进行编号加以区分。
DS18B20内部具有64-位光刻ROM。64位光刻ROM的前8位是DS18B20的自身代码,接下来的48位为连续的数字代码,最后的8位是对前56位的CRC校验。64-位的光刻ROM又包括5个ROM的功能命令:读ROM,匹配ROM,跳跃ROM,查找ROM和报警查找。

DS18B20在进行数据操作时,必须进行相应的ROM操作,在进行多个传感器温度测量时,就需要通过温度传感器内部的ROM数据对各个温度传感器加以区分。如上图所示为该仿真中8个温度传感器DS18B20的ROM数据,在仿真中可以通过对器件右键选择"Edit Properties",在弹出的对话框中对DS18B20器件的ROM数据进行修改,只需要保证仿真中器件的ROM数据与程序中定义的数据相同即可。



程序的主要功能是循环控制8个温度传感器进行温度采集,并将采集的温度通过液晶显示器进行显示。液晶显示器滚动对各个传感器的测温值进行显示。