新聞中心

EEPW首頁 > 測試測量 > 設計應用 > 基于PC的數(shù)字電壓表設計

基于PC的數(shù)字電壓表設計

——
作者:王守華 李 智 時間:2006-09-07 來源:EDN China 收藏
 數(shù)字電壓表的設計和開發(fā),已經有多種類型和款式。傳統(tǒng)的數(shù)字電壓表各有特點,它們適合在現(xiàn)場做手工,要完成遠程并要對數(shù)據(jù)做進一步分析處理,傳統(tǒng)數(shù)字電壓表是無法完成的。然而基于PC通信的數(shù)字電壓表,既可以完成測量數(shù)據(jù)的傳遞,又可借助PC,做測量數(shù)據(jù)的處理。所以這種類型的數(shù)字電壓表無論在功能和實際應用上,都具有傳統(tǒng)數(shù)字電壓表無法比擬的特點,這使得它的開發(fā)和應用具有良好的前景。

新型數(shù)字電壓表的整機設計

該新型數(shù)字電壓表測量電壓類型是直流,測量范圍是-5~+5V。整機電路包括:數(shù)據(jù)采集電路的單片機最小化設計、單片機與PC接口電路、單片機時鐘電路、復位電路等。下位機采用AT89S51芯片,A/D轉換采用AD678芯片。通過RS232串行口與PC進行通信,傳送所測量的直流電壓數(shù)據(jù)。整機系統(tǒng)電路如圖1所示。

數(shù)據(jù)采集電路的原理

在單片機數(shù)據(jù)采集電路的設計中,做到了電路設計的最小化,即沒用任何附加邏輯器件做接口電路,實現(xiàn)了單片機對AD678轉換芯片的操作。

AD678是一種高檔的、多功能的12位ADC,由于其內部自帶有采樣保持器、高精度參考電源、內部時鐘和三態(tài)緩沖數(shù)據(jù)輸出等部件,所以只需要很少的外部元件就可以構成完整的數(shù)據(jù)采集系統(tǒng),而且一次A/D轉換僅需要5ms。

在電路應用中,AD678采用同步工作方式,12位數(shù)字量輸出采用8位操作模式,即12位轉換數(shù)字量采用兩次讀取的方式,先讀取其高8位,再讀取其低4位。根據(jù)時序關系,在芯片選擇/CS=0時,轉換端/SC由高到低變化一次,即可啟動A/D轉換一次。再查詢轉換結束端/EOC,看轉換是否已經結束,若結束則使輸出使能/OE變低,輸出有效。12位數(shù)字量的讀取則要控制高字節(jié)有效端/HBE,先讀取高字節(jié),再讀取低字節(jié)。整個A/D操作大致如此,在實際開發(fā)應用中調整。

     數(shù)字電壓表的電路圖
                                          圖1 數(shù)字電壓表的電路圖

由于電路中采用AD678的雙極性輸入方式,輸入電壓范圍是-5~+5V,根據(jù)公式Vx=10(V)/4096*Dx,即可計算出所測電壓Vx值的大小。式中Dx為被測直流電壓轉換后的12位數(shù)字量值。

RS232接口電路的設計

AT89S51與PC的接口電路采用芯片Max232。Max232是德州儀器公司(TI)推出的一款兼容RS232標準的芯片。該器件包含2個驅動器、2個接收器和1個電壓發(fā)生器電路提供TIA/EIA-232-F電平。Max232芯片起電平轉換的功能,使單片機的TTL電平與PC的RS232 電平達到匹配。

串口通信的RS232接口采用9針串口DB9,串口傳輸數(shù)據(jù)只要有接收數(shù)據(jù)針腳和發(fā)送針腳就能實現(xiàn):同一個串口的接收腳和發(fā)送腳直接用線相連,兩個串口相連或一個串口和多個串口相連。在實驗中,用定時器T1作波特率發(fā)生器,其計數(shù)初值X按以下公式計算:

    波特率= *(T1的溢出率)


              =*


串行通信波特率設置為1200b/s,而SMOD=1,fosc=6MHz,計算得到計數(shù)初值X=0f3H。在編程中將其裝入TL1和TH1中即可。

為了便于觀察,當每次測量電壓采集數(shù)據(jù)時,單片機有端口輸出時,用發(fā)光二極管LED指示。

軟件編程

軟件程序主要包括:下位機數(shù)據(jù)采集程序、上位機可視化界面程序、單片機與PC串口通信程序。單片機采用C51語言編程,上位機的操作顯示界面采用VC++6.0進行可視化編程。在串口通信調試過程中,借助“串口調試助手”工具,有效利用這個工具為整個系統(tǒng)提高效率。

單片機編程

下位機單片機的數(shù)據(jù)采集通信主程序流程如圖2所示、中斷子程序如圖3所示、采集子程序如圖4所示。單片機的編程仿真調試借助WAVE2000仿真器,本系統(tǒng)有集成的ISP仿真調試環(huán)境。

      單片機采集通信主程序
                                     圖2 單片機采集通信主程序

在采集程序中,單片機的編程操作要完全符合AD678的時序規(guī)范要求,在實際開發(fā)中,要不斷加以調試。最后將下位機調試成功而生成的.bin文件固化到AT89S51的Flash單元中。

                         中斷服務子程序 采集子程序
                             圖3 中斷服務子程序             圖4 采集子程序

人機界面編程

打開VC++6.0,建立一個基于對話框的MFC應用程序,串口通信采用MSComm控件來實現(xiàn)。其他操作此處不贅述,編程實現(xiàn)一個良好的人機界面。運行VC++6.0編程實現(xiàn)的Windows程序,整個樣機功能得以實現(xiàn)。

功能結果

根據(jù)上面所述工作原理及實施方案,在實踐中很好地實現(xiàn)了整個樣機的功能,各項指標達到了預先的設計要求。電路工作穩(wěn)定,每次測量均伴有LED發(fā)光指示,可視化界面顯示也正常。

AD678轉換精度是12位,它的分辨率為1/4096。這為整機系統(tǒng)的高精度提供了保障。為了提高測量精度,運用了AD678自帶的校準電路,這樣使其A/D轉換精度更高。在實際測量中,整機測量精度達到了0.8%。



關鍵詞: 測量 測試

評論


相關推薦

技術專區(qū)

關閉