單片機(jī)課設(shè)頻率計(jì)數(shù)器_第1頁(yè)
單片機(jī)課設(shè)頻率計(jì)數(shù)器_第2頁(yè)
單片機(jī)課設(shè)頻率計(jì)數(shù)器_第3頁(yè)
單片機(jī)課設(shè)頻率計(jì)數(shù)器_第4頁(yè)
單片機(jī)課設(shè)頻率計(jì)數(shù)器_第5頁(yè)
已閱讀5頁(yè),還剩14頁(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、等級(jí): 課 程 設(shè) 計(jì)課程名稱(chēng)單片機(jī)原理及應(yīng)用課題名稱(chēng)頻率計(jì)數(shù)器專(zhuān) 業(yè)電子信息工程班 級(jí)1302學(xué) 號(hào)8姓 名許聰指導(dǎo)老師尋大勇等2016年3月25日電氣信息學(xué)院課程設(shè)計(jì)任務(wù)書(shū)課題名稱(chēng)頻率計(jì)數(shù)器姓 名許聰 專(zhuān)業(yè)電子信息 班級(jí)1302 學(xué)號(hào)18 指導(dǎo)老師尋大勇課程設(shè)計(jì)時(shí)間2016年3月14日-2016年3月25日教研室意見(jiàn)意見(jiàn): 審核人:一、任務(wù)及要求設(shè)計(jì)任務(wù):本課題以單片機(jī)為核心,設(shè)計(jì)和制作一個(gè)頻率計(jì)數(shù)器,來(lái)完成對(duì)輸入的信號(hào)進(jìn)行頻率計(jì)數(shù),計(jì)數(shù)的頻率結(jié)果能夠顯示出來(lái)。要求能夠?qū)?250KHz的信號(hào)頻率進(jìn)行準(zhǔn)確計(jì)數(shù),計(jì)數(shù)誤差不超過(guò)1HZ。設(shè)計(jì)要求:(1)確定系統(tǒng)設(shè)計(jì)方案;(2)進(jìn)行系統(tǒng)的硬件設(shè)計(jì);

2、(3)完成應(yīng)用程序設(shè)計(jì); (4) 應(yīng)用系統(tǒng)的硬件和軟件的調(diào)試。二、進(jìn)度安排第一周:周一:集中布置課程設(shè)計(jì)任務(wù)和相關(guān)事宜,查資料確定系統(tǒng)總體方案。周二周三:完成硬件設(shè)計(jì)和電路連接周四周日:完成軟件設(shè)計(jì)第二周:周一周三:程序調(diào)試周四周五:設(shè)計(jì)報(bào)告撰寫(xiě)。周五進(jìn)行答辯和設(shè)計(jì)結(jié)果檢查。三、參考資料1、王迎旭等.單片機(jī)原理及及應(yīng)用. 2版.機(jī)械工業(yè)出版社,20122、胡漢才.單片機(jī)原理及其接口技術(shù).3版.清華大學(xué)出版社,2010.3、戴燦金.51單片機(jī)及其C語(yǔ)言程序設(shè)計(jì)開(kāi)發(fā)實(shí)例.清華大學(xué)出版社,2010 目 錄第1章 設(shè)計(jì)任務(wù)及要求11.1設(shè)計(jì)任務(wù)11.2設(shè)計(jì)要求1第2章 系統(tǒng)方案設(shè)計(jì)12.1 基本設(shè)計(jì)原

3、理12.2 方案整體框圖2第3章 系統(tǒng)硬件電路設(shè)計(jì)2 3.1 復(fù)位電路.2 3.2晶振電路.3 3.3 LED數(shù)碼管顯示電路.3第4章 系統(tǒng)軟件設(shè)計(jì)44.1 主程序流程圖4 4.2 初始化模塊5 4.3 信號(hào)頻率測(cè)量模塊.5 4.4 數(shù)碼管顯示模塊.5 4.5 程序中斷模塊.6 4.6 數(shù)碼管掃描模塊.7第5章 系統(tǒng)仿真及調(diào)試7 5.1 C程序編譯.8 5.2 Proteus仿真.9心得體會(huì).9參考文獻(xiàn)10附錄A 仿真總圖12附錄B 程序清單13第1章 設(shè)計(jì)任務(wù)及要求1.1 設(shè)計(jì)任務(wù): 本課題以單片機(jī)為核心,設(shè)計(jì)和制作一個(gè)頻率計(jì)數(shù)器,來(lái)完成對(duì)輸入的信號(hào)進(jìn)行頻率計(jì)數(shù),計(jì)數(shù)的頻率結(jié)果能夠顯示出來(lái)。

4、要求能夠?qū)?250KHz的信號(hào)頻率進(jìn)行準(zhǔn)確計(jì)數(shù),計(jì)數(shù)誤差不超過(guò)1HZ。1.2 設(shè)計(jì)要求:(1)確定系統(tǒng)設(shè)計(jì)方案;(2)進(jìn)行系統(tǒng)的硬件設(shè)計(jì);(3)完成應(yīng)用程序設(shè)計(jì); (4) 應(yīng)用系統(tǒng)的硬件和軟件的調(diào)試。第2章 系統(tǒng)方案設(shè)計(jì)2.1基本設(shè)計(jì)原理基本設(shè)計(jì)原理是直接用十進(jìn)制數(shù)字顯示被測(cè)信號(hào)頻率的一種測(cè)量裝置。它以測(cè)量周期的方法對(duì)正弦波、方波、三角波的頻率進(jìn)行自動(dòng)的測(cè)量。所謂“頻率”,就是周期性信號(hào)在單位時(shí)間(1s)內(nèi)變化的次數(shù)。若在一定時(shí)間間隔T內(nèi)測(cè)得這個(gè)周期性信號(hào)的重復(fù)變化次數(shù)N,則其頻率可表示為f=N/T。其中脈沖形成電路的作用是將被測(cè)信號(hào)變成脈沖信號(hào),其重復(fù)頻率等于被測(cè)頻率fx。時(shí)間基準(zhǔn)信號(hào)發(fā)生器

5、提供標(biāo)準(zhǔn)的時(shí)間脈沖信號(hào),若其周期為1s,則門(mén)控電路的輸出信號(hào)持續(xù)時(shí)間亦準(zhǔn)確地等過(guò)閘門(mén)送到計(jì)數(shù)譯碼顯示電路。秒信號(hào)結(jié)束時(shí)閘門(mén)關(guān)閉,計(jì)數(shù)器停止計(jì)數(shù)。由于計(jì)數(shù)器計(jì)得的脈沖數(shù)N是在1秒時(shí)間內(nèi)的累計(jì)數(shù),所以被測(cè)頻率fx=NHz。AT89S51 單片機(jī)內(nèi)部具有 2 個(gè) 16 位的定時(shí)/計(jì)數(shù)器 T0 與 T1,其工作方法可以通過(guò)編程來(lái)實(shí)現(xiàn)所需的定時(shí)/計(jì)數(shù)與產(chǎn)生計(jì)數(shù)溢出中斷要求的功能。定時(shí)/計(jì)數(shù)器 T0 與 T1 的核心都是 16 位的加 1 計(jì)數(shù)器, TH0 與 TL0構(gòu)成在構(gòu)成定時(shí)/計(jì)數(shù)器 T0 加 1 計(jì)數(shù)器的高 8 位和低 8 位; TH1 與 TL1構(gòu)成在構(gòu)成定時(shí)/計(jì)數(shù)器 T1 加 1 計(jì)數(shù)器的高

6、8 位和低 8 位。加 1 計(jì)數(shù)器的初值可以通過(guò)程序設(shè)定,這樣就可以獲得不同的計(jì)數(shù)值或定時(shí)時(shí)間。當(dāng)加 1 計(jì)數(shù)器用作定時(shí)器時(shí),每個(gè)機(jī)器周期加 1(使用 12MHz 時(shí)鐘時(shí),每 1us 加 1) ,這樣以機(jī)器周期為基準(zhǔn)可以用來(lái)測(cè)量時(shí)間間隔。當(dāng)加 1 計(jì)數(shù)器用作計(jì)數(shù)器時(shí),在相應(yīng)的外部引腳發(fā)生從 1 到 0 的跳變時(shí)計(jì)數(shù)器加 1,這樣在計(jì)數(shù)閘門(mén)的控制下可以用來(lái)測(cè)量待測(cè)信號(hào)的頻率。外部輸入每個(gè)機(jī)器周期被采樣一次,這樣檢測(cè)一次從 1 到 0 的跳變至少需要 2 個(gè)機(jī)器周期(24個(gè)振蕩周期),所以最大計(jì)數(shù)速率為時(shí)鐘頻率的 1/24。AT89S51 單片機(jī)的時(shí)鐘頻率可以在0Hz33MHz 范圍內(nèi)自動(dòng)調(diào)節(jié),當(dāng)

7、使用 12MHz 時(shí)鐘時(shí),最大計(jì)數(shù)速率為 500KHz。定時(shí)/計(jì)數(shù)器的工作由相應(yīng)的運(yùn)行控制位 TR 控制,當(dāng) TR 置 1 時(shí),定時(shí)/計(jì)數(shù)器開(kāi)始計(jì)數(shù);當(dāng) TR 置 0 時(shí),停止計(jì)數(shù)。在本設(shè)計(jì)方案中,我通過(guò)程序設(shè)定 T0 工作在計(jì)數(shù)狀態(tài)下,T1 工作在計(jì)時(shí)狀態(tài)下。T0 計(jì)數(shù)器對(duì)輸入的信號(hào)經(jīng)行計(jì)數(shù),其最大計(jì)數(shù)值為 fOSC/24,當(dāng) fOSC=12MHz 時(shí),T0 的最大計(jì)數(shù)頻率為250kHz。2.2 方案整體框圖 AT89C51 單片機(jī) 顯示電路 輸入信號(hào) 復(fù)位電路 晶振電路 圖1 系統(tǒng)總框圖第3章 系統(tǒng)硬件電路設(shè)計(jì)3.1復(fù)位電路復(fù)位是單片機(jī)的初始化操作。單片機(jī)系統(tǒng)在上電啟動(dòng)運(yùn)行時(shí),都需要先復(fù)位

8、。其作用是使CPU 和系統(tǒng)中其他部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開(kāi)始工作。而復(fù)位是一個(gè)很重要的操作方式,但單片機(jī)本身是不能自動(dòng)經(jīng)行復(fù)位的,必須配合相應(yīng)的外部復(fù)位電路才能實(shí)現(xiàn)。本設(shè)計(jì)的復(fù)位電路采用上電復(fù)位加按鍵手動(dòng)復(fù)位,其電路如下圖所示: 圖2 上電復(fù)位電路 3.2 晶振電路單片機(jī)工作是在統(tǒng)一的時(shí)鐘脈沖控制下一拍一拍地進(jìn)行的,這個(gè)脈沖是單片機(jī)控制器中的時(shí)序電路發(fā)出的。單片機(jī)的時(shí)序就是 CPU 在執(zhí)行指令時(shí)所需控制信號(hào)的時(shí)間順序。為了保證各部件的同步工作,單內(nèi)部電路應(yīng)在唯一的時(shí)鐘信號(hào)下嚴(yán)格按時(shí)序進(jìn)行工作。其電路原理圖如下:圖3 晶振電路3.3 LED數(shù)碼管顯示電路顯示器是微機(jī)重要的輸出設(shè)

9、備。顯示器有顯示監(jiān)控結(jié)果、提供用戶操作界面等功能。在本次設(shè)計(jì)中采用了 LED 顯示器,即數(shù)碼管。數(shù)碼管的每一個(gè)數(shù)碼段是一只發(fā)光二極管。當(dāng)發(fā)光二極管導(dǎo)通時(shí),相應(yīng)的一個(gè)點(diǎn)或者一個(gè)筆畫(huà)發(fā)光,控制發(fā)光二極管發(fā)光組合,可以顯示出所需字符。我采用了共陰極結(jié)構(gòu)。在定義其顯示字形的碼段時(shí),通過(guò) I/O 口送出七段碼 。其段碼表如下:表1 共陰數(shù)碼管段選碼顯示字形0123456789共陰段選碼3FH06H5BH4FH66H6DH7DH07H7FH6FH數(shù)碼管的電路圖如下:圖4數(shù)碼管接線電路初始化T1定時(shí)T0計(jì)數(shù)判斷是否到一秒數(shù)碼管顯示開(kāi)始結(jié)束否是本設(shè)計(jì)采用了數(shù)碼管的動(dòng)態(tài)顯示方式,即輪流點(diǎn)亮各數(shù)碼管,對(duì)數(shù)碼管進(jìn)行

10、掃描。在任何時(shí)刻只給一個(gè)數(shù)碼管通電,通電一定時(shí)間后再給下一個(gè)數(shù)碼管通電。只要刷新頻率足夠高,動(dòng)態(tài)顯示方式同樣可以實(shí)現(xiàn)穩(wěn)定顯示。這樣就可以節(jié)約I/O口。第4章 系統(tǒng)軟件設(shè)計(jì)4.1主程序流程圖 圖5 程序流程圖4.2 初始化模塊void main(void) unsigned char i; TMOD=0x15; /定義定時(shí)器0為計(jì)數(shù)方式,定時(shí)器1為計(jì)時(shí)方式,均工作在方式1 TH0=0; /定時(shí)器0初值高8位為0 TL0=0; /定時(shí)器0初值低8為0 TH1=(65536-5000)/256; /定時(shí)器1初值高8位 TL1=(65536-5000)%256; /定時(shí)器初值低8位 TR1=1; /啟

11、動(dòng)定時(shí)器1 TR0=1; /啟動(dòng)定時(shí)器0 ET0=1; /開(kāi)定時(shí)器0中斷 ET1=1; /開(kāi)定時(shí)器1中斷 EA=1; /開(kāi)總中斷4.3信號(hào)頻率測(cè)量模塊 while(1) if(flag=1) /如果定時(shí)時(shí)間到了1s flag=0; /標(biāo)志位清零 x=T0count*65536+TH0*256+TL0; /獲得整形的頻率值4.4數(shù)碼管顯示模塊 for(i=0;i8;i+) tempi=0; /贊存緩沖區(qū)清零 i=0; while(x/10) /將頻率值的每一位分離出來(lái),存進(jìn)temp數(shù)組 tempi=x%10; x=x/10; i+; tempi=x; for(i=0;i6;i+) dispbuf

12、i=tempi;/將暫存數(shù)組的數(shù)據(jù)賦給顯示數(shù)組 timecount=0; /計(jì)時(shí)清零 T0count=0; /計(jì)數(shù)清零 TH0=0; /計(jì)時(shí)器0初值清零 TL0=0; /計(jì)時(shí)器0初值清零 TR0=1; /重新啟動(dòng)定時(shí)器04.5程序中斷模塊void t0(void) interrupt 1 using 0 T0count+; void t1(void) interrupt 3 using 0 TH1=(65536-5000)/256; TL1=(65536-5000)%256; /重裝初值 timecount+; if(timecount=200) TR0=0; /關(guān)閉定時(shí)器0,為了讀出定時(shí)器0

13、計(jì)數(shù)個(gè)數(shù) timecount=0; /timecount清零,重新計(jì)時(shí) flag=1; /置標(biāo)志位通知主程序1s已到 4.6數(shù)碼管掃描模塊P2=0xff; /關(guān)閉所有數(shù)碼管 P0=dispcodedispbufdispcount; /先確定相應(yīng)數(shù)碼管的段碼,送入段碼 P2=dispbitdispcount; /送入位碼 dispcount+; /下一次掃描下一位數(shù)碼管 if(dispcount=8) /8位數(shù)碼管 dispcount=0; /掃描完第7個(gè),回頭掃描第0個(gè) 第5章 系統(tǒng)仿真及調(diào)試5.1 C程序編譯 圖6 程序編譯圖5.2 Proteus仿真選取較小頻率為10Hz時(shí): 圖7 較小頻

14、率顯示圖選取中間頻率為12000Hz時(shí): 圖8 中間頻率顯示圖選取較大頻率為23000Hz時(shí): 圖9 較大頻率顯示圖心得體會(huì)在單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)時(shí),必須先確定該系統(tǒng)的技術(shù)要求,這是系統(tǒng)設(shè)計(jì)的依據(jù)和出發(fā)點(diǎn),整個(gè)設(shè)計(jì)過(guò)程都必須圍繞這個(gè)技術(shù)要求來(lái)工作。在設(shè)計(jì)時(shí)遵循從整體到局部也即自上而下的原則。把復(fù)雜的問(wèn)題分解為若干個(gè)比較簡(jiǎn)單的、容易處理的問(wèn)題,分別單個(gè)的加以解決。將總?cè)蝿?wù)分解成可以獨(dú)立表達(dá)的子任務(wù),這些子任務(wù)再向下分,直到每個(gè)子任務(wù)足夠簡(jiǎn)單,能夠直接而容易的實(shí)現(xiàn)為止。在程序調(diào)試時(shí)應(yīng)按各個(gè)功能模塊分別調(diào)試。在程序設(shè)計(jì)時(shí),正確合理的設(shè)計(jì)是非常重要的,正確的程序設(shè)計(jì)包括程序的結(jié)構(gòu)是否合理,一些循環(huán)結(jié)構(gòu)和

15、循環(huán)指令的使用是否恰當(dāng),能否使用較少的循環(huán)次數(shù)或較快的指令,是否能把某些延遲等待的操作改為中斷申請(qǐng)服務(wù),能否把某些計(jì)算方法和查表技術(shù)適當(dāng)簡(jiǎn)化等。另外程序的設(shè)計(jì)要具有可擴(kuò)展性,程序的結(jié)構(gòu)要標(biāo)準(zhǔn)化,便于閱讀、修改和擴(kuò)充。通過(guò)本次課程設(shè)計(jì),我更加地了解和掌握單片機(jī)的基本知識(shí)和基本的編寫(xiě)程序,也更加深入地了解單片機(jī)這么課程,掌握匯編語(yǔ)言的設(shè)計(jì)和調(diào)試方法。對(duì)于認(rèn)識(shí)到自己在知識(shí)方面存在的不足,明確今后的學(xué)習(xí)方向是非常有益的。參考文獻(xiàn)單片機(jī)原理與應(yīng)用 王迎旭等編 機(jī)械工業(yè)出版社51系列單片機(jī)設(shè)計(jì)實(shí)例 樓然苗等編 北京航空航天大學(xué)出版社計(jì)算機(jī)硬件技術(shù)基礎(chǔ)實(shí)驗(yàn)教程 黃勤等編 重慶大學(xué)出版社微型計(jì)算機(jī)接口技術(shù)及應(yīng)

16、用 劉樂(lè)善主編 華中科技大學(xué)出版社單片微型計(jì)算機(jī)原理及接口技術(shù)陳光東等 華中科技大學(xué)出版社附錄A 仿真總圖附錄B 程序清單#include unsigned char code dispbit=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; /定義數(shù)碼管位選碼unsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40; unsigned char dispbuf8=0,0,0,0,0,0,10,10; /顯示數(shù)碼組unsigned char t

17、emp8; /暫存數(shù)組unsigned char dispcount; /掃描位的記錄unsigned char T0count; /計(jì)數(shù)次數(shù) unsigned char timecount;/定時(shí)器中斷次數(shù)bit flag; / 定義標(biāo)志位 unsigned long x; /定義變量用來(lái)存放頻率值 /*初始化模塊*/ void main(void) unsigned char i; TMOD=0x15; /定義定時(shí)器0為計(jì)數(shù)方式,定時(shí)器1為計(jì)時(shí)方式,均工作在方式1 TH0=0; /定時(shí)器0初值高8位為0 TL0=0; /定時(shí)器0初值低8為0 TH1=(65536-5000)/256; /定

18、時(shí)器1初值高8位 TL1=(65536-5000)%256; /定時(shí)器初值低8位 TR1=1; /啟動(dòng)定時(shí)器1 TR0=1; /啟動(dòng)定時(shí)器0 ET0=1; /開(kāi)定時(shí)器0中斷 ET1=1; /開(kāi)定時(shí)器1中斷 EA=1; /開(kāi)總中斷/*信號(hào)頻率測(cè)量*/ while(1) if(flag=1) /如果定時(shí)時(shí)間到了1s flag=0; /標(biāo)志位清零 x=T0count*65536+TH0*256+TL0; /獲得整形的頻率值 /*數(shù)碼管顯示*/ for(i=0;i8;i+) tempi=0; /贊存緩沖區(qū)清零 i=0; while(x/10) /將頻率值的每一位分離出來(lái),存進(jìn)temp數(shù)組 tempi=x%10; x=x/10; i+; tempi=x; for(i=0;i6;i+) dispbufi=tempi;/將暫存數(shù)組的數(shù)據(jù)賦給顯示數(shù)組 timecount=0; /計(jì)時(shí)清零 T0count=0; /計(jì)數(shù)清零 TH0=0; /計(jì)時(shí)器0初值清零 TL0=0; /計(jì)時(shí)器0初值清零 TR0=1; /重新啟動(dòng)定時(shí)器0 /*程序中斷*/ void t0(void)

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論