基于at89s52單片機的數(shù)字式頻率檢測裝置設(shè)計課程設(shè)計_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  基于單片機的數(shù)字頻率計的設(shè)計</p><p><b>  【摘要】</b></p><p>  本設(shè)計以AT89S52單片機為核心充分利用硬件資源設(shè)計的一種頻率計,該頻率計首先將被測信號放大整形處理,變成滿足單片機I/O口接受的TTL/ CMOS 兼容信號從單片機的T1輸入口輸入直接累加脈沖數(shù),將單片機內(nèi)部定時器定時為1S,這時累加的脈沖數(shù)即為被

2、測信號的頻率。最后經(jīng)單片機處理送至lcd液晶顯示屏顯示。</p><p>  【關(guān)鍵字】 單片機(AT89S52)、放大整形、 數(shù)據(jù)處理、1602aLCD、</p><p>  【Abstract】</p><p>  This design take at89S52 monolithic integrated circuit as the core full u

3、se hardware source design's one kind of frequency meter, this frequency meter will be measured first that signal enlargement reshaping processing, turns satisfies TTL/which the monolithic integrated circuit I/O mouth

4、 accepts the CMOS compatible signal from monolithic integrated circuit's T1 input port input direct summation pulse number, the monolithic integrated circuit interior timer fixed time is 1S, by now accumulated t</

5、p><p>  【Keyword】AT89S52、 Larger plastic、Data processing、1602aLCD</p><p><b>  目錄 </b></p><p>  引言……………………………………………………………………………………………4</p><p>  1.系統(tǒng)概述…………………………

6、…………………………………………………………5</p><p>  1.1數(shù)字頻率計概述…………………………………………………………………………5</p><p>  1.2頻率測量儀的設(shè)計思路與頻率的計算 ……………………………………………………5</p><p>  1.3基本設(shè)計原理 …………………………………………………………………………5</p&g

7、t;<p>  2.數(shù)字頻率計(低頻)的硬件結(jié)構(gòu)設(shè)計……………………………………………………5</p><p>  2.1 系統(tǒng)硬件的構(gòu)成 ………………………………………………………………………5</p><p>  2.2 AT89S52單片機及其引腳說明 …………………………………………………………6</p><p>  2.3 信號調(diào)理及放大

8、整形模塊 ………………………………………………………………7</p><p>  2.3.1工作原理 ………………………………………………………………………8</p><p>  2.3.2 信號放大仿真圖 …………………………………………………………………8</p><p>  2.3.3 信號轉(zhuǎn)換成方波 …………………………………………………………………8&l

9、t;/p><p>  2.3.4 LF353雙運算放大器簡介 ………………………………………………………8</p><p>  2.4 顯示模塊 ………………………………………………………………………………9</p><p>  2.4.1 1602ALCD與單片機的接法 ………………………………………………………9</p><p>  2.

10、4.2 1602ALCD基本技術(shù) ……………………………………………………………10</p><p>  3.軟件設(shè)計 …………………………………………………………………………………12</p><p>  3.1 系統(tǒng)工作流程圖 ………………………………………………………………………12</p><p>  3.1.1 T0的1s定時……………………………………

11、………………………………13</p><p>  3.1.2 T1的計數(shù)原理 …………………………………………………………………13</p><p>  3.2 軟件工作原理 …………………………………………………………………………14</p><p>  3.3 軟件處理方法 …………………………………………………………………………14</p>&

12、lt;p>  4.實驗結(jié)果與分析 …………………………………………………………………………15</p><p>  4.1實驗數(shù)據(jù) ………………………………………………………………………………15</p><p>  4.2實驗結(jié)果分析 …………………………………………………………………………15</p><p>  結(jié)束語 ……………………………………………

13、…………………………………………15</p><p>  致謝詞 ………………………………………………………………………………………15</p><p>  參考文獻 ……………………………………………………………………………………15</p><p>  程序附錄 ……………………………………………………………………………………17</p><

14、;p><b>  引言</b></p><p>  頻率測量在科技研究和實際應(yīng)用中的作用日益重要。傳統(tǒng)的頻率計通采用組合電路和時序電路等大量的硬件電路構(gòu)成,產(chǎn)品不但體積較大,運行速度慢,而且測量低頻信號時不宜直接使用。頻率信號抗干擾性強、易于傳輸 ,可以獲得較高的測量精度。同時 ,頻率測量方法的優(yōu)化也越來越受到重視.并采用單片機和相關(guān)硬軟件實現(xiàn)。</p><p>

15、;  AT89S52系列單片機具有體積小,功能強,性能價格比較高等特點,因此被廣泛應(yīng)用于工業(yè)控制和智能化儀器,儀表等領(lǐng)域。此頻率計以AT89S52單片機為核心,具有性能優(yōu)良,精度高,可靠性好等特點。</p><p>  以AT89S52單片機為控制器件的頻率測量方法,并用C語言進行設(shè)計,采用單片機智能控制,結(jié)合外圍電子電路。最終實現(xiàn)數(shù)字頻率計的設(shè)計方案,根據(jù)頻率計的特點,可廣泛應(yīng)用于各種測試場所。</p&g

16、t;<p>  在基礎(chǔ)理論和專業(yè)技術(shù)基礎(chǔ)上,通過對數(shù)字頻率計的設(shè)計,用十進制數(shù)字來顯示被測信號頻率的測量裝置。以精確迅速的特點測量信號頻率,在本設(shè)計在實踐理論上鍛煉提高了自己的綜合運用知識水平,為以后的開發(fā)及科研工作打下基礎(chǔ)。</p><p><b>  1系統(tǒng)概述 </b></p><p>  1.1數(shù)字頻率計概述</p><p&g

17、t;  數(shù)字頻率計是計算機、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測量儀器。它是一種用十進制數(shù)字顯示被測信號頻率的數(shù)字測量儀器。它的基本功能是測量正弦信號,方波信號及其他各種單位時間內(nèi)變化的物理量。在進行模擬、數(shù)字電路的設(shè)計、安裝、調(diào)試過程中,由于其使用十進制數(shù)顯示,測量迅速,精確度高,顯示直觀,經(jīng)常要用到頻率計。 </p><p>  本數(shù)字頻率計將采用定時、計數(shù)的方法測量頻率,采用一個1602A LCD顯

18、示器動態(tài)顯示6位數(shù)。測量范圍從0Hz—65535Hz(此測量范圍為計數(shù)器的最大計數(shù),可根據(jù)實際需要進行擴展,在1.3小節(jié)方案選擇有介紹如何擴展)的正弦波、方波、三角波。用單片機實現(xiàn)自動測量功能。</p><p>  1.2 基本設(shè)計原理</p><p>  基本設(shè)計原理是直接用十進制數(shù)字顯示被測信號頻率的一種測量裝置。它以測量頻率的方法直接對正弦波、方波、三角波的頻率進行自動的測量。<

19、;/p><p>  所謂“頻率”,就是周期性信號在單位時間(1s)內(nèi)變化的次數(shù)。若在一定時間間隔T內(nèi)測得這個周期性信號的重復(fù)變化次數(shù)N,則其頻率可表示為f=N/T。其中脈沖形成電路的作用是將被測信號變成脈沖信號,其重復(fù)頻率等于被測頻率f。利用單片機的內(nèi)部定時器作為定時時間周期,若其周期為1s,則輸入的脈沖信號持續(xù)計數(shù)時間亦準確地等于1s,所計數(shù)的脈沖個數(shù)即為被測信號的頻率。[1]</p><p&g

20、t;<b>  1.3 方案選擇</b></p><p>  用單片機設(shè)計頻率計通常采用兩種辦法,第一種方法是使用單片機自帶的計數(shù)器對輸入脈沖進行計數(shù);第二種方法是單片機外部使用計數(shù)器對脈沖信號進行計數(shù),計數(shù)值再由單片機讀取。第一種方法的好處是設(shè)計出的頻率計系統(tǒng)結(jié)構(gòu)和程序編寫簡單,成本低廉,不需要外部計數(shù)器,直接利用所給的單片機最小系統(tǒng)就可以實現(xiàn)。這種方法的缺陷是受限于單片機計數(shù)的晶振頻率,

21、輸入的時鐘頻率通常是單片機晶振頻率的幾分之一甚至是幾十分之一,在本次設(shè)計使用的98C51單片機,由于檢測一個由“1”到“0”的跳變需要兩個機器周期,前一個機器周期測出“1”,后一個周期測出“0”。故輸入時鐘信號的最高頻率不得超過單片機晶振頻率的二十四分之一。第二種方法的好處是輸入的時鐘信號頻率可以不受單片機晶振頻率的限制,可以對相對較高頻率進行測量,但缺點是成本比第一種方法高,設(shè)計出來的系統(tǒng)結(jié)構(gòu)和程序也比較復(fù)雜。[2]</p>

22、;<p>  由于成本有限,本次設(shè)計中采用第一種方法,因此輸入的時鐘信號最高頻率不得高于11.0592MHz/24=460.8KHz。對外部脈沖的占空比無特殊要求。根據(jù)頻率檢測的原理,很容易想到利用51單片機的T0、T1兩個定時/計數(shù)器,一個用來定時,另一個用來計數(shù),兩者均應(yīng)該工作在中斷方式,一個中斷用于1s時間的中斷處理,一個中斷用于對頻率脈沖的計數(shù)溢出處理,(對另一個計數(shù)單元加一),此方法可以彌補計數(shù)器最多只能計數(shù)65

23、536的不足。將計數(shù)中斷彌補計數(shù)器最高計數(shù)65536的不足作為本設(shè)計的擴展,故本設(shè)計最終選擇采用第一種方法并且只使用計數(shù)器的最多計數(shù)65536。</p><p>  2數(shù)字頻率計(低頻)的硬件結(jié)構(gòu)設(shè)計</p><p>  2.1 系統(tǒng)硬件的構(gòu)成</p><p>  本頻率計的數(shù)據(jù)采集系統(tǒng)主要元器件是單片機AT89S52,由它完成對待測信號頻率的計數(shù)、計數(shù)處理、結(jié)果顯

24、示等功能,外部還要有信號處理、LCD顯示器等器件。具體可分為以下幾個模塊:放大整形模塊、單片機系統(tǒng)、LCD顯示模塊。各模塊關(guān)系圖如圖2所示:[3]</p><p>  圖2 系統(tǒng)工作原理圖</p><p>  2.2 AT89S52單片機及其引腳說明</p><p>  AT89S52是一種高性能低功耗的采用CMOS工藝制造的8位微控制器,它提供下列標準特征:4K字

25、節(jié)的程序存儲器,128字節(jié)的RAM,32條I/O線,2個16位定時器/計數(shù)器, 一個5中斷源兩個優(yōu)先級的中斷結(jié)構(gòu),一個雙工的串行口, 片上震蕩器和時鐘電路</p><p><b>  引腳說明:</b></p><p><b>  ·VCC:電源電壓</b></p><p><b>  ·GN

26、D:地</b></p><p>  ·P0口:P0口是一組8位漏極開路型雙向I/O口,作為輸出口用時,每個引腳能驅(qū)動8個TTL邏輯門電路。當對0端口寫入1時,可以作為高阻抗輸入端使用。</p><p>  當P0口訪問外部程序存儲器或數(shù)據(jù)存儲器時,它還可設(shè)定成地址數(shù)據(jù)總線復(fù)用的形式。在這種模式下,P0口具有內(nèi)部上拉電阻。</p><p>  在

27、EPROM編程時,P0口接收指令字節(jié),同時輸出指令字節(jié)在程序校驗時。程序校驗時需要外接上拉電阻。</p><p>  ·P1口:P1口是一帶有內(nèi)部上拉電阻的8位雙向I/O口。P1口的輸出緩沖能接受或輸出4個TTL邏輯門電路。當對P1口寫1時,它們被內(nèi)部的上拉電阻拉升為高電平,此時可以作為輸入端使用。當作為輸入端使用時,P1口因為內(nèi)部存在上拉電阻,所以當外部被拉低時會輸出一個低電流(IIL)。</p

28、><p>  ·P2口:P2是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P2口的輸出緩沖能驅(qū)動4個TTL邏輯門電路。當向P2口寫1時,通過內(nèi)部上拉電阻把端口拉到高電平,此時可以用作輸入口。作為輸入口,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出電流(IIL)。</p><p>  P2口在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如MOVX @ DPTR)時,P2口送

29、出高8位地址數(shù)據(jù)。在這種情況下,P2口使用強大的內(nèi)部上拉電阻功能當輸出1時。當利用8位地址線訪問外部數(shù)據(jù)存儲器時(例MOVX @R1),P2口輸出特殊功能寄存器的內(nèi)容。</p><p>  當EPROM編程或校驗時,P2口同時接收高8位地址和一些控制信號。</p><p>  ·P3口:P3是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P3口的輸出緩沖能驅(qū)動4個TTL邏輯門電路。當

30、向P3口寫1時,通過內(nèi)部上拉電阻把端口拉到高電平,此時可以用作輸入口。作為輸入口,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出電流(IIL)。</p><p>  P3口同時具有多種特殊功能,具體如下表1所示:</p><p>  表1 P3口的第二功能</p><p>  ·RST:復(fù)位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期的高電平將使

31、單片機復(fù)位。</p><p>  ·ALE/ :當訪問外部存儲器時,地址鎖存允許是一輸出脈沖,用以鎖存地址的低8位字節(jié)。當在Flash編程時還可以作為編程脈沖輸出。</p><p>  一般情況下,ALE是以晶振頻率的1/6輸出,可以用作外部時鐘或定時目的。但也要注意,每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。</p><p>  · :程序

32、存儲允許時外部程序存儲器的讀選通信號。當AT89C52執(zhí)行外部程序存儲器的指令時,每個機器周期 兩次有效,除了當訪問外部數(shù)據(jù)存儲器時, 將跳過兩個信號。</p><p>  · /VPP:外部訪問允許。為了使單片機能夠有效的傳送外部數(shù)據(jù)存儲器從0000H到FFFH單元的指令, 必須同GND相連接。需要主要的是,如果加密位1被編程,復(fù)位時EA端會自動內(nèi)部鎖存。</p><p>  

33、當執(zhí)行內(nèi)部編程指令時, 應(yīng)該接到VCC端。</p><p>  ·XTAL1:振蕩器反相放大器以及內(nèi)部時鐘電路的輸入端。</p><p>  ·XTAL2:振蕩器反相放大器的輸出端。</p><p>  2.3 信號調(diào)理及放大整形模塊</p><p>  2.3.1 工作原理</p><p>  放

34、大整形系統(tǒng)包括衰減器、跟隨器、放大器、施密特觸發(fā)器。它將正弦輸入信號Vx整形成同頻率方波Vo,幅值過大的被測信號經(jīng)過分壓器分壓送入后級放大器,以避免波形失真。由運算放大器構(gòu)成的射級跟隨器起阻抗變換作用,使輸入阻抗提高。同相輸入的運算放大器的放大倍數(shù)為(R3+R4)/R3,改變R3的大小可以改變放大倍數(shù)。系統(tǒng)的整形電路由施密特觸發(fā)器組成,整形后的方波送至單片機以便計數(shù)。</p><p>  由于輸入的信號幅度是不確

35、定、可能很大也有可能很小,這樣對于輸入信號的測量就不方便了,過大可能會把器件燒毀,過小可能器件檢測不到,所以在設(shè)計中采用了這個信號調(diào)理電路對輸入的波形進行阻抗變換、放大限幅和整形,信號調(diào)理部分電路具體實現(xiàn)電路原理圖和參數(shù)如下圖3所示:[4] </p><p><b>  圖3 信號處理</b></p><p>  圖中D1—D4為肖特基二極管(DIODE),本設(shè)計中

36、選用IN4148。D5為穩(wěn)壓二極管,本設(shè)計選用的穩(wěn)壓二極管IN4625,其中R1、R2、R5、R6為10KΩ,R4為150KΩ,R3為500KΩ的電位器。[5]</p><p>  2.3.2 信號放大仿真</p><p>  下圖為當R3=50KΩ時輸入信號頻率為100Hz,幅度為1V在輸入端和R1左端測得的信號仿真圖,由運算放大器的放大倍數(shù)為(R3+R4)/R3可得到放大后的頻率不變,

37、幅度放大了四倍。</p><p>  圖4 信號放大仿真</p><p>  2.3.3 信號轉(zhuǎn)換成方波后的仿真圖</p><p>  下圖為當R3=50KΩ時輸入信號頻率為100Hz,幅度為1V在輸出端測得的仿真波形圖,頻率不變,幅度為5V。</p><p><b>  圖5 轉(zhuǎn)換方波</b></p>

38、<p>  2.3.4 LF353雙運算放大器簡介 </p><p>  集成電路運算放大器是一種高電壓增益、高輸入電阻和低輸出電阻的多級直接耦合放大電路,它的類型很多,電路也不一樣,但結(jié)構(gòu)具有共同之處,圖6表示集成運放的內(nèi)部電路組成原理框圖。圖中輸入級一般是由BJT、JFET或MOSFET組成的差分式放大電路,利用它的對稱性可以提高整個電路的共模抑制比和其他方面的性能,它的兩個輸入端構(gòu)成整個電路的反相

39、輸入端和同相輸入端[7]。電壓放大級一般由電壓跟隨器或互補電壓跟隨器所組成,以降低輸出電阻,提高帶負載能力。偏置電路是為各級提供合適的工作電流。此外還有一些輔助環(huán)節(jié),如電平移動電路、過載保護電路以及高頻補償環(huán)節(jié)等。</p><p>  + 差分 電壓放大級 輸出級 </p><p>  Vid -

40、 輸入級 </p><p><b>  偏置電流</b></p><p>  圖 6 集成電路運算放大器內(nèi)部組成原理框圖</p><p>  運算放大器分為通用型和專用型集成電路運算放大器,741型集成運算放大器即為通用型,其電路主要包括偏置電路(24個BJT、10個電阻和一個電容組成)、

41、輸入級、中間級和輸出級四個部分,整個電路要求當輸入信號為零時輸出也為零。放大器主要參數(shù)的設(shè)置不管是哪種類型都極其重要,直接影響到電路的實際功能。</p><p>  集成電路運算放大器在近幾年得到迅速發(fā)展,除了具有高電壓增益的通用型外,還具有性能更優(yōu)良和具有特殊功能的集成運放,可分為高輸入阻抗、低漂移、高精度、帶寬、低功耗、高壓、大功率和程控型等專用型集成運算放大。</p><p>  題

42、中用到的LF353放大器屬于用型集成運算放大,該運算放大器內(nèi)部有偏移電壓和FET輸入裝置(雙向場效應(yīng)管),有較大的反向擊穿電壓,因此,當大差動輸入電壓時,可以很容易容納增加的輸入電流。</p><p>  圖7 典型接法            圖8 內(nèi)部結(jié)構(gòu)   </p><p><b>  顯示模塊 </b></p><p>  2.4.1

43、 1602ALCD 與單片機的接法</p><p>  單片機與1602ALCD的連接如圖9所示</p><p>  圖9 單片機與LCD接法</p><p>  1602ALCD采用標準的16腳接口,本設(shè)計具體接法如下: </p><p>  第1腳:VSS為地電源(圖中未畫出)。 </p><p> 

44、 第2腳:VDD接5V正電源(圖中未畫出)。</p><p>  第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,本設(shè)計使用時通過一個10K的電位器調(diào)整其對比度(圖中未畫出)。</p><p>  第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。</p><p>  第5腳:RW

45、為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和RW共同為低電平時可以寫入指令或者顯示地址,當RS為低電平RW為高電平時可以讀忙信號,當RS為高電平RW為低電平時可以寫入數(shù)據(jù)。</p><p>  第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。 </p><p>  第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。 </p>&l

46、t;p>  第15~16腳:空腳(圖中未畫出)。</p><p>  由于AT89S52單片機的P0口內(nèi)部沒有上拉電阻故在單片機與1602ALCD之間需加上上拉電阻(圖中未標出),本設(shè)計中選用4.7KΩ的電阻。</p><p>  2.4.2 1602ALCD基本技術(shù): </p><p>  1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個

47、不同的點陣字符圖形,如表1所示,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”</p><p>  1602液晶模塊內(nèi)部的控制器共有11條控制指令,如下表所示, </p><p>  它的讀寫操作、屏幕和光標

48、的操作都是通過指令編程來實現(xiàn)的。(說明:1為高電平、0為低電平) </p><p>  指令1:清顯示,指令碼01H,光標復(fù)位到地址00H位置。</p><p>  指令2:光標復(fù)位,光標返回到地址00H。</p><p>  指令3:光標和顯示模式設(shè)置 I/D:光標移動方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。

49、 </p><p>  指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標的開與關(guān),高電平表示有光標,低電平表示無光標 B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。 </p><p>  指令5:光標或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標。 </p><p>  指令6:功能設(shè)置命令 DL:高

50、電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。 </p><p>  指令7:字符發(fā)生器RAM地址設(shè)置。 </p><p>  指令8:DDRAM地址設(shè)置。 </p><p>  指令9:讀忙信號和光標地址 BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數(shù)

51、據(jù),如果為低電平表示不忙。 </p><p><b>  指令10:寫數(shù)據(jù) </b></p><p><b>  指令11:讀數(shù)據(jù) </b></p><p>  液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪

52、里顯示字符,下表是DM-162的內(nèi)部顯示地址. </p><p>  比如第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光標定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位D7恒定為高電平1所以實際寫入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H) </p><p><b>  3 軟件設(shè)

53、計</b></p><p>  3.1 系統(tǒng)工作流程圖</p><p>  系統(tǒng)工作流程如圖10</p><p>  圖10系統(tǒng)工作流程圖</p><p>  3.1.1 T0的1s定時</p><p>  本次設(shè)計選用定時器T0完成定時功能,選用方式1時最多也只能定時</p><p&g

54、t;  顯然不能滿足定時1 S的要求,可以用下面這種方法解決:采用T0定時50 ,連續(xù)循環(huán)定時20次即可完成1 定時,用一個計數(shù)單元存放循環(huán)的次數(shù),每一次循環(huán)單元自加1,當加到20次時則1S 定時到時。其程序流程圖如圖11所示。</p><p>  3.1.2 T1的計數(shù)原理</p><p>  設(shè)計中T1采用計數(shù)功能,需要注意的一個問題是,輸入的待測時鐘信號的頻率最高可以達到460800

55、Hz,但本設(shè)計的最高頻率為計數(shù)器的最多計數(shù)65536次,顯然當所輸入的頻率大于65536Hz的時候?qū)o法顯示,所以每當計數(shù)器T1溢出回零時產(chǎn)生中斷,中斷程序執(zhí)行顯示提示錯誤信息顯示為00000Hz。其程序流程圖如圖12所示。</p><p>  圖11 圖12</p><p>  3.2 軟件工作原理</p&

56、gt;<p>  將整形后的波形送至單片機的T1計數(shù)器輸入口,打開定時器0,初始化定時器0,將單片機的內(nèi)部定時器T0定時為1S,此時T1輸入口在1s內(nèi)所計數(shù)到的脈沖個數(shù)即為該信號的頻率。將該計數(shù)脈沖個數(shù)經(jīng)單片機處理送至LCD顯示。</p><p>  3.3 軟件處理方法 </p><p>  本頻率計的設(shè)計以 AT89S52 單片機為核心 ,利用它內(nèi)部的定時/ 計數(shù)器完成待

57、測信號頻率的測量 。單片機 AT89S52 內(nèi)部具有 2 個 16 位定時/計數(shù)器 ,定時/ 計數(shù)器的工作可以由編程來實現(xiàn)定時 、計數(shù)和產(chǎn)生計數(shù)溢出中斷要求的功能 。在構(gòu)成為定時器時 ,每個機器周期加 1 (使用 12M Hz 時鐘時 ,每 1us 加 1) ,這樣以機器周期為基準可以用來準確定時1S。在構(gòu)成為計數(shù)器時 ,在相應(yīng)的外部引腳發(fā)生從 1 到 0 的跳變時計數(shù)器加 1 ,這樣在計數(shù)閘門的控制下可以用來測量待測信號的頻率 。外部

58、輸入每個機器周期被采樣一次 ,這樣檢測一次從1 到 0 的跳變至少需要 2 個機器周期 (24 個振蕩周期) ,所以最大計數(shù)速率為時鐘頻率的 1/ 24 ( 使用12M Hz 時鐘時 ,最大計數(shù)速率為 500 KHz) 。定時/計數(shù)器的工作由相應(yīng)的運行控制位 TR 控制 ,當 TR置 1 ,定時/ 計數(shù)器開始計數(shù) ;當 TR 清 0 ,停止計數(shù) 。設(shè)計綜合考慮了頻率測量精度和測量反應(yīng)時間的要求 。[6]</p><p

59、><b>  4 實驗結(jié)果與分析</b></p><p><b>  4.1實驗數(shù)據(jù)</b></p><p>  為了衡量這次設(shè)計的頻率計的工作情況和測量精度,本人對系統(tǒng)進行了多次測量。以南京電訊儀器廠生產(chǎn)的E312B型通用計數(shù)器為基準進行了測試對比。測量數(shù)據(jù)如下表[7]</p><p><b>  4.2

60、實驗結(jié)果分析</b></p><p>  基于單片機直接計數(shù)脈沖,受單片機晶振頻率的影響,外圍電路與外部中斷口接觸良好問題,外界環(huán)境干擾等因素,故本頻率存在一定客觀和主觀上的誤差。經(jīng)實際多次測試頻率在小于1000Hz的時候最大相對誤差達到1%,在1000Hz-65536Hz相對誤差小于0.1%。</p><p>  受本頻率計的相對誤差影響使得本頻率計適合的場合受到一定的限制。

61、但由于本頻率計設(shè)計成本低、產(chǎn)品可模塊化設(shè)計、電源直接使用干電池、體積小、使用時可隨時隨地移動、使用起來特別的方便,比起傳統(tǒng)的頻率計還是有非常大的使用價值和使用空間。</p><p><b>  結(jié) 束 語</b></p><p>  通過本次畢業(yè)設(shè)計,不但加深我對在課程上所學(xué)到的單片機理論知識的認識和理解,重新讓自己認識到了這門學(xué)科的在應(yīng)用方面的廣闊前景,并且通過知識

62、與應(yīng)用于實踐的結(jié)合更加豐富了自己的知識。擴展了知識面,不但掌握了本專業(yè)的相關(guān)知識,而且對其他專業(yè)的知識也有所了解,而且較系統(tǒng)的掌握單片機應(yīng)用系統(tǒng)的開發(fā)過程,因而自身的綜合素質(zhì)有了全面的提高。</p><p>  經(jīng)過這次一個較完整的產(chǎn)品設(shè)計和制作過程,對于認識到自己在知識方面存在的不足,明確今后的學(xué)習方向是非常有益的,為將來的的就業(yè)提前打了下堅實的基礎(chǔ)。</p><p><b>

63、  致謝詞</b></p><p>  在設(shè)計過程中,得到了我的指導(dǎo)老師的悉心指導(dǎo)與幫助,還有其他老師和同學(xué)的大力支持和協(xié)助,在此一并表示衷心的感謝。大學(xué)四年即將結(jié)束,借此機會也對這四年來幫助、關(guān)心、鼓勵過我的老師、同學(xué)說聲謝謝。</p><p><b>  參考文獻</b></p><p>  [1]赫建國、劉立新、黨劍華.《基

64、于單片機的頻率計設(shè)計》[J] .西安郵電學(xué)院學(xué)報 2003年 7月 第8卷 第3期</p><p>  [2] 辜自強、楊揚.《基于AT89C51的等精度寬范圍的頻率計設(shè)計》[J] .電子技術(shù) 2000年 第9期</p><p>  [3] 曲云霞、郭蘭申、李向東《基于單片機的頻率計數(shù)器的設(shè)計》 [J] .河北工業(yè)大學(xué)學(xué)報 1999年 12月 第28卷 第6期</p><

65、;p>  [4]史軍、雷正紅.《數(shù)字頻率計的設(shè)計》[J] .河西學(xué)院學(xué)報 2005年05期</p><p>  [5] 馬場清太郎 譯者:何希才.《運算放大器應(yīng)用電路設(shè)計》[M].科學(xué)出版社.2007年4月</p><p>  [6] 龔運新.《單片機C語言開發(fā)技術(shù)》[M].清華大學(xué)出版社.2006年10月</p><p>  [7]鄒道生、李銘、楊漢祥.《

66、多功能數(shù)字頻率計的設(shè)計》[J] . 贛南師范學(xué)院學(xué)報 2004年03期</p><p><b>  附錄程序:</b></p><p>  #include <intrins.h></p><p>  #include <REGX51.H></p><p>  typedef unsigned c

67、har BYTE;</p><p>  typedef unsigned int WORD;</p><p>  typedef bit BOOL ;</p><p>  sbit rs= P1^0;//液晶模塊接口</p><p>  sbit rw = P1^1;</p><p>  sbit ep = P1

68、^2;</p><p>  delay(BYTE ms)</p><p>  {// 延時子程序</p><p><b>  BYTE i;</b></p><p>  while(ms--)</p><p><b>  {</b></p><

69、;p>  for(i = 0; i< 250; i++)</p><p><b>  {</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();<

70、;/b></p><p><b>  _nop_();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  BOOL lcd_bz

71、()</p><p>  {// 測試LCD忙碌狀態(tài)</p><p>  BOOL result;</p><p><b>  rs = 0;</b></p><p><b>  rw = 1;</b></p><p><b>  ep = 1;<

72、;/b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p>&

73、lt;p>  result = (BOOL)(P0 & 0x80);</p><p><b>  ep = 0;</b></p><p>  return result;</p><p><b>  }</b></p><p>  lcd_wcmd(BYTE cmd)</p&g

74、t;<p>  {// 寫入指令數(shù)據(jù)到LCD</p><p>  while(lcd_bz());</p><p><b>  rs = 0;</b></p><p><b>  rw = 0;</b></p><p><b>  ep = 0;</b&g

75、t;</p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  P0 = cmd;</b></p><p><b>  _nop_();</b></p><

76、p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  ep = 1;</b></p><p><b>  _nop_

77、();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  ep = 0;</b></p

78、><p><b>  }</b></p><p>  extern void lcd_pos(BYTE pos)</p><p>  {//設(shè)定顯示位置</p><p>  lcd_wcmd(pos | 0x80);</p><p><b>  }</b></

79、p><p>  extern void lcd_wdat(BYTE dat)</p><p>  {//寫入字符顯示數(shù)據(jù)到LCD</p><p>  while(lcd_bz());</p><p><b>  rs = 1;</b></p><p><b>  rw = 0

80、;</b></p><p><b>  ep = 0;</b></p><p><b>  P0 = dat;</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p>

81、;<p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  ep = 1;</b></p><p><b>  _nop_();</b></p><p><b>

82、  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  ep = 0;</b></p><p><b>  }</b></p&

83、gt;<p>  extern void lcd_init()</p><p>  {//LCD初始化設(shè)定</p><p>  lcd_wcmd(0x38);// 8位數(shù)據(jù)接口,2行顯示,5*7</p><p><b>  delay(1);</b></p><p>  lcd_wcmd

84、(0x0c);//顯示開。關(guān)標關(guān)。閃爍關(guān)</p><p><b>  delay(1);</b></p><p>  lcd_wcmd(0x06);//數(shù)據(jù)讀寫AC加1。畫面不移動</p><p><b>  delay(1);</b></p><p>  lcd_wcmd(0x01

85、);//清除LCD的顯示內(nèi)容</p><p><b>  delay(1);</b></p><p><b>  }</b></p><p>  #include <REGX51.H></p><p><b>  //</b></p><p

86、>  typedef unsigned char BYTE;</p><p>  typedef unsigned int WORD;</p><p>  typedef bit BOOL ;</p><p><b>  //</b></p><p>  extern void lcd_init();</p&

87、gt;<p>  extern void lcd_wdat(BYTE dat);</p><p>  extern void lcd_pos(BYTE pos);</p><p><b>  //</b></p><p>  void main()</p><p><b>  {</b>

88、;</p><p>  lcd_init();</p><p><b>  P0=0XFF;</b></p><p><b>  P1=0XFF;</b></p><p>  TMOD=0X01;</p><p><b>  TH0=0X3C;</b>&

89、lt;/p><p><b>  TL0=0XB0;</b></p><p><b>  IE=0X82;</b></p><p><b>  TR0=1;</b></p><p><b>  while(1);</b></p><p>

90、<b>  }</b></p><p><b>  //</b></p><p>  void time0(void) interrupt 1 </p><p><b>  {</b></p><p>  static BYTE count=0;</p><

91、p><b>  TH0=0X3C;</b></p><p><b>  TL0=0XB0;</b></p><p><b>  //</b></p><p>  if(count==19)</p><p><b>  {</b></p>

92、<p>  count++; </p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  BYTE GE,SHI,BAI,QIAN,WAN;</p><

93、p><b>  WORD SHU;</b></p><p>  //讀取數(shù)據(jù)存放在shu中</p><p>  SHU=P3; //P3高位</p><p><b>  SHU<<=8;</b></p><p>  SHU+=P2;//P2低位</p><p&

94、gt;  SHU&=0XFFF9;</p><p><b>  //關(guān)閉定時器</b></p><p><b>  TR0=0;</b></p><p>  //輸出shu到lcd中 </p><p>  GE=SHU%10;</p><p>  SHI=SHU

95、/10%10;</p><p>  BAI=SHU/100%10;</p><p>  QIAN=SHU/1000%10;</p><p>  WAN=SHU/10000;</p><p>  lcd_pos(0x00);</p><p>  lcd_wdat(WAN+48);</p><p>

96、  lcd_wdat(QIAN+48);</p><p>  lcd_wdat(BAI+48);</p><p>  lcd_wdat(SHI+48);</p><p>  lcd_wdat(GE+48);</p><p>  lcd_wdat(' ');</p><p>  lcd_wdat('

97、;H');</p><p>  lcd_wdat('Z');</p><p><b>  //初始化</b></p><p><b>  count=0;</b></p><p><b>  TH0=0X3C;</b></p><p&

98、gt;<b>  TL0=0XB0;</b></p><p><b>  P1_3=1;</b></p><p>  //準備新一輪的計數(shù)</p><p><b>  TR0=1;</b></p><p><b>  P1_3=0;</b></p&g

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論