一種以AVR單片機(jī)為核心的工頻電壓/頻率儀設(shè)計
1.引言
在電力生產(chǎn)和電氣測試工作中,經(jīng)常需要測量工頻電壓和頻率。目前市面上工頻電壓表和頻率表種類繁多,本設(shè)計與其相比具有電路簡單、體積小、功耗低、性價比高等特點。利用低價位具備AVR高檔單片機(jī)性能的ATmega8單片機(jī),設(shè)計工頻電壓和頻率兩用測量儀。ATmega8單片機(jī)除了有A/D轉(zhuǎn)換和定時計數(shù)器功能外,其內(nèi)部的模擬比較器在測量頻率電路中省了測量過零電路;I/O端口20mA驅(qū)動能力直接驅(qū)動LED數(shù)碼管,省了驅(qū)動電路。使整個硬件電路非常簡單。
2.硬件設(shè)計
基于ATmega8單片機(jī)工頻電壓/頻率儀設(shè)計硬件電路如圖1所示。以單片機(jī)為核心,加上少量的外部元件構(gòu)成。
圖1中:T1是電源變壓器和電壓互感器兩用器件(電壓互感器有變比精度要求),提供測量儀運(yùn)行電源,并兼做為被測輸入源使用;AD1、C1是電源整流濾波電路元件;U1是三端穩(wěn)壓器件;C2、C6是+5V電源濾波電容;L1、C4、C5是測量電壓用基準(zhǔn)電壓和模擬端電源解耦電路元件;DS是大尺寸低功耗LED數(shù)碼管,與Rd1-Rd8構(gòu)成測量結(jié)果顯示電路;D1、D2、R1是測量頻率輸入波形整形電路元件;R2、R3、R4、C3是測量電壓取樣輸入電路元件;R6、R7、LED2、LED3是測量頻率或電壓狀態(tài)指示電路元件;R8、LED1是電源指示電路元件;E1(8MHz)晶體和兩個20p的電容組成單片機(jī)運(yùn)行所必須的時鐘(保證測量頻率的精度)。S1是測量電壓/頻率選擇開關(guān)。
ATmega8單片機(jī):
ATmega8是ATMEL公司AVR系列單片機(jī)。
采用低功耗CMOS工藝生產(chǎn)的基于AVR RISC結(jié)構(gòu)的8位單片機(jī),大多數(shù)指令執(zhí)行時間為單個周期。
1)內(nèi)有10位精度的逐次逼近型ADC
ADC與一個8通道的模擬多路復(fù)用器連接,能對來自端口C的8路單端輸入電壓進(jìn)行采樣。單端電壓輸入以0V(GND)為基準(zhǔn)。ADC包括一個采樣保持電路,以確保在轉(zhuǎn)換過程中輸入到ADC的電壓保持恒定。ADC由AVCC引腳單獨提供電源。AVCC與VCC之間的偏差不能超過±0.3V.器件之內(nèi)有標(biāo)稱值為2.56V和AVCC基準(zhǔn)電壓?;鶞?zhǔn)電壓可以通過在AREF引腳上加一個電容進(jìn)行解耦,以更好地抑制噪聲。
2)16位定時器/計數(shù)器
16位的T/C可以實現(xiàn)精確的程序定時(事件管理)、波形產(chǎn)生和信號測量。其主要特點如下:真正的16位設(shè)計;2個獨立的輸出比較單元;雙緩沖的輸出比較寄存器;一個輸入捕捉單元;輸入捕捉噪聲抑制器;比較匹配發(fā)生時清除寄存器(自動重載);無干擾脈沖,相位正確的PWM;可變的PWM周期;頻率發(fā)生器;外部事件計數(shù)器。
3)片內(nèi)模擬比較器
模擬比較器對正極AIN0的值與負(fù)極AIN1的值進(jìn)行比較。當(dāng)AIN0上的電壓比負(fù)極AIN1上的電壓要高時,模擬比較器的輸出ACO即置位。比較器的輸出可用來觸發(fā)定時器/計數(shù)器1的輸入捕捉功能。此外,比較器還可觸發(fā)自己專有的、獨立的中斷。
AVR單片機(jī)的系統(tǒng)內(nèi)可編程特性,無需購買昂貴的仿真器和編程器也可進(jìn)行單片機(jī)嵌入式系統(tǒng)的設(shè)計和開發(fā);同時也為單片機(jī)的初學(xué)者提供了非常方便和簡捷的學(xué)習(xí)開發(fā)環(huán)境。而且在省電性能、穩(wěn)定性、抗干擾性以及靈活性方面考慮得更加周全和完善。
ATmega8單片機(jī)與其它單片機(jī)比較而言,簡便易用、費(fèi)用低,相對進(jìn)入AVR系列單片機(jī)開發(fā)的門檻也低,軟件資源豐富,程序容易開發(fā)。由于Atmega8單片機(jī)是常用芯片,本文對其特性、內(nèi)部結(jié)構(gòu)、引腳說明等不做介紹。
3.ATmega8程序的設(shè)計
ATmega8芯片是ATMEL(愛特梅爾)公司的AVR系列單片機(jī)。ATMEL公司網(wǎng)站提供AVRStudio集成環(huán)境(IDE)開發(fā)軟件免費(fèi)下載。
本固件程序采用開發(fā)軟件匯編編譯并燒寫。[!--empirenews.page--]
3.1 主程序
程序主要由初始化程序、數(shù)據(jù)處理程序(包括各種計算子程序)、LED位顯示程序(包括LED顯示刷新和字形碼查表)、中斷處理程序等模塊組成。
主程序流程如圖2所示。程序首先對系統(tǒng)初始化。初始化程序流程為:設(shè)置堆棧地址--初始化定時器(含顯示和測頻率計數(shù)器)--A/D轉(zhuǎn)換初始化--存儲器及寄存器初始化。接下來進(jìn)入主程序閉合循環(huán)體,在循環(huán)體中不斷檢查電壓/頻率選擇開關(guān)狀態(tài)。如開關(guān)為合的狀態(tài),程序檢查A/D轉(zhuǎn)換是否完成。并對A/D轉(zhuǎn)換做相應(yīng)操作。如開關(guān)為斷的狀態(tài),程序啟動測量頻率計數(shù)器工作,并允許計數(shù)器中斷產(chǎn)生。然后無論電壓/頻率選擇開關(guān)狀態(tài),都進(jìn)入顯示數(shù)據(jù)更新檢查,并對LED顯示做相應(yīng)操作。程序最后對LED顯示(4位輪流)進(jìn)行刷新。完成后循環(huán)重新開始。
3.2 中斷程序
本主程設(shè)置2個中斷源。分別是LED顯示掃描定時中斷和頻率測量計數(shù)器中斷。為了保證頻率測量精度,設(shè)置計數(shù)器中斷優(yōu)先級為最高。LED顯示掃描由定時器0產(chǎn)生中斷后做顯示掃描標(biāo)志。頻率測量計數(shù)器由模擬比較器產(chǎn)生中斷后,讀取16位定時器計數(shù)值并保存(數(shù)據(jù)由主程序處理),并設(shè)置數(shù)據(jù)更新標(biāo)志。程序處理流程如圖3所示。
4.結(jié)束語
基于ATmega8單片機(jī)工頻電壓/頻率儀硬件電路簡單、性能穩(wěn)定可靠、經(jīng)濟(jì)適用,能滿足一般的測量精度要求。