畢業(yè)設(shè)計用單片機(jī)實現(xiàn)頻率計的設(shè)計_第1頁
畢業(yè)設(shè)計用單片機(jī)實現(xiàn)頻率計的設(shè)計_第2頁
畢業(yè)設(shè)計用單片機(jī)實現(xiàn)頻率計的設(shè)計_第3頁
畢業(yè)設(shè)計用單片機(jī)實現(xiàn)頻率計的設(shè)計_第4頁
畢業(yè)設(shè)計用單片機(jī)實現(xiàn)頻率計的設(shè)計_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

目錄1單片機(jī)概述 11.1什么是單片機(jī) 11.2單片機(jī)的應(yīng)用 21.3單片機(jī)歷史及發(fā)展趨勢 21.4單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)及其必需的外接電路 31.4.151單片機(jī)最小系統(tǒng) 31.4.2晶振電路 31.4.3復(fù)位電路 41.4.4定時計數(shù)器的原理 52頻率計方案選定 72.1頻率計概述 72.2頻率測量儀的設(shè)計思路與頻率計算 72.3方案設(shè)計 72.3.1方案一 82.3.2方案二 92.3.3兩種方案的比較 103系統(tǒng)軟件設(shè)計 113.1頻率計仿真模型 113.2液晶顯示部分程序設(shè)計 113.3頻率測量部分設(shè)計 143.3.1方案一程序設(shè)計 143.3.2方案二程序設(shè)計 153.4頻率計仿真結(jié)果 163.5PCB設(shè)計 184焊接及系統(tǒng)的測試 185總結(jié) 211單片機(jī)概述1.1什么是單片機(jī)單片機(jī)就是一種微型計算機(jī),是一種“程序存儲式”計算機(jī)。它是在一塊硅片上集成了中央處理器(CPU)、隨機(jī)存儲器(RAM)、程序存儲器(ROM或EPROM)、定時/計數(shù)器以及各種I/O接口,也就是集成在一塊芯片上的計算機(jī)。微處理器CPU主要由:運(yùn)算器、數(shù)據(jù)總線、控制器組成。同時,單片機(jī)具有優(yōu)異的性價比,而且集成度、可靠性高,但受集成度限制,片內(nèi)存儲器容量較小(一般內(nèi)ROM:8KB以下,內(nèi)RAM:256KB以內(nèi)),單片機(jī)的控制功能強(qiáng),易于開發(fā)和擴(kuò)展,可構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)。MCS51單片機(jī)基本組成如圖1所示。圖1MCS-51單片機(jī)基本組成單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復(fù)雜的功能要是用美國50年代開發(fā)的74系列,或者60年代的CD4000系列這些純硬件來搞定的話,電路一定是一塊大PCB板!但是如果要是用美國70年代成功投放市場的系列單片機(jī),結(jié)果就會有天壤之別!只因為單片機(jī)的通過你編寫的程序可以實現(xiàn)高智能,高效率,以及高可靠性!1.2單片機(jī)的應(yīng)用目前單片機(jī)滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說自動控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師。單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域。1.3單片機(jī)歷史及發(fā)展趨勢單片機(jī)誕生于20世紀(jì)70年代末,經(jīng)歷了SCM、MCU、SoC三大階段。SCM即單片微型計算機(jī)(SingleChipMicrocomputer)階段,主要是尋求最佳的單片形態(tài)嵌入式系統(tǒng)的最佳體系結(jié)構(gòu)?!皠?chuàng)新模式”獲得成功,奠定了SCM與通用計算機(jī)完全不同的發(fā)展道路。在開創(chuàng)嵌入式系統(tǒng)獨(dú)立發(fā)展道路上,Intel公司功不可沒。MCU即微控制器(MicroControllerUnit)階段,主要的技術(shù)發(fā)展方向是:不斷擴(kuò)展?jié)M足嵌入式應(yīng)用時,對象系統(tǒng)要求的各種外圍電路與接口電路,突顯其對象的智能化控制能力。它所涉及的領(lǐng)域都與對象系統(tǒng)相關(guān),因此,發(fā)展MCU的重任不可避免地落在電氣、電子技術(shù)廠家。從這一角度來看,Intel逐漸淡出MCU的發(fā)展也有其客觀因素。在發(fā)展MCU方面,最著名的廠家當(dāng)數(shù)Philips公司。單片機(jī)是嵌入式系統(tǒng)的獨(dú)立發(fā)展之路,向MCU階段發(fā)展的重要因素,就是尋求應(yīng)用系統(tǒng)在芯片上的最大化解決;因此,專用單片機(jī)的發(fā)展自然形成了SoC化趨勢。隨著微電子技術(shù)、IC設(shè)計、EDA工具的發(fā)展,基于SoC的單片機(jī)應(yīng)用系統(tǒng)設(shè)計會有較大的發(fā)展。因此,對單片機(jī)的理解可以從單片微型計算機(jī)、單片微控制器延伸到單片應(yīng)用系統(tǒng)。1.4單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)及其必需的外接電路1.4.151單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng)結(jié)構(gòu)如圖2所示?;疽_:電源VCC,時鐘XTAL2、XTAL1和復(fù)位RST。并行擴(kuò)展總線:數(shù)據(jù)總線P0口,地址總線P0口(低8位)、P2口(高8位)和控制總線ALE、PSEN、EA。串行通信總線:發(fā)送口TXD和接受口RXD。I/O端口:P1口為普通I/O口,P3口可復(fù)用作普通I/O口,P0、P2口不作并行口時也可作普通I/O口。圖2單片機(jī)最小系統(tǒng)結(jié)構(gòu)1.4.2晶振電路系統(tǒng)時鐘Fosc是一切微處理器、微控制器內(nèi)部電路工作的基礎(chǔ)。單片機(jī)內(nèi)部有一個自激振蕩電路,它是定時控制部件中的一部分,可以通過內(nèi)部自激振蕩或外部提供振蕩源這兩種方式,驅(qū)動內(nèi)部時鐘電路產(chǎn)生系統(tǒng)時鐘信號。內(nèi)部方式:在XTAL1、XTAL2跨接定時元件和兩個電容就構(gòu)成了自激振蕩器。如圖3.1所示。C1、C2取5-30PF,起微調(diào)和穩(wěn)定作用。晶振頻率:fosc=1.2~12MHZ,常用頻率為6、12、11.0592MHz。外部方式:外部振蕩脈沖信號直接由XTAL2端輸入,此時,XTAL1應(yīng)接地,而片內(nèi)振蕩電路不起作用,如圖3.2所示。常用于多塊8051同時工作,以便同步,要求信號低于12MHz。振蕩脈沖并不直接使用,由XTAL2端送往內(nèi)部時鐘電路:經(jīng)過2分頻,向CPU提供2相時鐘信號P1和P2;再經(jīng)3分頻,產(chǎn)生ALE時序;經(jīng)過12分頻,成為機(jī)器周期信號,如圖3.3所示。需要指出的是,CPU的運(yùn)算操作在P1期間,數(shù)據(jù)傳送在P2期間。(1)(2)(3)圖3片內(nèi)振蕩器和時鐘信號的產(chǎn)生

1.4.3復(fù)位電路復(fù)位操作就是使單片機(jī)內(nèi)部的一些部件恢復(fù)到某種預(yù)先確定的狀態(tài)。MCS-51單片機(jī)的復(fù)位信號,高電平有效。電路結(jié)構(gòu)如圖2-4,RST/VPD引腳至少保持2個機(jī)器周期的高電平,才能復(fù)位。復(fù)位時,各SFR寄存器的狀態(tài)為:(PC)=0000H;(SP)=07H;(P0~P3)=FFH;其余SFR寄存器內(nèi)容均為0;RAM的內(nèi)容保持不變。復(fù)位方式有上電自動復(fù)位、按鍵手動復(fù)位兩種。如圖4、5所示。在按鍵手動電平復(fù)位電路中,具有上電和按鍵雙重功能。圖4上電復(fù)位圖5手動&上電復(fù)位1.4.4定時計數(shù)器的原理16位的定時器/計數(shù)器實質(zhì)上就是一個加1計數(shù)器,其控制電路受軟件控制、切換。當(dāng)定時器/計數(shù)器為定時工作方式時,計數(shù)器的加1信號由振蕩器的12分頻信號產(chǎn)生,即每過一個機(jī)器周期,計數(shù)器加1,直至計滿溢出為止。顯然,定時器的定時時間與系統(tǒng)的振蕩頻率有關(guān)。因一個機(jī)器周期等于12個振蕩周期,所以計數(shù)頻率fcount=fosc·(1/12)。如果晶振為12MHz,則計數(shù)周期為:

T=1/(12×106)Hz×12=1μs

,這是最短的定時周期。若要延長定時時間,則需要改變定時器的初值,并要適當(dāng)選擇定時器的長度(如8位、13位、16位等)。當(dāng)定時器/計數(shù)器為計數(shù)工作方式時,通過引腳T0和T1對外部信號計數(shù),外部脈沖的下降沿將觸發(fā)計數(shù)。計數(shù)器在每個機(jī)器周期的S5P2期間采樣引腳輸入電平。若一個機(jī)器周期采樣值為1,下一個機(jī)器周期采樣值為0,則計數(shù)器加1。此后的機(jī)器周期S3P1期間,新的計數(shù)值裝入計數(shù)器。所以檢測一個由1至0的跳變需要兩個機(jī)器周期,故外部事年的最高計數(shù)頻率為振蕩頻率的1/24。例如,如果選用12MHz晶振,則最高計數(shù)頻率為0.5MHz。雖然對外部輸入信號的占空比無特殊要求,但為了確保某給定電平在變化前至少被采樣一次,外部計數(shù)脈沖的高電平與低電平保持時間均需在一個機(jī)器周期以上。

當(dāng)CPU用軟件給定時器設(shè)置了某種工作方式之后,定時器就會按設(shè)定的工作方式獨(dú)立運(yùn)行,不再占用CPU的操作時間,除非定時器計滿溢出,才可能中斷CPU當(dāng)前操作。CPU也可以重新設(shè)置定時器工作方式,以改變定時器的操作。由此可見,定時器是單片機(jī)中效率高而且工作靈活的部件。

綜上所述,已知定時器/計數(shù)器是一種可編程部件,所以在定時器/計數(shù)器開始工作之前,CPU必須將一些命令(稱為控制字)寫入定時/計數(shù)器。將控制字寫入定時/計數(shù)器的過程叫定時器/計數(shù)器初始化,如表1所示。在初始化過程中,要將工作方式控制字寫入方式寄存器,工作狀態(tài)字(或相關(guān)位)寫入控制寄存器,賦定時/計數(shù)初值。表1中斷工作方式列表控制寄存器定時器/計數(shù)器T0和T1有2個控制寄存器TMOD和TCON,它們分別用來設(shè)置各個定時器/計數(shù)器的工作方式,選擇定時或計數(shù)功能,控制啟動運(yùn)行,以及作為運(yùn)行狀態(tài)的標(biāo)志等。其中,TCON寄存器中另有4位用于中斷系統(tǒng)。定時器/計數(shù)器方式控制寄存器TMOD不能進(jìn)行位尋址,只能用字節(jié)傳送指令設(shè)置定時器工作方式,低半字節(jié)定義為定時器0,高半字節(jié)定義為定時器1。復(fù)位時,TMOD所有位均為0。

2頻率計方案選定2.1頻率計概述數(shù)字頻率計是計算機(jī)、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測量儀器。它是一種用十進(jìn)制數(shù)字顯示被測信號頻率的數(shù)字測量儀器。它的基本功能是測量正弦信號,方波信號及其他各種單位時間內(nèi)變化的物理量。在進(jìn)行模擬、數(shù)字電路的設(shè)計、安裝、調(diào)試過程中,由于其使用十進(jìn)制數(shù)顯示,測量迅速,精確度高,顯示直觀,經(jīng)常要用到頻率計。2.2頻率測量儀的設(shè)計思路與頻率計算頻率測量儀的設(shè)計思路主要是:對信號分頻,測量一個或幾個被測量信號周期中已知標(biāo)準(zhǔn)頻率信號的周期個數(shù),進(jìn)而測量出該信號頻率的大小,其原理如右圖6所示。圖6頻率計測頻原理若被測量信號的周期為,分頻數(shù)m1,分頻后信號的周期為T,則:T=m1Tx。由圖可知:T=NTo由于單片機(jī)系統(tǒng)的標(biāo)準(zhǔn)頻率比較穩(wěn)定,而是系統(tǒng)標(biāo)準(zhǔn)信號頻率的誤差,通常情況下很??;而系統(tǒng)的量化誤差小于1,所以由式T=NTo可知,頻率測量的誤差主要取決于N值的大小,N值越大,誤差越小,測量的精度越高。2.3方案設(shè)計有兩種方法設(shè)計頻率計。一種是使用單片機(jī)自帶的計數(shù)器對輸入脈沖進(jìn)行計數(shù),好處是設(shè)計出的頻率計系統(tǒng)結(jié)構(gòu)和程序編寫簡單,成本低廉,不需要外部計數(shù)器,直接利用所給的單片機(jī)最小系統(tǒng)就可以實現(xiàn)。這種方法的缺陷是受限于單片機(jī)計數(shù)的晶振頻率,輸入的時鐘頻率通常是單片機(jī)晶振頻率的幾分之一甚至是幾十分之一,在本次設(shè)計使用的51單片機(jī),由于檢測一個由“1”到“0”的跳變需要兩個機(jī)器周期,前一個機(jī)器周期測出“1”,后一個周期測出“0”。故輸入時鐘信號的最高頻率不得超過單片機(jī)晶振頻率的二十四分之一。另一種方法是單片機(jī)外部使用計數(shù)器對脈沖信號進(jìn)行計數(shù),計數(shù)值再由單片機(jī)讀取。好處是輸入的時鐘信號頻率可以不受單片機(jī)晶振頻率的限制,可以對相對較高頻率進(jìn)行測量,但缺點(diǎn)是成本比第一種方法高,設(shè)計出來的系統(tǒng)結(jié)構(gòu)和程序也比較復(fù)雜。其于成本考慮,采用單片機(jī)自帶的計數(shù)器進(jìn)行計數(shù),基于此種方法又可設(shè)計如下兩種方案。2.3.1方案一方案一采用定時1s測信號脈沖次數(shù),用一個定時計數(shù)器做定時中斷,定時1s,另一定時計數(shù)器僅做計數(shù)器使用,初始化完畢后同時開啟兩個定時計數(shù)器,直到產(chǎn)生1s中斷,產(chǎn)生1s中斷后立即關(guān)閉T0和T1(起保護(hù)程序和數(shù)據(jù)的作用)取出計數(shù)器寄存器內(nèi)的值就是1s內(nèi)待測信號的下跳沿次數(shù)即待測信號的頻率。用相關(guān)函數(shù)顯示完畢后再開啟T0和T1這樣即可進(jìn)入下一輪測量。方案一原理示意圖如圖7所示:圖7定時1s測信號脈沖次數(shù)示意圖根據(jù)該實驗原理待測信號的頻率不應(yīng)該大于計數(shù)器的最大值65535,也就是說待測信號應(yīng)小于65535Hz。實驗的誤差應(yīng)當(dāng)是均與的與待測信號的頻率無關(guān)。2.3.2方案二方案二測信號正半周期。對于1:1占空比的方波,僅用一個定時計數(shù)器做計數(shù)器,外部中斷引腳作待測信號輸入口,置計數(shù)器為外部中斷引腳控制(外部中斷引腳為“1”切TRx=1計數(shù)器開始計數(shù))。單片機(jī)初始化完畢后程序等待半個正半周期(以便準(zhǔn)確打開TRx)打開TRx,這時只要INTx(外部中斷引腳)為高電平計數(shù)器即不斷計數(shù),低電平則不計數(shù),待信號從高電平后計數(shù)器終止計數(shù),關(guān)閉TRx保護(hù)計數(shù)器寄存器的值,該值即為待測信號一個正半周期的單片機(jī)機(jī)器周期數(shù),即可求出待測信號的周期:待測信號周期T=2*cnt/(12/fsoc)cnt為測得待測信號的一個正半周期機(jī)器周期數(shù);fsoc為單片機(jī)的晶振。所以待測信號的頻率f=1/T。方案二原理示意圖如圖8所示:圖8測信號正半周期根據(jù)該實驗原理該方法只適用于1:1占空比的方波信號,要測非1:1占空比的方波信號。由于有執(zhí)行f=1/(2*cnt/(12/fsoc))的浮點(diǎn)運(yùn)算,而數(shù)據(jù)類型轉(zhuǎn)換時未用LCD浮點(diǎn)顯示,故測得的頻率將會被取整,如1234.893Hz理論顯示為1234Hz,測得結(jié)果會有一定程度的偏小。也就是說測量結(jié)果與信號頻率的奇偶有一定關(guān)系。由于計數(shù)器的寄存器取值在1~65535之間,用該原理時,待測信號的頻率小于單片機(jī)頻率的1/12時,單片機(jī)方可較標(biāo)準(zhǔn)的測得待測信號的正半周期。故用該原理測得信號的最高頻率理論應(yīng)為fsoc/12,如12MHZ的單片機(jī)為1MHz。而最小頻率為f=1/(2*65535/(12/fsoc)),如12MHZ的單片機(jī)為8Hz。2.3.3兩種方案的比較方法一可將計數(shù)器0更改為中斷擴(kuò)展數(shù)據(jù)位數(shù)并延長定時時間,數(shù)據(jù)處理后和測量大于65535Hz的頻率,但由T0中斷不確定性,加大了測量范圍會加大測量誤差。方法二可將硬件待測信號取反接入剩余的外部中斷接口,用于測量待測信號的負(fù)半周期,將正半周期和負(fù)半周期數(shù)相加即為待測信號的周期。這樣即可測量非均衡占空比的方波信號。方法二還可計多次正半周期取平均值,可大大提高精度,但這樣會提高實驗的最低量程。方法一誤差均衡,切易于擴(kuò)大量程,且可測量任意占空比的方波信號,但由于單片機(jī)的限制頻率越高誤差將表現(xiàn)更明顯。方法二在量程內(nèi)誤差比方法一稍小,占用CPU資源較小,但量程比方法一小,切不能測量非均衡占空比的頻率信號,超過量程測量結(jié)果完全錯誤。由此可見方法一較方法二有明顯的優(yōu)勢。但由于兩種方案的電路結(jié)構(gòu)一樣,所以可采用同一電路圖,對兩種方案均進(jìn)行實現(xiàn)。

3系統(tǒng)軟件設(shè)計3.1頻率計仿真模型數(shù)字方波頻率計的設(shè)計總體可分為兩個模塊。一是信號頻率測量,二是將測得的頻率數(shù)據(jù)顯示在1602液晶顯示模塊上。因此可搭建單片機(jī)最小系統(tǒng)構(gòu)建構(gòu)建頻率計的仿真模型。原理圖,仿真模型的總原理圖如下:圖9頻率計仿真模型3.2液晶顯示部分程序設(shè)計1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線。VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣。圖101602液晶顯示模塊連接圖1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。因為1602識別的是ASCII碼,試驗可以用ASCII碼直接賦值,在單片機(jī)編程中還可以用字符型常量或變量賦值,如'A’。1602硬件接口及功能接口部分程序://硬件接口部分**********************************************************sbitLcdRs =P2^0;sbitLcdRw =P2^1;sbitLcdEn =P2^2;sfrDBPort =0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.數(shù)據(jù)端口//向LCD寫入命令或數(shù)據(jù)************************************************************#defineLCD_COMMAND 0//Command#defineLCD_DATA 1//Data#defineLCD_CLEAR_SCREEN 0x01//清屏#defineLCD_HOMING 0x02//光標(biāo)返回原點(diǎn)//設(shè)置顯示模式************************************************************#defineLCD_SHOW 0x04//顯示開#defineLCD_HIDE 0x00//顯示關(guān) #defineLCD_CURSOR 0x02 //顯示光標(biāo)#defineLCD_NO_CURSOR 0x00//無光標(biāo) #defineLCD_FLASH 0x01//光標(biāo)閃動#defineLCD_NO_FLASH 0x00//光標(biāo)不閃動//設(shè)置輸入模式************************************************************#defineLCD_AC_UP 0x02 //將光標(biāo)返回0x00#defineLCD_AC_DOWN 0x00//default#defineLCD_MOVE 0x01//畫面可平移#defineLCD_NO_MOVE 0x00//default1602初始化流程和原理框圖voidLCD_Initial(){ LcdEn=0; LCD_Write(LCD_COMMAND,0x38);//8位數(shù)據(jù)端口,2行顯示,5*7點(diǎn)陣 LCD_Write(LCD_COMMAND,0x38); LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);//開啟顯示,無光標(biāo) LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);//清屏 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);//AC遞增,畫面不動} 圖111602初始化流程寫DDRAM地址,寫字符串原理框圖如圖12所示。寫DDRAM地址程序:voidGotoXY(unsignedcharx,bity){ if(y==0) LCD_Write(LCD_COMMAND,0x80|x); if(y==1) LCD_Write(LCD_COMMAND,0x80|(x-0x40));}寫字符串:voidPrint(unsignedchar*str){ while(*str!='\0') { LCD_Write(LCD_DATA,*str); str++; }結(jié)束結(jié)束開始y=0?x,yYN寫命令(80H+x)寫命令(80H+40H+x)寫DDRAM地址,DDRAM地址與屏幕相對應(yīng)開始*str=0?字符串首地址strYN寫寫數(shù)據(jù)*strstr地址加1結(jié)束寫字符串圖121602寫地址和字符串原理框圖3.3頻率測量部分設(shè)計3.3.1方案一程序設(shè)計用定時計數(shù)器T0做脈沖計數(shù)器(下跳沿有效),開始與暫停由T1控制定時計數(shù)器T1做定時中斷,定時1s,定時開啟置T0開始計數(shù),定時完畢,置T0為暫停,關(guān)閉T1,讀取計數(shù)數(shù)據(jù)并清空計數(shù)器,將計數(shù)數(shù)據(jù)裝換為有效規(guī)范的字符串顯示后再開啟T0和T1,進(jìn)入下一輪測量。以下是程序的核心部分:(定時1s,取計數(shù)數(shù),并將其轉(zhuǎn)換顯示出來)原理框圖如圖13所示。voidtimer1()interrupt3 //定時50ms{ TH1=THCLK; TL1=TLCLK; if(--Cnt==0) //Cnt初值為20 { TR0=0; TR1=0; Cnt=CntNum; tmp=TH0*256+TL0; TH0=TL0=0; Dynamic_LCD_Print(); TR0=1; TR1=1; }}3.3.2方案二程序設(shè)計用一個定時計數(shù)器做計數(shù)器,外部中斷引腳作待測信號輸入口,置計數(shù)器為外部中斷引腳控制(外部中斷引腳為“1”切TRx=1計數(shù)器開始計數(shù))。單片機(jī)初始化完畢后程序等待半個正半周期(以便準(zhǔn)確打開TRx)打開TRx,這時只要INTx(外部中斷引腳)為高電平計數(shù)器即不斷計數(shù),低電平則不計數(shù),待信號從高電平后計數(shù)器終止計數(shù),關(guān)閉TRx保護(hù)計數(shù)器寄存器的值,該值即為待測信號一個正半周期的單片機(jī)機(jī)器周期數(shù),即可求出待測信號的周期:待測信號周期T=2*cnt/(12/fsoc),cnt為測得待測信號的一個正半周期機(jī)器周期數(shù);fsoc為單片機(jī)的晶振。所以待測信號的頻率f=1/T。以下是程序的核心部分,原理框圖如圖13所示:voidchkfreq()//{ while(FreqIN==0); while(FreqIN==1); TR0=1; while(FreqIN==0); while(FreqIN==1); TR0=0; cnttime=500000/(TH0*256+TL0); TH0=TL0=0; tmp=(int)cnttime; Dynamic_LCD_Print();}產(chǎn)生50ms中,進(jìn)入中斷服務(wù)程序斷服務(wù)程序產(chǎn)生50ms中,進(jìn)入中斷服務(wù)程序斷服務(wù)程序計滿20次即產(chǎn)生完1s?YN關(guān)閉T0,T1保護(hù)數(shù)據(jù)從置中斷次數(shù)結(jié)束取計數(shù)器計數(shù)值,將其轉(zhuǎn)換為int型清計數(shù)器值調(diào)用函數(shù),將數(shù)據(jù)裝換有效字符串,并將其顯示出來在屏幕上顯示出來開T0,T1進(jìn)入下一輪測量方法一流程圖開始等待一個負(fù)半周期直到遇到高電平,以便于精確測量等待到遇到低電平開啟TR0等待到遇到高電平等待到遇到低電平關(guān)閉TR0取計數(shù)器計數(shù)值,將其運(yùn)算轉(zhuǎn)行為信號頻率的int類型清計數(shù)器值調(diào)用函數(shù),將數(shù)據(jù)裝換有效字符串,并將其顯示出來在屏幕上顯示出來結(jié)束方法二流程圖圖13頻率測量部分設(shè)計流程圖3.4頻率計仿真結(jié)果通過程序調(diào)試,用Protues兩種方法均可測得小于6Mhz的頻率,以下是用方法一測量1000Hz頻率的仿真圖:圖14頻率計仿真圖表2方法一頻率測量對比表表3方法二頻率測量對比表由對比結(jié)果可以看出,對于方法一:A.待測信號的頻率小于65535Hz。B.實驗的誤差2000Hz時為0.05%;10000Hz時為0.07%;50000~60000Hz時為0.073%。對于方法二:C.在頻率8-10000Hz時測得的值相當(dāng)精確,頻率為奇數(shù)時有1-2的誤差。D.頻率8-10000Hz范圍之外測得值誤差較大。3.5PCB設(shè)計打開Protel軟件,在File>New中新建一個名為數(shù)據(jù)庫文件,并將其設(shè)置合適的保存位置;雙擊Documents文件夾,再次選擇File>New菜單,打開NewDocument對話框。雙擊其中的SchematicDocument圖標(biāo),新建一個分別為Sheet1.Sch的原理圖文件。雙擊原理圖子文檔,啟動原理圖編輯器。選擇Design>Options菜單,打開DocumentOptions對話框。選擇圖紙的規(guī)格,然后單擊OK;然后就可以按照原理圖繪制了。原理圖繪制完后,加上元件的封閉,電氣規(guī)則檢查,沒有錯誤,更新PCB,自動布線,得到如圖15所示的PCB圖。圖15頻率計PCB設(shè)計圖4焊接及系統(tǒng)的測試依照原理圖焊接電路頻率計系統(tǒng)電路,串口下載電路如圖16,圖17所示。圖16頻率計系統(tǒng)

溫馨提示

  • 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

提交評論