DS18B20温度测量系统设计(2)
发布时间:2021-06-08
发布时间:2021-06-08
简单介绍DS18B20传感器
第31卷电 子 测 量 技 术
用单总线,通过查询序列号依次读取,程序就非常复杂,而
且速度会大大减慢,所以将位寻址扩展为字节寻址,比如:
#defineDQP3;DQ=0x00;DQ=0xff;
DS18B20内部均有一个独立的64位序列号,单片机
通过序列号可以对一条总线上的多支DS18B20进行控制,读取它们的温度[4]。但要完成这个操作,软件设计比较复杂,同时存在一个缺点就是速度太慢。无法适用于一些实时性要求高的测温场合。所以本设计采取一种利用单片机的并口,同步快速读取8支DS18B20的方法。
3 系统软件设计
3.1 并行同步快速读取8支DS18B20的方法
对于一支DS18B20,要输出或输入各类数据时,可以采用位寻址,比如[5]:
sbitDQ=P3^3;DQ=0;DQ=1;
而对于8支DS18B20,如果还采用位寻址的方法,即可一次输出或输入8个位数据,从而达到同步读取的目的。3.2 系统的温度合成处理
采用上述方法一次读取8支DS18B20的时间不超过1s,但读取的数据在RAM中不是顺序排列的。必须用软件合成处理,1所示,纵向,,连,的高、低字节全部合成标[6]1]
P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7
7D1.7D2.7D3.7D4.7D5.7D6.7D7.7
]D0.
6D1.6D2.6D3.6D4.6D5.6D6.6D7.6
Buf[5]D0.5D1.5D2.5D3.5D4.5D5.5D6.5D7.5
Buf[4]D0.4D1.4D2.4D3.4D4.4D5.
4D6.4D7.4
Buf[3]D0.3D1.3D2.3D3.3D4.3D5.3D6.3D7.3
Buf[2]D0.2D1.2D2.2D3.2D4.2D5.2D6.2D7.2
Buf[1]D0.1D1.1D2.1D3.1D4.1D5.1D6.1D7.1
Buf[0]D0.0D1.0D2.0D3.0D4.0D5.0D6.0D7.0
3.3 系统软件流程图
主程序执行流程如图2所示,主程序先对各DS18B20
进行初始化,然后重复调用写命令和读数据模块,最后将数据处理后送LED显示[7]。
4 系统仿真
Proteus软件是Labcenter公司的一款电路设计与仿
图2 软件流程图
真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的绘制与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS251系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等。通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便
[8]
的单片机实验环境。
本设计的核心部分为8点温度数据的快速准确读取,完成电路设计和软件编程后,将程序在Keil下编译,装入单片机,进行仿真,可以看到,同步快速多点温度测量得到了实现。仿真中的一个画面如图3中的效果所示,此时采集的是第5通路的测量温度。
92