單片機(jī)數(shù)字電壓表設(shè)計(jì)方案(一)
1.引言
在電量的測(cè)量中,電壓、電流和頻率是最基本的三個(gè)被測(cè)量,而電壓的測(cè)量最為常見(jiàn),現(xiàn)在學(xué)生使用的數(shù)字萬(wàn)用表能夠測(cè)量多種電量,并且具有一定的精度,使用方便。為了讓學(xué)生更好地了解數(shù)字電壓表的工作原理,從而激發(fā)他們對(duì)單片機(jī)課程的學(xué)習(xí)興趣,本文從軟硬件設(shè)計(jì)、proteus仿真、制作實(shí)物、誤差分析幾個(gè)方面著手,闡述數(shù)字電壓表的工作原理、數(shù)據(jù)的程序處理方法、數(shù)字信號(hào)軟件濾波原理。
2.硬件設(shè)計(jì)
硬件電路設(shè)計(jì)由4個(gè)部分組成:a/d轉(zhuǎn)換電路,at89c51單片機(jī)系統(tǒng),led顯示系統(tǒng)、測(cè)量電壓輸入電路。硬件電路設(shè)計(jì)框圖如圖1所示。其總設(shè)計(jì)框圖如下:
此電路的工作原理是:+5v模擬電壓信號(hào)通過(guò)變阻器vr1分壓后由adc08008的in0通道進(jìn)入(由于使用的in0通道,所以 adda,addb,addc均接低電平),經(jīng)過(guò)模/數(shù)轉(zhuǎn)換后,產(chǎn)生相應(yīng)的數(shù)字量經(jīng)過(guò)其輸出通道d0-d7傳送給at89c51芯片的p0 口,at89c51負(fù)責(zé)把接收到的數(shù)字量經(jīng)過(guò)數(shù)據(jù)處理,產(chǎn)生正確的7段數(shù)碼管的顯示段碼傳送給四位led,同時(shí)它還通過(guò)其四位i/o口p2.0、 p2.1、p2.2、p2.3產(chǎn)生位選信號(hào)控制數(shù)碼管的亮滅。
簡(jiǎn)易數(shù)字直流電壓表的硬件電路已經(jīng)設(shè)計(jì)完成,就可以選取相應(yīng)的芯片和元器件,利用proteus軟件繪制出硬件的原理,并仔細(xì)地檢查修改,直至形成完善的硬件原理圖。但要真正實(shí)現(xiàn)電路對(duì)電壓的測(cè)量和顯示的功能,還需要有相應(yīng)的軟件配合,才能達(dá)到設(shè)計(jì)要求。
3.軟件設(shè)計(jì)
根據(jù)模塊的劃分原則,將該程序劃分初始化模塊,a/d轉(zhuǎn)換子程序和顯示子程序,這三個(gè)程序模塊構(gòu)成了整個(gè)系統(tǒng)軟件的主程序,如圖2所示。
整個(gè)程序設(shè)計(jì)的核心在于對(duì)a/d轉(zhuǎn)換的數(shù)據(jù)進(jìn)行處理,包括數(shù)字濾波處理,數(shù)據(jù)小數(shù)位數(shù)的處理等。a/d轉(zhuǎn)換子程序用來(lái)控制對(duì)輸入的模塊電壓信號(hào)的采集測(cè)量,并將對(duì)應(yīng)的數(shù)值存入相應(yīng)的內(nèi)存單元。
顯示子程序采用動(dòng)態(tài)掃描實(shí)現(xiàn)四位數(shù)碼管的數(shù)值顯示,在采用動(dòng)態(tài)掃描顯示方式時(shí),要使得led顯示的比較均勻,又有足夠的亮度,需要設(shè)置適當(dāng)?shù)膾呙桀l 率,當(dāng)掃描頻率在70hz左右時(shí),能夠產(chǎn)生比較好的顯示效果,一般可以采用間隔10MS對(duì)led進(jìn)行動(dòng)態(tài)掃描一次,每一位led的顯示時(shí)間為1MS。
4.結(jié)果及誤差分析
由于單片機(jī)at89c51為8位處理器,當(dāng)輸入電壓為5.00v時(shí),adc0808輸出數(shù)據(jù)值為255(ffh),因此單片機(jī)最高的數(shù)值分辨率為0.0196v(5/255)。這就決定了電壓表的最高分辨率只能到0.0196v,從表1可看到,測(cè)試電壓一般以0.01v的幅度變化。
當(dāng)in0口輸入電壓值為13.5v時(shí),顯示結(jié)果如圖3所示。測(cè)量誤差為0.1v。
從表1可以看出,簡(jiǎn)易數(shù)字電壓表測(cè)得的值基本上比標(biāo)準(zhǔn)電壓值偏大0-0.01v,這可以通過(guò)校正adc0808的基準(zhǔn)電壓來(lái)解決或者通過(guò)軟件校準(zhǔn)的方式來(lái)降低誤差。因?yàn)樵撾妷罕碓O(shè)計(jì)時(shí)直接用5v的供電電源作為電壓,所以電壓可能有偏差。當(dāng)要測(cè)量大于5v的電壓時(shí),可在輸入口使用分壓電阻,而程序中只 要將計(jì)算程序的除數(shù)進(jìn)行調(diào)整就可以了。
從測(cè)試的數(shù)據(jù)看,其絕對(duì)誤差均控制在1v以下,而相對(duì)誤差均在1%以下,能夠滿足大部分場(chǎng)合應(yīng)用的需要,如采用實(shí)驗(yàn)數(shù)據(jù)歸納的方法,將得出的數(shù)據(jù)繪制成曲線,再使用更為合理的算法,將得到更加準(zhǔn)確的結(jié)果。
單片機(jī)數(shù)字電壓表設(shè)計(jì)方案(二)
利用單片機(jī)AT89S51與ADC0809設(shè)計(jì)一個(gè)數(shù)字電壓表,能夠測(cè)量0-5V之間的直流電壓值,四位數(shù)碼顯示,但要求使用的元器件數(shù)目最少。
電路原理圖
系統(tǒng)板上硬件連線
a)把“單片機(jī)系統(tǒng)”區(qū)域中的P1.0-P1.7與“動(dòng)態(tài)數(shù)碼顯示”區(qū)域中的ABCDEFGH端口用8芯排線連接。
b)把“單片機(jī)系統(tǒng)”區(qū)域中的P2.0-P2.7與“動(dòng)態(tài)數(shù)碼顯示”區(qū)域中的S1S2S3S4S5S6S7S8端口用8芯排線連接。
c)把“單片機(jī)系統(tǒng)”區(qū)域中的P3.0與“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的ST端子用導(dǎo)線相連接。
d)把“單片機(jī)系統(tǒng)”區(qū)域中的P3.1與“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的OE端子用導(dǎo)線相連接。
e)把“單片機(jī)系統(tǒng)”區(qū)域中的P3.2與“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的EOC端子用導(dǎo)線相連接。
f)把“單片機(jī)系統(tǒng)”區(qū)域中的P3.3與“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的CLK端子用導(dǎo)線相連接。
g)把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的A2A1A0端子用導(dǎo)線連接到“電源模塊”區(qū)域中的GND端子上。
h)把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的IN0端子用導(dǎo)線連接到“三路可調(diào)電壓模塊”區(qū)域中的VR1端子上。
i)把“單片機(jī)系統(tǒng)”區(qū)域中的P0.0-P0.7用8芯排線連接到“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的D0D1D2D3D4D5D6D7端子上。
單片機(jī)數(shù)字電壓表設(shè)計(jì)方案(三)
這是由ICL7129單片CMOSIC構(gòu)成的四位半數(shù)顯電壓表,配有矩陣多路掃描(100Hz)LCD(液晶顯示)數(shù)顯器,特別適用于制作高分辨率袖珍式萬(wàn)用表。具有自動(dòng)調(diào)零功能而不需要外接調(diào)零電容,僅需要9V電源(電池),耗電流僅1mA,變換速度為2次/秒,直接輸入模擬電壓的量程為正負(fù)200mV,分辨率最高為10uV,具有電源電壓低于7.2V時(shí)的識(shí)別報(bào)警及顯示功能??衫?a target="_blank">OR/UR端實(shí)現(xiàn)自動(dòng)量程轉(zhuǎn)換功能,共模抑制比為11dB。
?
單片機(jī)數(shù)字電壓表設(shè)計(jì)方案(四)
由HI7159A和單片機(jī)8031等元件構(gòu)成的智能化數(shù)字電壓表電路如圖所示。該電路內(nèi)部采用逐次累加式積分、數(shù)字調(diào)零、低噪聲BIMOS等先進(jìn)技術(shù)。在51/2位工作模式下最大計(jì)數(shù)值為199999,準(zhǔn)確度為±0.005%。
單片機(jī)數(shù)字電壓表設(shè)計(jì)方案(五)
利用單片機(jī)AT89C51與ADC0808設(shè)計(jì)一個(gè)數(shù)字電壓表,將模擬信號(hào)0~5V之間的電壓值轉(zhuǎn)換成數(shù)字量信號(hào),以兩位數(shù)碼管顯示,并通過(guò)虛擬電壓表觀察ADC0808模擬量輸入信號(hào)的電壓值,LED數(shù)碼管實(shí)時(shí)顯示相應(yīng)的數(shù)值量。
1.總體方案
數(shù)字電壓表電路組成框圖如圖1所示。
本設(shè)計(jì)中需要用到的電路有電源電路、模/數(shù)轉(zhuǎn)換電路、單片機(jī)控制電路、顯示電路等。設(shè)計(jì)中需要用到的芯片有AT89C51單片機(jī)、ADC-0808、74LS74、LED數(shù)碼管等。
2.數(shù)字電壓表的Proteus軟件仿真電路設(shè)計(jì)
待測(cè)電壓輸入信號(hào)在ADC0808芯片承受的最大工作電壓范圍內(nèi),經(jīng)過(guò)模/數(shù)轉(zhuǎn)換電路實(shí)現(xiàn)A/D轉(zhuǎn)換,通過(guò)單片機(jī)控制電路進(jìn)行程序數(shù)據(jù)處理,然后通過(guò)七段譯碼/驅(qū)動(dòng)顯示電路實(shí)現(xiàn)數(shù)碼管顯示輸入電壓。
硬件電路原理圖如圖2所示。
AT89C51單片機(jī)和數(shù)碼管顯示電路的接口設(shè)計(jì)
利用單片機(jī)AT89C51與ADC0808設(shè)計(jì)一個(gè)數(shù)字電壓表,將模擬信號(hào)0~5V之間的直流電壓值轉(zhuǎn)換成數(shù)字量信號(hào)0~FF,以兩位數(shù)碼管顯示。Proteus軟件啟動(dòng)仿真,當(dāng)前輸入電壓為2.5V,轉(zhuǎn)換成數(shù)字值為7FH,用鼠標(biāo)指針調(diào)節(jié)電位器RV1,可改變輸入模/數(shù)轉(zhuǎn)換器ADC0808的電壓,并通過(guò)虛擬電壓表觀察ADC0808模擬量輸入信號(hào)的電壓值,LED數(shù)碼管實(shí)時(shí)顯示相應(yīng)的數(shù)值量。
在Proteus軟件中設(shè)置AT89C51單片機(jī)的晶振頻率為12MHz。本電路EA接高電平,沒(méi)有擴(kuò)展片外ROM。
A/D轉(zhuǎn)換電路的接口設(shè)計(jì)
A/D轉(zhuǎn)換器采用集成電路ADC0808。ADC0808具有8路模擬量輸入信號(hào)IN0~I(xiàn)N7(1~5腳、26~28腳),地址線C、B、A(23~25腳)決定哪一路模擬輸入信號(hào)進(jìn)行A/D轉(zhuǎn)換,本電路將地址線C、B、A均接地,即選擇0號(hào)通道輸入模擬量電壓信號(hào)。22腳ALE為地址鎖存允許控制信號(hào),當(dāng)輸入為高電平時(shí),對(duì)地址信號(hào)進(jìn)行鎖存。6腳START為啟動(dòng)控制信號(hào),當(dāng)輸入為高電平時(shí),A/D轉(zhuǎn)換開始。本電路將ALE腳與START腳接到一起,共同由單片機(jī)的P2.0腳和WR腳通過(guò)或非門控制。7腳EOC為A/D轉(zhuǎn)換結(jié)束信號(hào),當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),7腳輸出一個(gè)正脈沖,此信號(hào)可作為A/D轉(zhuǎn)換是否結(jié)束的檢測(cè)信號(hào)或向CPU申請(qǐng)中斷的信號(hào),本電路通過(guò)一個(gè)非門連接到單片機(jī)的P3.2腳。9腳OE為A/D轉(zhuǎn)換數(shù)據(jù)輸出允許控制信號(hào),當(dāng)OE腳為高電平時(shí),允許讀取A/D轉(zhuǎn)換的數(shù)字量。該OE腳由單片機(jī)的P2.0腳和RD腳通過(guò)或非門控制。10腳CLOCK為ADC0808的實(shí)時(shí)時(shí)鐘輸入端,利用單片機(jī)30引腳ALE的六分頻晶振頻率得到時(shí)鐘信號(hào)。數(shù)字量輸出端8個(gè)接到單片機(jī)的P0口。
單片機(jī)數(shù)字電壓表設(shè)計(jì)方案(六)
利用單片機(jī)系統(tǒng)與模數(shù)轉(zhuǎn)換芯片、顯示模塊、報(bào)警電路等的結(jié)合構(gòu)建數(shù)字電壓表。由于單片機(jī)的發(fā)展已經(jīng)成熟,利用單片機(jī)系統(tǒng)的軟硬件結(jié)合,可以組裝出許多的應(yīng)用電路來(lái)。此方案的原理是模數(shù)(A/D)轉(zhuǎn)換芯片的基準(zhǔn)電壓端,被測(cè)量電壓輸入端分別輸入基準(zhǔn)電壓和被測(cè)電壓。模數(shù)(A/D)轉(zhuǎn)換芯片將被測(cè)量電壓輸入端所采集到的模擬電壓信號(hào)轉(zhuǎn)換成相應(yīng)的數(shù)字信號(hào),然后通過(guò)對(duì)單片機(jī)系統(tǒng)進(jìn)行軟件編程,使單片機(jī)系統(tǒng)能按規(guī)定的時(shí)序來(lái)采集這些數(shù)字信號(hào),通過(guò)一定的算法計(jì)算出被測(cè)量電壓的值。最后單片機(jī)系統(tǒng)將計(jì)算好的被測(cè)電壓值按一定的時(shí)序送入顯示電路模塊加以顯示,如果電壓值大于設(shè)定值就報(bào)警。電路原理框圖如圖1所示。
圖1 ?系統(tǒng)原理框圖
單元電路設(shè)計(jì)
ADC0808與單片機(jī)的接口
ADC0808與AT89C51單片機(jī)的連接如圖2所示,從圖中可以看到,把ALE信號(hào)與START信號(hào)接在一起了,這樣連接使得在信號(hào)的前沿寫入(鎖存)通道地址,緊接著在其后沿啟動(dòng)轉(zhuǎn)換。模擬通道選擇信號(hào)A、B、C分別接P3.4、P3.5、P3.6,此外,通道地址選擇以P3.1作寫選通信號(hào)。
顯示電路
數(shù)碼管與單片機(jī)接口如圖3所示,從圖中可以看出,單片機(jī)的P1口接數(shù)碼管的七段發(fā)光管,P2.0—P2.3段選碼。
報(bào)警電路
當(dāng)測(cè)定值超出預(yù)設(shè)值5V時(shí),發(fā)出報(bào)警聲音并亮紅燈,提示超出量程。報(bào)警系統(tǒng)使用SPEAKER發(fā)出蜂鳴聲來(lái)仿真。報(bào)警系統(tǒng)與單片機(jī)接口電路如圖4所示。
單片機(jī)數(shù)字電壓表設(shè)計(jì)方案(七)
量程自動(dòng)轉(zhuǎn)換電路設(shè)計(jì)
CD4051是8通道數(shù)字控制模擬電子開關(guān),有3個(gè)二進(jìn)控制輸入端A、B、C和INH輸入,具有低導(dǎo)通阻抗和很低的截止漏電流。幅值為4.5~20V的數(shù)字信號(hào)可控制峰值至20V的模擬信號(hào)。當(dāng)INH輸入端=“1”時(shí),所有的通道截止。三位二進(jìn)制信號(hào)選通8通道中的一通道,可連接該輸入端至輸出。
量程自動(dòng)轉(zhuǎn)換電路圖如圖1所示。
單片機(jī)系統(tǒng)硬件設(shè)計(jì)
數(shù)字電壓表采用MSP430F427為主處理器,除包括單片機(jī)最小系統(tǒng)的主控制芯片、3.3V電源電路、16MHz時(shí)鐘電路(內(nèi)部帶有看門狗)、外部復(fù)位電路外,主要選用其信號(hào)采集、LCD顯示、按鍵電路、JTAG接口電路、輸出控制接口電路等模塊組成。系統(tǒng)硬件電路如圖2所示。
單片機(jī)數(shù)字電壓表設(shè)計(jì)方案(八)
硬件電路設(shè)計(jì)主要包括:89C51單片機(jī)系統(tǒng),A/D轉(zhuǎn)換電路,顯示電路。測(cè)量最大電壓為5V,顯示最大值為5V。圖1是數(shù)字電壓表硬件電路原理圖。
?
單片機(jī)數(shù)字電壓表設(shè)計(jì)方案(九)
本設(shè)計(jì)硬件電路大體可分為單片機(jī)最小系統(tǒng)電路、穩(wěn)壓電路、A/D轉(zhuǎn)換電路及數(shù)碼顯示電路,其原理圖如圖1所示,由于單片機(jī)具有體積小、重量輕、價(jià)格便宜、控制靈活等特點(diǎn),所以本系統(tǒng)采用AT89C52單片機(jī)作為控制核心器件,ADC0809作為模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)用。
評(píng)論