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