單片機(jī)應(yīng)用系統(tǒng)畢業(yè)論文_第1頁
已閱讀1頁,還剩61頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  第1章 緒論</b></p><p>  本章從整體出發(fā)介紹了本設(shè)計(jì)的開發(fā)背景,數(shù)字頻率計(jì)的概述,課題開發(fā)工具及語言。</p><p>  1.1 課題開發(fā)背景 </p><p>  在電子技術(shù)中, 頻率是最基本的參數(shù)之一, 并且與許多電參量的測(cè)量方案、測(cè)量結(jié)果都有十分密切的關(guān)系,。因此, 頻率的測(cè)量就顯得更為重要

2、。測(cè)量頻率的方法有多種,其中電子計(jì)數(shù)器測(cè)量頻率具有精度高、使用方便、測(cè)量迅速, 以及便于實(shí)現(xiàn)測(cè)量過程自動(dòng)化等優(yōu)點(diǎn), 是頻率測(cè)量的重要手段之一。電子計(jì)數(shù)器測(cè)頻有兩種方式: 一是直接測(cè)頻法, 即在一定閘門時(shí)間內(nèi)測(cè)量被測(cè)信號(hào)的脈沖個(gè)數(shù); 二是間接測(cè)頻法, 如周期測(cè)頻法。直接測(cè)頻法適用于高頻信號(hào)的頻率測(cè)量, 間接測(cè)頻法適用于低頻信號(hào)的頻率測(cè)量。數(shù)字頻率計(jì)是一種基本的測(cè)量儀器,是用數(shù)字顯示被測(cè)信號(hào)頻率的儀器, 如配以適當(dāng)?shù)膫鞲衅? 可以對(duì)多種物理

3、量進(jìn)行測(cè)試, 因此, 它被廣泛應(yīng)用于航天、電子、測(cè)控等領(lǐng)域。隨著電子技術(shù)的快速發(fā)展, 它將被更廣泛的應(yīng)用到各個(gè)領(lǐng)域中去。目前市場(chǎng)上的頻率計(jì)產(chǎn)品很多,但基本上都是采用專用計(jì)數(shù)芯片如ICM7240、ICM7216和數(shù)字邏輯電路組成,由于這些芯片本身的工作頻率不高(如ICM7240 僅有15MHz 左右) ,從而限制了產(chǎn)品的工作頻率的提高, 遠(yuǎn)不能達(dá)到在一些特殊的場(chǎng)合需要測(cè)量很高的頻率的要求,而且測(cè)量精度也受到芯片本身極大的限制。</p

4、><p>  1.2 數(shù)字頻率計(jì)概述</p><p>  頻率是電子技術(shù)領(lǐng)域永恒的話題,電子技術(shù)領(lǐng)域離不開頻率,一旦離開頻率,電子技術(shù)的發(fā)展是不可想象的。為了得到性能更好的電子系統(tǒng),科研人員在不斷地研究著頻率,CPU就是用頻率的高低來評(píng)價(jià)其性能好壞,可見頻率在電子系統(tǒng)中的重要性。由于社會(huì)發(fā)展和科技發(fā)展的需要,信息傳輸和處理的要求的提高,對(duì)頻率的測(cè)量精度也提出了更高的要求,需要更高準(zhǔn)確度的時(shí)頻基

5、準(zhǔn)和更精密的測(cè)量技術(shù)。而頻率測(cè)量所能達(dá)到的精度,主要取決于作為標(biāo)準(zhǔn)頻率源的精度以及所使用的測(cè)量設(shè)備和測(cè)量方法。頻率測(cè)量技術(shù)發(fā)展非???。大量的工作在改進(jìn)、創(chuàng)造新的測(cè)頻原理、方法和儀器,以便以更高的精度、速度,自動(dòng)進(jìn)行測(cè)量和數(shù)據(jù)處理,并向多功能、小型化、高性價(jià)比方向發(fā)展。</p><p>  綜觀過去一二十年的國內(nèi)頻率計(jì)市場(chǎng),其生產(chǎn)單位有幾十家,主要集中在江蘇、四川、河北、上海等電子工業(yè)較發(fā)達(dá)的地區(qū),產(chǎn)品的型號(hào)品牌已

6、有上百種。這些國內(nèi)產(chǎn)品雖然在采用大規(guī)模集成電路和專用集成電路、改進(jìn)設(shè)計(jì)、強(qiáng)化多功能和小型化等方面都取得了很大進(jìn)展。近幾年隨著我國電子儀器業(yè)的迅速發(fā)展及對(duì)儀器儀表的需求不斷增長,生產(chǎn)廠商采用新器件和新技術(shù),使頻率計(jì)的便攜性智能性有很大提高,其測(cè)頻范圍、顯示分辨率、采樣時(shí)間靈活性等技術(shù)性能已接近或達(dá)到國外先進(jìn)水平??梢娖涫袌?chǎng)發(fā)展前景樂觀,電子儀器市場(chǎng)與全國經(jīng)濟(jì)前景一樣變的越來越好。</p><p>  1.3 課題開

7、發(fā)工具和語言</p><p>  1.3.1 Keil與Proteus仿真介紹</p><p>  Keil c51 程序調(diào)試</p><p>  Keilc51 不僅支持C語言,同時(shí)也可以對(duì)匯編進(jìn)行調(diào)試。KeilC51</p><p>  的編程及調(diào)試步驟主要由以下部分組成:</p><p>  (1)選用芯片(AT

8、89C51)。</p><p>  (2)根據(jù)電路圖設(shè)置引腳功能。</p><p>  (3)對(duì)程序進(jìn)行調(diào)試。</p><p>  (4)生成機(jī)器代碼(hex 文件)。</p><p><b>  Proteus仿真</b></p><p>  通過KeilC51 的程序調(diào)試把程序燒寫成機(jī)器語言就

9、可以在Proteus中仿真。在調(diào)試中因?yàn)殡娐方缑嫣。∪チ朔糯蟛糠?,直接采用輸入方波、正弦波、鋸齒波和三角波的信號(hào)來查看電路是否有異常及存在的問題,主要步驟分以下幾部分:</p><p>  (1)根據(jù)Protel所畫的電路圖連接各部分元件。</p><p>  (2)單片機(jī)載入機(jī)器代碼(hex 文件)。</p><p>  (3)設(shè)置內(nèi)置晶振為12M。</

10、p><p>  (4)分別輸入方波、正弦波、鋸齒波和三角波信號(hào)進(jìn)行測(cè)試。</p><p><b>  1.3.2開發(fā)語言</b></p><p>  選用開發(fā)語言應(yīng)注意以下兩點(diǎn):</p><p>  (1)生成的目標(biāo)代碼質(zhì)量高,程序運(yùn)行效率高。</p><p>  (2)可移植性好?;旧喜挥米餍薷木?/p>

11、能用于各種類型的計(jì)算機(jī)和各種操作系統(tǒng)。</p><p>  本系統(tǒng)選擇的語言是C語言,它有以下特點(diǎn)</p><p>  1、簡(jiǎn)潔緊湊、靈活方便 </p><p><b>  2、運(yùn)算符豐富 </b></p><p><b>  3、數(shù)據(jù)結(jié)構(gòu)豐富 </b></p><p>  

12、4、C是結(jié)構(gòu)式語言 </p><p>  5、C語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大 </p><p>  6、C語言允許直接訪問物理地址,可以直接對(duì)硬件進(jìn)行操作 </p><p>  7、生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高 一般只比匯編程序生成的目標(biāo)代碼效率低10へ20%。 </p><p>  8、C語言適用范圍大,可移植性好</p&

13、gt;<p>  開發(fā)利用C 語言進(jìn)行單片機(jī)應(yīng)用系統(tǒng)數(shù)字頻率計(jì)的設(shè)計(jì), 不僅編程簡(jiǎn)單, 精度高, 而且避免了匯編語言在進(jìn)行乘除法運(yùn)算時(shí)要考慮采用浮點(diǎn)運(yùn)算的要求。與匯編語言相比編程語句大大減少。</p><p>  第2章 方案論證與系統(tǒng)原理</p><p>  2.1 頻率測(cè)量常見方法</p><p>  (1)直接測(cè)頻法。直接測(cè)頻法是把被測(cè)頻率信號(hào)經(jīng)

14、脈沖形成電路后加到閘門的一個(gè)輸入端, 只有在閘門開通時(shí)間T (以秒計(jì)) 內(nèi), 被計(jì)數(shù)的脈沖被送到十進(jìn)制計(jì)數(shù)器進(jìn)行計(jì)數(shù)。設(shè)計(jì)數(shù)器的值為N , 由頻率定義式可以計(jì)算得到被測(cè)信號(hào)頻率為: f = N /T 。經(jīng)分析, 本測(cè)量在低頻段的相對(duì)測(cè)量誤差較大,增大T 可以提高測(cè)量精度。</p><p>  (2)組合法。直接測(cè)量周期法在低頻段精度高。組合測(cè)頻法是指在低頻時(shí)采用直接測(cè)量周期法測(cè)信號(hào)周期, 然后換算成頻率。這種方法

15、可以在一定程度上彌補(bǔ)方法①的不足, 但是難以確定最佳分測(cè)點(diǎn), 且電路實(shí)現(xiàn)較復(fù)雜。</p><p>  (3)倍頻法。直接測(cè)頻法在高頻段有著很高的精度??梢园杨l率測(cè)量范圍分成多個(gè)頻段, 使用倍頻技術(shù), 根據(jù)頻段設(shè)置倍頻系數(shù)將經(jīng)整形的低頻信號(hào)進(jìn)行倍頻后再進(jìn)行測(cè)量, 高頻段則進(jìn)行直接測(cè)量。</p><p>  (4)高精度恒誤差測(cè)頻法。通過對(duì)傳統(tǒng)測(cè)量方法的研究, 結(jié)合高精度恒誤差測(cè)量原理, 設(shè)計(jì)

16、一種測(cè)量精度與被測(cè)頻率無關(guān)的硬件測(cè)頻電路。本方法立足于快速的寬位數(shù)高精度浮點(diǎn)數(shù)字運(yùn)算。</p><p>  2.2可用實(shí)驗(yàn)方案介紹</p><p>  方案1: 采用頻率計(jì)模塊(如ICM 7216) 構(gòu)成, 特點(diǎn)是結(jié)構(gòu)簡(jiǎn)單, 量程可以自動(dòng)切換。ICM 7216 內(nèi)部帶有放大整形電路, 可以直接輸入模擬信號(hào)。外部振蕩部分選用一塊高精度晶振體和兩個(gè)低溫系數(shù)電容構(gòu)成10MHz 并聯(lián)振蕩電路。用轉(zhuǎn)

17、換開關(guān)選擇10m s, 011s, 1s, 10s 四種閘門時(shí)間, 同時(shí)量程自動(dòng)切換, 直接點(diǎn)亮L ED。</p><p>  方案2: 系統(tǒng)采用可編程邏輯器件(PLD, 如A TV2500) 作為信號(hào)處理及系統(tǒng)控制核心, 完成包括計(jì)數(shù)、門控、顯示等一系列工作。該方案利用了PLD 的可編程和大規(guī)模集成的特點(diǎn), 使電路大為簡(jiǎn)化, 但此題使用PLD 則不能充分發(fā)揮其特點(diǎn)及優(yōu)勢(shì), 并且測(cè)量精度不夠高, 導(dǎo)致系統(tǒng)性能價(jià)格

18、比降低、系統(tǒng)功能擴(kuò)展受到限制。</p><p>  方案3: 系統(tǒng)采用MCS251 系列單片機(jī)89C51 作為控制核心, 性能好, 價(jià)格便宜。由于單片機(jī)的計(jì)數(shù)頻率上限較低(12MHz 晶振時(shí)約500kHz) , 所以需對(duì)高頻被測(cè)信號(hào)進(jìn)行硬件欲分頻處理, 89C51 則完成運(yùn)算、控制及顯示功能。由于使用了單片機(jī), 使整個(gè)系統(tǒng)具有極為靈活的可編程性, 能方便地對(duì)系統(tǒng)進(jìn)行功能擴(kuò)展與改進(jìn)。綜上所述,權(quán)衡各方面的利弊,本系

19、統(tǒng)采用方案三。</p><p>  2.3 系統(tǒng)實(shí)現(xiàn)原理</p><p>  頻率計(jì)的主要功能是測(cè)量周期信號(hào)的頻率。頻率是單位時(shí)間(1s)內(nèi)信號(hào)發(fā)生周期變化的次數(shù)。如果我們能在給定的1s時(shí)間內(nèi)對(duì)信號(hào)脈沖計(jì)數(shù),并將計(jì)數(shù)結(jié)果顯示出來,就能讀取被測(cè)信號(hào)的頻率。數(shù)字頻率計(jì)首先必須獲得相對(duì)穩(wěn)定與準(zhǔn)確的時(shí)間,同時(shí)將被測(cè)信號(hào)轉(zhuǎn)換成幅度與波形均能被數(shù)字電路識(shí)別的脈沖信號(hào),然后通過計(jì)數(shù)器計(jì)算這一段時(shí)間間隔內(nèi)

20、的脈沖個(gè)數(shù),將其換算后顯示出來。這就是數(shù)字頻率計(jì)的基本原理。</p><p>  本頻率計(jì)的設(shè)計(jì)以AT89C51單片機(jī)為核心,利用它內(nèi)部的定時(shí)/計(jì)數(shù)器完成待測(cè)信號(hào)頻率的測(cè)量。單片機(jī)AT89C51內(nèi)部具有2個(gè)16位定時(shí)/計(jì)數(shù)器,定時(shí)計(jì)數(shù)器的工作可以由編程來實(shí)現(xiàn)定時(shí)、計(jì)數(shù)和產(chǎn)生計(jì)數(shù)溢出中斷要求的功能。在構(gòu)成為定時(shí)器時(shí),每個(gè)機(jī)器周期加1(使用12MHz時(shí)鐘時(shí),每lus加1),這樣以機(jī)器周期為基準(zhǔn)可以用來測(cè)量時(shí)間間隔。在

21、構(gòu)成為計(jì)數(shù)器時(shí),在外部引腳P3.4發(fā)生從1到0的跳變時(shí)計(jì)數(shù)器加1,這樣在計(jì)數(shù)閘門的控制下可以用來測(cè)量待測(cè)信號(hào)的頻率。外部輸人每個(gè)機(jī)器周期被采樣一次,這樣檢測(cè)一次從1到0的跳變至少需要2個(gè)機(jī)器周期(24個(gè)振蕩周期),所以最大計(jì)數(shù)速率為時(shí)鐘頻率的1/24(使用12MHz時(shí)鐘時(shí),最大計(jì)數(shù)速率為500KHz)。</p><p>  定時(shí)/計(jì)數(shù)器的工作由相應(yīng)的運(yùn)行控制位TR控制,當(dāng)TR置1,定時(shí)/計(jì)數(shù)器開始計(jì)數(shù);當(dāng)TR清0

22、,停止計(jì)數(shù).我們知道當(dāng)系統(tǒng)晶振頻率為12 MHz時(shí),即使定時(shí)/計(jì)數(shù)器工作在方式1,最長定時(shí)時(shí)間也不過65.536 ms,要獲得1s?(即1000 ms)的定時(shí)時(shí)間,屬于超長定時(shí),除了使用定時(shí)器功能外,還要使用軟件計(jì)數(shù)方法??墒褂枚〞r(shí)器T1方式1,定時(shí)時(shí)間可設(shè)為50 ms,軟件計(jì)數(shù)器初值為20。定時(shí)器T1溢出時(shí),軟件計(jì)數(shù)器減1,當(dāng)軟件計(jì)數(shù)器減到0時(shí),就獲得了1s的時(shí)間。用于測(cè)量頻率的計(jì)數(shù)器T0記錄T1每次中斷時(shí)的頻率,用軟件的方式將其累加

23、。單片機(jī)所能檢測(cè)的最大頻率為500kHz,所以設(shè)計(jì)了分頻電路,以降低頻率進(jìn)行更大頻率的檢測(cè)。計(jì)數(shù)完后將最后的頻率值乘以分頻值以得到要測(cè)量的實(shí)際頻率。最后經(jīng)數(shù)值轉(zhuǎn)換,輸入顯示電路。最后經(jīng)數(shù)值轉(zhuǎn)換,輸入顯示電路。本設(shè)計(jì)測(cè)量范圍為1HZ—30MHZ,測(cè)量誤差為±2HZ。</p><p>  單片機(jī)應(yīng)用系統(tǒng)有軟件和硬件兩部分組成。硬件是指單片機(jī)CPU、擴(kuò)展存儲(chǔ)器、輸入/輸出接口電路及設(shè)備等組成的電路系統(tǒng);軟件包

24、括監(jiān)控程序和各種應(yīng)用程序。本設(shè)計(jì)用到單片機(jī)的I/O接口、復(fù)位、晶振和P3.4口的特殊功能T0計(jì)數(shù)功能,存儲(chǔ)器的擴(kuò)展、I/O口的擴(kuò)展等功能沒用到,有待在以后的繼續(xù)深造中對(duì)其進(jìn)行擴(kuò)展及研究。單片機(jī)應(yīng)用系統(tǒng)的開發(fā)過程如圖2-1所示:</p><p><b>  圖2-1</b></p><p>  利用計(jì)算機(jī)程序設(shè)計(jì)、軟件工程,計(jì)算機(jī)(單片機(jī))在自動(dòng)控制、數(shù)據(jù)采集、數(shù)據(jù)處理

25、和數(shù)據(jù)顯示的方法設(shè)計(jì)本應(yīng)用系統(tǒng),并采用計(jì)算機(jī)硬件應(yīng)用系統(tǒng)一般的設(shè)計(jì)和研究方法,完成簡(jiǎn)單的硬件應(yīng)用系統(tǒng)的設(shè)計(jì)、選型、安裝及調(diào)試。</p><p>  頻率計(jì)應(yīng)用系統(tǒng)由整形電路、分頻電路、單片機(jī)、顯示電路和系統(tǒng)軟件所組成(如圖2-2)。</p><p><b>  圖2—2</b></p><p><b>  第3章 硬件設(shè)計(jì)</

26、b></p><p>  本章主要介紹系統(tǒng)相關(guān)芯片基礎(chǔ)知識(shí)、頻率計(jì)應(yīng)用系統(tǒng)的基本單元電路組成以及對(duì)基本電路的設(shè)計(jì)與實(shí)現(xiàn)。</p><p>  3.1 系統(tǒng)相關(guān)芯片介紹</p><p>  (1)單片機(jī)主控模塊。</p><p>  單片機(jī)有以下選型原則:</p><p>  1、單片機(jī)的系統(tǒng)適應(yīng)性。</p&

27、gt;<p>  單片機(jī)的系統(tǒng)適應(yīng)性是指能否用這個(gè)單片機(jī)完成對(duì)應(yīng)用系統(tǒng)的控制或數(shù)據(jù)處理的任務(wù),或增加一些附加的集成電路完成要求的任務(wù)。而不是一味的追求高性能。這是單片機(jī)選型最重要的原則。系統(tǒng)適應(yīng)性主要考慮以下問題:陽端口數(shù)目、中斷源和定時(shí)器、外圍端口部件、CPU吞吐量</p><p>  2、單片機(jī)的可開發(fā)性。</p><p>  單片機(jī)的可開發(fā)性是選擇單片機(jī)的一個(gè)非常重要的

28、因素。如果所選用的單片機(jī)沒有足夠的開發(fā)手段,那么該系統(tǒng)的開發(fā)將很難順利的進(jìn)行。</p><p>  3、單片機(jī)的可購買性</p><p>  單片機(jī)的購買途徑是否順暢以及購買量是否足夠。即是否直接從單片機(jī)生產(chǎn)廠家或其代理商處買到。當(dāng)我們用單片機(jī)來開發(fā)一個(gè)產(chǎn)品時(shí),勢(shì)必有其數(shù)量的要求,這就要求所選用的單片機(jī)也應(yīng)有數(shù)量的保證。另外,還要關(guān)注一下,此類的單片機(jī)是否仍然在生產(chǎn)中??傊?,遵循以上原則對(duì)

29、單片機(jī)進(jìn)行選擇,一般來說就可以選擇 圖3—1 AT89C51管腳圖</p><p>  出合適的用于具體的應(yīng)用系統(tǒng)的單片機(jī)。本設(shè)計(jì)采用AT89C51,引腳排列如圖3—1所示。</p><p>  選擇單片機(jī)AT89C51是因?yàn)橛芯幊天`活、易調(diào)試的特點(diǎn),而且AT89C51的引腳較多,利于電路的擴(kuò)展。它集成了CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器和多功能I/O口等一臺(tái)計(jì)

30、算機(jī)所需的基本功能部件,有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O) 端口,同時(shí)內(nèi)含兩個(gè)外中斷口,兩個(gè)16位可編程定時(shí)計(jì)數(shù)器,兩個(gè)全雙工串行通信口。其片內(nèi)集成了4KB的FLASHPEROM用來存放應(yīng)用程序,這個(gè)FLASH 程序存儲(chǔ)器除允許一般的編程器離線編程外,還允許在應(yīng)用系統(tǒng)中實(shí)現(xiàn)在線編程,并且還提供了對(duì)程序進(jìn)行三級(jí)加密保護(hù)的功能。AT89C51的另一個(gè)特點(diǎn)是工作速度更高,晶振頻率可高達(dá)24MHz ,一個(gè)機(jī)器周期僅為500ms,比

31、MCS251系列單片機(jī)快了一倍。</p><p>  (2)介紹74HC161</p><p>  74HC161是4位二進(jìn)制同步十六進(jìn)制加法計(jì)數(shù)器,除了有二進(jìn)制加法計(jì)數(shù)功能外,還具有異步清零、同步并行置數(shù) 、保持等功能。74HC161的邏輯電路圖和引腳排列圖如圖3—2所示,MR是異步清零端,LOAD是預(yù)置數(shù)控制端,D0、D1、D2、D3是預(yù)置數(shù)據(jù)輸人端,ENP和ENT是計(jì)數(shù)使能端,RCO

32、是進(jìn)位輸出端,它的設(shè)置為多片集成計(jì)數(shù)器的級(jí)聯(lián)提供了方便。</p><p>  圖3—2 74HC161的引腳排列圖</p><p>  74HC161的功能表如表1所示。由表可知,74HC161具有以下功能。</p><p>  表1 74HC161功能表</p><p>  74HC161的狀態(tài)表見表2:</p><

33、;p><b>  表2</b></p><p>  由狀態(tài)表可知它具有分頻的作用。若輸入計(jì)數(shù)器的CLK脈沖頻率為f,則從Q0端輸出脈沖頻率為f/2,通常也稱Q0端輸出信號(hào)是輸人計(jì)數(shù)脈沖 CLK的2分頻信號(hào),Q1端輸出信號(hào)是輸人計(jì)數(shù)脈沖CLK4分頻信號(hào),Q4端輸出信號(hào)是輸人計(jì)數(shù)脈沖CLK16分頻 信號(hào)。N進(jìn)制計(jì)數(shù)器可實(shí)現(xiàn)n分頻。本設(shè)計(jì)運(yùn)用74HC161的分頻作用實(shí)現(xiàn)了64分頻,具體見分頻

34、電路設(shè)計(jì)。</p><p>  (3)74LS02芯片</p><p>  如圖3—3所示,74LS02是由四個(gè)二端輸入的或非門組成的集成芯片,A1—A和B1—B4為輸入端,Y1—Y4為輸出端, </p><p>  VCC為電源,GND為接地端。</p><p>  圖

35、 圖3—3 74LS02引腳圖</p><p>  74LS02的功能表見表3,在本設(shè)計(jì)中用到其中的兩個(gè)或 </p><p>  非門,具體用法見控制電路的設(shè)計(jì)。</p><p><b>  表 3</b></p><p>  (4)介紹74LS08<

36、;/p><p>  如圖3—4所示,74LS08是由四個(gè)二端輸入的與門組成的集成芯片,A1—A和B1—B4為輸入端,Y1—Y4為輸出端,VCC為電源,GND為接地端。</p><p>  圖3—4 74LS08管腳圖</p><p>  74LS08的功能表見表4,在本設(shè)計(jì)中用到其中的兩個(gè)與門,具體用法見控制電路的設(shè)計(jì)。</p><p><

37、;b>  表 4</b></p><p>  3.2 硬件電路設(shè)計(jì)</p><p>  3.2.1 時(shí)鐘電路設(shè)計(jì)</p><p>  時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需的時(shí)鐘信號(hào),時(shí)序是指令執(zhí)行中各個(gè)信號(hào)之間的相互關(guān)系。單片機(jī)本身就如同一個(gè)復(fù)雜的同步時(shí)序電路,為了保證同步工作方式的實(shí)現(xiàn),電路要在唯一的時(shí)鐘信號(hào)控制下嚴(yán)格地按照時(shí)序進(jìn)行工作。 <

38、;/p><p>  AT89C51內(nèi)部帶有時(shí)序電路,因此只需要在片外通過XTAL1和XTAL2引腳引入定時(shí)控制元件,就可以構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。在AT89C51的內(nèi)部有一個(gè)增益反相放大器,而在外部,XTAL1和XTAL2之間接一個(gè)晶體振蕩器和微調(diào)電路。</p><p>  我們?cè)诒驹O(shè)計(jì)中使用的振蕩器的頻率一般要求保持在1.2~12MHz之間,并且它的頻率可以向兩端延伸, 在高端可以達(dá)到40

39、MHz,低端可以達(dá)到0Hz,為了方便,我們選用12MHZ的晶振做定時(shí)控制元件。如圖3—5所示,諧振電路有晶振和電容構(gòu)成。因?yàn)殡娙莸拇笮∮绊懻袷幤鞯姆€(wěn)定性和起振的快速性,所以C1、C2選用10~33pF,并且將30pF的電容作為微調(diào)電容。為了保證振蕩器振蕩的穩(wěn)定性,在設(shè)計(jì)時(shí)晶振、電容等均應(yīng)盡可能靠近芯片,以減少分布電容。</p><p>  圖3—5 AT89C51時(shí)序電路</p><p>

40、;  3.2.2 復(fù)位電路設(shè)計(jì)</p><p>  單片機(jī)的復(fù)位就是對(duì)單片機(jī)的初始化,就是讓程序重新開始執(zhí)行,也就是說讓單片機(jī)的PC寄存器初始化為0000H。一般的初始化是指進(jìn)入程序的正常初始化,但是當(dāng)程序出錯(cuò)或者操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為了擺脫困境也需要按復(fù)位鍵使系統(tǒng)重新啟動(dòng)。復(fù)位方式有自動(dòng)復(fù)位和手動(dòng)復(fù)位兩種方式。我們?cè)诒驹O(shè)計(jì)中采用手動(dòng)復(fù)位的方式,也就是采用按鍵復(fù)位的方式。</p><

41、p>  單片機(jī)一般設(shè)置引腳RST為復(fù)位信號(hào)的輸入端。并且高電平有效,其有效時(shí)間應(yīng)該持續(xù)24個(gè)振蕩脈沖周期以上。我們?cè)谠O(shè)計(jì)中使用12MHZ的晶振,則復(fù)位信號(hào)的持續(xù)時(shí)間應(yīng)超過2μs才能完成復(fù)位動(dòng)作,其復(fù)位電路如圖3—6。</p><p>  圖3—6 AT89C51按鍵復(fù)位電路</p><p>  3.2.3 分頻電路設(shè)計(jì)</p><p>  在頻率檢測(cè)時(shí),用到單

42、片機(jī)的定時(shí)/計(jì)數(shù)器,采12M晶振,最大定時(shí)65536µs。本設(shè)計(jì)用軟件方式將定時(shí)擴(kuò)大到1秒(具體見軟件設(shè)計(jì)部分),以提高頻率的精度。計(jì)數(shù)器最大可存放數(shù)值65535,考慮到單片機(jī)的最大檢測(cè)能力為500kHz,要檢測(cè)更高的頻率就需要設(shè)置分頻電路了。故將信號(hào)頻率進(jìn)行分頻后進(jìn)入單片機(jī),繼而使檢測(cè)頻率得到擴(kuò)大。</p><p>  74HC161是十六進(jìn)制計(jì)數(shù)器,同時(shí)也有分頻的作用,一個(gè)74HC161可以實(shí)現(xiàn)最大

43、16分頻,用兩片結(jié)合可最大實(shí)現(xiàn)256分頻,本次設(shè)計(jì)采用兩片74HC161(如圖3—7)進(jìn)行了64分頻,使檢測(cè)頻率擴(kuò)大到500000*64HZ略大于30MHz,滿足了設(shè)計(jì)要求。</p><p>  如圖3—7所示,高頻率從U2的CLK端口輸入,經(jīng)U2十六分頻后從RCO進(jìn)位端輸出。十六分頻的信號(hào)再進(jìn)入U(xiǎn)3的CLK輸入端,從U3的Q1輸出實(shí)現(xiàn)4分頻,兩片合計(jì)將高頻信號(hào)進(jìn)行了64分頻。</p><p&

44、gt;  如圖3—8所示,為分頻后的波形圖。在分頻電路中,只用到了74HC161的分頻功能,置數(shù)、清零等功能沒有用到,因此74HC161的MR、LOAD、ENT(U2除外)和ENP都接高電平如圖3—7所示。信號(hào)的分頻與否需要進(jìn)行控制,U2的ENT端就作為分頻的控制端,由控制電路控制。</p><p><b>  圖3—7 分頻電路</b></p><p>  圖3—8

45、 64分頻波形</p><p>  3.2.4 分頻控制電路</p><p>  在分頻電路中已經(jīng)敘述過,檢測(cè)信號(hào)是否進(jìn)行分頻,由分頻控制電路控制。分頻電路如圖3—9所示。它由兩個(gè)與門、一個(gè)或非門和一個(gè)非門組成。在實(shí)際電路中,兩個(gè)與門由7408芯片提供,一個(gè)或門由7402芯片提供,一個(gè)非門也由7402芯片提供,具體是將7402芯片的一個(gè)或非門的一個(gè)輸入端直接接地,剩下一個(gè)輸入端和一個(gè)輸出

46、端就組成了一個(gè)非門。</p><p>  信號(hào)的控制由軟件和硬件兩部分完成。如圖3—9所示,未分頻信號(hào)由U5的1端口進(jìn)入,分頻信號(hào)由U7的1端口進(jìn)入。當(dāng)檢測(cè)信號(hào)為低頻時(shí)通過軟件使單片機(jī)的P2.5口輸出低電平,此時(shí)U7將1端的分頻信號(hào)斷開,低電平經(jīng)過U6非門變?yōu)楦唠娖?,使得U5的1端口的低頻信號(hào)通過,再經(jīng)過U4送入T0計(jì)數(shù)端口進(jìn)行頻率的計(jì)數(shù)。首先P2.5為高電平信號(hào),此時(shí)U7通路U5開路,信號(hào)進(jìn)入分頻電路,分頻后從

47、U7的1端口送入,最后進(jìn)入單片機(jī)的T0口進(jìn)行信號(hào)檢測(cè),檢測(cè)的信號(hào)通過軟件的方式還原(具體見第四章軟件設(shè)計(jì))。當(dāng)頻率很低時(shí),甚至分頻后為零,則使P2.5為低電平信號(hào)信號(hào)直接進(jìn)入單片機(jī)</p><p>  圖3—9 分頻控制電路</p><p>  3.2.5顯示電路設(shè)計(jì)</p><p>  本設(shè)計(jì)采用LED數(shù)碼管顯示,首先對(duì)數(shù)碼管進(jìn)行簡(jiǎn)要的介紹,如圖3—10所示為LE

48、D數(shù)碼管的外部及內(nèi)部結(jié)構(gòu)。LED數(shù)碼管是由發(fā)光二極管顯示字段的顯示器件,它由8個(gè)發(fā)光二極管構(gòu)成,通過不同的組合可顯示0到9,A到F及其小數(shù)點(diǎn)“.”等字符。</p><p>  數(shù)碼管通常有共陰極和共陽極兩種接法。共陰極數(shù)碼管的發(fā)光二極管陰極必須接低電平,當(dāng)某發(fā)光二極管的陽極為高電平(一般為+5V)時(shí),此二極管點(diǎn)亮;共陽極數(shù)碼管的發(fā)光二極管是陽極接到高電平,對(duì)于需點(diǎn)亮的發(fā)光二極管使其陰極接低電平(一般為地)即可。顯

49、然,要顯示某字形就應(yīng)使此字形的相應(yīng)字形點(diǎn)亮,實(shí)際就是送一個(gè)用不同電平組合代表的數(shù)據(jù)至數(shù)碼管。一般共陽極數(shù)碼管必須外接電阻,而共陰極不一定外接電阻。</p><p>  LED顯示器有靜態(tài)顯示和動(dòng)態(tài)顯示兩種顯示方式。</p><p>  圖3—10 LED數(shù)碼管</p><p>  本設(shè)計(jì)采用了兩個(gè)四位數(shù)碼管顯示,采用了四位一體的共陽極數(shù)碼管如圖3-11所示,A—G為

50、斷碼輸入端,DP為小數(shù)點(diǎn),1—4為位碼輸入??偵鲜?,顯示采用動(dòng)態(tài)顯示,為增大顯示亮度,設(shè)置了上拉電阻以加大驅(qū)動(dòng)電流。數(shù)碼管的段選端接單片機(jī)的P1口,1—4位選端分別接單片機(jī)的P2.0、P2.1、P2.2、P2.3。數(shù)字頻率計(jì)的顯示只需0—9十個(gè)數(shù)字,0—9的段碼輸入分別為十六進(jìn)制數(shù):C0H、F9H、A4H、B0H、99H、92H、82H、F8H、80H、90H。</p><p>  圖3—11 四位一體LED數(shù)

51、碼管</p><p><b>  第4章 軟件設(shè)計(jì)</b></p><p>  本章主要介紹整體設(shè)計(jì)思路及流程圖,相關(guān)程序的分析及流程圖,仿真軟件及仿真過程。</p><p><b>  4.1 整體設(shè)計(jì)</b></p><p>  硬件系統(tǒng)的設(shè)計(jì)完成后,就要在其基礎(chǔ)上設(shè)計(jì)系統(tǒng)所需要的軟件系統(tǒng),系統(tǒng)

52、功能是軟硬件共同實(shí)現(xiàn)的,兩者缺一不可。由于軟件的可伸縮性,最終實(shí)現(xiàn)的系統(tǒng)功能可強(qiáng)可弱,差別很大。因此,在硬件結(jié)構(gòu)確定后,軟件是系統(tǒng)功能強(qiáng)弱的決定性因素。</p><p>  軟件是在硬件的基礎(chǔ)上來滿足用戶需求的系統(tǒng)功能控制邏輯,對(duì)于單片機(jī)如果沒有軟件系統(tǒng),系統(tǒng)功能無法實(shí)現(xiàn)。所以軟件系統(tǒng)的正確與否是實(shí)現(xiàn)系統(tǒng)功能的關(guān)鍵。軟件系統(tǒng)不僅要正確還要能準(zhǔn)確實(shí)現(xiàn)系統(tǒng)的功能要求。對(duì)于軟件系統(tǒng)設(shè)計(jì)比硬件的設(shè)計(jì)還要重要。</p

53、><p>  本設(shè)計(jì)的軟件系統(tǒng)采用模塊化的設(shè)計(jì)思想來實(shí)現(xiàn)測(cè)頻。模塊化設(shè)計(jì)是將一個(gè)大的程序按功能分割成一些小的模塊,各個(gè)模塊相對(duì)獨(dú)立、功能單一、結(jié)構(gòu)清晰、接口簡(jiǎn)單。利用這種模塊化設(shè)計(jì)有許多優(yōu)點(diǎn):減少了程序設(shè)計(jì)的復(fù)雜性;提高了元件的可靠性;縮短了開發(fā)周期;避免程序開發(fā)的重復(fù)勞動(dòng);易于維護(hù)和功能擴(kuò)展。本設(shè)計(jì)的軟件功能模塊分為:主程序模塊、延時(shí)子程序模塊、定時(shí)/計(jì)數(shù)器初始化子程序模塊、計(jì)數(shù)器計(jì)數(shù)轉(zhuǎn)換子程序模塊、顯示數(shù)字轉(zhuǎn)換子

54、程序模塊、中斷服務(wù)程序模塊、顯示及分頻轉(zhuǎn)換子程序模塊等組成。其流程圖4—1如下:</p><p>  圖4—1 程序流程圖</p><p>  本設(shè)計(jì)中中斷主要實(shí)現(xiàn)50ms的計(jì)時(shí),下面列出了中斷服務(wù)程序的流程圖。</p><p>  圖4—2 T1中斷服務(wù)程序</p><p>  本章主要以顯示及分頻轉(zhuǎn)換子程序模塊和中斷服務(wù)程序模塊為例介

55、紹功能的實(shí)現(xiàn)。</p><p><b>  4.2 程序分析</b></p><p>  4.2.1 顯示及分頻轉(zhuǎn)換子程序</p><p>  顯示及分頻轉(zhuǎn)換子程序如下:</p><p>  unsigned int zhuanhuan(unsigned int i)</p><p><b&

56、gt;  { </b></p><p>  short j; //定義短整型數(shù)j</p><p>  switch(i) //i為要顯示的數(shù)字</p><p><b>  { </b></p><p>  case 0: j=0xC0

57、; break; //0的段碼</p><p>  case 1: j=0xF9; break; //1的段碼</p><p>  case 2: j=0xA4; break; //2的段碼</p><p>  case 3: j=0xB0; break; //3的段碼</p><p>  case 4: j=0x99; break;

58、 //4的段碼</p><p>  case 5: j=0x92; break; //5的段碼</p><p>  case 6: j=0x82; break; //6的段碼</p><p>  case 7: j=0xF8; break; //7的段碼</p><p>  case 8: j=0x80; break; //8的段碼&

59、lt;/p><p>  case 9: j=0x90; break; //9的段碼</p><p><b>  }</b></p><p>  return(j); //將要顯示的段碼返回調(diào)用此程序處</p><p><b>  }</b></p><p

60、>  void suan(unsigned long i)</p><p><b>  {</b></p><p>  unsigned int a=0;</p><p>  if(P_H==1) //判斷分頻控制端,低電平表示沒分頻,</p><p>  {

61、 高電平表示已分頻</p><p>  i=i*64; //若分頻,檢測(cè)值乘以64</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  a=i/1000; //取千位的數(shù)字</p>

62、<p>  P1=zhuanhuan(a); //調(diào)用zhuanhuan()子程序</p><p>  P_A=1; //顯示第一位</p><p>  delay(124); //延時(shí)1ms</p><p>  P_A=0; //第一位熄滅</p><p>  a

63、=(i%1000)/100; //取百位的數(shù)字</p><p>  P1=zhuanhuan(a);</p><p>  P_B=1; //顯示第二位</p><p>  delay(124);</p><p>  P_B=0; //第二位熄滅</p><p>  

64、a=(i%100)/10; //取個(gè)位的數(shù)字</p><p>  P1=zhuanhuan(a);</p><p>  P_C=1; //顯示第三位</p><p>  delay(124);</p><p>  P_C=0; //第三位熄滅</p><p> 

65、 a=i%10; //取個(gè)位的數(shù)字</p><p>  P1=zhuanhuan(a);</p><p>  P_D=1; //顯示第四位</p><p>  delay(124);</p><p>  P_D=0; //第四位熄滅</p><p>

66、<b>  }</b></p><p><b>  }</b></p><p>  Zhuanhuan()子程序?yàn)槎未a選擇子程序。當(dāng)要顯示數(shù)字時(shí),可調(diào)用此程序,將要顯示數(shù)字的段碼調(diào)出,付給P1口以顯示。Suan()子程序?yàn)榉诸l控制及顯示子程序。該程序把檢測(cè)到的頻率數(shù)值轉(zhuǎn)換成十進(jìn)制數(shù),通過調(diào)用Zhuanhuan()子程序調(diào)出相應(yīng)的段碼,再付給P1口

67、以顯示。當(dāng)程序執(zhí)行到Suan()子程序時(shí),首先把檢測(cè)的頻率值付給i,此程序中的i便是檢測(cè)到的頻率值。以下各指令的作用見程序注釋。While(1)表示進(jìn)入死循環(huán),這樣是為了把檢測(cè)到的頻率實(shí)時(shí)的顯示,因此第一次檢測(cè)完頻率后,若頻率發(fā)生變化程序?qū)⒉辉贆z測(cè),這樣方便某時(shí)刻頻率的記錄,要再檢測(cè)時(shí),只需按下復(fù)位鍵便可檢測(cè)下一個(gè)頻率。</p><p>  4.2.2 中斷服務(wù)程序</p><p><

68、;b>  中斷服務(wù)程序如下:</b></p><p>  void T1_I(void) interrupt 3 using 0</p><p><b>  {</b></p><p><b>  TR0=0;</b></p><p><b>  TR1=0;</b

69、></p><p><b>  TH1=0x3C;</b></p><p><b>  TL1=0xB0;</b></p><p><b>  TF0=0;</b></p><p><b>  TF1=0;</b></p><p&

70、gt;<b>  }</b></p><p>  void T1_I(void) interrupt 3 using 0位定時(shí)器T1的中斷服務(wù)程序,主要作用是實(shí)現(xiàn)定時(shí)的準(zhǔn)確,減少定時(shí)的誤差,同時(shí)還可以使檢測(cè)的頻率數(shù)比較準(zhǔn)確。當(dāng)T1定時(shí)溢出時(shí),相應(yīng)的中斷標(biāo)志位TF1置1,程序立即轉(zhuǎn)向相應(yīng)的中斷服務(wù)程序,服務(wù)程序執(zhí)行完以后,返回中斷處繼續(xù)當(dāng)前的程序。中斷服務(wù)程序的作用非常重要,它使檢測(cè)頻率的精度

71、大大提高。由于每執(zhí)行一條語句都要一定的時(shí)間,若采用其他方法,在執(zhí)行語句時(shí)在時(shí)間上便會(huì)出現(xiàn)較大的誤差,使得檢測(cè)的頻率誤差較大。</p><p>  以上就顯示及分頻轉(zhuǎn)換子程序模塊和中斷服務(wù)程序模塊為例介紹了本設(shè)計(jì)的實(shí)現(xiàn)方法,并詳細(xì)介紹了程序指令的作用,這已經(jīng)基本可以達(dá)到理解程序的要求,至于其他程序本章不再介紹。</p><p><b>  4.3 仿真</b></

72、p><p>  本次設(shè)計(jì)使用Proteus 軟件搭建仿真電路, 用Keil 軟件進(jìn)行了軟件設(shè)計(jì)與調(diào)試。經(jīng)過Keil 軟件調(diào)試, 在沒有差錯(cuò)的情況下, 生成HEX 文件, 此時(shí)源程序和HEX 文件應(yīng)保存在同一目錄下, 否則仿真會(huì)出錯(cuò)。然后把原理圖的Sourse 目錄加上源程序, 雙擊AT89C51 芯片, 并在目錄上加上HEX 文件, 這時(shí)已經(jīng)把生成好的文件燒在了芯片中, 注意每打一次原理圖進(jìn)行仿真時(shí), 必須重新設(shè)置S

73、ourse 文件和HEX。按照以上步驟將仿真軟件調(diào)整好之后就可以將脈沖頻率設(shè)置好輸入到仿真軟件內(nèi), 得到最后的仿真結(jié)果從圖仿真結(jié)果中可以看出, 脈沖頻率信號(hào)通過分頻計(jì)數(shù), 較為成功的在數(shù)碼管上顯示出來。雖然有一定的誤差, 但與其他方法相比, 它所需要的外圍器件較少, 適用于嵌入式系統(tǒng), 得到的頻率計(jì)領(lǐng)域較寬, 精度較高, 是一種較為成功的設(shè)計(jì)方案。下面介紹仿真過程。</p><p>  4.3.1 Keil的使用

74、</p><p>  在電腦上安裝好keil軟件后,打開軟件進(jìn)入程序設(shè)計(jì)界面,見下圖:</p><p>  新建文件并輸入源程序。</p><p>  保存文件,輸入保存的文件名,注意這里要加后綴,本設(shè)計(jì)采用的是C程序,所以后綴加“.c”。本次文件名定為“pinlvji.c”。如圖:</p><p>  這樣文件已經(jīng)保存頻率計(jì)文件夾里了,接下

75、來要新建工程。選擇頂部菜單中project下拉菜單的new project...。</p><p>  保存工程,軟件會(huì)默認(rèn)路徑為源程序文件夾。</p><p>  保存工程后,會(huì)彈出選擇單片機(jī)菜單欄,選擇Atmel中的AT89C51。</p><p>  此時(shí)工程已建好,在左邊工程欄中選擇Target 1中的source group 1,添加開始時(shí)新建的文件。&l

76、t;/p><p>  文件添加好后,工程框內(nèi)便會(huì)由源程序了。</p><p>  設(shè)置輸出HEX文件。</p><p>  接下來進(jìn)行編譯,若程序有邏輯或語法錯(cuò)誤,keil軟件會(huì)自動(dòng)檢測(cè)出來。然后進(jìn)行修改,再編譯,重復(fù)這個(gè)過程直到編譯沒有錯(cuò)誤,此時(shí)系統(tǒng)也將生成HEX文件,如下圖:</p><p>  這時(shí)候程序已沒有語法和邏輯錯(cuò)誤,但不表明能實(shí)現(xiàn)

77、預(yù)期結(jié)果,這就需要結(jié)合proteus軟件進(jìn)行仿真,以實(shí)現(xiàn)預(yù)期結(jié)果。</p><p>  4.3.2 Proteus的使用</p><p>  電腦上安裝好protues軟件后,打開軟件進(jìn)入電路設(shè)計(jì)界面。</p><p>  把用到的元件添加到左面的元件欄中,如下圖:</p><p>  添加元件后,元件欄中便有所有需要的元件并可進(jìn)行電路設(shè)計(jì)。

78、</p><p>  將所需的元件添加完后就可進(jìn)行電路布局了。本次設(shè)計(jì)布局見附錄Ⅰ。</p><p>  電路圖布置好后將keil中生成的HEX文件添加到單片機(jī)中。首先雙擊單片機(jī)。</p><p>  點(diǎn)擊Program File欄的文件包,添加HEX文件。</p><p>  之后便可以仿真了,但沒有出現(xiàn)預(yù)期結(jié)果時(shí),就要檢查程序的功能實(shí)現(xiàn)是

79、否正確,還可以添加omf文件,查看程序運(yùn)行情況以檢查出現(xiàn)錯(cuò)誤的原因,具體這里就不再介紹。如下圖:</p><p>  下圖為仿真的結(jié)果,是將200Hz的正弦波檢測(cè)并顯示出來的結(jié)果。</p><p>  第5章 單片機(jī)應(yīng)用系統(tǒng)調(diào)試</p><p>  單片機(jī)應(yīng)用系統(tǒng)的硬件調(diào)試和軟件調(diào)試是分不開的,許多硬件故障是在調(diào)試軟件時(shí)才發(fā)現(xiàn)的。但通常是先排除系統(tǒng)中明顯的硬件故障后

80、才和軟件結(jié)合起來調(diào)試。</p><p>  5.1常見的硬件故障</p><p><b>  (1)元器件失效</b></p><p>  造成失效的有兩方面原因:一是器件本身已損壞或者性能不符合要求;二是由于組裝錯(cuò)誤造成的元器件失效。如電解電容、二極管的極性錯(cuò)誤,集成塊安裝方向錯(cuò)誤等。</p><p><b>

81、;  (2)邏輯錯(cuò)誤</b></p><p>  由于設(shè)計(jì)錯(cuò)誤和加工過程中的工藝性錯(cuò)誤所造成的,包括錯(cuò)線,開路,短路,相位錯(cuò)等幾種,其中短路是最常見的故障。在印刷電路板布線密度高的情況下 ,極易因工藝原因造成短路。</p><p><b>  (3)可靠性差</b></p><p>  引起系統(tǒng)不可靠的因素很多,如金屬化孔、接插件接

82、觸不良會(huì)造成系統(tǒng)時(shí)好時(shí)壞;內(nèi)部和外部的干擾、電源紋波系數(shù)過大、器件負(fù)載過大等造成邏輯電平不穩(wěn)定;另外,走線和布局的不合理等也會(huì)引起系統(tǒng)可靠性差。</p><p><b>  (4)電源故障</b></p><p>  若樣機(jī)中存在電源故障,則加電后將造成器件損壞。電源的故障包括:電壓值不符合設(shè)計(jì)要求,電源引出線和插座不對(duì)應(yīng),電源功率不足、負(fù)載能力差。</p>

83、;<p><b>  1、硬件調(diào)試方法</b></p><p><b>  (1)脫機(jī)調(diào)試</b></p><p>  脫機(jī)調(diào)試是在樣機(jī)加電之前,先用萬用表等工具,根據(jù)硬件電器原理圖和裝配圖仔細(xì)檢查樣機(jī)線路的正確性,并核對(duì)元件的型號(hào)、規(guī)格和安裝是否符合要求。應(yīng)特別注意電源的走線,防止電源之間的短路和極性錯(cuò)誤,并重點(diǎn)檢查擴(kuò)展系統(tǒng)是否存

84、在相互間的短路或與其他信號(hào)線的短路。</p><p>  對(duì)于樣機(jī)所用的電源事先必須單獨(dú)調(diào)試,調(diào)試好后,檢查其電壓值、負(fù)載能力、極性等均符合要求,才能加到系統(tǒng)的各個(gè)部件上。在不插片子的情況下,加電檢查各插件上引腳的電位,仔細(xì)測(cè)量各地點(diǎn)電位是否正常,尤其應(yīng)注意單片機(jī)插座上的各點(diǎn)電位是否正常,若有高壓,聯(lián)機(jī)時(shí)將會(huì)損壞開發(fā)機(jī)。</p><p><b>  (2)聯(lián)機(jī)調(diào)試</b&g

85、t;</p><p>  聯(lián)機(jī)前先斷電,把仿真機(jī)的仿真插頭插到樣機(jī)的單片機(jī)插座上,檢查一下開發(fā)機(jī)與樣機(jī)之間的電源、接地是否良好,若一切正常,即可打開電源。通電后執(zhí)行開發(fā)機(jī)讀寫指令,對(duì)用戶樣機(jī)的存儲(chǔ)器、I/O端口進(jìn)行讀寫操作和邏輯檢查,在用戶系統(tǒng)的樣機(jī)調(diào)試好后,可以插上用戶系統(tǒng)的其他外圍部件,并對(duì)其進(jìn)行初步調(diào)試。對(duì)于工作不穩(wěn)定的問題一定要認(rèn)真查出原因,加以排除。</p><p>  5.2

86、軟件調(diào)試方法</p><p>  軟件調(diào)試與所用的軟件結(jié)構(gòu)和程序設(shè)計(jì)技術(shù)有關(guān)。如果采用模塊程序設(shè)計(jì)技術(shù),則逐個(gè)模塊調(diào)好以后,再進(jìn)行系統(tǒng)程序總調(diào)試。</p><p>  對(duì)于模塊結(jié)構(gòu)程序,要一個(gè)個(gè)子程序分別調(diào)試。調(diào)試子程序時(shí),一定要符合現(xiàn)場(chǎng)環(huán)境,即入口條件和出口條件。調(diào)試的手段可采用單步運(yùn)行方式和斷點(diǎn)運(yùn)行方式,通過檢查用戶系統(tǒng)CPU的現(xiàn)場(chǎng)、RAM的內(nèi)容和I/O口的狀態(tài),檢測(cè)程序執(zhí)行結(jié)果是否符

87、合設(shè)計(jì)要求。通過檢測(cè),可以發(fā)現(xiàn)程序中的死循環(huán)錯(cuò)誤、機(jī)器碼錯(cuò)誤及轉(zhuǎn)移地址的錯(cuò)誤,同時(shí)也可以發(fā)現(xiàn)用戶系統(tǒng)中的硬件故障、軟件算法及硬件設(shè)計(jì)錯(cuò)誤。在調(diào)試過程中不斷調(diào)整用戶系統(tǒng)的軟件和硬件,逐步通過一個(gè)個(gè)程序模塊。</p><p>  各程序模塊通過后,可以把各功能塊聯(lián)合起來一起進(jìn)行整體程序綜合調(diào)試。在這階段若發(fā)生故障,可以考慮各子程序在運(yùn)行時(shí)是否破壞現(xiàn)場(chǎng),緩沖單元是否發(fā)生沖突,零位的建立和清除在設(shè)計(jì)上有否失誤,堆棧區(qū)域有

88、否溢出,輸入設(shè)備的狀態(tài)是否正常,等等。若用戶系統(tǒng)是在開發(fā)系統(tǒng)的監(jiān)控程序下運(yùn)行時(shí),還要考慮用戶緩沖單元是否和監(jiān)控程序的工作單元發(fā)生沖突。</p><p>  單步和斷點(diǎn)調(diào)試后,還應(yīng)進(jìn)行連續(xù)調(diào)試,這是因?yàn)閱尾竭\(yùn)行只能驗(yàn)證程序的正確與否,而不能確定定時(shí)精度、CPU的實(shí)時(shí)響應(yīng)等問題。待全部完成后,應(yīng)反復(fù)運(yùn)行多次,除了觀察穩(wěn)定性之外,還要觀察用戶系統(tǒng)的操作是否符合原始設(shè)計(jì)要求、安排的用戶操作是否合理等,必要時(shí)還要作適當(dāng)修正

89、。在全部調(diào)試和修改完成后,將用戶軟件固化于EPROM中,插入用戶樣機(jī)后,用戶系統(tǒng)即能脫離開發(fā)機(jī)獨(dú)立工作,至此系統(tǒng)研制完成。</p><p>  5.3 誤差來源分析</p><p>  (1)晶振的準(zhǔn)確度會(huì)影響一秒定時(shí)的準(zhǔn)確度,從而引起測(cè)量結(jié)果誤差。</p><p>  (2)單片機(jī)計(jì)數(shù)速率的限制引起誤差。被測(cè)信號(hào)頻率越高,測(cè)量誤差越大,且所測(cè)信號(hào)頻率不能超過500

90、kHz 。這是因?yàn)橛密浖姆椒ㄊ箚纹瑱C(jī)定時(shí)1秒時(shí),測(cè)量頻率最大為25kHz×20Hz,當(dāng)所測(cè)頻率越接近25kHz×20Hz時(shí),測(cè)量結(jié)果與實(shí)際頻率的誤差就越大。</p><p>  (3)原理上存在±1 誤差。由于該設(shè)計(jì)是在計(jì)數(shù)門限時(shí)間一秒內(nèi)的頻率信號(hào)脈沖數(shù),所以定時(shí)開始時(shí)的第一個(gè)脈沖和定時(shí)時(shí)間到時(shí)的最后一個(gè)脈沖信號(hào)是否被記錄,存在隨機(jī)性。這種誤差對(duì)測(cè)量頻率低的信號(hào)影響較大。</

91、p><p>  5.4 減小誤差措施</p><p>  (1)選用頻率較高和穩(wěn)定性好的晶振。如選12 MHz的晶振可使測(cè)量范圍擴(kuò)大,穩(wěn)定性好的晶振。</p><p>  (2)測(cè)量頻率較高的信號(hào)時(shí),可先對(duì)信號(hào)進(jìn)行分頻,再進(jìn)行測(cè)量。</p><p>  (3)延長門限時(shí)間,減少原理上±1 的相對(duì)誤差。</p><p&

92、gt;  (4)可多次測(cè)量取平均值。</p><p><b>  第6章 總結(jié)</b></p><p>  本文通過運(yùn)用單片機(jī), Proteus 及keil仿真軟件成功地實(shí)現(xiàn)了數(shù)字頻率計(jì)的設(shè)計(jì)。數(shù)字頻率計(jì)是一種基本的測(cè)量儀器,是用數(shù)字顯示被測(cè)信號(hào)頻率的儀器, 如配以適當(dāng)?shù)膫鞲衅? 可以對(duì)多種物理量進(jìn)行測(cè)試, 因此, 它被廣泛應(yīng)用于航天、電子、測(cè)控等領(lǐng)域。隨著電子技術(shù)的

93、快速發(fā)展, 它將被更廣泛的應(yīng)用到各個(gè)領(lǐng)域中去。</p><p>  目前市場(chǎng)上的頻率計(jì)功能很多,價(jià)格不菲,然而在很多實(shí)際應(yīng)用場(chǎng)合,只需要單獨(dú)測(cè)量頻率,不需要太多功能,如果使用市面上的頻率計(jì),就會(huì)有很大的浪費(fèi)。本文研究的頻率計(jì)已經(jīng)通過了仿真板調(diào)試,各項(xiàng)功能達(dá)到了預(yù)定的設(shè)計(jì)指標(biāo),整個(gè)系統(tǒng)體積較小,價(jià)格便宜,操作簡(jiǎn)單,顯示清晰,且誤差小,有較高的實(shí)用價(jià)值。</p><p><b>  

94、致謝</b></p><p>  本論文是在xx老師的悉心指導(dǎo)和嚴(yán)格要求下完成的,在此論文完成之際,向我的導(dǎo)師xx老師致以深深的謝意與感激之情。</p><p>  感謝電子信息工程學(xué)院的各位老師,他們廣博的識(shí)、謙遜的態(tài)度、誨人不倦和勇于探索創(chuàng)新的開拓精神給我留下了深刻印象,為我樹了永遠(yuǎn)的學(xué)習(xí)榜樣。</p><p><b>  參考文獻(xiàn)<

95、/b></p><p>  [1]華成英,童師白主編.模擬電子技術(shù)基礎(chǔ).高等教育出版社,2008.5</p><p>  [2]閻石主編.數(shù)字電子技術(shù)基礎(chǔ).高等教育出版社,2008.5</p><p>  [3]譚浩強(qiáng)主編.C程序設(shè)計(jì).清華大學(xué)出版社,2005.7</p><p>  [4]周潤景,張麗娜,劉應(yīng)群主編.proteus入門

96、使用教程.機(jī)械工業(yè)出版社, 2007.9</p><p>  [5]張毅坤,陳善久,裘雪紅編.單片微型計(jì)算機(jī)原理與應(yīng)用.西安電子科技大學(xué)出版社,2006.12</p><p>  [6]張毅剛主編.單片機(jī)原理及應(yīng)用.高等教育出版社,2004.7</p><p>  [7]王幸之,鐘愛琴,王雷,王閃編.AT89系列單片機(jī)原理與接口技術(shù).北京航空航天大學(xué)出版社,2004

97、.5</p><p>  [8]閆玉德,俞虹編.MCS-51單片機(jī)原理與應(yīng)用(C語言版).機(jī)械工業(yè)出版社, 2003.1</p><p>  [9]尹國光編.基于單片機(jī)的數(shù)字頻率計(jì)的設(shè)計(jì)和仿真.中國新通信( 技術(shù)版), 2008.4</p><p>  [10]郝建國,劉立新,黨建華編. 基于單片機(jī)的頻率計(jì)設(shè)計(jì). 西安郵電學(xué)院學(xué)報(bào), 2003.8</p>

98、<p><b>  附錄Ⅰ 電路原理圖</b></p><p>  附錄Ⅱ 外文資料與翻譯</p><p>  Remote Type MCU Timer/Event Counters</p><p>  Timer/Event Counters</p><p>  As the HT48RA0-2/HT4

99、8CA0-2 and HT48RA0-1/HT48CA0-1 do not contain internal timers, note that this section does not apply to these devices.</p><p>  The provision of internal timers form an important part of any microcontroller

100、giving the designer ameans of carrying out time related functions.Although the HT48RA0-2/HT48CA0-2 and HT48RA0-1/HT 48CA0-1 devices do not possess any internal Timer/Event Counters, the HT48RA1/HT48CA1, HT48RA3/HT48CA 3

101、and HT48RA5/HT48CA5 devices contain two internalTimer/Event Counters, namely one 8-bit timer and one 16-bit timer. As each timer has three different operating modes, they can be configured to operate a</p><p&g

102、t;  There are two types of registers related to the Timer/Event Counters. The first is the register thatcontains the actual value of the timer and into which an initial value can be preloaded. Reading from this register

103、retrieves the contents of the Timer/Event Counter. The second type of associated register is the timer control register which defines the timer options and determines how thetimer is to be used. The timer clock source fo

104、r the 8-bit timer can be configured to come from the internal sy</p><p>  An external clock source is used when the timer is in the event counting mode, the clock source beingprovided on the external timer p

105、in known as TMR0 or TMR1, which are pin-shared with the PC0 and PC5 I/O pins respectively. Depending upon the condition of the T0E/T1E bit in the correspondingtimer control register, each high to low, or low to high tran

106、sition on the external timer inputpin will increment the counter by one.</p><p>  Configuring the Timer/Event Counter Input Clock Source</p><p>  The internal timer_s clock source can originate

107、from either the system clock or from an external clock source. The system clock input timer source is used when the timer is in the timer mode or in the pulse width measurement mode. For the 8-bit timers, the internal ti

108、mer clock also passes through a prescaler, the value of which is conditioned by the TMR0C Timer Control Register bits,T0PSC2, T0PSC1 and T0PSC0.</p><p>  An external clock source is used when the timer is in

109、 the event counting mode, the clock source being provided on an external timer pin, TMR0 or TMR1 depending upon which timer is used. Depending upon the condition of the T0E/T1E bit, each high to low, or low to high trans

110、ition on the external timer pin will increment the counter by one.</p><p>  Timer Registers _ TMR0, TMR1L/TMR1H</p><p>  The timer registers are special function registers located in the special

111、 purpose Data Memory and is the place where the actual timer value is stored. For the 8-bit timer, this register is known as TMR0. In the case of the 16-bit timer, a pair of 8-bit registers, known as TMR1Land TMR1H, are

溫馨提示

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

評(píng)論

0/150

提交評(píng)論