黄斌
(电子科技大学 四川 成都 610054)
温度是表征物体冷热程度的物理量,是工业生产过程中监测的重要参数,温度过高或过低都会对产品的质量造成影响,甚至使产品报废、设备损坏。因此对温度进行监测具有十分重要的作用,特别在冶金和化工领域。随着传感器技术和单片机技术等不断发展,为智能温度测温系统精度的提高和稳定性改善等提供了条件。温度监测系统在工业生产、科学研究和人们的生活领域中,得到了广泛应用。本文以ATmega16单片机为核心,以及液晶显示器、数字温度传感器DS1624、报警装置和串行通讯设备来实现对温度的监测。这种温度监测系统系统性能可靠,不仅软件设计灵活简单,而且还具有精度高、稳定性好的特点。
ATmega16是基于增强的A VR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1 MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾。ATmega16 AVR内核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接与运算逻单元相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率[1]。因此文中采用ATmega16单片机可以保证很好进行数据传送以及对温度的采集。
DS1624是美国DALLAS公司[2]生产的集成了测量系统和存储器于一体的芯片。数字接口电路简单,与I2C总线兼容,且可以使用一片控制器控制多达8片的DS1624。DS1624可工作在最低2.7 V电压下,适用于低功耗应用系统,除此之外,DS1624还具有以下优点:
1)无需外围元件即可测量温度;
2)测量范围为-55~+125℃,精度为 0.031 25℃;
3)测量温度的结果以13位数字量(两字节传输)给出;
4)测量温度的典型转换时间为1 s;
5)集成了256字节的E2PROM非易性存储器;
6)数据的读出和写入通过一个2-线(I2C)串行接口完成;
7)采用8脚DIP或SOIC封装。
T6963C是一个用在LCD控制驱动集成电路(LSI)和数据显示存储器上的LCD控制器。它有一个8位的并行数据总线和控制线与MPU接口进行读写操作,它除了可以直接与80系列的8位微处理器相连接以外,还有以下特点:
1)字符字体可由硬件或软件设置,字体有 4种:5×8、6×8、7×8、8×8;
2)T6963C的占空比可从1/16到1/128;
3)T6963C具有字符发生器 ROM,共有 128种字符,T6963C可管理64K显示缓冲区;
4)T6963C可以图形方式、文本方式及图形和文本合成方式进行显示,以及文本方式下的特征显示,还可以实现图形拷贝操作。
为了能实现监测系统与上位机通讯的功能,本系统采用MAX232接口模式[3],利用单片机内部集成的UART收发器进行与上位机实现通讯功能。当单片机通过串口与上位机[4]相连,工作过程中一旦检测到上位机发来的命令,单片机便将当前温度值传送给上位机,方便了数据的存储与处理。
设计的温度监测系统如图1所示,首先单片机通过键盘输入得到所需要的最低工作温度和最高工作温度,然后单片机每隔一秒读取温度传感器的温度值,并将温度传感器的当前温度、最低工作温度和最高工作温度都通过液晶显示器实时显示出来;当单片机[5-7]所读取的当前温度大于最高工作温度或者小于最低工作温度时,单片机就会控制报警电路发出警报声;另外,温度监测系统采用MAX232接口模式,使用ATmega16内部集成的UART收发器进行与上位机全双工通讯,波特率采用9 600 bps,单片机通过接口可以将数据传输至上位机存储,这样便于以后的数据对比分析;实际的温度监测系统电路如图2所示。
图1 温度监测系统框图Fig.1 Temperature monitoring system diagram
本系统运用C语言进行单片机程序设计,采用结构化程序设计思想[8]。把整体任务分成一个个子任务,每个子程序都完成其规定的功能,明确输入输出。将这些程序连接起来就构成整体流程图。模块化编程,每个模块结构完整,相互独立的程序段。这些程序可以任意调用、修改,使整个程序结构清晰,组合灵活,维护调试方便。所设计的软件流程图如图3所示,当开始初始化时,单片机的定时器1每隔一秒读取温度传感器的温度值,并将温度值实时的显示出来。如果单片机所读取温度传感器的温度值大于最大温度时,定时器0中断,此时发光二极管闪烁,蜂鸣器发出报警声;同理,如果单片机所读取温度传感器[9-10]的温度值小于最小温度时,定时器2中断,发光二极管闪烁,蜂鸣器发出报警声。
图2 温度监测系统电路Fig.2 Circuit of temperature monitoring system
图3 软件流程图Fig.3 Software flaw chart
为了检验监测系统测量的温度精度,我们专门用该系统所测到的温度值与实际温度计测量到的温度值进行对比,如表1所示。由此表的数据可知,该监测系统测量的温度与实际温度计测量的温度的误差不超过0.5℃,因此可以满足工业生产的要求。
表1 温度对比Tab.1 Comparison of temperature data
实验证明,该系统以ATmega16单片机为核心,利用DS1624进行测温,具有硬件电路简单、测量温度精度高、功能强、简单灵活等优点。它可以应用于监测温度在-55~+125℃之间的各种场合,而且监测的温度精度保持在±0.5℃,能够满足工业生产的要求。此外,该系统可以通过与上位机之间的通讯来保存温度数据,以便于将来进行对比分析数据。
[1]田国栋,李强.基于ATmegal6单片机的实时温度采集与分析系统[J].电子设计工程,2012(7):151-153.
TIAN Guo-dong,LI Qiang.System of current time temperature gather and analysis based on ATmagel6-microcontroller[J].Electronic Design Engineering,2012(7):151-153.
[2]马明.基于DS18B20的温度采集平台设计[J].江苏科技信息,2011(7):54-56.
MA Ming.The design of temperature acquisition platform based on DS18B20 [J].Jiangsu Science& Technology Information,2011(7):54-56.
[3]MAO Yu-rong.Realization of serial communication between SCM and computer[J].Instruments and analysis and monitoring,2007(1):3-6.
[4]张维君,王珠忠,索世文.基于PC机串口与DS18B20的单线多点温度测量[J].仪表技术与传感器,2009(4):52-55.
ZHANG Wei-jun,WANG Zhu-zhong,SUO Shi-wen.1-Wire Multidrop temperature measuring technology based on of DS18B20 and PC Com[J].Instrument Technology and Sensors,2009(4):52-55.
[5]马潮.AVR单片机嵌入式系统原理与应用实践 [M].北京:北京航空航天大学出版社,2007.
[6]XU Yan,GUO Tao,ZHU Jie,et al.Based on single-chip microcomputer temperature and humidity data acquisition system design.IEEE,2011:2-310-2-313.
[7]WANG Ruilan.The design of temperature and humidity control system in multi incubators based on single-chip.IEEE,2011:4466-4469.
[8]吴新杰.AVR单片机项目教程——基于C语言[M].北京:北京航空航大大学出版社,2011.
[9]王黎明,周晋,陈昌龙.GIS微水监测湿度传感器自校验平台的设计[J].陕西电力,2012(4):11-15.
WANG Li-ming,ZHOU Jin,CHEN Chang-long.Design of adaptive equipment for humidity sensor of GIS moisture content monitoring[J].Shaanxi Electric Power,2012(4):11-15.
[10]黄华东,郭张军,彭鹏.基于分布式多传感器融合技术的坝基地下水宏观动态监测数据分析[J].陕西电力,2011(3):13-16.
HUANG Hua-dong,GUO Zhang-jun,PENG Peng.Study on macroscopic regime of groundwater under dam section based on distributed multi-sensor data fusion theory[J].Shaanxi Electric Power,2011(3):13-16.