李 穎,梁 庭*,林斯佳,喻蘭芳,崔海波
(1.中北大學儀器科學與動態(tài)測試教育部重點實驗室,太原030051;2.中北大學電子測試技術(shù)國防科技重點實驗室,太原030051)
基于AVR單片機的多路直流電平檢測電路設(shè)計*
李 穎1,2,梁 庭1,2*,林斯佳1,2,喻蘭芳1,2,崔海波1,2
(1.中北大學儀器科學與動態(tài)測試教育部重點實驗室,太原030051;2.中北大學電子測試技術(shù)國防科技重點實驗室,太原030051)
在現(xiàn)代檢測技術(shù)中,經(jīng)常需要對智能儀器內(nèi)部的多路直流電平進行實時檢測,從而得知工作是否正常。為此以AT-mega16單片機為核心器件,采用內(nèi)部ADC、加減運算電路以及三參數(shù)軟件精度校準方法來設(shè)計一種測量系統(tǒng),可以對-10 V~+10 V量程范圍內(nèi)的多路直流電平進行實時檢測并用數(shù)碼管顯示。該系統(tǒng)通過proteus仿真以及對兩路電平進行實際測量,誤差范圍≤0.02 V,且體積小、結(jié)構(gòu)簡單、工作可靠、響應速度快,可作為實際應用。
電平檢測;ATmega16;軟件精度校準;正負量程;多路
目前,由MCS-51和A/D轉(zhuǎn)換器構(gòu)成的數(shù)字電壓表已被廣泛應用于電子及電工測量、工業(yè)自動化儀表、自動測試系統(tǒng)等智能化測量領(lǐng)域[1]。這些基于MCS-51單片機的數(shù)字電壓表一般采用專用的A/D轉(zhuǎn)換器,并且電路需要搭配專門的譯碼和鎖存電路把模擬信號轉(zhuǎn)換成合適的數(shù)字信號,這樣使得系統(tǒng)的設(shè)計相對復雜[2]。同時,這些數(shù)字電壓表大都只是針對單路直流電平的測量進行設(shè)計,且測量范圍一般僅局限于正電壓,本文以ATmega16單片機為核心器件設(shè)計的測量系統(tǒng)可以實現(xiàn)對多路正負直流電平的精確檢測。
該系統(tǒng)的總體設(shè)計方案由七部分組成:ATmega16單片機、復位電路、時鐘模塊、兩組四位一體LED數(shù)碼管及其驅(qū)動模塊、加減運算電路和待測輸入信號。系統(tǒng)總體設(shè)計框圖如圖1所示。加減運算電路用于將-10 V~+10 V直流電平轉(zhuǎn)換為0~5 V,AT-mega16作為核心控制器件,通過PA0和PA1口完成對兩路電平信號的采集,然后利用內(nèi)部自帶的ADC實現(xiàn)對電平信號的模數(shù)轉(zhuǎn)換,最后通過數(shù)據(jù)處理控制LED顯示兩路直流電平的數(shù)值。
圖1 系統(tǒng)總體設(shè)計框
系統(tǒng)的硬件電路原理圖如圖 2所示。AT-mega16是基于增強的AVR RISC結(jié)構(gòu)的低功耗8 bitCMOS微控制器。由于其先進的指令集以及單時鐘周期指令執(zhí)行時間,ATmega16的數(shù)據(jù)吞吐率高達1 (MI/S)/MHz,從而可以緩解系統(tǒng)在功耗和處理速度之間的矛盾[3]。單片機的PA0~PA7八個I/O口均可作為待測直流電平的輸入口,本系統(tǒng)通過編程循環(huán)設(shè)置PA0、PA1為信號輸入口,用PB4、PB5、PB7 3個I/O口以及兩個鎖存器來動態(tài)點亮兩組四位一體數(shù)碼管,顯示待測直流電平的數(shù)值。
圖2 系統(tǒng)硬件原理圖
2.1 內(nèi)部自帶ADC
ATmega16內(nèi)部集成了一個10 bit逐次比較型的ADC電路,具有0.5LSB積分非線性誤差、± 2LSB的絕對精度、13 μs~260 μs的轉(zhuǎn)換時間,以及最大精度下可達到15 ksample/s的采樣速率,因此使用AVR可以非常方便的處理輸入的模擬信號量[4]。ATmega16的ADC與一個8通道的模擬多路選擇器連接,能夠?qū)σ訮ORTA作為ADC輸入引腳的8路單端模擬輸入電壓進行采樣[5]。ADC包括一個采樣保持電路,以確保在轉(zhuǎn)換過程中輸入的電壓保持恒定,使用方便。ADC模數(shù)轉(zhuǎn)換的參考電源可選用內(nèi)部的2.5 V電源或者AVCC,也可以使用外部參考源[6]。本文通過設(shè)置多路選擇復用寄存器ADMUX,用VCC作為參考電源從VREF引腳輸入,并選擇PA0口和PA1口作為兩路直流電平的數(shù)據(jù)采集口;通過設(shè)置控制和狀態(tài)寄存器ADCSRA來實現(xiàn)ADC的使能、轉(zhuǎn)換的開始與結(jié)束、以及采樣時鐘頻率的選擇。本文設(shè)置的ADC技術(shù)指標為:采樣時鐘187.5 kHz,采樣速率7.5 ksample/s。
2.2 加法運算電路
集成運放加上適當?shù)姆答伨W(wǎng)絡,可以實現(xiàn)模擬信號的數(shù)學運算[7]。為了將-10 V~+10 V范圍內(nèi)的待測電壓轉(zhuǎn)化為單片機模擬輸入引腳所能識別的0~5 V電壓,選用LM324及其反饋回路組成加法運算電路。如圖3所示。這里,PA0端的輸出電壓U0=-R4(Ui/R1+Uref/R2),由于模擬信號是反相輸入的,為了保證+10 V電壓輸入時輸出電壓不小于0,取Uref=-10 V。
圖3 加法運算電路原理圖
2.3 顯示驅(qū)動電路
如圖2所示,74HC595集成8 bit移位寄存器和一個存儲器,用單片機PB7、PB4、PB5口分別作為移位控制引腳、數(shù)據(jù)輸出控制引腳以及數(shù)據(jù)的傳送引腳來控制數(shù)碼管的顯示。每當SH_CP引腳的上升沿到來時,DS引腳的當前電平值在移位寄存器中左移一位,在下一個上升沿到來時移位寄存器中的所有位都會向左移一位,同時Q7'也會串行輸出移位寄存器中高位的值,連續(xù)進行8次就可以將一組8 bit數(shù)據(jù)送到移位寄存器,當ST_CP引腳的上升沿到來時,移位寄存器中的數(shù)據(jù)通過Q0~Q7輸出。圖2中左右兩個74HC595分別用于控制數(shù)碼管的位選和段選。
系統(tǒng)的軟件設(shè)計包括初始化、啟動模數(shù)轉(zhuǎn)換、數(shù)據(jù)的處理與顯示,對實際系統(tǒng)的校準等。整篇代碼采用單片機C語言編寫,具有編程效率高、可讀性強、便于修改等優(yōu)點[8]。主程序流程圖如圖4所示。系統(tǒng)的初始化包括設(shè)置參考電源、轉(zhuǎn)換結(jié)果的存放格式、設(shè)置模擬電壓輸入口、轉(zhuǎn)換模式以及采樣時鐘頻率等,進而循環(huán)往復對兩路電壓進行采集、轉(zhuǎn)換、處理和顯示。
圖4 主程序流程圖
3.1 數(shù)據(jù)處理子程序
數(shù)據(jù)處理子程序流程圖如圖5所示。AD轉(zhuǎn)換成的10 bit數(shù)據(jù)存儲在ADCH、ADCL兩個寄存器中,將其賦予dat。ref0、ref負、ref正3個參數(shù)分別對應0、+10 V、-10 V輸入時模數(shù)轉(zhuǎn)換后的數(shù)據(jù),由于待測電壓是從運放的反相端輸入的,負電壓轉(zhuǎn)換后的數(shù)據(jù)大于ref0,正電壓轉(zhuǎn)換后的數(shù)據(jù)小于ref0。根據(jù)關(guān)系式Ui/10 V=dat/(ref負-ref0)即可得到顯示結(jié)果。
圖5 數(shù)據(jù)處理子程序流程圖
3.2 實際應用中對系統(tǒng)的校準
設(shè)計系統(tǒng)實物的過程中由于電阻阻值誤差的不可避免性直接影響到加法運算電路的精度,進而影響到系統(tǒng)測量的精度,該設(shè)計采用三參數(shù)校準方法實現(xiàn)系統(tǒng)實物的設(shè)計[9]。硬件實物完成之后,選用性能可靠的萬用表作為標準測量設(shè)備,首先調(diào)節(jié)待測直流穩(wěn)壓電源使其萬用表的讀數(shù)為0,然后通過編程微調(diào)ref0的參考值,直到數(shù)碼管顯示為0時確定ref0的值,然后運用相同的方法確定ref正和ref負兩參數(shù)的值即可保證系統(tǒng)實物的使用精度。
應用該檢測電路實際檢測由直流穩(wěn)壓電源提供的-10 V~+10 V待測電壓,并用數(shù)字萬用表進行監(jiān)測,輸入電壓值為萬用表對直流穩(wěn)壓源測量的電壓值,實際測量值為由電平檢測電路處理后經(jīng)4 bit數(shù)碼管顯示的電壓值,記錄測量數(shù)據(jù)如表1所示,數(shù)據(jù)擬合曲線如圖6所示。由測試數(shù)據(jù)可以清晰地看出,本文設(shè)計的多路直流電平檢測電路可用于實際測量,且絕對誤差≤0.02 V。
表1 測量數(shù)據(jù)
圖6 測量數(shù)據(jù)擬合曲線
該系統(tǒng)采用ATmega16單片機為核心器件實現(xiàn)對多路直流電平的檢測及顯示功能。設(shè)計過程中采用Proteus軟件進行仿真調(diào)試,使用內(nèi)部自帶模數(shù)轉(zhuǎn)換ADC,電路結(jié)構(gòu)簡單,成本低,操作方便。用三參數(shù)軟件校準的方法用于系統(tǒng)實物的調(diào)試,能夠精確測量范圍在-10 V~+10 V的兩路直流電平,且速度快、性能可靠,有較高的實用價值。
[1] 趙靜,劉少聰.基于單片機的數(shù)字電壓表設(shè)計[J].數(shù)字技術(shù)與應用,2013,36(2):121,125.
[2] 駱旭坤.基于AVR單片機實現(xiàn)積分式直流數(shù)字電壓表的設(shè)計[J].黎明職業(yè)大學學報.2008(1):31-34.
[3] 汪煉,韓震宇.基于AVR單片機的串口通信[J].中國測試技術(shù),2003,29(2):52-53.
[4] 孫艷玲,羅友,張東清.一種單片機實時顯示太陽能充放電控制器設(shè)計[J].電子器件,2012,35(4):435-439.
[5] 李建成.基于單片機的數(shù)字電壓表設(shè)計與仿真[J].現(xiàn)代電子技術(shù),2012,35(21):170-172.
[6] 翟永前,蔣芳芳.基于MSP430單片機的智能數(shù)字電壓表設(shè)計[J].化工自動化及儀表.2011,38(3).297-300.
[7] 華成英,童詩白.模擬電子技術(shù)基礎(chǔ)[M].4版.北京:高等教育出版社,2006:330-334.
[8] 邊晶瑩,李曉峰,李平周.基于FPGA的新型數(shù)字電壓表設(shè)計[J].現(xiàn)代電子技術(shù),2010,33(6):185-188.
[9] 甘本鑫,蘇紅艷.基于單片機交直流數(shù)字電壓表的設(shè)計[J].科技信息,2008,32(32):247-248.
李 穎(1987- ),女,河北保定人,碩士研究生,主要研究方向為光電傳感器,praiseu@126.com;
梁 庭(1979- ),男,山西長治人,中北大學副教授、碩士生導師、博士,主要從事光學氣體傳感器及高溫壓力傳感器等的研究,liangtingnuc@163.com。
Design of Detection Circuit for Multi-channel DC Level Based on AVR Microcontroller*
LI Ying1,2,LIANG Ting1,2*,LIN Sijia1,2,YU Lanfang1,2,CUI Haibo1,2
(1.Key Laboratory of Instrumentation Science and Dynamic Measurement(North University of China),Ministry of Education Taiyuan 030051,China; 2.Science and Technology on Electronic Test and Measurement Laboratory,North University of China,Taiyuan 030051,China)
In modern detection technology,real-time detection for multi-channel DC level inside the intelligent instrument is required frequently to ensure its working properly.ATmega16 microcontroller is used as the core device,using the internal ADC,the addition and subtraction operational circuit,and the precision calibration method of three-parameter software to design a measurement system.Multiple DC level of-10 V~+10 V range can be monitored real-timely with digital display.Proteus simulation and actual measurement were both used in the system,which showed the error did not exceed the scope of 0.02 V,together with the characteristics of small size,simple structure,reliable work and fast response made it work properly in practical application.
level testing;ATmega16;software calibration precision;positive and negative range;multi-channel
10.3969/j.issn.1005-9490.2014.02.018
TM932
A
1005-9490(2014)02-0254-04
項目來源:國家自然科學基金項目(51075375)
2013-06-05修改日期:2013-06-26
book=257,ebook=91
EEACC:1130B