【摘要】本文介紹一種基于51單片機的簡易數(shù)字電壓表的設(shè)計制作,該設(shè)計主要由三個模塊組成:A/D轉(zhuǎn)換模塊,數(shù)據(jù)處理模塊及顯示模塊。A/D轉(zhuǎn)換主要由芯片ADC0808來完成,它負責(zé)把采集到的模擬量轉(zhuǎn)換為相應(yīng)的數(shù)字量在傳送到數(shù)據(jù)處理模塊。數(shù)據(jù)處理則由芯片AT89C51來完成,其負責(zé)把ADC0808傳送來的數(shù)字量經(jīng)過一定的數(shù)據(jù)處理,產(chǎn)生相應(yīng)的顯示碼送到顯示模塊進行顯示。數(shù)字電壓表測量分為OV-1.999V,2.000V-19.99V,20.00V-199.9V,200.0V-1999V四個檔位,并通過一個四位一體的7段數(shù)碼管顯示出來。
【關(guān)鍵詞】單片機;數(shù)字電壓表;A/D轉(zhuǎn)換;設(shè)計制作
1.引言
在電量的測量中,電壓、電流和頻率是最基本的三個被測量,而電壓的測量最為常見,現(xiàn)在學(xué)生使用的數(shù)字萬用表能夠測量多種電量,并且具有一定的精度,使用方便。為了讓學(xué)生更好地了解數(shù)字電壓表的工作原理,從而激發(fā)他們對單片機課程的學(xué)習(xí)興趣。本文從軟硬件設(shè)計、PROTEUS仿真、制作實物、誤差分析幾個方面著手,闡述數(shù)字電壓表的工作原理、數(shù)據(jù)的程序處理方法、數(shù)字信號軟件濾波原理。
2.硬件設(shè)計
硬件電路設(shè)計由4個部分組成:A/D轉(zhuǎn)換電路,AT89C51單片機系統(tǒng),LED顯示系統(tǒng)、測量電壓輸入電路。硬件電路設(shè)計框圖如圖1所示。其總設(shè)計框圖如下:
此電路的工作原理是:+5V模擬電壓信號通過變阻器VR1分壓后由ADC08008的IN0通道進入(由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低電平),經(jīng)過模/數(shù)轉(zhuǎn)換后,產(chǎn)生相應(yīng)的數(shù)字量經(jīng)過其輸出通道D0-D7傳送給AT89C51芯片的P0口,AT89C51負責(zé)把接收到的數(shù)字量經(jīng)過數(shù)據(jù)處理,產(chǎn)生正確的7段數(shù)碼管的顯示段碼傳送給四位LED,同時它還通過其四位I/O口P2.0、P2.1、P2.2、P2.3產(chǎn)生位選信號控制數(shù)碼管的亮滅。
簡易數(shù)字直流電壓表的硬件電路已經(jīng)設(shè)計完成,就可以選取相應(yīng)的芯片和元器件,利用Proteus軟件繪制出硬件的原理,并仔細地檢查修改,直至形成完善的硬件原理圖。但要真正實現(xiàn)電路對電壓的測量和顯示的功能,還需要有相應(yīng)的軟件配合,才能達到設(shè)計要求。
3.軟件設(shè)計
根據(jù)模塊的劃分原則,將該程序劃分初始化模塊,A/D轉(zhuǎn)換子程序和顯示子程序,這三個程序模塊構(gòu)成了整個系統(tǒng)軟件的主程序,如圖2所示。
整個程序設(shè)計的核心在于對A/D轉(zhuǎn)換的數(shù)據(jù)進行處理,包括數(shù)字濾波處理,數(shù)據(jù)小數(shù)位數(shù)的處理等。A/D轉(zhuǎn)換子程序用來控制對輸入的模塊電壓信號的采集測量,并將對應(yīng)的數(shù)值存入相應(yīng)的內(nèi)存單元。
顯示子程序采用動態(tài)掃描實現(xiàn)四位數(shù)碼管的數(shù)值顯示,在采用動態(tài)掃描顯示方式時,要使得LED顯示的比較均勻,又有足夠的亮度,需要設(shè)置適當(dāng)?shù)膾呙桀l率,當(dāng)掃描頻率在70HZ左右時,能夠產(chǎn)生比較好的顯示效果,一般可以采用間隔10ms對LED進行動態(tài)掃描一次,每一位LED的顯示時間為1ms。
4.結(jié)果及誤差分析
由于單片機AT89C51為8位處理器,當(dāng)輸入電壓為5.00V時,ADC0808輸出數(shù)據(jù)值為255(FFH),因此單片機最高的數(shù)值分辨率為0.0196V(5/255)。這就決定了電壓表的最高分辨率只能到0.0196V,從表1可看到,測試電壓一般以0.01V的幅度變化。
當(dāng)IN0口輸入電壓值為13.5V時,顯示結(jié)果如圖3所示。測量誤差為0.1V。
從表1可以看出,簡易數(shù)字電壓表測得的值基本上比標(biāo)準(zhǔn)電壓值偏大0-0.01V,這可以通過校正ADC0808的基準(zhǔn)電壓來解決或者通過軟件校準(zhǔn)的方式來降低誤差。因為該電壓表設(shè)計時直接用5V的供電電源作為電壓,所以電壓可能有偏差。當(dāng)要測量大于5V的電壓時,可在輸入口使用分壓電阻,而程序中只要將計算程序的除數(shù)進行調(diào)整就可以了。
從測試的數(shù)據(jù)看,其絕對誤差均控制在1V以下,而相對誤差均在1%以下,能夠滿足大部分場合應(yīng)用的需要,如采用實驗數(shù)據(jù)歸納的方法,將得出的數(shù)據(jù)繪制成曲線,再使用更為合理的算法,將得到更加準(zhǔn)確的結(jié)果。
參考文獻
[1]石文華.劉金平,黃丹輝.單片機原理及應(yīng)用[M].中國電力出版社,2005,2.
[2]于永,戴佳,常江.51單片機C語言常用模塊與綜合系統(tǒng)設(shè)計實例精講[M].電子工業(yè)出版社,2007,4.
[3]劉秀峰.單片機原理與應(yīng)用[M].北京理工出版社,2011.
作者簡介:
帥江華,上饒職業(yè)技術(shù)學(xué)院講師。
李志宜,上饒職業(yè)技術(shù)學(xué)院講師。