![#基于CPLD和單片機的頻率計設(shè)計_第1頁](http://file4.renrendoc.com/view/c4aea084cd00d1257e4c1540fccab7c5/c4aea084cd00d1257e4c1540fccab7c51.gif)
![#基于CPLD和單片機的頻率計設(shè)計_第2頁](http://file4.renrendoc.com/view/c4aea084cd00d1257e4c1540fccab7c5/c4aea084cd00d1257e4c1540fccab7c52.gif)
![#基于CPLD和單片機的頻率計設(shè)計_第3頁](http://file4.renrendoc.com/view/c4aea084cd00d1257e4c1540fccab7c5/c4aea084cd00d1257e4c1540fccab7c53.gif)
![#基于CPLD和單片機的頻率計設(shè)計_第4頁](http://file4.renrendoc.com/view/c4aea084cd00d1257e4c1540fccab7c5/c4aea084cd00d1257e4c1540fccab7c54.gif)
![#基于CPLD和單片機的頻率計設(shè)計_第5頁](http://file4.renrendoc.com/view/c4aea084cd00d1257e4c1540fccab7c5/c4aea084cd00d1257e4c1540fccab7c55.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于 CPLD和單片機的頻率計設(shè)計引言:隨著電子技術(shù)與計算機技術(shù)的不斷發(fā)展, 以單片機為核心的測量控制系統(tǒng)層 出不窮。在被測信號中, 較多的是模擬和數(shù)字開關(guān)信號, 而且還經(jīng)常遇到以頻率 為參數(shù)的被測信號, 例如流量、 轉(zhuǎn)速、晶體壓力傳感器以及經(jīng)過參變量一頻率轉(zhuǎn) 換后的信號等。本次試驗采用測頻法,通過方案優(yōu)化,達到了較高的精度。該測頻系統(tǒng)的設(shè)計采用 AT89C51 單片機和具有內(nèi)部結(jié)構(gòu)重組、現(xiàn)場可編程 的 CPLD 芯片相結(jié)合起來,實現(xiàn)了對 IHz10MHz 信號頻率的高精度測量。系統(tǒng) 的整體穩(wěn)定性和精度較高,達到了測頻對精準(zhǔn)度的要求。正文: 一、實驗設(shè)計原理1.1 實驗基本被測框架 信號信號放
2、大和整形測頻電路顯示圖一傳統(tǒng)的測頻原理是在一定的時間間隔 T 內(nèi)測某個周期信號的重復(fù)變化次數(shù) N,其頻率可表示為 f=N/T ,其原理框圖如圖 2 所示。這種測量方式的精度隨被 測信號頻率的下降而降低。圖二 關(guān)于誤差的分析將在下文中闡述。1.2 本實驗采用等精度測頻的原理為:首先, Clock 即標(biāo)準(zhǔn)時鐘信號進過分頻產(chǎn)生周期為1.25s,占空比為 80%的閘門信號, 從而閘門寬度為 1s,將分頻產(chǎn)生的信號和被測信號相與的結(jié)果即為計數(shù)器的技術(shù)時鐘信號, 在這 1s 的時間寬度內(nèi)技術(shù)到的結(jié)果就是被測信號的頻率值,通過多路選擇器,有單片機發(fā) 送地址,每次四位將數(shù)據(jù)傳送給單片機, 經(jīng)過單片機的代碼轉(zhuǎn)換
3、, 使用 7 個 8 段數(shù)碼管顯示。 具體原理如圖三所示。1.3 CPLD 模塊邏輯設(shè)計1.3.1 分頻模塊的實現(xiàn)分頻器采用 25 位的二進制計數(shù)器, 下圖為在 ISE 仿真環(huán)境下的閘門輸出。圖三產(chǎn)生周期 1.25s,占空比 80%的寬度為 1s 的閘門信號圖四1.3.2 計數(shù)器 計數(shù)器采用 28 的 BCD 碼計數(shù),局部計數(shù)方式如下: if(en=1b1)&(clr=1b0)&(q34b1001)beginq3 =q3+4b0001;end else begin q3=4b0000; 下圖為在 ISE 仿真環(huán)境下的計數(shù)結(jié)果:圖五 鑒于數(shù)據(jù)較大,所以,我們仿真時候只選取了 12 位數(shù)據(jù),結(jié)果是
4、正確的。 1.3.2 多路選擇器 有單片機提供 3 位地址信號,每次送四位數(shù)據(jù)給單片機,傳送7次數(shù)據(jù)即可。1.4 單片機主控模塊P1 口用來作為數(shù)碼管的 7 個位選信號;P2 口用來向單片機提供段選碼;(3)Latch :即與案例框圖中由分頻鏈給單片機的時鐘信號,為了實現(xiàn)單片機與 CPLD 工作的同步而做的;在 Latch 信號為高電平期間單片機取數(shù)據(jù),而此時, CPLD 由于閘門為低電 平使得計數(shù)停止;在 Latch 為低電平時,單片機部取數(shù),而 CPLD 在計數(shù)。從而保證兩者的 正常工作。(4)P0 口的低四位用來取數(shù), P3 口地高三位用來傳送地址;(5)單片機采用定時中斷顯示,每 1m
5、s 改變一位,實現(xiàn)動態(tài)顯示。 二、測頻精度分析圖六 計數(shù)法測頻誤差示意圖說明: f x = NT由誤差合成公式有fx N TfxNT上式中第一項為量化誤差設(shè)主門的開啟時間為,是由于被測信號與門控閘門信號不相關(guān)引起的。T , 被測信號周期為Tx ,主門開啟時刻至下一個計數(shù)脈沖的前沿為t1, 主門關(guān)閉時刻至下一個計數(shù)脈沖的前沿為t2 ,如上圖所示。11。N Tfx其最大誤差為 1 個量化單位 ,則最大量化誤差的相對值為由式得到 ,被測頻率越高 ,閘門時間越長 ,則量化誤差越小 . 但閘門時間太長 ,則降低測量速度 且受到顯示位數(shù)的限制。三、實驗結(jié)果 在試驗中,頻率計在 1HZ 到 1KHZ 段的誤
6、差很小,幾乎可儀忽略不計,在高頻時的進度也很好,如下表示:信號/HZ33355577710k100k500k1M5M9M測量值/HZ33355577710024100K500012100013450001549000223附錄: mcu 部分#include sbit Dig1 = P10;sbit Dig2 = P11;sbit Dig3 = P12;sbit Dig4 = P13;sbit Dig5 = P14;sbit Dig6 = P15;sbit Dig7 = P16;sbit Latch = P30; /latch insbit Clr_data = P34;sbit Dig_se
7、l2 = P35;sbit Dig_sel1 = P36;sbit Dig_sel0 = P37;#define T0_High_Init 0 xfa;#define T0_Low_Init 0 x00;unsigned int Counter;unsigned char Digit1,Digit2,Digit3,Digit4,Digit5,Digit6,Digit7;/字形表int Get_7_Segment160 x7E,0 x30,0 x6D,0 x79,0 x33,0 x5B,0 x5F,0 x70,0 x7F,0 x7B,0 x77,0 x1f,0 x4e,0 x3d,0 x4f,0
8、 x47; unsigned char indata;/主函數(shù)/初始化函數(shù)void Initial(void)Counter = 0;TMOD = 0 x11;/定時器工作方式TH0 = T0_High_Init;TL0 = T0_Low_Init;/ 設(shè)置定時器初值TR0 = 1;/啟動定時器ET0 = 1;/允許定時器中斷EA = 1;/開中斷/延時void delay()int ti;for(ti=0;ti10;ti+)/判斷 Latch 是否為高電平int latch_high(void)int reci;/ 返回值if(Latch)delay();if(Latch) reci = 1
9、;elsereci = 0;elsereci = 0;return reci;/判斷 Latch 是否為低電平int latch_low(void)int reci;/ 返回值if(!Latch)delay();if(!Latch)reci = 1;elsereci = 0;elsereci = 0;return reci;void get_data(void)Dig_sel2 = 0;Dig_sel1 = 0;Dig_sel0 = 0;delay(); indata = P0;Digit7 = indata & 0 x0f;Dig_sel0 = 1;delay();indata = P0;D
10、igit6 = indata & 0 x0f;Dig_sel1 = 1;Dig_sel0 = 0; delay();indata = P0;Digit5 = indata & 0 x0f;Dig_sel0 = 1; delay(); indata = P0;Digit4 = indata & 0 x0f;/*Dig_sel2 = 1;Dig_sel1 = 0;Dig_sel0 = 0; delay();indata = P0;Digit3 = indata & 0 x0f;Dig_sel0 = 1; delay(); indata = P0;Digit2 = indata & 0 x0f;Di
11、g_sel1 = 1;Dig_sel0 = 0; delay(); indata = P0;Digit1 = indata & 0 x0f;/主函數(shù)void main()Initial();while( 1 )while( latch_high() ); get_data();Clr_data = 0; delay();Clr_data = 1; while( latch_low() );/中斷/顯示void Display_Digit(unsigned int Digit_Selected)if( Digit_Selected = 1 )Dig7 = 1;P2 = Get_7_Segment
12、Digit1;Dig1 = 0;if( Digit_Selected = 2 )Dig1 = 1;P2 = Get_7_SegmentDigit2;Dig2 = 0;if( Digit_Selected = 3 )Dig2 = 1;P2 = Get_7_SegmentDigit3;Dig3 = 0;if( Digit_Selected = 4 )Dig3 = 1;P2 = Get_7_SegmentDigit4;Dig4 = 0;if( Digit_Selected = 5 )Dig4 = 1;P2 = Get_7_SegmentDigit5;Dig5 = 0;if( Digit_Select
13、ed = 6 )Dig5 = 1;P2 = Get_7_SegmentDigit6;Dig6 = 0;if( Digit_Selected = 7 )Dig6 = 1;P2 = Get_7_SegmentDigit7;Dig7 = 0; /中斷處理函數(shù) void display(void) interrupt 1 ET0 = 0;TR0 = 0;TH0 = T0_High_Init;TL0 = T0_Low_Init;/ 重裝定時器初值TR0 = 1;if( +Counter = 8 ) Counter = 1;Display_Digit(Counter); / 顯示ET0 = 1; Cpld
14、 部分 module fcounter(clk, clr, selector, single, gate, data);input clk;input clr; input 2:0selector; input single; output gate; output 3:0data;reg 3:0data; wire gate;/輸出數(shù)據(jù)/時鐘閘門reg 24:0gcount; reg 27:0count; reg a,b,c,d,e,f,g; wire clock; wire ssingle; assign gate=clock; always begincase (selector)3b0
15、00: data=count3:0; 3b001: data=count7:4; 3b010: data=count11:8; 3b011: data=count15:12; 3b100: data=count19:16; 3b101: data=count23:20; 3b110: data=count27:24; 3b111: ;endcase end always(posedge clk)begin if(gcount24:0=25h01e8480)gcount=25h185ee00;elsegcount=gcount+1;endassign clock=gcount24;assign
16、ssingle=single&clock; / 有效信號 always(negedge ssingle or negedge clr)/計數(shù)beginif(clr=0) count=0;else if(count3:0=4h9) beginif(count7:4=4h9)begin if(count11:8=4h9) beginif(count15:12=4h9) beginif(count19:16=4h9) beginif(count23:20=4h9) beginif(count27:24=4h9) count27:24=0;else count27:24=count27:24+1; count23:20=0;endelse
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年企業(yè)暫時性工作合同協(xié)議
- 2025年離婚協(xié)議財產(chǎn)保護策劃與實施策略
- 2025年體育場館管理服務(wù)合同
- 2025年獵頭項目申請報告
- 2025年高精度二維伺服系統(tǒng)項目規(guī)劃申請報告
- 2025年住宅租賃協(xié)議法律規(guī)范
- 2025年中國內(nèi)地建筑工程合同管理全書
- 2025年企業(yè)團隊建設(shè)培訓(xùn)費用預(yù)算協(xié)議樣本
- 2025年公司租用辦公地點合同樣本
- 2025年典當(dāng)行經(jīng)營許可協(xié)議書
- YY/T 0729.2-2009組織粘合劑粘接性能試驗方法第2部分:T-剝離拉伸承載強度
- GB/T 11379-2008金屬覆蓋層工程用鉻電鍍層
- 移出經(jīng)營異常名錄申請表
- 2023年延長石油集團企業(yè)文化知識試題
- 堤防工程重點難點
- 象數(shù)療法好療效
- A320系列飛行訓(xùn)練課程:電子飛行儀表系統(tǒng)概況
- 黃土地質(zhì)災(zāi)害類型及其危害性評估
- 交際德語教程第二版A1Studio[21] 課后習(xí)題參考答案
- 部編版道法三下知識點匯總【需要背誦】
- 氣割、電氣焊作業(yè)的應(yīng)急救援預(yù)案
評論
0/150
提交評論