簡(jiǎn)易頻率計(jì)—單片機(jī)課程設(shè)計(jì)_第1頁(yè)
簡(jiǎn)易頻率計(jì)—單片機(jī)課程設(shè)計(jì)_第2頁(yè)
簡(jiǎn)易頻率計(jì)—單片機(jī)課程設(shè)計(jì)_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余29頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、課程名稱: 單片機(jī)應(yīng)用課程設(shè)計(jì)設(shè)計(jì)題目:簡(jiǎn)易頻率計(jì)的設(shè)計(jì)院 系: 電氣工程專 業(yè):年 級(jí):姓 名:指導(dǎo)教師:課程設(shè)計(jì)任務(wù)書專業(yè)姓名學(xué)號(hào)開題日期:年 月曰 完成日期 年 月 日題 目簡(jiǎn)易頻率計(jì)的設(shè)計(jì)一、設(shè)計(jì)的目的頻率計(jì)作為測(cè)量?jī)x器的一種,它的基本功能是測(cè)量信號(hào)的頻率和周 期頻率計(jì)的應(yīng)用范圍很廣,但是目前,市場(chǎng)上有各種多功能、高精度、高 頻率的數(shù)字頻率計(jì),但價(jià)格不菲。為適應(yīng)工作的需要,可以用一種較小規(guī)模 和單片機(jī)(AT89C51)相結(jié)合的頻率計(jì)的設(shè)計(jì)方案,不但切實(shí)可行,而且體積 小、設(shè)計(jì)簡(jiǎn)單、成本低、精度高、可測(cè)頻帶寬,大大降低了設(shè)計(jì)成本和實(shí) 現(xiàn)復(fù)雜度。二、設(shè)計(jì)的內(nèi)容及要求本設(shè)計(jì)以AT89C51單

2、片機(jī)為控制核心,將外部的頻率脈沖信號(hào)通過(guò)單 片機(jī)計(jì)數(shù)端輸入,由定時(shí)器/計(jì)數(shù)器TO負(fù)責(zé)定時(shí),定時(shí)器/計(jì)數(shù)器T1負(fù)責(zé) 對(duì)被測(cè)信號(hào)計(jì)數(shù),該頻率計(jì)的測(cè)量范圍為 1Hz65534Hz被測(cè)脈沖信號(hào)的 頻率可以隨時(shí)進(jìn)行調(diào)整,通過(guò)LCD液晶顯示模塊對(duì)被測(cè)信號(hào)的頻率進(jìn)行實(shí) 時(shí)顯示。該系統(tǒng)包括被測(cè)頻率脈沖信號(hào)、單片機(jī)晶振電路、以AT89C51單片機(jī)為核心的頻率測(cè)量模塊、LCD液晶顯示模塊。三、指導(dǎo)教師評(píng)語(yǔ)指導(dǎo)教師( 簽?zāi)暝抡陔娮宇I(lǐng)域內(nèi) , 頻率是一種最基本的參數(shù) , 由于頻率信號(hào)抗干擾能力 強(qiáng)、易于傳輸,可以獲得較高的測(cè)量精度。因此 , 頻率的測(cè)量就顯得尤為 重要,測(cè)頻方法的研究越來(lái)越受到重視。頻率計(jì)作為測(cè)量

3、儀器的一種, 常稱為電子計(jì)數(shù)器, 它的基本功能是測(cè) 量信號(hào)的頻率和周期頻率計(jì)的應(yīng)用范圍很廣 , 它不僅應(yīng)用于一般的簡(jiǎn)單儀 器測(cè)量, 目前, 市場(chǎng)上有各種多功能、高精度、高頻率的數(shù)字頻率計(jì) , 但價(jià) 格不菲。為適應(yīng)實(shí)際工作的需要 , 本次設(shè)計(jì)給出了一種設(shè)計(jì)方案 ,不但切實(shí)可 行, 而且體積小、設(shè)計(jì)簡(jiǎn)單、成本低、精度高、可測(cè)頻帶寬,大大降低了 設(shè)計(jì)成本和實(shí)現(xiàn)復(fù)雜度。設(shè)計(jì)主要以AT89C51單片機(jī)為控制核心,將外部 的頻率脈沖信號(hào)通過(guò)單片機(jī)計(jì)數(shù)端輸入,由定時(shí)器 /計(jì)數(shù)器T0負(fù)責(zé)定時(shí), 定時(shí)器/計(jì)數(shù)器T1負(fù)責(zé)對(duì)被測(cè)信號(hào)計(jì)數(shù),該頻率計(jì)的測(cè)量范圍為 1Hz65534Hz被測(cè)脈沖信號(hào)的頻率可以隨時(shí)進(jìn)行調(diào)整,

4、通過(guò)LCD液晶顯示模塊對(duì)被測(cè)信號(hào)的頻率進(jìn)行實(shí)時(shí)顯示。該系統(tǒng)包括被測(cè)頻率脈沖信號(hào)、 單片機(jī)晶振電路、以AT89C51單片機(jī)為核心的頻率測(cè)量模塊、LCD液晶顯 示模塊。關(guān)鍵詞:?jiǎn)纹瑱C(jī);AT89C51脈沖信號(hào);LCD顯示模塊目錄摘 要 2第 1 章 引言 41.1 研究的目的和意義 . 41.2 國(guó)內(nèi)外研究現(xiàn)狀 4第 2 章 系統(tǒng)方案設(shè)計(jì) 52.1 基本原理 . 52.1.1 測(cè)頻原理 52.1.2 頻率計(jì)的基本原理 62.2 總體設(shè)計(jì)思路 . 72.3 具體模塊 . 7第 3 章 硬件電路設(shè)計(jì) 83.1 AT89C51 主控制器模塊 . 83.1.1 主要特性 93.1.2 管腳說(shuō)明 93.2 晶

5、振電路 113.3 頻率脈沖信號(hào) . 113.4 LCD液晶顯示模塊 12第 4 章 系統(tǒng)的軟件設(shè)計(jì) 124.1 頻率測(cè)量模塊 124.2 液晶顯示模塊 16第 5 章 頻率計(jì)的系統(tǒng)調(diào)試與仿真 205.1 KEIL 中對(duì)程序的調(diào)試 205.2 Protues 中對(duì)系統(tǒng)的仿真 20附錄 24總結(jié) 29參考文獻(xiàn) 30第 1 章 引言1.1 研究的目的和意義頻率測(cè)量是電子學(xué)測(cè)量中最為基本的測(cè)量之一。 由于頻率信號(hào)抗干擾 性強(qiáng),易于傳輸, 因此可以獲得較高的測(cè)量精度。 隨著數(shù)字電子技術(shù)的發(fā) 展,頻率測(cè)量成為一項(xiàng)越來(lái)越普遍的工作, 測(cè)頻原理和測(cè)量方法的研究正 受到越來(lái)越多的關(guān)注。頻率計(jì)的主要功能是測(cè)量周

6、期信號(hào)的頻率。 其基本原理就是用閘門計(jì) 數(shù)的方式測(cè)量脈沖個(gè)數(shù)。 頻率計(jì)首先必須獲得相對(duì)穩(wěn)定與準(zhǔn)確的時(shí)間, 同 時(shí)將被測(cè)信號(hào)轉(zhuǎn)換成幅度與波形均能被數(shù)字電路識(shí)別的脈沖信號(hào), 然后通 過(guò)計(jì)數(shù)器計(jì)算這一段時(shí)間間隔內(nèi)的脈沖個(gè)數(shù),將其換算后顯示出來(lái)。1.2 國(guó)內(nèi)外研究現(xiàn)狀在電子測(cè)量領(lǐng)域中,頻率測(cè)量的精確度是最高的,可達(dá) 1010E-13 數(shù)量級(jí)。由于大規(guī)模和超大規(guī)模數(shù)字集成電路技術(shù)、 數(shù)據(jù)通信技術(shù)與單片 機(jī)技術(shù)的結(jié)合, 頻率計(jì)發(fā)展進(jìn)入了智能化和微型化的新階段。 其功能進(jìn)一 步擴(kuò)大,除了測(cè)量頻率、頻率比、周期、時(shí)間、相位、相位差等基本功能 外,還具有自撿、自校、自診斷、數(shù)理統(tǒng)計(jì)、計(jì)算方均根值、數(shù)據(jù)存儲(chǔ)和 數(shù)

7、據(jù)通信等功能。此外,還能測(cè)量電壓、電流、阻抗、功率和波形等。國(guó)際國(guó)內(nèi)通用數(shù)字頻率計(jì)的主要技術(shù)參數(shù): 1、足夠?qū)挼臏y(cè)量范圍。 隨著現(xiàn)代電子技術(shù)的發(fā)展, 特別是高速芯片技術(shù)的發(fā)展, 有些頻率計(jì)數(shù)器 能夠直接測(cè)量。 2、高精度和高分辨率。精度是指測(cè)量的準(zhǔn)確程度,即儀 器的讀數(shù)接近實(shí)際信號(hào)頻率的程度,精度越高測(cè)量越準(zhǔn)確。 3、晶體振蕩器的頻率穩(wěn)定度。晶體振蕩器的頻率穩(wěn)定度,是決定頻率計(jì)測(cè)量誤差的一個(gè)重要指標(biāo)。4、輸入靈敏度。輸入靈敏度是指在側(cè)頻范圍內(nèi)能保證正常工作的最小輸入電壓第2章系統(tǒng)方案設(shè)計(jì)2.1基本原理測(cè)頻原理所謂“頻率”就是周期性信號(hào)在單位時(shí)間(1s)內(nèi)變化的次數(shù),就是“在單位時(shí)間內(nèi)對(duì)被測(cè)信號(hào)

8、進(jìn)行計(jì)數(shù)”。我們將被測(cè)的頻率脈沖信號(hào)直接 送到單片機(jī)的計(jì)數(shù)輸入端,由定時(shí)器/計(jì)數(shù)器TO負(fù)責(zé)定時(shí),定時(shí)器/計(jì)數(shù) 器T1負(fù)責(zé)對(duì)被測(cè)信號(hào)計(jì)數(shù),一旦 TO定時(shí)時(shí)間到,立刻終止T1的計(jì)數(shù), 此時(shí)T1的計(jì)數(shù)值便是單位時(shí)間內(nèi)的脈沖個(gè)數(shù)。若在一定時(shí)間間隔T內(nèi)測(cè)得這個(gè)周期性信號(hào)的重復(fù)變化次數(shù) N,則其頻率可表示為f=N/T。我們將 TO的定時(shí)時(shí)間設(shè)為1s,當(dāng)TO定時(shí)滿1s后,立即停止T1計(jì)數(shù),此時(shí)T1 的計(jì)數(shù)值即為被測(cè)信號(hào)的頻率。定時(shí)待測(cè)信號(hào)丟失< T圖2-1頻率測(cè)量原理圖在計(jì)數(shù)時(shí)會(huì)出現(xiàn)圖2-1所示的丟失脈沖的情況。第一個(gè)丟失的脈 沖是由于開始檢測(cè)時(shí)脈沖寬度已小于機(jī)器周期 T;第二個(gè)丟失的脈沖的負(fù) 跳變?cè)?/p>

9、定時(shí)之外。定時(shí)時(shí)間內(nèi)出現(xiàn)脈沖丟失,將引起測(cè)量精度降低。脈沖 頻率越低,這種誤差越大。顯然對(duì)于較低頻率的脈沖測(cè)量不適合采用測(cè)量 頻率法。而我們本次設(shè)計(jì)就是采用這種測(cè)量頻率法對(duì)被測(cè)脈沖信號(hào)進(jìn)行頻 率測(cè)量,為解決圖一中脈沖的丟失這個(gè)問(wèn)題, 我們?cè)诔绦蛟O(shè)計(jì)中實(shí)現(xiàn)了計(jì) 數(shù)開始與脈沖上升沿的同步控制。頻率計(jì)的基本原理頻率計(jì)最基本的工作原理為:當(dāng)被測(cè)信號(hào)在特定時(shí)間段T內(nèi)的周期個(gè) 數(shù)為N時(shí),則被測(cè)信號(hào)的頻率f=N/T。在一個(gè)測(cè)量周期過(guò)程中,被測(cè)周期 信號(hào)在輸入電路中經(jīng)過(guò)放大、整形、微分操作之后形成特定周期的窄脈沖, 送到主門的一個(gè)輸入端。主門另外一個(gè)輸入端為時(shí)基電路產(chǎn)生電路產(chǎn)生的 閘門脈沖。在閘門脈沖開啟主門

10、的期間,特定周期的窄脈沖才能通過(guò)主門, 從而進(jìn)入計(jì)數(shù)器進(jìn)行計(jì)數(shù),計(jì)數(shù)器的顯示電路則用來(lái)顯示被測(cè)信號(hào)的頻率 值,內(nèi)部控制電路則用來(lái)完成各種測(cè)量功能之間的切換并實(shí)現(xiàn)測(cè)量設(shè)置.圖2-2頻率計(jì)原理圖2.2 總體設(shè)計(jì)思路頻率計(jì)是一種專門對(duì)被測(cè)信號(hào)頻率進(jìn)行測(cè)量的電子測(cè)量?jī)x器, 是我們 經(jīng)常會(huì)用到的實(shí)驗(yàn)儀器之一, 頻率的測(cè)量實(shí)際上就是在單位時(shí)間內(nèi)對(duì)脈沖 信號(hào)進(jìn)行計(jì)數(shù) , 計(jì)數(shù)值就是信號(hào)頻率。本文介紹了一種基于單片機(jī)的電子 頻率計(jì)的設(shè)計(jì)方法,此電子頻率以AT89C51單片機(jī)為控制核心,可將外部 的頻率脈沖信號(hào)通過(guò)單片機(jī)計(jì)數(shù)端輸入,由定時(shí)器/計(jì)數(shù)器T0負(fù)責(zé)定時(shí),定時(shí)器/計(jì)數(shù)器T1負(fù)責(zé)對(duì)被測(cè)信號(hào)計(jì)數(shù),一旦T0定時(shí)

11、時(shí)間到,立刻終止 T1的計(jì)數(shù),此時(shí)T1的計(jì)數(shù)值便是單位時(shí)間內(nèi)的脈沖個(gè)數(shù),我們將 T0的 定時(shí)時(shí)間設(shè)為1s,當(dāng)T0定時(shí)滿1s后,立即停止T1計(jì)數(shù),此時(shí)T1的計(jì) 數(shù)值即為被測(cè)信號(hào)的頻率。該頻率計(jì)的測(cè)量范圍為1Hz65534Hz被測(cè)脈 沖信號(hào)的頻率可以隨時(shí)進(jìn)行調(diào)整,通過(guò)LCD液晶顯示模塊對(duì)被測(cè)信號(hào)的頻 率進(jìn)行實(shí)時(shí)顯示。2.3 具體模塊根據(jù)上述系統(tǒng)分析, 該系統(tǒng)包括被測(cè)頻率脈沖信號(hào)、 單片機(jī)晶振電路、以AT89C51單片機(jī)為核心的頻率測(cè)量模塊、LCD液晶顯示模塊。各模塊作 用如下:1. 脈沖信號(hào):就是被測(cè)信號(hào), 可以隨時(shí)調(diào)整其頻率, 以便于單片機(jī)測(cè) 量。2. 單片機(jī)晶振電路:由于單片機(jī)的內(nèi)部時(shí)鐘方式是

12、用芯片內(nèi)部振蕩電 路,精度不高,溫飄也較大,外部時(shí)鐘,分 RC振蕩和石英晶振,RC精度 不高,成本低,石英晶振,精度高,穩(wěn)定性好,故我們采用單片機(jī)的晶振 電路提供時(shí)鐘信號(hào)。3. AT89C51頻率測(cè)量模塊:主要負(fù)責(zé)對(duì)脈沖信號(hào)的計(jì)數(shù),并且驅(qū)動(dòng)LCD 顯示模塊實(shí)時(shí)顯示測(cè)量值。4 LCD液晶顯示模塊:對(duì)單片機(jī)測(cè)量的頻率進(jìn)行實(shí)時(shí)顯示。綜上所述頻率計(jì)的系統(tǒng)設(shè)計(jì)由被測(cè)頻率脈沖信號(hào)、單片機(jī)晶振電路、 以AT89C51單片機(jī)為核心的頻率測(cè)量模塊、LCD液晶顯示模塊等組成,頻 率計(jì)的總體設(shè)計(jì)框圖如圖2-3所示。圖2-3頻率計(jì)總體設(shè)計(jì)框圖第3章硬件電路設(shè)計(jì)3.1 AT89C51主控制器模塊電子頻率計(jì)以AT89C5

13、1單片機(jī)為控制核心,可將外部的頻率脈沖信號(hào) 通過(guò)單片機(jī)計(jì)數(shù)端輸入,由定時(shí)器/計(jì)數(shù)器T0負(fù)責(zé)定時(shí),定時(shí)器/計(jì)數(shù)器 T1( P3.5)負(fù)責(zé)對(duì)被測(cè)信號(hào)計(jì)數(shù),一旦T0定時(shí)時(shí)間到,立刻終止T1的計(jì) 數(shù),此時(shí)T1的計(jì)數(shù)值便是單位時(shí)間內(nèi)的脈沖個(gè)數(shù),我們將T0的定時(shí)時(shí)間設(shè)為1s,當(dāng)TO定時(shí)滿1s后,立即停止T1計(jì)數(shù),此時(shí)T1的計(jì)數(shù)值即為 被測(cè)信號(hào)的頻率。U11 13 1.231(34B 1.457 1.5 R1.614J.3>XTAL1PO.O/ADOro.i/ADiP0J/AD2XT AL2PO j/ADj P0.4/AD4PO.S/ADSP0.6/ADSRSTPO.7/AD7PSENP2.CWA0P

14、Z1 風(fēng)9P2 2/A1CP2 3/A11ALEP2.4/A12EAP2.5/A13P2JEM14P27M15R1.0P3.0/RXDPI .1ra.iriXDPl 2PJ.zJiNlTOPl 3P3.3J1N1T1rl flrJ.fln DI門JbrJ.&fl 1IPI JoF3JBA*vnFM 7P3.7JRDA189C51Th-圖3-1 AT89C51主控模塊3.1.1 主要特性AT89C51提供以下標(biāo)準(zhǔn)功能:4k字節(jié)Flash閃速存儲(chǔ)器,128字節(jié) 內(nèi)部RAM 32個(gè)I/O 口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中 斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí)

15、,AT89C51 可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。 空閑 方式停止CPU勺工作,但允許RAM定時(shí)/計(jì)數(shù)器,串行通信口及中斷系 統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它 所有部件工作直到下一個(gè)硬件復(fù)位。管腳說(shuō)明VCC供電電壓GND接地。P0 口: P0 口為一個(gè)8位的漏級(jí)開路雙向I/O 口,每腳可吸收8TTL 門電流。當(dāng)P0 口的管腳第一次寫1時(shí),被定義為高阻輸入。在 FIASH編 程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí) P 0外部必須接上拉電阻。P1 口: P1 口是一個(gè)內(nèi)部提供上拉電阻的 8位雙向I/O

16、 口,P1 口緩沖 器能接收輸出4TTL門電流。P2 口: P2 口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O 口,P2 口緩沖器可 接收,輸出4個(gè)TTL門電流,當(dāng)P2 口被寫“ 1”時(shí),其管腳被內(nèi)部上拉電 阻拉高,且作為輸入。P2 口在FLASHS程和校驗(yàn)時(shí)接收高八位地址信號(hào) 和控制信號(hào)。P3 口: P3 口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O 口,可接收輸出 4個(gè)TTL門電流。當(dāng)P3 口寫入“1”后,它們被內(nèi)部上拉為高電平,并用 作輸入。作為輸入,由于外部下拉為低電平,P3 口將輸出電流(ILL )這是由于上拉的緣故。RST復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。XT

17、AL1反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2來(lái)自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反 向放大器可以配置為片內(nèi)振蕩器。 石晶振蕩和陶瓷振蕩均可采用。 如采用 外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一 個(gè)二分頻觸發(fā)器, 因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求, 但必須保證脈 沖的高低電平要求的寬度。3.2晶振電路由于單片機(jī)的內(nèi)部時(shí)鐘方式是用芯片內(nèi)部振蕩電路,精度不高,溫漂 也較大,外部時(shí)鐘,分RC振蕩和石英晶振,RC精度不高,成本低,石英 晶振,精度高,穩(wěn)定性好,故我們采用單片機(jī)的晶振電路提供時(shí)鐘信號(hào)。&l

18、t;TEXT>C2C1XCRYSTAL<TEXT> 130p圖3-2晶振電路3.3頻率脈沖信號(hào)頻率脈沖信號(hào)就是被測(cè)信號(hào),可以隨時(shí)調(diào)整其頻率,以便于單片機(jī)測(cè)量,直接在protues左側(cè)工具條內(nèi)的一個(gè) Generator Mode工具中選擇DCLOC放置頻率脈沖信號(hào)(如圖3-3 )。圖3-3頻率脈沖信號(hào)3.4 LCD 液晶顯示模塊LCD液晶顯示器是一種被動(dòng)式的顯示器,與 LED不同,液晶本身并不 發(fā)光,而是利用液晶在電壓作用下, 能改變光線通過(guò)方向的特性而達(dá)到顯 示白底黑字或黑底白字的目的。 液晶顯示器具有微功耗、 體積小、重量輕、 超薄型等諸多其他顯示器件所無(wú)法比擬的優(yōu)點(diǎn), 在

19、袖珍式儀表和低功耗系 統(tǒng)中,得到越來(lái)越廣泛的應(yīng)用, 目前市場(chǎng)上液晶顯示器種類繁多, 按排列 形狀可分為字段型、 點(diǎn)陣字符型、 點(diǎn)陣圖形型,在單片機(jī)應(yīng)用系統(tǒng)中, 常 使用點(diǎn)陣字符型LCD顯示器。字符型液晶顯示模塊組件內(nèi)部主要由 LCD顯示屏(LCDPanel)、控制 器( Controller )、驅(qū)動(dòng)器( Driver )、少量阻容原件、結(jié)構(gòu)件等裝配在 PCB±構(gòu)成。第 4 章 系統(tǒng)的軟件設(shè)計(jì)4.1 頻率測(cè)量模塊將定時(shí)器TO設(shè)置在定時(shí)方式2,定時(shí)時(shí)間為250us,滿4000次中斷 正好是1s,定時(shí)器T1工作于計(jì)數(shù)方式1,計(jì)數(shù)初值為0。在啟動(dòng)定時(shí)器 T0開始定時(shí)后,隨即對(duì)送到T1( P

20、3.5)引腳的被測(cè)脈沖進(jìn)行計(jì)數(shù),當(dāng)T0 定時(shí)滿 1s 后,立即停止 T1 計(jì)數(shù),關(guān)閉定時(shí)器 T0, T1 的計(jì)數(shù)值即為被測(cè) 信號(hào)的頻率,程序流程圖如圖 4-1 。開始設(shè)BLTO電時(shí)方式2. TI計(jì)歎方式1為250叫 TD中斷4000次哉覽T1汁枚刨fliftrnrro:7FW籌待就測(cè)依弓便他尊肺哦觀倍蘋空m啟礪TOH忙.Till tt靈閉ro. ri圖4-1頻率測(cè)量頻率測(cè)量其中,中斷服務(wù)子程序流程圖如下:圖4-2中斷服務(wù)子程序程序流程框圖如下:頻率測(cè)量主函數(shù)中,還進(jìn)行了數(shù)據(jù)轉(zhuǎn)換以及調(diào)用顯示模塊進(jìn)行顯示其圖4-3頻率測(cè)量主函數(shù)頻率測(cè)量模塊源程序:#in clude<reg51.h>#

21、i nclude<i ntri ns.h>#defi ne uchar un sig ned char#defi ne uint un sig ned intvoid ini t_lcd(void);void disp_str(uchar x,uchar y,uchar *p);sbit FS=P3A5; /被測(cè)信號(hào)FS輸入端bit RDY=0; / 測(cè)量完成標(biāo)志ui nt ms n; /定時(shí)中斷計(jì)數(shù)RDY=0;TMOD=Ox52; /TO :定時(shí)方式2, T1:計(jì)數(shù)方式1TH0=TL0=6;/T0 定時(shí)時(shí)間為 250usmsn=4OOO; /4OOO 次中斷正好 1sTH1=TL

22、1=OxOO; /T1 工作于計(jì)數(shù)方式,初值為 OETO=1; /允許TO中斷EA=1; / 開中斷while(FS=1); / 等待被測(cè)信號(hào)變低while(FS=O); / 等待被測(cè)信號(hào)變高TRO=1; /TO 開始定時(shí)TR1=1; /T1 開始計(jì)數(shù)while(RDY=O); / 等待 1sTR1=O;/ 關(guān)閉 T1、TOTRO=O;return(TH1*256+TL1); / 返回計(jì)數(shù)值void timerO(void) interrupt 1 using 1 msn-;if(msn=O)/ 如果 1s 已到RDY=1; / 設(shè)置測(cè)量完成標(biāo)志位 void main()uint f;ucha

23、r str9="f= Hz"uchar i;init_lcd(); / 液晶屏初始化while(1)f=count(); / 測(cè)量頻率_nop_();for(i=6;i>=2;i-)/ 測(cè)量結(jié)果轉(zhuǎn)換為 5 位 ASCII 碼stri=f%10+0x30;f=f/10;disp_str(0,3,str); / 顯示測(cè)量結(jié)果4.2 液晶顯示模塊液晶顯示模塊是一個(gè)顯示的子程序, 主要供頻率測(cè)量模塊調(diào)用, 以便 在液晶屏上顯示出實(shí)時(shí)的頻率測(cè)量值, 它的編程比較固定, 無(wú)非就是按照 LCD液晶顯示屏的參數(shù)要求的指令系統(tǒng)來(lái)編寫程序,其程序流程圖4-4。圖4-4液晶顯示液晶顯示模塊

24、源程序:#in clude<reg52.h>#i nclude<i ntri ns.h>#defi ne uchar un sig ned char#defi ne uint un sig ned intsbit RS=P2A0;/數(shù)據(jù)/命令寄存器選擇控制端sbit RW=P2A1;/讀寫控制端sbit E=P2A2;/使能控制端sfr LCD=0x90;P1口作為總線端口sbit BF=LCDA7;/就緒線BF,低電平有效void lcd_cmd(uchar cmd) LCD=cmd;RS=0;選擇命令寄存器RW=0;執(zhí)行寫數(shù)據(jù)操作E=1;_nop_();/ 延時(shí)E=

25、0; / 使能信號(hào)有效while(1)LCD=0xff;/ 總線變高RS=0; / 選擇命令寄存器RW=1;/ 讀操作E=0; / 使能信號(hào)有效_nop_();E=1; / 撤銷使能信號(hào) if(BF=0)break; / 如果就緒,返回 void lcd_dat(uchar dat)LCD=dat;/ 顯示數(shù)據(jù)總線RS=1;/ 選擇數(shù)據(jù)寄存器RW=0;/ 執(zhí)行寫數(shù)據(jù)操作E=1;_nop_();/ 延時(shí)E=0; / 使能信號(hào)有效while(1)LCD=0xff;/ 總線變高RS=0; / 選擇命令寄存器RW=1;/ 讀操作E=0; / 使能信號(hào)有效_nop_();E=1; / 撤銷使能信號(hào) if

26、(BF=0)break; / 如果就緒,返回 dat=LCD;void init_lcd(void)/lcd_cmd(0x01); /lcd_cmd(0x3c); /lcd_cmd(0x0c); /初始化液晶屏清屏幕設(shè)置雙行顯示, 5*10 點(diǎn)陣 開顯示,關(guān)閉光標(biāo)在 x 行、 y 列顯void disp_str(uchar x,uchar y,uchar *p) /示字符串 pif(x=0) / 如果在第一行顯示 lcd_cmd(0x80+y); / 設(shè)置寫入地址 else / 如果在第二行顯示 lcd_cmd(0xc0+y);/ 設(shè)置寫入地址while(*p) / 將字符依次發(fā)送到液晶屏 l

27、cd_dat(*p+);第5章 頻率計(jì)的系統(tǒng)調(diào)試與仿真5.1 KEIL 中對(duì)程序的調(diào)試德國(guó)的KEIL軟件公司提供了一流的8051系列開發(fā)工具,將軟件開發(fā) 工具綁定到不同的套件或工具包中。 KEIL 8051開發(fā)工具套件可用于編譯 C源程序、匯編源程序,鏈接和定位目標(biāo)文件及庫(kù),創(chuàng)建 HEX文件以及調(diào) 試目標(biāo)程序,我們進(jìn)入到KEIL中的集成開發(fā)環(huán)境,對(duì)所編寫的程序進(jìn)行 了調(diào)試,使其生成了目標(biāo)文件(HEX文件),如圖5-1所示file £drt 協(xié)PrqWl Rubuq Rish Prriphmls- ooh SVCS 蹩1dow Help冏w口肚a彳 Q fF f" z4 %

28、j*17i« (js adsja弟逋曲M A|te-|"(I' 1 'Hacluile-cieSL-iij-IlnLudrKintFinB. h> 口勺匕 unilQEifdi JdsriDft 口inc unaigned lore Eld ifiitlGdtvijidl r ve-ldi di.Jc3i_.tLELiehAx 乩.d£h*x pi :! J T.r時(shí) EB 口 Source1e 囤 arasaif If*g5i h Fl intn ns h圖5-1程序的調(diào)試di?p_rtriwihjir叭vch増:r階曲1« 咋&

29、quot;在r吁-丫列娶承于軒鼻pled cuL啊 10艮汁 /HtHSE ltd_dcgxteF?"說(shuō):眾忖:a 丙 lcd_oid.iCct j j 界"E示,費(fèi)囲 死肯12(101frAS-tla±“知用在貝二廿國(guó)術(shù):LcdjCBdNCmMyp 和設(shè);乓 4*聯(lián)Ptiile7*pl"靜律冊(cè)用灰嵐進(jìn)匚浪豪再lCdJ reg52.h 1 Cl intrinrJhobit I3-f>x5s /ttWflYF34bAI|B 固UDOipili噸 簡(jiǎn)塾瑕率汁之頻率測(cè)量上. compi 1 ing丘示匚- linking ,Program Eizcr:

30、da?-a"25t 1 nd-ata-D cod.e"8D5 croating Mac f ila frc<n "fin(fi率計(jì)"Ifi劇如醪計(jì)“ -D Errer(5, 0 Wflrningfls B5.2 Protues 中對(duì)系統(tǒng)的仿真我們采用Protues軟件對(duì)系統(tǒng)進(jìn)行仿真,將 KEIL生成的HEX文件下載入單片機(jī)中,點(diǎn)擊OK開始進(jìn)行系統(tǒng)的仿真,如圖5-2所示胡魚U ”九元坪慷主- 元件辱BlATB9C51n«r rPCB PAck-age01140二2 | Hide AldPiogian Fie:SeHLIi帛靖員刊車i&quo

31、t; .hexuHid? Al匚kick Frequency Adh'anced Piopertie-s:I>1HeHiMAI|Nql-liEi£ AlmhElgertiSE當(dāng)前元與仿頁(yè)附咖慶惶快當(dāng)柘元flPFia于fob制j»3 EC 擊転*=W電 =館4 口決圖5-2 Protues 中對(duì)hex文件的選擇在Protues中雙擊被測(cè)頻率脈沖信號(hào)t1,在Frequency中將其頻率 設(shè)定為6443,如圖5-3所示:»iw; _fln_ !'西 Digital Clodc Generator Pfoprrties砂耐怎茗稱CHS 冬正擅 Q廉沖

32、£、甘噬鋰H沖Oi#c*«CtiiiJiC*SFM0 E«r HQL數(shù)字賓曰 理戀 Q單邊右 甲甘沖4 m*刪HOL臬一牛邊沿刪時(shí)間.0 SSflfel.時(shí)神克2! 爭(zhēng)低-高-低討 鬲-低-刃雅申囹囹囹廠電忘便與前縱皤36手RW 應(yīng)總算展性圖5-3頻率的設(shè)定點(diǎn)擊OK然后在Protues中點(diǎn)擊Play開始進(jìn)行系統(tǒng)仿真,仿真結(jié)果如圖5-4所示:XI £JK>TAL<t.T«kL1X.TAL3PO 1MD1FO SfflDS 4MI>4 r&SWM- PG WWW簽一需遵盞LCD1LNDVLf=0t4+3HzPHEN

33、3;21J1*P21«S 號(hào)如付 P21M1-I 円斗首專F-2 7JA15n.yp®F33HTT丹ft® 圖5-4仿真結(jié)果我們按照上面的方法,依次改變被測(cè)頻率脈沖信號(hào)的頻率,在Protues軟件中進(jìn)行反復(fù)的調(diào)試仿真,LCD1LMtMCL軟件仿真結(jié)果如圖5-5 :-f=00001HZ-協(xié)O 111旨- 曲牡咽羋|羋陽(yáng):LCD1LM016L:H'1'l :5,Ng r tgC"r-Jco i- i品3出也M口 uQ 口査AAAAK K UJ OaQO0 匚1口上圖5-5從記錄的數(shù)據(jù)可以看出,系統(tǒng)軟件仿真誤差很小,在信號(hào)頻率范圍內(nèi) 測(cè)量出來(lái)的

34、頻率基本上就是輸入信號(hào)的頻率, 在超出這個(gè)范圍后,才出現(xiàn) 很小的誤差。這可能是由于硬件電路信號(hào)傳輸延時(shí), 或者晶振電路產(chǎn)生的 時(shí)鐘信號(hào)誤差造成的,也可能是由于軟件中執(zhí)行語(yǔ)句的延時(shí)造成的, 在高 頻率下就會(huì)出現(xiàn)很小的誤差,但是可以看出,誤差在允許范圍內(nèi),所設(shè)計(jì) 的電路基本符合要求。附錄源程序: 頻率測(cè)量模塊源程序#include<reg51.h> #include<intrins.h>#define uchar unsigned char#define uint unsigned int void init_lcd(void);void disp_str(uchar x,

35、uchar y,uchar *p);sbit FS=P3A5; /被測(cè)信號(hào)FS輸入端bit RDY=0; / 測(cè)量完成標(biāo)志 uint msn; / 定時(shí)中斷計(jì)數(shù)uint count(void)/ 測(cè)量 FS 的頻率RDY=0;TMOD=Ox52; /TO :定時(shí)方式2, T1 :計(jì)數(shù)方式1 TH0=TL0=6;/T0 定時(shí)時(shí)間為 250us msn=4OOO; /4OOO 次中斷正好 1s TH1=TL1=OxOO; /T1 工作于計(jì)數(shù)方式,初值為 O ET0=1; /允許T0中斷 EA=1; / 開中斷while(FS=1); / 等待被測(cè)信號(hào)變低while(FS=0); / 等待被測(cè)信號(hào)變

36、高TR0=1; /T0 開始定時(shí)TR1=1; /T1 開始計(jì)數(shù)while(RDY=0); / 等待 1sTR1=0; / 關(guān)閉 T1、T0TR0=0;return(TH1*256+TL1); / 返回計(jì)數(shù)值void timer0(void) interrupt 1 using 1msn-;if(msn=0) / 如果 1s 已到RDY=1; / 設(shè)置測(cè)量完成標(biāo)志位void main()uint f;uchar str9="f= Hz"uchar i;init_lcd(); / 液晶屏初始化while(1)f=count(); / 測(cè)量頻率_nop_();5 位 ASCII

37、碼for(i=6;i>=2;i-)/ 測(cè)量結(jié)果轉(zhuǎn)換為stri=f%10+0x30;f=f/10;顯示測(cè)量結(jié)果disp_str(0,3,str); /液晶顯示模塊源程序:#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit RS=P2P; /數(shù)據(jù)/命令寄存器選擇控制端sbit RW=P2A1; / 讀寫控制端sbit E=P2A2;/使能控制端sfr LCD=0x90; /P1 口作為總線端口sbit BF=LCDA7; / 就緒線BF,低電平有效void lcd_cmd(uchar cmd) LCD=cmd;RS=0;/ 選擇命令寄存器RW=O;執(zhí)行寫數(shù)據(jù)操作E=1;_nop_();/ 延時(shí)E=O; / 使能信號(hào)有效while(1)LCD=0xff;/ 總線變高RS=0; / 選擇命令寄存器RW=1;/ 讀操作E=0; / 使能信號(hào)有效_nop_();E=1; / 撤銷使能信號(hào) if(BF=0)break; / 如果就緒,返回 void lcd_dat

溫馨提示

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