關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于VB的計算機溫度采集系統設計與實現

        基于VB的計算機溫度采集系統設計與實現

        作者: 時間:2009-08-21 來源:網絡 收藏

        應用較廣泛的有:逐次逼近式A/D轉換雙積分式、V/F變換式。本所使用的單片機89C51是8位,因此采用8位,其接口電路簡單。絕大部分集成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 軟件
        系統軟件主要是用6.0對RS232串口編程。硬件之間的通訊。MSComm是Microsoft公司提供的主要用于串行通信編程的ActiveX控件。ActiveX控件包括一系列的屬性、方法和事件,應用程序通過ActiveX控件提供的接口來訪問控件的功能。通信控件把許多復雜的操作都留給了和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 結束語
        系統中沒有對超過測溫范圍時情況的處理,可在系統改進中增加一個報警電路。將單片機的一個口與一個發光二極管相接,所測溫度超過規定溫度時,發光二極管點亮,提醒用戶。本系統由于進行了實時顯示和數據存儲的,便于直觀地觀察溫度變化和數據處理。本系統最大的特點就是容易,不需要數據卡,不需要硬件驅動程序,硬件連接方便,軟件編制也比較容易掌握,特別適合短期的測溫系統開發。

        本文引用地址:http://www.104case.com/article/163634.htm


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阿巴嘎旗| 榆树市| 安吉县| 白朗县| 土默特左旗| 平罗县| 体育| 秦皇岛市| 客服| 房山区| 罗江县| 灵宝市| 宝清县| 通海县| 德清县| 玉林市| 大港区| 鹿邑县| 兰州市| 双辽市| 攀枝花市| 常州市| 郓城县| 隆尧县| 马鞍山市| 开平市| 巨鹿县| 娄烦县| 济源市| 眉山市| 琼海市| 天水市| 淳化县| 丰原市| 禄丰县| 保康县| 抚松县| 前郭尔| 武胜县| 新巴尔虎左旗| 余江县|