簡易頻率計—單片機課程設計_第1頁
簡易頻率計—單片機課程設計_第2頁
簡易頻率計—單片機課程設計_第3頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

2、片機為控制核心,將外部的頻率脈沖信號通過單 片機計數(shù)端輸入,由定時器/計數(shù)器TO負責定時,定時器/計數(shù)器T1負責 對被測信號計數(shù),該頻率計的測量范圍為 1Hz65534Hz被測脈沖信號的 頻率可以隨時進行調(diào)整,通過LCD液晶顯示模塊對被測信號的頻率進行實 時顯示。該系統(tǒng)包括被測頻率脈沖信號、單片機晶振電路、以AT89C51單片機為核心的頻率測量模塊、LCD液晶顯示模塊。三、指導教師評語指導教師( 簽年月摘要在電子領域內(nèi) , 頻率是一種最基本的參數(shù) , 由于頻率信號抗干擾能力 強、易于傳輸,可以獲得較高的測量精度。因此 , 頻率的測量就顯得尤為 重要,測頻方法的研究越來越受到重視。頻率計作為測量

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

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

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

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

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

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

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

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

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

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

13、1單片機為控制核心,可將外部的頻率脈沖信號 通過單片機計數(shù)端輸入,由定時器/計數(shù)器T0負責定時,定時器/計數(shù)器 T1( P3.5)負責對被測信號計數(shù),一旦T0定時時間到,立刻終止T1的計 數(shù),此時T1的計數(shù)值便是單位時間內(nèi)的脈沖個數(shù),我們將T0的定時時間設為1s,當TO定時滿1s后,立即停止T1計數(shù),此時T1的計數(shù)值即為 被測信號的頻率。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 風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提供以下標準功能:4k字節(jié)Flash閃速存儲器,128字節(jié) 內(nèi)部RAM 32個I/O 口線,兩個16位定時/計數(shù)器,一個5向量兩級中 斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時

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

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

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

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

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

20、3.5)引腳的被測脈沖進行計數(shù),當T0 定時滿 1s 后,立即停止 T1 計數(shù),關閉定時器 T0, T1 的計數(shù)值即為被測 信號的頻率,程序流程圖如圖 4-1 。開始設BLTO電時方式2. TI計歎方式1為250叫 TD中斷4000次哉覽T1汁枚刨fliftrnrro:7FW籌待就測依弓便他尊肺哦觀倍蘋空m啟礪TOH忙.Till tt靈閉ro. ri圖4-1頻率測量頻率測量其中,中斷服務子程序流程圖如下:圖4-2中斷服務子程序程序流程框圖如下:頻率測量主函數(shù)中,還進行了數(shù)據(jù)轉(zhuǎn)換以及調(diào)用顯示模塊進行顯示其圖4-3頻率測量主函數(shù)頻率測量模塊源程序:#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; /被測信號FS輸入端bit RDY=0; / 測量完成標志ui nt ms n; /定時中斷計數(shù)RDY=0;TMOD=Ox52; /TO :定時方式2, T1:計數(shù)方式1TH0=TL0=6;/T0 定時時間為 250usmsn=4OOO; /4OOO 次中斷正好 1sTH1=TL

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

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

25、0; / 使能信號有效while(1)LCD=0xff;/ 總線變高RS=0; / 選擇命令寄存器RW=1;/ 讀操作E=0; / 使能信號有效_nop_();E=1; / 撤銷使能信號 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_();/ 延時E=0; / 使能信號有效while(1)LCD=0xff;/ 總線變高RS=0; / 選擇命令寄存器RW=1;/ 讀操作E=0; / 使能信號有效_nop_();E=1; / 撤銷使能信號 if

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

27、cd_dat(*p+);第5章 頻率計的系統(tǒng)調(diào)試與仿真5.1 KEIL 中對程序的調(diào)試德國的KEIL軟件公司提供了一流的8051系列開發(fā)工具,將軟件開發(fā) 工具綁定到不同的套件或工具包中。 KEIL 8051開發(fā)工具套件可用于編譯 C源程序、匯編源程序,鏈接和定位目標文件及庫,創(chuàng)建 HEX文件以及調(diào) 試目標程序,我們進入到KEIL中的集成開發(fā)環(huán)境,對所編寫的程序進行 了調(dià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時 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?"說:眾忖:a 丙 lcd_oid.iCct j j 界"E示,費囲 死肯12(101frAS-tla±“知用在貝二廿國術(shù):LcdjCBdNCmMyp 和設;乓 4*聯(lián)Ptiile7*pl"靜律冊用灰嵐進匚浪豪再lCdJ reg52.h 1 Cl intrinrJhobit I3-f>x5s /ttWflYF34bAI|B 固UDOipili噸 簡塾瑕率汁之頻率測量上. 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率計"Ifi劇如醪計“ -D Errer(5, 0 Wflrningfls B5.2 Protues 中對系統(tǒng)的仿真我們采用Protues軟件對系統(tǒng)進行仿真,將 KEIL生成的HEX文件下載入單片機中,點擊OK開始進行系統(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當前元與仿頁附咖慶惶快當柘元flPFia于fob制j»3 EC 擊転*=W電 =館4 口決圖5-2 Protues 中對hex文件的選擇在Protues中雙擊被測頻率脈沖信號t1,在Frequency中將其頻率 設定為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臬一牛邊沿刪時間.0 SSflfel.時神克2! 爭低-高-低討 鬲-低-刃雅申囹囹囹廠電忘便與前縱皤36手RW 應總算展性圖5-3頻率的設定點擊OK然后在Protues中點擊Play開始進行系統(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 號如付 P21M1-I 円斗首專F-2 7JA15n.yp®F33HTT丹ft® 圖5-4仿真結(jié)果我們按照上面的方法,依次改變被測頻率脈沖信號的頻率,在Protues軟件中進行反復的調(diào)試仿真,LCD1LMtMCL軟件仿真結(jié)果如圖5-5 :-f=00001HZ-協(xié)O 111旨- 曲牡咽羋|羋陽: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)軟件仿真誤差很小,在信號頻率范圍內(nèi) 測量出來的

34、頻率基本上就是輸入信號的頻率, 在超出這個范圍后,才出現(xiàn) 很小的誤差。這可能是由于硬件電路信號傳輸延時, 或者晶振電路產(chǎn)生的 時鐘信號誤差造成的,也可能是由于軟件中執(zhí)行語句的延時造成的, 在高 頻率下就會出現(xiàn)很小的誤差,但是可以看出,誤差在允許范圍內(nèi),所設計 的電路基本符合要求。附錄源程序: 頻率測量模塊源程序#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; /被測信號FS輸入端bit RDY=0; / 測量完成標志 uint msn; / 定時中斷計數(shù)uint count(void)/ 測量 FS 的頻率RDY=0;TMOD=Ox52; /TO :定時方式2, T1 :計數(shù)方式1 TH0=TL0=6;/T0 定時時間為 250us msn=4OOO; /4OOO 次中斷正好 1s TH1=TL1=OxOO; /T1 工作于計數(shù)方式,初值為 O ET0=1; /允許T0中斷 EA=1; / 開中斷while(FS=1); / 等待被測信號變低while(FS=0); / 等待被測信號變

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

37、碼for(i=6;i>=2;i-)/ 測量結(jié)果轉(zhuǎn)換為stri=f%10+0x30;f=f/10;顯示測量結(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_();/ 延時E=O; / 使能信號有效while(1)LCD=0xff;/ 總線變高RS=0; / 選擇命令寄存器RW=1;/ 讀操作E=0; / 使能信號有效_nop_();E=1; / 撤銷使能信號 if(BF=0)break; / 如果就緒,返回 void lcd_dat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論