基于單片機(jī)的數(shù)字頻率計的設(shè)計_第1頁
基于單片機(jī)的數(shù)字頻率計的設(shè)計_第2頁
基于單片機(jī)的數(shù)字頻率計的設(shè)計_第3頁
基于單片機(jī)的數(shù)字頻率計的設(shè)計_第4頁
基于單片機(jī)的數(shù)字頻率計的設(shè)計_第5頁
已閱讀5頁,還剩60頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、摘 要隨著電子信息產(chǎn)業(yè)的不斷發(fā)展,信號頻率的測量在科技研究和實(shí)際應(yīng)用中的作用日益重要。傳統(tǒng)的頻率計通常是用很多的邏輯電路和時序電路來實(shí)現(xiàn)的,這種電路一般運(yùn)行緩慢,而且測量頻率的范圍比較小??紤]到上述問題,本論文設(shè)計一個基于單片機(jī)技術(shù)的數(shù)字頻率計。首先,我們把待測信號經(jīng)過放大整形;然后把信號送入單片機(jī)的定時計數(shù)器里進(jìn)行計數(shù),獲得頻率值;最后把測得的頻率數(shù)值送入顯示電路里進(jìn)行顯示。本文從頻率計的原理出發(fā),介紹了基于單片機(jī)的數(shù)字頻率計的設(shè)計方案,選擇了實(shí)現(xiàn)系統(tǒng)得各種電路元器件,并對硬件電路進(jìn)行了仿真。關(guān)鍵字:單片機(jī),頻率計,測量目錄第1章引言1第2章方案論證22.1 數(shù)字頻率計設(shè)計的幾種方案22.2

2、 幾種方案的優(yōu)劣討論32.3 本次設(shè)計采用的方案3第3章系統(tǒng)硬件設(shè)計43.1 數(shù)字頻率計工作原理43.1.1 一般數(shù)字式頻率計的原理43.1.2 基于單片機(jī)的數(shù)字頻率計原理43.2 電路原理圖53.3 放大整形電路63.3.1 放大整形電路的必要性63.3.2 放大整形電路的原理63.4 分頻電路103.4.1 分頻電路介紹103.5 四選一電路113.6 單片機(jī)133.7 顯示電路143.7.1 顯示原理143.7.2 顯示電路圖163.8 電路PCB板18第4章系統(tǒng)軟件設(shè)計204.1 測頻軟件實(shí)現(xiàn)原理204.2 軟件流程圖204.3 幾個重要的分程序21第5章系統(tǒng)的仿真和調(diào)試345.1 硬

3、件電路的仿真345.2 誤差分析37結(jié)束語38參考文獻(xiàn)40致謝41附錄42附錄一:系統(tǒng)整體電路圖42附錄二:電路PCB圖42附錄三:系統(tǒng)整體程序44外文資料原文60翻譯文稿63第1章 引言隨著電子信息產(chǎn)業(yè)的發(fā)展,信號作為其最基礎(chǔ)的元素,其頻率的測量在科技研究和實(shí)際應(yīng)用中的作用日益重要,而且需要測頻的范圍也越來越寬。傳統(tǒng)的頻率計通常采用組合電路和時序電路等大量的硬件電路構(gòu)成,產(chǎn)品不但體積較大,運(yùn)行速度慢,而且測量范圍低,精度低。因此,隨著對頻率測量的要求的提高,傳統(tǒng)的測頻的方法在實(shí)際應(yīng)用中已不能滿足要求。因此我們需要尋找一種新的測頻的方法。隨著單片機(jī)技術(shù)的發(fā)展和成熟,用單片機(jī)來做為一個電路系統(tǒng)的

4、控制電路逐漸顯示出其無與倫比的優(yōu)越性。因此本論文采用單片機(jī)來做為電路的控制系統(tǒng),設(shè)計一個能測量高頻率的數(shù)字頻率計。用單片機(jī)來做控制電路的數(shù)字頻率計測量頻率精度高,測量頻率的范圍得到很大的提高。本論文的任務(wù)是設(shè)計一個基于單片機(jī)技術(shù)的數(shù)字頻率計。主要介紹了整形電路、控制電路和顯示電路的構(gòu)成原理,以及其測頻的基本方法。進(jìn)行了相應(yīng)的硬軟件設(shè)計。第2章 方案論證2.1 數(shù)字頻率計設(shè)計的幾種方案測量頻率的方法有很多種,主要分為模擬法和數(shù)字法兩大類,因?yàn)楸敬卧O(shè)計的要求和環(huán)境,現(xiàn)在主要討論數(shù)字法中的電子計數(shù)式的幾種測頻方法。電子計數(shù)式的測頻方法主要有以下幾種:脈沖數(shù)定時測頻法(M法),脈沖周期測頻法(T法),

5、脈沖數(shù)倍頻測頻法(AM法),脈沖數(shù)分頻測頻法(AT法),脈沖平均周期測頻法(M/T法),多周期同步測頻法。下面是幾種方案的具體方法介紹。脈沖數(shù)定時測頻法(M法):此法是記錄在確定時間Tc內(nèi)待測信號的脈沖個數(shù)Mx,則待測頻率為: Fx=Mx/Tc (2-1)脈沖周期測頻法(T法):此法是在待測信號的一個周期Tx內(nèi),記錄標(biāo)準(zhǔn)頻率信號變化次數(shù)Mo。這種方法測出的頻率是: Fx=Mo/Tx (2-2)脈沖數(shù)倍頻測頻法(AM法):此法是為克服M法在低頻測量時精度不高的缺陷發(fā)展起來的。通過A倍頻,把待測信號頻率放大A倍,以提高測量精度。其待測頻率為: Fx=Mx/ATo (2-3)脈沖數(shù)分頻測頻法(AT法

6、):此法是為了提高T法高頻測量時的精度形成的。由于T法測量時要求待測信號的周期不能太短,所以可通過A分頻使待測信號的周期擴(kuò)大A倍,所測頻率為: Fx=AMo/Tx (2-4)脈沖平均周期測頻法(M/T法):此法是在閘門時間Tc內(nèi),同時用兩個計數(shù)器分別記錄待測信號的脈沖數(shù)Mx和標(biāo)準(zhǔn)信號的脈沖數(shù)Mo。若標(biāo)準(zhǔn)信號的頻率為Fo,則待測信號頻率為: Fx=FoMx/Mo (2-5)多周期同步測頻法:是由閘門時間Tc與同步門控時間Td共同控制計數(shù)器 計數(shù)的一種測量方法,待測信號頻率與M/T法相同。2.2 幾種方案的優(yōu)劣討論以上幾種方法各有其優(yōu)缺點(diǎn):脈沖數(shù)定時測頻法,時間Tc為準(zhǔn)確值,測量的精度主要取決于計

7、數(shù)Mx的誤差。其特點(diǎn)在于:測量方法簡單,測量精度與待測信號頻率和門控時間有關(guān),當(dāng)待測信號頻率較低時,誤差較大。脈沖周期測頻法,此法的特點(diǎn)是低頻檢測時精度高,但當(dāng)高頻檢測時誤差較大。脈沖數(shù)倍頻測頻法,其特點(diǎn)是待測信號脈沖間隔減小,間隔誤差降低;精度比M法高A倍,但控制電路較復(fù)雜。脈沖數(shù)分頻測頻法,其特點(diǎn)是高頻測量精度比T法高A倍,但控制電路也較復(fù)雜。脈沖平均周期測頻法,此法在測高頻時精度較高,但在測低頻信號時精度較低。多周期同步測頻法,此法的優(yōu)點(diǎn)是,閘門時間與被測信號同步,消除了對被測信號計數(shù)產(chǎn)生的1個字誤差,測量精度大大提高,且測量精度與待測信號的頻率無關(guān),達(dá)到了在整個測量頻段等精度測量。2.

8、3 本次設(shè)計采用的方案根據(jù)頻率的定義,頻率是單位時間內(nèi)信號波的個數(shù),因此采用上述各種方案都能實(shí)現(xiàn)頻率的測量。但是本論文設(shè)計的是一個用單片機(jī)做為電路控制系統(tǒng)的數(shù)字式頻率計,采用脈沖定時測頻法,則在低頻率的測量時誤差會大一些。采用脈沖周期測頻法則測高頻率時精度無法保證;采用脈沖數(shù)倍頻測頻法和脈沖數(shù)分頻測頻法則精度有所提高,但控制電路較復(fù)雜;采用脈沖平均周期測頻法則很難兼顧低頻信號的測量;而采用多周期同步測頻法,閘門時間與被測信號同步,消除了對被測信號計數(shù)產(chǎn)生的1誤差,測量精度大大提高,且測量精度與待測信號的頻率無關(guān),達(dá)到了在整個測量頻段等精度測量。本次設(shè)計由于個人水平有限,因此,本次設(shè)計根據(jù)需要,

9、采用脈沖定時測頻法。第3章 系統(tǒng)硬件設(shè)計3.1 數(shù)字頻率計工作原理3.1.1 一般數(shù)字式頻率計的原理數(shù)字式頻率計是測量頻率最常用的儀器之一,其基本設(shè)計原理是首先把待測信號通過放大整形,變成一個脈沖信號,然后通過控制電路控制計數(shù)器計數(shù),最后送到譯碼顯示電路里進(jìn)行顯示,其基本構(gòu)成框圖如圖3-1所示。 放大整形電路 控制門電路 計數(shù)器電路 譯碼顯示電路待測信號圖3-1 數(shù)字式頻率計原理框圖由上圖可以看出,待測信號經(jīng)過放大整形電路后得到一個待測信號的脈沖信號,然后通過計數(shù)器計數(shù),可得到需要的頻率值,最后送入譯碼顯示電路中顯示出來。但是控制部分才是最重要的,它在整個系統(tǒng)的運(yùn)行中起至關(guān)重要的作用。3.1.

10、2 基于單片機(jī)的數(shù)字頻率計原理由上節(jié)介紹可知,控制電路在數(shù)字頻率計中起至關(guān)重要的作用。采用什么樣的控制電路,直接決定了數(shù)字頻率計的性能。由第二章的內(nèi)容可知,為了得到一個高性能的數(shù)字頻率計,本次設(shè)計采用單片機(jī)來做為數(shù)字頻率計的核心控制電路,輔之于少數(shù)的外部控制電路。因此本此設(shè)計的系統(tǒng)包括信號放大整形電路、分頻電路、單片機(jī)AT89C51和顯示電路等。本系統(tǒng)讓被測信號經(jīng)過放大整形后,進(jìn)入單片機(jī)開始計數(shù),利用單片機(jī)內(nèi)部定時計數(shù)器定時,在把所記得的數(shù)經(jīng)過相關(guān)處理后送到顯示電路中顯示。其系統(tǒng)原理框圖將在下面介紹。根據(jù)上述的基于單片機(jī)的數(shù)字頻率計的設(shè)計原理,我們可設(shè)計一個由放大整形電路、分頻電路、多路數(shù)據(jù)選

11、擇器、AT89C51以及顯示電路來構(gòu)成的數(shù)字式頻率計,其系統(tǒng)框圖如圖3-2所示。放大整形電路分頻電路多路數(shù)據(jù)選擇器單片機(jī)顯示電路待測信號圖3-2 系統(tǒng)構(gòu)成框圖 3.2 電路原理圖由上面的內(nèi)容可看到,本次設(shè)計的基于單片機(jī)的數(shù)字式頻率計包括波形整形電路、分頻電路、多路數(shù)據(jù)選擇器、單片機(jī)和顯示電路等幾個模塊。所以本次設(shè)計的數(shù)字式頻率計的電路由以下幾塊構(gòu)成:由施密特觸發(fā)器構(gòu)成的波形整形放大電路、由74LS90構(gòu)成的分頻電路、由74LS153四選一電路構(gòu)成的四選一電路、AT89C51單片機(jī)以及由74LS138譯碼電路、74LS245上拉電路和八段數(shù)碼管顯示電路構(gòu)成的數(shù)碼顯示電路構(gòu)。其原理圖如圖3-3所示

12、。圖3-3 系統(tǒng)電路原理圖3.3 放大整形電路3.3.1 放大整形電路的必要性因?yàn)樵趩纹瑱C(jī)計數(shù)中只能對脈沖波進(jìn)行計數(shù),而實(shí)際中需要測量頻率的信號是多種多樣的,有脈沖波、還有可能有正弦波、三角波等,所以需要一個電路。把待測信號轉(zhuǎn)化為可以進(jìn)行計數(shù)的脈沖波。3.3.2 放大整形電路的原理矩形脈沖波的整形電路有兩種:施密特觸發(fā)器、單穩(wěn)態(tài)觸發(fā)器。而這兩種電路都可以有門電路或是555定時器構(gòu)成。由于本次設(shè)計的基于單片機(jī)的數(shù)字頻率計的放大整形電路部分需求比較簡單,所以我們選擇由555定時器構(gòu)成的施密特觸發(fā)器來作為信號波形整形電路,下面我們給出其全面的介紹。施密特觸發(fā)器是脈沖波形變換中經(jīng)常使用的一種電路,下面

13、我們對它的特點(diǎn)、輸出特性、工作原理等進(jìn)行簡單的介紹。一、特點(diǎn)1、電平觸發(fā):觸發(fā)信號可以是變化緩慢的模擬信號,達(dá)某一電平值時,輸出電壓突變。為脈沖信號。2、電壓滯后傳輸:輸入信號從低電平上升過程中,電路狀態(tài)轉(zhuǎn)換時對應(yīng)的輸入電平,與從高電平下降過程中電路狀態(tài)轉(zhuǎn)換時對應(yīng)的輸入電平不同。利用上述兩個特點(diǎn),施密特觸發(fā)器不僅能將邊沿緩慢變化的信號波形整形為邊沿陡峭的矩形波,還可以將疊加在矩形脈沖高、低電平上的噪聲有效地清除。二、 輸出特性1、同向輸出:當(dāng)時,為同向輸出,此時當(dāng)時,當(dāng)時,。其同向輸出特性圖如圖3-4所示。圖3-4 同向輸出特性圖2、反向輸出:當(dāng)時,為反向輸出,此時當(dāng),當(dāng)時,其反向輸出特性圖如

14、圖3-5所示。 圖3-5 反向輸出特性圖正向閾值電平:上升時,引起突變時對應(yīng)的值。負(fù)向閾值電平:下降時,引起突變時對應(yīng)的值。三、整形原理用門電路構(gòu)成施密特觸發(fā)器1、構(gòu)成,用CMOS非門構(gòu)成的施密特觸發(fā)器電路圖如圖3-6所示。 圖3-6 用CMOS非門構(gòu)成的施密特觸發(fā)器電路圖2、工作原理,其工作原理如表3-1所示。表3-1 用CMOS非門構(gòu)成的施密特觸發(fā)器工作原理表 3、計算回差電壓(1)、求在從0開始上升時,。在UI=VT+時,G1、G2門要翻轉(zhuǎn)前的瞬間,電路中電流流向和電位情況如圖3-7所示。 圖3-7 求VT+時電路圖從求,入手求:由公式(3-1)就可以推導(dǎo)出公式(3-2),就可以得出。

15、(3-1) (3-2)(2)、求在從最大值開始下降時,。在,G1、G2門要翻轉(zhuǎn)前的瞬間,電路中電流流向和電位情況如圖3-8所示。 圖3-8 求VT-是電路圖從求入手求:由公式(3-3)可以推導(dǎo)出公式(3-4),再由公式聯(lián)合公式(3-5)以及公式(3-6),就可以得到公式(3-7),得到VT-的值。 (3-3) (3-4) (3-5) (3-6) (3-7)(3)、求回差電壓求出和之后,由下面的公式(3-8)就可求出。 (3-8)當(dāng)VDD一定時,調(diào)R1、R2 ,可調(diào),即可調(diào)、,可調(diào)脈寬。(4)、電壓傳輸特性。當(dāng)UI=0時,UO=UOL是施密特同相輸出,其電壓輸出特性如圖3-9所示。圖3-9 電壓

16、傳輸特性(6)、邏輯符號。施密特觸發(fā)器常見的邏輯符號如圖3-10所示。圖3-10 施密特觸發(fā)器的邏輯符號集成施密特觸發(fā)器,常用TTL電路集成施密特觸發(fā)器有7413等。常用CMOS電路集成施密特觸發(fā)器有CC40106等。3.4 分頻電路3.4.1 分頻電路介紹本次設(shè)計采用的是脈沖定時測頻法,由于考慮到單片機(jī)的定時計數(shù)器得計數(shù)能力有限,無法對過高頻進(jìn)行測量,所以我們對待測信號進(jìn)行了分頻,這樣能提高測量頻率的范圍,還能相應(yīng)的提高頻率測量的精度。所以我們需要把待測信號進(jìn)行分頻。在本次設(shè)計中,因?yàn)槲覀円M(jìn)行的是十分頻、一百分頻和一千分頻,所以我們選用74LS90電路,經(jīng)過正確的連接后就可以進(jìn)行十分頻,進(jìn)

17、行三次十分頻就可以得到分頻一千次的信號。其引腳圖和功能表分別如圖3-11和表3-2所示。 圖3-11 74LS90引腳圖表3-2 74LS90功能表 表2 74LS90功能表信號經(jīng)過分頻電路74LS90,其頻率將減小到原信號的十分之一。3.5 四選一電路本次設(shè)計需要用到一個四選一電路,用來選擇輸入單片機(jī)進(jìn)行計數(shù)的待測信號。74LS153就是其中比較好用和常用的一種四選一電路元件。所以這次采用很常見的74LS153集成電路,其電路圖如下圖圖3-12所示。 數(shù)據(jù)選擇器有多個輸入,一個輸出。其功能類似于單刀多擲開關(guān),故又稱為多路開關(guān)(MUX)。在控制端的作用下可從多路并行數(shù)據(jù)中選擇一路送輸出端。TT

18、L中規(guī)模數(shù)據(jù)選擇器是根據(jù)多位數(shù)據(jù)的編碼情況將其中一路數(shù)據(jù)由輸出端 圖3-12 LS153電路原理圖送出的電路,74LS153是雙四選一數(shù)據(jù)選擇器,其中有兩個四選一數(shù)據(jù)選擇器,它們各有四個數(shù)據(jù)輸入端:1D3、1D2、1D1、1D0和2D3、2D2、2D1、2D0。一個輸出端1Y、2Y和一個控制許可端S。系統(tǒng)控制端S為低電平有效。當(dāng)控制許可端S=1時,傳輸通道被封鎖,芯片被禁止,Y=0,輸入的數(shù)據(jù)不能傳送出去;當(dāng)控制許可端S=0時,傳輸通道打開,芯片被選中,處于工作狀態(tài),輸入的數(shù)據(jù)被傳送出去A1、A0是地址選擇端,兩路選擇器共用。管腳如圖3-12所示。74LS153邏輯功能見表3-3。從功能表可看

19、出,當(dāng)S端輸入為低電平時,四選一數(shù)據(jù)選擇器處于工作狀態(tài),它有4位并行數(shù)據(jù)輸入D0D3,單選擇地址輸入A1、A0的二進(jìn)制碼依次由00遞增至11時,4個通道的并行數(shù)據(jù)便依次傳送到輸出端W。表3-3 74LS153的功能表A1A0/SW10000D0010D1100D2110D33.6 單片機(jī)單片機(jī)作為控制系統(tǒng)和計數(shù)器,是本次設(shè)計的最重要的部分,AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲器制

20、造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。所以本次設(shè)計采用AT89C51單片機(jī)。本次設(shè)計采用的是89C51單片機(jī), 89C51是一種高性能低功耗的采用CMOS工藝制造的8位微控制器,它提供下列標(biāo)準(zhǔn)特征:4K字節(jié)的程序存儲器,128字節(jié)的RAM,32條I/O線,2個16位定時器/計數(shù)器,,一個5中斷源兩個優(yōu)先級的中斷結(jié)構(gòu),一個雙工的串行口,片上震蕩器和時鐘電路。其引腳說明如下:引腳說明:VCC:電源電壓。GND:接地。P0口:P0

21、口是一組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é)在程序校驗(yàn)時。程序校驗(yàn)時需要外接上拉電阻。P0口:P0口是一帶有內(nèi)部上拉電阻的8位雙向I/O口。P0口的輸出緩沖能接受或輸出4個TTL邏輯門電路。當(dāng)對P0口寫1時,它們被內(nèi)部的上拉電阻拉升為高電平,此時可以作為輸入端使用。當(dāng)作為輸入端使用時,P0口因?yàn)閮?nèi)部存在上拉電阻,所以當(dāng)外部被拉低時會輸出

22、一個低電流(IIL)。P1口:P2是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P1口的輸出緩沖能驅(qū)動4個TTL邏輯門電路。當(dāng)向P1口寫1時,通過內(nèi)部上拉電阻把端口拉到高電平,此時可以用作輸入口。作為輸入口,因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出電流(IIL)。P2口在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如MOVX DPTR)時,P2口送出高8位地址數(shù)據(jù)。在這種情況下,P2口使用強(qiáng)大的內(nèi)部上拉電阻功能當(dāng)輸出1時。當(dāng)利用8位地址線訪問外部數(shù)據(jù)存儲器時(例MOVX R1),P2口輸出特殊功能寄存器的內(nèi)容。當(dāng)EPROM編程或校驗(yàn)時,P2口同時接收高8位地址和一些控制信號。P

23、3口:P3是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P3口的輸出緩沖能驅(qū)動4個TTL邏輯門電路。當(dāng)向P3口寫1時,通過內(nèi)部上拉電阻把端口拉到高電平,此時可以用作輸入口。作為輸入口,因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出電流(IIL)。P3口同時具有AT89C51的多種特殊功能,P3.0的第二功能是串行輸入口RXD, P3.1的第二功能是串行輸出口TXD, P3.2的第二功能是外部中斷0,P3.3的第二功能是外部中斷1,P3.4的第二功能是定時器T0,P3.5的第二功能是定時器T1,P3.6的第二功能是外部數(shù)據(jù)存儲器寫選通/WR,P3.7的第二功能是外部數(shù)據(jù)存儲器讀選通/RD。3

24、.7 顯示電路3.7.1 顯示原理我們測量的頻率最終要顯示出來。八段LED數(shù)碼管顯示器基本電路如圖3-13所示。圖3-13 八段LED數(shù)碼管顯示器八段LED數(shù)碼管顯示器由8個發(fā)光二極管組成。基中7個長條形的發(fā)光管排列成“日”字形,另一個圓點(diǎn)形的發(fā)光管在數(shù)碼管顯示器的右下角作為顯示小數(shù)點(diǎn)用,它能顯示各種數(shù)字及部份英文字母。LED數(shù)碼管顯示器有兩種形式:一種是8個發(fā)光二極管的陽極都連在一起的,稱之為共陽極LED數(shù)碼管顯示器;另一種是8個發(fā)光二極管的陰極都連在一起的,稱之為共陰極LED數(shù)碼管顯示器。如下圖所示。共陰和共陽結(jié)構(gòu)的LED數(shù)碼管顯示器各筆劃段名和安排位置是相同的。當(dāng)二極管導(dǎo)通時,對應(yīng)的筆劃

25、段發(fā)亮,由發(fā)亮的筆劃段組合而顯示的各種字符。8個筆劃段hgfedcba對應(yīng)于一個字節(jié)(8位)的D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二進(jìn)制碼就能表示欲顯示字符的字形代碼。在單片機(jī)應(yīng)用系統(tǒng)中,數(shù)碼管顯示器顯示常用兩種辦法:靜態(tài)顯示和動態(tài)掃描顯示。所謂靜態(tài)顯示,就是每一個數(shù)碼管顯示器都要占用單獨(dú)的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機(jī)只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時,再發(fā)送新的字形碼,因此,使用這種辦法單片機(jī)中CPU的開銷小,能供給單獨(dú)鎖存的I/O接口電路很多。在單片機(jī)系統(tǒng)中動態(tài)掃描顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示

26、方式之一。其接口電路是把所有顯示器的8個筆劃段a-h同名端連在一起,而每一個顯示器的公共極COM是各自獨(dú)立地受I/O線控制。CPU向字段輸出口送出字形碼時,所有顯示器接收到相同的字形碼,但究竟是那個顯示器亮,則取決于COM端,而這一端是由I/O控制的,所以我們就能自行決定何時顯示哪一位了。而所謂動態(tài)掃描就是指我們采用分時的辦法,輪流控制各個顯示器的COM端,使各個顯示器輪流點(diǎn)亮。 在輪流點(diǎn)亮掃描過程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的(約1ms),但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位顯示器并非同時點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍

27、感。綜合以上內(nèi)容,我們在這次設(shè)計中采用LED數(shù)碼管,采用單片機(jī)靜態(tài)顯示計數(shù)來顯示。采用一個74LS138譯碼器來控制各個數(shù)碼管,采用一個74LS245來做上拉電路,使數(shù)碼顯示管有足夠的電壓進(jìn)行顯示。3.7.2 顯示電路圖顯示電路由數(shù)碼管和74LS138組成,數(shù)碼管已經(jīng)介紹過了,所以不再多加闡述,現(xiàn)在介紹顯示電路組成的另一重要電路:74LS138。在本次設(shè)計中,由74LS138連接數(shù)碼管的接地端,由此來控制數(shù)碼管的亮和滅。其引腳圖和功能表分別如圖3-14和表3-4所示。圖3-14 74LS153引腳圖表3-4 74LS138功能表G1G2CBAY0Y1Y2Y3Y4Y5Y6Y71111111110

28、1111111110000011111111000110111111100101101111110011111011111010011110111101011111101110110111111011011111111110由圖和功能表可以看出,74LS138譯碼器有三個地址輸入端A、B、C和八個譯碼輸出端Y0Y7,當(dāng)輸入為000時,Y0輸出端為0,其他輸出端都為1;同理可推出其他輸出狀態(tài),即只有輸出變量下標(biāo)對應(yīng)的二進(jìn)制代碼與輸入代碼相等的輸出端為0,其他的輸出端都為1。另外,該譯碼器還有三個使能端:G1、/G2A、/G2B,只有當(dāng)G1=1、/G2A=0、/G2B=0同時滿足,才能譯碼。三個條

29、件中任何一個不滿足就禁止譯碼。其中譯碼選通端/G2B也被稱作數(shù)據(jù)輸入端,主要指它用于數(shù)據(jù)分配時所起的作用。設(shè)置多個使能端使得該譯碼器能被靈活組成各種電路。由于單片機(jī)輸出的顯示數(shù)據(jù)電壓不夠高,無法直接送到數(shù)碼管上直接顯示,因此需要用一個上拉電路來提高輸出數(shù)據(jù)的電壓值,以便送到數(shù)碼管顯示。在本次設(shè)計中我們選用DM74LS245N。其電路圖如圖3-15所示。圖3-15 顯示上拉電路圖3.8 電路PCB板3.9 完成了整體電路圖的設(shè)計,就要進(jìn)行電路的PCB的設(shè)計,設(shè)計后得到的電路PCB板圖如圖3-16所示。圖3-16 電路PCB板第4章 系統(tǒng)軟件設(shè)計4.1 測頻軟件實(shí)現(xiàn)原理測頻軟件的實(shí)現(xiàn)是基于電路系統(tǒng)

30、來進(jìn)行設(shè)計的。本次設(shè)計采用的是脈沖定時測頻法,所以在軟件實(shí)現(xiàn)上基本遵照系統(tǒng)的設(shè)計原理,進(jìn)行測頻。本次軟件設(shè)計語言采用匯編語言,在電腦上編譯通過后即可下載到電路上的實(shí)際電路中,即可實(shí)現(xiàn)頻率的測量。軟件設(shè)計的基本思路是:1、把要用到的內(nèi)部存儲器的地址運(yùn)用偽指令標(biāo)號,方便后面設(shè)計中運(yùn)用;2、跳轉(zhuǎn)到中斷程序進(jìn)行初步數(shù)據(jù)采集;3、開始主程序,首先判斷是否有待測信號,無信號就等待信號,有信號則進(jìn)行下一步;4、判斷是否定時到1S,若沒有到達(dá)1S定時,則執(zhí)行下面的5和6步得操作,若達(dá)到1S,則執(zhí)行第6步以后的操作;5、判斷是否第一次,若是,則判斷當(dāng)前的檔位是否設(shè)置合適,若合適則直接跳轉(zhuǎn)到返回主程序,若不合適,

31、則進(jìn)入第6步;6、調(diào)整檔位,重新進(jìn)入中斷開始初步計數(shù);7、判斷檔位是否合適,合適則把測得的數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制數(shù)據(jù),根據(jù)當(dāng)前的檔位相應(yīng)的調(diào)整數(shù)位,并取表找到相應(yīng)的顯示數(shù)據(jù),然后執(zhí)行第10步操作;8、若上一步中判斷出檔位不合適,則根據(jù)頻率進(jìn)行相應(yīng)的檔位調(diào)整。9、恢復(fù)初值,重新開始計數(shù);10、返回主程序。4.2 軟件流程圖根據(jù)上一節(jié)所敘述的電路設(shè)計的基本思路,我們可畫出系統(tǒng)流程圖如圖4-1所示。 數(shù)碼轉(zhuǎn)換開始次數(shù)加1調(diào)整檔位,重新設(shè)置計時返回主程序判斷是否有信號判斷是定時到1s判斷是否適合顯示 返回否否是是是是否第一次檔位是否合適適否否是是否圖4-1 系統(tǒng)流程圖4.3 幾個重要的分程序本次系統(tǒng)由有幾個

32、關(guān)鍵的程序,分別是系統(tǒng)主控程序、數(shù)碼轉(zhuǎn)化程序和數(shù)據(jù)顯示程序。下面分別介紹這幾個程序。 1、控制程序:本文設(shè)計的是基于單片機(jī)的數(shù)字頻率計的設(shè)計,用單片機(jī)來做為數(shù)字頻率計的控制部分。因此,單片機(jī)的控制程序在本次設(shè)計中顯得非常重要。經(jīng)過設(shè)計,我們得到了如下的控制程序。;*;- MAIN -;* MAIN: NOP CALL DISPLAY0;LED動態(tài)顯示刷新 CALL DELAY100 JNB B_T1IF,MAIN;每50ms處理一次。;= CLR B_T1IF MOV A,TIMES_50MS CJNE A,#20,NO_1S JMP YES_1S; 滿20次即為一秒鐘;=NO_1S:MOV

33、A,TIMES_50MSCJNE A,#1,NO_1S_END ;TIMES_50MS不為1,返回;當(dāng)TIMES_50MS為1時,判斷當(dāng)前所選檔位是否過高或者過低;若計數(shù)器BUF大于100,則說明滿1秒時必然大于2000,則提前調(diào)高頻率衰減檔位,;并清零各計數(shù)值,重新在新檔位測量MOV A,COUNTER_BUF_H JNZ NO_1S_1;計數(shù)器高位不為0,說明超100 MOV A,COUNTER_BUF_LCJNE A,#100,NO_1S_0NO_1S_0:JC NO_1S_LOW;計數(shù)器BUF小于100,繼續(xù)跳轉(zhuǎn)到NO_1S_LOW判斷是否需要調(diào)低檔位NO_1S_1:MOV A,FRE

34、Q_LOSS;超量程,判斷當(dāng)前頻率衰減檔位,若小于3則加一檔CJNE A,#3,NO_1S_2JMP NO_1S_ENDNO_1S_2:JC NO_1S_3MOV A,#3MOV FREQ_LOSS,A;檔位大于3,則修正為3NO_1S_3:INC FREQ_LOSS;頻率衰減檔位加1MOV A,FREQ_LOSSCJNE A,#1,NO_1S_4SETB P153_B;FREQ_LOSS=1CLR P153_AJMP NO_1S_20NO_1S_4:CJNE A,#2,NO_1S_5CLR P153_B;FREQ_LOSS=2SETB P153_AJMP NO_1S_20NO_1S_5:CL

35、R P153_B;FREQ_LOSS=3CLR P153_AJMP NO_1S_20;=NO_1S_LOW:MOV A,COUNTER_BUF_LCJNE A,#10,NO_1S_10NO_1S_10:JNC NO_1S_END;偏低,則判斷是否需要降低頻率衰減檔位MOV A,FREQ_LOSS;JZ NO_1S_END;已經(jīng)是最低檔,無需調(diào)整DEC FREQ_LOSS;減一檔MOV A,FREQ_LOSSCJNE A,#0,NO_1S_11SETB P153_B;FREQ_LOSS=0SETB P153_AJMP NO_1S_20NO_1S_11:CJNE A,#1,NO_1S_12SETB

36、 P153_B;FREQ_LOSS=1CLR P153_AJMP NO_1S_20NO_1S_12:CLR P153_B;FREQ_LOSS=2SETB P153_AJMP NO_1S_20NO_1S_20:;調(diào)整檔位后,重新計數(shù)CLR AMOV TIMES_50MS,AMOV COUNTER_BUF_L,AMOV COUNTER_BUF_H,ANO_1S_END:JMP MAIN;=;=YES_1S:;把計數(shù)器的數(shù)轉(zhuǎn)換成10進(jìn)制,并根據(jù)當(dāng)前檔位設(shè)定好要顯示的6個數(shù)字,;存放在DISPLAY_DATA1-DISPLAY_DATA6中。;MOV A,COUNTER_BUF_HMOV R7,AMO

37、V A,COUNTER_BUF_LMOV R6,ACALL CHANGE16_10;=;在頻率衰減控制下,計數(shù)器數(shù)據(jù)不會超出2000多少,因此只取轉(zhuǎn)換后的低4位轉(zhuǎn)換成數(shù)據(jù)顯示MOV A,R3ANL A,#0FHMOV TEMP1,AMOV A,R3ANL A,#0F0HSWAP AMOV TEMP2,AMOV A,R4ANL A,#0FHMOV TEMP3,AMOV A,R4ANL A,#0F0HSWAP AMOV TEMP4,A;=;根據(jù)頻率衰減檔位調(diào)整數(shù)位MOV A,FREQ_LOSSCJNE A,#0,LOSS_1CLR AMOV DATA4,AMOV DATA5,AJMP LOSS_E

38、NDLOSS_1:CJNE A,#1,LOSS_2MOV A,DATA3MOV DATA4,AMOV A,DATA2MOV DATA3,AMOV A,DATA1MOV DATA2,AMOV A,DATA0MOV DATA1,ACLR AMOV DATA0,AMOV DATA5,AJMP LOSS_ENDLOSS_2:CJNE A,#2,LOSS_3MOV A,DATA3MOV DATA5,AMOV A,DATA2MOV DATA4,AMOV A,DATA1MOV DATA3,AMOV A,DATA0MOV DATA2,ACLR AMOV DATA0,AMOV DATA1,AJMP LOSS_E

39、NDLOSS_3:MOV A,DATA2MOV DATA5,AMOV A,DATA1MOV DATA4,AMOV A,DATA0MOV DATA3,ACLR AMOV DATA0,AMOV DATA1,AMOV DATA2,ALOSS_END:;高位若為0,則置為11,取出顯示代碼為LED全滅MOV R0,#DATA5;取最高位數(shù)據(jù)地址MOV R2,#5LOOP_CLR:MOV A,R0JNZ DISCDMOV A,#11MOV R0,ADEC R0DJNZ R2,LOOP_CLR;=;取表找相應(yīng)顯示代碼DISCD:MOV R0,#DATA_ADDR;MOV R1,#DISPLAY_DATA_

40、ADDR;MOV R2,#6;MOV DPTR,#TABDILP:MOV A,R0MOVC A,A+DPTRMOV R1,AINC R0INC R1DJNZ R2,DILP;=;重新計數(shù)CLR AMOV TIMES_50MS,AMOV COUNTER_BUF_L,AMOV COUNTER_BUF_H,AJMP MAINTAB: ;/顯示碼碼表/ DB 3FH,06H,5BH,4FH,66H; DB 6DH,7DH,07H,7FH,6FH,0FFH;2、數(shù)碼轉(zhuǎn)化程序:在本次設(shè)計中,單片機(jī)計數(shù)器所計得的數(shù)是二進(jìn)制,以十六進(jìn)制數(shù)的形式存放在寄存器中,而我們需要顯示的是十進(jìn)制數(shù)的頻率,因此需要進(jìn)行轉(zhuǎn)化

41、才能顯示。數(shù)碼轉(zhuǎn)化程序設(shè)計的原理:本次設(shè)計的單片機(jī)數(shù)碼轉(zhuǎn)換是通過單片機(jī)的移位乘二特性和單片機(jī)的十進(jìn)制調(diào)整功能來實(shí)現(xiàn)的。先把雙字節(jié)的十六進(jìn)制數(shù)轉(zhuǎn)換為8421BCD碼,在控制顯示的時候通過位調(diào)整就可以得到計數(shù)所得頻率的十進(jìn)制數(shù)據(jù),供給顯示。其具體的轉(zhuǎn)換程序如下。;*; - 16進(jìn)制轉(zhuǎn)10進(jìn)制 -;*;雙字節(jié)十六進(jìn)制整數(shù)轉(zhuǎn)換成雙字節(jié)碼整數(shù);入口條件:待轉(zhuǎn)換的雙字節(jié)十六進(jìn)制整數(shù)在R6、R7中。;出口信息:轉(zhuǎn)換后的三字節(jié)碼整數(shù)在R3、R4、R5中。;影響資源:PSW、A、R2R7 堆棧需求: 字節(jié)CHANGE16_10: CLR A ;碼初始化 MOV R3, A MOV R4, A MOV R5, A

42、 MOV R2, #10H ;轉(zhuǎn)換雙字節(jié)十六進(jìn)制整數(shù)CHANG_1: MOV A, R7 ;從高端移出待轉(zhuǎn)換數(shù)的一位到CY中 RLC A MOV R7, A MOV A, R6 RLC A MOV R6, A MOV A, R5 ;碼帶進(jìn)位自身相加,相當(dāng)于乘 ADDC A, R5 DA A ;十進(jìn)制調(diào)整 MOV R5, A MOV A, R4 ADDC A, R4 DA A MOV R4, A MOV A, R3 ADDC A, R3 MOV R3, A ;雙字節(jié)十六進(jìn)制數(shù)的萬位數(shù)不超過,不用調(diào)整 DJNZ R2, CHANG_1 ;處理完 RET3、數(shù)碼顯示程序:單片機(jī)控制其內(nèi)部計數(shù)器得到的

43、數(shù)據(jù)要送到8位數(shù)碼顯示管中顯示出來,才能被我們所看到,直接得到我們所測量的頻率。我們本次設(shè)計所采用的是數(shù)碼管靜態(tài)顯示,所以我們要把數(shù)據(jù)循環(huán)的送入數(shù)碼管顯示。因?yàn)槲覀兘?jīng)過轉(zhuǎn)換程序把所得的數(shù)據(jù)存儲在40H45H中,因此,數(shù)碼顯示的基本原理就是把40H45H中的數(shù)據(jù)分時的通過P1口送到數(shù)碼管,再通過74LS138來控制各個數(shù)碼管的亮和滅。對于控制,我們在控制軟件里。其流程圖如圖4-3所示。 把顯示位數(shù)清零開始計算當(dāng)前要顯示的位數(shù),取得地址滅LED燈取數(shù)顯示返回主程序判斷顯示位數(shù)是否為6判斷顯示位數(shù)是否大于6是否否是圖4-2 數(shù)碼顯示流程圖由此,可以寫出顯示程序如下:;*; - 顯示子程序 -;*DI

44、SPLAY0: MOV A,COUNTER_DISPLAY; CJNE A,#6,DISPLAY1 JMP DISPLAY2;/當(dāng)前顯示位數(shù)等于6/DISPLAY1: JNC DISPLAY2;/當(dāng)前顯示位數(shù)大于6/ JMP DISPLAY3DISPLAY2: CLR A MOV COUNTER_DISPLAY,A;/當(dāng)前顯示位數(shù)大于等于6,清零/DISPLAY3: MOV A,#0FFH MOV PORT_LED,A;/變換數(shù)據(jù)前先滅LED,以消除閃動/ MOV A,COUNTER_DISPLAY MOV PORT_LED_138,A MOV R1,#DISPLAY_DATA_ADDR AD

45、D A,#DISPLAY_DATA_ADDR;/計算當(dāng)前要顯示數(shù)據(jù)的地址,初始地址+相應(yīng)位數(shù)/ MOV R1,A MOV A,R1;/取出要顯示的相應(yīng)位的數(shù)據(jù)/ MOV PORT_LED,A;/送出顯示數(shù)據(jù)/ MOV A,COUNTER_DISPLAY INC A MOV COUNTER_DISPLAY,A;/顯示位加1/RETI第5章 系統(tǒng)的仿真和調(diào)試5.1 硬件電路的仿真為了保證系統(tǒng)能正常工作,我們需要對電路中關(guān)鍵的電路部分進(jìn)行仿真,下面我們對波形整形電路和分頻電路進(jìn)行了仿真。Proteus 是一款非常不錯的單片機(jī)模擬軟件。雖然電子模擬軟件不少,但是能很好的模擬單片機(jī)的只有proteus軟

46、件。該軟件能模擬 51 單片機(jī),avr單片機(jī),pic 單片機(jī),以及部分arm 芯片。支持的外圍器件也很多包括A/d,LCD,LED 數(shù)碼管,溫度,時鐘等芯片。本次設(shè)計所有的電路都采用proteus對電路進(jìn)行仿真。下面我們對波形整形電路和分頻電路進(jìn)行仿真。具體的操作步驟如下:1、設(shè)計仿真原理圖。在這部分可以從電路電路原理圖中把該部分復(fù)制到新的項(xiàng)目中,然后在添加好電源和地。給電路加上仿真激勵源。2、設(shè)置仿真環(huán)境和仿真參數(shù)。在仿真電路圖中為個元件的數(shù)值添加參數(shù),添加需要觀察的節(jié)點(diǎn)處的網(wǎng)絡(luò)標(biāo)號,把瞬態(tài)特信仿真方式如圖5-1所示。圖5-1 選擇瞬態(tài)特性分析類3、設(shè)置瞬態(tài)分析的參數(shù),如圖5-2所示。圖5-2 瞬態(tài)特性分析參數(shù)設(shè)置4、經(jīng)過上述步驟后,設(shè)置好參數(shù)后,就可以單擊OK鍵進(jìn)行仿真。系統(tǒng)將進(jìn)行瞬態(tài)特性分析。我們依照上述步驟,可以分別得出整形電路和分頻電路的仿真波形圖。圖5-3是整形電路的仿真電路圖,圖5-4是其仿真得到的波形圖,圖5-5是分頻電路的仿真電路圖,圖5-6是其仿真得到的波形圖。圖5-3 整形電路仿真電

溫馨提示

  • 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

提交評論