王仁忠
【摘 要】基于串口通信和MSComm控件原理,介绍以STC12C5A16S2单片机为核心的微控制器及PT100作为温度传感器作为主要硬件,下位机程序采用单片机C语言编写,上位机温度监控软件采用VB 6.0编写,设计完成了高精度、响应快、宽量程温度采集系统。
【关键词】串口通信;PT100;单片机;C语言;温度采集;VB6.0
在动力工程中,利用热电阻作为传感器最为广泛,研究此类课题,对当下工、农业领域有着重要意义。热电阻的主体实际由两种不同性质的导体或半导体一端焊接在一起而成,构造简单。由于其在测温时它与被测物体直接接触不受中间介质的影响,所以在工业温度测量有较高的准确性。
1.温度采集系统硬件设计
设计采用LM2576作为5V电源稳压模块,PT100铂热电偶作为温度传感器,硬件PT100两端的电压经过LM358放大,送入单片机进行A/D转换,然后通过单片机串口发送到上位机显示温度数值。系统框图如图1.1所示:
1.1恒流源、5V电源电路设计
测温原理基本原理为通过运放U1A将基准电压转换为恒流源,电流流过Pt100时在其上产生压降,再通过运算放大U1B将该微弱压降信号放大,即输出期望的电压信号。
5V电源电路其主控芯片为LM2576-5.0,LM2576系列的稳压器是单片集成电路,能提供降压开关稳压器(buck)的各种功能,能驱动3A的负载,有优异的线性和负载调整能力。220V电源经降压变压器降压,然后通过2W08模块进行整流,再输入到LM2576稳压模块,通过其与外部电感、电容、快速通断二极管IN5822构成反馈回路,从而达到降压稳压的效果。主要电路原理图如图1.1所示:
图1.2 5V电源产生电路原理图
1.2信号放大处理电路设计
首先5V直流电源经过TL431进行调压,调节电压到3V,输入到LM358,从而根据电路产生1mA的稳定的直流电流,让其流过PT100,当周围的温度发生变化,Pt100的电阻值就会发生变化,当周围温度为0℃的时候,按附录一可知其电阻值为100,那么PT100两端的电压就为,此电压再经过LM358构成的放大电路放大10倍,输入到单片机A/D输入口,最后单片机对其进行模数转换。依次原理,周围温度变化,PT100的电阻值发生变化,两端电压差也随之变化,从而使输入的模拟电压发生变化,经过单片机程序的处理分析,就能得到相对应的温度值。信号采集放大电路如图1.3所示:
图 1.3 信号采集放大电路原理图
2.软件设计
STC12C5A16S2单片机,其自带A/D转换口P1(P1.7-P1.0),具有八路十位高速A/D转换器,速度可达250KHz(25万次/秒)。八路电压输入型A/D,可做温度检测、按键扫描、电池电压检测等。上电复位后P1口为弱上拉型I/O口,其中我们可以很容易的通过软件设置八路中的任何一路为A/D转换口,不做A/D口使用的也可做普通的I/O口使用。
当PT100周围温度为0℃时,其阻值为100;当周围温度为600℃,其阻值为313.71。周围温度每增加0.1℃时,PT100基本增加0.32-0.39,平均值为0.356。输入单片机的电压变化范围为1V-3.13V,单片机A/D转换位数为10位。
上位机软件设计。
2.1上位机通信驱动方式选择
VB编程语言中MSComm控件提供了两种处理通信的方式:一种称为事件驱动方式,此方式相当于我们在一般程序设计中的中断方式(如51单片机中的几种中断方式)。当串口发生事件或错误时,MSComm控件就会产生OnComm事件,用户程序可以捕获该事件,从而进行相应处理。另一种称为查询方式,在用户在程序中设计定时或不定时查询 MSComm控件的某些特定属性是否发生变化,从而确定相应处理。在程序空闲时间较多时可以采用该方式。本次设置使用事件驱动方式来处理和解决各类通信软件的开发设计问题,实时性很强。
2.2软件运行效果图
图 2.1 上位机软件运行效果图
3.总结
本次设计通过模拟电路产生4.96V恒定直流电压源,LM358与其他元件产生基本恒定直流源,上位机与下位机能很好联机通信,采集温度范围广,但也存在一定的误差,也存在其他一些问题需要进一步研究解决。
对于温度测量精度要求较高的,本系统存在一定的误差,在缩小误差方面,以后可考虑:
(1)采用独立高精度的A/D转换芯片(如ICL7135)。
(2)采用与PT100相反特性的非线性元件作为补偿元件。
(3)使用高次方程做拟合等方法。
通过运算放大电路产生的恒流源电路,存在一定的干扰信号,恒流源不太稳定。在今后的研究学习中,可以考虑采用(下转第50页)(上接第13页)OP07设计电路或增加放大电路的级数,从而减少误差。同时当温度波动比较大时,也可将运放的供电改为 15V双电源供电。
对于软件设计,加入一定软件温度补偿程序或采用分段转化的思想使测量的温度更加接近实际值。 [科]
【参考文献】
[1]季华,陈旭忠,李占芳等.基于VB与单片机串行通信的数据采集系统的设计[J].煤炭工程,2007(12):134~136.
[2]雷建龙,李秉玉.基于89C2051单片机的远距离高精度温度测控电路[J].中国仪器仪表,2003(2):45~47.
[3]刘志群.基于RS485实现的PC机与单片机多机通信[J].闽江学院学报,2007,28(2):44~46.
[4]Philips semiconductors.sJA1000 stand—alone CAN controer[R].Holand:Philips,2000.
[5]Atmel Corporation.A'I89S52 Datasheets[EB/OL].2001.http://WWW.21ic search.com/search pdf/download.asp?id=137366.