嵌入式課程設(shè)計(數(shù)字頻率計)_第1頁
嵌入式課程設(shè)計(數(shù)字頻率計)_第2頁
嵌入式課程設(shè)計(數(shù)字頻率計)_第3頁
嵌入式課程設(shè)計(數(shù)字頻率計)_第4頁
嵌入式課程設(shè)計(數(shù)字頻率計)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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)常要用到頻率計。 本數(shù)字頻率計將采用定時、計數(shù)的方法測量頻率。測量范圍在9khz以下的方波,時基寬度為1us,10us,100us,1ms。用單片機(jī)實現(xiàn)自動測量功能?;驹O(shè)計原理是直接用十進(jìn)制數(shù)字顯示被測信號頻率的一種測量裝置。它以測量周期的方法對方波的頻率進(jìn)行自動的測量。1.1 課程設(shè)計的基

2、本原理所謂頻率,就是周期性信號在單位時間()內(nèi)變化的次數(shù),若在一定時間間隔內(nèi)測得這個周期性信號的重復(fù)變化次數(shù)為,則其頻率可表示為 圖1數(shù)字頻率計結(jié)構(gòu)圖圖1是數(shù)字頻率計的組成框圖。被測信號經(jīng)放大整形電路變成計數(shù)器所要求的脈沖信號,其頻率與被測信號的頻率相同。時基電路提供標(biāo)準(zhǔn)時間基準(zhǔn)信號,其高電平持續(xù)時間,當(dāng)信號來到時,閘門開通,被測脈沖信號通過閘門,計數(shù)器開始計數(shù),直到信號結(jié)束時閘門關(guān)閉,停止計數(shù)。若在閘門時間內(nèi)計數(shù)器計得的脈沖數(shù)為,則被測信號頻率。邏輯控制電路的作用有兩個:一是產(chǎn)生鎖存脈沖,使顯示器上的數(shù)字穩(wěn)定;二是產(chǎn)生清“0”脈沖,使計數(shù)器每次測量從零開始計數(shù)。1.2系統(tǒng)設(shè)計要求l 以單片機(jī)

3、未核心設(shè)計一個數(shù)字頻率計,有頻率檢測電路、單片機(jī)時鐘電路、撫慰電路、數(shù)碼管驅(qū)動電路、四位數(shù)碼管電路5部分組成l 可以測量9khz以下的方波1.3設(shè)計方案確定 1. 硬件方案 硬件電路有5部分組成,既平率檢測電路、單片機(jī)時鐘電路、復(fù)位電路、數(shù)碼管驅(qū)動電路、四位數(shù)馬管電路。各部分實現(xiàn)功能如下:l 頻率檢測電路:進(jìn)行頻率檢測并轉(zhuǎn)換成數(shù)字信號。l 單片機(jī)時鐘電路、復(fù)位電路:單片機(jī)正常工作需要。l 數(shù)碼管驅(qū)動電路、四位數(shù)碼管電路:用于測試的電壓結(jié)果顯示。2. 軟件方案 本系統(tǒng)的軟件部分主要完成功能:對脈沖的頻率采集、計算及顯示。根據(jù)軟件的功能劃分軟件設(shè)計模塊,各模塊的具體任務(wù)如下:l 數(shù)碼管顯示模塊:實

4、現(xiàn)采集好的頻率值的顯示。l 脈沖計數(shù)模塊:把脈沖的頻率檢測出來。第二章 數(shù)字頻率計的硬件結(jié)構(gòu)設(shè)計2.1 系統(tǒng)硬件的構(gòu)成 本頻率計的數(shù)據(jù)采集系統(tǒng)主要元器件是單片機(jī)at89c51,由它完成對待測信號頻率的計數(shù)和結(jié)果顯示等功能,外部還要有分頻器、顯示器等器件??煞譃橐韵聨讉€模塊:放大整形模塊、秒脈沖產(chǎn)生模塊、換檔模擬轉(zhuǎn)換模塊、單片機(jī)系統(tǒng)、lcd顯示模塊。各模塊關(guān)系圖如圖2所示: 圖2 數(shù)字頻率計功能模塊2.2 系統(tǒng)工作原理圖圖3 數(shù)字頻率計系統(tǒng)工作原理圖2.3 at89c51單片機(jī)及其引腳說明89c51是一種高性能低功耗的采用cmos工藝制造的8位微控制器,它提供下列標(biāo)準(zhǔn)特征:4k字節(jié)的程序存儲器,

5、128字節(jié)的ram,32條i/o線,2個16位定時器/計數(shù)器, 一個5中斷源兩個優(yōu)先級的中斷結(jié)構(gòu),一個雙工的串行口, 片上震蕩器和時鐘電路。引腳說明:vcc:電源電壓gnd:地p0口:p0口是一組8位漏極開路型雙向i/o口,作為輸出口用時,每個引腳能驅(qū)動8個ttl邏輯門電路。當(dāng)對0端口寫入1時,可以作為高阻抗輸入端使用。當(dāng)p0口訪問外部程序存儲器或數(shù)據(jù)存儲器時,它還可設(shè)定成地址數(shù)據(jù)總線復(fù)用的形式。在這種模式下,p0口具有內(nèi)部上拉電阻。在eprom編程時,p0口接收指令字節(jié),同時輸出指令字節(jié)在程序校驗時。程序校驗時需要外接上拉電阻。p1口:p1口是一帶有內(nèi)部上拉電阻的8位雙向i/o口。p1口的輸

6、出緩沖能接受或輸出4個ttl邏輯門電路。當(dāng)對p1口寫1時,它們被內(nèi)部的上拉電阻拉升為高電平,此時可以作為輸入端使用。當(dāng)作為輸入端使用時,p1口因為內(nèi)部存在上拉電阻,所以當(dāng)外部被拉低時會輸出一個低電流(iil)。p2口:p2是一帶有內(nèi)部上拉電阻的8位雙向的i/o端口。p2口的輸出緩沖能驅(qū)動4個ttl邏輯門電路。當(dāng)向p2口寫1時,通過內(nèi)部上拉電阻把端口拉到高電平,此時可以用作輸入口。作為輸入口,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出電流(iil)。p2口在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如movx dptr)時,p2口送出高8位地址數(shù)據(jù)。在這種情況下,p2口使用強(qiáng)大

7、的內(nèi)部上拉電阻功能當(dāng)輸出1時。當(dāng)利用8位地址線訪問外部數(shù)據(jù)存儲器時(例movx r1),p2口輸出特殊功能寄存器的內(nèi)容。當(dāng)eprom編程或校驗時,p2口同時接收高8位地址和一些控制信號。p3口:p3是一帶有內(nèi)部上拉電阻的8位雙向的i/o端口。p3口的輸出緩沖能驅(qū)動4個ttl邏輯門電路。當(dāng)向p3口寫1時,通過內(nèi)部上拉電阻把端口拉到高電平,此時可以用作輸入口。作為輸入口,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出電流(iil)。p3口同時具有at89c51的多種特殊功能,具體如下表1所示:端口引腳第二功能p3.0rxd (串行輸入口)p3.1txd(串行輸出口)p3.2 (外部中斷0)p

8、3.3(外部中斷1)p3.4t0(定時器0)p3.5t1(定時器1)p3.6(外部數(shù)據(jù)存儲器寫選通)p3.7(外部數(shù)據(jù)存儲器都選通)表1 p3口的第二功能rst:復(fù)位輸入。當(dāng)振蕩器工作時,rst引腳出現(xiàn)兩個機(jī)器周期的高電平將使單片機(jī)復(fù)位。ale/ :當(dāng)訪問外部存儲器時,地址鎖存允許是一輸出脈沖,用以鎖存地址的低8位字節(jié)。當(dāng)在flash編程時還可以作為編程脈沖輸出( )。一般情況下,ale是以晶振頻率的1/6輸出,可以用作外部時鐘或定時目的。但也要注意,每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ale脈沖。 :程序存儲允許時外部程序存儲器的讀選通信號。當(dāng)at89c52執(zhí)行外部程序存儲器的指令時,每個機(jī)器

9、周期 兩次有效,除了當(dāng)訪問外部數(shù)據(jù)存儲器時, 將跳過兩個信號。 /vpp:外部訪問允許。為了使單片機(jī)能夠有效的傳送外部數(shù)據(jù)存儲器從0000h到fffh單元的指令, 必須同gnd相連接。需要主要的是,如果加密位1被編程,復(fù)位時ea端會自動內(nèi)部鎖存。當(dāng)執(zhí)行內(nèi)部編程指令時, 應(yīng)該接到vcc端。xtal1:振蕩器反相放大器以及內(nèi)部時鐘電路的輸入端。xtal2:振蕩器反相放大器的輸出端。在本次設(shè)計中,采用89c51作為cpu處理器,充分利用其硬件資源,結(jié)合d觸發(fā)器cd4013,分頻器cd4060,模擬轉(zhuǎn)換開關(guān)cd4051,計數(shù)器74ls90等數(shù)字處理芯片,主要控制兩大硬件模塊,量程切換以及顯示模塊。下面

10、還將詳細(xì)說明。2.4 信號調(diào)理及放大整形模塊 放大整形系統(tǒng)包括衰減器、跟隨器、放大器、施密特觸發(fā)器。它將正弦輸入信號vx整形成同頻率方波vo,幅值過大的被測信號經(jīng)過分壓器分壓送入后級放大器,以避免波形失真。由運(yùn)算放大器構(gòu)成的射級跟隨器起阻抗變換作用,使輸入阻抗提高。同相輸入的運(yùn)算放大器的放大倍數(shù)為(r1+r2)/r1,改變r1的大小可以改變放大倍數(shù)。系統(tǒng)的整形電路由施密特觸發(fā)器組成,整形后的方波送到閘門以便計數(shù)。由于輸入的信號幅度是不確定、可能很大也有可能很小,這樣對于輸入信號的測量就不方便了,過大可能會把器件燒毀,過小可能器件檢測不到,所以在設(shè)計中采用了這個信號調(diào)理電路對輸入的波形進(jìn)行阻抗變

11、換、放大限幅和整形,信號調(diào)理部分電路具體實現(xiàn)電路原理圖和參數(shù)如下圖4所示: 圖42.5 時基信號產(chǎn)生電路:cd4013-雙上升沿d觸發(fā)器 ,引腳及功能見如下圖5:cd4013 由兩個相同的、相互獨(dú)立的數(shù)據(jù)型觸發(fā)器構(gòu)成。每個觸發(fā)器有獨(dú)立的數(shù)據(jù)置位復(fù)位時鐘輸入和 q及q非輸出。此器件可用作移位寄存器,且通過將q非輸出連接到數(shù)據(jù)輸入,可用作計數(shù)器和觸發(fā)器。在時鐘上升沿觸發(fā)時,加在d 輸入端的邏輯電平傳送到q輸出端。置位和復(fù)位或復(fù)位線上的高電平完成。 圖5 cd4013芯片引腳用功能圖 cd4060-14位二進(jìn)制串行計數(shù)器,引腳及功能見如下圖6: cd4060 由一震蕩器和14極二進(jìn)制串行計數(shù)器位組成

12、,震蕩器的結(jié)構(gòu)可以是rc或晶振電路。cr為高電平時,計數(shù)器清零且振蕩器使用無效,所有的計數(shù)器位均為主從觸發(fā)器 cp1非(和 cp0)的下降沿計數(shù)器以二進(jìn)制進(jìn)行計數(shù),在時鐘脈沖線上使用施密特觸發(fā)器對時鐘上升和下降時間無限制。 圖6 cd4060芯片引腳用功能圖時基信號的產(chǎn)生原理:本電路采用32768hz晶體震蕩器,利用cd4060芯片經(jīng)過14級分頻得到2hz的信號(32768/214),在經(jīng)過cd4013雙d觸發(fā)器經(jīng)過二分頻得到0.5hz的方波,即輸出秒脈沖信號使單片機(jī)進(jìn)行計數(shù)。 圖七 秒脈沖產(chǎn)生電路原理圖2.6顯示模塊1602主要功能a、 40通道點陣lcd 驅(qū)動;b、 可選擇當(dāng)作行驅(qū)動或列驅(qū)

13、動;c、 輸入/輸出信號:輸出,能產(chǎn)生202個lcd驅(qū)動波形;輸入,接受控制器送出的串行數(shù)據(jù)和控制信號,偏壓(v1v6);d、 通過單片機(jī)控制將所測的頻率信號讀數(shù)顯示出來。第3章 軟件設(shè)計根據(jù)硬件電路和設(shè)計思路,可以畫出如下的程序結(jié)構(gòu)圖。 程序流程圖3.1應(yīng)用程序include.h文件/*文件名稱:include.h*文件功能:包含文件中常用操作函數(shù)*/#ifndef include_h#define include_h #include at89x51.h #include intrins.h #define uchar unsigned char #define uint unsigned

14、 int #define _bv(x) (1(x) #define get_bit(x,y) (x)&(1(y)=0?0:1) /取x變量y位的數(shù)據(jù) #define set_bit(x,y) (x)|=(0x0001(y) /置位x變量y位 #define clr_bit(x,y) (x)&=(0x0001(y) /清零x變量y位 #define let_bit(x,y,z) (x)=(x)&(0x0001(y)|(z)(y) /置位或清零x變量y位 #define f_cpu 11059200ul /cpu震蕩周期 #define sei() (ea=1) /開總中斷 #define cli

15、() (ea=0) /關(guān)總中斷 #endiffrecountmain.c文件/*實例名稱:頻率計*實例說明:實現(xiàn)09000hz頻率計的統(tǒng)計*作者:yd*時間:09.06.20*/#include target.h#include led.huchar displaybuff4=0,0,0,0; /數(shù)碼管顯示緩沖區(qū),千,百,十,個const uchar displaymode=0x00; /后四位分別對應(yīng)緩沖區(qū)中每位的數(shù)據(jù)類型,1為任意字符顯示,0為數(shù)字顯示void main() uint get_fre; target_init(); init_led(); sei(); while(1) g

16、et_fre=get_fre_number();if(get_fre/10000x0a) displaybuff0=get_fre/1000+0; /計算頻率千位,放在緩沖區(qū)第0位displaybuff1=(get_fre/100)%10+0; /計算頻率百位,放在緩沖區(qū)第1位 displaybuff2=(get_fre%100)/10+0; /計算頻率十位,放在緩沖區(qū)第2位displaybuff3=get_fre%10+0; /計算頻率個位,放在緩沖區(qū)第3位 ledsweepdisplay(displaybuff,displaymode,0x04);/循環(huán)顯示數(shù)碼管緩沖區(qū)中數(shù)據(jù) 3.2建立仿

17、真模型在電子設(shè)計尤其是單片機(jī)系統(tǒng)設(shè)計過程中利用proteus軟件來進(jìn)行仿真建模分析有很大的好處,它不但非常方便而且能夠在很大程度范圍內(nèi)減少因設(shè)計問題而造成的浪費(fèi)。這里的仿真主要是運(yùn)用isis工具。先從isis的元件庫中找到需要用的元件,然后搭建相應(yīng)的主電路,設(shè)置好參數(shù)后即可進(jìn)行仿真。仿真電路圖由三部分組成,分別為計時部分,計頻部分。計時部分可以由脈沖信號發(fā)生器來實現(xiàn)不同時間范圍內(nèi)的計時功能,如:將脈沖信號發(fā)生器設(shè)置為1hz,則計時時間為100秒,若為100hz,則計時時間為1秒。計頻電路的輸入部分的脈沖由555芯片的3腳輸出來提供,555芯片的輸入部分由一個脈沖信號發(fā)生器來模擬。為了便于觀察其

18、他形式的波形是否能夠整形成方波。3.3 仿真程序設(shè)計及編譯由上面的程序結(jié)構(gòu)圖,可以寫出仿真程序,完整的程序見附錄2所示。經(jīng)檢查在keil中編譯后,程序無誤生成hex文件。keil c51是美國keil software公司出品的51系列兼容單片機(jī)c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。keil提供了包括c編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uvision)將這些部分組合在一起。運(yùn)行keil軟件需要win98、nt、win2000、winxp等操作系統(tǒng)。如果你使用c語言編

19、程,那么keil幾乎就是你的不二之選,即使不使用c語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令你事半功倍。keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。c51工具包的整體結(jié)構(gòu),uvision與ishell分別是c51 for windows和for dos的集成開發(fā)環(huán)境(ide),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用ide本身或其它編輯器編輯c或匯編源文件。然后分別由c51及c51編譯器編譯生成目標(biāo)文件(.obj)。目標(biāo)文件可由lib51創(chuàng)建生成庫文件,也可以

20、與庫文件一起經(jīng)l51連接定位生成絕對目標(biāo)文件(.abs)。abs文件由oh51轉(zhuǎn)換成標(biāo)準(zhǔn)的hex文件,以供調(diào)試器dscope51或tscope51使用進(jìn)行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如eprom中 第四章 結(jié)束語 頻率測量在科技研究和實際應(yīng)用中的作用日益重要。這次課程設(shè)計讓我知道了測量方波信號的方法,如利用可編程邏輯器件或者利用單片機(jī)做小系統(tǒng),傳統(tǒng)的頻率計通采用組合電路和時序電路等大量的硬件電路構(gòu)成,產(chǎn)品不但體積較大,運(yùn)行速度慢,而且測量低頻信號時不宜直接使用。而這次課程設(shè)計采用了 at89c51 單片機(jī)和相關(guān)硬軟件實現(xiàn)。用c語言進(jìn)行設(shè)計,采用單片機(jī)智能控制,結(jié)合外圍電子電路,得以高低頻率的精度測量,編程簡單,精度高。自己學(xué)習(xí)單片機(jī)已有兩年的時間了,這是我又一次利用它來完成課程設(shè)計,現(xiàn)在深深地感受單片機(jī)的適用性強(qiáng)、應(yīng)用面廣、功能完善。單片機(jī)技術(shù)發(fā)展已經(jīng)很成熟,在電子控制系統(tǒng)應(yīng)用上仍然占有很重要的地位,作為一名自動化專業(yè)的學(xué)生,學(xué)習(xí)好單片機(jī)就顯得很有必要。在學(xué)習(xí)單片機(jī)時,

溫馨提示

  • 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

提交評論