

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 吉 首 大 學(xué)</b></p><p> JISHOU UNIVERSITY</p><p><b> 本科生畢業(yè)設(shè)計</b></p><p> 題目名稱 數(shù)字頻率計設(shè)計 </p><p> 學(xué)生姓名 王粲
2、 </p><p> 學(xué) 院 信息科學(xué)與工程學(xué)院 </p><p> 專業(yè)年級 電子信息工程、2008級 </p><p> 指導(dǎo)教師 孟凡斌 職稱 高級實驗師 </p><p> 寫作時間 2011年11月至2012年5月 </p><p>
3、<b> 吉首大學(xué)教務(wù)處制</b></p><p> 數(shù) 字 頻 率 計 設(shè) 計</p><p><b> 王粲</b></p><p> (吉首大學(xué)信息科學(xué)與工程學(xué)院,湖南 吉首416000)</p><p><b> 摘 要</b></p><
4、p> 數(shù)字頻率計設(shè)計主要以單片機(jī)為核心,包括時基電路,邏輯控制電路,放大整形電路,閘門電路,計數(shù)電路,鎖存電路,譯碼顯示電路等七大部分。測頻的基本原理是采用直接測頻法,被測信號先進(jìn)入信號放大電路進(jìn)行放大,再被送到波形整形電路整形,把被測的正弦波或三角波整形為方波,利用單片機(jī)的計數(shù)器和定時的功能對被測信號進(jìn)行計數(shù),編寫好相應(yīng)的程序可以使單片機(jī)自動調(diào)節(jié)測量的量程,并把測出的頻率數(shù)據(jù)送到顯示電路上顯示。系統(tǒng)簡單可靠、操作簡易,能基本滿
5、足一般情況下的需要。既保證了系統(tǒng)的測頻精度,又使系統(tǒng)具有較好的實時性。本頻率計設(shè)計簡潔,便于攜帶,擴(kuò)展能力強,適用范圍廣。</p><p> 關(guān)鍵詞:單片機(jī);運算;頻率計;顯示電路 </p><p> The Design of Digital Frequency Meter</p><p><b> WangCan</b></p&
6、gt;<p> (College of Information Science and Engineering,Jishou University,Jishou,Hunan 416000)</p><p><b> Abstract</b></p><p> Design of digital frequency meter microcontro
7、ller as the core, the logic control circuit, amplifier shaping circuit, the gate circuit, the counting circuit, latch circuit, decoding circuit most of the seven shows, Frequency measurement of the basic principle is the
8、 use of direct side frequency method,the measured signal the first amplifier to amplify the incoming signal, and then was sent to the waveform shaping circuit surgery, the measured sine wave or triangle wave shaping as a
9、 square wave. C</p><p> Key words: microcontroller;operation,;frequency meter; Show circuit </p><p><b> 目 錄</b></p><p><b> 第一章 緒論1</b></p><p&
10、gt;<b> 1.1課題背景1</b></p><p> 1.2 課題研究的目的和意義1</p><p> 1.3設(shè)計任務(wù)與要求1</p><p> 第二章 數(shù)字頻率計總體設(shè)計方案2</p><p><b> 2.1方案比較2</b></p><p>
11、<b> 2.2方案論證3</b></p><p><b> 2.3方案選擇3</b></p><p> 第三章 數(shù)字頻率計的硬件系統(tǒng)設(shè)計4</p><p> 3.1 數(shù)字頻率計的硬件系統(tǒng)框架4</p><p> 3.2 數(shù)字頻率計的主機(jī)電路設(shè)計4</p><
12、p> 3.3數(shù)字頻率計的信號輸入電路設(shè)計7</p><p> 3.4數(shù)字頻率計顯示電路的設(shè)計7</p><p> 3.4.1 LED段顯示器結(jié)構(gòu)與原理7</p><p> 3.4.2 LED數(shù)碼管的顯示方式9</p><p> 3.5分頻電路11</p><p> 3.6數(shù)字頻率計電源模塊的
13、設(shè)計12</p><p> 數(shù)字頻率計的系統(tǒng)原理圖13</p><p> 第四章 數(shù)字頻率計軟件系統(tǒng)設(shè)計14</p><p> 4.1 軟件設(shè)計規(guī)劃14</p><p> 4.1.1信號處理14</p><p> 4.1.2中斷控制15</p><p> 4.2.1定時器
14、/計數(shù)器15</p><p> 4.2.2定時工作方式016</p><p> 4.3程序流程圖設(shè)計16</p><p> 4.3.1主程序流程17</p><p> 4.3.2 中斷流程17</p><p> 第五章 數(shù)字頻率計的仿真調(diào)試19</p><p><b&
15、gt; 致謝20</b></p><p><b> 參考文獻(xiàn)21</b></p><p><b> 附錄(程序)22</b></p><p><b> 第一章 緒論</b></p><p><b> 1.1課題背景</b>&l
16、t;/p><p> 在電子技術(shù)中,頻率是最基本的參數(shù)之一,并且與許多電參量的測量方案、測量結(jié)果都有十分密切的關(guān)系,因此頻率的測量就顯得更為重要。</p><p> 頻率計的基本原理是用一個頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時鐘,對比測量其他信號的頻率。通常情況下計算每秒內(nèi)待測信號的脈沖個數(shù),此時我們稱閘門時間為1秒。閘門時間也可以大于或小于一秒。閘門時間越長,得到的頻率值就越準(zhǔn)確,但閘門時間越長
17、則每測一次頻率的間隔就越長。閘門時間越短,測的頻率值刷新就越快,但測得的頻率精度就受影響。數(shù)字頻率計是用數(shù)字顯示被測信號頻率的儀器,被測信號可以是正弦波,方波或其它周期性變化的信號。如配以適當(dāng)?shù)膫鞲衅鳎梢詫Χ喾N物理量進(jìn)行測試,比如機(jī)械振動的頻率,轉(zhuǎn)速,聲音的頻率以及產(chǎn)品的計件等等。</p><p> 1.2 課題研究的目的和意義</p><p> 因為數(shù)字頻率計是計算機(jī)、通訊設(shè)備、音
18、頻視頻等科研生產(chǎn)領(lǐng)域必不可少的測量儀器,所以為了滿足生產(chǎn)過程中特別是測試人員在測量時智能儀器能自動選擇量程,自動校準(zhǔn)或者自動調(diào)整測試點,特設(shè)計本方案,使其能方便操作,提高測試精度。</p><p> 基于單片機(jī)的數(shù)字頻率計以其可靠性高、體積小、價格低、功能全等優(yōu)點,廣泛地應(yīng)用于各種智能儀器中,這些智能儀器的操作在進(jìn)行儀器校核以及測量過程的控制中,達(dá)到了自動化,傳統(tǒng)儀器面板上的開關(guān)和旋鈕被鍵盤所代替,測試人員在測
19、量時只需按需要的鍵,省掉很多煩瑣的人工調(diào)節(jié),設(shè)計原理簡單、電路穩(wěn)定、測量精度高,大大的縮短了生產(chǎn)周期。 </p><p> 1.3設(shè)計任務(wù)與要求</p><p> 1.測頻范圍:10Hz~10KHz。為保證測量精度分三個頻段</p><p> 10Hz~100Hz,100Hz~1KHz,1KHz~10KHz,有超量程指示。</p><p&g
20、t; 2.輸入波形:函數(shù)信號發(fā)生器輸出方波,矩形波,幅度為5V,產(chǎn)生所需的脈沖信號。</p><p> 3.測量誤差: ≤1。</p><p> 第二章 數(shù)字頻率計總體設(shè)計方案</p><p><b> 2.1方案比較</b></p><p> 方案一:主要以單片機(jī)為核心,利用單片機(jī)的計數(shù)定時功能來實現(xiàn)頻率的
21、計數(shù)并且利用單片機(jī)的動態(tài)掃描法把測出的數(shù)據(jù)送到數(shù)字顯示電路顯示。原理框圖如圖2.1所示:</p><p> 圖2.1方案一原理框圖</p><p> 方案二:主要以數(shù)字器件為核心,主要分為時基電路,邏輯控制電路,放大整形電路,閘門電路,計數(shù)電路,鎖存電路,譯碼顯示電路七大部分[1]。其原理框圖如圖2.2所示:</p><p> 圖2.2 方案二原理框圖<
22、/p><p><b> 2.2方案論證</b></p><p> 方案一:主要以單片機(jī)為核心,被測信號先進(jìn)入信號放大電路進(jìn)行放大,再被送到波形整形電路整形,把被測的正弦波或者三角波整形為方波。利用單片機(jī)的計數(shù)器和定時器的功能對被測信號進(jìn)行計數(shù)。編寫相應(yīng)的程序可以使單片機(jī)自動調(diào)節(jié)測量的量程,并把測出的頻率數(shù)據(jù)送到顯示電路顯示。</p><p>
23、 方案二:使用了大量的數(shù)字器件,被測信號經(jīng)放大整形電路變成計數(shù)器所要求的脈沖信號,其頻率與被側(cè)信號的頻率相同。同時時基電路提供標(biāo)準(zhǔn)時間基準(zhǔn)信號,其高電平持續(xù)時間1s,當(dāng)1s信號來到時,閘門開通,被測脈沖信號通過閘門,計數(shù)器開始計數(shù),直到1s信號結(jié)束閘門關(guān)閉,停止計數(shù)。若在閘門時間1s內(nèi)計數(shù)器計得的脈沖個數(shù)為N,則被測信號頻率Fx = NHz。邏輯控制電路的作用有兩個:一是產(chǎn)生鎖存脈沖,是顯示器上的數(shù)字穩(wěn)定;二是產(chǎn)生清零脈沖,使計數(shù)器每次
24、測量從零開始計數(shù)。</p><p><b> 2.3方案選擇</b></p><p> 比較以上兩種方案可以知道,方案一的核心是單片機(jī),使用的元器件少,原理電路簡單,調(diào)試簡單只要改變程序的設(shè)定值則可以實現(xiàn)不同頻率范圍的測試能自動選擇測試的量程。與方案一相比較方案二則使用了大量的數(shù)字元器件,原理電路復(fù)雜,硬件調(diào)試麻煩。如要測量高頻的信號還需要加上分頻電路,價格相對高
25、了點。基于上述比較,設(shè)計采用方案一。</p><p> 第三章 數(shù)字頻率計的硬件系統(tǒng)設(shè)計</p><p> 3.1 數(shù)字頻率計的硬件系統(tǒng)框架</p><p> 數(shù)字頻率計是一個將被測頻率顯示出來的計數(shù)裝置,它主要由整形電路對輸入信號進(jìn)行整形。然后通過4518計數(shù)器計數(shù),再由單片機(jī)89C51控制在LED顯示器上顯示。。該系統(tǒng)的功能是將信號輸入P3.4口,通過單片
26、機(jī)程序控制,對LED顯示器進(jìn)行段控和位控,實現(xiàn)動態(tài)顯示。</p><p> 數(shù)字頻率計是計算機(jī)、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測量儀器。在進(jìn)行有關(guān)電子技術(shù)的設(shè)計、安裝、調(diào)試過程中,由于其使用十進(jìn)制數(shù)顯示,測量迅速,精確度高,顯示直觀,會被經(jīng)常使用到。圖3-1為數(shù)字頻率計方案框圖。 </p><p> 圖3-1 數(shù)字頻率計方框圖<
27、;/p><p> 3.2 數(shù)字頻率計的主機(jī)電路設(shè)計</p><p> ATC89C51可以完成ISP在線編程功能,ATC89C51內(nèi)部有EEPROM,可以在程序中修改,斷電不丟失。還增加了兩級中斷優(yōu)先級,STC推出的系列51單片機(jī)芯片是全面兼容其它51單片機(jī)的,而且51單片機(jī)是主流大軍。</p><p> 1.89C51芯片介紹</p><p&
28、gt; 許多由關(guān)硬件設(shè)計中都使用到單片機(jī)89C51,其功能[7]比以往的單片機(jī)強大的多。89C51引腳圖如圖3-2所示。</p><p> 圖3-2 89C51引腳圖</p><p><b> 芯片引腳功能:</b></p><p> 主電源引腳Vcc和Vss</p><p> ?Vcc(40腳):接+5V電壓
29、;</p><p> ?Vss(20腳):接地。</p><p> 89C51晶振接法如圖3-3。</p><p> 圖3-3 89C51晶振接法圖</p><p> 選用6MHz頻率的晶體,允許輸入的脈沖頻率為250kHz。電容的大小范圍為20pF~40pF,本設(shè)計選用30pF電容。</p><p><
30、b> 2.單片機(jī)復(fù)位電路</b></p><p> 單片機(jī)的復(fù)位都是靠外部電路實現(xiàn)的,在時鐘電路工作后,只要在單片機(jī)的RST引腳上出現(xiàn)24個時鐘振蕩脈沖(2個機(jī)器周期)以上的高電平,單片機(jī)便實現(xiàn)初始化狀態(tài)復(fù)位。為了保證應(yīng)用系統(tǒng)可靠地復(fù)位,在設(shè)計復(fù)位電路時,通常使RST引腳保持10ms以上的高電平。只要保持高電平,則MCS-51單片機(jī)就循環(huán)復(fù)位;當(dāng)RST從高電平變?yōu)榈碗娖揭院?,MCS-51單片
31、機(jī)從0000H地址開始執(zhí)行程序。在復(fù)位有效期間,ALE、 引腳輸出高電平。</p><p> 89C51上電復(fù)位電路圖如3-4所示。</p><p> 圖3-4 89C51上電復(fù)位電路圖</p><p> 單片機(jī)復(fù)位狀態(tài)表如表3-5所示。</p><p> 表 3-5 單片機(jī)復(fù)位狀態(tài)表</p><p><
32、;b> 注:XXX不定</b></p><p> 復(fù)位后,P0口~P3口輸出高電平,且使這些準(zhǔn)雙向口皆處于輸入狀態(tài),并且將07H寫入棧指針SP(即設(shè)定堆棧底為07H),同時,將程序計數(shù)器PC和其余的特殊功能寄存器清為0(不定的位除外)。但復(fù)位不影響單片機(jī)內(nèi)部的RAM狀態(tài)。</p><p> 3.3數(shù)字頻率計的信號輸入電路設(shè)計</p><p>
33、 7414是六反相施密特觸發(fā)器集成電路,其基本作用就是反相器,一般用于信號輸入電路,用施密特觸發(fā)器對輸入信號進(jìn)行波形整形。其結(jié)果如圖3-13所示[4]。</p><p> 圖3-13 輸入-輸出波形圖</p><p> 本設(shè)計為滿足設(shè)計要求,被測信號首先進(jìn)行波形變換。由第一級的零偏置放大器把正弦波樣的正負(fù)交替波形變換成單向脈沖,再經(jīng)過7414將放大器產(chǎn)生的單向脈沖變換成與TTL/CM
34、OS電平相兼容的方波。這樣處理以后信號變成方波信號,以便后續(xù)的電路進(jìn)行計數(shù)[4]。</p><p> 3.4數(shù)字頻率計顯示電路的設(shè)計</p><p> 3.4.1 LED段顯示器結(jié)構(gòu)與原理</p><p> LED顯示器是由發(fā)光二極管顯示字段組成的顯示塊,有7段和“米”字段之分。這種顯示塊有共陽極和共陰極兩種。此外,顯示塊中還有一個圓點型發(fā)光二極管(在圖中以d
35、P表示)用于顯示小數(shù)點。通過發(fā)光二極管亮、暗的不同組,可以顯示多中數(shù)字、字母以及其他符號[5]。</p><p> LED顯示塊中的發(fā)光二極管共有兩種連接方法:</p><p><b> (1)共陽極接法</b></p><p> 發(fā)光二極管的陽極連在一起構(gòu)成公共陽極。使用時公共陽極接+5V,這樣,陰極端輸入低電平的段的發(fā)光二極管被點亮,
36、相應(yīng)的段被顯示;而輸入高電平的段則不點亮。</p><p><b> (2)共陰極接法</b></p><p> 發(fā)光二極管的陰極連在一起構(gòu)成公共陰極。使用時公共陰極接地,這樣,陽極端輸入高電平的段的發(fā)光二極管被點亮,相應(yīng)的段被顯示;而輸入低電平的段則不點亮。</p><p> 數(shù)碼管引腳如圖3-6。</p><p&g
37、t; 圖3-6 數(shù)碼管引腳圖</p><p> 共陰和共陽結(jié)構(gòu)的LED顯示器各筆劃段名和安排位置是相同的。當(dāng)二極管導(dǎo)通時,相應(yīng)的筆劃段發(fā)亮,由發(fā)亮的筆劃段組合而顯示的各種字符。8個筆劃段dP、g、f、e、d、c、b、a對應(yīng)于一個字節(jié)(8位)的D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二進(jìn)制碼就可以表示欲顯示字符的字形代碼。例如,對于共陰LED顯示器,當(dāng)公共陰極接地(為零電平),而陽極dP、g、
38、f、e、d、c、b、a各段為0111011時,顯示器顯示"P"字符,即對于共陰極LED顯示器,“P”字符的字形碼是73H。如果是共陽LED顯示器,公共陽極接高電平,顯示“P”字符的字形代碼應(yīng)為10001100(8CH)。用LED顯示器顯示十進(jìn)制轉(zhuǎn)換成十六進(jìn)制數(shù)的字形代碼在表3-7中列出。</p><p> 表3-7 LED十六進(jìn)制的數(shù)字代碼表</p><p> 3.
39、4.2 LED數(shù)碼管的顯示方式</p><p> LED數(shù)碼管在顯示時,通常有靜態(tài)顯示方式和動態(tài)顯示方式兩種。</p><p> LED靜態(tài)顯示:其公共端直接接地(共陰極)或接電源(共陽極),各段選線分別與I/O接口線相連。要顯示字符,直接在I/O線發(fā)送相應(yīng)的字段碼[6]。</p><p> LED動態(tài)顯示:將所有的數(shù)碼管的段選線并接在一起,用一個I/O接口控
40、制,公共端不是直接接地(共陰極)或電源(共陽極),而是通過相應(yīng)的I/O接口線控制[6]。</p><p> 在單片機(jī)系統(tǒng)中,常用的顯示器有:發(fā)光二極管顯示器,簡稱LED;液晶顯示器,簡稱LCD;熒光管顯示器。而發(fā)光二極管顯示又分為固定段顯示和可以拼裝的大型字段顯示,此外還有共陽極和共陰極之分等。</p><p> 數(shù)字頻率計設(shè)計將采用軟件譯碼動態(tài)顯示電路如3-8圖:</p>
41、<p> 圖3-8數(shù)字頻率計顯示圖</p><p><b> 3.5分頻電路</b></p><p> 計數(shù)器的種類很多。按時鐘脈沖輸入方式的不同,可分為同步計數(shù)器和異步計數(shù)器;按進(jìn)位體制的不同,可分為二進(jìn)制計數(shù)器和非二進(jìn)制計數(shù)器;按計數(shù)過程中數(shù)字增減趨勢的不同,可分為加計數(shù)器、減計數(shù)器和可逆計數(shù)器。 </p><p>
42、本設(shè)計采用的是兩個4518的十進(jìn)制計數(shù)器。在數(shù)字頻率計設(shè)計中,計數(shù)器的作用主要是用于對輸入信號的輸入計數(shù),雖然單片機(jī)內(nèi)部功能中有計數(shù)功能,但是由于單片機(jī)的計數(shù)功能計數(shù)范圍比較小,滿足不了大頻率的計數(shù)測算,所以在外面加兩個4518計數(shù)器,4518是一個十進(jìn)制計數(shù)器,信號由CLK輸入,U2.A通過Q3輸出,進(jìn)行10次計數(shù),U2.A級聯(lián)到U2.B,通過Q0輸出,進(jìn)行2次計數(shù)。所以總電路對信號進(jìn)行了20分頻[11]。加強計數(shù)能力,從而滿足其測算
43、范圍。</p><p> 硬件電路如圖3-9:</p><p><b> 圖3-9 分頻電路</b></p><p> 功能圖如下圖3-10所示:</p><p> 圖3-10 分頻電路功能圖</p><p> 3.6數(shù)字頻率計電源模塊的設(shè)計</p><p>
44、 使用變壓器提供到AC橋堆的輸入腳為9V交流電壓,通過AC整流輸出為9V直流電,經(jīng)過電解電容濾波、7805穩(wěn)壓,提供給89C51單片機(jī)為5V電壓。5V電源電路如圖3-14所示[10]。</p><p> 圖3-14 5V電源電路圖</p><p> 數(shù)字頻率計的系統(tǒng)原理圖</p><p> 第四章 數(shù)字頻率計軟件系統(tǒng)設(shè)計</p><p>
45、; 4.1 軟件設(shè)計規(guī)劃</p><p><b> 4.1.1信號處理</b></p><p> 在頻率計開始工作,或者完成一次頻率測量,系統(tǒng)軟件都進(jìn)行測量初始化。測量初始化模塊設(shè)置堆棧指針(SP)、工作寄存器、中斷控制和定時/計數(shù)器的工作方式。</p><p> 定時/計數(shù)器的工作首先被設(shè)置為計數(shù)器的計數(shù)寄存器清0后,置運行控制位TR
46、為1,啟動對待測信號的計數(shù)。計數(shù)閘門由軟件延時程序?qū)崿F(xiàn),從計數(shù)閘門的最小值開始,也就是從測量頻率的高量程開始。計數(shù)閘門結(jié)束時TR清0,停止計數(shù)。計數(shù)寄存器中的值通過16進(jìn)制數(shù)道10進(jìn)制數(shù)轉(zhuǎn)換程序轉(zhuǎn)換為10進(jìn)制數(shù)。對10進(jìn)制數(shù)的最高位進(jìn)行判別,若該位不為0,滿足測量數(shù)據(jù)有效位數(shù)的要求,測量值和量程信息一起送到顯示模塊;若該位為0,將計數(shù)閘門的寬度擴(kuò)大10倍,重新對待測信號的技術(shù),直到滿足測量數(shù)據(jù)有效位數(shù)的要求。</p>&l
47、t;p> 待測信號經(jīng)預(yù)處理電路分頻后變成較寬的方波信號,并加至單片機(jī)的P3.4引腳,為單片機(jī)測信號頻率提供有效的輸入信號。單片機(jī)通過檢測P3.4引腳來判斷是否啟動測周期程序。當(dāng)該引腳為高電平時則等待,知道該引腳出現(xiàn)低電平時才開始測周期。首先將零賦給TH0、TL0兩個寄存器,將定時器T0的運行控制位TR0置位,同時也將ET0置位以允許定時器T0終端,然后再判斷P3.4引腳是否還為低電平,當(dāng)不是低電平時則等待。一旦出現(xiàn)低電平則使TR
48、0復(fù)位以終止定時器,測周期程序結(jié)束。在測周期過程中,會發(fā)生定時器T0的中斷,每發(fā)生一次中斷則將R0寄存器加一,因此R0實際上是周期值的高字節(jié)。測出的周期值存儲在R0、TH0、TL0三個寄存器中,然后將其轉(zhuǎn)換成頻率。由于所測周期的單位是µs,再相除轉(zhuǎn)換時要將被除數(shù)擴(kuò)大10 倍,這樣才能保證得出正確的頻率[11]。得出的頻率放到R1、R2、R3三個寄存器后調(diào)用轉(zhuǎn)換BCD代碼模塊。調(diào)用顯示消除多余零和顯示數(shù)據(jù)存儲模塊,將要顯示的頻率
49、值通過查表轉(zhuǎn)換成相應(yīng)數(shù)據(jù)段碼放到現(xiàn)實緩沖區(qū)以備顯示。</p><p><b> 4.1.2中斷控制</b></p><p> 由于在程序設(shè)計中用到中斷方式,所以我們在此對單片機(jī)中斷系統(tǒng)中的中斷控制作一下介紹。</p><p> 中斷是工業(yè)過程控制及智能化儀器用微型機(jī)或單片機(jī)應(yīng)用最多的一種數(shù)據(jù)傳送方式。在通常情況下,單片機(jī)執(zhí)行主程序,只有當(dāng)
50、正常狀態(tài)出現(xiàn)故障,或發(fā)出中斷請求時,單片機(jī)才暫停執(zhí)行主程序,轉(zhuǎn)去執(zhí)行或處理中斷服務(wù)程序,執(zhí)行完中斷服務(wù)程序后,再返回到主程序繼續(xù)運行。單片機(jī)的這一種工作過程稱為中斷方式。</p><p> 基于資源共享原理上的中斷技術(shù),在計算機(jī)中得到了廣泛的應(yīng)用。中斷技術(shù)能實現(xiàn)CPU與外部設(shè)備的并行工作,提高CPU的利用率以及數(shù)據(jù)的輸入/輸出效率;中斷技術(shù)也能對計算機(jī)運行過程中突然發(fā)生的故障及時發(fā)現(xiàn)并進(jìn)行自動處理如:硬件故障、
51、運算錯誤及程序故障等;中斷技術(shù)還能使我們通過鍵盤發(fā)出請求,隨時對運行中的計算機(jī)進(jìn)行干預(yù),而不用先停機(jī)處理,然后再重新開機(jī)等。</p><p> 在單片機(jī)中,中斷技術(shù)主要用于實時控制。所謂實時控制,就是要求計算機(jī)能及時地響應(yīng)被控對象提出的分析、計算和控制等請求,使被控對象保持在最佳工作狀態(tài),以達(dá)到預(yù)定的控制效果[12]。由于這些控制參量的請求都是隨機(jī)發(fā)出的,而且要求單片機(jī)必須做出快速響應(yīng)并及時處理,對此,只有靠中
52、斷技術(shù)才能實現(xiàn)。</p><p> 4.2.1定時器/計數(shù)器</p><p> ?。?)定時器控制寄存器(TCON)</p><p> TCON寄存器既參與中斷控制又參與定時控制。現(xiàn)對其定時功能加以介紹。其中有關(guān)定時的控制位共有4位:</p><p> F0和TF1——計數(shù)溢出標(biāo)志位[10]</p><p>
53、當(dāng)計數(shù)器計數(shù)溢出(計滿)時,該位置“1”;使用查詢方式時,此位作狀態(tài)位供查詢,但應(yīng)注意查詢有效后應(yīng)以軟件方法及時將該位清“0”;使用中斷方式時,此位作中斷標(biāo)志位,在轉(zhuǎn)向中斷服務(wù)程序時由硬件自動清“0”。</p><p> R0和TR1——定時器運行控制位</p><p> TRO(TR1)=0 停止定時器/計數(shù)器工作</p><p> TRO(TR1
54、)=1 啟動定時器/計數(shù)器工作</p><p> ?。?)工作方式控制寄存器(TMOD)</p><p> TMOD寄存器是一個專用寄存器,用于設(shè)定兩個定時器/計數(shù)器的工作方式[11]。但TMOD寄存器不能位尋址,只能用字節(jié)傳送指令設(shè)置其內(nèi)容。</p><p> ?。?)中斷允許控制寄存器(IE)</p><p> EA——中斷
55、允許總控制位</p><p> ET0和ET1——定時/計數(shù)中斷</p><p> 定時器/計數(shù)器提供給用戶使用的有:8位計數(shù)器TH和TL,以及有關(guān)的控制位。這些內(nèi)容只能以軟件方法使用[12]。</p><p> 能夠產(chǎn)生中斷申請的部件被稱為中斷源。8051型單片機(jī)提供了五個中斷源:兩個外部中斷源和三個內(nèi)部中斷源。每一個中斷源都有一個中斷申請標(biāo)志位,但是串行口
56、占有兩個中斷標(biāo)志位。一共有六個中斷標(biāo)志位。</p><p> ?。?)定時器/計數(shù)器對輸入信號的要求</p><p> 定時器/計數(shù)器的兩個作用是用來精確的確定某一段時間間隔[13](作定時器用)或累計外部輸入的脈沖個數(shù)(作計數(shù)器用)。</p><p> 當(dāng)用作定時器時,在其輸入端輸入周期固定的脈沖,根據(jù)定時器/計數(shù)器中累計(或事先設(shè)置)的脈沖個數(shù),即可計算出所
57、定時間的長度。</p><p> 當(dāng)89C51內(nèi)部的定時器/計數(shù)器被選擇為定時器工作方式時,計數(shù)輸入信號是內(nèi)部時鐘脈沖,每個機(jī)器周期產(chǎn)生一個脈沖使計數(shù)器增1。因此,定時器/計數(shù)器的輸入脈沖周期與機(jī)器周期一樣,為振蕩頻率的1/12。當(dāng)采用12MHz頻率的晶體時,計數(shù)頻率為1MHz,輸入脈沖的周期間隔為1μs[14]。由于定時的精度決定于脈沖的周期,因此,當(dāng)需要高精度的定時器時,應(yīng)盡量選擇頻率較高的晶體。</
58、p><p> 4.2.2定時工作方式0</p><p> 方式0是13位計數(shù)結(jié)構(gòu)的工作方式,其計數(shù)器由TH0高8位和TL0的低五位構(gòu)成。TL0的高3位棄之不用。當(dāng)C/ =0時,多中開關(guān)接通振蕩脈沖的12分頻輸出,13位計數(shù)器以此進(jìn)行計數(shù),這就是所謂定時器工作方式。當(dāng)C/ =1時,多路開關(guān)接通計數(shù)引腳(T0),外部計數(shù)脈沖由引腳T0輸入。當(dāng)計數(shù)脈沖發(fā)生負(fù)跳變時,這就是所謂計數(shù)工作方式。<
59、;/p><p> 不管是哪種工作方式,當(dāng)TL0的低五位計數(shù)溢出時,向TH0進(jìn)位,而全部13位計數(shù)溢出時,則向計數(shù)溢出標(biāo)志位TF0進(jìn)位。</p><p> 4.3程序流程圖設(shè)計</p><p> 4.3.1主程序流程</p><p> 主程序流程圖如圖4-1所示。</p><p> 圖4-1 主程序流程圖</
60、p><p> 4.3.2 中斷流程</p><p> T1中斷流程圖如圖4-2所示。</p><p> 圖4-2 T1中斷流程圖</p><p> T0中斷流程圖如圖4-2所示。</p><p> 圖4-2 T0中斷流程圖</p><p> 中斷程序?qū)崿F(xiàn)定時與計數(shù)的功能。T1進(jìn)行定時,定
61、時時間為1S。T0進(jìn)行計數(shù),TO中斷溢出一次,T0count加1。當(dāng)定時達(dá)到1S時,停止T0,T1。最后計算相應(yīng)的頻率值。</p><p> 第五章 數(shù)字頻率計的仿真調(diào)試</p><p> 利用仿真軟件ISIS的強大的仿真功能可以有效地檢驗所設(shè)計的原理圖是否在理論上正確合理。選擇適當(dāng)?shù)娜龢O管和設(shè)置基極,發(fā)射極,集電極電阻可以得到適當(dāng)?shù)姆糯蟊稊?shù)對所測的信號進(jìn)行有效的處理。要選擇適當(dāng)?shù)娜龢O
62、管,以免避免發(fā)生截止失真和飽和失真。分別以正弦波,方波,三角波作為輸入信號檢測電路的整形效果。利用仿真軟件的示波器來觀察整形出來的波形是否符合所要整形出來的波形。</p><p> 利用Keil uvision2軟件編寫單片機(jī)的工作程序并且檢驗程序是否成功編譯。通過Keil uvision2逐步運行程序的功能可以檢測出程序的錯漏從而進(jìn)行改正。程序編譯成功后,利用ISIS軟件把程序加載到原理圖中進(jìn)行仿真,通過顯示
63、器顯示出來的頻率大小與所設(shè)計的頻率相比較可以看出所編寫的程序是否滿足要求,是否符合設(shè)計所要求的精度。測出各頻率范圍的誤差,如果不符合設(shè)計所要求的精度可以通過改變單片機(jī)定時器的初始值或者優(yōu)化程序的結(jié)構(gòu)來減小誤差增加精度![14]LED數(shù)碼管采用的是動態(tài)掃描的方法進(jìn)行顯示,要設(shè)計好相應(yīng)的掃描時間,因為掃描時間太短則LED顯示出來的數(shù)字便會一直在閃爍不穩(wěn)定,掃描時間太長則LED顯示便會出現(xiàn)短時間的熄滅。調(diào)試電路的時候發(fā)現(xiàn)由于P2口的驅(qū)動能力不
64、夠大因此要驅(qū)動LED數(shù)碼管工作就應(yīng)該加上反相器或者三極管作為驅(qū)動電路。</p><p> 測試結(jié)果:電路導(dǎo)通,LED燈顯示所測量的信號頻率,測量范圍:10HZ-10KHZ。</p><p><b> 致謝</b></p><p> 在本次設(shè)計的研究和設(shè)計過程中,我得到了老師和同學(xué)們的熱情幫助。在此,對他們表示衷心的感謝。</p>
65、;<p> 首先,要對我的指導(dǎo)老師孟凡斌老師表示衷心的感謝。從方案的選取、審題、查找資料,到系統(tǒng)軟硬件的各部分設(shè)計工作,到最后論文的書寫和完成,朱老師在我的整個畢業(yè)設(shè)計工作中給了我很大的幫助和支持。孟老師的諄諄教導(dǎo),使我受益匪淺。</p><p> 其次,要對大學(xué)四年以來所有給我授課的老師們表示感謝。是他們教會了我大學(xué)應(yīng)該掌握的知識和技能,給我打下了堅實的理論基礎(chǔ)。只有運用四年學(xué)習(xí)的基礎(chǔ)知識和經(jīng)
66、驗的積累,才能使我能夠順利的完成本次畢業(yè)設(shè)計工作。</p><p> 最后,要感謝我們班的眾多同學(xué),本次設(shè)計能夠圓滿完成,和各位同學(xué)的幫助是息息相關(guān)的。在本次設(shè)計中,我遇到了無數(shù)困難,在需要幫助的時候,各位同學(xué)給了我無私的幫助,助我度過了一個又一個的難關(guān)。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]陳敬遠(yuǎn).數(shù)字頻
67、率計的VHDL設(shè)計[J].浙江傳媒學(xué)院學(xué)報; 2002,01: 36-38.</p><p> [2]何均 ,楊明.適合于單片機(jī)實現(xiàn)的極值搜索算法[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2004,24.</p><p> [3]杜玉遠(yuǎn).基于top-down方法的數(shù)字頻率計的設(shè)計與實現(xiàn)[J].電子世界, 2004,5: 30-32.</p><p> [4]錢進(jìn).基于A
68、T89C2051的高度精度數(shù)字頻率計的設(shè)計[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2007,20(1):86-87.</p><p> [5]馮雷星,楊偉,蘆燕龍.基于單片機(jī)高性價比頻率計的設(shè)計與實現(xiàn)[B].微計算機(jī)信息,2007,20.</p><p> [6]赫建國,劉立新,黨劍華.基于單片機(jī)的頻率計設(shè)計[J].西安郵電學(xué)院學(xué)報,2003,03:34-37+75.</p><
69、;p> [7]張毅剛.單片機(jī)原理及應(yīng)用.高等教育出版社[M],2003.12(1).</p><p> [9]施劍鳴.單片機(jī)測頻技術(shù)及測量精度的提高[A].江蘇省計量測試學(xué)會2005年論文集 [C],2005.</p><p> [10]謝煌,黃為.基于VHDL語言設(shè)計頻率計[J].北京現(xiàn)代電子技術(shù),2003,14.</p><p> [11]杜剛,高
70、軍,童寧寧.基于AT89C2051單片機(jī)的頻率計設(shè)計[J].微計算機(jī)應(yīng)用,2004,25(4):498-501.</p><p> [12]劉雪根.數(shù)字頻率計的誤差分析[J].自動化與儀表,1996,3:23-24.</p><p> [13]顧巨峰,周浩洋,朱建華.基于可編程邏輯器件(Lattice)的多功能數(shù)字頻率計[J].電子工程師,2002,1:28-32.</p>
71、<p> [14]王麗霞,程小輝,龔幼民.基于LM331的頻率計[J].儀表技術(shù)與傳感器; 2007,09.</p><p><b> 附錄(程序)</b></p><p> #include <89C51.H></p><p> //********數(shù)碼管位代碼表(P2口)**********//</p
72、><p> unsigned char code dispbit[]={0x01,0x02,0x04,0x08};</p><p> //********數(shù)碼管段代碼表(P0口,共陰且高位接dp,低位接a筆段)**********// </p><p> unsigned char code dispcode[]={0x3F,0x06,0x5B,0x4F,0x
73、66,0x6D,0x7D,0x07,</p><p><b> 0x7F};</b></p><p> //********6位數(shù)據(jù)緩沖器**********// </p><p> unsigned char dispbuf[8];
74、 </p><p> unsigned char temp[8]; </p><p> unsigned char dispcount; </p><p> unsigned char T0count;</p><p> unsigned char timecount
75、;</p><p> void initial();</p><p> void delay();</p><p> void dataDisplay();</p><p> bit flag; </p><p> sbit Fin=P3^4; </p><p> sbit key
76、=P3^7; </p><p> unsigned long x,freq; </p><p> //*********初始化模塊**********//</p><p> void initial(void){</p><p><b> P0=0x3F;</b></p>
77、<p><b> P2=0xff;</b></p><p> TMOD=0x15; </p><p><b> TH0=0;</b></p><p><b> TL0=0;</b></p><p> TH1=(655
78、36-4000)/256;</p><p> TL1=(65536-4000)%256;</p><p><b> TR1=1;</b></p><p><b> TR0=1;</b></p><p><b> ET0=1;</b></p><p&g
79、t;<b> ET1=1;</b></p><p><b> EA=1;</b></p><p><b> }</b></p><p> //*********顯示模塊**********//</p><p> void dataDisplay(){</p>
80、;<p> unsigned char i; </p><p> for(i=0;i<4;i++){</p><p> temp[i]=0;</p><p><b> }</b></p><p><b> i=0;</b></p><p>
81、 while(x/10){</p><p> temp[i]=x%10;</p><p><b> x=x/10;</b></p><p><b> i++;</b></p><p><b> }</b></p><p> temp[i]=x;
82、</p><p> for(dispcount=0; dispcount <4; dispcount ++)</p><p> { P0=dispcode[temp [dispcount]];</p><p> P2=dispbit[dispcount];</p><p><b> Delay();</b>
83、</p><p><b> }</b></p><p><b> }</b></p><p> //******************************************************//</p><p> /**************************延時函
84、數(shù)************************************/</p><p> void delay(unsigned char t){</p><p> unsigned char k,j;</p><p> for(k=0;k<t;k++)</p><p> for(j=0;j<125;j++);<
85、;/p><p><b> }</b></p><p> //******************************************************//</p><p> //*********定時中斷服務(wù)程序1**********//</p><p> void t1(void) interru
86、pt 3 using 0{</p><p> TH1=(65536-4000)/256;</p><p> TL1=(65536-4000)%256;</p><p> timecount++; </p><p> freq=T0count*65536+TH0*256+TL0; </p><p> whil
87、e(timecount==250) </p><p> {TR0=0;TR1=0;</p><p><b> }</b></p><p><b> }</b></p><p> //******************************************************/
88、/</p><p> //*********定時中斷服務(wù)程序2**********//</p><p> void t0(void) interrupt 1 using 0{</p><p> T0count++;</p><p><b> }</b></p><p> //******
89、************************************************//</p><p> //*********主函數(shù)**********//</p><p> void main(void){</p><p> while(1){ </p><p> if(key==1)</p><
90、;p> { timecount=0;</p><p> T0count =0; </p><p> initial();</p><p><b> }</b></p><p><b> else</b></p><p><b> { x=freq;
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字頻率計畢業(yè)設(shè)計-- 數(shù)字頻率計設(shè)計
- 數(shù)字頻率計設(shè)計
- 畢業(yè)設(shè)計---數(shù)字頻率計
- 畢業(yè)設(shè)計--數(shù)字頻率計
- 數(shù)字頻率計畢業(yè)設(shè)計
- 畢業(yè)設(shè)計--數(shù)字頻率計
- 畢業(yè)設(shè)計----數(shù)字頻率計
- 數(shù)字頻率計
- 數(shù)字頻率計設(shè)計-畢業(yè)設(shè)計
- 數(shù)字頻率計實驗報告---數(shù)字頻率計的設(shè)計與制作
- 數(shù)字頻率計的設(shè)計
- 數(shù)字頻率計畢業(yè)論文--基于vhdl的數(shù)字頻率計的設(shè)計
- 畢業(yè)設(shè)計----數(shù)字頻率計的設(shè)計
- 數(shù)字頻率計課程設(shè)計
- 數(shù)字頻率計課程設(shè)計
- 課程設(shè)計--數(shù)字頻率計
- 數(shù)字頻率計設(shè)計【開題報告】
- 簡易數(shù)字頻率計設(shè)計論文
- 課程設(shè)計——數(shù)字頻率計
- 數(shù)字頻率計課程設(shè)計
評論
0/150
提交評論