上海高德娱乐电子元件有限公司欢迎您!

基于DS18B20的多路温度监测系统设计

作者:小编    发布时间:2021-01-14 13:38:58    浏览量:

在实时温度监控系统中,如大棚温度监控、冷库测温、智能建筑温度控制等系统中,经常需求停止多路温度的采集和检测。快速、牢靠地采集到高精度温度数据可为控制系统的工作提供牢靠的根据。传统上,温度丈量办法多以热敏电阻、热电偶等为温度敏感元件,但都存在牢靠性差、精度低、需A/D转换以及线路复杂等的缺陷。因而本文提出了采用美国Dallas 公司消费的单总线数字温度传感器DS18B20和AT89C51单片机构成高精度的多路温度监测系统来处理这些问题。

  1.DS18B20简介

  DS18B20是Dallas公司推出的1-Wire式单总线智能数字温度传感器。与传统的热敏电阻相比,它可以直接读出被测温度,温度丈量范围为-55~125 ℃;可经过编程完成9~12位的转换精度,对应的可分辨温度分别为0.5 ℃,0.25 ℃,0.125 ℃和0.062 5 ℃,可满足高精度设计请求;在9位分辨率时最多在93.75 ms内把温度转换为数字,12位分辨率时最多在750 ms内把温度值转换为数字;电源供电范围3.0~5.5 V;读取或写入信息到DS18B20仅需求单总线接口(行将地址线、数据线、控制线合成一条信号线);丈量结果直接输出数字温度信号,串行传送给CPU 同时可传送CRC 校验码,具有极强的抗干扰纠错才能;运用DS18B20可使系统构造简约,牢靠性更高。以上特性使得DSl8B20 十分适用于构建高精度的多路温度采集与检测系统。

DS18B20

DS18B20

  2.硬件电路设计

  系统原理框图如图1 所示,系统由多片DS18B20、AT89C51单片机、LED 驱动显现电路、温度上下限设定电路、报警提示电路、串行通讯接口、时钟电路、复位电路等构成。

系统原理框图

  图1 系统原理框图

  系统采用8 片DS18B20 构成温度采集电路,8片DS18B20采用单总线与并行输入相分离的方式接至单片机的P1口。单片机巡回采集各路DS18B20送来的温度信息后,经过软件设计算法,将处置后的温度信息及相应的温度路数经过LED 数码管显现出来,各路温度值的上下限可经过P3.2~P3.4独立式键盘停止设定。若某路超越温度设定的上下限将停止经过P3.5或P3.6停止报警提示。此外,可经过串行口RS232 模块将各路温度数据送上位机处置。系统采用Proteus仿真软件设计的仿真电路如图2所示,此时LED显现的是第3路温度值。

硬件仿真电路图

  图2 硬件仿真电路图

  2.1测温电路设计

  采用8 片DS18B20 组成多路测温电路。DS18B20内部均有一个全球唯一的64位产品序列号,单片机经过序列号可对一条总线上的多路DS18B20停止控制,读取其温度。但DS18B20仅由单总线采集多路温度数据时,软件设计算法复杂,读取速度慢,无法适用于实时性请求高的测温场所。特别是当单总线上挂接的DS18B20传感器个数大于8个时,采用寄生电源供电方式亦存在总线驱动才能缺乏等问题[3].为此,本设计采用“单总线构造+并行I/O 口输入”相分离的方式,实时巡回采集多路DS18B20的温度信息。详细做法是:硬件上将8片DS18B20的单总线分别连到单片机的并行P1口引脚,同时各片DS18B20的电源端采用外部电源供电方式,且每个单总线另接一个4.7 kΩ的上拉电阻到5 V电源以保证到达足够的工作电流;软件上读取多路温度与读取单路温度的操作相似,不需读取读出所用DS18B20的序列号,而只需经过参数传送来循环读取各路温度数据(软件设计中引见)。

  2.2键盘与LED显现电路设计

  LED显现电路设计:P0口输出显现代码经74LS245驱动后接到8 位LED 数码管的段选线,P2 口输出接到LED的位选线。正常状况下,8位LED数码管用于循环显现通道号及该通道的温度值。

  键盘输入设计:采用独立式键盘P3.2~P3.4用来修正温度报警的上限与下限值。系统默许的温度报警上限为50 ℃,下限为-10 ℃。系统上电后,LED数码管将先后显现温度报警上/下限值。若按P3.2 键报警值加1;若按P3.3键报警值减1;P3.4为肯定键,用于保管修正值。

  此外,当系统检测到当前通道温度值超越设定的上、下限时,将经过P3.6,P3.7停止闪光报警提示。

  2.3串行通讯设计

  检测系统可经过串行口与上位机停止通讯,向上位机传送温度值及相应的通道号。实物中经过RS 232串行接口与上位机衔接,上位机的控制界面由VB 6.0 编写。当运转Proteus软件时,能够从虚拟终端看到上位机接纳到的8个通道的温度数据及相应的通道号。

  3.软件设计

  3.1软件总体设计

  如图3所示。

主程序流程

  图3 主程序流程

  系统上电复位后,程序主要包括:

  (1)系统初始化设置。

  (2)高德娱乐按键处置子程序:LED 数码管显现上限报警温度值并闪烁,若10 s中之内有按键输入修正温度值,则停止键盘操作直至修正完成,并保管温度上限值;若10 s之内无按键输入或按P3.4“肯定”键,则保管上限温度;接着显现下限报警温度值并闪烁,反复上述操作后保管下限报警温度值。

  (3)温度报警值设置子程序:完成将8 路的报警温度写入DS18B20中,流程图详见图4所示。

  (4)读取温度子程序:在对显现路数初始化后,停止温度值读取,这是软件设计的关键,下面将单独引见。

  (5)温度报警处置:读取某路DS18B20温度值及报警上下限值后,停止比拟,若超出范围则启动定时器0,驱动上/下限报警提示单元。

  (6)显现当前通道温度子程序:获得当前通道号后,依据读取的2 字节温度值(温度暂存器格式参考DS18B20技术手册),判别其符号位并分别读取其整数局部和小数局部,经过运算后保管到显现缓冲区,停止动态显现,并刷新显现若干时间。

  (7)上位机通讯子程序:每采集一路温度数据,经过RS 232 串口,将其通道号、温度值发送给上位机,完成相应通道的温度数据采集处置。

  (8)循环修正:修正通道号,停止下一路温度数据采集,直至8路温度处置完成,如此循环往复。

  3.2读取温度子程序设计

  采用DS18B20停止单路丈量时,可直接与单片机相连,不需读取读出器件的64 位产品序列号。当采用DS18B20停止多路测温时,在初始化操作后,通常的做法是需求在线逐一地搜索64 位ROM 编码以确认各个DS18B20所在位置,并需对ROM编码停止冗余校验,算法设计复杂。且等候多路搜索能否完成需求耗费大量的时间,使程序执行的效率和系统实时性遭到了影响。

  高德娱乐本设计采用“单总线构造+并行I/O口输入”分离的方式巡回读取多路温度。DS18B20作为单总线芯片,停止信息交流时有严厉的读/写时序请求。读取温度子程序流程如图5所示。首先经过参数传送将通道号传给读取温度子程序,接着对DS18B20停止初始化,然后直接执行跳过ROM命令(CCH),即不读取64位ROM编码而直接向DS18B20发出功用命令,节约了时间。之后,再向DS18B20发送温度转换命令(44H),DS18B20启动温度采样与A/D 转换,并将转换数据存储在暂存器中。

  然后再次初始化DS18B20,并在再一次跳过ROM 命令后,执行单片机读暂存器命令(BEH),依据传送参数肯定的通道号,可将通道号对应的DS18B20高速暂存存储器的9个字节数据读入单片机中,其中第0,1字节分别是温度值低位(LS byte)和高位(MS byte),第2,3 字节分别是高温限值(TH)和低温限值(TL),从而完成某通道DS18B20的温度采集。


推荐新闻

关注官方微信