基于VB的计算机温度采集系统设计与实现

2011-06-09 11:19:43来源: 互联网

1 系统功能及特点
  本系统用单片机对整个测量电路进行管理和控制,使得整个系统智能化、体积小、功耗低、使用电子元件较少,内部配线少,成本低,制造、安装、调试及维修方便。该系统中单片机作为下位机,完成测温任务,测量结果可在本地显示,也可通过下位机与上位机(PC机)通讯,给出结果和提示信息。而上位机与下位机大多是通过PC机的RS-232串行接口实现通信。Visual Basic是可视化面向对象的采用事件驱动技术的结构化程序设计语言,本系统上位机是在Windows环境下利用Visual basic开发微机通信程序。
2 系统基本原理
系统结构如图1所示,其中,计算机要求能够运行Windows98或更高版本)操作系统和开发环境VB6.0,具有标准的RS232串口,主要功能为数据采集处理和系统控制,是人机交互的平台。
 


现场温度采集点共有4路,采用AD590采集温度送到单片机的A/D转换器转入端,测量范围最大值为50度,单片机定时采集温度信号,并按串行通信协议打包构成数据帧。在微机中采用VB6.0编程,并选用MSCOMM控件进行串行口通讯。MSComm控件是Microsoft提供的扩展控件,用于支持VB程序对串口的访问,同时支持查询方法和事件驱动通讯的机制。事件驱动通讯是交互方式处理串口事务的一种非常有效的方法,特别适合Windows程序的编写。因此用其实现微机串口的数据通讯相当简单,以很少的程序代码就可以轻松实现串口的访问和数据通讯。
3 硬件设计
3.1 测量电路设计
AD590将温度转换成相应的电流后,需要有电流电压转换电路(如图2),其中电容C起滤波作用。该电路中,考虑到测温范围是0度—50度,而ADC0809输出电压范围为0-5V,故电阻R2取3.3千欧,R3取15千欧,其中R2是滑动变阻器,精度高于R3,电阻R4取100,R5取50千欧,R4是滑动变阻器,精度高于R5,电阻R6取33千欧。运放是温度电压变换电路,为了测试方便,设计时将0度时的输出电压定为0V,每升高一度输出电压上升100mV,与电压之间的关系为:U=K(T-T0)V式中,K为比例系数,K=0.98V/度,T为环境温度,单位为度,T0—测温下限0度。当T=+50度和T=0度时,变换电路输出电压上限为Umax=5V,电压下限为Umin=0V,实现的办法是:首先调整R2,使得I1=273.2uA,当温度为0度时,通过AD590的电流I2=273.2uA,此时I3=0uA,R4、R5上无压降,即输出电压为0V;当环境温度为50度时,流过AD590的电流为323.2uA,此时,I3=I2-I1=50uA,调整R4,使R4+R5=98千欧,有(R4+R5)*I3=4.9V。同样,可以计算出其余各温度所对应的输出电压。
 

3.2 模数转换接口电路设计
本系统以89C51芯片作为主芯片,管理和控制整个系统。该芯片集成度高,兼容8051单
处机,不同的是片内有4KB的ROM,为PEROM(FLASH存储器)。A/D转换器的种类很多,目前
 

应用较广泛的有:逐次逼近式A/D转换双积分式A/D转换器、V/F变换式A/D转换器。本系统所使用的单片机89C51是8位,因此采用8位A/D转换器,其接口电路简单。绝大部分集成A/D转换器的数据输出都具有TTL电平,数据输出寄存器具有可控三态输出功能,可直接挂在数据总线上,否则,就要加缓冲器接口,数据分两次读出,比较麻烦。根据系统所要求的测量分辨力,采用8位A/D转换器时,其分辨力为50/250=0.2,已经高于规定值。温度是一个缓慢变化的物理量,测量它时不需要高速A/D转换器,通道上也不需要加采样保持器。逐次逼近型A/D转换器属于中速A/D转换器,常用于工业多通道单片机控制系统。基于以上原因,本系统采用
ADC0809作为模数转换器。其结构框图如图3。该芯片是8位逐次比较式A/D转换芯片,具有地址锁存控制的8路模拟开关,最大非线性误差小于+1LSB,应用单一+5V电源,其模拟量输入电压的范围为0 +5V,对应的数字量输出为00H FFH,可锁存三态输出,输出与TTL兼容,功耗为15mW,转换时间为100 S,无需调零或调整满量程。有28个引脚,其中:IN0、IN1、IN2、…、IN7接8路模拟量输入;AD-DA、ADDB、ADDC接地址线,用以选定8路输入中的一路。
该系统中ADDC接地,AD-DA、ADDB分别接89C51的P3.3和P3.4,构成4路输入;ALE是地址锁存允许,START是芯片的起动引脚,其上脉冲的下降沿起动一次新的A/D转换,一起接入P3.7;EOC是转换结束信号,与P362相接,向单片机申请中断;OE是输出允许端,直接接+5V;CLK是时钟端,因芯片的时钟频率最高只工作于640KHZ,故通常由单片机的ALE经分频后接向该引脚;DB0 DB7是数字量输出,与PO相接,LSB表示最低位,MSB表示最高位。
3.3 串行接口电路设计
下位机(单片机)通过串行口(RXD和TXD)与上位机(PC机)进行异步通信,采用RS—232标准接口。RS—232规定了自己的电气标准,而此标准并不能满足TTL电平(MCS—51单片机串行口电平为TTL电平)传送要求。因此当RS232电平与TTL电平接口时,必须进行电平转换。目前RS232与TTL的电平转换最常用的芯片是传输线驱动器MC1488和传输线接收器MC1489,其作用除了电平转换外,还实现正负逻辑电平的转换。
4 软件设计
系统软件主要是用VB6.0对RS232串口编程。实现硬件之间的通讯。MSComm是Microsoft公司提供的主要用于串行通信编程的ActiveX控件。ActiveX控件包括一系列的属性、方法和事件,应用程序通过ActiveX控件提供的接口来访问控件的功能。通信控件把许多复杂的操作都留给了VB和Windows处理,编程人员编程时只需设置其中的一些属性。
    系统的关键代码如下:
Coast CMDconfig = "%0101210600" ’设置端口命令字符,
0--100度,科学单位
Coast CMDdataInl = "#O1" ‘读串口1数据命令字符
Coast CMDdataIn2 = "#02" ‘读串口2数据命令字符
Coast CMDspanCalibration = "$010" ‘校准命令字符
Coast CMDoffsetCalibration = "$011" ‘偏移量校准命令字符
Coast CMDconfigStatus = "$012"‘读端口信息命令字符
Coast CMDmoduleName = "$OlM"‘读模块名命令字符
Private Sub CmdStart_onClick( )‘开始命令子程序
    MSComml.CommPor = COMnum‘设置申口号
    If MSComml.PortOpen = False Then‘打开串口
        MSComml.PorOpen = True
    End If
    If COMnum = 1 Then
          CMDdataln = CMIMataInl
      Else
          CMDdataln = CMDdataIn2
      End If
    MSComml.Outpu t= CStr(CMDdataIn)&vbCr‘发出读数命令
      TimeDelay 500‘延时500 ms
      Picturel.CurrentX = 0‘绘制曲线坐标起点
      Picturel. CurrentY = temperature
    Timer1.Enabled = True‘开始计时
End Sub
Private Sub MSComml_OnComm( ) ‘事件响应子程序
  Select Case MSComml.CommEvent‘判断MSComml通讯事件
      Case comEvReceive‘收到Rthreshold个字节产生的接收事件
        MSComml.RThreshold = 0‘关闭OnComm事件接收
        TimeDelay 20‘延时20ms
    temperatureShow = Right(MSComml.Input.7) ‘读取第一个数据字节(BCD码高位字节)
        temperature = VaI(temperature5how ) ‘数值组合,标定小数点
        MSComml.Output = CStr(CMDdataIn)&vbCr‘发送读命令
        MSComml.InBufferCount = 0‘清空缓存
        MSComml.RThreshold = 1‘关闭OnComm事件接收
      Case comEventBreak‘收到Break

      Case Else
  End Select
End Sub
    系统时钟最小可以设为1ms,在使用中需要注意,由于串口速度有限,系统运行速度有限,ADAM4013模块的采样率也有限,所以设置串口采样间隔一般不能小于50ms,否则会出现延时错误。其实对于温度采集来说,20次/s的采样率已经够用,大的采样率并无太大意义。
5 结束语
系统中没有对温度超过测温范围时情况的处理,可在系统改进中增加一个报警电路。将单片机的一个口与一个发光二极管相接,所测温度超过规定温度时,发光二极管点亮,提醒用户。本系统由于进行了实时显示和数据存储的设计,便于直观地观察温度变化和数据处理。本系统最大的特点就是容易实现,不需要数据采集卡,不需要硬件驱动程序,硬件连接方便,软件编制也比较容易掌握,特别适合短期的测温系统开发。

关键字:计算机  温度  采集  实现

编辑:eeleader 引用地址:http://www.eeworld.com.cn/gykz/2011/0609/article_6495.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
计算机
温度
采集
实现

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved