新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 一種以AVR單片機為核心的工頻電壓/頻率儀設計

        一種以AVR單片機為核心的工頻電壓/頻率儀設計

        作者: 時間:2016-12-09 來源:網絡 收藏

        1.引言

        本文引用地址:http://www.104case.com/article/201612/328495.htm

        在電力生產和電氣測試工作中,經常需要測量工頻電壓和頻率。目前市面上工頻電壓表和頻率表種類繁多,本設計與其相比具有電路簡單、體積小、功耗低、性價比高等特點。利用低價位具備AVR高檔單片機性能的ATmega8單片機,設計工頻電壓和頻率兩用測量儀。ATmega8單片機除了有A/D轉換和定時計數器功能外,其內部的模擬比較器在測量頻率電路中省了測量過零電路;I/O端口20mA驅動能力直接驅動LED數碼管,省了驅動電路。使整個硬件電路非常簡單。

        2.硬件設計

        基于ATmega8單片機工頻電壓/頻率儀設計硬件電路如圖1所示。以單片機為核心,加上少量的外部元件構成。

        圖1中:T1是電源變壓器和電壓互感器兩用器件(電壓互感器有變比精度要求),提供測量儀運行電源,并兼做為被測輸入源使用;AD1、C1是電源整流濾波電路元件;U1是三端穩壓器件;C2、C6是+5V電源濾波電容;L1、C4、C5是測量電壓用基準電壓和模擬端電源解耦電路元件;DS是大尺寸低功耗LED數碼管,與Rd1-Rd8構成測量結果顯示電路;D1、D2、R1是測量頻率輸入波形整形電路元件;R2、R3、R4、C3是測量電壓取樣輸入電路元件;R6、R7、LED2、LED3是測量頻率或電壓狀態指示電路元件;R8、LED1是電源指示電路元件;E1(8MHz)晶體和兩個20p的電容組成單片機運行所必須的時鐘(保證測量頻率的精度)。S1是測量電壓/頻率選擇開關。

        ATmega8單片機:

        ATmega8是ATMEL公司AVR系列單片機。

        采用低功耗CMOS工藝生產的基于AVR RISC結構的8位單片機,大多數指令執行時間為單個周期。

        1)內有10位精度的逐次逼近型ADC

        ADC與一個8通道的模擬多路復用器連接,能對來自端口C的8路單端輸入電壓進行采樣。單端電壓輸入以0V(GND)為基準。ADC包括一個采樣保持電路,以確保在轉換過程中輸入到ADC的電壓保持恒定。ADC由AVCC引腳單獨提供電源。AVCC與VCC之間的偏差不能超過±0.3V.器件之內有標稱值為2.56V和AVCC基準電壓。基準電壓可以通過在AREF引腳上加一個電容進行解耦,以更好地抑制噪聲。

        2)16位定時器/計數器

        16位的T/C可以實現精確的程序定時(事件管理)、波形產生和信號測量。其主要特點如下:真正的16位設計;2個獨立的輸出比較單元;雙緩沖的輸出比較寄存器;一個輸入捕捉單元;輸入捕捉噪聲抑制器;比較匹配發生時清除寄存器(自動重載);無干擾脈沖,相位正確的PWM;可變的PWM周期;頻率發生器;外部事件計數器。

        3)片內模擬比較器

        模擬比較器對正極AIN0的值與負極AIN1的值進行比較。當AIN0上的電壓比負極AIN1上的電壓要高時,模擬比較器的輸出ACO即置位。比較器的輸出可用來觸發定時器/計數器1的輸入捕捉功能。此外,比較器還可觸發自己專有的、獨立的中斷。

        AVR單片機的系統內可編程特性,無需購買昂貴的仿真器和編程器也可進行單片機嵌入式系統的設計和開發;同時也為單片機的初學者提供了非常方便和簡捷的學習開發環境。而且在省電性能、穩定性、抗干擾性以及靈活性方面考慮得更加周全和完善。

        ATmega8單片機與其它單片機比較而言,簡便易用、費用低,相對進入AVR系列單片機開發的門檻也低,軟件資源豐富,程序容易開發。由于Atmega8單片機是常用芯片,本文對其特性、內部結構、引腳說明等不做介紹。

        3.ATmega8程序的設計

        ATmega8芯片是ATMEL(愛特梅爾)公司的AVR系列單片機。ATMEL公司網站提供AVRStudio集成環境(IDE)開發軟件免費下載。

        本固件程序采用開發軟件匯編編譯并燒寫。3.1 主程序

        程序主要由初始化程序、數據處理程序(包括各種計算子程序)、LED位顯示程序(包括LED顯示刷新和字形碼查表)、中斷處理程序等模塊組成。

        主程序流程如圖2所示。程序首先對系統初始化。初始化程序流程為:設置堆棧地址--初始化定時器(含顯示和測頻率計數器)--A/D轉換初始化--存儲器及寄存器初始化。接下來進入主程序閉合循環體,在循環體中不斷檢查電壓/頻率選擇開關狀態。如開關為合的狀態,程序檢查A/D轉換是否完成。并對A/D轉換做相應操作。如開關為斷的狀態,程序啟動測量頻率計數器工作,并允許計數器中斷產生。然后無論電壓/頻率選擇開關狀態,都進入顯示數據更新檢查,并對LED顯示做相應操作。程序最后對LED顯示(4位輪流)進行刷新。完成后循環重新開始。

        3.2 中斷程序

        本主程設置2個中斷源。分別是LED顯示掃描定時中斷和頻率測量計數器中斷。為了保證頻率測量精度,設置計數器中斷優先級為最高。LED顯示掃描由定時器0產生中斷后做顯示掃描標志。頻率測量計數器由模擬比較器產生中斷后,讀取16位定時器計數值并保存(數據由主程序處理),并設置數據更新標志。程序處理流程如圖3所示。

        4.結束語

        基于ATmega8單片機工頻電壓/頻率儀硬件電路簡單、性能穩定可靠、經濟適用,能滿足一般的測量精度要求。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 洱源县| 蒙山县| 元朗区| 松原市| 东乌珠穆沁旗| 锡林郭勒盟| 巨鹿县| 将乐县| 海晏县| 化德县| 清流县| 隆安县| 新蔡县| 达日县| 无极县| 务川| 蒲城县| 韩城市| 来宾市| 东阿县| 平南县| 泗水县| 铁岭市| 平利县| 青州市| 荆州市| 昔阳县| 巫溪县| 定远县| 托克逊县| 浠水县| 德令哈市| 缙云县| 布拖县| 浑源县| 舞阳县| 通海县| 格尔木市| 邯郸市| 长岭县| 保康县|