基于51單片機(jī)的頻率計(jì)的設(shè)計(jì)_第1頁(yè)
基于51單片機(jī)的頻率計(jì)的設(shè)計(jì)_第2頁(yè)
基于51單片機(jī)的頻率計(jì)的設(shè)計(jì)_第3頁(yè)
基于51單片機(jī)的頻率計(jì)的設(shè)計(jì)_第4頁(yè)
基于51單片機(jī)的頻率計(jì)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于51單片機(jī)的頻率計(jì)的設(shè)計(jì)指導(dǎo)老師:曹新亮通信12級(jí)王妍靜一.方案的設(shè)計(jì)與比較1.方案一:本設(shè)計(jì)是基于MCS-51單片機(jī)的頻率計(jì)。被測(cè)信號(hào)經(jīng)過(guò)信號(hào)轉(zhuǎn)換電路從而將其轉(zhuǎn)換成同頻率的方波信號(hào),當(dāng)頻率過(guò)大時(shí)將進(jìn)行分頻處理,利用單片機(jī)控制數(shù)據(jù)選擇模塊進(jìn)行數(shù)據(jù)選擇,最終將結(jié)果顯示在1602液晶顯示屏上2.方案二:本方案采用單片機(jī)程序處理輸入信號(hào)并且將結(jié)果直接送往液晶顯示,為了提高系統(tǒng)的穩(wěn)定性,輸入信號(hào)前進(jìn)行放大整形,在通過(guò)A/D轉(zhuǎn)換器輸入單片機(jī)系統(tǒng),采用這種方法可大大提高測(cè)試頻率的精度和靈活性,并且能極大的減少外部干擾,采用VDHL編程設(shè)計(jì)實(shí)現(xiàn)的數(shù)字頻率計(jì),除被測(cè)信號(hào)的整形部分、鍵輸入部分和數(shù)碼顯示部分

2、以外,其余全部在一片F(xiàn)PGA芯片上實(shí)現(xiàn),整個(gè)系統(tǒng)非常精簡(jiǎn),而且具有靈活的現(xiàn)場(chǎng)可更改性。3.方案三:采用頻率計(jì)專用模塊,即大規(guī)模集成電路將計(jì)數(shù)器、鎖存器、譯碼、位和段驅(qū)動(dòng),量程及小數(shù)點(diǎn)選擇等電路集成在一塊芯片中,該方案在技術(shù)上是可行的,可以簡(jiǎn)化電路的設(shè)計(jì),當(dāng)對(duì)于設(shè)計(jì)要求中的某些指標(biāo),采用專用模塊來(lái)完成比較困難,即擴(kuò)展極為不便。 以上三種方案比較:第一種方案具有設(shè)計(jì)復(fù)雜度小、電路簡(jiǎn)潔、功能實(shí)用且成本低廉等特點(diǎn),其穩(wěn)定性較好基本能滿足設(shè)計(jì)要求。方案二采用單片機(jī)處理能較高要求,但成本提高且設(shè)計(jì)復(fù)雜。方案三采用專用頻率計(jì)設(shè)計(jì)模塊固然設(shè)計(jì)簡(jiǎn)單且穩(wěn)定但系統(tǒng)可擴(kuò)展性能較差。 綜上所述,本課題采用第一種設(shè)計(jì)方案

3、。 二.設(shè)計(jì)原理與總體方案 測(cè)量一個(gè)信號(hào)的頻率有兩種方法:第一種是計(jì)數(shù)法,用基準(zhǔn)信號(hào)去測(cè)量被測(cè)信號(hào)的高電平持續(xù)的時(shí)間,然后轉(zhuǎn)換成被測(cè)信號(hào)的頻率。第二種是計(jì)時(shí)法,計(jì)算在基準(zhǔn)信號(hào)高電平期間通過(guò)的被測(cè)信號(hào)個(gè)數(shù)。 根據(jù)設(shè)計(jì)要求測(cè)量10HZ100MHZ的正弦波信號(hào),首先要將正弦信號(hào)通過(guò)過(guò)零比較轉(zhuǎn)換成方波信號(hào)。如果用第一種方法,當(dāng)信號(hào)頻率超過(guò)1KHZ的時(shí)候測(cè)量精度將超出測(cè)量極限要求,所以當(dāng)被測(cè)信號(hào)的頻率高于1KHZ的時(shí)候需要將被測(cè)信號(hào)進(jìn)行分頻處理。如果被測(cè)信號(hào)頻率很高需要將被測(cè)信號(hào)進(jìn)行多次分頻直到達(dá)到設(shè)計(jì)的精度要求。根據(jù)設(shè)計(jì)要求用單片機(jī)的內(nèi)部定時(shí)器0產(chǎn)生基準(zhǔn)信號(hào),由INTO輸入被測(cè)信號(hào),通過(guò)定時(shí)方式計(jì)算被

4、測(cè)信號(hào)的高電平持續(xù)時(shí)間。并通過(guò)單片機(jī)計(jì)算得出結(jié)果,最后由1062液晶顯示器顯示測(cè)量結(jié)果。 頻率計(jì)的系統(tǒng)設(shè)計(jì)框架如下圖所示 AT89C51液晶顯示被測(cè)信號(hào)信 號(hào) 轉(zhuǎn) 換(過(guò)零比較)分頻處理數(shù) 據(jù) 選 擇器三.硬件設(shè)計(jì) 硬件電路主要分為信號(hào)轉(zhuǎn)換電路、分頻電路、數(shù)據(jù)選擇電路、單片機(jī)系統(tǒng)和顯示電路五部分。其總體電路圖如下圖所示 3.1 電平轉(zhuǎn)換電路:電平轉(zhuǎn)換電路:要將正弦信號(hào)轉(zhuǎn)換成方波信號(hào)可以用過(guò)零比較電路實(shí)現(xiàn)。正弦信號(hào)通過(guò)LM833N與零電平比較,電壓大于零的時(shí)候輸出LM833N的正電源+5V,電壓小于零的時(shí)候輸出負(fù)電源0V。具體電路如下圖所示 3.2 分頻電路:分頻電路:分頻電路采用十進(jìn)制的計(jì)數(shù)器

5、74HC4017來(lái)分頻,當(dāng)被測(cè)信號(hào)脈沖個(gè)數(shù)達(dá)到10個(gè)時(shí)74HC4017產(chǎn)生溢出,C0端輸出頻率為輸入頻率的1/10,達(dá)到十分頻的作用。如果當(dāng)頻率很高時(shí)需要多次分頻只需將多片74HC4017級(jí)聯(lián)就可以了74HC4017時(shí)序圖如下圖所示系統(tǒng)分頻電路如下圖所示 3.3數(shù)據(jù)選擇電路:數(shù)據(jù)選擇電路: 根據(jù)設(shè)計(jì)要求,要根據(jù)計(jì)數(shù)脈沖個(gè)數(shù)來(lái)選擇分頻次數(shù),可以用74151來(lái)選擇分頻次數(shù),74151的選擇控制信號(hào)由單片機(jī)的I/O口來(lái)控制。數(shù)據(jù)選擇電路如下圖所示。3.4單片機(jī)系統(tǒng):?jiǎn)纹瑱C(jī)系統(tǒng): 單片機(jī)采用AT89C51,采用12MHZ的晶振頻率。單片機(jī)的P3.2口接被處理后的被測(cè)信號(hào),P0口接液晶顯示器的數(shù)據(jù)輸入端

6、,ALE,RD,WR,P0.0,P0.1通過(guò)外接控制電路接液晶顯示器的控制端。單片機(jī)系統(tǒng)的電路如下圖所示。3.5顯示電路:顯示電路: 顯示電路由1602組成,其電路如下圖所示四. 軟件設(shè)計(jì):頻率計(jì)的軟件設(shè)計(jì)主要由主程序、分頻選擇程序、液晶顯示程序組成。 4.1 頻率計(jì)的算法設(shè)計(jì):頻率計(jì)的算法設(shè)計(jì):根據(jù)設(shè)計(jì)要求頻率范圍是10HZ100MHZ,當(dāng)頻率為10HZ時(shí),T=100000us,高電平為50000us,0.1%的誤差為100us,由單片機(jī)產(chǎn)生的基準(zhǔn)頻率為1MHZ,T0=1us,最大誤差為1us,計(jì)數(shù)個(gè)數(shù)為50000(方式1),滿足設(shè)計(jì)要求。當(dāng)頻率增加到1KHZ時(shí),產(chǎn)生的誤差剛剛能達(dá)到設(shè)計(jì)要求

7、,這時(shí)計(jì)數(shù)個(gè)數(shù)為500。當(dāng)頻率大于1KHZ時(shí)(即計(jì)數(shù)個(gè)數(shù)小于500)就需要將被測(cè)頻率分頻后再測(cè)量,如當(dāng)頻率為10KHZ時(shí),先計(jì)算計(jì)得的脈沖數(shù)等于50,小于了500,所以將10KHZ的信號(hào)10分頻得到1KHZ,這時(shí)就滿足要求了。最后得到的頻率 其中n為計(jì)得的脈沖個(gè)數(shù),i為分頻的次數(shù)。inF1021064.2主程序主程序主程序首先對(duì)系統(tǒng)環(huán)境初始化,設(shè)置分頻選通信號(hào)P2=0 x00,選通0通道。設(shè)置T0工作方式,采用硬件啟動(dòng)方式,GATE=1,當(dāng)INT0和TR0同時(shí)為1時(shí)啟動(dòng)計(jì)時(shí),計(jì)數(shù)方式為方式1(16位),TH0和TL0都置零。當(dāng)外部中斷INT0=1時(shí)等待,當(dāng)外部中斷為0時(shí)啟動(dòng)T0即TR0=1,當(dāng)

8、INT0一直為0時(shí)就等待,一旦INT0=1就啟動(dòng)計(jì)數(shù)同時(shí)等待,當(dāng)INT0為0時(shí)跳出并關(guān)閉T0即TR0=0。這樣就計(jì)得高電平期間基準(zhǔn)脈沖個(gè)數(shù),當(dāng)脈沖個(gè)數(shù)小于500時(shí)就選擇10分頻信號(hào),即P2自加1,同時(shí)記錄分頻一次;如果分頻后脈沖個(gè)數(shù)還小于500則再次分頻,直到計(jì)數(shù)個(gè)數(shù)大于500 其計(jì)數(shù)工作示意圖如下圖所示被測(cè)脈沖INT0基準(zhǔn)脈沖T0等待啟 動(dòng) T 0 ,TR0=1啟動(dòng)計(jì)數(shù)停止計(jì)數(shù),讀出計(jì)數(shù)個(gè)數(shù)N個(gè)脈沖主程序流程圖如下圖所示開始初始化數(shù)據(jù)選擇信號(hào)系統(tǒng)初始化讀出計(jì)數(shù)個(gè)數(shù)n其計(jì)數(shù)工作示意圖如下圖所示 n=500變換數(shù)據(jù)選擇通道,計(jì)算分頻次數(shù)iY顯示結(jié)果N主程序:主程序:#include /頭文件#i

9、nclude#include#includesbit p32=P32; /P32作為信號(hào)輸入端main() unsigned int period,k,j,i=0; / period,為定時(shí)器計(jì)數(shù)總值,i是分頻次數(shù) float f,m; /浮點(diǎn)變量 char buff30; init_LCD(); /初始化LCD P2=0 x00; /選通D0路信號(hào) while(1) TMOD=0X09; /配置定時(shí)器0為工作方式1,即16位定時(shí)器,并硬件啟動(dòng) TH0=0; /裝定時(shí)器初值為0 TL0=0; while(p32=1); /執(zhí)行完這條語(yǔ)句后信號(hào)電平狀態(tài)為低電平 TR0=1; /使能TR0; wh

10、ile(p32=0); /等待信號(hào)高電平到來(lái),如果高電平來(lái)了則定時(shí)器開始計(jì)時(shí),如果沒來(lái),則繼續(xù)循環(huán)等待。 while(p32=1); /等待信號(hào)高電平結(jié)束后,如果低電平,則定時(shí)器停止計(jì)時(shí) TR0=0; /關(guān)閉定時(shí)器 period=TH0*256+TL0; /計(jì)算定時(shí)器裝的總值 while(period=500) /*判斷是否分頻及計(jì)算分頻次數(shù)*/ 即頻率是否大于1KHZ P2+;i+;period=period*10; if(i=6)P2=0 x00;break; k=pow(10,i); /* 10的i次方*/ f=(1000000.0/(2*period)*k; if(f1000) spr

11、intf(buff,f=%5.2fHZ,f); else m=f/1000.0; sprintf(buff,f=%5.2fKHZ,m); lcdprintf(0,0,buff); 顯示子程序:顯示子程序:#include char code CGRAM_TABLE=0 x08,0 x0F,0 x12,0 x0F,0 x0A,0 x1F,0 x02,0 x02,/ ;年0 x0F,0 x09,0 x0F,0 x09,0 x0F,0 x09,0 x11,0 x00,/;月0 x0F,0 x09,0 x09,0 x0F,0 x0,0 x09,0 x0F,0 x00; /;日void delay()

12、/延時(shí)子程序 unsigned char i; for(i=0;i250;i+);void init_LCD() /初始化LCD unsigned char i; WR_COM=0 x38; /設(shè)置為8位數(shù)據(jù)總線,16*2,5*7點(diǎn)陣 for(i=0;i100;i+) delay(); WR_COM=0 x01; /清屏幕 for(i=0;i50;i+) delay(); WR_COM=0 x06; /光標(biāo)移動(dòng),顯示區(qū)不移動(dòng),讀寫操作后AC加1 for(i=0;i50;i+) delay(); WR_COM=0 x0c; for(i=0;i50;i+) delay();/* /void init_c

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論