基于單片機(jī)的數(shù)字電壓表設(shè)計與仿真
摘要:由于純硬件數(shù)字電壓表結(jié)構(gòu)復(fù)雜,測量精度低,價格高,而在日常使用中,使用頻率高,導(dǎo)致萬用表經(jīng)常損壞,故障率高,給使用和維修帶來很多不便。為了設(shè)計一種高精度數(shù)字電壓表,采用AT89C52單片機(jī)和ADC0809模/數(shù)轉(zhuǎn)換相結(jié)合的方法,做了大量Proteus仿真實(shí)驗(yàn),獲得了普通純硬件數(shù)字電壓表無法達(dá)到的測量效果。實(shí)驗(yàn)結(jié)果證明,使用軟硬件相結(jié)合設(shè)計的數(shù)字電壓表,具有結(jié)構(gòu)簡單,測量精度高,故障率低等功能。
關(guān)鍵詞:數(shù)字電壓表;測量精度;AT89C52;ADC0809
0 引言
在電子測量中,電壓值的測量顯得尤其重要。然而測量電壓的儀表很多,有各種類型和款式的數(shù)字電壓表,它們大多數(shù)都是采用傳統(tǒng)的純硬件電路設(shè)計的,由于結(jié)構(gòu)復(fù)雜、測量精度低、日后維修麻煩、成本高等缺點(diǎn),因此,木文設(shè)計了一種數(shù)字電壓表,采用軟件和硬件相結(jié)合的設(shè)計模式,利用單片機(jī)和A/D轉(zhuǎn)換,對現(xiàn)場電壓進(jìn)行采集和測量,可以實(shí)現(xiàn)測量數(shù)據(jù)的傳遞,又可借助PC進(jìn)行測量數(shù)據(jù)的處理。所以,這種類型的數(shù)字電壓表具有結(jié)構(gòu)簡單、精度高、維護(hù)方便、成本低、故障率低等優(yōu)點(diǎn),無論在功能和實(shí)際應(yīng)用上都具有傳統(tǒng)數(shù)字電壓表無法比擬的優(yōu)點(diǎn),使得它的開發(fā)和應(yīng)用都具有良好的前景。
1 系統(tǒng)硬件電路構(gòu)成
本設(shè)計硬件電路大體可分為單片機(jī)最小系統(tǒng)電路、穩(wěn)壓電路、A/D轉(zhuǎn)換電路及數(shù)碼顯示電路,其原理圖如圖1所示,由于單片機(jī)具有體積小、重量輕、價格便宜、控制靈活等特點(diǎn),所以本系統(tǒng)采用AT89C52單片機(jī)作為控制核心器件,ADC0809作為模擬信號轉(zhuǎn)換為數(shù)字信號用。
ADC0809是8位的模/數(shù)轉(zhuǎn)換芯片,片內(nèi)有8路模擬選通開關(guān)以及相應(yīng)的通道鎖存譯碼電路,轉(zhuǎn)換時間大約為100μs左右。在電路應(yīng)用中,首先要指定ADC0809的數(shù)據(jù)通道,當(dāng)外部電壓進(jìn)入芯片后,STATR信號由高到低,在脈沖的下降沿ADC0809開始轉(zhuǎn)換,同時管腳EOC電平變低,表示轉(zhuǎn)換正在進(jìn)行,轉(zhuǎn)換完成之后,管腳EOC的電平變高,表示一次轉(zhuǎn)換結(jié)束。
2 系統(tǒng)軟件實(shí)現(xiàn)與主程序流程
軟件采用單片機(jī)C語言編寫,C語言具有通俗易懂、修改方便、語句簡單等優(yōu)點(diǎn),本設(shè)計通過ADC0809把直流電壓(模擬量)轉(zhuǎn)換為數(shù)字量再通過AT89C52單片機(jī)進(jìn)行數(shù)據(jù)處理,通過數(shù)碼管顯示。主程序一開始進(jìn)行初始化,設(shè)置并啟動A/D轉(zhuǎn)換以及鍵盤掃描,檢測是否有鍵按下,并分析。當(dāng)有按鍵按下,通道數(shù)加一,并在第一位數(shù)碼管上顯示當(dāng)前的通道數(shù),然后調(diào)用顯示子程序,在數(shù)碼管上顯示當(dāng)前的電壓值,主
程序流程圖如圖2所示。
3 A/D轉(zhuǎn)換子程序
A/D轉(zhuǎn)換子程序用來控制對輸入的模擬電壓信號進(jìn)行采集測量,并將對應(yīng)的數(shù)值存入相應(yīng)的內(nèi)存單元,驅(qū)動數(shù)碼管進(jìn)行顯示,流程圖如圖3所示。
4 系統(tǒng)程序代碼和實(shí)驗(yàn)數(shù)據(jù)
4.1 部分源代碼
部分源代碼如下:
4.2 實(shí)驗(yàn)測試數(shù)據(jù)
實(shí)驗(yàn)測試數(shù)據(jù)如表1所示。
表1中電壓值由直流穩(wěn)壓電源提供,輸入電壓值均為數(shù)字萬用表讀數(shù),測量值均為設(shè)計樣品數(shù)碼管顯示值。數(shù)據(jù)真實(shí)可靠,達(dá)到預(yù)期效果。
5 Proteus仿真結(jié)果
在Proteus仿真軟件下得出的結(jié)果如圖4所示。
對該樣品隨機(jī)測試9個電壓值,仿真結(jié)果與輸入電壓實(shí)際值非常接近,圖示為輸入電壓值為3.75 V時,仿真結(jié)果為3.74 V,絕對誤差為0.01 V,達(dá)到設(shè)計要求。
6 結(jié)語
上述實(shí)驗(yàn)方案證明,采用單片機(jī)設(shè)計數(shù)字電壓表是可行的,其顯示偏差可以通過校正ADC0809的基準(zhǔn)參考電壓來解決,或用軟件編程來校正其測量值。在設(shè)計過程中通過Proteus仿真軟件的調(diào)試,電路簡單,具有成本低,精度高,速度快和性能穩(wěn)定等特點(diǎn)。
實(shí)踐證明,該儀表的各項指標(biāo)都能達(dá)到預(yù)期效果,在儀器儀表中采用軟硬件相結(jié)合的方式,使電路大為簡化,充分體現(xiàn)了單片機(jī)應(yīng)用的靈活性和實(shí)用性.具有一定的實(shí)用價值。