APP下载

基于DS18B20的智能测温系统的设计

2021-04-25贾海云

电脑知识与技术 2021年9期
关键词:声光报警数码管蜂鸣器

贾海云

摘要:温度测量在生产生活和工业控制等领域的应用十分广泛,传统温度计有性能单一、使用寿命短、可靠性低等问题。本设计采用数字温度传感器DS18B20,结合单片机AT89S52控制技术,实现智能测量温度的控制系统。该系统可设置报警温度的阈值,当测量温度超过设定的警戒温度上下限时,蜂鸣器发出蜂鸣声且指示灯闪烁显示,产生报警信号,同时具有精度高、抗干扰能力强和硬件开销低的特点。

关键词:温度测量;溫度传感器DS18B20;单片机AT89S52;报警温度;蜂鸣器;指示灯

中图分类号:TP391   文献标识码:A

文章编号:1009-3044(2021)09-0251-02

开放科学(资源服务)标识码(OSID):

1概述

温度是衡量仪器仪表、电子设备等器件能否正常工作的一个重要指标,是实现生产自动化需要重点监测的一个参数。常见的温度测量方法是直接用温度计读取,如水银温度计,酒精温度计等,人们可以观察其刻度值知道当前的温度。但是这些常见的温度计存在测温精度差,读数不方便等问题。因此,本设计选用智能数字温度传感器DS18B20和单片机实现温度的监测。具有单总线接口的数字温度传感器DS18B20,温度的转换精度可以有4种,测量温度范围比较广,可编程实现测温转换精度等优点,被广泛应用于恒温控制器、温度报警系统。

随着电子技术和微型计算机的快速发展,单片机在各行各业发挥的作用与日俱增。单片机实际上是把一个微型计算机系统集成在单一芯片上,其具有体积小、质量轻、价格便宜、控制能力强等优势。本设计采用单片机AT89S52作为控制核心,对环境温度进行实时监测;采用温度传感器DS18B20作为温度采集的核心器件;温度的显示采用4个共阳极数码管显示;通过按键设置上下限报警温度;若温度超过限制,启动蜂鸣器和指示灯实现声光报警。

2硬件电路的设计

基于单片机AT89S52的智能温度监测系统的硬件电路在单片机最小系统基础上,还有温度传感器DS18B20构成的检测电路、4个共阳极数码管构成的温度数值显示电路、蜂鸣器和发光二极管构成的声光报警电路、电源电路、数据下载接口等电路,如图1所示。

2.1单片机最小系统

单片机的最小系统是保证单片机能正常工作的所必需的最少硬件电路,由复位电路、时钟电路、存储器电路和电源电路组成。复位电路的作用是为单片机产生复位信号,保证单片机上电后从一个确定的状态开始工作。时钟电路用来产生时钟脉冲信号,它就像人类的心脏,缺少了时钟信号单片机就无法正常运转。存储器电路让系统从片内程序存储器中开始执行程序。电源电路驱动单片机,给其提供电能保障。

2.2智能温度传感器DS18B20系统

温度传感器DS18B20的VDD引脚接+5V的外部电源,GND引脚接地,DQ引脚接单片机的P1.0引脚,为了保证总线空闲时为高电平状态,需要接一个大小为10k的上拉电阻,这样就可以用单总线的方式实现数据的传输。

2.3数码管显示电路

4个共阳极数码管构成的温度数值显示电路中,位选端选取单片机P3.4、P3.5、P3.6、P3.7引脚,与数码管的公共端相接。PNP三极管为驱动管,其导通时将小电流放大为大电流,驱动数码管工作,使其有足够的显示亮度。选取单片机P1口作为控制数码管显示字符的段选端,在某个位选端为高电平时,只要段选端P1口送出需要显示字符的代码,数码管就能显示该字符。

2.4声光报警系统和电源电路

声光报警系统中蜂鸣器与单片机P2.3引脚相连,用PNP三极管驱动它。当温度超过范围设定范围时,蜂鸣器发出蜂鸣声,同时二极管闪烁显示,即可起到声光报警的作用。电源电路用LM7805稳压器来产生稳定的5v电压。

3系统的程序设计

本控制系统的设计以单片机和温度传感器DS18B20为核心,DS18B20检测到的数据通过4个数码管实时显示。如果检测到的温度超过设定的警戒值,则声光报警器开启工作。因此,程序设计的模块涉及主程序、读取测量温度子程序、转换温度值子程序、数码管显示温度值子程序、声光报警控制子程序等。

3.1主程序

主程序的作用是先对温度传感器DS18B20进行初始化,使其能够正常检测温度;后读取并处理DS18B20的测量的温度值,根据预先设置的温度的上限或下限判断是否要进行声光报警,并通过数码管显示当前测量到的温度。系统一通电,温度传感器就开始工作,对环境温度进行测量,并计算温度的大小,通过DQ端将数据传送给单片机P2.4引脚进行处理,处理后的数据再通过单片机P1口传送给数码管,数码管按动态显示的原理显示数值。接在单片机P2口的按键可以设置产生温度报警信号的阈值,当超过阈值时,单片机的P2.3引脚由低电平变为高电平启动声光报警。程序中每隔1秒就对温度测量一次,可以起到实时监测的作用,保证整个环境温度处于可控范围内。

3.2读取测量温度子程序

温度传感器DS18B20的访问操作涉及初始化操作、读数操作和写数操作。初始化的作用是确定系统中是否存在DS18B20。如果存在,则初始化成功,可以进行读写操作;否则,数码管显示4个“-”以提示错误。单片机从DS18B20中读数时,DS18B20是以字节为单位向单总线发送数据,先发送低位,后发送高位。读取测量温度子程序的主要作用是读出存放在数据存储器中的9字节。

3.3 温度转换命令子程序

温度传感器DS18B20进行温度转换时需要一定时间,启动温度转换命令后需要延长一段时间后,才能读取温度转换值;否则,所读的数据是错误。温度转换命令子程序主要作用是发送开始进行温度转换的命令,由于DS18B20的温度转换时间大约需要750毫秒,特采用延时1秒的子函数,等待转换的完成。首先发复位命令使温度传感器DS18B20恢复到一个确定的初始状态,然后发跳过程序存储器的命令,最后发送开始进行温度转换命令,这样就可以顺利地完成温度转换。

3.4数码管显示子程序

4位数码管采用动态扫描的方式显示相应位的数值,先控制需要显示的数码管,让其位选端为高电平,其他3个数码管位选端为低电平处于无效状态,再给这个发光的数码管送相应的字型码;按照相同的显示原理,依次点亮其余的数码管,由于人眼的視觉停留,感觉这4个数字是同时被点亮的。计算温度子程序将RAM中读取值进行BCD码的转换运算,取出个位、十位、小数点后面的1位,并进行温度值正负的判定,通过调用数码管显示函数,就可以显示相应的字符。

3.5 声光报警控制子程序设计

声光报警控制程序设置低温报警和高温报警,先读出检测到的温度,再和设定阈值进行比较,当预先设定的报警温度值中的最大值或最小值超出初始设置的阈值,转去执行定时器T0编写中断服务函数,从而控制蜂鸣器和发光二极管的状态,发挥声光报警作用。

4测试与结果分析

本设计系统的硬件电路原理图是在 Proteus仿真平台上绘制完成,用C语言在Keil软件中编写控制程序,编写程序时要注意按模块设计,程序编写完毕后要进行调试,直至显示没有错误并生成.hex文件。然后,用Proteus仿真平台测试,看程序设计是否符合设计要求。单片机是整个控制系统的核心,为其添加.hex文件,点击运行按钮开始仿真,可以观察到单片机一上电时数码管显示的是四个一,代表系统能正常工作。

单片机上电后对程序进行初始化,检测温度传感器DS18B20状态,调节温度传感器DS18B20的数值,数码管显示模块显示对应的数值。如果调节 DS18B20芯片上表示温度变化的箭头,DS18B20芯片上显示的温度与数码管显示的温度相同,说明温度测量的设计是符合要求的。

当温度超过设置的阈值的上限或下限时,系统会启动声光报警电路,蜂鸣器会发出“唧……唧……唧”蜂鸣声,同时LED灯会闪烁。当系统未成功检测到温度传感器DS18B20,或出现其他异常时,数码管所有管段全部发光以提示错误。

5结论

生产生活中,对粮仓、储罐、电讯机房、电力机房等易发生火灾的地方进行温度测量十分重要。人们根据监测到的温度可以采取相对应的措施,起到保护人身安全和财产安全的作用。DS18B20是一个能输出数字信号的数字温度传感器,具有体积小、功耗低、测量精度高、抗干扰能力强等优势,被广泛应用于工业控制和自动化生产领域中。因此,本文设计了一种基于DS18B20的智能温度测量系统,按照设计要求搭建的仿真系统可以正常运行,仿真结果达到预期。本设计依托单片机最小系统,以温度传感器DS18B20为温度检测核心,利用Proteus仿真平台和Keil编程软件实现了实时监测环境温度的功能,符合设计要求。

参考文献:

[1] 林立,张俊亮.单片机原理及应用: 基于Proteus和Keil C [M]. 4版.北京:电子工业出版社, 2018.

[2] 周福恩 .DS18B20 温度传感器在温室大棚中的应用研究[J]. 农村经济与科技,2017,28(19):53-54.

[3] 刘如意,常驰,李刚.基于51单片机的温度数据采集系统[J].电子制作,2018(21):8-10.

[4] 胡翔,刘翰诺.报警器在化工生产中的应用[J].化学工程与装备,2015(4):190-191.

[5] 王建勋,周青云.基于DS18B20和LabVIEW的温度监测系统[J].实验室研究与探索,2012,31(3):47-50.

[6] 张仲明,郭东伟,吕巍,等.基于DS18B20温度传感器的温度测量系统设计[J].实验技术与管理,2018,35(5):76-79,88.

【通联编辑:梁书】

猜你喜欢

声光报警数码管蜂鸣器
电动自行车产品车速提示音检测现状和整改技术研究(2)
高速公路雾天行车安全诱导及护栏碰撞声光报警低功耗融合系统
电力系统接地线声光报警装置的研制及应用
掌控板制作简易钢琴
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
单片机驱动蜂鸣器的程序设计
基于Qt的数码管数字编码系统的设计与实现
丰田凯美瑞240V车间隙警告蜂鸣器异常鸣响