單片機(jī)課程設(shè)計(jì)報(bào)告-20_第1頁
單片機(jī)課程設(shè)計(jì)報(bào)告-20_第2頁
單片機(jī)課程設(shè)計(jì)報(bào)告-20_第3頁
單片機(jī)課程設(shè)計(jì)報(bào)告-20_第4頁
單片機(jī)課程設(shè)計(jì)報(bào)告-20_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

單片機(jī)課程設(shè)計(jì)報(bào)告

簡易頻率計(jì)設(shè)計(jì)

學(xué)院:地信院班級:生醫(yī)1201班姓名:劉柏林學(xué)號:0402120116目錄摘

要.

頻率計(jì)設(shè)計(jì)概述

AT89C51單片機(jī)及其引腳說明分頻電路

.顯示電路系統(tǒng)整體原理圖系統(tǒng)軟件設(shè)計(jì)1.測頻軟件實(shí)現(xiàn)原理2.軟件流程圖

3.程序設(shè)計(jì)仿真測試結(jié)果復(fù)位操作頻率為9HZ頻率為99HZ頻率為999HZ頻率為9999HZ單片機(jī)課程設(shè)計(jì)原材料清單結(jié)束語參考文獻(xiàn)摘要

隨著電子信息產(chǎn)業(yè)的不斷發(fā)展,信號頻率的測量在科技研究和實(shí)際應(yīng)用中的作用日益重要。傳統(tǒng)的頻率計(jì)通常是用很多的邏輯電路和時序電路來實(shí)現(xiàn)的,這種電路一般運(yùn)行較慢,而且測量頻率的范圍較小。考慮到上述問題,本文設(shè)計(jì)一基于單片機(jī)設(shè)計(jì)頻率計(jì)。本文從頻率計(jì)的原理出發(fā),介紹了基于單片機(jī)的頻率計(jì)的設(shè)計(jì)方案,選擇了實(shí)現(xiàn)系統(tǒng)的各種電路元器件,并對硬件電路進(jìn)行了仿真,并焊制出了實(shí)際的電路板,測試表明與理論大體相符。關(guān)鍵字:單片機(jī);頻率計(jì);測量;AT89C51第一章頻率計(jì)設(shè)計(jì)概述本頻率計(jì)的設(shè)計(jì)以AT89C51單片機(jī)為核心,利用他內(nèi)部的定時/計(jì)數(shù)器完成待測信號頻率的測量。單片機(jī)AT89C51內(nèi)部具有2個16位定時/計(jì)數(shù)器,定時/計(jì)數(shù)器的工作可以由編程來實(shí)現(xiàn)定時、計(jì)數(shù)和產(chǎn)生計(jì)數(shù)溢出時中斷要求的功能。設(shè)計(jì)將定時/計(jì)數(shù)器0設(shè)置工作在定時方式,定時/計(jì)數(shù)器1設(shè)置工作在計(jì)數(shù)方式。在定時器工作方式下,在被測時間間隔內(nèi),每來一個機(jī)器周期,計(jì)數(shù)器自動加1(使用12MHz時鐘時,每1μs加1),這樣以機(jī)器周期為基準(zhǔn)可以用來測量時間間隔。在計(jì)數(shù)器工作方式下,加至外部引腳的待測信號發(fā)生從1到0的跳變時計(jì)數(shù)器加1,這樣在計(jì)數(shù)閘門的控制下可以用來測量待測信號的頻率。外部輸入在每個機(jī)器周期被采樣一次,這樣檢測一次從1到0的跳變至少需要2個機(jī)器周期(24個振蕩周期),所以最大計(jì)數(shù)速率為時鐘頻率的1/24(使用12MHz時鐘時,最大計(jì)數(shù)速率為500kHz)。AT89C51單片機(jī)及其引腳說明:89C51是一種高性能低功耗的采用CMOS工藝制造的8位微控制器,它提供下列標(biāo)準(zhǔn)特征:4K字節(jié)的程序存儲器,128字節(jié)的RAM,32條I/O線,2個16位定時器/計(jì)數(shù)器,一個5中斷源兩個優(yōu)先級的中斷結(jié)構(gòu),一個雙工的串行口,片上震蕩器和時鐘電路。引腳說明:·VCC:電源電壓·GND:地·P0口:P0口是一組8位漏極開路型雙向I/O口,作為輸出口用時,每個引腳能驅(qū)動8個TTL邏輯門電路。當(dāng)對0端口寫入1時,可以作為高阻抗輸入端使用。當(dāng)P0口訪問外部程序存儲器或數(shù)據(jù)存儲器時,它還可設(shè)定成地址數(shù)據(jù)總線復(fù)用的形式。在這種模式下,P0口具有內(nèi)部上拉電阻。在EPROM編程時,P0口接收指令字節(jié),同時輸出指令字節(jié)在程序校驗(yàn)時。程序校驗(yàn)時需要外接上拉電阻?!1口:P1口是一帶有內(nèi)部上拉電阻的8位雙向I/O口。P1口的輸出緩沖能接受或輸出4個TTL邏輯門電路。當(dāng)對P1口寫1時,它們被內(nèi)部的上拉電阻拉升為高電平,此時可以作為輸入端使用。當(dāng)作為輸入端使用時,P1口因?yàn)閮?nèi)部存在上拉電阻,所以當(dāng)外部被拉低時會輸出一個低電流(IIL)?!2口:P2是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P2口的輸出緩沖能驅(qū)動4個TTL邏輯門電路。當(dāng)向P2口寫1時,通過內(nèi)部上拉電阻把端口拉到高電平,此時可以用作輸入口。作為輸入口,因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出電流(IIL)。P2口在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如MOVX@DPTR)時,P2口送出高8位地址數(shù)據(jù)。在這種情況下,P2口使用強(qiáng)大的內(nèi)部上拉電阻功能當(dāng)輸出1時。當(dāng)利用8位地址線訪問外部數(shù)據(jù)存儲器時(例MOVX@R1),P2口輸出特殊功能寄存器的內(nèi)容。當(dāng)EPROM編程或校驗(yàn)時,P2口同時接收高8位地址和一些控制信號?!3口:P3是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P3口的輸出緩沖能驅(qū)動4個TTL邏輯門電路。當(dāng)向P3口寫1時,通過內(nèi)部上拉電阻把端口拉到高電平,此時可以用作輸入口。作為輸入口,因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出電流(IIL)。P3口同時具有AT89C51的多種特殊功能,具體如下表1所示:表1P3口的第二功能·RST:復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機(jī)器周期的高電平將使單片機(jī)復(fù)位?!LE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許是一輸出脈沖,用以鎖存地址的低8位字節(jié)。當(dāng)在Flash編程時還可以作為編程脈沖輸出(PROG)。一般情況下,ALE是以晶振頻率的1/6輸出,可以用作外部時鐘或定時目的。但也要注意,每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖?!SEN:程序存儲允許時外部程序存儲器的讀選通信號。當(dāng)AT89C52執(zhí)行外部程序存儲器的指令時,每個機(jī)器周期PSEN兩次有效,除了當(dāng)訪問外部數(shù)據(jù)存儲器時,PSEN將跳過兩個信號?!A/VPP:外部訪問允許。為了使單片機(jī)能夠有效的傳送外部數(shù)據(jù)存儲器從0000H到FFFH單元的指令,EA必須同GND相連接。需要主要的是,如果加密位1被編程,復(fù)位時EA端會自動內(nèi)部鎖存。當(dāng)執(zhí)行內(nèi)部編程指令時,EA應(yīng)該接到VCC端?!TAL1:振蕩器反相放大器以及內(nèi)部時鐘電路的輸入端。·XTAL2:振蕩器反相放大器的輸出端。在本次設(shè)計(jì)中,采用89C51作為CPU處理器,充分利用其硬件資源,結(jié)合D觸發(fā)器CD4013,分頻器CD4060,模擬轉(zhuǎn)換開關(guān)CD4051,計(jì)數(shù)器74LS90等數(shù)字處理芯片,主要控制兩大硬件模塊,量程切換以及顯示模塊。第三章分頻電路本次設(shè)計(jì)采用的是脈沖定時測頻法,由于考慮到單片機(jī)的定時計(jì)數(shù)器得計(jì)數(shù)能力有限,無法對過高頻進(jìn)行測量,所以我們對待測信號進(jìn)行了分頻,這樣能提高測量頻率的范圍,還能相應(yīng)的提高頻率測量的精度。所以我們需要把待測信號進(jìn)行分頻。其原理圖如3.33.34040原理圖第四章顯示電路我們測量的頻率最終要顯示出來八段LED數(shù)碼管顯示器由8個發(fā)光二極管組成。基中7個長條形的發(fā)光管排列成“日”字形,另一個圓點(diǎn)形的發(fā)光管在數(shù)碼管顯示器的右下角作為顯示小數(shù)點(diǎn)用,它能顯示各種數(shù)字及部份英文字母。LED數(shù)碼管顯示器有兩種形式:一種是8個發(fā)光二極管的陽極都連在一起的,稱之為共陽極LED數(shù)碼管顯示器;另一種是8個發(fā)光二極管的陰極都連在一起的,稱之為共陰極LED數(shù)碼管顯示器。如下圖所示。共陰和共陽結(jié)構(gòu)的LED數(shù)碼管顯示器各筆劃段名和安排位置是相同的。當(dāng)二極管導(dǎo)通時,對應(yīng)的筆劃段發(fā)亮,由發(fā)亮的筆劃段組合而顯示的各種字符。8個筆劃段hgfedcba對應(yīng)于一個字節(jié)(8位)的D7、D6、D5、。D4、D3、D2、D1、D0,于是用8位二進(jìn)制碼就能表示欲顯示字符的字形代碼。在單片機(jī)應(yīng)用系統(tǒng)中,數(shù)碼管顯示器顯示常用兩種辦法:靜態(tài)顯示和動態(tài)掃描顯示。所謂靜態(tài)顯示,就是每一個數(shù)碼管顯示器都要占用單獨(dú)的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機(jī)只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時,再發(fā)送新的字形碼,因此,使用這種辦法單片機(jī)中CPU的開銷小,能供給單獨(dú)鎖存的I/O接口電路很多。在單片機(jī)系統(tǒng)中動態(tài)掃描顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一。其接口電路是把所有顯示器的8個筆劃段a-h同名端連在一起,而每一個顯示器的公共極COM是各自獨(dú)立地受I/O線控制。CPU向字段輸出口送出字形碼時,所有顯示器接收到相同的字形碼,但究竟是那個顯示器亮,則取決于COM端,而這一端是由I/O控制的,所以我們就能自行決定何時顯示哪一位了。而所謂動態(tài)掃描就是指我們采用分時的辦法,輪流控制各個顯示器的COM端,使各個顯示器輪流點(diǎn)亮。在輪流點(diǎn)亮掃描過程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的(約1ms),但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位顯示器并非同時點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感。其原理圖3.43.4顯示電路原理圖第五章系統(tǒng)整體原理圖第六章系統(tǒng)軟件設(shè)計(jì)1.測頻軟件實(shí)現(xiàn)原理測頻軟件的實(shí)現(xiàn)是基于電路系統(tǒng)來進(jìn)行設(shè)計(jì)的。本次設(shè)計(jì)采用的是脈沖定時測頻法,所以在軟件實(shí)現(xiàn)上基本遵照系統(tǒng)的設(shè)計(jì)原理,進(jìn)行測頻。本次軟件設(shè)計(jì)語言采用C語言,在電腦上編譯通過后即可下載到電路上的實(shí)際電路中,即可實(shí)現(xiàn)頻率的測量。2軟件流程圖送數(shù)碼顯示初始化初始化T1定時,T0計(jì)數(shù)T0計(jì)數(shù)滿T1定時1秒滿T0計(jì)數(shù)滿T1定時1秒滿T0count++計(jì)算脈沖個數(shù)T0count++計(jì)算脈沖個數(shù)送數(shù)碼管顯示送數(shù)碼管顯示3.程序設(shè)計(jì)#include<reg51.h>bitint_flag;unsignedcharvolatileT0Count;unsignedcharvolatileT1Count;unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedcharcodetemp[]={0xfe,0xfd,0xfb,0xf7};unsignedlongsum;unsignedcharLed[4];voiddelay(unsignedintnum){while(--num);}voidinit(void){TMOD=0x15;//TMOD=0x51;//T1定時,T0計(jì)數(shù)TH1=(65536-50000)/256;//TH0=(65536-50000)/256;//定時50msTL1=(65536-50000)%256;//TL0=(65536-50000)%256;TH0=0x00;//TH1=0x00;TL0=0x00;//TL1=0x00;}voiddisp(void){unsignedchari;for(i=0;i<4;i++){P2=temp[i];//片選P0=table[Led[i]];//取數(shù)據(jù)顯示delay(100);//延時1毫秒}}voidmain(void){EA=1;init();TR0=1;TR1=1;ET1=1;ET0=1;while(1){if(int_flag==1){int_flag=0;sum=TL0+TH0*256+T0Count*65536;//計(jì)算脈沖個數(shù)Led[3]=sum%10000/1000;//顯示千位Led[2]=sum%1000/100;//顯示百位Led[1]=sum%100/10;//顯示十位Led[0]=sum%10;//顯示個位T1Count=0x00;T0Count=0;TH0=0x00;TL0=0x00;TR0=1;}disp();}}voidint_t1(void)interrupt3{TH1=(65535-50000)/256;TL1=(65536-50000)%256;T1Count++;if(T1Count==20){TR0=0;int_flag=1;T1Count=0x00;}}voidint_T0(void)interrupt1{T0Count++;}仿真測試結(jié)果(1)頻率為9HZ,頻率捕捉很準(zhǔn)(2)頻率為99HZ,頻率捕捉很準(zhǔn)(3)頻率為999HZ,頻率捕捉較準(zhǔn),產(chǎn)生一定誤差(4)頻率為9999HZ,頻率捕捉較準(zhǔn),產(chǎn)生較大誤差結(jié)束語在單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)時,必須先確定該系統(tǒng)的技術(shù)要求,這是系統(tǒng)設(shè)計(jì)的依據(jù)和出發(fā)點(diǎn),整個設(shè)計(jì)過程都必須圍繞這個技術(shù)要求來工作。在設(shè)計(jì)時遵循從整體到局部也即自上而下的原則。把復(fù)雜的問題分解為若干個比較簡單的、容易處理的問題,分別單個的加以解決。將總?cè)蝿?wù)分解成可以獨(dú)立表達(dá)的子任務(wù),這些子任務(wù)再向下分,直到每個子任務(wù)足夠簡單,能夠直接而容易的實(shí)現(xiàn)為止。在程序調(diào)試時應(yīng)按各個功能模塊分別調(diào)試。在程序設(shè)計(jì)時,正確合理的設(shè)計(jì)是非常重要的,正確的程序設(shè)計(jì)包括程序的結(jié)構(gòu)是否合理,一些循環(huán)結(jié)構(gòu)和循環(huán)指令的使用是否恰當(dāng),能否使用較少的循環(huán)次數(shù)或較快的指令,是否能把某些延遲等待的操作改為中斷申請服務(wù),能否把某些計(jì)算方法和查表技術(shù)適當(dāng)簡化等。另外程序的設(shè)計(jì)要具有可擴(kuò)展性,程序的結(jié)構(gòu)要標(biāo)準(zhǔn)化,便于閱讀、修改和擴(kuò)充。通過本次課程設(shè)計(jì),我更加地了解和掌握單片機(jī)的基本知識和基本的編寫程序,也更加深入地了解單片機(jī)這么課程,掌握匯編語言的設(shè)計(jì)和調(diào)試方法。對于認(rèn)識到自己在知識方面存在的不足,明確今后的學(xué)習(xí)方向是非常有益的。參考文獻(xiàn)[1]李雷等編.《集成電路應(yīng)用實(shí)驗(yàn)》.國防工業(yè)出版社2003[2]李雷等編.《電子技術(shù)應(yīng)用實(shí)驗(yàn)教程》.電子科技大學(xué)出版社,2006[3]朱紅等編.《電子技術(shù)綜合實(shí)驗(yàn)》.電子科技大學(xué)出版社,2005[4]馮

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論