基于單片機(jī)的簡(jiǎn)單頻率計(jì)課程設(shè)計(jì)報(bào)告_第1頁(yè)
基于單片機(jī)的簡(jiǎn)單頻率計(jì)課程設(shè)計(jì)報(bào)告_第2頁(yè)
基于單片機(jī)的簡(jiǎn)單頻率計(jì)課程設(shè)計(jì)報(bào)告_第3頁(yè)
基于單片機(jī)的簡(jiǎn)單頻率計(jì)課程設(shè)計(jì)報(bào)告_第4頁(yè)
基于單片機(jī)的簡(jiǎn)單頻率計(jì)課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩16頁(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ù)課程設(shè)計(jì)報(bào)告 頻率計(jì)目 錄1功能分析與設(shè)計(jì)目標(biāo)12 頻率計(jì)的硬件電路設(shè)計(jì)32.1 控制、計(jì)數(shù)電路32.2 譯碼顯示電路53 頻率計(jì)的軟件設(shè)計(jì)與調(diào)試63.1 軟件設(shè)計(jì)介紹63.2 程序框圖83.3 功能實(shí)現(xiàn)具體過(guò)程8 3.4 測(cè)試數(shù)據(jù)處理,圖表及現(xiàn)象描述104 討論115 心得與建議126 附錄(程序及注釋)131功能分析與設(shè)計(jì)目標(biāo)背景:在電子技術(shù)中,頻率是最基本的參數(shù)之一,并且與許多電參量的測(cè)量方案、測(cè)量結(jié)果都有十分密切的關(guān)系,因此頻率的測(cè)量就顯得更為重要。為了實(shí)現(xiàn)智能化的計(jì)數(shù)測(cè)頻,實(shí)現(xiàn)一個(gè)寬領(lǐng)域、高精度的頻率計(jì),一種有效的方法是將單片機(jī)用于頻率計(jì)的設(shè)計(jì)當(dāng)中。用單片機(jī)來(lái)做控

2、制電路的數(shù)字頻率計(jì)測(cè)量頻率精度高,測(cè)量頻率的范圍得到很大的提高。題目要求:用兩種方法檢測(cè)( m ,T )要求顯示單位時(shí)間的脈沖數(shù)或一個(gè)脈沖的周期。設(shè)計(jì)分析:電子計(jì)數(shù)式的測(cè)頻方法主要有以下幾種:脈沖數(shù)定時(shí)測(cè)頻法(M法),脈沖周期測(cè)頻法(T法),脈沖數(shù)倍頻測(cè)頻法(AM法),脈沖數(shù)分頻測(cè)頻法(AT法),脈沖平均周期測(cè)頻法(M/T法),多周期同步測(cè)頻法。下面是幾種方案的具體方法介紹。脈沖數(shù)定時(shí)測(cè)頻法(M法):此法是記錄在確定時(shí)間Tc內(nèi)待測(cè)信號(hào)的脈沖個(gè)數(shù)Mx,則待測(cè)頻率為: Fx=Mx/ Tc 脈沖周期測(cè)頻法(T法):此法是在待測(cè)信號(hào)的一個(gè)周期Tx內(nèi),記錄標(biāo)準(zhǔn)頻率信號(hào)變化次數(shù)Mo。這種方法測(cè)出的頻率是:

3、 Fx=Mo/Tx 脈沖數(shù)倍頻測(cè)頻法(AM法):此法是為克服M法在低頻測(cè)量時(shí)精度不高的缺陷發(fā)展起來(lái)的。通過(guò)A倍頻,把待測(cè)信號(hào)頻率放大A倍,以提高測(cè)量精度。其待測(cè)頻率為: Fx=Mx/ATo 脈沖數(shù)分頻測(cè)頻法(AT法):此法是為了提高T法高頻測(cè)量時(shí)的精度形成的。由于T法測(cè)量時(shí)要求待測(cè)信號(hào)的周期不能太短,所以可通過(guò)A分頻使待測(cè)信號(hào)的周期擴(kuò)大A倍,所測(cè)頻率為: Fx=AMo/Tx 脈沖平均周期測(cè)頻法(M/T法):此法是在閘門時(shí)間Tc內(nèi),同時(shí)用兩個(gè)計(jì)數(shù)器分別記錄待測(cè)信號(hào)的脈沖數(shù)Mx和標(biāo)準(zhǔn)信號(hào)的脈沖數(shù)Mo。若標(biāo)準(zhǔn)信號(hào)的頻率為Fo,則待測(cè)信號(hào)頻率為: Fx=FoMx/Mo 多周期同步測(cè)頻法:是由閘門時(shí)間T

4、c與同步門控時(shí)間Td共同控制計(jì)數(shù)器 計(jì)數(shù)的一種測(cè)量方法,待測(cè)信號(hào)頻率與M/T法相同。以上幾種方法各有其優(yōu)缺點(diǎn):脈沖數(shù)定時(shí)測(cè)頻法,時(shí)間Tc為準(zhǔn)確值,測(cè)量的精度主要取決于計(jì)數(shù)Mx的誤差。其特點(diǎn)在于:測(cè)量方法簡(jiǎn)單,測(cè)量精度與待測(cè)信號(hào)頻率和門控時(shí)間有關(guān),當(dāng)待測(cè)信號(hào)頻率較低時(shí),誤差較大。脈沖周期測(cè)頻法,此法的特點(diǎn)是低頻檢測(cè)時(shí)精度高,但當(dāng)高頻檢測(cè)時(shí)誤差較大。脈沖數(shù)倍頻測(cè)頻法,其特點(diǎn)是待測(cè)信號(hào)脈沖間隔減小,間隔誤差降低;精度比M法高A倍,但控制電路較復(fù)雜。脈沖數(shù)分頻測(cè)頻法,其特點(diǎn)是高頻測(cè)量精度比T法高A倍,但控制電路也較復(fù)雜。脈沖平均周期測(cè)頻法,此法在測(cè)高頻時(shí)精度較高,但在測(cè)低頻信號(hào)時(shí)精度較低。多周期同步測(cè)

5、頻法,此法的優(yōu)點(diǎn)是,閘門時(shí)間與被測(cè)信號(hào)同步,消除了對(duì)被測(cè)信號(hào)計(jì)數(shù)產(chǎn)生的1個(gè)字誤差,測(cè)量精度大大提高,且測(cè)量精度與待測(cè)信號(hào)的頻率無(wú)關(guān),達(dá)到了在整個(gè)測(cè)量頻段等精度測(cè)量。 功能描述:由于水平有限,本次設(shè)計(jì)采用相對(duì)簡(jiǎn)單的M法和T法兩種方法測(cè)量簡(jiǎn)單方波的頻率或脈寬(由于是輸入簡(jiǎn)單方波信號(hào),省去了被測(cè)輸入信號(hào)通過(guò)脈沖形成電路進(jìn)行放大與整形這個(gè)步驟)。利用AT89C51單片機(jī)的T0、T1的定時(shí)計(jì)數(shù)器功能,來(lái)完成對(duì)輸入的信號(hào)進(jìn)行頻率計(jì)數(shù)或脈寬計(jì)時(shí),計(jì)數(shù)(計(jì)時(shí))的頻率結(jié)果通過(guò)5位八段LED數(shù)碼管顯示器顯示出來(lái)。 設(shè)計(jì)指標(biāo):M法由于T0、T1對(duì)外部脈沖信號(hào)的最高計(jì)數(shù)頻率為振蕩頻率的1/24,而振蕩頻率為12MHz

6、,得M法最高計(jì)數(shù)頻率為500KHz,而本設(shè)計(jì)設(shè)定最高計(jì)數(shù)頻率即為500KHz。誤差要求盡量小。 T法僅設(shè)定能測(cè)的外部脈寬范圍為6553620us,以使定時(shí)計(jì)數(shù)器在不產(chǎn)生溢出中斷的情況下進(jìn)行測(cè)量。本設(shè)計(jì)的頻率測(cè)量誤差要求盡量小,實(shí)踐證明誤差控制在1/100范圍內(nèi)。2 頻率計(jì)的硬件電路設(shè)計(jì)原理介紹 放大整形電路 控制門電路 計(jì)數(shù)器電路 譯碼顯示電路待測(cè)信號(hào)圖2-1 數(shù)字式頻率計(jì)原理框圖由上圖可以看出,待測(cè)信號(hào)經(jīng)過(guò)放大整形電路后得到一個(gè)待測(cè)信號(hào)的脈沖信號(hào),然后通過(guò)計(jì)數(shù)器計(jì)數(shù),可得到需要的頻率值,最后送入譯碼顯示電路中顯示出來(lái)。但是控制部分相對(duì)重要,它在整個(gè)系統(tǒng)的運(yùn)行中起至關(guān)重要的作用。本設(shè)計(jì)控制電路

7、和計(jì)數(shù)器電路以AT89C51為核心,譯碼顯示電路采用單片機(jī)靜態(tài)顯示計(jì)數(shù)來(lái)顯示,采用5位七段LED數(shù)碼管顯示器。下面分節(jié)介紹各部分硬件電路:2.1 控制、計(jì)數(shù)電路單片機(jī)作為控制系統(tǒng)和計(jì)數(shù)器,是本次設(shè)計(jì)的最重要的部分,AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT

8、89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。所以本次設(shè)計(jì)采用AT89C51單片機(jī)。89C51單片機(jī), 它提供下列標(biāo)準(zhǔn)特征:4K字節(jié)的程序存儲(chǔ)器,128字節(jié)的RAM,32條I/O線,2個(gè)16位定時(shí)器/計(jì)數(shù)器,,一個(gè)5中斷源兩個(gè)優(yōu)先級(jí)的中斷結(jié)構(gòu),一個(gè)雙工的串行口,片上震蕩器和時(shí)鐘電路。其引腳說(shuō)明如下:引腳說(shuō)明:VCC:電源電壓。GND:接地。P0口:P0口是一組8位漏極開路型雙向I/O口,作為輸出口用時(shí),每個(gè)引腳能驅(qū)動(dòng)8個(gè)TTL邏輯門電路。當(dāng)對(duì)0端口寫入1時(shí),可以作為高阻抗輸入端使用。當(dāng)P0口訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),它還可設(shè)定成地址數(shù)據(jù)總線復(fù)用的形式

9、。在這種模式下,P0口具有內(nèi)部上拉電阻。在EPROM編程時(shí),P0口接收指令字節(jié),同時(shí)輸出指令字節(jié)在程序校驗(yàn)時(shí)。程序校驗(yàn)時(shí)需要外接上拉電阻。P0口:P0口是一帶有內(nèi)部上拉電阻的8位雙向I/O口。P0口的輸出緩沖能接受或輸出4個(gè)TTL邏輯門電路。當(dāng)對(duì)P0口寫1時(shí),它們被內(nèi)部的上拉電阻拉升為高電平,此時(shí)可以作為輸入端使用。當(dāng)作為輸入端使用時(shí),P0口因?yàn)閮?nèi)部存在上拉電阻,所以當(dāng)外部被拉低時(shí)會(huì)輸出一個(gè)低電流(IIL)。P1口:P2是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P1口的輸出緩沖能驅(qū)動(dòng)4個(gè)TTL邏輯門電路。當(dāng)向P1口寫1時(shí),通過(guò)內(nèi)部上拉電阻把端口拉到高電平,此時(shí)可以用作輸入口。作為輸入口,因?yàn)?/p>

10、內(nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出電流(IIL)。P2口在訪問(wèn)外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如MOVX DPTR)時(shí),P2口送出高8位地址數(shù)據(jù)。在這種情況下,P2口使用強(qiáng)大的內(nèi)部上拉電阻功能當(dāng)輸出1時(shí)。當(dāng)利用8位地址線訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)(例MOVX R1),P2口輸出特殊功能寄存器的內(nèi)容。當(dāng)EPROM編程或校驗(yàn)時(shí),P2口同時(shí)接收高8位地址和一些控制信號(hào)。P3口:P3是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P3口的輸出緩沖能驅(qū)動(dòng)4個(gè)TTL邏輯門電路。當(dāng)向P3口寫1時(shí),通過(guò)內(nèi)部上拉電阻把端口拉到高電平,此時(shí)可以用作輸入口。作為輸入口,因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引

11、腳被外部信號(hào)拉低時(shí)會(huì)輸出電流(IIL)。P3口同時(shí)具有AT89C51的多種特殊功能,P3.0的第二功能是串行輸入口RXD, P3.1的第二功能是串行輸出口TXD, P3.2的第二功能是外部中斷0,P3.3的第二功能是外部中斷1,P3.4的第二功能是定時(shí)器T0,P3.5的第二功能是定時(shí)器T1,P3.6的第二功能是外部數(shù)據(jù)存儲(chǔ)器寫選通/WR,P3.7的第二功能是外部數(shù)據(jù)存儲(chǔ)器讀選通/RD。M法主要使用管腳為P3.0、P3.1以及P3.5。其具體使用方法如下:P3.0口與寄存器74LS164的A,B端口連接,串行輸出待顯示的數(shù)據(jù)。 P3.1口接移位寄存器74LS164的CLK(第8引腳),輸出同步時(shí)

12、鐘信號(hào)。 P35口(即T1)輸入脈沖信號(hào)。T法主要使用管腳為P2.0、P3.0、P3.1以及P3.3。其具體使用方法如下:P2.0口接開關(guān)用于控制何時(shí)輸出顯示脈寬時(shí)間。P3.0口與寄存器74LS164的A,B端口連接,串行輸出待顯示的數(shù)據(jù)。 P3.1口接移位寄存器74LS164的CLK(第8引腳),輸出同步時(shí)鐘信號(hào)。 P35口(即T1)輸入脈沖信號(hào)。2.2 譯碼顯示電路顯示電路采用靜態(tài)顯示方式。頻率測(cè)量結(jié)果經(jīng)過(guò)譯碼,通過(guò)89C51 的串行口送出。串行口工作于模式0 ,即同步移位寄存器方式。這時(shí)從89C51 的RXD(P3. 0) 輸出數(shù)據(jù),送至串入并出移位寄存器74164 的數(shù)據(jù)輸入口A 和B

13、 ;從TXD( P3. 1) 輸出時(shí)鐘,送至74164 的時(shí)鐘輸入口CP。74164 將串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù),進(jìn)行鎖存。74164 輸出的8 位并行數(shù)據(jù)送至8 段L ED ,實(shí)現(xiàn)測(cè)量數(shù)據(jù)的顯示。使用這種方法主程序可不必掃描顯示器,從而單片機(jī)可以進(jìn)行下一次測(cè)量。這種方法也便于對(duì)顯示位數(shù)進(jìn)行擴(kuò)展。串行輸入并行輸出 7段LED 74LS1643 頻率計(jì)的軟件設(shè)計(jì)與調(diào)試 3.1 軟件設(shè)計(jì)介紹 本設(shè)計(jì)過(guò)程使用到的軟件有:WAVE軟件模擬器,keil uVision2,protuse。軟件設(shè)計(jì)過(guò)程:在keil uVision2中輸入所編程序 ,保存為以.c為后綴的文件,新建項(xiàng)目,加入剛保存的文件,編譯,

14、調(diào)試到程序編譯不顯示錯(cuò)誤。在option for target項(xiàng)中output中選中 creat hex files ,重新編譯程序,軟件生成以.hex為后綴的文件。 在protuse軟件中畫出所設(shè)計(jì)的電路模擬圖,加載入前面生成的以. Hex為后綴的文件,運(yùn)行,觀察,調(diào)試數(shù)碼管顯示的數(shù)值,并與設(shè)置的輸入信號(hào)頻率作比較,調(diào)試,分析誤差產(chǎn)生原因,改進(jìn)程序與電路圖。使用偉福軟件編譯所設(shè)計(jì)的c程序,調(diào)試到正確無(wú)誤。并最終通過(guò)硬件來(lái)驗(yàn)證所設(shè)計(jì)的頻率計(jì)是否達(dá)到先前設(shè)定的設(shè)計(jì)指標(biāo)。圖示:Keil軟件程序設(shè)計(jì) Protuse軟件模擬 Protuse是數(shù)字電路模擬常用的工具,方便易用,如圖是工作窗口:3.2 程

15、序框圖 T法:M法:開始開始 初始化程序且TH1=0,TL1=0 初始化程序,初始化數(shù)組、中間量延時(shí)程序,數(shù)碼管顯示函數(shù)延時(shí)子程序、數(shù)碼管顯示函數(shù)定義 外部輸入方波到且=1,GATE=1,T1計(jì)時(shí) 定時(shí)計(jì)數(shù)器T0、T1初始化否=0? 啟動(dòng)T0定時(shí)50ms,T1對(duì)方波計(jì)數(shù)否是T0溢出?停止計(jì)數(shù)T1停止計(jì)時(shí),數(shù)值輸出是 數(shù)值串行輸出靜態(tài)顯示 T1計(jì)數(shù)值輸出,靜態(tài)顯示 結(jié)束結(jié)束注:以上兩流程圖均只表示出程序設(shè)計(jì)的簡(jiǎn)單流程,并且只表示出處理一次測(cè)量的過(guò)程,多次測(cè)量重復(fù)以上步驟即可。具體細(xì)節(jié)或某些中間變量的賦值和對(duì)程序流程的影響詳細(xì)見(jiàn)程序注釋。3.3 功能實(shí)現(xiàn)具體過(guò)程M法具體過(guò)程:T0定時(shí)50ms,T1

16、對(duì)方波的計(jì)數(shù),數(shù)值串行輸出和靜態(tài)顯示三大部分內(nèi)容,此外還要附加延時(shí)程序以使靜態(tài)顯示數(shù)值穩(wěn)定等。具體描述如下:1 T0 實(shí)現(xiàn)50ms定時(shí): 采用12 MHz的晶體振蕩器的情況下,一秒的定時(shí)已超過(guò)了定時(shí)器可提供的最大定時(shí)值。為了實(shí)現(xiàn)一秒的定時(shí),采用定時(shí)和計(jì)數(shù)相結(jié)合的方法實(shí)現(xiàn)。選用定時(shí)計(jì)數(shù)器T0作定時(shí)器,工作于方式1產(chǎn)生50 ms的定時(shí),定時(shí)完成所得的計(jì)數(shù)值乘以20即為所測(cè)信號(hào)頻率。2 T1計(jì)數(shù)部分: 將定時(shí)器計(jì)數(shù)器的方式寄存器TMOD,用軟件賦初值51H,即B。這時(shí)定時(shí)器計(jì)數(shù)器1采用工作方式1,方式選擇位CT設(shè)為1,即設(shè)T1為16位計(jì)數(shù)器。定時(shí)器計(jì)數(shù)器O采用工作方式1,CT設(shè)為0,即設(shè)TO為16位

17、定時(shí)器。 計(jì)算計(jì)數(shù)初值:設(shè)計(jì)數(shù)初值為m,本設(shè)計(jì)采用12 MHz的晶振。機(jī)器周期=12(1晶振頻率),得等式。所以計(jì)數(shù)初值m=15536。 當(dāng)定時(shí)器計(jì)數(shù)器T1設(shè)定為計(jì)數(shù)方式時(shí),其計(jì)數(shù)脈沖是來(lái)源T1端口的外部事件。當(dāng)T1端口上出現(xiàn)由“1”(高電平)到“0”(低電平)的負(fù)跳變脈沖時(shí),計(jì)數(shù)器則加1計(jì)數(shù)。計(jì)算機(jī)是在每個(gè)機(jī)器周期的S5P2狀態(tài)時(shí)采樣T1端口,當(dāng)前一個(gè)機(jī)器周期采樣為1且后一個(gè)機(jī)器周期采樣為0時(shí),計(jì)數(shù)器加1計(jì)數(shù)。計(jì)算機(jī)需用兩個(gè)機(jī)器周期來(lái)識(shí)別1次計(jì)數(shù),因而最大計(jì)數(shù)速率為振蕩頻率的124。在采用12 MHz晶振的情況下,單片機(jī)最大計(jì)數(shù)速度為05 MHz即500 kHz。另外,此處對(duì)外部事件計(jì)數(shù)脈沖

18、的占空比(即脈沖的持續(xù)寬度)無(wú)特殊要求,但必須保證所給出的高電平在其改變之前至少被采樣1次,即至少保持1個(gè)完整的機(jī)器周期。由此可見(jiàn),從T1口輸入脈沖信號(hào),T1可實(shí)現(xiàn)對(duì)脈沖個(gè)數(shù)的計(jì)數(shù)。3 數(shù)值串行輸出和靜態(tài)顯示此部分用到了單片機(jī)的串行輸出口P3.0與P3.1.串行口控制寄存器SCON設(shè)置為0x00,即工作方式0同步移位寄存器輸入輸出方式。串行數(shù)據(jù)(計(jì)數(shù)值)通過(guò)RXD輸出,而TXD用于輸出移位時(shí)鐘,作為5個(gè)74LS164的同步信號(hào),74LS164用于擴(kuò)展并行輸出口,這種方式下,收發(fā)的數(shù)據(jù)為8位,低位在前,五起始位、奇偶校驗(yàn)位及停止位,波特率固定為振蕩頻率的1/12。發(fā)送過(guò)程中,當(dāng)執(zhí)行一個(gè)數(shù)據(jù)寫入發(fā)

19、送緩沖器SBUF的指令時(shí),串行口把SBUF中的8為數(shù)據(jù)以1/12的波特率從RXD(P3.0)端輸出,發(fā)送完畢置中斷標(biāo)志TI=1,傳送過(guò)程中將8位數(shù)據(jù)由低位到高位一位一位順序通過(guò)RXD輸出,并在TXD腳上輸出/12的移位時(shí)鐘。通過(guò)編碼09和error(錯(cuò)誤)的代號(hào)E(即當(dāng)超出量程顯示E),并根據(jù)所得計(jì)數(shù)值的各位數(shù)值,向單片機(jī)外部依次串行輸出各位的編碼,通過(guò)74LS164的并行輸出并且依靠人眼的視覺(jué)暫留現(xiàn)象能夠在5位7段LED上同時(shí)顯示各位的數(shù)值。具體程序編寫,詳見(jiàn)本論文附上的程序及程序注釋。T法具體過(guò)程:由輸如方波脈沖信號(hào),T1對(duì)方波信號(hào)的高電平部分計(jì)時(shí),計(jì)時(shí)結(jié)果串行輸出和靜態(tài)顯示三大部分,與M

20、法一樣,還要附加延時(shí)程序以使靜態(tài)顯示數(shù)值穩(wěn)定等。具體描述如下:1 由輸如方波脈沖信號(hào)方波信號(hào)通過(guò)管腳輸入檢測(cè),此處該管腳相當(dāng)于對(duì)信號(hào)的監(jiān)測(cè),通過(guò)軟件方式告之單片機(jī)哪段時(shí)間輸入信號(hào)為高電平,哪段時(shí)間為低電平。以便控制T1計(jì)時(shí)的開始和停止。2 T1對(duì)方波信號(hào)的高電平部分計(jì)時(shí)通過(guò)查詢方式,當(dāng)信號(hào)輸入管腳為1(即高電平)時(shí)進(jìn)行計(jì)時(shí),設(shè)置TMOD值為0x90,即T1為方式1的16位定時(shí)器(也可設(shè)置為計(jì)數(shù)器,效果一樣),且T1受GATE位的影響:因?yàn)镚ATE=1,只有為高電平且由軟件使TR1置一時(shí),才能啟動(dòng)定時(shí)器工作。正因?yàn)槿绱?,測(cè)量高電平脈寬顯得精確可控。定時(shí)器計(jì)時(shí)結(jié)束則可將數(shù)值輸出顯示。3 計(jì)時(shí)結(jié)果串

21、行輸出和靜態(tài)顯示此部分內(nèi)容同M法一致,詳見(jiàn)M法的功能實(shí)現(xiàn)描述。3.4 測(cè)試數(shù)據(jù)處理,圖表及現(xiàn)象描述根據(jù)設(shè)計(jì)的程序連接好硬件電路,使用偉福硬件仿真器和實(shí)驗(yàn)臺(tái)進(jìn)行測(cè)量。數(shù)據(jù)處理:a. 將輸入方波的頻率由小到大進(jìn)行變化,并讀出靜態(tài)顯示出的測(cè)量值與示波器顯示的測(cè)量值,比較二者的差別,分析誤差隨輸入信號(hào)頻率的變化情況及誤差來(lái)源,提出改進(jìn)方案。b. 過(guò)程中要求對(duì)同一頻率的輸入方波進(jìn)行多組測(cè)量,取平均值f或T(頻率或周期)。軟硬件連接圖如下:M法T法現(xiàn)象描述: M法:示波器顯示數(shù)值與靜態(tài)顯示的數(shù)值十分吻合,誤差相當(dāng)小,一般在110Hz內(nèi)。本測(cè)量在低頻段的相對(duì)測(cè)量誤差較大。增大T可以提高測(cè)量精度,但在低頻段仍

22、不能滿足要求。 T法:在低頻和高頻時(shí)誤差較大,在1KHz到一定范圍內(nèi)誤差很小。 理論上T法在低頻段精度高。但此次設(shè)計(jì)中反映的現(xiàn)象卻相反。初步分析為計(jì)時(shí)程序誤差太大,不夠合理。一個(gè)是采用的是查詢方式,不易控制計(jì)時(shí)器何時(shí)開始計(jì)時(shí)和結(jié)束,另外P2.0的按鍵延時(shí)等,誤差較大。總體而言的誤差分析:(1) 單片機(jī)計(jì)數(shù)速率的限制引起誤差。被測(cè)信號(hào)頻率越高,測(cè)量誤差越大,且所測(cè)信號(hào)頻率不能超過(guò)480 kHz。這是因?yàn)椴捎玫氖?2 MHz的晶振,單片機(jī)最大計(jì)數(shù)速度為500 kHz,所以當(dāng)被測(cè)信號(hào)越接近500 kHz時(shí),測(cè)量結(jié)果與實(shí)際頻率的誤差就越大。而當(dāng)被測(cè)信號(hào)大于500 kHz時(shí),頻率計(jì)將測(cè)不出信號(hào)頻率。(2

23、)原理上存在1誤差。由于該設(shè)計(jì)是在計(jì)數(shù)門限時(shí)間一秒內(nèi)的頻率信號(hào)脈沖數(shù),所以定時(shí)開始時(shí)的第一個(gè)脈沖和定時(shí)時(shí)間到時(shí)的最后一個(gè)脈沖信號(hào)是否被記錄,存在隨機(jī)性。這種誤差對(duì)測(cè)量頻率低的信號(hào)影響較大。由于D觸發(fā)器必須在信號(hào)的上升沿才翻轉(zhuǎn),故T0對(duì)信號(hào)脈沖個(gè)數(shù)不存在1誤差,而T1計(jì)時(shí)為信號(hào)信號(hào)周期的整數(shù)倍,則存在對(duì)T1計(jì)數(shù)的1誤差,故測(cè)量精度與被測(cè)頻率無(wú)關(guān)但若取計(jì)時(shí)時(shí)間大于0.1S(實(shí)際最小時(shí)間約為0.5S),誤差則小于0001;若對(duì)低頻信號(hào)f測(cè)量,則計(jì)時(shí)時(shí)間遠(yuǎn)大于0.1S,故誤差極小但是在高頻端分頻時(shí),由于軟件中斷、延時(shí)等原因,會(huì)導(dǎo)致脈寬的測(cè)量誤差增大,而頻率測(cè)量誤差較小(保持在0.01)誤差改進(jìn)措施:a

24、. 選用頻率較高和穩(wěn)定性好的晶振。如選24 kHz的晶振可使測(cè)量范圍擴(kuò)大,穩(wěn)定性好的晶振可以減小誤差。b. 測(cè)量頻率較高的信號(hào)時(shí),可先對(duì)信號(hào)進(jìn)行分頻,再進(jìn)行測(cè)量。c. 改進(jìn)T法計(jì)時(shí)程序,從根本上減小誤差。4 討論 本次設(shè)計(jì)實(shí)現(xiàn)了用兩種方法對(duì)外部未知頻率的方波信號(hào)的測(cè)量。M法測(cè)量的設(shè)計(jì)達(dá)到了高范圍(500KHz,在LED管位數(shù)足夠的情況下,改進(jìn)程序的顯示程序部分即可)與高精度(110hz一般情況下);T法設(shè)計(jì)由于部分程序的缺陷并未能實(shí)現(xiàn)很好的測(cè)量頻率的效果,僅能測(cè)量一定范圍的頻率。未達(dá)到設(shè)計(jì)目標(biāo)的原因詳見(jiàn)誤差分析部分。此次設(shè)計(jì)還有很大不足,尤其是在信號(hào)的對(duì)象選擇上,信號(hào)要求是方波信號(hào)。未能對(duì)任意

25、未知波形信號(hào)進(jìn)行分析測(cè)量。在今后的時(shí)間里,我們小組會(huì)繼續(xù)探索單片機(jī)設(shè)計(jì)數(shù)字頻率計(jì)的設(shè)計(jì),加上信號(hào)預(yù)處理電路,改進(jìn)信號(hào)頻率的測(cè)量方法,提高信號(hào)顯示的精度,拓展本次設(shè)計(jì)未能實(shí)現(xiàn)的各項(xiàng)頻率計(jì)應(yīng)當(dāng)具備的要求,如可選量程,科學(xué)計(jì)數(shù)顯示等等。5 心得與建議 通過(guò)此次設(shè)計(jì),我們小組的成員都受到了極大的鍛煉,對(duì)團(tuán)隊(duì)合作的重要性有了深刻認(rèn)識(shí),雖然我們面對(duì)的是一個(gè)相對(duì)簡(jiǎn)單的課題,但由于初次進(jìn)行基于單片機(jī)的課題設(shè)計(jì),所以在設(shè)計(jì)過(guò)程中,我們遇到了一些困難,也經(jīng)歷了一次又一次的困惑,最初我們嘗試著完美化我們的設(shè)計(jì),以實(shí)現(xiàn)更多的功能和提高可操縱性,卻沒(méi)有從最基本的內(nèi)容一步步做起,沒(méi)有將核心部分放在首位。正如老師講的,正確

26、的順序是先把核心部分做好,就像蓋房子一樣,先打地基定時(shí)計(jì)數(shù)是我們這次設(shè)計(jì)的核心,然后再一步一步擴(kuò)展,完善功能,向上蓋房子。生活實(shí)際中確實(shí)如此,做任何事,沒(méi)有打好基礎(chǔ),最終就不能有很好的發(fā)展。學(xué)習(xí)也是如此,對(duì)于工科的我們數(shù)學(xué)、物理等就是我們的基礎(chǔ),往往發(fā)展的瓶頸就在基礎(chǔ)部分。今后,我們小組的成員會(huì)吸收此次設(shè)計(jì)實(shí)踐收獲的寶貴經(jīng)驗(yàn),更加努力地,更加堅(jiān)定地在電子科技上一步一步腳踏實(shí)地地學(xué)習(xí)進(jìn)步。6 附 錄M法#include#define uchar unsigned char#define uint unsigned intuint numl,numh,f;code uchar k11=0xfc,0

27、x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x02,0x9e;void init() /初始化函數(shù) SCON=0x00; /串行同步移位輸出TMOD=0x51; /T1計(jì)數(shù),T0定時(shí)ET0=1; /T0中斷允許TH0=(15535)/256;TL0=(15535)%256; /T0定時(shí)50ms的初值 TH1=0; TL1=0; IT0=1; /T1計(jì)數(shù)的初值 TR0=1; TR1=1; /開始計(jì)數(shù)、定時(shí)EA=1; void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-); /延時(shí)函數(shù),del

28、ay(200);大約延時(shí)200ms.void send(uchar b) /串行輸出顯示函數(shù)部分一SBUF=b;while(!TI); /發(fā)送結(jié)束標(biāo)志TI=0; void display(uint x) /串行輸出顯示函數(shù)部分二 if(x99999)send(0x00);/0x00表示該位不顯示字符send(0x00);send(0x00);send(0x00);send(k11);/程序最大測(cè)量頻率定為100k,大于此范圍則顯示“E,指示error。else if(x9999)send(kx/10000);send(kx%10000/1000);send(kx%10000%1000/100)

29、;send(kx%10000%1000%100/10);send(kx%10000%1000%100%10);else if(x999)send(0x00);send(kx/1000);send(kx%1000/100);send(kx%1000%100/10);send(kx%1000%100%10);else if(x99)send(0x00);send(0x00);send(kx/100);send(kx%100/10);send(kx%100%10);else if(x9)send(0x00);send(0x00);send(0x00);send(kx/10);send(kx%10);

30、elsesend(0x00);send(0x00);send(0x00);send(0x00);send(kx%10);void timer_0() interrupt 1 /定時(shí)器T0中斷 TH0=(15535)/256;TL0=(15535)%256; TR1=0; TR0=0; numh=TH1; numl=TL1; TH1=0; TL1=0;/恢復(fù)初始值待下一輪測(cè)量,并將結(jié)果賦值 f=(numh8)+numl; f=f*20;/20表示中斷20次達(dá)到1s得到的頻率值 display(f); delay(200); TR0=1; TR1=1;void main() init(); /初始

31、化 while(1);/原地踏步,等待T0溢出中斷T法#include#define uchar unsigned char#define uint unsigned intsbit I=P33;sbit d=P20;uint numl,numh,f,num=0;code uchar k11=0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x9e;void init() /初始化函數(shù) SCON=0x00;/串行同步移位輸出TMOD=0x90;/T1設(shè)置為定時(shí),16位TH1=0; TL1=0;/定時(shí)初值 TR1=0;/起始時(shí)定為關(guān)定時(shí)void delay(uint z)/延時(shí)函數(shù),delay(200);大約延時(shí)200ms.uint x,y;for(x=z;x0;x-)for(y=110;y0;y

溫馨提示

  • 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)論