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

发布者:楼高峰最新更新时间:2010-02-08 来源: 微计算机信息关键字:传感器  单片机  串行通信 手机看文章 扫描二维码
随时随地手机看文章

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 结束语

    系统中没有对温度超过测温范围时情况的处理,可在系统改进中增加一个报警电路。将单片机的一个口与一个发光二极管相接,所测温度超过规定温度时,发光二极管点亮,提醒用户。本系统由于进行了实时显示和数据存储的设计,便于直观地观察温度变化和数据处理。本系统最大的特点就是容易实现,不需要数据采集卡,不需要硬件驱动程序,硬件连接方便,软件编制也比较容易掌握,特别适合短期的测温系统开发。

关键字:传感器  单片机  串行通信 引用地址:基于VB的计算机温度采集系统设计与实现

上一篇:基于AT89C51单片机的变频调速控制系统设计
下一篇:基于C8O51f060单片机的数据采集系统

推荐阅读最新更新时间:2024-03-16 12:28

基于STM32单片机流水灯控制中的GPIO_Init()函数解析
学习STM32时,首先要熟悉流水灯例程,在这里就来分析流水灯中的GPIO_Init()函数 例如:流水灯例程中使用的端口是macLED1_GPIO_PORT=GPIOB, 控制的引脚是GPIO_Pin_0, 引脚的模式是GPIO_Mode_Out_PP(通用推挽输出), 引脚的速率是GPIO_Speed_50MHz, 用到的寄存器是CRL 将上述的引脚、模式、速率换算成32位的16进制,分别是: 1)控制的引脚是GPIO_Pin_0 换算成32位的16进制是:0x0000 0001 2)引脚的模式是GPIO_Mode_Out_PP(通用推挽输出) 换算成32位的16进制是:0x0000 0010 3)引脚的速率是GPIO_Sp
[单片机]
基于STM32<font color='red'>单片机</font>流水灯控制中的GPIO_Init()函数解析
关于51单片机IO引脚的驱动能力与上拉电阻设计方案
单片机的引脚,可以用程序来控制,输出高、低电平,这些可算是 单片机 的输出电压。但是,程序控制不了单片机的输出电流。 单片机的输出电流,很大程度上是取决于引脚上的外接器件。单片机输出低电平时,将允许外部器件,向单片机引脚内灌入电流,这个电流,称为 灌电流 ,外部电路称为 灌电流负载 ;单片机输出高电平时,则允许外部器件,从单片机的引脚,拉出电流,这个电流,称为 拉电流 ,外部电路称为 拉电流负载 。这些电流一般是多少?最大限度是多少? 这就是常见的 单片机 输出驱动能力的问题。 早期的 51 系列单片机的带负载能力,是很小的,仅仅用 能带动多少个 TTL 输入端 来说明的。P1、P2 和 P3口,每个引脚可以都带动 3 个 TTL
[单片机]
关于51<font color='red'>单片机</font>IO引脚的驱动能力与上拉电阻设计方案
压力传感器和称重(加载/感应)的信号通道
   概述   在现代工业控制和系统监测领域,通常需要监测、测量压力和重量。由于压力可直接用来测量流体、高度及其它物理量,压力测量尤其重要。由于加载是影响传感器输出的一项属性,压力、重量测量装置可以看作是“加载传感器”。加载传感器的应用非常广泛,包括从真空计到重型机械称重,以及工业液压设备、绝对压力传感器(MAP)等各个领域。每种应用对精度、准确度和成本都有不同的具体需求。   虽然压力和重量(加载/感应)的测量方法和技术有许多,但最常用的测量装置是应力计。   最常见的应力计有两种:一种是重量/压力传感器大多采用的金属箔;另一种是基于半导体的压阻式传感器,广泛用于压力测量。相对于金属箔传感器,压阻式传感器灵敏度更高,线
[模拟电子]
工业自动化的智能转变到底什么样,给你一个案例来解释
工业物联网(IIoT)可以改变自动化和操作流程的工作吗?是的,可以。但是,只有厂家愿意且能够去改变其基于几十年的工业生产过程而建立起来的结构框架。需要明确的是,这并不意味着将机器、控制系统和网推倒重来,而是意味着要打开原有的一切并增添新内容。 数据正在迅速成为工厂车间最重要的战略资产。这是因为,如果应用得当,它可以创造新的商业模式和新的收入来源。据麦肯锡全球研究所的报告显示,到2025年物联网应用的每年所产生的潜在经济影响将高达11.1万亿美元。工厂将主要关注运营和设备优化,具有最大的高达3.7万亿美元的潜力。 听起来牵强?想想这个:根据麦肯锡的报告,石油钻机99%的数据在决策者做出决策之前就已经丢失了。换言之,一个带有30
[嵌入式]
自适应巡航控制系统的工作原理及应用
一、自适应巡航控制系统的定义 自适应巡航控制(ACC)系统:在汽车行驶过程中,车距传感器持续扫描汽车前方道路,同时轮速传感器采集车速信号;当前汽车与前方车辆之间的距离小于或大于安全车距时,ACC控制单元通过与制动系统、发动机控制系统协调动作,改变制动力矩和发动机输出功率,对汽车行驶速度进行控制,始终保持安全车距行驶
[嵌入式]
自适应巡航控制系统的工作原理及应用
单片机软件滤波的几种方法
1、限幅滤波法(又称程序判断滤波法) A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A) 每次检测到新值时判断: 如果本次值与上次值之差 =A,则本次值有效 如果本次值与上次值之差 A,则本次值无效,放弃本次值,用上次值代替本次值 B、优点: 能有效克服因偶然因素引起的脉冲干扰 C、缺点 无法抑制那种周期性的干扰 平滑度差 2、中位值滤波法 A、方法: 连续采样N次(N取奇数) 把N次采样值按大小排列 取中间值为本次有效值 B、优点:
[单片机]
51单片机是什么?
51单片机是对目前所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是52系列的单片机一般不具备自编程能力。 当前常用的51系列单片机主要产品有: *Intel的:80C31、80C51、87C51,80C32、80C52、87C52等; *ATMEL
[单片机]
消息称三星将在其智能手机中使用更多的索尼相机传感器
3 月 11 日消息,相机传感器是智能手机最重要的组件之一,索尼是全球第一大相机传感器制造商。三星的 System LSI 部门也生产 ISOCELL 品牌的相机传感器,且位居全球第二。一直以来三星自家的 Galaxy 手机大多采用其自主研发的传感器,不过未来这一局面可能会发生改变。 据韩国科技媒体 ETNews 报道,三星未来可能在其智能手机中采用更多索尼的相机传感器。索尼半导体解决方案公司(Sony Semiconductor Solutions,索尼相机传感器的制造商)计划将部分相机传感器生产线从日本转移到韩国,据称是为了扩大和加强对三星的传感器供应。有消息称,索尼已经与其韩国后端代工合作伙伴商讨了封装和测试工序,这些合作伙
[传感器]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved