版權(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) 開(kāi)題日期: 年 月 日 完成日期 年 月 日題 目 簡(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ù)雜
2、度。 二、設(shè)計(jì)的內(nèi)容及要求 本設(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)整,通過(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ǔ) 四、成 績(jī) 指導(dǎo)教師 (簽章) 年 月 日摘 要在電子領(lǐng)域內(nèi),頻率是一種最基本的參數(shù),由于頻率信號(hào)抗干擾能力強(qiáng)、易于傳輸,可以獲得較高的測(cè)量精度。因此,頻率的測(cè)量就
3、顯得尤為重要,測(cè)頻方法的研究越來(lái)越受到重視。 頻率計(jì)作為測(cè)量?jī)x器的一種,常稱為電子計(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è)量范圍為1Hz65534
4、Hz,被測(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液晶顯示模塊。關(guān)鍵詞:?jiǎn)纹瑱C(jī);AT89C51;脈沖信號(hào);LCD顯示模塊目錄摘 要2第1章 引言31.1研究的目的和意義31.2 國(guó)內(nèi)外研究現(xiàn)狀3第2章 系統(tǒng)方案設(shè)計(jì)42.1基本原理42.1.1 測(cè)頻原理42.1.2 頻率計(jì)的基本原理52.2總體設(shè)計(jì)思路62.3具體模塊6第3章 硬件電路設(shè)計(jì)73.1 AT89C51主控制器模塊73.1.1 主要特性83.1.2 管腳說(shuō)明83.2 晶振電路103.3頻率
5、脈沖信號(hào)103.4 LCD液晶顯示模塊11第4章 系統(tǒng)的軟件設(shè)計(jì)114.1 頻率測(cè)量模塊114.2 液晶顯示模塊15第5章 頻率計(jì)的系統(tǒng)調(diào)試與仿真195.1 KEIL中對(duì)程序的調(diào)試195.2 Protues中對(duì)系統(tǒng)的仿真19附錄23總結(jié)28參考文獻(xiàn)29第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è)量周期信號(hào)的頻率。其基本原理就是用閘門計(jì)數(shù)的方式測(cè)量脈沖個(gè)數(shù)。頻率計(jì)首先必須獲得相對(duì)穩(wěn)
6、定與準(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ù)據(jù)通信等功能。此外,還能測(cè)量電壓、電流、阻抗、功率和波形等。 國(guó)際國(guó)內(nèi)通用數(shù)字頻率計(jì)的主要技術(shù)
7、參數(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基本原理2.1.1 測(cè)頻原理所謂“頻率”就是周期性信號(hào)在單位時(shí)間(1s)內(nèi)變化的次數(shù),就是“在單位時(shí)間內(nèi)對(duì)被測(cè)信號(hào)進(jìn)行計(jì)數(shù)”。我們將被測(cè)的頻率脈沖信號(hào)直接送到單片機(jī)的計(jì)數(shù)輸入端,由定時(shí)器/計(jì)數(shù)器T0負(fù)責(zé)定時(shí),
8、定時(shí)器/計(jì)數(shù)器T1負(fù)責(zé)對(duì)被測(cè)信號(hào)計(jì)數(shù),一旦T0定時(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。我們將T0的定時(shí)時(shí)間設(shè)為1s,當(dāng)T0定時(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è)丟失的脈沖是由于開(kāi)始檢測(cè)時(shí)脈沖寬度已小于機(jī)器周期T;第二個(gè)丟失的脈沖的負(fù)跳變?cè)诙〞r(shí)之外。定時(shí)時(shí)間內(nèi)出現(xiàn)脈沖丟失,將引起測(cè)量精度降低。脈沖頻率越低,這種誤差越大。顯然對(duì)于較低頻
9、率的脈沖測(cè)量不適合采用測(cè)量頻率法。而我們本次設(shè)計(jì)就是采用這種測(cè)量頻率法對(duì)被測(cè)脈沖信號(hào)進(jìn)行頻率測(cè)量,為解決圖一中脈沖的丟失這個(gè)問(wèn)題,我們?cè)诔绦蛟O(shè)計(jì)中實(shí)現(xiàn)了計(jì)數(shù)開(kāi)始與脈沖上升沿的同步控制。2.1.2 頻率計(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)生的閘門脈沖。在閘門脈沖開(kāi)啟主門的期間,特定周期的窄脈沖才能通過(guò)主門,從而進(jìn)入計(jì)數(shù)器進(jìn)行計(jì)數(shù),計(jì)數(shù)器的顯示電路則用來(lái)顯示被測(cè)信號(hào)的頻率
10、值,內(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í)時(shí)間到,立刻終止T1的計(jì)數(shù),此時(shí)T1的計(jì)數(shù)值便是單位時(shí)間內(nèi)的脈沖個(gè)數(shù),我們將T0的定時(shí)時(shí)間設(shè)為1s,當(dāng)T0定時(shí)滿1s后,立
11、即停止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í)鐘方式是用芯片內(nèi)部振蕩電路,精度不高,溫飄也較大,外部時(shí)鐘,分RC振蕩和石英晶振,RC精度不高,成本低,石英晶振,精度高,穩(wěn)定性好,故我們采用單片機(jī)的晶振電路
12、提供時(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ì)以AT89C51單片機(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í)間到
13、,立刻終止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)的頻率。圖 3-1 AT89C51主控模塊 主要特性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í),AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM
14、中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。3.1.2 管腳說(shuō)明VCC:供電電壓。 GND:接地。 P0口:P0口為一個(gè)8位的漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時(shí),被定義為高阻輸入。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須接上拉電阻。 P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸
15、入。P2口在FLASH編程和校驗(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í)間。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 XTAL2:來(lái)自反向振蕩器的輸出。 振蕩器特性: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部
16、時(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)。圖3-2 晶振電路3.3頻率脈沖信號(hào)頻率脈沖信號(hào)就是被測(cè)信號(hào),可以隨時(shí)調(diào)整其頻率,以便于單片機(jī)測(cè)量,直接在protues左側(cè)工具條內(nèi)的一個(gè)Generator Mode工具中選擇DCLOCK放置頻率脈沖信號(hào)(如圖3-3)。圖3-3 頻率脈沖信號(hào)
17、3.4 LCD液晶顯示模塊LCD液晶顯示器是一種被動(dòng)式的顯示器,與LED不同,液晶本身并不發(fā)光,而是利用液晶在電壓作用下,能改變光線通過(guò)方向的特性而達(dá)到顯示白底黑字或黑底白字的目的。液晶顯示器具有微功耗、體積小、重量輕、超薄型等諸多其他顯示器件所無(wú)法比擬的優(yōu)點(diǎn),在袖珍式儀表和低功耗系統(tǒng)中,得到越來(lái)越廣泛的應(yīng)用,目前市場(chǎng)上液晶顯示器種類繁多,按排列形狀可分為字段型、點(diǎn)陣字符型、點(diǎn)陣圖形型,在單片機(jī)應(yīng)用系統(tǒng)中,常使用點(diǎn)陣字符型LCD顯示器。字符型液晶顯示模塊組件內(nèi)部主要由LCD顯示屏(LCD Panel)、控制器(Controller)、驅(qū)動(dòng)器(Driver)、少量阻容原件、結(jié)構(gòu)件等裝配在PCB上
18、構(gòu)成。第4章 系統(tǒng)的軟件設(shè)計(jì)4.1 頻率測(cè)量模塊將定時(shí)器T0設(shè)置在定時(shí)方式2,定時(shí)時(shí)間為250us,滿4000次中斷正好是1s,定時(shí)器T1工作于計(jì)數(shù)方式1,計(jì)數(shù)初值為0。在啟動(dòng)定時(shí)器T0開(kāi)始定時(shí)后,隨即對(duì)送到T1(P3.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。圖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è)量模塊源程序: #include<reg51.h&
19、gt; #include<intrins.h> #define uchar unsigned char #define uint unsigned int void init_lcd(void); void disp_str(uchar x,uchar y,uchar *p); sbit FS=P35; /被測(cè)信號(hào)FS輸入端 bit RDY=0; /測(cè)量完成標(biāo)志 uint msn; /定時(shí)中斷計(jì)數(shù) uint count(void)/測(cè)量FS的頻率 RDY=0; TMOD=0x52;/T0:定時(shí)方式2,T1:計(jì)數(shù)方式1 TH0=TL0=6;/T0定時(shí)時(shí)間為250us msn=4000
20、;/4000次中斷正好1sTH1=TL1=0x00; /T1工作于計(jì)數(shù)方式,初值為0ET0=1;/允許T0中斷EA=1;/開(kāi)中斷while(FS=1); /等待被測(cè)信號(hào)變低while(FS=0);/等待被測(cè)信號(hào)變高TR0=1;/T0開(kāi)始定時(shí)TR1=1;/T1開(kāi)始計(jì)數(shù)while(RDY=0);/等待1sTR1=0;/關(guān)閉T1、T0TR0=0;return(TH1*256+TL1); /返回計(jì)數(shù)值 void timer0(void) interrupt 1 using 1 msn-; if(msn=0)/如果1s已到 RDY=1;/設(shè)置測(cè)量完成標(biāo)志位 void main() uint f; uch
21、ar 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 液晶顯示液晶顯示模塊源程序:
22、#include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit RS=P20; /數(shù)據(jù)/命令寄存器選擇控制端 sbit RW=P21; /讀寫控制端 sbit E=P22; /使能控制端 sfr LCD=0x90; /P1口作為總線端口 sbit BF=LCD7; /就緒線BF,低電平有效 void lcd_cmd(uchar cmd) LCD=cmd; RS=0;/選擇命令寄存器 RW=0;/執(zhí)行寫數(shù)據(jù)操作 E=1; _nop_();/延時(shí)
23、 E=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)
24、if(BF=0)break; /如果就緒,返回dat=LCD; void init_lcd(void)/初始化液晶屏 lcd_cmd(0x01); /清屏幕lcd_cmd(0x3c); /設(shè)置雙行顯示,5*10點(diǎn)陣lcd_cmd(0x0c); /開(kāi)顯示,關(guān)閉光標(biāo) void disp_str(uchar x,uchar y,uchar *p) /在x行、y列顯示字符串p if(x=0) /如果在第一行顯示 lcd_cmd(0x80+y); /設(shè)置寫入地址else /如果在第二行顯示 lcd_cmd(0xc0+y);/設(shè)置寫入地址while(*p)/將字符依次發(fā)送到液晶屏 lcd_dat(*p+)
25、; 第5章 頻率計(jì)的系統(tǒng)調(diào)試與仿真5.1 KEIL中對(duì)程序的調(diào)試德國(guó)的KEIL軟件公司提供了一流的8051系列開(kāi)發(fā)工具,將軟件開(kāi)發(fā)工具綁定到不同的套件或工具包中。KEIL 8051開(kāi)發(fā)工具套件可用于編譯C源程序、匯編源程序,鏈接和定位目標(biāo)文件及庫(kù),創(chuàng)建HEX文件以及調(diào)試目標(biāo)程序,我們進(jìn)入到KEIL中的集成開(kāi)發(fā)環(huán)境,對(duì)所編寫的程序進(jìn)行了調(diào)試,使其生成了目標(biāo)文件(HEX文件),如圖5-1所示圖5-1 程序的調(diào)試5.2 Protues中對(duì)系統(tǒng)的仿真我們采用Protues軟件對(duì)系統(tǒng)進(jìn)行仿真,將KEIL生成的HEX文件下載入單片機(jī)中,點(diǎn)擊OK開(kāi)始進(jìn)行系統(tǒng)的仿真,如圖5-2所示圖 5-2 Protues中
26、對(duì)hex文件的選擇在Protues中雙擊被測(cè)頻率脈沖信號(hào)t1,在Frequency中將其頻率設(shè)定為6443,如圖5-3所示:圖 5-3 頻率的設(shè)定點(diǎn)擊OK,然后在Protues中點(diǎn)擊Play開(kāi)始進(jìn)行系統(tǒng)仿真,仿真結(jié)果如圖5-4所示:圖 5-4 仿真結(jié)果我們按照上面的方法,依次改變被測(cè)頻率脈沖信號(hào)的頻率,在Protues軟件中進(jìn)行反復(fù)的調(diào)試仿真,軟件仿真結(jié)果如圖5-5: 圖5-5 多次仿真數(shù)據(jù)結(jié)果 從記錄的數(shù)據(jù)可以看出,系統(tǒng)軟件仿真誤差很小,在信號(hào)頻率范圍內(nèi)測(cè)量出來(lái)的頻率基本上就是輸入信號(hào)的頻率,在超出這個(gè)范圍后,才出現(xiàn)很小的誤差。這可能是由于硬件電路信號(hào)傳輸延時(shí),或者晶振電路產(chǎn)生的時(shí)鐘信號(hào)誤差
27、造成的,也可能是由于軟件中執(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,uchar y,uchar *p); sbit FS=P35; /被測(cè)信號(hào)FS輸入端 bit RDY=0; /測(cè)量完成標(biāo)志 uint m
28、sn; /定時(shí)中斷計(jì)數(shù) uint count(void)/測(cè)量FS的頻率 RDY=0; TMOD=0x52;/T0:定時(shí)方式2,T1:計(jì)數(shù)方式1 TH0=TL0=6;/T0定時(shí)時(shí)間為250us msn=4000;/4000次中斷正好1sTH1=TL1=0x00; /T1工作于計(jì)數(shù)方式,初值為0ET0=1;/允許T0中斷EA=1;/開(kāi)中斷while(FS=1); /等待被測(cè)信號(hào)變低while(FS=0);/等待被測(cè)信號(hào)變高TR0=1;/T0開(kāi)始定時(shí)TR1=1;/T1開(kāi)始計(jì)數(shù)while(RDY=0);/等待1sTR1=0;/關(guān)閉T1、T0TR0=0;return(TH1*256+TL1); /返回
29、計(jì)數(shù)值 void timer0(void) interrupt 1 using 1 msn-; 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_(); 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é)果 液晶顯示模塊源程序: #include&l
30、t;reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit RS=P20; /數(shù)據(jù)/命令寄存器選擇控制端 sbit RW=P21; /讀寫控制端 sbit E=P22; /使能控制端 sfr LCD=0x90; /P1口作為總線端口 sbit BF=LCD7; /就緒線BF,低電平有效 void lcd_cmd(uchar cmd) LCD=cmd; RS=0;/選擇命令寄存器 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(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
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年物業(yè)管理公司合同管理實(shí)施細(xì)則與公共設(shè)施維護(hù)合同3篇
- 四年級(jí)數(shù)學(xué)(四則混合運(yùn)算)計(jì)算題專項(xiàng)練習(xí)與答案匯編
- 二年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)
- 四年級(jí)數(shù)學(xué)(四則混合運(yùn)算)計(jì)算題專項(xiàng)練習(xí)與答案
- 四年級(jí)數(shù)學(xué)(小數(shù)加減運(yùn)算)計(jì)算題專項(xiàng)練習(xí)與答案
- 二零二五年度臨時(shí)電工職業(yè)資格認(rèn)證服務(wù)協(xié)議4篇
- 藝人簽約合同樣書
- 2025年冀少新版七年級(jí)物理上冊(cè)月考試卷含答案
- 2025-2030年(全新版)中國(guó)膜級(jí)母料聚酯切片行業(yè)發(fā)展?fàn)顩r及投資前景研究報(bào)告
- 2025至2031年中國(guó)工業(yè)濾材行業(yè)投資前景及策略咨詢研究報(bào)告
- 公司組織架構(gòu)圖(可編輯模版)
- 1汽輪機(jī)跳閘事故演練
- 陜西省銅川市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 禮品(禮金)上交登記臺(tái)賬
- 普通高中英語(yǔ)課程標(biāo)準(zhǔn)詞匯表
- 北師大版七年級(jí)數(shù)學(xué)上冊(cè)教案(全冊(cè)完整版)教學(xué)設(shè)計(jì)含教學(xué)反思
- 2023高中物理步步高大一輪 第五章 第1講 萬(wàn)有引力定律及應(yīng)用
- 青少年軟件編程(Scratch)練習(xí)題及答案
- 浙江省公務(wù)員考試面試真題答案及解析精選
- 系統(tǒng)性紅斑狼瘡-第九版內(nèi)科學(xué)
- 全統(tǒng)定額工程量計(jì)算規(guī)則1994
評(píng)論
0/150
提交評(píng)論