在許多測量系統(tǒng)中,經(jīng)常要進(jìn)行電壓比的測量, 即V1/V2,如非線性系數(shù)的測量,通常的測量方法是模擬量經(jīng)多路A/D轉(zhuǎn)換后經(jīng)單片機(jī)進(jìn)行高精度浮點(diǎn)計算,這樣既要求A/D轉(zhuǎn)換要有較高的精度,又要求單片機(jī)要進(jìn)行高精度的浮點(diǎn)運(yùn)算。我們采用了MAX7135芯片即實(shí)現(xiàn)了高精度的A/D轉(zhuǎn)換,又進(jìn)行了電壓比的計算,單片機(jī)僅需要簡單的浮點(diǎn)運(yùn)算就可直接得到V1/V2的比值。
MAXIMICL7135是CMOS單片位(十進(jìn)制)雙積分型高精度A/D轉(zhuǎn)換器,除基準(zhǔn)電壓、顯示驅(qū)動器和時鐘之外,它包括雙積分式轉(zhuǎn)換器所需的全部有源器件,具有自動校零和自動極性轉(zhuǎn)換功能。MAXIM ICL7135的封裝形式為DIP28, ICL7135每個測量周期包括三個階段:從啟動A/D轉(zhuǎn)換開始為“自動校零(A/Z)”階段,時間長度固定為10001TCL, TCL為外加時鐘周期;其后為對被測電壓信號積分(INT)階段,持續(xù)時間10000TCL;最后為對基準(zhǔn)電壓反向積分(DE)階段,持續(xù)的時間與被測電壓信號大小有關(guān),最大為20001 TCL。一個完整的轉(zhuǎn)換周期需要40002個時鐘脈沖,如圖1所示。
直流電壓比通常的測量方法是將兩模擬量V1、V2分別經(jīng)A/D轉(zhuǎn)換后,再進(jìn)行浮點(diǎn)除運(yùn)算,這樣做不僅實(shí)現(xiàn)電路復(fù)雜,速度慢,而且兩次測量后再進(jìn)行數(shù)據(jù)處理將會產(chǎn)生積累誤差,影響精度。我們采用一片MAXIM ICL7135芯片,經(jīng)一個測量周期后可直接得到V1/V2的值。
根據(jù)雙積分ADC的原理:調(diào)零階段后,首先對被測模擬信號V1積分(采樣階段),即對積分電容CINT充電,經(jīng)過時間t1后,有
(1)式中NTCL即為t1,TCL為時鐘脈沖的振蕩周期,對于MAXIM ICL7135,N為10000;然后對基準(zhǔn)電壓進(jìn)行反積分(測量階段),因?yàn)榛鶞?zhǔn)電壓VREF與被測電壓V1極性相反,于是使CINT放電,經(jīng)過t2時間后,有
(2)式中NX TCL即為t2,TCL為時鐘脈沖的振蕩周期,NX為時鐘脈沖的計數(shù)值。由式(1)(2)可得:
(3)根據(jù)式(3),若我們把被測模擬電壓V2作為基準(zhǔn)電壓(VREF)輸入,則可得V1/V2即為采樣階段和測量階段所需的振蕩脈沖個數(shù)之比。由圖1可知,當(dāng)被測電壓V1積分階段一開始,BUSY端即輸出高電平,并一直維持到積分器過零后的第一個振蕩脈沖(在過量程時,其高電平保持到轉(zhuǎn)換周期結(jié)束)。所以只要測出BUSY信號維持為高電平期間振蕩脈沖的個數(shù),而N=10000,則可得NX。
直流電壓比的實(shí)用測量電路如圖2,由單片機(jī)AT89C2051、A/D轉(zhuǎn)換器MAXIM ICL7135和顯示電路(圖中未畫出)組成。將R/H與P1.0連接,實(shí)現(xiàn)程序啟動A/D轉(zhuǎn)換。BUSY信號與時鐘信號CLK經(jīng)過與非門連到P3.4(T0)引腳,使AT89C2051內(nèi)部定時器T0對時鐘信號CLK與BUSY信號向與后進(jìn)行計數(shù),則可得NX,也就可得V1/V2。STB信號連到P3。2作為單片機(jī)對A/D轉(zhuǎn)換器轉(zhuǎn)換結(jié)束的判斷。
若單片機(jī)的fOSC=12MHz,則ALE引腳輸出的2MHz信號經(jīng)74LS161構(gòu)成的8分頻電路,得到頻率為250KHz的信號作為MAXIM ICL7135的時鐘。本電路測量范圍:V1/V2<2(0.0000~1.9999)。
主程序完成初始化、啟動A/D轉(zhuǎn)換、數(shù)據(jù)顯示,AT89C2051的定時器T0工作在方式1,對外部事件計數(shù),外中斷0工作在邊沿觸發(fā)方式。外中斷0的中斷服務(wù)程序完成轉(zhuǎn)換數(shù)據(jù)讀出、處理工作。以下分別給出主程序和中斷服務(wù)程序框圖(圖3,圖4)及初始化程序段: