- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于单片机和DS18B20的温度采集和分析系统
传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性较差、测量温度准确率低,且还必须经专门的接口电路转换为数字信号后才能由单片机进行处理。不仅如此,大部分温度系统都缺少对温度的采样存储,无法对温度进一步分析。本文介绍了一套以个人电脑及80C51单片机为核心,使用DS18B20温度传感器进行温度采样,数据库进行温度存储,Matlab进行温度分析的系统。该系统可对其所处环境的温度进行实时监控,同时进行温度的采样、存储和分析,实现对特定环境下温度的了解。
1 系统总体组成
系统硬件部分主要用于温度的测量和存储。PC端则用于测温事件的建立与存储、测量参数的设置、温度数据的存储及温度数据的分析。整体而言,系统核心部分分为温度监测模块、温度存储模块和温度分析模块3部分。
温度监测模块用于温度的监测及采样,首先利用PC端程序进行测温事件的建立及采样开始时间(时分秒)、采样结束时间(时分秒)、采样间隔(秒)和传输方式8个采样相关参数的设置,传输方式包括直接传输和间接传输,对应温度的永久存储和临时存储,相关参数通过串口传给单片机。然后利用80C51单片机和DS18B20温度传感器来获取当前温度,并按要求对温度进行采样,同时利用其他器件将温度及当前时间显示到LED屏上。
温度存储模块分为临时存储模块和永久存储模块,临时存储模块用于将所测量的温度数据通过I2C总线临时存储于AT24C02芯片中,永久存储模块则将AT24C02芯片中的数据或当前测量的温度数据通过串行口传给PC端,然后PC端程序将其存储于SQL Server数据库中。
温度分析模块利用Matlab对所获数据进行处理。通过将数据库中的数据导入Excel表,然后调用Matlab的m文件读取Excel表中的数据,并对其分析,完成数据处理。
系统的总体设计如图1所示。
2 系统硬件设计
系统硬件原理如图2所示,硬件电路图如图3所示。整个系统通过STC89C52RC单片机进行控制,8051系列单片机为1980年Intel公司推出的MCS-51系列8为高档单片机微机,而该型号单片机为8051内核芯片,内含Flash E2PROM存储器,内部程序存储空间的大小为4 kB,内部RAM为512 Byte,价格较低,能较好地满足系统要求。DS18B20温度传感器通过单总线与单片机P1.7连接,单总线数字温度传感器将地址线、数据线、控制线合为1根信号线,硬件开销小,为保证系统稳定性,将DS18B20的VCC端与外部电源相连。1602液晶为5 V电压驱动,可显示两行,每行16个字符,内置含128个字符的ASCII字符集字库,可满足系统信息输出的要求,1602占用单片机的P0及P2.3、P2.4、P2.5。AT24C02为E2PROM存储器,使用了快速、高效、精准的I2C接口设计技术与单片机进行通信,时钟线与单片机P2.0相连,信号线与P2.1相连。DS1302为时间芯片,能自动产生年、月、日、时、分、秒等时间信息,可实现系统温度与测量时间的对应传输,并方便系统控制。MAX232为RS232/TTL电平转换芯片,实现下位机与PC端上位机的串口通信,其与单片机的RXD(P3.0)和TxD(P3.1)相连。
3 系统软件设计
3.1 单片机程序设计
图3为程序的程序总体设计图,application为整个单片机程序的全局变量,用以区分系统核心部分和应用部分,当按下与P3.2相连的按键时,触发外部中断0,application自加1。
系统核心部分又分为空闲模式和工作模式。系统处于空闲模式时,读取DS1302的时间信息和DS18B20的温度信息,在液晶显示屏上显示当前的日期、时间和温度,同时利用按键可校准日期和时间;处于工作模式时,硬件电路与PC端配合工作,完成温度的采样、存储和传输。
应用部分,单片机通过串口获得温度阈值和函数式,利用下文将叙述的公式完成相应功能。另外,单片机进行温度采样的时间由定时器0进行精确控制。定时器1用于波特率的产生。当PC端传递数据给单片机时,将导致串口中断,参数数据传送至单片机的SBUF寄存器,然后再将数据存储于char型二维数组Parameter中,因为所需传输的参数数据共有8个,且每个参数的位数均为2位,故包括‘