任志华,李永红
(中北大学,山西太原 030051)
随着社会的进步和工业技术的发展,人们越来越重视温度这一因素,许多产品对温度要求严格,而目前市场上普遍存在的温度检测仪器大都是单点测量,同时还有温度信息传递不及时、精度不够的特点,不利于工业控制者根据温度变化及时做出决定[1-2]。在这样的形式下,开发一种能够同时测量多点,并且实时性高、精确度高,能够综合处理多点温度信息的测量系统就很有必要。
本文采用单总线数字温度传感器DS18B20和单片机AT89C51构成的温度测量装置,它可直接输出温度的数字信号[3]。测温系统结构简单,体积也不大,而且AT89C51可以带多个DSB1820,可以非常容易实现多路测温,轻松的组建传感器网络。
本系统由单片机AT89C51、显示电路、串口通讯电路、报警电路、数据存储和上位机组成。单片机AT89C51的I/O线作为总线可以挂接多个温度传感器DS18B20,I/O总线处于高电平时,可以为数字温度传感器提供电源。单片机AT89C51通过巡回检测,获取各点温度,贮存在数据存储卡上,通过MAX232串行通信接口接上位机,同时可以送显示器进行显示,并且温度超限时可以报警。系统硬件整体结构设计框图如图1所示。
图1 硬件整体结构框图
本文为多路温度测试,因此DS18B20采用外部供电方式,理论上可以在一根数据总线上挂256个DS18B20,但实践应用中发现,如果挂接25个以上的DS18B20仍旧有可能产生功耗问题。另外单总线长度也不宜超过80 m,否则也会影响到数据的传输。在这种情况下我们采用分组的方式,用单片机的多个I/O来驱动多路DS18B20。在实际应用中还可以使用一个MOSFET将I/O口线直接和电源相连,起到上拉的作用。
在本文中选择液晶显示模块LCD1602,它是一种可编程器件,可以显示两行,每行16个字符,采用单+5 V电源供电,外围电路配置简单,价格便宜,具有很高的性价比,可以定时循环检测和通过LCD1602显示多路的温度,因此选择LCD1602。
AT89C51有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。其电路如图2所示。
在实际的工作中,工作的温度可能会超出设定值的范围,在本文中,如果外界温度低于9℃或高于85℃,系统将产生报警声音,并且对应的LED同步闪烁,LED-YELLOW为低温闪烁,LED-RED为高温闪烁。
整体电路图如图2所示。
图2 整体电路图
整个系统的功能是由硬件电路配合软件来实现的,软件设计部分采用模块化设计和C语言编程,主程序流程图如图3所示。
图3 主程序流程图
图4 温度采集流程图
通过对多个DS18B20进行操作就能实现对温度的采集,程序中对DS18B20的操作主要有几个步骤:初始化;搜索DS18B20;匹配DS18B20;发送温度转换指令;读取温度值[5]。其温度采集流程图如图4所示。
通过对各个部分电路的设计,本文基本上实现了对4路温度的测量和控制。以AT89C51作为控制主机,以单总线数字温度传感器DS18B20作为现场测温元件,当外界温度低于-20℃或高于70 ℃时,具有报警功能。
数字温度传感器DS18B20具有测量速度快、精度高、智能化等特点,以AT89C51作为控制主机组成的多路温度采集系统可靠性高、维修方便、抗干扰性能好、具有CRC校验功能,适用于各种温度检测和控制系统。因此,在大型仓库、工厂、医疗与健诊等系统需要多点温度检测中有着广阔的应用前景。
[1]吴东霞,陈天胜,王佳.基于MCS-51的多路温度检测系统的硬件设计[J].科技信息,2009(35).
[2]刘岑俐,张明.多路温度检测系统的设计[J].四川大学学报,2008(10).
[3]朱群峰,黄磊,唐杰,王跃球.基于DSl8B20的单总线多路温度采集系统[J].仪表技术,2008(12).
[4]黄宇飞,吴江,秦旭,等.单片机单总线技术[J].单片机与嵌入式系统应用,2001(1): 22-25,47.
[5]月霞,孙传友.DS18B20 硬件连接及软件编程[J].传感器世界,2001(12):25-29.
[6]王玲,王中训,王恒.基于MSP430单片机的多路无线温度检测系统[J].现代电子技术,2011,34(1).
[7]张慧坤.温度检测系统的设计与实现[J].北京电力高等专科学校学报:自然科学版,2011,28(5).
[8]东耀,汪仁煌.数字温度传感器在仓库温度检测系统的应用[J].传感器世界,2001(12):30-33.