基于51單片機的頻率計設計 - 圖文 - 下載本文

物理與電子工程學院 電子測量技術論文

十進制數字顯示被測信號頻率的數字測量儀器。它的基本功能是測量正弦信號,方波信號及其他各種單位時間內變化的物理量。在進行模擬、數字電路的設計、安裝、調試過程中,由于其使用十進制數顯示,測量迅速,精確度高,顯示直觀,經常要用到頻率計。

本數字頻率計將采用定時、計數的方法測量頻率,采用一個LCD1602液晶顯示屏顯示頻率。測量范圍從1Hz—480000Hz的 方波、 用單片機實現自動測量功能。

基本設計原理是直接用十進制數字顯示被測信號頻率的一種測量裝置。它以測量周期的方法對正弦波、方波、三角波的頻率進行自動的測量。 (2)頻率測量儀的設計思路與頻率的計算

頻率測量儀的設計思路主要是:對信號分頻,測量一個或幾個被測量信號周期中已知標準頻率信號的周期個數,進而測量出該信號頻率的大小,其原理如右圖1所示。

若被測量信號的周期為To,分頻數m1,分頻后信號的周期為T,

圖1-1 頻率測量原理圖 則:T=m1Tx 。由圖可知: T=NTo

(注:To為標準信號的周期,所以T為分頻后信號的周期,則可以算出被測量信號的頻率f。) 由于單片機系統的標準頻率比較穩定,而是系統標準信號頻率的誤差,通常情況下很小;而系統的量化誤差小于1,所以由式T=NTo可知,頻率測量的誤差主要取決于N值的大小,N值越大,誤差越小,測量的精度越高。 (3) 基本設計原理

基本設計原理是直接用十進制數字顯示被測信號頻率的一種測量裝置。它以測量周期的方法對正弦波、方波、三角波的頻率進行自動的測量。

所謂“頻率”,就是周期性信號在單位時間(1s)內變化的次數。若在一定時間間隔T內測得這個周期性信號的重復變化次數N,則其頻率可表示為f=N/T。其中脈沖形成電路的作用是將被測信號變成脈沖信號,其重復頻率等于被測頻率fx。時間基準信號發生器提供標準的時間脈沖信號,若其周期為1s,則門控電路的輸出信號持續時間亦準確地等于1s。閘門電路由標準秒信號進行控制,當秒信號來到時,閘門開通,被測脈沖信號通過閘門送到計數譯碼顯示電路。秒信號結束時閘門關閉,計數器停止計數。由于計數器計得的脈沖數N是在1秒時間內的累計數,所以被測頻率fx=NHz。

6

物理與電子工程學院 電子測量技術論文

1.4 Proteus軟件簡介

PROTEUS軟件由Labcenter公司開發,是目前世界上最先進、最完整的嵌入式系統設計與仿真平臺,可以實現數字電路、模擬電路及微控制器系統與外設的混合電路系統的電路仿真、軟件仿真、系統協同仿真和PCB設計等功能,是目前唯一能夠對各種處理器進行實時仿真、調試與測試的EDA工具。微控制器系統相關的仿真需建立編譯和調試環境,可選擇Keil C51uVision2 軟件。該軟件支持眾多不同公司的芯片,集編輯、編譯和程序仿真等于一體,同時還支持PLM、匯編和C語言的程序設計。它的界面友好易學,在調試程序、軟件仿真方面有很強大的功能。 其革命性的功能是:將電路仿真和微處理器仿真進行協同,直接在基于原理圖的虛擬原型上進行處理器編程調試,并進行功能驗證,通過動態器件如電機、LED、LCD、開關等,實時看到運行后的輸入、輸出的效果,配合系統配置的虛擬儀器如示波器、邏輯分析儀等, Proteus為我們建立了完備的電子設計開發環境。

1.5 C語言簡介

C語言是一種計算機程序設計語言。它既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。因此,它的應用范圍廣泛,不僅僅是在軟件開發上,而且各類科研都需要用到C語言,具體應用比如單片機以及嵌入式系統開發。是一種面向過程的計算機程序設計語言,它是目前眾多計算機語言中舉世公認的優秀的結構程序設計語言之一。它由美國貝爾研究所的D.M.Ritchie于1972年推出。1978后,C語言已先后被移植到大、中、小及微型機上。C語言發展如此迅速,而且成為最受歡迎的語言之一,主要因為它具有強大的功能。許多著名的系統軟件,如DBASE Ⅳ都是由C 語言編寫的。用C 語言加上一些匯編語言子程序,就更能顯示C 語言的優勢了,像PC- DOS 、WORDSTAR等就是用這種方法編寫的。

C語言是一種成功的系統描述語言,用C語言開發的UNIX操作系統就是一個成功的范例;同時C語言又是一種通用的程序設計語言,在國際上廣泛流行。世界上很多著名的計算公司都成功的開發了不同版本的C語言,很多優秀的應用程序也都使用C語言開發的,它是一種很有發展前途的高級程序設計語言。

(1) C是中級語言。

它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對

7

物理與電子工程學院 電子測量技術論文

位、字節和地址進行操作, 而這三者是計算機最基本的工作單元。

(2)C是結構式語言。

結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便于使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,并具有多種循環、條件語句控制程序流向,從而使程序完全結構化 。 (3)C 語言功能齊全。

具有各種各樣的數據類型,并引入了指針概念,可使程序效率更高。而且計算功能、邏輯判斷功能也比較強大,可以實現決策目的的游戲。 (4)C語言適用范圍大。

適合于多種操作系統,如Windows、DOS、UNIX等等;也適用于多種機型。 C語言對編寫需要硬件進行操作的場合,明顯優于其它解釋型高級語言,有一些大型應用軟件也是用C語言編寫的。C語言具有較好的可移植性,并具備很強的數據處理能力,因此適于編寫系統軟件,三維,二維圖形和動畫。它是數值計算的高級語言。

1.6 KeilC51軟件開發系統簡介

Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。用過匯編語言后再使用C來開發,體會更加深刻。

單片機開發中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變為CPU可以執行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變為機器碼,用于MCS-51單片機的匯編軟件有早期的A51,隨著單片機開發技術的不斷發展,從普遍使用匯編語言到逐漸使用高級語言開發,單片機的開發軟件也在不斷發展,Keil軟件是目前最流行開發MCS-51系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(uVision)將這些部分組合在一起。運行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統。掌握這一軟件的使用對于使用51系列單片機的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選(目前在國內你只能買到該軟

8

物理與電子工程學院 電子測量技術論文

件、而你買的仿真機也很可能只支持該軟件),即使不使用C語言而僅用匯編語言編程,其方便易用的集成環境、強大的軟件仿真調試工具也會令你事半功倍。

Keil C51開發系統基本知識Keil C51開發系統基本知識 (1) 系統概述

Keil C51軟件提供豐富的庫函數和功能強大的集成開發調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。下面詳細介紹Keil C51開發系統各部分功能和使用。

(2) Keil C51單片機軟件開發系統的整體結構

C51工具包的整體結構,uVision與Ishell分別是C51 for Windows和for Dos的集成開發環境(IDE),可以完成編輯、編譯、連接、調試、仿真等整個開發流程。開發人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創建生成庫文件,也可以與庫文件一起經L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉換成標準的Hex文件,以供調試器dScope51或tScope51使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可以直接寫入程序存貯器如EPROM中。

使用獨立的Keil仿真器時,注意事項:

* 仿真器標配11.0592MHz的晶振,但用戶可以在仿真器上的晶振插孔中換插其他頻率的晶振。 * 仿真器上的復位按鈕只復位仿真芯片,不復位目標系統。

* 仿真芯片的31腳(/EA)已接至高電平,所以仿真時只能使用片內ROM,不能使用片外ROM;但仿真器外引插針中的31腳并不與仿真芯片的31腳相連,故該仿真器仍可插入到擴展有外部ROM(其CPU的/EA引腳接至低電平)的目標系統中使用。

突出優點:

Keil C51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。

9

物理與電子工程學院 電子測量技術論文

1.7 率計數器系統硬件組成

頻率計數器系統硬件主要由AT89C51單片機、定時電路NE555、LCD液晶顯示屏等元器件組成。

AT89C51是一種帶4K字節閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器,俗稱單片機。

NE555是 美國Signetics公司1972年研制的用于取代機械式定時器的中規模集成電路,因輸入端設計有三個5kΩ的電阻而得名。

LCD液晶顯示屏工業字符型液晶,能夠同時顯示16x02即32個字符。(16列2行)。

單片機晶振電路 單片機復位電路 AT89C51單片機 LCD液晶顯示屏顯示 方波信號產生電路

圖1-2 系統框圖

1.8 AT89C51單片機簡介

AT89C51是一種帶4K字節閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效

10





3d走势图