數(shù)字電壓表設(shè)計和開發(fā),,已經(jīng)有多種類型和款式。傳統(tǒng)數(shù)字電壓表各有特點,,它們適合在現(xiàn)場做手工測量,,要完成遠程測量并要對測量數(shù)據(jù)做進一步分析處理,傳統(tǒng)數(shù)字電壓表是無法完成,。然而基于PC通信數(shù)字電壓表,,既可以完成測量數(shù)據(jù)傳遞,又可借助PC,,做測量數(shù)據(jù)處理,。所以這種類型數(shù)字電壓表無論在功能和實際應(yīng)用上,都具有傳統(tǒng)數(shù)字電壓表無法比擬特點,,這使得它開發(fā)和應(yīng)用具有良好前景,。
新型數(shù)字電壓表整機設(shè)計
該新型數(shù)字電壓表測量電壓類型是直流,測量范圍是-5~ 5V,。整機電路包括:數(shù)據(jù)采集電路單片機最小化設(shè)計,、單片機與PC接口電路,、單片機時鐘電路、復(fù)位電路等,。下位機采用AT89S51芯片,,A/D轉(zhuǎn)換采用AD678芯片。通過RS232串行口與PC進行通信,,傳送所測量直流電壓數(shù)據(jù),。整機系統(tǒng)電路如圖1所示,。
數(shù)據(jù)采集電路原理
在單片機數(shù)據(jù)采集電路設(shè)計中,,做到了電路設(shè)計最小化,即沒用任何附加邏輯器件做接口電路,,實現(xiàn)了單片機對AD678轉(zhuǎn)換芯片操作,。
AD678是一種高檔、多功能12位ADC,,由于其內(nèi)部自帶有采樣保持器,、高精度參考電源、內(nèi)部時鐘和三態(tài)緩沖數(shù)據(jù)輸出等部件,,所以只需要很少外部元件就可以構(gòu)成完整數(shù)據(jù)采集系統(tǒng),,而且一次A/D轉(zhuǎn)換僅需要5ms。
在電路應(yīng)用中,,AD678采用同步工作方式,,12位數(shù)字量輸出采用8位操作模式,即12位轉(zhuǎn)換數(shù)字量采用兩次讀取方式,,先讀取其高8位,,再讀取其低4位。根據(jù)時序關(guān)系,,在芯片選擇/CS=0時,,轉(zhuǎn)換端/SC由高到低變化一次,即可啟動A/D轉(zhuǎn)換一次,。再查詢轉(zhuǎn)換結(jié)束端/EOC,,看轉(zhuǎn)換是否已經(jīng)結(jié)束,若結(jié)束則使輸出使能/OE變低,,輸出有效,。12位數(shù)字量讀取則要控制高字節(jié)有效端/HBE,先讀取高字節(jié),,再讀取低字節(jié),。整個A/D操作大致如此,在實際開發(fā)應(yīng)用中調(diào)整,。
PCbfans.cn提示請看下圖:
圖1 數(shù)字電壓表電路圖
由于電路中采用AD678雙極性輸入方式,,輸入電壓范圍是-5~ 5V,,根據(jù)公式Vx=10(V)/4096*Dx,即可計算出所測電壓Vx值大小,。式中Dx為被測直流電壓轉(zhuǎn)換后12位數(shù)字量值,。
RS232接口電路設(shè)計
AT89S51與PC接口電路采用芯片Max232。Max232是德州儀器公司(TI)推出一款兼容RS232標(biāo)準(zhǔn)芯片,。該器件包含2個驅(qū)動器,、2個接收器和1個電壓發(fā)生器電路提供TIA/EIA-232-F電平。Max232芯片起電平轉(zhuǎn)換功能,,使單片機TTL電平與PCRS232電平達到匹配,。
串口通信RS232接口采用9針串口DB9,串口傳輸數(shù)據(jù)只要有接收數(shù)據(jù)針腳和發(fā)送針腳就能實現(xiàn):同一個串口接收腳和發(fā)送腳直接用線相連,,兩個串口相連或一個串口和多個串口相連,。在實驗中,用定時器T1作波特率發(fā)生器,,其計數(shù)初值X按以下公式計算:
波特率=PCbfans.cn提示請看下圖:*(T1溢出率)
=PCbfans.cn提示請看下圖:*PCbfans.cn提示請看下圖:
串行通信波特率設(shè)置為1200b/s,,而SMOD=1,fosc=6MHz,,計算得到計數(shù)初值X=0f3H,。在編程中將其裝入TL1和TH1中即可。
為了便于觀察,,當(dāng)每次測量電壓采集數(shù)據(jù)時,,單片機有端口輸出時,用發(fā)光二極管LED指示,。
軟件編程
軟件程序主要包括:下位機數(shù)據(jù)采集程序,、上位機可視化界面程序、單片機與PC串口通信程序,。單片機采用C51語言編程,,上位機操作顯示界面采用VC 6.0進行可視化編程。在串口通信調(diào)試過程中,,借助“串口調(diào)試助手”工具,,有效利用這個工具為整個系統(tǒng)提高效率。
單片機編程
下位機單片機數(shù)據(jù)采集通信主程序流程如圖2所示,、中斷子程序如圖3所示,、采集子程序如圖4所示。單片機編程仿真調(diào)試借助WAVE2000仿真器,,本系統(tǒng)有集成ISP仿真調(diào)試環(huán)境,。
PCbfans.cn提示請看下圖:
圖2 單片機采集通信主程序
在采集程序中,單片機編程操作要完全符合AD678時序規(guī)范要求,,在實際開發(fā)中,,要不斷加以調(diào)試,。最后將下位機調(diào)試成功而生成.bin文件固化到AT89S51Flash單元中。
PCbfans.cn提示請看下圖:
圖3 中斷服務(wù)子程序 圖4 采集子程序
人機界面編程
打開VC++6.0,,建立一個基于對話框MFC應(yīng)用程序,,串口通信采用MSComm控件來實現(xiàn)。其他操作此處不贅述,,編程實現(xiàn)一個良好人機界面,。數(shù)字直流電壓表操作界面如圖5所示。運行VC 6.0編程實現(xiàn)Windows程序,,整個樣機功能得以實現(xiàn),。
功能結(jié)果
根據(jù)上面所述工作原理及實施方案,在實踐中很好地實現(xiàn)了整個樣機功能,,各項指標(biāo)達到了預(yù)先設(shè)計要求,。電路工作穩(wěn)定,,每次測量均伴有LED發(fā)光指示,,可視化界面顯示也正常。
PCbfans.cn提示請看下圖:
圖5 數(shù)字電壓表人機界面
AD678轉(zhuǎn)換精度是12位,,它分辨率為1/4096,。這為整機系統(tǒng)高精度提供了保障。為了提高測量精度,,運用了AD678自帶校準(zhǔn)電路,,這樣使其A/D轉(zhuǎn)換精度更高。在實際測量中,,整機測量精度達到了0.8%,。