李 穎,梁 庭*,林斯佳,喻蘭芳,崔海波
(1.中北大學儀器科學與動態測試教育部重點實驗室,太原030051;2.中北大學電子測試技術國防科技重點實驗室,太原030051)
基于AVR單片機的多路直流電平檢測電路設計*
李 穎1,2,梁 庭1,2*,林斯佳1,2,喻蘭芳1,2,崔海波1,2
(1.中北大學儀器科學與動態測試教育部重點實驗室,太原030051;2.中北大學電子測試技術國防科技重點實驗室,太原030051)
在現代檢測技術中,經常需要對智能儀器內部的多路直流電平進行實時檢測,從而得知工作是否正常。為此以AT-mega16單片機為核心器件,采用內部ADC、加減運算電路以及三參數軟件精度校準方法來設計一種測量系統,可以對-10 V~+10 V量程范圍內的多路直流電平進行實時檢測并用數碼管顯示。該系統通過proteus仿真以及對兩路電平進行實際測量,誤差范圍≤0.02 V,且體積小、結構簡單、工作可靠、響應速度快,可作為實際應用。
電平檢測;ATmega16;軟件精度校準;正負量程;多路
目前,由MCS-51和A/D轉換器構成的數字電壓表已被廣泛應用于電子及電工測量、工業自動化儀表、自動測試系統等智能化測量領域[1]。這些基于MCS-51單片機的數字電壓表一般采用專用的A/D轉換器,并且電路需要搭配專門的譯碼和鎖存電路把模擬信號轉換成合適的數字信號,這樣使得系統的設計相對復雜[2]。同時,這些數字電壓表大都只是針對單路直流電平的測量進行設計,且測量范圍一般僅局限于正電壓,本文以ATmega16單片機為核心器件設計的測量系統可以實現對多路正負直流電平的精確檢測。
該系統的總體設計方案由七部分組成:ATmega16單片機、復位電路、時鐘模塊、兩組四位一體LED數碼管及其驅動模塊、加減運算電路和待測輸入信號。系統總體設計框圖如圖1所示。加減運算電路用于將-10 V~+10 V直流電平轉換為0~5 V,AT-mega16作為核心控制器件,通過PA0和PA1口完成對兩路電平信號的采集,然后利用內部自帶的ADC實現對電平信號的模數轉換,最后通過數據處理控制LED顯示兩路直流電平的數值。

圖1 系統總體設計框
系統的硬件電路原理圖如圖 2所示。AT-mega16是基于增強的AVR RISC結構的低功耗8 bitCMOS微控制器。由于其先進的指令集以及單時鐘周期指令執行時間,ATmega16的數據吞吐率高達1 (MI/S)/MHz,從而可以緩解系統在功耗和處理速度之間的矛盾[3]。單片機的PA0~PA7八個I/O口均可作為待測直流電平的輸入口,本系統通過編程循環設置PA0、PA1為信號輸入口,用PB4、PB5、PB7 3個I/O口以及兩個鎖存器來動態點亮兩組四位一體數碼管,顯示待測直流電平的數值。

圖2 系統硬件原理圖
2.1 內部自帶ADC
ATmega16內部集成了一個10 bit逐次比較型的ADC電路,具有0.5LSB積分非線性誤差、± 2LSB的絕對精度、13 μs~260 μs的轉換時間,以及最大精度下可達到15 ksample/s的采樣速率,因此使用AVR可以非常方便的處理輸入的模擬信號量[4]。ATmega16的ADC與一個8通道的模擬多路選擇器連接,能夠對以PORTA作為ADC輸入引腳的8路單端模擬輸入電壓進行采樣[5]。ADC包括一個采樣保持電路,以確保在轉換過程中輸入的電壓保持恒定,使用方便。ADC模數轉換的參考電源可選用內部的2.5 V電源或者AVCC,也可以使用外部參考源[6]。本文通過設置多路選擇復用寄存器ADMUX,用VCC作為參考電源從VREF引腳輸入,并選擇PA0口和PA1口作為兩路直流電平的數據采集口;通過設置控制和狀態寄存器ADCSRA來實現ADC的使能、轉換的開始與結束、以及采樣時鐘頻率的選擇。本文設置的ADC技術指標為:采樣時鐘187.5 kHz,采樣速率7.5 ksample/s。
2.2 加法運算電路
集成運放加上適當的反饋網絡,可以實現模擬信號的數學運算[7]。為了將-10 V~+10 V范圍內的待測電壓轉化為單片機模擬輸入引腳所能識別的0~5 V電壓,選用LM324及其反饋回路組成加法運算電路。如圖3所示。這里,PA0端的輸出電壓U0=-R4(Ui/R1+Uref/R2),由于模擬信號是反相輸入的,為了保證+10 V電壓輸入時輸出電壓不小于0,取Uref=-10 V。

圖3 加法運算電路原理圖
2.3 顯示驅動電路
如圖2所示,74HC595集成8 bit移位寄存器和一個存儲器,用單片機PB7、PB4、PB5口分別作為移位控制引腳、數據輸出控制引腳以及數據的傳送引腳來控制數碼管的顯示。每當SH_CP引腳的上升沿到來時,DS引腳的當前電平值在移位寄存器中左移一位,在下一個上升沿到來時移位寄存器中的所有位都會向左移一位,同時Q7'也會串行輸出移位寄存器中高位的值,連續進行8次就可以將一組8 bit數據送到移位寄存器,當ST_CP引腳的上升沿到來時,移位寄存器中的數據通過Q0~Q7輸出。圖2中左右兩個74HC595分別用于控制數碼管的位選和段選。
系統的軟件設計包括初始化、啟動模數轉換、數據的處理與顯示,對實際系統的校準等。整篇代碼采用單片機C語言編寫,具有編程效率高、可讀性強、便于修改等優點[8]。主程序流程圖如圖4所示。系統的初始化包括設置參考電源、轉換結果的存放格式、設置模擬電壓輸入口、轉換模式以及采樣時鐘頻率等,進而循環往復對兩路電壓進行采集、轉換、處理和顯示。

圖4 主程序流程圖
3.1 數據處理子程序
數據處理子程序流程圖如圖5所示。AD轉換成的10 bit數據存儲在ADCH、ADCL兩個寄存器中,將其賦予dat。ref0、ref負、ref正3個參數分別對應0、+10 V、-10 V輸入時模數轉換后的數據,由于待測電壓是從運放的反相端輸入的,負電壓轉換后的數據大于ref0,正電壓轉換后的數據小于ref0。根據關系式Ui/10 V=dat/(ref負-ref0)即可得到顯示結果。

圖5 數據處理子程序流程圖
3.2 實際應用中對系統的校準
設計系統實物的過程中由于電阻阻值誤差的不可避免性直接影響到加法運算電路的精度,進而影響到系統測量的精度,該設計采用三參數校準方法實現系統實物的設計[9]。硬件實物完成之后,選用性能可靠的萬用表作為標準測量設備,首先調節待測直流穩壓電源使其萬用表的讀數為0,然后通過編程微調ref0的參考值,直到數碼管顯示為0時確定ref0的值,然后運用相同的方法確定ref正和ref負兩參數的值即可保證系統實物的使用精度。
應用該檢測電路實際檢測由直流穩壓電源提供的-10 V~+10 V待測電壓,并用數字萬用表進行監測,輸入電壓值為萬用表對直流穩壓源測量的電壓值,實際測量值為由電平檢測電路處理后經4 bit數碼管顯示的電壓值,記錄測量數據如表1所示,數據擬合曲線如圖6所示。由測試數據可以清晰地看出,本文設計的多路直流電平檢測電路可用于實際測量,且絕對誤差≤0.02 V。

表1 測量數據

圖6 測量數據擬合曲線
該系統采用ATmega16單片機為核心器件實現對多路直流電平的檢測及顯示功能。設計過程中采用Proteus軟件進行仿真調試,使用內部自帶模數轉換ADC,電路結構簡單,成本低,操作方便。用三參數軟件校準的方法用于系統實物的調試,能夠精確測量范圍在-10 V~+10 V的兩路直流電平,且速度快、性能可靠,有較高的實用價值。
[1] 趙靜,劉少聰.基于單片機的數字電壓表設計[J].數字技術與應用,2013,36(2):121,125.
[2] 駱旭坤.基于AVR單片機實現積分式直流數字電壓表的設計[J].黎明職業大學學報.2008(1):31-34.
[3] 汪煉,韓震宇.基于AVR單片機的串口通信[J].中國測試技術,2003,29(2):52-53.
[4] 孫艷玲,羅友,張東清.一種單片機實時顯示太陽能充放電控制器設計[J].電子器件,2012,35(4):435-439.
[5] 李建成.基于單片機的數字電壓表設計與仿真[J].現代電子技術,2012,35(21):170-172.
[6] 翟永前,蔣芳芳.基于MSP430單片機的智能數字電壓表設計[J].化工自動化及儀表.2011,38(3).297-300.
[7] 華成英,童詩白.模擬電子技術基礎[M].4版.北京:高等教育出版社,2006:330-334.
[8] 邊晶瑩,李曉峰,李平周.基于FPGA的新型數字電壓表設計[J].現代電子技術,2010,33(6):185-188.
[9] 甘本鑫,蘇紅艷.基于單片機交直流數字電壓表的設計[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