車(chē)沛強(qiáng),江華麗
(福建師范大學(xué)閩南科技學(xué)院,福建泉州 362332)
數(shù)字萬(wàn)用表是采用數(shù)字化測(cè)量技術(shù),把連續(xù)的量(輸入電壓)轉(zhuǎn)換成不連續(xù)、離散的數(shù)字化形式并加以顯示的儀表[1]。在測(cè)量時(shí)先把被測(cè)量通過(guò)不同的轉(zhuǎn)換器轉(zhuǎn)換成直流電壓,然后再利用數(shù)字電壓表進(jìn)行電壓測(cè)量,從而得到被測(cè)量的數(shù)值[2-7]。作為現(xiàn)代電子測(cè)量中最基礎(chǔ)與核心的一種測(cè)量?jī)x器,人們對(duì)其測(cè)量精度和功能的要求也越來(lái)越高。數(shù)字電壓表的量程自動(dòng)切換[8]功能,既能省去頻繁的操作,又能兼顧強(qiáng)弱信號(hào)的測(cè)量,避免量程選擇不當(dāng)而造成測(cè)量精度的下降甚至損壞儀表。在需要記錄隨時(shí)間變化的測(cè)量值,比如測(cè)量RC電路電容充放電的電壓時(shí),使用具備存儲(chǔ)數(shù)據(jù)功能的電壓表,更能得心應(yīng)手?;谝陨瞎δ芤?,本文提出了以集成多路輸入通道ADC、EEPROM[9-13]的STC15F2K60S2單片機(jī)作為主控器,結(jié)合運(yùn)放LMV358的設(shè)計(jì)。
以可以測(cè)量220 V市電經(jīng)整流濾波后的電壓值約311 V作為測(cè)量范圍的上限,設(shè)計(jì)數(shù)字電壓表的電壓測(cè)量范圍為0~400 V,分為以下四檔:0~400 mV、0.4~4 V、4~40 V、40~400 V。STC15單片機(jī)內(nèi)部集成一個(gè)8路10位高速的ADC(A/D轉(zhuǎn)換器),8個(gè)輸入通道(輸入通道0至輸入通道7)通過(guò)程序?qū)ζ銩DC控制寄存器ADC_CONTR進(jìn)行控制,選擇其中一個(gè)輸入通道將轉(zhuǎn)換后的測(cè)量電壓送入ADC進(jìn)行測(cè)量,并讀取測(cè)量后的數(shù)據(jù),經(jīng)相應(yīng)的倍率換算,在屏幕上顯示出最終的測(cè)量電壓值。
設(shè)計(jì)接入單片機(jī)ADC2引腳的4.1 V穩(wěn)壓電路作為ADC的輸入?yún)⒖茧妷?,則可測(cè)量的電壓范圍為0~4 V(4.0~4.1 V用作超量程判斷的條件)。為確保ADC的輸入電壓范圍在0.4~4 V之間,對(duì)于0~400 mV的測(cè)量電壓,先經(jīng)10倍電壓放大后,接入ADC的輸入通道7進(jìn)行測(cè)量,0.4~4 V的輸入電壓,直接接入ADC的輸入通道6進(jìn)行測(cè)量,4~40 V的輸入電壓,經(jīng)10倍衰減后,接入ADC的輸入通道5進(jìn)行測(cè)量,40~400 V的輸入電壓,經(jīng)100倍衰減后,接入ADC的輸入通道4進(jìn)行測(cè)量。至此,實(shí)現(xiàn)了電壓表的四個(gè)量程檔。單片機(jī)通過(guò)控制其內(nèi)部的ADC控制寄存器,循環(huán)選擇及讀取這四個(gè)輸入通道的電壓值進(jìn)行判斷,確保選擇的當(dāng)前輸入通道ADC的輸入電壓值在0.4~4 V之間,從而實(shí)現(xiàn)電壓表的量程自動(dòng)轉(zhuǎn)換。
利用單片機(jī)內(nèi)置的EEPROM,實(shí)現(xiàn)掉電存儲(chǔ)測(cè)量數(shù)據(jù)的功能,并通過(guò)程序,提供用戶定義測(cè)量數(shù)據(jù)存儲(chǔ)的數(shù)量、存儲(chǔ)的時(shí)間間隔等參數(shù)的功能。
本設(shè)計(jì)采用增強(qiáng)型STC15F2K60S2作為主控芯片,其主要特點(diǎn)是單時(shí)鐘/機(jī)器周期(1T)的單片機(jī),內(nèi)部集成高精度時(shí)鐘及復(fù)位電位,并帶有8路高速10位A/D轉(zhuǎn)換器及可擦寫(xiě)10萬(wàn)次以上1K字節(jié)容量的EEPROM[14]。選用此芯片,無(wú)需外接ADC、時(shí)鐘、復(fù)位等電路,將極大簡(jiǎn)化設(shè)計(jì)。10位A/D轉(zhuǎn)換的數(shù)據(jù),需要2個(gè)字節(jié)的存儲(chǔ)空間,1 K字節(jié)容量的EEPROM,可同時(shí)存儲(chǔ)500個(gè)測(cè)量數(shù)據(jù)。
圖1 總體結(jié)構(gòu)框圖
分辨率也稱(chēng)靈敏度,指數(shù)字萬(wàn)用表測(cè)量結(jié)果的最小量化單位,即可以看到被測(cè)信號(hào)的微小變化[15]。
單片機(jī)自帶的ADC是10位的,ADC的參考電壓使用的是4.1 V,如此可得最小的分辨率為4.1 V/210,約為4.0 mV。若電壓表的量程檔是0~400 mV,4.0 mV這個(gè)靈敏度數(shù)值太大,靈敏度低,無(wú)法準(zhǔn)確測(cè)出小電壓。因此,在使用量程檔0~400 mV時(shí),先將輸入電壓放大10倍后,再送入ADC進(jìn)行測(cè)量。此舉可將此電壓檔的分辨率提高至0.4 mV。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
輸入電壓,經(jīng)外圍的放大、跟隨或衰減電路后,一一對(duì)應(yīng)接入ADC的輸入通道7至輸入通道4。以上四個(gè)輸入通道分別對(duì)應(yīng)電壓表的量程關(guān)系如表1所示。
表1 電壓表量程與輸入通道對(duì)應(yīng)關(guān)系表
在圖1中,ADC輸入通道7前的10倍電壓放大電路及輸入通道6前的跟隨器,均由運(yùn)放LMV358實(shí)現(xiàn)。衰減10倍與100倍的電路,由電阻分壓來(lái)實(shí)現(xiàn)。
LMV358實(shí)現(xiàn)10倍電壓放大功能的電路,如圖2所示,跟隨器電路如圖3所示。10倍與100倍的衰減電路,如圖4所示。4.1 V的穩(wěn)壓電路,可用4.1 V的穩(wěn)壓二極管HZ4C1實(shí)現(xiàn),如圖5所示。
圖2 LMV358同相10倍放大電路
圖3 跟隨器電路
圖4 電阻構(gòu)成的衰減電路
圖5 4.1 V穩(wěn)壓電路
量程轉(zhuǎn)換的判斷條件為:?jiǎn)纹瑱C(jī)在當(dāng)前選中的輸入通道讀取的數(shù)值是否在0.4~4之間。因此,轉(zhuǎn)換過(guò)程如下所述。系統(tǒng)上電后,單片機(jī)先選擇輸入通道4,即電壓表的最高量程檔(40~400 V)進(jìn)行測(cè)量判斷,分以下幾種情況說(shuō)明。
(1)讀取的數(shù)據(jù)超過(guò)4.0,則說(shuō)明輸入電壓超過(guò)400 V,系統(tǒng)發(fā)出報(bào)警聲音,顯示屏顯示溢出標(biāo)識(shí)。
(2)讀取的數(shù)據(jù)在0.4~4之間,則將讀取的數(shù)據(jù)乘以100后,顯示在屏幕上,即當(dāng)前測(cè)得的電壓值(電壓?jiǎn)挝粸榉?。
(3)讀取的數(shù)據(jù)小于0.4,說(shuō)明當(dāng)前的輸入通道對(duì)應(yīng)的量程過(guò)高,輸入的電壓小于40 V,則單片機(jī)降低一檔量程,選擇輸入通道6。
(4)降低一檔量程后,若讀取的數(shù)值還是小于0.4,則繼續(xù)降低量程檔直至最小量程檔。若讀取的數(shù)值大于4,則升級(jí)一檔量程直至最高量程檔。
如上所述,單片機(jī)循環(huán)切換不同的輸入通道,即切換不同的量程檔,確保讀取的數(shù)值在0.4~4之間。在400 mV檔,若讀取的數(shù)值仍小于0.4,則繼續(xù)保持此量程檔。在400 V檔時(shí),若讀取的數(shù)據(jù)仍大于4,亦繼續(xù)保持在此量程檔,同時(shí)發(fā)出警告標(biāo)識(shí)。量程轉(zhuǎn)換流程如圖6所示。
圖6 自動(dòng)量程轉(zhuǎn)換程序流程圖
圖6中的f1至f4為電壓表的四個(gè)量程檔標(biāo)識(shí)符,對(duì)應(yīng)的關(guān)系如表2所示。
表2 f1至f4對(duì)應(yīng)量程關(guān)系表
功能要求:設(shè)置兩個(gè)按鍵K1、K2,用戶通過(guò)這兩個(gè)按鍵,可實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)時(shí)間間隔的設(shè)置。有兩種選擇:以1 s為最小時(shí)間單位,或是以0.1 s為最小時(shí)間單位,然后設(shè)置要存儲(chǔ)的數(shù)據(jù)個(gè)數(shù)。用戶設(shè)置完成后,將用戶的設(shè)置值及數(shù)據(jù)測(cè)量值,按用戶設(shè)置的要求,存儲(chǔ)到單片機(jī)的EEPROM里。在測(cè)量完成后,通過(guò)此兩按鍵,可將存儲(chǔ)在EEPROM里的測(cè)量數(shù)據(jù),包括用戶的設(shè)置,顯示在屏幕上。
程序設(shè)計(jì)思路:?jiǎn)纹瑱C(jī)上電復(fù)位后,循環(huán)掃描K1與K2是否被按下。K1用于先清空EEPROM內(nèi)的數(shù)據(jù),及結(jié)合K2完成用戶對(duì)存儲(chǔ)要求的設(shè)置。在啟動(dòng)存儲(chǔ)功能后,將用戶設(shè)置的數(shù)據(jù)及測(cè)量數(shù)據(jù)存儲(chǔ)到EEPROM里。K2用于讀取EEPROM里的數(shù)據(jù),并顯示在屏幕上。實(shí)現(xiàn)此功能的流程圖如圖7所示。
圖7 數(shù)據(jù)存儲(chǔ)及讀取程序流程圖
圖8 主程序流程圖
主程序先完成相關(guān)變量、定時(shí)器參數(shù)等的定義設(shè)置后,再循環(huán)調(diào)用子程序,具體流程如圖8所示。
本文以增加型單片機(jī)STC15F2K60S2為核心,配合運(yùn)放LMV358及外圍電路,由單片機(jī)控制,實(shí)現(xiàn)數(shù)字電壓表的量程自動(dòng)轉(zhuǎn)換功能。單片機(jī)自帶多路輸入ADC等模塊,簡(jiǎn)化了電路設(shè)計(jì),并通過(guò)程序設(shè)計(jì),能依據(jù)用戶的設(shè)定,將測(cè)量數(shù)據(jù)存儲(chǔ)到單片機(jī)自帶的EEPROM內(nèi),實(shí)現(xiàn)數(shù)據(jù)掉電不丟失且查閱的功能。若外圍加上其它的相關(guān)轉(zhuǎn)換電路,此數(shù)字電壓表還可進(jìn)一步擴(kuò)展,使其具有更多的功能。
長(zhǎng)春師范大學(xué)學(xué)報(bào)2018年12期