基于單片機(jī)的數(shù)字電壓表設(shè)計與仿真
摘要:由于純硬件數(shù)字電壓表結(jié)構(gòu)復(fù)雜,測量精度低,價格高,而在日常使用中,使用頻率高,導(dǎo)致萬用表經(jīng)常損壞,故障率高,給使用和維修帶來很多不便。為了設(shè)計一種高精度數(shù)字電壓表,采用AT89C52單片機(jī)和ADC0809模/數(shù)轉(zhuǎn)換相結(jié)合的方法,做了大量Proteus仿真實驗,獲得了普通純硬件數(shù)字電壓表無法達(dá)到的測量效果。實驗結(jié)果證明,使用軟硬件相結(jié)合設(shè)計的數(shù)字電壓表,具有結(jié)構(gòu)簡單,測量精度高,故障率低等功能。
關(guān)鍵詞:數(shù)字電壓表;測量精度;AT89C52;ADC0809
0 引言
在電子測量中,電壓值的測量顯得尤其重要。然而測量電壓的儀表很多,有各種類型和款式的數(shù)字電壓表,它們大多數(shù)都是采用傳統(tǒng)的純硬件電路設(shè)計的,由于結(jié)構(gòu)復(fù)雜、測量精度低、日后維修麻煩、成本高等缺點,因此,木文設(shè)計了一種數(shù)字電壓表,采用軟件和硬件相結(jié)合的設(shè)計模式,利用單片機(jī)和A/D轉(zhuǎn)換,對現(xiàn)場電壓進(jìn)行采集和測量,可以實現(xiàn)測量數(shù)據(jù)的傳遞,又可借助PC進(jìn)行測量數(shù)據(jù)的處理。所以,這種類型的數(shù)字電壓表具有結(jié)構(gòu)簡單、精度高、維護(hù)方便、成本低、故障率低等優(yōu)點,無論在功能和實際應(yīng)用上都具有傳統(tǒng)數(shù)字電壓表無法比擬的優(yōu)點,使得它的開發(fā)和應(yīng)用都具有良好的前景。
1 系統(tǒng)硬件電路構(gòu)成
本設(shè)計硬件電路大體可分為單片機(jī)最小系統(tǒng)電路、穩(wěn)壓電路、A/D轉(zhuǎn)換電路及數(shù)碼顯示電路,其原理圖如圖1所示,由于單片機(jī)具有體積小、重量輕、價格便宜、控制靈活等特點,所以本系統(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)軟件實現(xiàn)與主程序流程
軟件采用單片機(jī)C語言編寫,C語言具有通俗易懂、修改方便、語句簡單等優(yōu)點,本設(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所示。
評論