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

下載本文檔

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

文檔簡介

1、第一章概述數(shù)字頻率計(jì)是計(jì)算機(jī)、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測量儀器。它是一種用十進(jìn)制數(shù)字顯示被測信號(hào)頻率的數(shù)字測量儀器。它的基本功能是測量正弦信號(hào),方波信號(hào)及其他各種單位時(shí)間內(nèi)變化的物理量。在進(jìn)行模擬、數(shù)字電路的設(shè)計(jì)、安裝、調(diào)試過程中,由于其使用十進(jìn)制數(shù)顯示,測量迅速,精確度高,顯示直觀,經(jīng)常要用到頻率計(jì)。 本數(shù)字頻率計(jì)將采用定時(shí)、計(jì)數(shù)的方法測量頻率。測量范圍在9khz以下的方波,時(shí)基寬度為1us,10us,100us,1ms。用單片機(jī)實(shí)現(xiàn)自動(dòng)測量功能?;驹O(shè)計(jì)原理是直接用十進(jìn)制數(shù)字顯示被測信號(hào)頻率的一種測量裝置。它以測量周期的方法對(duì)方波的頻率進(jìn)行自動(dòng)的測量。1.1 課程設(shè)計(jì)的基

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

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

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

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

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

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

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

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

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

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

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

13、動(dòng);c、 輸入/輸出信號(hào):輸出,能產(chǎn)生202個(gè)lcd驅(qū)動(dòng)波形;輸入,接受控制器送出的串行數(shù)據(jù)和控制信號(hào),偏壓(v1v6);d、 通過單片機(jī)控制將所測的頻率信號(hào)讀數(shù)顯示出來。第3章 軟件設(shè)計(jì)根據(jù)硬件電路和設(shè)計(jì)思路,可以畫出如下的程序結(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文件/*實(shí)例名稱:頻率計(jì)*實(shí)例說明:實(shí)現(xiàn)09000hz頻率計(jì)的統(tǒng)計(jì)*作者:yd*時(shí)間:09.06.20*/#include target.h#include led.huchar displaybuff4=0,0,0,0; /數(shù)碼管顯示緩沖區(qū),千,百,十,個(gè)const uchar displaymode=0x00; /后四位分別對(duì)應(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; /計(jì)算頻率千位,放在緩沖區(qū)第0位displaybuff1=(get_fre/100)%10+0; /計(jì)算頻率百位,放在緩沖區(qū)第1位 displaybuff2=(get_fre%100)/10+0; /計(jì)算頻率十位,放在緩沖區(qū)第2位displaybuff3=get_fre%10+0; /計(jì)算頻率個(gè)位,放在緩沖區(qū)第3位 ledsweepdisplay(displaybuff,displaymode,0x04);/循環(huán)顯示數(shù)碼管緩沖區(qū)中數(shù)據(jù) 3.2建立仿

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

18、他形式的波形是否能夠整形成方波。3.3 仿真程序設(shè)計(jì)及編譯由上面的程序結(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編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uvision)將這些部分組合在一起。運(yùn)行keil軟件需要win98、nt、win2000、winxp等操作系統(tǒng)。如果你使用c語言編

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論