自動化092班徐超頻率計_第1頁
自動化092班徐超頻率計_第2頁
自動化092班徐超頻率計_第3頁
自動化092班徐超頻率計_第4頁
自動化092班徐超頻率計_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、頻率計報 指導(dǎo)老師:王祖麟,溫 如春 告 所屬學(xué)院 :機電工程 姓名:徐超 學(xué)號:33號摘要本設(shè)計系統(tǒng)采用LPC2000系列ARM作為控制核心,分測量輸入信號的頻率、序控制計數(shù)等。該頻率計采用測周期和測頻組合法實現(xiàn)對輸入信號的頻率測量提高了測量精度,用相應(yīng)比較器、芯片及分頻器輔助ARM板完成所要求的功能。通過測量結(jié)果對比,分析了測量誤差的來源,提出了減小誤差應(yīng)采取的措施。頻率計具有電路結(jié)構(gòu)簡單、成本低、測量方便、精度較高等特點,適合測量低頻信號。關(guān)鍵詞:ARM2131;數(shù)字頻率計;Frequency counter analysis AbstractThe design of the syst

2、em by LPC2000 Series ARM2131as the control, the measuring of the input signal frequency, measurements, the measured input signal after the appropriate treatment given microcontroller, programmed to counting, driving LED digital display frequency values, shows the input signal amplitude and polarity.

3、 The use of test cycle and frequency meter measuring frequency combination method to achieve the input signal frequency measurement improves measurement accuracy compared with the corresponding device, chip and divider to complete the required supporting single chip system features. By measuring the

4、 results of comparative analysis of the sources of measurement error, proposed measures to be taken to reduce the errors. Frequency Meter features simple structure, low cost, measurement, higher accuracy, etc., suitable for measuring low frequency signals. Keywords: ARM2131; digital frequency meter;

5、 一、系統(tǒng)整體方案設(shè)計1.主要單元方案論證與比較本設(shè)計為一自適應(yīng)數(shù)字頻率計,可以自動判別輸入周期頻率信號(5Hz-10k)的特性(單極性或雙極性信號、信號的頻率、信號幅度)。輸入信號:正弦波、方波(單極性或雙極性),三角波、鋸齒波、正向輸入峰值(0.5-5v)。要求:頻率測量誤差小于1%(頻率測量低頻采用計時,高頻采用計數(shù)),用4位數(shù)碼顯示,自動切換顯示小數(shù)點及顯示單位;幅度測量誤差小于10%.自動切換顯示小數(shù)點及顯示單位。分析題目可見,本設(shè)計主要解決對輸入信號頻率、幅度和極性測量三個主要問題。以下的方案論證也據(jù)此展開。(1)測頻電路的方案選擇方案一:采用頻率計模塊(如ICM 7216) 構(gòu)成

6、, 特點是結(jié)構(gòu)簡單, 量程可以自動切換。(如圖1.1.1所示)模擬信號ICM7216并聯(lián)振蕩回路選擇開關(guān)LED顯示圖1.1.1采用頻率計模塊構(gòu)成原理框圖ARM2131內(nèi)部帶有放大整形電路, 可以直接輸入模擬信號。外部振蕩部分選用一塊高精度晶振體和兩個低溫系數(shù)電容構(gòu)成10MHz 并聯(lián)振蕩電路。用轉(zhuǎn)換開關(guān)選擇10m s, 011s, 1s, 10s 四種閘門時間, 同時量程自動切換, 直接點亮LED。方案二:直接測頻法。系統(tǒng)采用可編程邏輯器件(PLD, 如A TV2500) 作為信號處理及系統(tǒng)控制核心, 完成包括計數(shù)、門控、顯示等一系列工作。該方案利用了PLD 的可編程和大規(guī)模集成的特點, 使電路

7、大為簡化, 但此題使用PLD 則不能充分發(fā)揮其特點及優(yōu)勢, 并且測量精度不夠高, 導(dǎo)致系統(tǒng)性能價格比降低、系統(tǒng)功能擴展受到限制。方案三:系統(tǒng)采用MCS251 系列單片機89C52 作為控制核心, 用比較器結(jié)合分頻送入單片機測量。(見圖1.1.2)電壓跟隨器濾波處 理電壓跟隨器分頻處理選擇開關(guān)CD4051單片機STC89C52LED顯示圖1.1.2 測頻原理框圖(方案三)由于單片機的計數(shù)頻率上限較低(12MHz 晶振時約500kHz) , 所以需對高頻被測信號進行硬件欲分頻處理, 89C52則完成運算、控制及顯示功能。由于使用了單片機, 使整個系統(tǒng)具有極為靈活的可編程性, 能方便地對系統(tǒng)進行功能

8、擴展與改進。以上方案均需使用小信號放大、整形通道電路來提高系統(tǒng)的測量精度和靈敏度。比較以上三種方案,顯然方案二要比方案一簡潔、新穎, 但從系統(tǒng)設(shè)計的指標(biāo)要求上看, 要實現(xiàn)頻率的測量范圍5Hz10KHz。要達到誤差1% 的目的, 而使用直接測頻的方法, 要達到這個測量精度,需要主門連續(xù)開啟1 000s, 由此可見, 直接測頻方法對低頻測量是不現(xiàn)實的, 而采用帶有運算器的單片機則可以很容易地解決這個問題, 實現(xiàn)課題要求。故選用方案三, 也就是采用74LS393將信號進行分頻處理后,再用CD4051將輸入信號送入ARM2131完成運算、控制及顯示功能。2. 總體方案設(shè)計根據(jù)設(shè)計的要求,進過仔細(xì)分析,

9、充分考慮各種因素,制定了整體的設(shè)計方案:系統(tǒng)采用MCS251 系列單片機89C52 作為控制核心,分測量輸入信號的頻率、幅度、極性三大模塊設(shè)計電路,測量時,將被測輸入信號經(jīng)過相應(yīng)處理后送給單片機,通過程序控制計數(shù)等,驅(qū)動LED數(shù)碼管顯示頻率值、顯示輸入信號幅值及極性。該頻率計采用測周期和測頻組合法實現(xiàn)對輸入信號的頻率測量提高了測量精度,用相應(yīng)比較器、芯片及分頻器輔助單片機系統(tǒng)完成所要求的功能。系統(tǒng)原理框圖如圖1.2.1所示。輸入信號單片機頻率測量電路幅值測量電路極性測量按鍵控制LED顯示圖1.2.1系統(tǒng)原理框圖二、主要單元模塊設(shè)計及分析1各單元模塊功能介紹及電路設(shè)計(1).測頻部分的原理設(shè)計本

10、設(shè)計要求自動判別輸入周期頻率為5HZ-10K信號, 擴展要求輸入信號頻率范圍上限達到20KHz。由于單片機的計數(shù)頻率上限較低(12MHz 晶振時,約500kHz) , 所以需對高頻被測信號進行硬件欲分頻處理,采用74LS393進行分頻處理后,再用CD4051將輸入信號送入核心控制器件單片機STC89C52完成運算、控制及顯示功能。為了提高頻率的測量精度,所以在信號輸入后首先設(shè)置電壓跟隨器以增大輸入阻抗,其后接電容進行對信號的濾波處理。將濾波后的信號接入電壓比較器,使輸入信號轉(zhuǎn)換為方波信號,從而方便對信號頻率的測量。電路原理圖如圖2.1.1所示。圖2.1.1測頻原理圖 (2).單片機系統(tǒng)及顯示部

11、分此部分主要由單片機控制LED數(shù)碼管顯示輸入信號特性的相應(yīng)單位,并設(shè)置二極管進一步進行實現(xiàn)輔助顯示功能。具體原理圖見圖2.1.4:圖2.1.4 單片機系統(tǒng)及顯示模塊(3)電源供電模塊(電路設(shè)計如圖2.1.5所示)圖2.1.5電源供電模塊圖2. 各單元模塊的聯(lián)接(見圖2.3.4所示)。輸入信號電壓跟隨器濾波處理檢波電路LM339電壓比較器測極74LS393分頻CD4051選擇開關(guān)電壓比較器ADC0804數(shù)模轉(zhuǎn)換單片機處理顯示模塊測頻部分測幅部分圖2.3.4各單元模塊的聯(lián)接圖三、軟件設(shè)計與分析1.總體流程圖變量的申明及初始化測頻測幅測級按鍵顯示開始圖3.1.1總體流程圖2.頻率計測頻部分(1)軟件

12、程序是在Multisim 8仿真配合下完成的, 圖3.2.1 頻率部分的仿真測試圖(2)頻率計測頻部分程序流程圖如圖3.1.3所示。開始計時測頻F計時計時測頻F計時Yes:F計數(shù)10k?Yes:分頻Yes:M=2F計數(shù)1k?No:M=M*2No:F=F(計數(shù))*MNo:F=F(計時)M=0?圖3.2.2測頻部分程序流程圖四試驗參考程序#include config.h/ P0.5口(MISO)為按鍵輸入腳#define KEY (1 5) /HC595片選信號#defineHC595(0x01)/10位段碼:0-9和uint8 const digitable11=0x3f,0x06,0x5b,

13、0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40; /*從右至左的位碼*/uint8 const selectable8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/*設(shè)置全局變量*/volatile uint32 k=0,n=0;volatile uint32 time_n=0;volatile uint32 i=0;/*j控制0.002s計數(shù),k控制按鍵和數(shù)碼管位碼,m控制暫停和啟動,n控制0.01s*/volatile uint32 fis=0,last=0;volatile uint32 set=3500;volati

14、le uint32 cap;volatile uint32 bujin=100;/秒表計數(shù)全局變量volatile uint8 sec1=0;volatile uint8 sec2=0;volatile uint8 min1=0;volatile uint8 min2=0;volatile uint8 hour1=0;volatile uint8 hour2=0;/BCD碼變化存儲數(shù)組uint8 DATA18;uint8 DATA28;uint8 DATA38;uint8 DATA48;/*中斷標(biāo)志*/uint8 T0flag=0; /按鍵按下位寄存器uint8 TK=0x09; /默認(rèn)為第一

15、頁uint8fanye = 1;/* 函數(shù)名稱:Timer0_Init()* 功能描述:TIMER0 初始化* 入口參數(shù):無* 出口參數(shù):無*/void Timer0_Init(void)T0TC = 0;T0PR = 0;T0MCR = 0x03;T0CCR = 0x05; /*當(dāng)CAP上升沿時發(fā)生捕獲*/T0MR0 = Fpclk/500;/*0.002s產(chǎn)生一次中斷*/T0TCR = 0x01;/* 函數(shù)名稱:IRQ_Timer0()* 功能描述:TIMER0 中斷服務(wù)程序* 入口參數(shù):無* 出口參數(shù):無*/void _irq IRQ_Timer0(void)/*如果產(chǎn)生中斷匹配*/if

16、(T0IR&0x01)!=0)T0IR = 0x01;T0flag=1;/*產(chǎn)生中斷標(biāo)志*/cap = Fpclk/(last-fis)/(n-1)*2;n=0;/*捕獲中斷*/else if(T0IR & 0x10)!=0)T0IR = 0x10;/*初始刻*/if(n=0)n=1;fis = T0CR0;elselast = T0CR0;n+;T0IR = 0x01;VICVectAddr = 0;/* 函數(shù)名稱:IRQ_Init0()* 功能描述:設(shè)置定時器0中斷IRQ* 入口參數(shù):無* 出口參數(shù):無*/void IRQ_Init0(void) VICIntSelect = VICInt

17、Select & (1 4);VICVectCntl0 = 0x20 | 0x04;VICVectAddr0 = (uint32)IRQ_Timer0;VICIntEnable |= 1 4;/* 函數(shù)名稱:Timer1Init()* 功能描述:設(shè)置定時器1初始化* 入口參數(shù):無* 出口參數(shù):無*/void Timer1Init(void)/定時器1初始化T1TCR = 0x02;/不設(shè)置時鐘分頻T1PR = 0;/設(shè)置T1MR1匹配后復(fù)位T1TCT1MCR = 0x02;/匹配翻轉(zhuǎn)T1EMR = (0x038);T1MCR = 0x02;/*設(shè)置PWM輸出的周期*/T1MR0 = Fpclk

18、/set;/*設(shè)置PWM1.2輸出占空比為75%,即高電平占0.75周期*/T1MR2 = T1MR0/4;/清除中斷標(biāo)志T1IR = 0x01;/啟動定時器1T1TCR = 0x01;/* 函數(shù)名稱:CONVBIT(uint32 set)* 功能描述:* 入口參數(shù):顯示的數(shù)的內(nèi)容(num),顯示內(nèi)容在數(shù)組中的位置* 出口參數(shù):無*/void CONVBIT(uint32 set)DATA17 = fanye; DATA16 = 10; DATA15 = set/100000; DATA14 = set%100000/10000; DATA13 = set%10000/1000; DATA12

19、 = set%1000/100; DATA11 = set%100/10; DATA10 = set%10;/* 函數(shù)名稱:BCD(uint32 cap)* 功能描述:* 入口參數(shù):顯示的數(shù)的內(nèi)容(num),顯示內(nèi)容在數(shù)組中的位置* 出口參數(shù):無*/void BCD(uint32 cap)DATA27 = fanye; DATA26 = 10; DATA25 = cap/100000; DATA24 = cap%100000/10000; DATA23 = cap%10000/1000; DATA22 = cap%1000/100; DATA21 = cap%100/10; DATA20 =

20、cap%10;/* 函數(shù)名稱:BUNJIN(uint32 set, uint32 cap)* 功能描述:* 入口參數(shù):顯示的數(shù)的內(nèi)容(num),顯示內(nèi)容在數(shù)組中的位置* 出口參數(shù):無*/void BUJIN(uint32 bujin)DATA37 = fanye; DATA36 = 10; DATA35 = bujin/100000; DATA34 = bujin%100000/10000; DATA33 = bujin%10000/1000; DATA32 = bujin%1000/100; DATA31 = bujin%100/10; DATA30 = bujin%10;/* 函數(shù)名稱:T

21、IME(uint8 hour1, uint8 hour2, uint8 sec1,uint8 sec2,uint8 min1,uint8 min2)* 功能描述:* 入口參數(shù):顯示的數(shù)的內(nèi)容(num),顯示內(nèi)容在數(shù)組中的位置* 出口參數(shù):無*/void TIME(uint8 sec1,uint8 sec2,uint8 min1,uint8 min2,uint8 hour1, uint8 hour2) DATA47 = hour2; DATA46 = hour1; DATA45 = 10; DATA44 = min2; DATA43 = min1; DATA42= 10; DATA41 = se

22、c2; DATA40= sec1;/* 函數(shù)名稱:MSPI_Init()* 函數(shù)功能:初始化SPI接口,設(shè)置為主機。* 入口參數(shù):無* 出口參數(shù):無*/void MSPI_Init(void) /選中p0.4,p0.5,p0.6; PINSEL0 &=(0xFF8); /將p0.4,p0.5,p0.6都設(shè)置為spi; PINSEL0 |=0x158; /時鐘計數(shù)寄存器,設(shè)置SPI頻率,F(xiàn)spi=Pclk/SPI_SPCCR;且SPI_SPCCR的值必須為偶數(shù),且大于8 SPI_SPCCR = 0x12; SPI_SPCR = (03)|/CPHA=0,數(shù)據(jù)在SCK的第一個跳變沿采樣 (14)|

23、/CPOL=1,時鐘為低電平有效 (15)|/設(shè)置為主機 (06)|/LSBF=0,數(shù)據(jù)傳輸MSB在先 (10;time_i-) for(time_j=50;time_j0;time_j-);/*函數(shù)名稱:main()主函數(shù)*函數(shù)功能:實現(xiàn)頻率計*入口參數(shù):無*出口參數(shù):無*/int main (void)/*選擇MAT1.2輸出*/PINSEL1 = (PINSEL1&(0x036)|(0x016);/接受頻率引腳設(shè)置PINSEL0 = (PINSEL0&(0x034)|(0x024);/設(shè)置片選信號GPIO輸出模式PINSEL0 &=(0x03);IO0DIR |=(0x01);/*鍵盤顯

24、示板的控制KEY*/ IO0DIR |=(0x017); /*初始化和中斷使能*/ Timer0_Init(); IRQ_Init0(); IRQEnable();Timer1Init();MSPI_Init();/頻率計主程序while(1) if(T0flag=1) T0flag=0; time_n+; /*控制電子時鐘*/ if(time_n=500) time_n=0; sec1+; if(sec1=10) sec1=0; sec2+;if(6 = sec2) sec2=0; min1+; /*滿1min*/ if(10=min1) min1=0; min2+; if(6=min2)

25、min2=0; hour1+; if(10=hour1)&(hour22) hour2=0; if(4=hour1)&(hour2=2) hour1=0; hour2+; if(hour22) hour2=0; /*控制翻頁顯示*/ if(fanye=1) /*0.002s刷新一次數(shù)碼管顯示*/CONVBIT(set);MSPI_SendData(digitableDATA1k);/*向鍵盤顯示板發(fā)送段碼*/ MSPI_SendData(selectablek);/*向鍵盤顯示板發(fā)送位碼*/ if(fanye=2)BCD(cap);MSPI_SendData(digitableDATA2k);

26、/*向鍵盤顯示板發(fā)送段碼*/ MSPI_SendData(selectablek);/*向鍵盤顯示板發(fā)送位碼*/if(fanye=3)BUJIN(bujin);MSPI_SendData(digitableDATA3k);/*向鍵盤顯示板發(fā)送段碼*/ MSPI_SendData(selectablek);/*向鍵盤顯示板發(fā)送位碼*/if(fanye=4)TIME(sec1,sec2,min1,min2,hour1, hour2);MSPI_SendData(digitableDATA4k);/*向鍵盤顯示板發(fā)送段碼*/ MSPI_SendData(selectablek);/*向鍵盤顯示板發(fā)送

27、位碼*/if(7 = k) k = 0; else k+; /*判斷按鍵是否按下,并且響應(yīng)相應(yīng)的功能*/ if(IO0PIN&KEY) = 0) delays(); if(IO0PIN&KEY) = 0) /* 確實有鍵按下,記下鍵號給TK */ TK=k; /*高電平進入,有二種情況,1就是沒鍵按下,2就是有鍵按下但彈起*/ else if(IO0PIN&KEY)!= 0) /如果有鍵松開進入 if(TK=k) /如果該鍵曾經(jīng)按下進入 switch(TK) /進行鍵盤處理/*按下按鍵1*/case 1: fanye+; if(fanye4) fanye=1; break; /*按下按鍵2,修

28、改步進值,以100增加*/ case 2: bujin = bujin + 100;if(bujin 10000)bujin=100; break; /*按下按鍵3,修改步進值,以100減少*/ case 3: bujin = bujin - 100;if(bujin 100)bujin=10000; break; /*按下按鍵4*/ case 4: set = set+bujin; T1MR0 = Fpclk/set;/*設(shè)置PWM輸出的周期*/ T1MR2 = T1MR0/4;/*設(shè)置PWM1.2輸出占空比為75%,即高電平占0.75周期*/ break; TK=0x09; /將TK置于9

29、 非09 return 0;五、測試儀器與系統(tǒng)測試結(jié)果分析1.測試儀器直流穩(wěn)壓電源、DDS函數(shù)信號發(fā)生器、數(shù)字示波器、多功能萬用板。2.測試方法(1)分部與聯(lián)調(diào)先對設(shè)計的硬件進行調(diào)試,達到預(yù)期硬件效果;軟件模塊行進仿真測試,使其達到預(yù)期效果;然后將軟件載入硬件之中進行設(shè)計的聯(lián)調(diào)。(2)功能測試在5V電源供電情況下,用DDS輸入信號,示波器監(jiān)測顯示輸出波形,在波形不失真前提下,對輸入信號的頻率 (3)性能測試在功能測試的基礎(chǔ)上,對頻率計的性能進行測試,以提高其測量精度。3. 誤差分析:(1)軟件誤差分析:頻率計算公式:f=n/t;其中f代表頻率,其中n代表下降沿個數(shù),t代表時間。低頻采用計時(即固定n,采集時間t);高頻采用計數(shù)(即固定時間t,采集n)。在低頻時由于t并不是連續(xù)的即由于我們采用的最小10ms計時,所以出來的時間都只是10ms的整數(shù)倍。而在高頻時采用的中斷計數(shù),由于頻率f很高。中斷次數(shù)很頻繁,從而導(dǎo)致在一個執(zhí)行周期內(nèi)有多次中斷,從而使n大于真正的值。這也是導(dǎo)致頻率超過16khz

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論