《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > 基于VB的計算機溫度采集系統設計與實現
基于VB的計算機溫度采集系統設計與實現
摘要: 本系統用單片機對整個測量電路進行管理和控制,使得整個系統智能化、體積小、功耗低、使用電子元件較少,內部配線少,成本低,制造、安裝、調試及維修方便。該系統中單片機作為下位機,完成測溫任務,測量結果可在本地顯示,也可通過下位機與上位機(PC機)通訊,給出結果和提示信息。而上位機與下位機大多是通過PC機的RS-232串行接口實現通信。Visual Basic是可視化面向對象的采用事件驅動技術的結構化程序設計語言,本系統上位機是在Windows環境下利用Visual basic開發微機通信程序。
Abstract:
Key words :

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 結束語
系統中沒有對溫度超過測溫范圍時情況的處理,可在系統改進中增加一個報警電路。將單片機的一個口與一個發光二極管相接,所測溫度超過規定溫度時,發光二極管點亮,提醒用戶。本系統由于進行了實時顯示和數據存儲的設計,便于直觀地觀察溫度變化和數據處理。本系統最大的特點就是容易實現,不需要數據采集卡,不需要硬件驅動程序,硬件連接方便,軟件編制也比較容易掌握,特別適合短期的測溫系統開發。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 美女张开腿给男生桶下面视频 | 性8sex亚洲区入口 | 精品无码三级在线观看视频 | 好吊妞国产欧美日韩视频 | 五月激情丁香婷婷综合第九 | 国产成人啪精品 | 香港三澳门三日本三级 | 欧美精品久久久久久久影视 | 男女午夜视频在线观看 | 手机毛片免费看 | 免费一区二区三区四区五区 | 中文在线最新版天堂 | 国产一区二 | 亚洲第一区精品日韩在线播放 | 亚洲精品一区二区久久这里 | 男女视频免费网站 | 手机看片精品国产福利盒子 | 亚洲美女在线视频 | 手机亚洲第一页 | 中文字幕 亚洲精品 第1页 | 宅女福利视频在线看免费网站 | 国产成人久久综合二区 | 一级欧美毛片成人 | 国产高清av在线播放 | 美女黄页网站免费进入 | 国产精品免费_区二区三区观看 | 日韩美女强理论片 | 久热中文字幕在线精品免费 | 91精品国产高清久久久久久91 | 亚洲精品一区二区三区四 | 一区二区三区 日韩 | 一级做性色a爰片久久毛片 一级做性色a爰片久久毛片免费 | 99久久精品国产一区二区 | 午夜两性视频 | 美女把张开腿男生猛戳免费视频 | 91热久久免费频精品动漫99 | 日韩高清不卡在线 | 成人国内精品久久久久影院 | 九草视频 | 91精品综合久久久久m3u8 | 国产高清精品一区 |