多点温度检测系统的设计
唐影
摘 要:文章对多点温度检测系统的设计进行研究,多点温度检测系统为单片机控制7个温度传感器,读取温度后发送至液晶显示屏进行显示,每个点都可以设置相应的温度值,当任意一点的温度超过该点的设定值时,声光报警和语音报警同时启动,使报警系统更加精确、完美。
关键词:温度检测;单片机;语音报警
在仓库、车间等密闭的较大空间或储物场合,需要在空间内设置多个温度采集点来测温。将单片机运用到测温领域上,可以解决很多棘手的问题,比如系统的滞后性和精确度等[1]。单片机技术在工艺、内部结构和电源电压上都在不断地发展[2]。
在整体的设计中,充分了解了单片机STC89C52RC的工作原理和它具体的管脚功能,以及MY1690-12P语音播报模块的使用和DS18B20温度传感器的应用,完成了有7个点的温度检测系统的设计,并在protues上进行系统的仿真,最后完成了实物的制作。
1 系统设计要求
多点温度检测系统实时监控7个测温点,将各个点温度顯示出来,并且在温度超过设定值时使用声光提示报警。系统满足以下条件:(1)温度测量范围﹣50~99 ℃,采集精度1 ℃。(2)测量温度点7个左右,并能显示当前各个点的温度。(3)可以修改设定值。(4)无论哪个点超过了设定值温度,声光报警系统启动,并语音提示是哪个测温点超过设定值。
多点温度检测系统采用ST89C52单片机实现。一个单片机可以对多个DS18B20温度传感器进行控制,运用主从分布式思想,仅由一个单片机控制7个温度传感器进行分工合作,从而实现7个温度的检测与控制。
2 系统的整体构架
在设计过程中选取了STC89C52单片机作为系统的核心,它主要控制温度传感器、液晶显示电路,蜂鸣器以及语音模块这4个模块。这4个模块的电路必须要按照编译好的程序来执行各自的工作内容。系统的整体构架如图1所示。各部分电路的功能以及作用如下。
(1)单片机电路:单片机电路是此次设计的重点部分,它相当于一台小型的计算机,包括输入输出电路、定时、扫描、时间设置等电路。用户先是给单片机输入指令,然后由单片机完成相应的操作程序后,通过外部的硬件电路,实现对下面各个模块的控制。当系统遇到故障或者给单片机的信号不准确,系统就无法正常工作[3]。
(2)电源电路:系统外接+5 V电源供电。
(3)复位电路:复位电路对于单片机的稳定性是很重要的。它可以使单片机内部的各个参数保持初始的位置,避免因为外部因素引起的程序紊乱。
(4)时钟电路:为单片机提供工作时所需要的时钟脉冲信号,相当于是单片机的心脏,供单片机作定时和计时使用。
(5)温度传感器电路:系统设计了7个温度传感器电路,通过它能测得温度的数据,是系统的核心电路。
(6)液晶显示电路:选用LCD1602,它可以将实时测得的温度值显示出来。
(7)报警电路:用户可以自己设置7个点中任意一个的温度值,当实际温度值超过设定好的温度值时,控制芯片驱动蜂鸣器报警,同时报警灯会亮,语音报警会提示具体哪个点超过了设定温度值。
3 系统硬件设计
系统硬件部分主体上分为6个模块:单片机最小系统模块、温度显示模块、温度测量模块、声光报警模块、语音警报模块和按键模块。
3.1 单片机最小系统模块
最小系统就是单片机的驱动电路。它主要包括供电系统、时钟电路和复位电路3部分。复位电路连接到单片机的REST口,采用的是按键复位。时钟电路连接到的是XTAL1和XTAL2口。最小系统的电源连接采用的是USB的插口,十分方便;外接晶振频率为11.059 2 MHz。
3.2 温度显示模块电路设计
温度显示模块能够直观地了解具体的温度值,系统滚动显示7个点的温度。系统设置3个按键:设置键、增加键、减少键。按下设置键,显示屏会马上切换至设置界面并显示第一个点的设定温度,再按设置键切换至第2个点的设定温度,以此类推。按增加、减少键就能设定每个点的温度值。这里采用LCD1602显示屏,它一共有16个引脚,按照每个引脚的具体功能连接到单片机上。
3.3 温度测量模块电路设计
供电电路选择用一个外部电源向它的VDD引脚供电,这种方法的优点是单总线上不再需要强上拉,总线不用在温度转换的时间段一直保持高电平。
多点温度检测系统采用STC89C52RC单片机的并口来同时控制7个温度传感器。该系统中7个温度传感器的接法大都一致,只有DQ脚分别链接到单片机的P1.0至P1.6口。
3.4 报警模块的设计
多点温度检测系统采用声音报警、闪烁和语音报警。用单片机与有源蜂鸣器以及一盏LED灯连接,只要哪个点的温度超过了该点的预定温度值,传感器把信号送给单片机后,单片机立即通过置位P3.7口使得蜂鸣器发出报警声音,同时置位P3.6口使得LED灯闪烁来报警提醒,声音和亮光同时发出。
语音报警可以具体播报哪个点超过了预定温度值的功能,采用MY1690-12P的MP3语音模块来语音报警。此模块一共有12个引脚,在实际的设计中只用到了其中的6个引脚。它上面的1号引脚和2号引脚(SPK1和SPK2)外接了一个无源喇叭来播报语音,5号引脚外接一个+5 V电源,12号引脚接地。它的7号引脚(RX)为UART异步串口数据输入,连接到单片机的10号引脚(RXD脚),它的8号引脚(TX)为UART异步串口数据输出,连接到单片机的11号引脚(TXD脚)。
3.5 按键模块的设计
各个按键是相互独立的,每个按键单独占用一根I/O线,每根I/O线的按键工作状态也是相互独立的,不会影响到其他I/O线上的工作状态。按键模块一共使用了5个按键(S1,S2,S3,S4,S5)。其中S1为系统的复位按键,按键S2连接的是单片机的P2.3接口,为系统的设置键,通过按下它来进入到设置界面对第一个点进行设置,再按下它进入第二个点的设置,以此类推。按键S3连接的是单片机的P2.2接口,为系统的增加键,在进入设置界面后通过按下它来增加相应点的温度设定值。按键S4连接的是单片机的P2.1接口,为系统的减少键,在进入设置界面后通过按下它来减少相应点的温度设定值。按键S5连接的是单片机的P2.0接口,为系统的备用键,没有设置任何的功能。
4 软件程序设计及调试
系统主程序的执行流程如图2所示,主程序先对显示屏和7个温度传感器进行初始化,再重复调用温度传感器的写命令和读数据两个模块,由于温度是模拟量,无法进行传输,所以就需要把温度转换成数字量后送到液晶显示屏进行直观地显示。然后可以按下设置键一个一个地设置7个点的温度值,当任意一个点超过设定值时,声光报警模块开始工作,同时语音播报具体哪个点超过了预定温度。
5 仿真调试与实物效果
使用proteus仿真电路,当任意一个点超过该点的温度设计值时,蜂鸣器马上发出警报,同时LED灯开始闪烁。系统运行后的仿真电路如图3所示。
通过USB接口给实物PCB板供电,刚通电时工作灯D1就会一直亮着直到断电为止,并且会语音提示“开始检测温度传感器,开始采集”。然后液晶显示屏会显示出从1—7的数字,并显示“Welcome To Use”的英文。接着是系统的初始化,初始化完成后就开始循环显示7个点的温度值,当7个点的温度都没超过设定值时,板子右上角的蜂鸣器不会发出声音,报警灯D3也不会亮。因为只是模拟的系统,温度传感器的温度不能轻易地去改变,于是就把设定温度值调到当前室温以下,模拟报警。按下S5设置键,进入到第一个点的设置界面,按下S3的减少键,把设定温度值调到室温以下,再按设置键到第2个点的设置界面,以此类推。退出设置界面后系统会马上发出声光报警,喇叭循环播报第一个点超过了设定温度值。
6 结语
7个温度传感器能迅速且准确测量出当前的温度,并且通过与单片机相连,把测到的温度值经过转换处理后发送给单片机,然后被送到液晶显示屏进行滚动显示。通过按下设置键可以进入设置界面,再按增加、减少键来设置每个点的设定温度值时,当传感器测到的温度超过该点的设定温度值,声光报警模块立即启动,语音系统自动播报该点的警报。
从结果上来看,依据DS18B20单总线协议和单片机的应用知识,成功地实现了多点温度检测系统的功能,并且还开发了语音报警功能。在实际生活中,需要测量的点不可能仅有7个,所以只要把温度传感器与单片机按照上面的方式连接好,然后再增加一些程序就能够轻松实现更多点的测量检测。本设计具有较强的实用性和拓展性。
[參考文献]
[1]王峰,孟立凡.基于单片机的温度调温系统的设计与实现.[J]电子世界,2011(10):103-109.
[2]王秀霞.基于DS18B20的多路无线温度检测系统[J].湖南大学学报(自然科学版),2011(12):362-367.
[3]曹海平.基于单片机和DS18B20的分布式多点温度检测系统的设计[J].自动化技术与应用,2008(11):90-92.