基于C單片機的可自選量程的數(shù)字頻率計設計_第1頁
基于C單片機的可自選量程的數(shù)字頻率計設計_第2頁
基于C單片機的可自選量程的數(shù)字頻率計設計_第3頁
基于C單片機的可自選量程的數(shù)字頻率計設計_第4頁
基于C單片機的可自選量程的數(shù)字頻率計設計_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、-基于89C51單片機的可自選量程的數(shù)字頻率計設計 中北大學2010屆畢業(yè)設計說明書 1 引言 單片機是20世紀中期發(fā)展起來的一種面向控制的大規(guī)模集成電路模塊,具有功能強、體積小、可靠性高、價格低廉等特點,在工業(yè)控制、數(shù)據(jù)采集、智能儀表、機電一體化、家用電器等領域得到了廣泛的應用,極大的提高了這些領域的技術水平和自動化程度1。 51系列單片機是國內目前應用最廣泛的一種8位單片機之一,隨著嵌入式系統(tǒng)、片上系統(tǒng)等概念的提出和皮鞭接受及應用,51系列單片機還會在繼后很唱一段時間占據(jù)嵌入式系統(tǒng)產(chǎn)品的低端市場,因此,作為新世紀的大學生,在信息產(chǎn)業(yè)高速發(fā)展的今天,掌握單片機的基本結構、原理和使用時非常重要

2、的。 隨著電子技術的發(fā)展,當前數(shù)字系統(tǒng)的設計正朝著速度快、容量大、體積小、重量輕的方向發(fā)展。推動該潮流迅猛發(fā)展的引擎上日趨進步和完善的設計技術。目前數(shù)字頻率計的設計可以直接面向用戶要求,根據(jù)系統(tǒng)的行為和功能要求,自上至下的逐層挖不出個辦法相應的描述、綜合、優(yōu)化、仿真與驗證,知道生成期間。上述設計過程除了系統(tǒng)行為和功能描述以外。其余所有的設計過程幾乎都可以用計算機來自動的完成,也就是說做到了電子設計自動化(EDA)。這樣做可以大大地縮短系統(tǒng)的設計周期,以適應當今品種多,批量下的電子市場的需求,提高產(chǎn)品的競爭能力。 數(shù)字頻率計是數(shù)字電路中的一個典型應用,實際的硬件設計用到的器件較多,連線比較復雜,

3、而且會產(chǎn)生比較大的延時,造成測量誤差、可靠性差。隨著復雜可編程邏輯器件(CPLD)的廣泛應用,以EDA工具作為開發(fā)手段,運用匯編語言。將使整個系統(tǒng)大大簡化。提高整體的性能和可靠性。本文用匯編語言在CPLD器件上實現(xiàn)一種8 b數(shù)字頻率計測頻系統(tǒng),能夠用十進制數(shù)碼顯示被測信號的頻率,不僅能夠測量正弦波、方波和三角波等信號的頻率,而且還能對其他多種物理量進行測量。具有體積小、功耗低等特點。 中北大學2010屆畢業(yè)設計說明書 2 系統(tǒng)概述 2.1 數(shù)字頻率計的概述 數(shù)字頻率計是計算機、通訊設備、音頻視頻等科研生產(chǎn)領域不可缺少的測量儀器。它是一種用十進制數(shù)字顯示被測信號頻率的數(shù)字測量儀器。它的基本功能是

4、測量正弦信號,方波信號及其他各種單位時間內變化的物理量。在進行模擬、數(shù)字電路的設計、安裝、調試過程中,由于其使用十進制數(shù)顯示,測量迅速,精確度高,顯示直觀,經(jīng)常要用到頻率計3。 2.2 設計思路及原理 數(shù)字頻率計是用于測量信號(方波、正弦波或其它脈沖信號)的頻率,并用十進制數(shù)字顯示,它具有精度高,測量迅速,讀數(shù)方便等優(yōu)點。頻率計的基本原理是用一個頻率穩(wěn)定度高的頻率源作為基準時鐘,對比測量其他信號的頻率。通常情況下計算每秒內待測信號的脈沖個數(shù),此時我們稱閘門時間為1秒。閘門時間也可以大于或小于一秒。閘門時間越長,得到的頻率值就越準確,但閘門時間越長則沒測一次頻率的間隔就越長。閘門時間越短,測的頻

5、率值刷新就越快,但測得的頻率精度就受影響。本文。數(shù)字頻率計是用數(shù)字顯示被測信號頻率的儀器,被測信號可以是正弦波,方波或其它周期性變化的信號4。如配以適當?shù)膫鞲衅?,可以對多種物理量進行測試,比如機械振動的頻率,轉速,聲音的頻率以及產(chǎn)品的計件等等。 脈沖信號的頻率就是在單位時間內所產(chǎn)生的脈沖個數(shù),其表達式為,其中,f為被測信號的頻率,N為計數(shù)器所累計的脈沖個數(shù)。 T為產(chǎn)生N個脈沖所需的時間。計數(shù)器所記錄的結果,就是被測信號的頻率。如在1S內記錄1000個脈沖,則被測信號的頻率為1000Hz。晶振產(chǎn)生較高的標準頻率,經(jīng)分頻器后可獲得各種時基脈沖(1mS,10mS,0.1S,1S等),時基信號的選擇由

6、開關k控制.用單穩(wěn)態(tài)觸發(fā)器產(chǎn)生指令和清零信號,對置零信號而言,當達到所調節(jié)的延時時間時,延時電路輸出一個復位信號,使計數(shù)器和所有的觸發(fā)器量0,為后續(xù)新的一 中北大學2010屆畢業(yè)設計說明書 次取樣作好準備,即能鎖住一次顯示的時間,使保留到接受新的一次取樣為止。用4片十進制計數(shù)器74ls160完成對整形后的待測信號的計數(shù),通過74ls273寄存,便于數(shù)碼管顯示,用74ls48和其驅動的共陰極的半導體數(shù)碼管作為主要顯示電路。另外,信號的放大部分還可以用三極管放大電路來完成,而整形部分可用施密特觸發(fā)器來完成,對施密特觸發(fā)器只涉及到一個外接小電容,典型值為0.01uF。為簡單起見,可用555來做??刂?/p>

7、門用一個與門即可實現(xiàn)。兩個單穩(wěn)態(tài)觸發(fā)器完全一樣,均可用555來做。計數(shù)器用74LS160來完成,免去了接十進制計數(shù)器的麻煩(若用74LS161)。鎖存電路用四路鎖存器74LS75來完成。其輸出可直接接到數(shù)電箱上的74LS247譯碼電路,進而顯示結果。 2.3 系統(tǒng)組成 頻率計由單片機89C51、信號予處理電路、串行通信電路、測量數(shù)據(jù)顯示電路和系統(tǒng)軟件所組成,其中信號予處理電路包含待測信號放大、波形變換、波形整形和分頻電路。系統(tǒng)硬件框圖如圖1所示。信號予處理電路中的放大器實現(xiàn)對待測信號的放大,降低對待測信號的幅度要求;波形變換和波形整形電路實現(xiàn)把正弦波樣的正負交替的信號波形變換成可被單片機接受的

8、TTL/CMOS兼容信號;分頻電路用于擴展單片機的頻率測量范圍并實現(xiàn)單片機頻率測量和周期測量使用同一的輸入信號5。 圖 1 系統(tǒng)硬件框圖 系統(tǒng)軟件包括測量初始化模塊、顯示模塊、信號頻率測量模塊、量程自動轉換模塊、信號周期測量模塊、定時器中斷服務模塊、浮點數(shù)格式化模塊、浮點數(shù)運算模塊、浮點數(shù)到BCD碼轉換模塊。系統(tǒng)軟件框圖如圖2所示。 中北大學2010屆畢業(yè)設計說明書 圖 2系統(tǒng)軟件框圖 2.4 處理方法 本頻率計的設計以AT89C51單片機為核心,利用它內部的定時/計數(shù)器完成待測信號周期/頻率的測量。單片機AT89C51內部具有2個16位定時/計數(shù)器,定時/計數(shù)器的工作可以由變成來實現(xiàn)定時、計

9、數(shù)和產(chǎn)生計數(shù)溢出中斷要求的功能。在構成為定時器時,每隔幾期周期加1(使用12MHz時鐘時,每1us加1)這樣以及其周期為基準可以用來測量時間間隔6。在構成計數(shù)器時,在相應的外部引腳發(fā)生從1到0的的跳變時計數(shù)器加1,這樣在計數(shù)閘門的控制下可以用來測量待測信號的頻率。外部輸入每隔及其周期被采樣一次,這樣檢測一次從1到0的跳變至少需要2個極其周期(24個震蕩周期),所以最大計數(shù)速率為時鐘頻率的1/24(使用12MHz時鐘時,最大計數(shù)速率為500KHz)。定時/計數(shù)器的工作由相應的運行控制位TR控制,當TR置1,定時/計數(shù)器開始計數(shù);當TR清0,停止計數(shù)。 設計綜合考慮了頻率測量精度和測量反應時間的需

10、求。例如當要求頻率測量結果為3位有效數(shù)字,這時如果待測信號的頻率為1Hz,則計數(shù)閘門寬度必須大于1000s。為了兼顧頻率測量精度和測量反應時間的要求,把測量工作分為兩種方法。當待測信號的頻率大于100Hz時。定時/計數(shù)器構成為計數(shù)器,以及其周期為基準,由軟件產(chǎn)生計數(shù)閘門,這時要滿足頻率測量結果為3位有效數(shù)字,則計數(shù)閘門寬度大于1s即可。當待測信號的頻率小于100Hz時,定時/計數(shù)器構成為定時器,由頻率計的予處理電路把待測信號變成方波,方波寬度等于待測信 中北大學2010屆畢業(yè)設計說明書 號的周期。用方波作技術閘門,當待測信號的頻率等于100Hz,使用12MHz時鐘時的最小計數(shù)值為10000,完

11、全滿足測量精度的要求7。 2.5 頻率計的量程自動切換 在使用計數(shù)方法實現(xiàn)頻率測量時,這時外部的待測信號為定時/計數(shù)器的計數(shù)源,利用軟件延時程序實現(xiàn)計數(shù)閘門。頻率計的工作過程為:首先定時/計數(shù)器的計數(shù)寄存器清0,運行控制位TR置1,啟動定時/計數(shù)器;然后運行軟件延時程序。同時定時/計數(shù)器對外部的待測信號進行計數(shù),延時結束時TR清0,停止計數(shù);最后從計數(shù)寄存器讀出測量數(shù)據(jù),完成數(shù)據(jù)處理后,由顯示電路顯示測量結果。 在使用定時方法實現(xiàn)頻率測量時,這時外部的待測信號通過頻率計的予處理電路變成寬度等于待測信號周期的方波,該方波同樣加定時/計數(shù)器的輸入腳。這時頻率計的工作過程為:首先定時/計數(shù)器的計數(shù)寄

12、存器清0,然后檢查方波高電平 是否加至定時/計數(shù)器的輸入腳;當判定高電平加至定時/計數(shù)器的輸入腳,運行控制為TR置1,啟動定時/計數(shù)器對單片機的及其周期的計數(shù),同時檢測方波高電平是否結束;當判定高電平結束時TR置0,停止計數(shù),然后從計數(shù)寄存器讀出測量數(shù)據(jù),在完成數(shù)據(jù)處理后,由顯示電路顯示測量結果。 測量結果的顯示格式采用科學計數(shù)法,即有效數(shù)字乘以10為底的冪。這里設計的頻率計用5位數(shù)碼管顯示測量結果:前3位為測量結果的有效數(shù)字;第4位為指數(shù)的符號;第5位為指數(shù)的值。采用這種顯示格式既保證了測量結果的顯示精度,由保證了測量結果的顯示范圍(0.100Hz9.99MHz)8。 量程自動轉換的過程由頻

13、率計測量量程的高端開始。由于只顯示3位有效數(shù)字,在測量量程的高端計數(shù)閘門不需要太寬,例如在10.0KHz-99.9KHz頻率范圍,計數(shù)閘門寬度為10mS即可。頻率計每個工作循環(huán)開始時使用計數(shù)方法實現(xiàn)頻率測量,并是計數(shù)閘門寬度為最窄,完成測量后判斷測量結果是否具有3位有效數(shù)字,如果成立,將結果送去顯示,本工作循環(huán)結束;否則將計數(shù)閘門寬度擴大10倍,繼續(xù)進行測量判斷,直到計數(shù)閘門寬度達到1s,這時對應的頻率測量 中北大學2010屆畢業(yè)設計說明書 范圍為100Hz-999Hz。如果測量結果仍不具有3位有效數(shù)字,頻率計則使用定時方法實現(xiàn)頻率測量。定時方法測量的是待測信號的周期,這種方法只設一種量程,測

14、量結果通過浮點運算模塊將信號周期轉換成對應的頻率值,再將結果送去顯示,這樣無論采用何種方式,只要完成一次測量即可,頻率計自動開始下一個測量循環(huán)。因此該頻率計具有連續(xù)測量的功能,同時實現(xiàn)量程的自動轉換 9。 中北大學2010屆畢業(yè)設計說明書 3 系統(tǒng)硬件設計 3.1 信號予處理電路 頻率計信號予處理電路如圖3 所示,它由四級電路構成。第一級為零偏置放大器,當輸入信號為零或者為負電壓時,三極管截止,輸出高電平;當輸入信號為正電壓時,三極管導通,輸出電壓隨著輸入電壓的上升而下降。零偏置放大器把如正弦波樣的正負交替波形變換成單向脈沖,這使得頻率計既可以測量任意方波信號的頻率,也可以測量正弦波信號的頻率

15、。放大器的放大能力實現(xiàn)了對小信號的測量,本電路可以測量幅度0. 5V 的正弦波或脈沖波待測信號10。三極管應采用開關三極管以保證放大器具有良好的高頻響應。第二級采用帶施密特觸發(fā)器的反相器7414 ,它用于把放大器生成的單向脈沖變換成與 電平相兼容的方波。第三級采用十進制同步計數(shù)器74160 ,第級輸出的方波加到74160 的CL K,當從74160 的TC 輸出可實現(xiàn)10分頻(多個74160 的級連可以進一步擴展測頻范圍) 。第四級同樣采用十進制同步計數(shù)器74160 ,第三級輸出的方波加到它的CL K,從它的Q0 輸出即可實現(xiàn)2 分頻,且其輸出為對稱方波,方波寬度等于待測信號的周期,從而為測量

16、信號周期提供基礎。 圖3 信號予處理電路 中北大學2010屆畢業(yè)設計說明書 3. 2 AT89C51單片機及其引腳說明 頻率測量電路選用89C51 作為頻率計的信號處理核心。89C51 包含2 個16 位定時/ 計數(shù)器、1個具有同步移位寄存器方式的串行輸入/ 輸出口和4 K8 位片內FLASH 程序存儲器。16 位定時/ 計數(shù)器用于實現(xiàn)待測信號的頻率測量或者待測信號的周期測量。同步移位寄存器方式的串行輸入/ 輸出口用于把測量結果送到顯示電路。4 K 8 位片內FLASH 程序存儲器用于放置系統(tǒng)軟件。89C51 與具有更大程序存儲器的芯片管腳兼容,如: 89C52(8 K8 位) 或89C55

17、(32 K8 位) ,為系統(tǒng)軟件升級打下堅實的物質基礎。 AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統(tǒng)提供了

18、一種靈活性高且價廉的方案。 AT89C51是一種低功耗高性能的8位單片機,片內帶有一個4k字節(jié)的Flash可編擦除只讀存儲器(PEROM),它采用了CMOS工藝和ATMEL公司的高密度非易失性存儲器(NURAM)技術,而且其輸出引腳和指令系統(tǒng)和MCU_51系列單片機兼容。片內的Flash存儲器允許在系統(tǒng)內可改編程序或用常規(guī)的非易失性的存儲器編程器來編程。同時已具有三級程序存儲器保密的性能: 在眾多的51系列單片機中,要算ATMEI公司的AT89C51更實用,因為它不僅和MCU_51系列單片機指令、管腳完全兼容,而且其片內的4k程序存儲器是Flash工藝的,這種下藝的存儲器用戶可以用電的方式瞬間

19、擦除、改寫。所以說這種單片機對開發(fā)設備的要求很低,開發(fā)時間也大大縮短。寫入單片機的程序還可以加密,這又很好地保護了所有者的勞動成果。 AT89C51是一個低電壓,高性能CMOS 8位單片機,片內含4k bytes的可反 中北大學2010屆畢業(yè)設計說明書 復擦寫的Flash只讀程序存儲器和128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內置通用8位中央處理器和Flash存儲單元,內置功能強大的微型計算機的AT89C51提供了高性價比的解決方案。AT89C51是一個低功耗高性能單片機,40個引腳,32個外部雙向

20、輸入/輸出(I/O)端口,同時內含2個外中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,AT89C51可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發(fā)成本。 AT89C51具有PDIP、 求。主要功能特性: 兼容MCS51Z指令系統(tǒng) 4k可反復擦寫(>1000次)Flash ROM 32個雙向I/O口 靜態(tài)操作0-24MHz 1個串行中斷 128x8bit內部RAM 兩個外部中斷源 共6個中斷源 可直接驅動LED 3級加密位 低功耗空閑和掉電模式 軟件設置睡眠和喚醒功能 1主如前所述,A

21、T89C51單片機片內帶有一個4k字節(jié)的Flash可編程可擦除只讀存儲器,這就決定了在某些方面其自身的優(yōu)越性。 主要特性: ?與MCS-51 兼容 ?4K字節(jié)可編程閃爍存儲器 ?壽命:1000寫/擦循環(huán) ?數(shù)據(jù)保留時間:10年 ?全靜態(tài)工作:0Hz-24Hz ?三級程序存儲器鎖定 ?128x8bit內部RAM 及PLCC等三種封裝形式,以適應不同產(chǎn)品的需 中北大學2010屆畢業(yè)設計說明書 ?32可編程I/O線 ?兩個16位定時器/計數(shù)器 ?5個中斷源 ?可編程串行通道 ?低功耗的閑置和掉電模式 ?片內振蕩器和時鐘電路 2管腳說明: VCC:供電電壓。 GND:接地。 P0口:P0口為一個8位漏

22、級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。 P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸

23、出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸 中北大學2010屆畢業(yè)設計說明書

24、 入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 P3口也可作為AT89C51的一些特殊功能口,如下表所示: 口管腳 備選功能 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1) P3.4 T0(記時器0外部輸入) P3.5 T1(記時器1外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲器寫選通) P3.7 /RD(外部數(shù)據(jù)存儲器讀選通) P3口同時為閃爍編程和編程校驗接收一些控制信號。 RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。 ALE/PROG:當訪問

25、外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,

26、這兩次有效的/PSEN信號將不出現(xiàn)。 /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當 中北大學2010屆畢業(yè)設計說明書 /EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。 3振蕩器特性: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,

27、XTAL2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。 4芯片擦除: 整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。此外,AT89C51設有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內容并且凍結振蕩器,禁止所用其他芯片功能,直到下

28、一個硬件復位為止11。 3.3 數(shù)據(jù)顯示電路 顯示電路采用靜態(tài)顯示方式。頻率測量結果經(jīng)過譯碼,通過89C51 的串行口送出。串行口工作于模式0 ,即同步移位寄存器方式。這時從89C51 的RXD(P3. 0) 輸出數(shù)據(jù),送至串入并出移位寄存器74164 的數(shù)據(jù)輸入口A 和B ;從TXD( P3. 1) 輸出時鐘,送至74164 的時鐘輸入口CP。74164 將串行數(shù)據(jù)轉換成并行數(shù)據(jù),進行鎖存。74164 輸出的8 位并行數(shù)據(jù)送至8 段L ED ,實現(xiàn)測量數(shù)據(jù)的顯示。使用這種方法主程序可不必掃描顯示器,從而單片機可以進行下一次測量。這種方法也便于對顯示位數(shù)進行擴展. 中北大學2010屆畢業(yè)設計說

29、明書 4 系統(tǒng)軟件設計 4.1 數(shù)據(jù)處理過程 在頻率計開始工作,或者完成一次頻率測量,系統(tǒng)軟件都進行測量初始化。測量初始化模塊設置堆棧指針(SP) 、工作寄存器、中斷控制和定時/ 計數(shù)器的工作方式。定時/ 計數(shù)器的工作首先被設置為計數(shù)器方式,即用來測量信號頻率。在對定時/ 計數(shù)器的計數(shù)寄存器清0 后,置運行控制位TR 為1 ,啟動對待測信號的計數(shù)。計數(shù)閘門由軟件延時程序實現(xiàn),從計數(shù)閘門的最小值開始,也就是從測量頻率的高量程開始。計數(shù)閘門結束時TR 清0 ,停止計數(shù)。計數(shù)寄存器中的值通過16 進制數(shù)到10 進制數(shù)轉換程序轉換為10 進制數(shù)。對10 進制數(shù)的最高位進行判別,若該位不為0 ,滿足測量

30、數(shù)據(jù)有效位數(shù)的要求,測量值和量程信息一起送到顯示模塊;若該位為0 ,將計數(shù)閘門的寬度擴大10 倍,重新對待測信號的計數(shù),直到滿足測量數(shù)據(jù)有效位數(shù)的要求12。 當上述測量判斷過程直到計數(shù)閘門寬度達到1s ,這時對應的頻率測量范圍為100Hz - 999Hz ,如果測量結果仍不具有3 位有效數(shù)字,頻率計則使用定時方法測量待測信號的周期。定時/計數(shù)器的工作這時被設置為定時器方式,在對定時/計數(shù)器的計數(shù)寄存器清0 后,判斷待測信號的上跳沿是否到來。待測信號的上跳沿到來后,置運行控制位TR 為1 ,以單片機工作周期為單位,啟動對待測信號的周期測量。然后判斷待測信號的下跳沿是否到來,待測信號的下跳沿到來后

31、,運行控制位TR 清0 ,停止計數(shù)。16 位定時/計數(shù)器的最高計數(shù)值為65535 ,這樣在待測信號的頻率較低時,定時/計數(shù)器將發(fā)生溢出。當產(chǎn)生定時/計數(shù)器將溢出,程序進入定時器中斷服務程序,中斷服務程序對溢出次數(shù)進行計數(shù)。待測信號的周期由3 個字節(jié)組成:定時/計數(shù)器溢出次數(shù)、定時/計數(shù)器的高8 位和低8 位。信號的頻率f 與信號的周期T 之間的關系為: 完成信號的周期測量后,需要做一次倒數(shù)運算才能獲得信號的頻率。為提高 中北大學2010屆畢業(yè)設計說明書 運算精度,這里采用浮點數(shù)算術運算。浮點數(shù)用3 個字節(jié)組成,第一字節(jié)最高位為數(shù)符,其余7 位為階碼;第二字節(jié)為尾數(shù)的高字節(jié);第三字節(jié)為尾數(shù)的低字

32、節(jié)。待測信號周期的3 個字節(jié)定點數(shù)首先通過截取高16 位、設置數(shù)符和計算階碼轉換為上述格式的浮點數(shù)。然后浮點數(shù)算術運算對其進行處理,獲得用浮點數(shù)格式表達的信號頻率值。浮點數(shù)到BCD 碼轉換模塊把用浮點數(shù)格式表達的信號頻率值變換成本頻率計的顯示格式,送到顯示模塊顯示待測信號的頻率值。無論從哪一種方式進入顯示模塊,完成顯示后,頻率計都開始下一次信號的頻率測量。 4.2 系統(tǒng)軟件框圖 系統(tǒng)軟件設計采用模塊化設計方法。整個系統(tǒng)由初始化模塊、顯示模塊和信號頻率測量模塊等各種功能模塊組成(見圖4)。上電后,進入系統(tǒng)初始化模塊,系統(tǒng)軟件開始運行。在執(zhí)行過程中,根據(jù)運行流程分別調用各個功能模塊完成頻率測量、量

33、程自動切換、周期測量和測量結果顯示。 圖4 系統(tǒng)軟件流程圖 中北大學2010屆畢業(yè)設計說明書 4.3 浮點數(shù)學運算程序 8051 系列單片機屬于微控制器,由于其CPU字長和指令功能的限制,它適用于控制領域,在信號處理方面不很擅長。在本頻率計中需要完成周期到頻率的換算,為保證測量結果的準確,這里應用了浮點數(shù)數(shù)學運算13。從周期到頻率的換算過程包括: 3字節(jié)定點數(shù)到浮點數(shù)的轉換、浮點數(shù)數(shù)學運算和浮點數(shù)到BCD 碼的轉換。由于通過多次的轉換,整個換算過程精度還不是很高,通過實測,精度大約為千分之二左右。 中北大學2010屆畢業(yè)設計說明書 5 基本測量原理與理論誤差分析 5.1 高精度恒定誤差頻率周期

34、測量技術 頻率測量誤差分析及其公式推導如下。 (1)量化誤差 設測得頻率為Fx被測頻率真實值為Fxe標準頻率為Fs,在一次測量中預置門時間為Tpr,被測信號計數(shù)值為Nx,標推頻率信號計數(shù)值為Ns . Fx計數(shù)的起停時間都是由該信號的上升沿觸發(fā)的,在Tpr時間內對Fx的計數(shù)Nx無誤差;在此時間內Fs的計數(shù)從Ns最多相差一個脈沖,即 而 由上式可得 根據(jù)相對誤差公式有 由上式得 因為 所以 即 由上式可以得出以下結論 相對測量誤差與頻率無關。 中北大學2010屆畢業(yè)設計說明書 增大Tpr或提高Fs,可以增大Ns,減少測量誤差,提高測量精度。 (2)標準頻率誤差 標準頻率誤差為Fs/Fs,因為晶體的

35、穩(wěn)定度很高,標準 頻率誤差可以進行校準,相對于量化誤差,校準后的標準頻率誤差可以忽略。 (3)分變率誤差分析 先由單片機給出閘門開啟信號 ,此時計數(shù)器并不計數(shù) ,而是等到被測信號 的上升沿到來時,才開始計數(shù)。然后,兩組計數(shù)器分別對被測信號和時標脈沖計 數(shù),當單片機給出閘門關閉信號后 ,計數(shù)器并不立即停止計數(shù) ,而是等到被測信 號下降沿到來的時刻才結束計數(shù) ,完成一次測量過程??梢钥闯?,實際閘門與設 定的閘門并不嚴格相等 ,但最大差值不超過被測信號的一個周期14。 設被測信號的計數(shù)為 NX ,對時標的計數(shù)為 N0 ,時標頻率為 f0 ,閘門時間 為,則被測信號頻率為: 計數(shù)器的開閉與被測信號是

36、完全同步的 ,即在實際閘門中包含整數(shù)個被測 信號的周期 ,因而不存在對被測信號計數(shù)的 1 個字誤差 ,由式 微分可得 相對誤差為: 式(5)中前兩項分別表示計數(shù)器 T0 和計數(shù)器 T1 的誤差 ,第三項為頻率準確 度。由于計數(shù)是在相關同步門控時間內完成的,即由待測信號同步控制,因此同 步門控與計數(shù)器 T1 的計數(shù)脈沖相關,且 T/ Tx 的比值 Nx為整數(shù) ,故被測信 號計數(shù)值不存在計數(shù)誤差。而計數(shù)器 T0 對時標的計數(shù) ,由于門控的啟閉時刻 的隨機性及 T/ T0之比值 N0 為非整數(shù)( T0 為時標周期) ,在門控的啟閉時刻 中北大學2010屆畢業(yè)設計說明書 分別有時間零頭T1 和 T2

37、無法計入,故存在 1 誤差。當忽略頻率準確度 誤差時,多周期同步法測頻的最大誤差為: 由式(6)可以看出 ,測量分辨率與被測信號頻率的大小無關 ,僅與閘門時間 及時標頻率有關 ,即實現(xiàn)了被測頻帶內的等精度測量,閘門時間越長,時標頻率 越高 ,分辨率越高。 5.2 預置門時間信號與閘門時間信號 預置門的概念與傳統(tǒng)的閘門的概念是不同的。預置門是指同時啟動或停止標 準頻率信號計數(shù)器和被測信號計數(shù)器的門控信號。碩置門的概念用于高精度恒定 誤差測頻測周期方法中,并稱預置門的時間寬度為預置門時間15。 高精度恒定誤差測頻方法測量精度與預置門時間和標準頻率有關,與被測信 號的頻率無關。在預置門時間和閘門時間

38、相同而被測信號頻率不同的情況下,高 精度恒誤差額率測量法的測量精度不變,而直接測頻法精度隨著被測信號頻率的 增加而接近線性地增大。 5.3 脈沖寬度測量理論誤差分析 根據(jù)方案中的脈沖寬度測量方法,分析脈寬測量誤差。設被測信號脈寬為 Twxe,標準頻率信號頻率為Fs,則脈沖寬度的測量值為 在一次測量中,對標準頻率信號的計數(shù)值Nx可能產(chǎn)生1個標準頻率信號周 期的計數(shù)誤差,則脈寬測量相對誤差為 其中 當 .可以看出,在Fs一定時,脈寬越小,誤差越大。 =100s,=60MHz時,6000,則有 中北大學2010屆畢業(yè)設計說明書 5.4 周期脈沖信號占空比測量誤差分析 使用第一部分中所述的占空比方法,

39、根據(jù)誤差合成原理,周期測量相對誤差最大恒等于脈沖寬度測量相對誤差16。 在標準頻率為60MHz,被測頻率1kHz(即周期為0.001s)時。設其占空比為10,如果要滿足題日部分要求,由脈沖寬測量相對誤羌公式計算出的相對誤差應小于 實際精度完全可以超過這個要求。 中北大學2010屆畢業(yè)設計說明書 6 實測結果和誤差分析 為了衡量這次設計的頻率計的工作情況和測量精度,我們對系統(tǒng)進行了試驗。以南京電訊儀器廠制造的E312B 型通用計數(shù)器為基準,用這次設計的頻率計對信號源進行了測量,測量數(shù)據(jù)如表1 所示。 表1 頻率測量對比表 如圖3 信號予處理電路所示,待測信號在進入單片機之前經(jīng)過了10 2 次分頻

40、。頻率計以進入單片機時的信號頻率等于100Hz 為基準,既待測信號頻率等于2 KHz 為基準,大于此頻率采用頻率測量,小于此頻率采用周期測量。由表1 頻率測量對比表可以看出,頻率測量的測量精度大于周期測量的測量精度。采用計數(shù)法實現(xiàn)頻率測量,誤差來源主要有計數(shù)誤差和閘門誤差兩部分。誤差表達式為 這里N 為計數(shù)值,t 為閘門時間。閘門時間相對誤差dt/ t 主要取決于晶振的頻率穩(wěn)定度,選擇合適的石英晶體和振蕩電路,誤差一般可小于10 - 6 。當僅顯示3 位有效數(shù)字時,該項誤差可以忽略。對于dN/ N 部分,無論閘門時間長短,計數(shù)法測頻總存在1 個單位的量化誤差。在表1 中,待測信號頻率大于2 K

41、Hz 時的誤差就來源于計數(shù)誤差。增加顯示的有效數(shù)字位數(shù)可降低該項誤差的影響。當待測信號頻率小于2 KHz 時,直接測量的是信號的周期。周期測量的誤差表達式為: 這里 為量化誤差, 為晶振的頻率穩(wěn)定度。進行周期測量時進入單片機的信號頻率小于100Hz ,使用12MHz 時鐘這時的最小計數(shù)值為10000 。當僅顯示3 位 中北大學2010屆畢業(yè)設計說明書 有效數(shù)字時,該項誤差現(xiàn)在可以忽略。待測信號周期測量值通過浮點數(shù)數(shù)學運算變換成頻率值,這時的誤差來源于浮點數(shù)數(shù)學運算和數(shù)制之間轉換所帶來的誤差。 中北大學2010屆畢業(yè)設計說明書 7 結論 大學四年中,我系統(tǒng)的學習了單片機的知識,也看到了單片機控制

42、程序的廣闊前景,選擇這個課題,正是希望能加深自己對單片機各方面的理解,并在運用先前學到的知識進行設計的過程中,進一步的理解其實質和作用,鞏固和拓展以前的學習成果,從而希望今后能在這個領域作出成績。 由于單片機技術發(fā)展已經(jīng)很成熟,我更多的是借鑒前人的工作,完善我的設計。當然,我在前人的基礎上向前走了一步,無論是原器件的選擇,還是程序的設計,我做的比他們復雜,這并不是簡單意義上的重復,而是消化吸收和創(chuàng)新。 在設計的過程中,我一方面澄清了先前的一些錯誤理解,另一方面也真正的體會到了書本知識轉化為實踐時的困難,往往很不起眼的一件事情,就是設計的關鍵,必須得搞清楚。為了查找相關的技術文獻資料,我上網(wǎng),去

43、學校圖書館甚查找資料,雖然辛苦一點,但是令人欣慰的是學到了書本上學不到的東西,并且掌握了設計的一般方法。 三個月的時間很短,我的能力也有限,很可能我的設計存在這樣或那樣的不足,希望各位多多批評斧正。 中北大學2010屆畢業(yè)設計說明書 附錄A 匯編源程序 WX EQU 78H ;1 ms中斷一次 ORG 0000H AJMP DP ORG 001BH AJMP DP0 ORG 0100H DP: MOV SP,# 80H MOV WX,# 11111110B MOV R7,# 7H mov R1,# 61H MOV TMOD,# 10H MOV TL1,# 0CH MOV TH1,# 0FEH

44、SETB EA SETB ET1 SETB TR1 SJMP $ DP0: MOV TL1,# 0CH MOV TH1,# 0FEH CLR P2.7 MOV C,P2.7 JC DP01 setb P2.7 CLR P0.7 中北大學2010屆畢業(yè)設計說明書 SETB P0.7 SJMP QQ DP01: CLR P2.7 ACALL BTD CLR P0.7 SETB P0.7 qq: MOV A,R1 INC R1 MOV P0,WX MOV P2,A MOV A,WX RL A MOV WX,A DJNZ R7,LOOP1 MOV WX,# 11111110B Mov R7,# 7 M

45、ov R1,# 61H LOOP1:SETB TR1 RETI -計數(shù)程序- BTD: MOV R1,# 61H MOV R3,# 0ffh MOV R2,# offh CLR A MOV R4,A 中北大學2010屆畢業(yè)設計說明書 MOV R5,A MOV R6,A MOV R7,# 10H BTD0: CLR C MOV A,R3 RLC A MOV R3,A MOV A,R2 RLC A MOV R2,A MOV A,R6 ADDC A,R6 DA A MOV R6,A MOV A,R5 ADDC A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MO

46、V R4,A DJNZ R7,BTD0 MOV A,R4 SWAP A ANL A,# 0FH 中北大學2010屆畢業(yè)設計說明書 MOV R1,A INC R1 MOV A,R4 ANL A,# 0FH MOV R1,A INC R1 MOV A,R5 SWAP A ANL A,# 0FH MOV R1,A INC R1 MOV A,R5 ANL A,# 0FH MOV R1,A INC R1 MOV A,R6 SWAP A ANL A,# 0FH MOV R1,A INC R1 MOV A,R6 ANL A,# 0FH MOV R1,A INC R1 END 中北大學2010屆畢業(yè)設計說明書 附錄B 程序流程圖 中北大

溫馨提示

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

評論

0/150

提交評論