基于單片機的頻率計設計郭霈_第1頁
基于單片機的頻率計設計郭霈_第2頁
基于單片機的頻率計設計郭霈_第3頁
基于單片機的頻率計設計郭霈_第4頁
基于單片機的頻率計設計郭霈_第5頁
已閱讀5頁,還剩23頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、江西理工大學2010屆專科生畢業設計(論文)江 西 理 工 大 學 南 昌 校 區畢 業 設 計(論文)題 目:基于51單片機頻率計設計 系 :信息工程系專 業:電氣自動化班 級:電氣自動化101班學 生:郭霈學 號:10321126指導教師:崔智勇 職稱:講師1 引言 單片機是20世紀中期發展起來的一種面向控制的大規模集成電路模塊,具有功能強、體積小、可靠性高、價格低廉等特點,在工業控制、數據采集、智能儀表、機電一體化、家用電器等領域得到了廣泛的應用,極大的提高了這些領域的技術水平和自動化程度1。 51系列單片機是國內目前應用最廣泛的一種8位單片機之一,隨著嵌入式系統、片上系統等概念的提出和

2、皮鞭接受及應用,51系列單片機還會在繼后很唱一段時間占據嵌入式系統產品的低端市場,因此,作為新世紀的大學生,在信息產業高速發展的今天,掌握單片機的基本結構、原理和使用時非常重要的。隨著電子技術的發展,當前數字系統的設計正朝著速度快、容量大、體積小、重量輕的方向發展。推動該潮流迅猛發展的引擎上日趨進步和完善的設計技術。目前數字頻率計的設計可以直接面向用戶要求,根據系統的行為和功能要求,自上至下的逐層挖不出個辦法相應的描述、綜合、優化、仿真與驗證,知道生成期間。上述設計過程除了系統行為和功能描述以外。其余所有的設計過程幾乎都可以用計算機來自動的完成,也就是說做到了電子設計自動化(EDA)。這樣做可

3、以大大地縮短系統的設計周期,以適應當今品種多,批量下的電子市場的需求,提高產品的競爭能力。數字頻率計是數字電路中的一個典型應用,實際的硬件設計用到的器件較多,連線比較復雜,而且會產生比較大的延時,造成測量誤差、可靠性差。隨著復雜可編程邏輯器件(CPLD)的廣泛應用,以EDA工具作為開發手段,運用匯編語言。將使整個系統大大簡化。提高整體的性能和可靠性。本文用匯編語言在CPLD器件上實現一種8 b數字頻率計測頻系統,能夠用十進制數碼顯示被測信號的頻率,不僅能夠測量正弦波、方波和三角波等信號的頻率,而且還能對其他多種物理量進行測量。具有體積小、功耗低等特點。2 系統概述2.1 數字頻率計的概述數字頻

4、率計是計算機、通訊設備、音頻視頻等科研生產領域不可缺少的測量儀器。它是一種用十進制數字顯示被測信號頻率的數字測量儀器。它的基本功能是測量正弦信號,方波信號及其他各種單位時間內變化的物理量。在進行模擬、數字電路的設計、安裝、調試過程中,由于其使用十進制數顯示,測量迅速,精確度高,顯示直觀,經常要用到頻率計3。2.2 設計思路及原理數字頻率計是用于測量信號(方波、正弦波或其它脈沖信號)的頻率,并用十進制數字顯示,它具有精度高,測量迅速,讀數方便等優點。頻率計的基本原理是用一個頻率穩定度高的頻率源作為基準時鐘,對比測量其他信號的頻率。通常情況下計算每秒內待測信號的脈沖個數,此時我們稱閘門時間為1秒。

5、閘門時間也可以大于或小于一秒。閘門時間越長,得到的頻率值就越準確,但閘門時間越長則沒測一次頻率的間隔就越長。閘門時間越短,測的頻率值刷新就越快,但測得的頻率精度就受影響。本文。數字頻率計是用數字顯示被測信號頻率的儀器,被測信號可以是正弦波,方波或其它周期性變化的信號4。如配以適當的傳感器,可以對多種物理量進行測試,比如機械振動的頻率,轉速,聲音的頻率以及產品的計件等等。  脈沖信號的頻率就是在單位時間內所產生的脈沖個數,其表達式為f=NT,其中,f為被測信號的頻率,N為計數器所累計的脈沖個數。 T為產生N個脈沖所需的時間。計數器所記錄的結果,就是被測信號的頻率。如在1S內記

6、錄1000個脈沖,則被測信號的頻率為1000Hz。晶振產生較高的標準頻率,經分頻器后可獲得各種時基脈沖(1mS,10mS,0.1S,1S等),時基信號的選擇由開關k控制.用單穩態觸發器產生指令和清零信號,對置零信號而言,當達到所調節的延時時間時,延時電路輸出一個復位信號,使計數器和所有的觸發器量0,為后續新的一次取樣作好準備,即能鎖住一次顯示的時間,使保留到接受新的一次取樣為止。用4片十進制計數器74ls160完成對整形后的待測信號的計數,通過74ls273寄存,便于數碼管顯示,用74ls48和其驅動的共陰極的半導體數碼管作為主要顯示電路。另外,信號的放大部分還可以用三極管放大電路來完成,而整

7、形部分可用施密特觸發器來完成,對施密特觸發器只涉及到一個外接小電容,典型值為0.01uF。為簡單起見,可用555來做。控制門用一個與門即可實現。兩個單穩態觸發器完全一樣,均可用555來做。計數器用74LS160來完成,免去了接十進制計數器的麻煩(若用74LS161)。鎖存電路用四路鎖存器74LS75來完成。其輸出可直接接到數電箱上的74LS247譯碼電路,進而顯示結果。2.3 系統組成待測信號 頻率計由單片機89C51、信號予處理電路、串行通信電路、測量數據顯示電路和系統軟件所組成,其中信號予處理電路包含待測信號放大、波形變換、波形整形和分頻電路。系統硬件框圖如圖1所示。信號予處理電路中的放大

8、器實現對待測信號的放大,降低對待測信號的幅度要求;波形變換和波形整形電路實現把正弦波樣的正負交替的信號波形變換成可被單片機接受的TTL/CMOS兼容信號;分頻電路用于擴展單片機的頻率測量范圍并實現單片機頻率測量和周期測量使用同一的輸入信號5。分頻電路波形整形波形變換放大器單片機串行通信電路單片機圖 1 系統硬件圖系統軟件包括測量初始化模塊、顯示模塊、信號頻率測量模塊、量程自動轉換模塊、信號周期測量模塊、定時器中斷服務模塊、浮點數格式化模塊、浮點數運算模塊、浮點數到BCD碼轉換模塊。系統軟件框圖如圖2所示。量程自動轉換模塊頻率測量模塊初始化模塊周期測量模塊定時器中斷服務模塊顯示模塊浮點數格式化模

9、塊浮點數算術運算模塊浮點數到BCD碼轉換模塊圖 2系統軟件圖2.4 處理方法 本頻率計的設計以AT89C51單片機為核心,利用它內部的定時/計數器完成待測信號周期/頻率的測量。單片機AT89C51內部具有2個16位定時/計數器,定時/計數器的工作可以由變成來實現定時、計數和產生計數溢出中斷要求的功能。在構成為定時器時,每隔幾期周期加1(使用12MHz時鐘時,每1us加1)這樣以及其周期為基準可以用來測量時間間隔6。在構成計數器時,在相應的外部引腳發生從1到0的的跳變時計數器加1,這樣在計數閘門的控制下可以用來測量待測信號的頻率。外部輸入每隔及其周期被采樣一次,這樣檢測一次從1到0的跳變至少需要

10、2個極其周期(24個震蕩周期),所以最大計數速率為時鐘頻率的1/24(使用12MHz時鐘時,最大計數速率為500KHz)。定時/計數器的工作由相應的運行控制位TR控制,當TR置1,定時/計數器開始計數;當TR清0,停止計數。 設計綜合考慮了頻率測量精度和測量反應時間的需求。例如當要求頻率測量結果為3位有效數字,這時如果待測信號的頻率為1Hz,則計數閘門寬度必須大于1000s。為了兼顧頻率測量精度和測量反應時間的要求,把測量工作分為兩種方法。當待測信號的頻率大于100Hz時。定時/計數器構成為計數器,以及其周期為基準,由軟件產生計數閘門,這時要滿足頻率測量結果為3位有效數字,則計數閘門寬度大于1

11、s即可。當待測信號的頻率小于100Hz時,定時/計數器構成為定時器,由頻率計的予處理電路把待測信號變成方波,方波寬度等于待測信號的周期。用方波作技術閘門,當待測信號的頻率等于100Hz,使用12MHz時鐘時的最小計數值為10000,完全滿足測量精度的要求7。2.5 頻率計的量程自動切換 在使用計數方法實現頻率測量時,這時外部的待測信號為定時/計數器的計數源,利用軟件延時程序實現計數閘門。頻率計的工作過程為:首先定時/計數器的計數寄存器清0,運行控制位TR置1,啟動定時/計數器;然后運行軟件延時程序。同時定時/計數器對外部的待測信號進行計數,延時結束時TR清0,停止計數;最后從計數寄存器讀出測量

12、數據,完成數據處理后,由顯示電路顯示測量結果。 在使用定時方法實現頻率測量時,這時外部的待測信號通過頻率計的予處理電路變成寬度等于待測信號周期的方波,該方波同樣加定時/計數器的輸入腳。這時頻率計的工作過程為:首先定時/計數器的計數寄存器清0,然后檢查方波高電平 是否加至定時/計數器的輸入腳;當判定高電平加至定時/計數器的輸入腳,運行控制為TR置1,啟動定時/計數器對單片機的及其周期的計數,同時檢測方波高電平是否結束;當判定高電平結束時TR置0,停止計數,然后從計數寄存器讀出測量數據,在完成數據處理后,由顯示電路顯示測量結果。 測量結果的顯示格式采用科學計數法,即有效數字乘以10為底的冪。這里設

13、計的頻率計用5位數碼管顯示測量結果:前3位為測量結果的有效數字;第4位為指數的符號;第5位為指數的值。采用這種顯示格式既保證了測量結果的顯示精度,由保證了測量結果的顯示范圍(0.100Hz9.99MHz)8。 量程自動轉換的過程由頻率計測量量程的高端開始。由于只顯示3位有效數字,在測量量程的高端計數閘門不需要太寬,例如在10.0KHz-99.9KHz頻率范圍,計數閘門寬度為10mS即可。頻率計每個工作循環開始時使用計數方法實現頻率測量,并是計數閘門寬度為最窄,完成測量后判斷測量結果是否具有3位有效數字,如果成立,將結果送去顯示,本工作循環結束;否則將計數閘門寬度擴大10倍,繼續進行測量判斷,直

14、到計數閘門寬度達到1s,這時對應的頻率測量范圍為100Hz-999Hz。如果測量結果仍不具有3位有效數字,頻率計則使用定時方法實現頻率測量。定時方法測量的是待測信號的周期,這種方法只設一種量程,測量結果通過浮點運算模塊將信號周期轉換成對應的頻率值,再將結果送去顯示,這樣無論采用何種方式,只要完成一次測量即可,頻率計自動開始下一個測量循環。因此該頻率計具有連續測量的功能,同時實現量程的自動轉換9。3 系統硬件設計3.1 信號予處理電路頻率計信號予處理電路如圖3 所示,它由四級電路構成。第一級為零偏置放大器,當輸入信號為零或者為負電壓時,三極管截止,輸出高電平;當輸入信號為正電壓時,三極管導通,輸

15、出電壓隨著輸入電壓的上升而下降。零偏置放大器把如正弦波樣的正負交替波形變換成單向脈沖,這使得頻率計既可以測量任意方波信號的頻率,也可以測量正弦波信號的頻率。放大器的放大能力實現了對小信號的測量,本電路可以測量幅度0. 5V 的正弦波或脈沖波待測信號10。三極管應采用開關三極管以保證放大器具有良好的高頻響應。第二級采用帶施密特觸發器的反相器7414 ,它用于把放大器生成的單向脈沖變換成與TTLCMOS 電平相兼容的方波。第三級采用十進制同步計數器74160 ,第級輸出的方波加到74160 的CL K,當從74160 的TC 輸出可實現10分頻(多個74160 的級連可以進一步擴展測頻范圍) 。第

16、四級同樣采用十進制同步計數器74160 ,第三級輸出的方波加到它的CL K,從它的Q0 輸出即可實現2 分頻,且其輸出為對稱方波,方波寬度等于待測信號的周期,從而為測量信號周期提供基礎。圖3 信號處理電路3. 2 AT89C51單片機及其引腳說明頻率測量電路選用89C51 作為頻率計的信號處理核心。89C51 包含2 個16 位定時/ 計數器、1個具有同步移位寄存器方式的串行輸入/ 輸出口和4 K×8 位片內FLASH 程序存儲器。16 位定時/ 計數器用于實現待測信號的頻率測量或者待測信號的周期測量。同步移位寄存器方式的串行輸入/ 輸出口用于把測量結果送到顯示電路。4 K 

17、5;8 位片內FLASH 程序存儲器用于放置系統軟件。89C51 與具有更大程序存儲器的芯片管腳兼容,如: 89C52(8 K×8 位) 或89C55 (32 K×8 位) ,為系統軟件升級打下堅實的物質基礎。AT89C51是一種帶4K字節閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將

18、多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。 AT89C51是一種低功耗高性能的8位單片機,片內帶有一個4k字節的Flash可編擦除只讀存儲器(PEROM),它采用了CMOS工藝和ATMEL公司的高密度非易失性存儲器(NURAM)技術,而且其輸出引腳和指令系統和MCU_51系列單片機兼容。片內的Flash存儲器允許在系統內可改編程序或用常規的非易失性的存儲器編程器來編程。同時已具有三級程序存儲器保密的性能: 在眾多的51系列單片機中,要算AT

19、MEI公司的AT89C51更實用,因為它不僅和MCU_51系列單片機指令、管腳完全兼容,而且其片內的4k程序存儲器是Flash工藝的,這種工藝的存儲器用戶可以用電的方式瞬間擦除、改寫。所以說這種單片機對開發設備的要求很低,開發時間也大大縮短。寫入單片機的程序還可以加密,這又很好地保護了所有者的勞動成果。 AT89C51是一個低電壓,高性能CMOS 8位單片機,片內含4k bytes的可反復擦寫的Flash只讀程序存儲器和128 bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器和Flash存儲單

20、元,內置功能強大的微型計算機的AT89C51提供了高性價比的解決方案。AT89C51是一個低功耗高性能單片機,40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內含2個外中斷口,2個16位可編程定時計數器,2個全雙工串行通信口,AT89C51可以按照常規方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發成本。 AT89C51具有PDIP、PQFPTQFF及PLCC等三種封裝形式,以適應不同產品的需求。主要功能特性: 兼容MCS51Z指令系統 4k可反復擦寫(>1000次)Flash ROM 32個雙向I/

21、O口 靜態操作0-24MHz 1個串行中斷 128x8bit內部RAM 兩個外部中斷源 共6個中斷源 可直接驅動LED 3級加密位 低功耗空閑和掉電模式 軟件設置睡眠和喚醒功能1主如前所述,AT89C51單片機片內帶有一個4k字節的Flash可編程可擦除只讀存儲器,這就決定了在某些方面其自身的優越性。 主要特性:與MCS-51 兼容 4K字節可編程閃爍存儲器 壽命:1000寫/擦循環數據保留時間:10年全靜態工作:0Hz-24Hz三級程序存儲器鎖定128x8bit內部RAM 32可編程I/O線兩個16位定時器/計數器5個中斷源 可編程串行通道低功耗的閑置和掉電模式片內振蕩器和時鐘電路 2管腳說

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

23、2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當 用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它

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(外部數據存 儲器 寫選 通)P3.7 /RD(外部數據存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。 RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。AL

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

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

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

28、1。3.3 數據顯示電路顯示電路采用靜態顯示方式。頻率測量結果經過譯碼,通過89C51 的串行口送出。串行口工作于模式0 ,即同步移位寄存器方式。這時從89C51 的RXD(P3. 0) 輸出數據,送至串入并出移位寄存器74164 的數據輸入口A 和B ;從TXD( P3. 1) 輸出時鐘,送至74164 的時鐘輸入口CP。74164 將串行數據轉換成并行數據,進行鎖存。74164 輸出的8 位并行數據送至8 段L ED ,實現測量數據的顯示。使用這種方法主程序可不必掃描顯示器,從而單片機可以進行下一次測量。這種方法也便于對顯示位數進行擴展.4系統軟件設計4.1 數據處理過程在頻率計開始工作,

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

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

31、數值為65535 ,這樣在待測信號的頻率較低時,定時/計數器將發生溢出。當產生定時/計數器將溢出,程序進入定時器中斷服務程序,中斷服務程序對溢出次數進行計數。待測信號的周期由3 個字節組成:定時/計數器溢出次數、定時/計數器的高8 位和低8 位。信號的頻率f 與信號的周期T 之間的關系為: f=1T完成信號的周期測量后,需要做一次倒數運算才能獲得信號的頻率。為提高運算精度,這里采用浮點數算術運算。浮點數用3 個字節組成,第一字節最高位為數符,其余7 位為階碼;第二字節為尾數的高字節;第三字節為尾數的低字節。待測信號周期的3 個字節定點數首先通過截取高16 位、設置數符和計算階碼轉換為上述格式的

32、浮點數。然后浮點數算術運算對其進行處理,獲得用浮點數格式表達的信號頻率值。浮點數到BCD 碼轉換模塊把用浮點數格式表達的信號頻率值變換成本頻率計的顯示格式,送到顯示模塊顯示待測信號的頻率值。無論從哪一種方式進入顯示模塊,完成顯示后,頻率計都開始下一次信號的頻率測量。4.2系統軟件框圖系統軟件設計采用模塊化設計方法。整個系統由初始化模塊、顯示模塊和信號頻率測量模塊等各種功能模塊組成(見圖4)。上電后,進入系統初始化模塊,系統軟件開始運行。在執行過程中,根據運行流程分別調用各個功能模塊完成頻率測量、量程自動切換、周期測量和測量結果顯示。入口系統初始化頻率測量量程自動轉換NoYes測量數據顯示有效數

33、位判別中斷服務程序周期測量浮點數格式化F=1/T浮點數到BCD碼圖4 系統軟件流程圖4.3浮點數學運算程序8051 系列單片機屬于微控制器,由于其CPU字長和指令功能的限制,它適用于控制領域,在信號處理方面不很擅長。在本頻率計中需要完成周期到頻率的換算,為保證測量結果的準確,這里應用了浮點數數學運算13。從周期到頻率的換算過程包括: 3字節定點數到浮點數的轉換、浮點數數學運算和浮點數到BCD 碼的轉換。由于通過多次的轉換,整個換算過程精度還不是很高,通過實測,精度大約為千分之二左右。5 基本測量原理與理論誤差分析5.1 高精度恒定誤差頻率周期測量技術頻率測量誤差分析及其公式推導如下。 (1)量

34、化誤差 設測得頻率為Fx被測頻率真實值為Fxe標準頻率為Fs,在一次測量中預置門時間為Tpr,被測信號計數值為Nx,標推頻率信號計數值為Ns .Fx計數的起停時間都是由該信號的上升沿觸發的,在Tpr時間內對Fx的計數Nx無誤差;在此時間內Fs的計數從Ns最多相差一個脈沖,即et1 而 FxNx=FsNs FexNx=FsNs+et 由上式可得 Fx=FSNSNx Fxe=FsNs+etNx 根據相對誤差公式有 =FxeFxe=Fxe-FxFxe 由上式得 FxeFxe=tNs 因為 et1 所以 etNS1Ns 即 =xeFxe1Ns Ns=TprFs 由上式可以得出以下結論相對測量誤差與頻率

35、無關。增大Tpr或提高Fs,可以增大Ns,減少測量誤差,提高測量精度。 (2)標準頻率誤差 標準頻率誤差為Fs/Fs,因為晶體的穩定度很高,標準頻率誤差可以進行校準,相對于量化誤差,校準后的標準頻率誤差可以忽略。 (3)分變率誤差分析先由單片機給出閘門開啟信號 ,此時計數器并不計數 ,而是等到被測信號的上升沿到來時,才開始計數。然后,兩組計數器分別對被測信號和時標脈沖計數,當單片機給出閘門關閉信號后 ,計數器并不立即停止計數 ,而是等到被測信號下降沿到來的時刻才結束計數 ,完成一次測量過程。可以看出 ,實際閘門與設定的閘門并不嚴格相等 ,但最大差值不超過被測信號的一個周期14。 設被測信號的計

36、數為 NX ,對時標的計數為 N0 ,時標頻率為 f0 ,閘門時間為,則被測信號頻率為: fx=f0NXN0 計數器的開閉與被測信號是完全同步的 ,即在實際閘門中包含整數個被測信號的周期 ,因而不存在對被測信號計數的 ±1 個字誤差 ,由式 微分可得 dfx=-Nxf0dN0NO2 dN0=±1 =NxfX 相對誤差為: e=fXfX=NXNX-NON0+f0f0 式(5)中前兩項分別表示計數器 T0 和計數器 T1 的誤差 ,第三項為頻率準確度。由于計數是在相關同步門控時間內完成的,即由待測信號同步控制,因此同步門控與計數器 T1 的計數脈沖相關,且 T/ Tx 的比值

37、Nx為整數 ,故被測信號計數值不存在計數誤差。而計數器 T0 對時標的計數 ,由于門控的啟閉時刻的隨機性及 T/ T0之比值 N0 為非整數( T0 為時標周期) ,在門控的啟閉時刻分別有時間零頭T1 和 T2 無法計入,故存在 ±1 誤差。當忽略頻率準確度誤差時,多周期同步法測頻的最大誤差為: em=±1N=±1f0 由式(6)可以看出 ,測量分辨率與被測信號頻率的大小無關 ,僅與閘門時間及時標頻率有關 ,即實現了被測頻帶內的等精度測量,閘門時間越長,時標頻率越高 ,分辨率越高。 5.2 預置門時間信號與閘門時間信號 預置門的概念與傳統的閘門的概念是不同的。預置

38、門是指同時啟動或停止標準頻率信號計數器和被測信號計數器的門控信號。碩置門的概念用于高精度恒定誤差測頻測周期方法中,并稱預置門的時間寬度為預置門時間15。 高精度恒定誤差測頻方法測量精度與預置門時間和標準頻率有關,與被測信號的頻率無關。在預置門時間和閘門時間相同而被測信號頻率不同的情況下,高精度恒誤差額率測量法的測量精度不變,而直接測頻法精度隨著被測信號頻率的增加而接近線性地增大。5.3 脈沖寬度測量理論誤差分析 根據方案中的脈沖寬度測量方法,分析脈寬測量誤差。設被測信號脈寬為Twxe,標準頻率信號頻率為Fs,則脈沖寬度的測量值為 TWX=NXFs 在一次測量中,對標準頻率信號的計數值Nx可能產

39、生±1個標準頻率信號周期的計數誤差,則脈寬測量相對誤差為 TWXTWX=1FsNXFs=1Nx 其中Nx=TwxFs.可以看出,在Fs一定時,脈寬越小,誤差越大。 當TWX=100s,Fs=60MHz時,NX6000,則有 TwxTwx=16000=0.175.4 周期脈沖信號占空比測量誤差分析 使用第一部分中所述的占空比方法,根據誤差合成原理,周期測量相對誤差最大恒等于脈沖寬度測量相對誤差16。 在標準頻率為60MHz,被測頻率1kHz(即周期為0.001s)時。設其占空比為10,如果要滿足題日部分要求,由脈沖寬測量相對誤羌公式計算出的相對誤差應小于 10.001×10%

40、×60×106=16000=0.17實際精度完全可以超過這個要求。6 實測結果和誤差分析為了衡量這次設計的頻率計的工作情況和測量精度,我們對系統進行了試驗。以南京電訊儀器廠制造的E312B 型通用計數器為基準,用這次設計的頻率計對信號源進行了測量,測量數據如表1 所示。表1 頻率測量對比表E312B 率測量(Hz) 5.00M500K50.0K5.00K50050.05.000.500制作頻計測量(Hz)5.01M500K50.0K5.01K50150.05.020.502如圖3 信號予處理電路所示,待測信號在進入單片機之前經過了10 ×2 次分頻。頻率計以進入單

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

42、 KHz 時的誤差就來源于計數誤差。增加顯示的有效數字位數可降低該項誤差的影響。當待測信號頻率小于2 KHz 時,直接測量的是信號的周期。周期測量的誤差表達式為:dTT=dNN+d00這里 dNN為量化誤差,d00 為晶振的頻率穩定度。進行周期測量時進入單片機的信號頻率小于100Hz ,使用12MHz 時鐘這時的最小計數值為10000 。當僅顯示3 位有效數字時,該項誤差現在可以忽略。待測信號周期測量值通過浮點數數學運算變換成頻率值,這時的誤差來源于浮點數數學運算和數制之間轉換所帶來的誤差。7 結論 大學三年中,我系統的學習了單片機的知識,也看到了單片機控制程序的廣闊前景,選擇這個課題,正是希

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

44、但是令人欣慰的是學到了書本上學不到的東西,并且掌握了設計的一般方法。 由于時間很短,工作也很忙,我的能力也有限,很可能我的設計存在這樣或那樣的不足,希望各位多多批評斧正。附錄A 匯編源程序 WX EQU 78H ;1 ms中斷一次 ORG 0000H AJMP DP ORG 001BH AJMP DP0 ORG 0100HDP: MOV SP,# 80H MOV WX,# 11111110B MOV R7,# 7H mov R1,# 61H MOV TMOD,# 10H MOV TL1,# 0CH MOV TH1,# 0FEH SETB EA SETB ET1 SETB TR1 SJMP $D

45、P0: MOV TL1,# 0CH MOV TH1,# 0FEH CLR P2.7 MOV C,P2.7 JC DP01 setb P2.7 CLR P0.7 SETB P0.7 SJMP QQDP01: CLR P2.7 ACALL BTD CLR P0.7 SETB P0.7qq: 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 Mov R1,# 61HLOOP1:SETB TR1 RETI-計數程序-BTD: MOV R1,# 61H

46、 MOV R3,# 0ffh MOV R2,# offh CLR A MOV R4,A MOV R5,A MOV R6,A MOV R7,# 10HBTD0: 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 MOV R4,A DJNZ R7,BTD0 MOV A,R4 SWAP A ANL A,# 0FH 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

溫馨提示

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

評論

0/150

提交評論