頻率計實驗報告_第1頁
頻率計實驗報告_第2頁
頻率計實驗報告_第3頁
頻率計實驗報告_第4頁
頻率計實驗報告_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、頻率計實驗報告一、 實驗?zāi)康?掌握單片機、數(shù)字譯碼和顯示單元的組成和工作原理 學(xué)習(xí)及演示任務(wù),增強勸阻實驗創(chuàng)新能力二、實驗要求1、被測頻率fx小于110Hz采用測周法,顯示頻率XXX。XXX;fx大于110Hz采用測頻法,顯示頻率XXXXXX;2、可利用鍵盤分段測量和自動分段測量;3、可完成單脈沖測量,輸入脈沖寬度范圍是100微秒-0.1秒;三、設(shè)計目的三、基本原理所謂“頻率”,就是周期性信號在單位時間(1s)內(nèi)變化的次數(shù)。若在一定的時間間隔T內(nèi)測得這個周期性信號的重復(fù)變化次數(shù)N,則其頻率可表示為f=T/N。其中脈沖形成電路的作用是將被測信號變成脈沖信號。其重復(fù)頻率等于被測頻率f,時間基準(zhǔn)信號

2、發(fā)生器提供基準(zhǔn)的時間脈沖信號。若其周期為1S,則門控電路的輸出信號持續(xù)時間也等于1S,門閘電路由標(biāo)準(zhǔn)秒信號進(jìn)行控制。當(dāng)秒信號來到時,門閘開通,被測脈沖信號通過閘門送到計數(shù)譯碼顯示電路。秒信號結(jié)束時,門閘關(guān)斷。計數(shù)器停止計數(shù),由于計數(shù)器計得的脈沖數(shù)N是在1S時間內(nèi)的累計數(shù),所以被測頻率等于N。四,實驗設(shè)計分析 使用數(shù)碼管顯示 控制最簡單,根據(jù)設(shè)計要求顯示格式XXXX??梢詼?zhǔn)確的顯示頻率大小,又由于數(shù)碼管簡單便宜且滿足設(shè)計要求,所以選著數(shù)碼管顯示比較合理。選擇AT89C51作為單片機芯片,選用兩位8段共陰極LED數(shù)碼管實現(xiàn)頻率顯示,利用8279作I/O口擴展,連接數(shù)碼管和鍵盤。通過定時器1計時方式

3、,定時器0計數(shù)方式,定時每秒鐘對外部頻率計數(shù),單片機的時鐘一般需要多相時鐘,所以時鐘電路由振蕩器和分頻器組成。 AT89C51內(nèi)部有一個用于構(gòu)成振蕩器的可控高增益反向放大器。兩個引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。在片外跨接一晶振和兩個匹配電容C1、C2如圖4.3所示,就構(gòu)成一個自激振蕩器。振蕩頻率根據(jù)實際要求的工作速度,從幾百千赫至24MHz可適當(dāng)選取某一頻率。匹配電容C1、C2要根據(jù)石英晶體振蕩器的要求選取。當(dāng)晶振頻率為12MHz時,C1C2一般選30pF左右。上述電路是靠AT89C51單片機內(nèi)部電路產(chǎn)生振蕩的。也可以由外部振蕩器或時鐘直接驅(qū)動AT89C51。本設(shè)計采

4、用內(nèi)部電路產(chǎn)生振蕩。 系統(tǒng)原理框圖選擇AT89C51作為單片機芯片,選用兩位8段共陰極LED數(shù)碼管實現(xiàn)頻率顯示,利用8279作I/O口擴展,連接數(shù)碼管和鍵盤。通過定時器1計時方式,定時器0計數(shù)方式,定時每秒鐘對外部頻率計數(shù),把計數(shù)值通過8279芯片在數(shù)碼管上顯示。如圖4.1所示。四位位數(shù)碼管8279P3 P2P3.48051數(shù)據(jù)圖4.1 系統(tǒng)原理框圖啟動鍵晶振電路復(fù)位電路 時鐘電路和復(fù)位電路1.時鐘電路單片機的時鐘一般需要多相時鐘,所以時鐘電路由振蕩器和分頻器組成。 AT89s52內(nèi)部有一個用于構(gòu)成振蕩器的可控高增益反向放大器。兩個引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。在片

5、外跨接一晶振和兩個匹配電容C1、C2如圖4.3所示,就構(gòu)成一個自激振蕩器。振蕩頻率根據(jù)實際要求的工作速度,從幾百千赫至24MHz可適當(dāng)選取某一頻率。匹配電容C1、C2要根據(jù)石英晶體振蕩器的要求選取。當(dāng)晶振頻率為12MHz時,C1C2一般選30pF左右。上述電路是靠AT89s52單片機內(nèi)部電路產(chǎn)生振蕩的。也可以由外部振蕩器或時鐘直接驅(qū)動AT89s52。本設(shè)計采用內(nèi)部電路產(chǎn)生振蕩。五,實驗要求實現(xiàn) 基本電路設(shè)計單片機最小系統(tǒng)模塊包括主控單元和基本外圍電路,具體如圖3-2所示。采用外部5V電源, AT89C51為主控芯片,P0口采用74LS373驅(qū)動,采用11.0592HZ晶振,手動高電平復(fù)位方式。

6、通過P3.4采集外部輸入頻率,實時掃描鍵盤輸入,控制輸出采集頻率。 數(shù)碼管顯示電路設(shè)計數(shù)碼管顯示電路由4位八段共陰數(shù)碼及8279芯片及74HS138芯片組成,共陰數(shù)碼管在應(yīng)用時將公共極COM接到地,當(dāng)某一字段發(fā)光二極管的陰極為高電平時,相應(yīng)字段就點亮。當(dāng)某一字段的陰極為低電平時,相應(yīng)字段就不亮。8279是專用鍵盤、顯示接口芯片,單個芯片就能完成鍵盤輸入和LED顯示控制兩種功能??梢詾?4鍵的接觸方式按鍵陣列提供掃描接口,能自動消除按鍵抖動以及n鍵同時按下的保護。通過數(shù)碼管顯示,可以簡單而準(zhǔn)確的實現(xiàn)顯示頻率。采用芯片不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功

7、耗更低。 頻率發(fā)生電路設(shè)計頻率發(fā)生電路是由4個74LS393芯片以及晶振電路產(chǎn)生600HZ、300HZ、150HZ、75HZ、4種不同的頻率,電路設(shè)計簡單,產(chǎn)生頻率穩(wěn)定。 電源電路設(shè)計 本電源電路是通過變壓器,把外部接入的22V電源轉(zhuǎn)變?yōu)?V電源,采用7805使電源穩(wěn)定。 程序流程圖由于C語言編程容易,且Keil軟件是目前最流行開發(fā)MCS-51系列單片機的軟件。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易

8、理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。所以我們使用Keil軟件進(jìn)行編程。根據(jù)設(shè)計項目所需功能,我們先進(jìn)行初始化,在待機狀態(tài)下,采集頻率。然后把采集的頻率進(jìn)行十進(jìn)制轉(zhuǎn)換,然后檢測是否有鍵按下,若鍵0按下,則數(shù)碼管顯示所采集的頻率,再按下鍵0時則不顯示。系統(tǒng)實現(xiàn)所有功能,其程序框圖如圖4-1所示。定時器8初始化采集頻率頻率轉(zhuǎn)換數(shù)碼管顯示YN鍵0按下開始 主程序、/*三:頻率計設(shè)計要求:1:被測頻率fx小于110Hz采用測周法,顯示頻率XXX。XXX;fx大于110Hz采用測頻法,顯示頻率XXXXXX;2:可利用鍵盤分段測量和自動分段測量;3:可完成單脈沖測量,輸入脈沖寬度范圍是100微秒-

9、0.1秒;4:自由發(fā)揮其他功能. */#include<reg52.h>#define uint unsigned int #define unchar unsigned charsbit enter=P34;sbit start=P30;unchar code table1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71 ;unchar code table2=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uint t,a,b,temp

10、;float tt;long nn;/聲明函數(shù)void delay();void init();void display(long);void examf();void examt();void scan();/*主函數(shù)*/void main() init();while(1) examf(); examt(); if(nn<=110)display(tt); elsedisplay(nn);/*函數(shù)的定義*void delay()uint i,j;for(i=0;i+;i<10) for(j=0;j+;j<10);void init()t=0;TMOD=0x15;TH1=(

11、65536-50000)/256;TL1=(65536-50000)%256;TH0=0x00;TL0=0x00;EA=1;ET1=1;ET0=1;TR1=1;TR0=1;IE=0x8a;void timer0() interrupt 3TH1=(65536-50000)/256;TL1=(65536-50000)%256;t+;void examf() if(t=20) t=0; a=TH0; b=TL0; TH0=0x00; TL0=0x00; nn=a*256+b; void examt() int x,y; if(TH0=0x00)&&(TL0=0x01) TH0=0x

12、00; TL0=0x00; x=TH1-(65536-50000)/256; y=TL1-(65536-50000)%256; TH1=(65536-50000)/256; TL1=(65536-50000)%256; tt=0.000001*(256*x+y);/*float examt() if(t=20) t=0; a=TH0; b=TL0; TH0=0x00; TL0=0x00; nn=a*256+b; */void display(long h)uint sw,wan,qian,bai,shi,ge;sw=h/100000;wan=h%100000/10000;qian=h%1000

13、0/1000;bai=h%1000/100;shi=h%100/10;ge=h%10;/if(sw!=0)P0=table1sw;P2=0xdf;delay();P2=0xff;P0=table1wan;P2=0xef;delay();P2=0xff;P0=table1qian;P2=0xf7;delay();P2=0xff;P0=table1bai;P2=0xfb;delay();P2=0xff;P0=table1shi;P2=0xfd;delay();P2=0xff;P0=table1ge;P2=0xfe;delay();P2=0xff;void scan()/檢查第四行鍵盤P1=0x7f

14、; temp=P1;temp=P1&0x0f; while(temp!=0x0f) delay(); temp=P1; temp=P1&0x0f; while(temp!=0x0f) temp=P1; switch(temp) case 0x7e:enter=1; /表示4,4按下 break; case 0x7d:enter=1; /表示4,3按下 break; case 0x7b:enter=1; /表示4,2按下 break; case 0x77:enter=1; /表示4,1按下 break; while(temp!=0x0f) temp=P1; temp=temp&a

15、mp;0x0f; /檢查第三排鍵盤/*P3=0xbf; temp=P3;temp=P3&0x0f; while(temp!=0x0f) delay(); temp=P3; temp=P3&0x0f; while(temp!=0x0f) temp=P3; switch(temp) case 0xbe: num=1;/表示3,4按下 break; case 0xbd:num=6;/表示3,3按下 break; case 0xbb:num=3;/表示3,2按下 break; case 0xb7:num=4;/表示3,1按下 break; while(temp!=0x0f) temp=

16、P3; temp=temp&0x0f; /檢查第二行鍵盤P3=0xdf; temp=P3;temp=P3&0x0f; while(temp!=0x0f) delay(); temp=P3; temp=P3&0x0f; while(temp!=0x0f) temp=P3; switch(temp) case 0xde:num=1; /表示2,4按下 break; case 0xdd:num=6;/表示2,3按下 break; case 0xdb:num=3;/表示2,2按下 break; case 0xd7:num=4;/表示2,1按下 break; while(temp

17、!=0x0f) temp=P3; temp=temp&0x0f; /檢查第一行鍵盤P3=0xef; temp=P3;temp=P3&0x0f; while(temp!=0x0f) delay(); temp=P3; temp=P3&0x0f; while(temp!=0x0f) temp=P3; switch(temp) case 0xee:num=1; /表示1,4按下 break; case 0xed:num=6;/表示1,3按下 break; case 0xeb:num=3;/表示1,2按下 break; case 0xe7:num=4;/表示1,1按下 brea

18、k; while(temp!=0x0f) temp=P3; temp=temp&0x0f; */采集頻率采集頻率采集頻率采集頻率軟硬件調(diào)試數(shù)字頻率計是采用數(shù)字電路制成的實現(xiàn)對周期性變化信號的頻率的測量。數(shù)值頻率計是通信設(shè)備、音、視頻等科研生產(chǎn)領(lǐng)域不可缺少的測量儀器。采用Verilog HDL編程設(shè)計實現(xiàn)的數(shù)字頻率計。除被測信號的整形部分、鍵輸入部分和數(shù)碼顯示部分外,其余全部在一片F(xiàn)PGA芯片上實現(xiàn),整個系統(tǒng)非常精簡,且具有靈活的現(xiàn)場可更改性。所謂“頻率”,就是周期性信號在單位時間(1s)內(nèi)變化的次數(shù)。若在一定的時間間隔T內(nèi)測得這個周期性信號的重復(fù)變化次數(shù)N,則其頻率可表示為f=T/N。

19、其中脈沖形成電路的作用是將被測信號變成脈沖信號。其重復(fù)頻率等于被測頻率f,時間基準(zhǔn)信號發(fā)生器提供基準(zhǔn)的時間脈沖信號。若其周期為1S,則門控電路的輸出信號持續(xù)時間也等于1S,門閘電路由標(biāo)準(zhǔn)秒信號進(jìn)行控制。當(dāng)秒信號來到時,門閘開通,被測脈沖信號通過閘門送到計數(shù)譯碼顯示電路。秒信號結(jié)束時,門閘關(guān)斷。計數(shù)器停止計數(shù),由于計數(shù)器計得的脈沖數(shù)N是在1S時間內(nèi)的累計數(shù),所以被測頻率等于N明確頻率計工作原理以后,為了更清晰的對程序進(jìn)行編寫。還應(yīng)該做出程序的總體框圖,程序的主體可以分為四個模塊:定時計數(shù)、采集數(shù)據(jù)、進(jìn)制轉(zhuǎn)換和數(shù)碼顯示。務(wù)是利用開發(fā)工具進(jìn)行調(diào)試,發(fā)現(xiàn)和糾正程序的錯誤,同時也能發(fā)現(xiàn)硬件的故障。軟件調(diào)

20、試是一個模塊接一個模塊進(jìn)行的。首先單獨調(diào)試各子程序是否能夠按照預(yù)期的功能,接口電路的控制是否正常。最后調(diào)試整個程序。尤其注意的是各模塊間能否正確的傳遞參數(shù)。1. 檢查數(shù)碼管顯示模塊程序。觀察數(shù)碼管上是否能夠顯示相應(yīng)的字符。2. 檢查定時計數(shù)模塊程序??梢栽谟布娐返妮斎攵薖3.4輸入已知的4個頻率,分別觀察數(shù)碼管上是否顯示相應(yīng)的頻率值。3. 檢查數(shù)據(jù)的轉(zhuǎn)換模塊程序。 程序可分為數(shù)據(jù)采集系統(tǒng)、數(shù)據(jù)轉(zhuǎn)換系統(tǒng)、顯示系統(tǒng),這三部分先獨立測試,然后整體調(diào)試。數(shù)據(jù)采集系統(tǒng):采用單片機內(nèi)部兩個定時器,定時器1定時,定時器0計數(shù),采集輸入頻率,并轉(zhuǎn)換為用于顯示的代碼。 顯示系統(tǒng)的調(diào)試:要顯示的數(shù)據(jù)存放在71H、72H單元中,先在30H39H分單元中存放09的數(shù),運行顯示程序,進(jìn)行查表指令,察看顯示的結(jié)果是否與存放值一樣。整體測試:把三部分進(jìn)行程序聯(lián)調(diào),編譯程序,看是否存在錯誤。經(jīng)過多次的嘗試與查找相資料,最后做出并完善了整體的方案。系統(tǒng)功能分析 本課程設(shè)計是利用單片機設(shè)計一個頻率計,能夠0HZ-9999HZ的頻率,

溫馨提示

  • 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

提交評論