2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩44頁未讀 繼續(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>  目 錄</b></p><p><b>  1 緒 言1</b></p><p>  1.1 課題背景1</p><p>  1.2 課題的主要任務(wù)及內(nèi)容1</p><p>  2 電動(dòng)電動(dòng)自行車的速度里程表總體方案設(shè)計(jì)2</p><p&g

2、t;  2.1 任務(wù)分析與實(shí)現(xiàn)2</p><p>  2.2 電動(dòng)自行車的速度里程表硬件方案設(shè)計(jì)2</p><p>  2.3 電動(dòng)自行車的速度里程表軟件方案設(shè)計(jì)4</p><p>  3 電動(dòng)電動(dòng)自行車的速度里程表硬件電路設(shè)計(jì)5</p><p><b>  3.1 概述5</b></p><

3、;p>  3.2 傳感器及其測(cè)量系統(tǒng)5</p><p>  3.2.1 霍爾傳感器的測(cè)量原理5</p><p>  3.3 單片機(jī)的原理及應(yīng)用7</p><p>  3.3.1 單片機(jī)原理簡(jiǎn)介7</p><p>  3.3.2 單片機(jī)的引腳功能介紹8</p><p>  3.3.3 單片機(jī)中斷系統(tǒng)介紹

4、10</p><p>  3.3.4 單片機(jī)定時(shí)/計(jì)數(shù)功能介紹11</p><p>  3.4 其他器件的介紹12</p><p>  3.4.1 存儲(chǔ)器的介紹12</p><p>  3.4.2 74LS74芯片的介紹13</p><p>  3.4.3 74LS244芯片的介紹14</p>

5、<p>  3.5 單片機(jī)外圍電路的設(shè)計(jì)14</p><p>  3.5.1 時(shí)鐘電路的設(shè)計(jì)14</p><p>  3.5.2 復(fù)位電路的設(shè)計(jì)15</p><p>  3.5.3 顯示電路的設(shè)計(jì)16</p><p>  3.5.4 報(bào)警電路的設(shè)計(jì)17</p><p>  4 電動(dòng)電動(dòng)自行車的速度里

6、程表軟件程序設(shè)計(jì)18</p><p><b>  4.1 概述18</b></p><p>  4.2 電動(dòng)自行車的速度里程表總體程序設(shè)計(jì)18</p><p>  4.3 中斷子程序的設(shè)計(jì)20</p><p>  4.4 數(shù)據(jù)處理子程序的設(shè)計(jì)20</p><p>  4.5 顯示子程序的

7、設(shè)計(jì)22</p><p>  5 系統(tǒng)調(diào)試與分析24</p><p>  6 結(jié)論與展望26</p><p><b>  6.1結(jié)論26</b></p><p><b>  6.2 展望26</b></p><p><b>  致 謝27</b&

8、gt;</p><p><b>  參考文獻(xiàn)28</b></p><p><b>  附 錄29</b></p><p><b>  1 緒 言</b></p><p><b>  1.1 課題背景</b></p><p>  

9、電動(dòng)自行車被發(fā)明及使用到現(xiàn)在已有兩百多年的歷史,這兩百年間人類在不斷的嘗試與研發(fā)過程中,將玩具式的木馬車轉(zhuǎn)換到今日各式新穎休閑運(yùn)動(dòng)電動(dòng)自行車,電動(dòng)自行車發(fā)展的目的也從最早的交通代步的工具轉(zhuǎn)換成休閑娛樂運(yùn)動(dòng)的用途。</p><p>  隨著居民生活水平的不斷提高,電動(dòng)自行車不再僅僅是普通的運(yùn)輸、代步的工具,而是成為人們娛樂、休閑、鍛煉的首選。因此,人們希望電動(dòng)自行車的功用更強(qiáng)大,能給人們帶來更多的方便。電動(dòng)自行車?yán)?/p>

10、程速度表作為電動(dòng)自行車的一大輔助工具也正是隨著這個(gè)要求而迅速發(fā)展的,其功能也逐漸從單一的里程顯示發(fā)展到速度、時(shí)間顯示,甚至有的還具有測(cè)量騎車人的心跳、顯示騎車人熱量消耗等功能。本設(shè)計(jì)采用了MCS-51系列單片機(jī)設(shè)計(jì)一種體積小、操作簡(jiǎn)單的便攜式電動(dòng)自行車的速度里程表,它能自動(dòng)地顯示當(dāng)前電動(dòng)自行車行走的距離及運(yùn)行的速度。 </p><p>  1.2 課題的主要任務(wù)及內(nèi)容</p><p>  

11、本課題主要任務(wù)是利用霍爾元件、單片機(jī)等部件設(shè)計(jì)一個(gè)可用LED數(shù)碼管實(shí)時(shí)顯示里程和速度的電動(dòng)自行車的速度里程表。本文主要介紹了電動(dòng)自行車的速度里程表的設(shè)計(jì)思想、電路原理、方案論證以及元件的選擇等內(nèi)容,整體上分為硬件部分設(shè)計(jì)和軟件部分設(shè)計(jì)。</p><p>  本文首先扼要對(duì)該課題的任務(wù)進(jìn)行方案論證,包括硬件方案和軟件方案的設(shè)計(jì);繼而具體介紹了電動(dòng)自行車的速度里程表的硬件設(shè)計(jì),包括傳感器的選擇、單片機(jī)的選擇、顯示電路

12、的設(shè)計(jì);然后闡述了該電動(dòng)自行車的速度里程表的軟件設(shè)計(jì),包括數(shù)據(jù)處理子程序的設(shè)計(jì)、顯示子程序的設(shè)計(jì);最后針對(duì)仿真過程遇到的問題進(jìn)行了具體說明與分析,對(duì)本次設(shè)計(jì)進(jìn)行了系統(tǒng)的總結(jié)。</p><p>  具體的硬件電路包括AT89C52單片機(jī)的外圍電路以及LED顯示電路等。</p><p>  軟件設(shè)計(jì)包括:芯片的初始化程序、定時(shí)中斷采樣子程序、顯示子程序等,軟件采用匯編語言編寫,軟件設(shè)計(jì)的思想主

13、要是自頂向下,模塊化設(shè)計(jì),各個(gè)子模塊逐一設(shè)計(jì)。 </p><p>  2電動(dòng)自行車的速度里程表總體方案設(shè)計(jì)</p><p><b>  2.1總體設(shè)計(jì)方案</b></p><p>  采用AT89C51芯片,用霍爾元件將車輪的轉(zhuǎn)速轉(zhuǎn)換成電脈沖,經(jīng)過處理后送入單片機(jī)。里程及速度的測(cè)量,是經(jīng)過AT89C51的定時(shí)/計(jì)數(shù)器測(cè)出總的脈沖數(shù)和每轉(zhuǎn)一圈的時(shí)

14、間,再經(jīng)過單片機(jī)的計(jì)算得出,計(jì)算結(jié)果通過LED顯示器顯示出來。</p><p>  傳感器是獲取自然或生產(chǎn)領(lǐng)域中信息的關(guān)鍵器件,是現(xiàn)代信息系統(tǒng)和各種設(shè)備不可缺少的信息采集工具。磁傳感器是一種將磁學(xué)量信號(hào)轉(zhuǎn)變?yōu)殡娦盘?hào)的器件或裝置。隨著信息產(chǎn)業(yè)、工業(yè)自動(dòng)化、醫(yī)療儀器等的飛速發(fā)展和計(jì)算機(jī)應(yīng)用的普及,需要大量的傳感器將被測(cè)或被控的非電信號(hào)轉(zhuǎn)換成可與計(jì)算機(jī)兼容的電信號(hào)。作為輸入信號(hào),這就給磁傳感器的快速發(fā)展提供了機(jī)遇,形成

15、了磁傳感器的產(chǎn)業(yè)。其中最具代表的磁傳感器就是霍爾傳感器,在自動(dòng)檢測(cè)系統(tǒng)中,利用霍爾傳感器測(cè)轉(zhuǎn)數(shù)是一種最基本的測(cè)量工作。</p><p>  單片機(jī)是本次設(shè)計(jì)的核心部件,它是信號(hào)從采集到輸出的橋梁,而且包括計(jì)算、定時(shí)、信息處理等功能</p><p>  當(dāng)輪子每轉(zhuǎn)一圈,通過開關(guān)型霍爾元件傳感器采集到一個(gè)脈沖信號(hào),并從引腳12即P3.2外部中斷0端輸入,傳感器每獲取一個(gè)脈沖信號(hào)即對(duì)系統(tǒng)提供一次

16、計(jì)數(shù)中斷。每次中斷代表車輪轉(zhuǎn)動(dòng)一圈,中斷數(shù)n輪圈的周長(zhǎng)為L(zhǎng)的乘積為里程值。計(jì)數(shù)器T1計(jì)算每轉(zhuǎn)一圈所用的時(shí)間t,就可以計(jì)算出即時(shí)速度v。當(dāng)里程鍵按下時(shí),里程指示燈亮,LED切換顯示當(dāng)前里程,與當(dāng)速度鍵按下時(shí),速度指示燈亮,LED切換顯示當(dāng)前速度,若電動(dòng)自行車超速,系統(tǒng)發(fā)出報(bào)警信號(hào),指示燈閃爍。里程數(shù)據(jù)自動(dòng)記憶,也可用于電動(dòng)電動(dòng)自行車、摩托車、汽車等機(jī)動(dòng)車儀表上。</p><p>  2.2 電動(dòng)自行車的速度里程表硬

17、件方案設(shè)計(jì)</p><p>  測(cè)速,首先要解決是采樣的問題。使用單片機(jī)進(jìn)行測(cè)速,可以使用簡(jiǎn)單的脈沖計(jì)數(shù)法。只要轉(zhuǎn)軸每旋轉(zhuǎn)一周,產(chǎn)生一個(gè)或固定的多個(gè)脈沖,將脈沖送入單片機(jī)中進(jìn)行計(jì)算,即可獲得轉(zhuǎn)速的信息。常用的測(cè)速元件有霍爾傳感器、光電傳感器和光電編碼器。里程測(cè)量傳感器的選擇也有以下幾種方案:使用光敏電阻對(duì)里程進(jìn)行測(cè)量、利用編碼器對(duì)車輪的圈數(shù)進(jìn)行測(cè)量、利用霍爾傳感器對(duì)里程進(jìn)行測(cè)量、利用干簧管型傳感器測(cè)量里程。<

18、;/p><p>  光敏電阻對(duì)光特別敏感,當(dāng)白天行駛時(shí),外界光源將導(dǎo)致光敏電阻發(fā)出錯(cuò)誤信號(hào);光敏電阻對(duì)環(huán)境的要求相當(dāng)高,如果光敏或發(fā)光二極管被泥沙或灰塵所覆蓋,光敏電阻就不能再進(jìn)行準(zhǔn)確測(cè)量;而編碼器必須安裝在車軸上,安裝較為復(fù)雜;霍爾元件或干簧管不但不受天氣的影響,即使被泥沙或灰塵覆蓋也不會(huì)有影響,而且安裝方便。所以本設(shè)計(jì)采用霍爾元件對(duì)里程與速度進(jìn)行測(cè)量,既簡(jiǎn)單易行,又經(jīng)濟(jì)適用。</p><p&g

19、t;  單片機(jī)由于將CPU、內(nèi)存和一些必要的接口集成到一個(gè)芯片上,并且面向控制功能將結(jié)構(gòu)作了一定的優(yōu)化,所以它有一般芯片不具有的特點(diǎn):</p><p>  1. 體積小、重量輕;</p><p>  2. 電源單一、功耗低;</p><p>  3. 功能強(qiáng)、價(jià)格低;</p><p>  4. 全部集成在一塊芯片上,布線短、合理;</p

20、><p>  5. 數(shù)據(jù)大部分在單片機(jī)內(nèi)傳送,運(yùn)行速度快、抗干擾能力強(qiáng)、可靠性高。</p><p>  目前,單片機(jī)被廣泛的應(yīng)用于測(cè)控系統(tǒng)、工業(yè)自動(dòng)化、智能儀表、集成智能傳感器、機(jī)電一體化產(chǎn)品、家用電器領(lǐng)域、辦公自動(dòng)化領(lǐng)域、汽車電子與航空航天器電子系統(tǒng)以及單片機(jī)的多機(jī)系統(tǒng)等領(lǐng)域。在設(shè)計(jì)中選用的是AT89C52單片機(jī)。</p><p>  2.3 電動(dòng)自行車的速度里程表軟

21、件方案設(shè)計(jì)</p><p>  通過軟件控制單片機(jī)的功能是單片機(jī)的主要特點(diǎn)和優(yōu)點(diǎn),程序的設(shè)計(jì)要考慮合理性和可讀性,遵循模塊化設(shè)計(jì)的原則,采用自頂向下的設(shè)計(jì)方法。模塊化設(shè)計(jì)使程序的可讀性好、修改及完善方便。</p><p>  軟件設(shè)計(jì)包括主程序、行車過程中里程和速度計(jì)算子程序、延時(shí)子程序、中斷服務(wù)子程序、顯示子程序等等。</p><p>  中斷子程序是將傳感器產(chǎn)生

22、的信號(hào)接入外部中斷0,將經(jīng)過74LS74分頻后的信號(hào)接入外部中斷1,利用中斷和定時(shí)器對(duì)分別對(duì)里程進(jìn)行累加、每轉(zhuǎn)一周的時(shí)間進(jìn)行測(cè)量。</p><p>  數(shù)據(jù)處理子程序是將進(jìn)入單片機(jī)的脈沖信號(hào)與實(shí)際要顯示值之間有一定的對(duì)應(yīng)關(guān)系,經(jīng)過軟件編程顯示所需要的值。</p><p>  顯示子程序是將數(shù)據(jù)處理的結(jié)果送顯示器顯示。</p><p>  系統(tǒng)軟件總體流程圖如圖2.3

23、所示。</p><p>  3 電動(dòng)自行車的速度里程表硬件電路設(shè)計(jì)</p><p><b>  3.1 概述</b></p><p>  電動(dòng)自行車的速度里程表的硬件電路設(shè)計(jì)是基礎(chǔ)部分,它包括信號(hào)的捕獲、放大、整形,單片機(jī)的計(jì)算處理,數(shù)碼管的實(shí)時(shí)顯示和單片機(jī)外圍基本電路的設(shè)計(jì),兩大主要器件就是傳感器和單片機(jī)。</p><p&

24、gt;  傳感器是獲取自然或生產(chǎn)領(lǐng)域中信息的關(guān)鍵器件,是現(xiàn)代信息系統(tǒng)和各種設(shè)備不可缺少的信息采集工具。磁傳感器是一種將磁學(xué)量信號(hào)轉(zhuǎn)變?yōu)殡娦盘?hào)的器件或裝置。隨著信息產(chǎn)業(yè)、工業(yè)自動(dòng)化、醫(yī)療儀器等的飛速發(fā)展和計(jì)算機(jī)應(yīng)用的普及,需要大量的傳感器將被測(cè)或被控的非電信號(hào)轉(zhuǎn)換成可與計(jì)算機(jī)兼容的電信號(hào)。作為輸入信號(hào),這就給磁傳感器的快速發(fā)展提供了機(jī)遇,形成了磁傳感器的產(chǎn)業(yè)。其中最具代表的磁傳感器就是霍爾傳感器,在自動(dòng)檢測(cè)系統(tǒng)中,利用霍爾傳感器測(cè)轉(zhuǎn)數(shù)是一

25、種最基本的測(cè)量工作。</p><p>  單片機(jī)是本次設(shè)計(jì)的核心部件,它是信號(hào)從采集到輸出的橋梁,而且包括計(jì)算、定時(shí)、信息處理等功能。</p><p>  3.2 傳感器及其測(cè)量系統(tǒng)</p><p>  本次設(shè)計(jì)信號(hào)的捕獲采用的是霍爾傳感器。 霍爾器件具有許多優(yōu)點(diǎn),它們的結(jié)構(gòu)牢固、體積小、重量輕、壽命長(zhǎng)、安裝方便、功耗小、頻率高(可達(dá)1MHz)、耐震動(dòng)、不

26、怕灰塵、油污、水汽及煙霧等的污染或腐蝕。霍爾線性器件的精度高、線性度好;霍爾開關(guān)器件無觸點(diǎn)、無磨損、輸出波形清晰、無抖動(dòng)、無回跳、位置重復(fù)精度高。取用各種補(bǔ)償和保護(hù)措施的霍爾器件工作溫度范圍寬,可達(dá)-55℃~150℃。按照霍爾器件的功能可將它們分為:霍爾線性器件和霍爾開關(guān)器件,前者輸出模擬量,后者輸出數(shù)字量。 按被檢測(cè)對(duì)象的性質(zhì)可將它們的應(yīng)用分為:直接應(yīng)用和間接應(yīng)用。前者是直接檢測(cè)出受檢測(cè)對(duì)象本身的磁場(chǎng)或磁特性,后者是檢測(cè)受檢對(duì)象上人為

27、設(shè)置的磁場(chǎng),用這個(gè)磁場(chǎng)來作被檢測(cè)的信息的載體。通過它,將許多非電、非磁的物理量例如力、力矩、位置、位移、速度、加速度、角度、角速度、轉(zhuǎn)數(shù)、轉(zhuǎn)速以及工作狀態(tài)發(fā)生變化的時(shí)間等,轉(zhuǎn)變成電量來進(jìn)行檢測(cè)和控制。 </p><p>  3.2.1 霍爾傳感器的測(cè)量原理</p><p>  霍耳效應(yīng):1879年E.H. 霍爾發(fā)現(xiàn),如果對(duì)位于磁場(chǎng)(B)中的導(dǎo)體(d)施加一個(gè)電壓(v),該磁場(chǎng)的方向垂直于所

28、施加電壓的方向,那么則在既與磁場(chǎng)垂直又和所施加電流方向垂直的方向上會(huì)產(chǎn)生另一個(gè)電壓(UH),人們將這個(gè)電壓叫做霍爾電壓,產(chǎn)生這種現(xiàn)象被稱為霍爾效應(yīng)。</p><p>  霍爾效應(yīng)從本質(zhì)上講是運(yùn)動(dòng)的帶電粒子在磁場(chǎng)中受洛侖茲力作用而引起的偏轉(zhuǎn)。當(dāng)帶電粒子(電子或空穴)被約束在固體材料中,這種偏轉(zhuǎn)就導(dǎo)致在垂直電流和磁場(chǎng)的方向上產(chǎn)生正負(fù)電荷的積累,從而形成附加的橫向電場(chǎng)。 </p><p>  通

29、有電流 I 的金屬或半導(dǎo)體板置于磁感強(qiáng)度為 B 的均勻磁場(chǎng)中,磁場(chǎng)的方向和電流方向垂直,在金屬板的第三對(duì)表面間就顯示出橫向電勢(shì)差 U H 的現(xiàn)象稱為霍耳效應(yīng)。U H 就稱為霍耳電勢(shì)差。 </p><p>  實(shí)驗(yàn)測(cè)定,霍耳電勢(shì)差的大小,和電流 I 及磁感強(qiáng)度B成正比,而與板的厚度d 成反比。即霍耳電勢(shì)差 UH = RHIB/d ,</p><p>  霍爾轉(zhuǎn)速傳感器: 霍爾轉(zhuǎn)速傳

30、感器的外形圖和與磁場(chǎng)的作用關(guān)系如2圖所示。磁場(chǎng)由磁鋼提供,所以霍爾傳感器和磁鋼需要配對(duì)使用。霍爾傳感器檢測(cè)轉(zhuǎn)速示意圖如圖3。在非磁材料的圓盤邊上粘貼一塊磁鋼,霍爾傳感器固定在圓盤外緣附近。圓盤每轉(zhuǎn)動(dòng)一圈,霍爾傳感器便輸出一個(gè)脈沖。通過單片機(jī)測(cè)量產(chǎn)生脈沖的頻率就可以得出圓盤的轉(zhuǎn)速。</p><p>  霍爾電流傳感器本身已經(jīng)存在濾波電路,輸出無須再加裝濾波,可直接供單片機(jī)的0~5V的 AD采集或直接送到單片機(jī)的中斷

31、輸入引腳,信號(hào)非常穩(wěn)定,而且抗干擾能力很強(qiáng)。 霍爾電流傳感器反應(yīng)速度一般在7微妙,不用考慮單片機(jī)循環(huán)判斷的時(shí)間.</p><p>  若在圓盤上貼上多塊磁鋼,則圓盤每轉(zhuǎn)一圈,輸出的脈沖信號(hào)將相應(yīng)增加,單位時(shí)間內(nèi)測(cè)到的脈沖數(shù)將增多,測(cè)出的轉(zhuǎn)速也將更加精細(xì)。本設(shè)計(jì)建模時(shí)采用一個(gè)圓盤上貼一個(gè)磁鋼進(jìn)行模擬。實(shí)際制作中可以貼上多塊磁鋼,即可以克服因車輪轉(zhuǎn)速太慢而在設(shè)定時(shí)間內(nèi)測(cè)不到脈沖的問題。</p>

32、<p>  3.3.2 單片機(jī)的引腳功能介紹</p><p>  AT89C52是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8K Bytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(EPROM)和256 字節(jié)的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(CPU)和Flash存

33、儲(chǔ)單元,功能強(qiáng)大,AT89C52單片機(jī)適合于許多較為復(fù)雜控制場(chǎng)合應(yīng)用。</p><p>  圖3.5 AT89C52引腳圖</p><p>  AT89C52提供以下標(biāo)準(zhǔn)功能:8K字節(jié)Flash閃速存儲(chǔ)器,256字節(jié)內(nèi)部RAM,32個(gè)I/O口線,3個(gè)16位定時(shí)/計(jì)數(shù)器,5個(gè)中斷源,一個(gè)全雙工串行通信口,片內(nèi)具有振蕩器及時(shí)鐘電路。AT89C52管腳圖如圖3.5所示。AT89C52的主要管腳功

34、能如下:</p><p>  P0.0~P0.7:P0口是一組8位漏極開路型雙向I/O口,也是地址/數(shù)據(jù)總線復(fù)用口。</p><p>  P1.0~P1.7:P1是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口。</p><p>  P2.0~P2.7:P2是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口。</p><p>  P3.0~P3.7:P3是一個(gè)帶內(nèi)

35、部上拉電阻的8位雙向I/O口。</p><p>  ALE:地址鎖存控制信號(hào)。在系統(tǒng)擴(kuò)展時(shí),ALE用于控制把P0口輸出的低8位地址鎖存起來,以實(shí)現(xiàn)低位地址和數(shù)據(jù)的分時(shí)傳送。此外,由于ALE是以晶振1/6的固定頻率輸出的正脈沖,因此,可作為外部時(shí)鐘或外部定時(shí)脈沖使用。</p><p> ?。和獠砍绦虼鎯?chǔ)器讀選通信號(hào)。在讀外部ROM時(shí),有效(低電平),以實(shí)現(xiàn)外部ROM單元的讀操作。</p

36、><p>  :訪問程序存儲(chǔ)控制信號(hào)。當(dāng)信號(hào)為低電平時(shí),對(duì)ROM的讀操作限定在外部程序存儲(chǔ)器;當(dāng)信號(hào)為高電平時(shí),對(duì)ROM的讀操作是從內(nèi)部程序存儲(chǔ)器開始,并可延至外部程序存儲(chǔ)器。</p><p>  RST:復(fù)位信號(hào)。當(dāng)輸入的復(fù)位信號(hào)延續(xù)兩個(gè)機(jī)器周期以上的高電平時(shí)即為有效,用以完成單片機(jī)的復(fù)位初始化操作。</p><p>  XTALl和XTAL2:外接晶體引線端。當(dāng)使用

37、芯片內(nèi)部時(shí)鐘時(shí),此二引線端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號(hào)。</p><p>  VSS:地線。 </p><p>  VCC:+5V電源。</p><p>  如果把前述的信號(hào)定義為引腳第一功能的話,則根據(jù)需要再定義的信號(hào)就是它的第二功能。P3的8條口線都定義有第二功能,如表3.1所示</p><

38、;p>  對(duì)于有內(nèi)部EPROM的單片機(jī)芯片(例如87C51),為寫入程序須提供專門的編程脈沖和編程電源。它們也由引腳以第二功能的形式提供的,即:</p><p>  編程脈沖:30腳()</p><p>  編程電壓(25V):31腳()</p><p>  表3.1 P3口引腳與第二功能</p><p>  3.3.3 單片機(jī)中斷系

39、統(tǒng)介紹</p><p>  中斷是指當(dāng)計(jì)算機(jī)執(zhí)行正常程序時(shí),系統(tǒng)中出現(xiàn)某些急需處理的事件,CPU暫時(shí)中止當(dāng)前的程序,轉(zhuǎn)去執(zhí)行服務(wù)程序,以對(duì)發(fā)生的更緊迫的事件進(jìn)行處理,待處理結(jié)束后,CPU自動(dòng)返回原來的程序執(zhí)行AT89C52系列單片機(jī)的系統(tǒng)有5個(gè)中斷源,2個(gè)優(yōu)先級(jí),可實(shí)現(xiàn)二級(jí)中斷服務(wù)嵌套。由片內(nèi)特殊功能寄存器中的中斷允許寄存器IE控制CPU是否響應(yīng)中斷請(qǐng)求;由中斷優(yōu)先級(jí)寄存器IP安排各優(yōu)中斷源的優(yōu)先級(jí);同一優(yōu)先級(jí)內(nèi)

40、各終端同時(shí)提出中斷請(qǐng)求時(shí),由內(nèi)部的查詢邏輯確定其響應(yīng)次序。</p><p>  采用的外部中斷方式包括外部中斷0和外部中斷1,它們的中斷請(qǐng)求信號(hào)分別由單片機(jī)引腳/P3.2和/P3.3輸入。</p><p>  外部中斷請(qǐng)求有兩種信號(hào)方式:電平觸發(fā)方式和脈沖觸發(fā)方式。電平觸發(fā)方式的中斷請(qǐng)求是低電平有效。只要在和引腳上出現(xiàn)有效低電平時(shí),就激活外部中斷方式。脈沖觸發(fā)方式的中斷請(qǐng)求則是脈沖的負(fù)跳變

41、有效。在這種方式下,在兩個(gè)相鄰機(jī)器周期內(nèi),和 引腳電平發(fā)生變化,即在第一個(gè)機(jī)器周期內(nèi)為高電平,第二個(gè)機(jī)器周期內(nèi)為低電平,就激活外部中斷。由此可見,在脈沖方式下,中斷請(qǐng)求信號(hào)的高電平和低電平狀態(tài)都應(yīng)至少維持一個(gè)機(jī)器周期,以使CPU采樣到電平狀態(tài)的變化,本次設(shè)計(jì)所采用的觸發(fā)方式為脈沖觸發(fā)方式。</p><p><b>  1.中斷允許控制</b></p><p>  CP

42、U對(duì)中斷系統(tǒng)所有中斷以及某個(gè)中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。IE的狀態(tài)可通過程序由軟件設(shè)定,某位設(shè)定為1,相應(yīng)的中斷源中斷允許;某位設(shè)定為0,相應(yīng)的中斷源中斷屏蔽。CPU復(fù)位時(shí),IE各位為0,禁止所有中斷。IE寄存器各位的定義如下。</p><p>  EX0(IE.0)外部中斷允許位;</p><p>  ET0(IE.1)定時(shí)/計(jì)數(shù)器T0中斷允許位;</p>

43、<p>  EX1(IE.2)外部中斷允許位;</p><p>  ET1(IE.3)定時(shí)/計(jì)數(shù)器T1中斷允許位;</p><p>  ES(IE.4)串行口中斷允許位;</p><p>  EA(IE.7)CPU中斷允許位。</p><p><b>  2.中斷優(yōu)先級(jí)控制</b></p>&

44、lt;p>  AT89C52單片機(jī)有兩個(gè)中斷優(yōu)先級(jí),即可實(shí)現(xiàn)二級(jí)中斷服務(wù)嵌套。每個(gè)中斷源的中斷優(yōu)先級(jí)都是由中斷優(yōu)先級(jí)寄存器IP中的相應(yīng)的狀態(tài)來規(guī)定的。IP的狀態(tài)由軟件設(shè)定,某位設(shè)定為1,則相應(yīng)的中斷源為高優(yōu)先級(jí)中斷;某位設(shè)定為0.則相應(yīng)的中斷源為低優(yōu)先級(jí)中斷。單片機(jī)復(fù)位時(shí),IP各位清0,各中斷源同為低優(yōu)先級(jí)中斷。IP寄存器各位的定義如下。</p><p>  PX0(IP.0)外部中斷優(yōu)先級(jí)設(shè)定位;<

45、/p><p>  PT0(IP.1)定時(shí)/計(jì)數(shù)器T0中斷優(yōu)先級(jí)設(shè)定位;</p><p>  PX1(IP.2)外部中斷中斷優(yōu)先級(jí)設(shè)定位;</p><p>  PT1(IP.3)定時(shí)/計(jì)數(shù)器T1中斷優(yōu)先級(jí)設(shè)定位;</p><p>  PS(IP.4)串行口中斷優(yōu)先級(jí)設(shè)定位。</p><p>  3.3.4 單片機(jī)定時(shí)/計(jì)數(shù)功

46、能介紹</p><p>  AT89C52單片機(jī)定時(shí)/計(jì)數(shù)器的工作由兩個(gè)特殊功能寄存器控制。TMOD用于設(shè)置其工作方式;TCON用于控制其啟動(dòng)和中斷請(qǐng)求。</p><p>  1.工作方式寄存器TMOD</p><p>  工作方式寄存器TMOD用于設(shè)置定時(shí)/計(jì)數(shù)器的工作方式。</p><p>  GATE:門控位。GATE=0時(shí),只要用軟件

47、使TCON中的TR0或TR1為1,就可以啟動(dòng)定時(shí)/計(jì)數(shù)器工作;GATE=1時(shí),要用軟件TR0或TR1為1,同時(shí)外部中斷引腳或也為高電平時(shí),才能啟動(dòng)定時(shí)/計(jì)數(shù)器工作。</p><p>  :定時(shí)/計(jì)數(shù)模式選擇位。=0為定時(shí)模式; =1為計(jì)數(shù)模式。</p><p>  M1M2:工作方式設(shè)置位。定時(shí)/計(jì)數(shù)器有4種工作方式,由M1M2進(jìn)行設(shè)置。</p><p>  本次設(shè)

48、計(jì)TMOD為90H,即選通定時(shí)/計(jì)數(shù)器1、定時(shí)功能、工作方式1。工作方式16位定時(shí)/計(jì)數(shù)器。</p><p>  2.控制寄存器TCON</p><p>  TF1(TCON.7)定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志位。定時(shí)/計(jì)數(shù)器T1計(jì)數(shù)溢出時(shí)由硬件自動(dòng)置TF1為1。CPU響應(yīng)中斷后TF1由硬件自動(dòng)清零。T1工作時(shí),CPU可隨時(shí)查詢TF的狀態(tài)。所以,TF1可用作查詢測(cè)試的標(biāo)志。TF1也可以用

49、軟件置1或清零,同硬件置1或清零的效果一樣。</p><p>  TR1(TCON.6)定時(shí)/計(jì)數(shù)器T1運(yùn)行控制位。TR1置1時(shí)時(shí),定時(shí)/ 計(jì)數(shù)器T1開始工作;TR1置0時(shí),定時(shí)/計(jì)數(shù)器T1停止工作。TR1由軟件置1或清0。</p><p>  TF0(TCON.5):定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志位。</p><p>  TR0(TCON.4)。:定時(shí)/計(jì)數(shù)器T

50、0運(yùn)行控制位</p><p>  3.4 其他器件的介紹</p><p>  3.4.1 存儲(chǔ)器的介紹</p><p>  AT24C02是一個(gè)2K位串行CMOSE2PROM。內(nèi)部含有256個(gè)8 位字節(jié),ATMEL公司的先進(jìn)CMOS技術(shù)實(shí)質(zhì)上減少了器件的功耗。AT24C02有一個(gè)16 字節(jié)頁寫緩沖器,該器件通過I2C總線接口進(jìn)行操作有一個(gè)專門的寫保護(hù)功能。AT24C

51、02支持I2C總線數(shù)據(jù)傳送協(xié)議。數(shù)據(jù)傳送是由產(chǎn)生串行時(shí)鐘和所有起始停止信號(hào)的主器件控制的。主器件和從器件都可以作為發(fā)送器或接收器,但由主器件控制傳送數(shù)據(jù)(發(fā)送或接收)的模式,通過器件地址輸入端 A0、A1和A2可以實(shí)現(xiàn)將最多8個(gè)24C02器件連接到總線上。管腳圖如3.6所示。 </p><p>  圖3.6 24C02管腳圖</p><p>  SCL串行時(shí)鐘:AT24C

52、02串行時(shí)鐘輸入管腳用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時(shí)鐘。</p><p>  SDA串行數(shù)據(jù)/地址:CAT24WC02雙向串行數(shù)據(jù)/地址管腳用于器件所有數(shù)據(jù)的發(fā)送或接收,是一個(gè)開漏輸出管腳可與其它開漏輸出或集電極開路輸出進(jìn)行線或(wire-OR)。</p><p>  WP寫保護(hù):如果WP管腳連接到Vcc所有的內(nèi)容都被寫保護(hù),只能讀。當(dāng)WP管腳連接到Vss或懸空,允許器件進(jìn)行正常的讀/寫

53、操作。</p><p>  本次設(shè)計(jì)采用的24C02是為了防止掉電時(shí)里程數(shù)據(jù)的丟失,由于24C02的數(shù)據(jù)線和地址線是復(fù)用的,采用串口的方式傳輸數(shù)據(jù),所以只用兩根線SCL和SDA與單片機(jī)傳輸數(shù)據(jù)。在軟件編程時(shí)采用程序包來控制24C02發(fā)送或接受數(shù)據(jù)。</p><p>  3.4.2 74LS74芯片的介紹</p><p>  74LS74是D觸發(fā)器的一種,它是一個(gè)具有

54、記憶功能的二進(jìn)制信息存儲(chǔ)器件,是構(gòu)成多種時(shí)序電路的最基本邏輯單元。觸發(fā)器具有兩個(gè)穩(wěn)定狀態(tài),即“0”和“1”,在一定的外界信號(hào)作用下,可以從一個(gè)穩(wěn)定狀態(tài)翻轉(zhuǎn)到另一個(gè)穩(wěn)定狀態(tài)。由于其狀態(tài)的更新發(fā)生在CP脈沖的邊沿故又稱之為上升沿觸發(fā)的邊沿觸發(fā)器,D觸發(fā)器的狀態(tài)只取決于時(shí)針到來前D端的狀態(tài)。引腳圖如圖3.7所示。</p><p>  圖3.7 74LS74引腳圖</p><p>  在本題目中7

55、4LS74芯片起分頻的作用。當(dāng)車輪每轉(zhuǎn)一圈,霍爾傳感器輸出一個(gè)低電平脈沖,通過74LS74進(jìn)行二分頻后,定時(shí)器T1的開啟時(shí)間為車輪轉(zhuǎn)1圈的時(shí)間,這樣就可以算出電動(dòng)自行車的速度。分頻前后對(duì)比圖如圖3.8所示。</p><p>  圖3.8 分頻前后對(duì)比圖</p><p>  由圖可見,二分頻后的波形的高或地電平的時(shí)間正好是霍爾傳感器開關(guān)的一個(gè)周期,霍爾傳感器輸出脈沖到,即P3.2口接收到對(duì)圈

56、數(shù)計(jì)數(shù)的脈沖。經(jīng)74LS74二分頻后的信號(hào)輸入到,內(nèi)部定時(shí)計(jì)數(shù)器測(cè)得每轉(zhuǎn)一圈所用的時(shí)間,通過計(jì)算即可得里程值和即時(shí)速度。</p><p>  3.4.3 74LS244芯片的介紹</p><p>  本次設(shè)計(jì)中的采用驅(qū)動(dòng)數(shù)碼管的芯片為74LS244,74LS244為三態(tài)輸出的八位緩沖器和線驅(qū)動(dòng)器,若單片機(jī)輸出口直接接顯示部分電路,則電流太小,會(huì)導(dǎo)致顯示部分不能正常工作。所以在單片機(jī)輸出口先

57、接入驅(qū)動(dòng)芯片74LS244,增大電流,使LED能夠正常工作。其邏輯圖如圖3.9所示,可以看出74LS244由2組組成、每組由四路輸入、輸出構(gòu)成。每組有一個(gè)控制端高或低電平?jīng)Q定該組數(shù)據(jù)被接通還是斷開。</p><p>  圖3.9 74LS244邏輯圖</p><p>  3.5 單片機(jī)外圍電路的設(shè)計(jì)</p><p>  3.5.1 時(shí)鐘電路的設(shè)計(jì)</p>

58、<p>  時(shí)鐘是單片機(jī)的心臟,單片機(jī)各功能部件的運(yùn)行都是以時(shí)鐘頻率為基準(zhǔn),有條不紊地一拍一拍地工作。因此,時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。AT89C52片內(nèi)由一個(gè)反相放大器構(gòu)成振蕩器,可以由它產(chǎn)生時(shí)鐘。常用的時(shí)鐘電路有兩種方式,一種是內(nèi)部時(shí)鐘方式,另一種為外部時(shí)鐘方式。本設(shè)計(jì)采用前者。</p><p>  單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,

59、該高增益反相放大器的輸入為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個(gè)引腳跨接石英晶體振蕩器和電容,就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。單片機(jī)內(nèi)部時(shí)鐘方式的振蕩電路如圖3.10所示。</p><p>  圖3.10 單片機(jī)片內(nèi)振蕩電路</p><p>  電路中的電容C1和C2常選擇為30P左右。對(duì)外接電容的值雖然沒有嚴(yán)格的要求,但電容的大小會(huì)影響振蕩器的高低、振蕩器的穩(wěn)定性、起振的快速性和

60、溫度的穩(wěn)定性。而外接晶體的振蕩頻率的大小,主要取決于單片機(jī)的工作頻率范圍,每一種單片機(jī)都有自己的最大工作頻率,外接的晶體振蕩頻率不大于單片機(jī)的最大工作頻率即可。此外,如果單片機(jī)有串行通信,則應(yīng)該選擇振蕩頻率除以串行通信頻率可以除盡的晶體。本設(shè)計(jì)晶振采用12MHz,則計(jì)數(shù)周期為</p><p><b>  S</b></p><p>  3.5.2 復(fù)位電路的設(shè)計(jì)<

61、;/p><p>  AT89C52單片機(jī)的復(fù)位輸入引腳RET為AT89C52提供了初始化的手段。有了它可以使程序從指定處開始執(zhí)行,即從程序存儲(chǔ)器中的0000H地址單元開始執(zhí)行程序。在89C52的時(shí)鐘電路工作后,只要在RET引腳上出現(xiàn)兩個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)內(nèi)部則初始復(fù)位。只要RET保持高電平,則89C52循環(huán)復(fù)位。只有當(dāng)RET由高電平變成低電平以后,89C52才從0000H地址開始執(zhí)行程序。</p&g

62、t;<p>  本系統(tǒng)的復(fù)位電路是采用按鍵復(fù)位的電路,如圖3.11所示,是常用復(fù)位電路之一。單片機(jī)復(fù)位通過按動(dòng)按鈕產(chǎn)生高電平復(fù)位稱手動(dòng)復(fù)位。上電時(shí),剛接通電源,電容C相當(dāng)于瞬間短路,+5V立即加到RET/VPD端,該高電平使89C52全機(jī)自動(dòng)復(fù)位,這就是上電復(fù)位;若運(yùn)行過程中需要程序從頭執(zhí)行,只需按動(dòng)按鈕即可。按下按鈕,則直接把+5V加到了RET/VPD端從而復(fù)位稱為手動(dòng)復(fù)位。復(fù)位后,P0到P3并行I/O口全為高電平,其它

63、寄存器全部清零,只有SBUF寄存器狀態(tài)不確定。</p><p>  圖3.11 按鍵復(fù)位電路</p><p>  工作原理:通電瞬間,RC電路充電,RST引腳出現(xiàn)高電平,只要RST端保持10ms以上高電平,就能使單片機(jī)有效地復(fù)位。</p><p>  3.5.3 顯示電路的設(shè)計(jì)</p><p>  本設(shè)計(jì)中采用LED數(shù)碼管顯示。在單片機(jī)系統(tǒng)中

64、,通常用LED數(shù)碼顯示器來顯示各種數(shù)字或符號(hào)。由于它具有顯示清晰、亮度高、使用電壓低、壽命長(zhǎng)的特點(diǎn),因此使用非常廣泛。八段LED顯示器由8個(gè)發(fā)光二極管組成。其中7個(gè)發(fā)光二極管構(gòu)成字型“8”的各個(gè)筆畫段,另一個(gè)小數(shù)點(diǎn)為dp發(fā)光二極管。LED顯示器有兩種不同的形式:一種是發(fā)光二極管的陽極都連在一起的,稱之為共陽極LED顯示器;另一種是發(fā)光二極管的陰極都連在一起的,稱之為共陰極LED顯示器。如圖3.12所示。本次設(shè)計(jì)采用共陰極接法。</

65、p><p>  LED顯示方式有動(dòng)態(tài)顯示和靜態(tài)顯示兩種方式。本系統(tǒng)采用動(dòng)態(tài)掃描顯示接口電路,動(dòng)態(tài)顯示接口電路是把所有顯示器的8個(gè)筆劃段a-h同名端連在一起,而每一個(gè)顯示器的公共極COM各自獨(dú)立地受I/O線控制。CPU向字段輸出口送出字型碼時(shí),所有顯示器接收到相同的字型碼,但究竟是哪個(gè)顯示器亮,則取決于COM端。也就是說我們可以采用分時(shí)的方法,輪流控制各個(gè)顯示器的COM端,使各個(gè)顯示器輪流點(diǎn)亮。在輪流點(diǎn)亮掃描過程中,每

66、位顯示器的點(diǎn)亮?xí)r間是極為短暫的(約1ms),由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。</p><p>  圖3.12 七(八)段LED顯示器</p><p>  本設(shè)計(jì)P2.0、P2.1、P2.2、P2.3信號(hào)一起組成位選通的位選信號(hào),P0.0~P0.7信號(hào)一起組成段碼選通的段選信

67、號(hào),通過軟件編程,先把所要顯示的數(shù)據(jù)放入存儲(chǔ)單元,然后把數(shù)據(jù)送入段選通對(duì)應(yīng)的地址,再選通某一個(gè)LED,逐步完成四個(gè)LED的顯示。</p><p>  3.5.4 報(bào)警電路的設(shè)計(jì)</p><p>  本次報(bào)警電路采用蜂鳴器報(bào)警,當(dāng)即時(shí)速度超過預(yù)定值是蜂鳴器響,指示燈閃爍,提示應(yīng)該減速。報(bào)警電路圖如圖3.13所示。</p><p>  圖3.13 報(bào)警電路圖</p

68、><p>  4 電動(dòng)自行車的速度里程表軟件程序設(shè)計(jì)</p><p><b>  4.1 概述</b></p><p>  在硬件設(shè)計(jì)完畢之后,接下來就是設(shè)計(jì)中最核心和最為主要的軟件部分設(shè)計(jì)。所謂軟件設(shè)計(jì)就是把軟件需求變換成軟件的具體設(shè)計(jì)方案(即模塊結(jié)構(gòu))的過程。模塊化結(jié)構(gòu)設(shè)計(jì)即是根據(jù)要求和硬件設(shè)計(jì)的結(jié)構(gòu),將整個(gè)系統(tǒng)的功能分成許多小的功能模塊,再

69、根據(jù)這些小的功能模塊進(jìn)行程序編寫的過程。這樣的設(shè)計(jì)方法,使得系統(tǒng)的整個(gè)功能和各部分的功能趨于明朗化。當(dāng)系統(tǒng)出現(xiàn)問題,就可以根據(jù)功能設(shè)置找出問題的根源,從而更快地解決問題。所以說,在整個(gè)設(shè)計(jì)過程中,軟件設(shè)計(jì)必須與硬件設(shè)計(jì)緊密地結(jié)合在一起。 </p><p>  基于霍爾傳感器電動(dòng)自行車的速度里程表的軟件設(shè)計(jì)包括上電初始化程序、中斷子程序、速度調(diào)用子程序、里程調(diào)用子程序、LED顯示子程序、延時(shí)子程序等幾大部分。

70、由于要實(shí)現(xiàn)很多功能,所以采用模塊化設(shè)計(jì),下面就其主要部分分別加以分析。</p><p>  4.2 電動(dòng)自行車的速度里程表總體程序設(shè)計(jì)</p><p>  在主程序模塊中,需要完成對(duì)各接口芯片的初始化、電動(dòng)自行車?yán)锍毯退俣鹊某跏蓟?、中斷向量的設(shè)計(jì)以及開中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要設(shè)置啟動(dòng)/清除標(biāo)志寄存器、里程寄存器、速度寄存器,并對(duì)它們進(jìn)行初始化。然后主程序?qū)⒏鶕?jù)各標(biāo)志

71、寄存器的內(nèi)容,分別完成啟動(dòng)、清除、計(jì)程和計(jì)速等不同的操作。</p><p>  P1.0和P1.1口分別用于顯示里程狀態(tài)和速度狀態(tài)。P1.2、P1.3、P1.6和P1.7口分別用于設(shè)置輪圈的大小,低電平有效。P3.0是用于里程和速度切換的,低電平為顯示速度,高電平為顯示里程。中斷0用于對(duì)輪子圈數(shù)的計(jì)數(shù)輸入,輪子每轉(zhuǎn)一圈,霍爾傳感器輸出一個(gè)低電平脈沖。將根據(jù)里程寄存器中的內(nèi)容計(jì)算和判斷出行駛里程數(shù)。中斷1用于控制定

72、時(shí)器T1的啟/停,當(dāng)輸入為0時(shí)關(guān)閉定時(shí)器。此控制信號(hào)是將輪子圈數(shù)的計(jì)數(shù)經(jīng)二分頻后形成。這樣,每次定時(shí)器T1的開啟時(shí)間剛好為轉(zhuǎn)一圈的時(shí)間,根據(jù)輪子的周長(zhǎng)就可以計(jì)算出電動(dòng)自行車的速度。其程序流程如圖4.1所示。</p><p>  圖4.1 主程序流程圖</p><p>  4.3 中斷子程序的設(shè)計(jì)</p><p>  定時(shí)中斷是為滿足定時(shí)或計(jì)數(shù)的需要而設(shè)置的。在單片機(jī)

73、內(nèi)部有兩個(gè)定時(shí)/計(jì)數(shù)器,以對(duì)其中的計(jì)數(shù)結(jié)構(gòu)進(jìn)行計(jì)數(shù)的方法,來實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能。當(dāng)結(jié)構(gòu)發(fā)生計(jì)數(shù)溢出時(shí),即表明定時(shí)時(shí)間或計(jì)數(shù)值已滿,這時(shí)就以計(jì)數(shù)溢出信號(hào)作為中斷請(qǐng)求,去置位一個(gè)溢出標(biāo)志,作為單片機(jī)接受中斷請(qǐng)求的標(biāo)志。這種中斷請(qǐng)求是在單片機(jī)芯片內(nèi)部發(fā)生的,因此無須在芯片上設(shè)置引入端。</p><p>  定時(shí)/計(jì)數(shù)器控制寄存器TCON是8位寄存器,地址為88H,可以位尋址。其高4位用于定時(shí)/計(jì)數(shù)器中斷控制,低4位借給

74、外部中斷,用做中斷標(biāo)志和觸發(fā)方式選擇位。本設(shè)計(jì)采用定時(shí)中斷,對(duì)電動(dòng)自行車的里程和速度進(jìn)行計(jì)數(shù)。中斷子程序流程圖如圖4.2所示。 </p><p>  圖4.2中斷子程序流程圖</p><p>  4.4 數(shù)據(jù)處理子程序的設(shè)計(jì)</p><p>  1. 里程計(jì)算子程序</p><p>  外中斷0服務(wù)程序用于對(duì)單片機(jī)P3.2口輸入的圈脈沖進(jìn)行

75、計(jì)數(shù),為十六進(jìn)制計(jì)數(shù)器。60H為低位,62H為高位。每次計(jì)數(shù)一次后,對(duì)里程數(shù)據(jù)進(jìn)行一次存儲(chǔ)操作。當(dāng)車輪每轉(zhuǎn)一圈,通過霍爾元件將脈沖數(shù)輸入單片機(jī)內(nèi),通過計(jì)數(shù)器計(jì)出脈沖數(shù),再用乘法子程序算出里程數(shù)。里程處理子程序流程圖如圖4.3所示。</p><p>  圖4.3 里程處理子程序流程圖</p><p><b>  2.速度計(jì)算子程序</b></p><

76、p>  外中斷1服務(wù)程序用于處理輪子轉(zhuǎn)動(dòng)一圈后的計(jì)時(shí)數(shù)據(jù)。當(dāng)標(biāo)志位(00H)為1時(shí),計(jì)數(shù)溢出,放入最大時(shí)間值(為#0FFH);當(dāng)標(biāo)志位為0時(shí),將計(jì)數(shù)單元(TL1、TH1、6CH、6DH)的值放入68H~6BH單元。定時(shí)器計(jì)出每轉(zhuǎn)一圈所用的時(shí)間,用電動(dòng)自行車車輪的周長(zhǎng)除以時(shí)間就得出電動(dòng)自行車的速度。</p><p>  圖4.4 速度處理子程序流程圖</p><p>  4.5 顯示子

77、程序的設(shè)計(jì)</p><p>  采用動(dòng)態(tài)掃描顯示接口電路,動(dòng)態(tài)顯示接口電路是把所有顯示器的8個(gè)筆劃段a-h同名端連在一起,而每一個(gè)顯示器的公共極COM各自獨(dú)立地受I/O線控制。CPU向字段輸出口送出字型碼時(shí),所有顯示器接收到相同的字型碼,但究竟是哪個(gè)顯示器亮,則取決于COM端??梢圆捎梅謺r(shí)的方法,輪流控制各個(gè)顯示器的COM端,使各個(gè)顯示器輪流點(diǎn)亮。在輪流點(diǎn)亮掃描過程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的(約1ms)

78、,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。</p><p>  本設(shè)計(jì)P2.0、P2.1、P2.2、P2.3信號(hào)一起組成位選通的位選信號(hào),P0.0~P0.7信號(hào)一起組成段碼選通的段選信號(hào),通過軟件編程,先把所要顯示的數(shù)據(jù)放入存儲(chǔ)單元,然后把數(shù)據(jù)送入段選通對(duì)應(yīng)的地址,再選通某一個(gè)LED,逐步完成四個(gè)LED的

79、顯示。</p><p>  圖4.5 顯示子程序流程圖</p><p><b>  5 系統(tǒng)調(diào)試與分析</b></p><p><b>  1.程序的查錯(cuò)手段</b></p><p>  單片機(jī)的應(yīng)用系統(tǒng)均需借助對(duì)應(yīng)的開發(fā)系統(tǒng)(或裝置)進(jìn)行在線仿真,對(duì)應(yīng)用系統(tǒng)的軟,硬件進(jìn)行全面地檢測(cè)與調(diào)試。各種開發(fā)

80、系統(tǒng)或裝置均提供以下查錯(cuò)手段。</p><p><b> ?。?)單步執(zhí)行</b></p><p>  采用單步執(zhí)行操作可對(duì)應(yīng)用程序每步執(zhí)行一條指令,可逐條檢查這一段程序的執(zhí)行過程是否符合原設(shè)計(jì)要求。可直接查出錯(cuò)誤所在。宏單步可執(zhí)行一段程序,如一步就可執(zhí)行完整個(gè)循環(huán)程序段。</p><p> ?。?)斷點(diǎn)設(shè)置全速運(yùn)行</p>&l

81、t;p>  可在程序有疑慮的地方設(shè)置斷點(diǎn),從設(shè)置的起始地址開始,以全速或非全速方式向設(shè)定的斷點(diǎn)處運(yùn)行。如果這段程序無語法或邏輯上的錯(cuò)誤,則連續(xù)運(yùn)行到設(shè)置的斷點(diǎn)處停止運(yùn)行,返回監(jiān)控狀態(tài)。如果有錯(cuò)誤,則在錯(cuò)誤處停止運(yùn)行,如果進(jìn)入死循環(huán)或者程序跑飛,就會(huì)永不停止運(yùn)行。全速斷點(diǎn)運(yùn)行為檢查實(shí)時(shí)性及中斷響應(yīng)處理等提供了方便。</p><p> ?。?)顯示器窗口檢查</p><p><b&

82、gt; ?。?)實(shí)時(shí)跟蹤記錄</b></p><p>  除上述之外,還有以下功能:</p><p><b>  符號(hào)化調(diào)試。</b></p><p>  在原程序中一般均以符號(hào)地址,標(biāo)號(hào)等出現(xiàn),通過匯編自動(dòng)進(jìn)行變換和調(diào)整,偏移量等均可自動(dòng)換算和填入。</p><p><b>  程序的運(yùn)行。<

83、;/b></p><p>  自動(dòng)生成目標(biāo)代碼和固化。</p><p><b>  2.源程序的檢測(cè)</b></p><p>  在源程序進(jìn)行調(diào)試之前,硬件系統(tǒng)必須基本正確,重點(diǎn)對(duì)源程序進(jìn)行檢測(cè)。</p><p> ?。?)對(duì)照程序流程圖,先對(duì)相對(duì)獨(dú)立的功能模塊,子程序,中斷服務(wù)程序等進(jìn)行仔細(xì)地檢查,然后對(duì)整個(gè)主程

84、序按其功能劃分成若干程序段進(jìn)行分段檢查,逐步擴(kuò)大到整個(gè)程序系統(tǒng)。</p><p>  檢查時(shí)重點(diǎn)檢查程序的邏輯功能,結(jié)構(gòu)和算法,有關(guān)參量和初始值是否完善,正確,關(guān)鍵性指令的選擇是否合理,特別是借助開發(fā)系統(tǒng)也較難調(diào)試正確的隱患,只有通過細(xì)心的檢查加以排除。</p><p>  (2)硬件系統(tǒng)檢查。</p><p>  硬件系統(tǒng)必須排除電源短路和碰線故障,然后空板(沒有

85、插上芯片等器件)進(jìn)行上電檢查各電源點(diǎn)是否正確,有關(guān)邏輯電平及信號(hào)是否正確。確認(rèn)無誤之后逐次插上芯片等器件,借助開發(fā)系統(tǒng)可檢查出是否有硬件故障。一旦有故障時(shí),開發(fā)系統(tǒng)的監(jiān)控程序?qū)⒊霈F(xiàn)不能正常工作的現(xiàn)象。故可采用此法排除硬件系統(tǒng)的一般性故障。</p><p>  有些故障只有通過軟件調(diào)試才能排除,有時(shí)還需通過軟件調(diào)試修改硬件設(shè)計(jì)。</p><p><b>  3.源程序的調(diào)試<

86、/b></p><p>  源程序的調(diào)試一般可分為分調(diào),聯(lián)調(diào)和考機(jī)3步進(jìn)行。</p><p><b> ?。?)分調(diào)</b></p><p>  首先將基本獨(dú)立的子程序調(diào)試正確,符合原設(shè)計(jì)要求,用模擬的方法將中斷服務(wù)程序初調(diào),然后將主程序按相對(duì)獨(dú)立的功能程序段,遵照應(yīng)用系統(tǒng)運(yùn)行的邏輯順序逐段進(jìn)行調(diào)試。</p><p&g

87、t;  A) 設(shè)置并輸入一組符合要求的參量,啟動(dòng)程序段運(yùn)行,觀察運(yùn)行情況或故障的影響及現(xiàn)象。</p><p>  B) 對(duì)出現(xiàn)的問題進(jìn)行仔細(xì)地分析,合理推測(cè),借助開發(fā)系統(tǒng)的調(diào)試手段,逐步縮小疑點(diǎn)范圍,直至找出問題所在進(jìn)行修改。</p><p>  C) 分析故障原因。</p><p><b> ?。?)聯(lián)調(diào)</b></p><

88、;p>  在分調(diào)基本完成的基礎(chǔ)上進(jìn)行聯(lián)調(diào),它將與整個(gè)系統(tǒng)的硬件,軟件,環(huán)</p><p>  境密切相關(guān),必須聯(lián)合在線調(diào)試。</p><p>  調(diào)試的重點(diǎn)在于主程序與各功能模塊程序段之間的連接處,按照整個(gè)軟件系統(tǒng)的執(zhí)行順序,逐個(gè)相連進(jìn)行調(diào)試。</p><p><b>  故障分析</b></p><p>  1.

89、 編好的C51程序用仿真器運(yùn)行一切正常,但寫入片子獨(dú)立運(yùn)行時(shí),運(yùn)行結(jié)果卻是錯(cuò)的。</p><p>  分析:仿真器一般跳了地址的,需要做簡(jiǎn)單的調(diào)整的,再者是檢查硬件電路了。如果仿真通過,那可能的原因就是芯片有問題,請(qǐng)重新檢查,或者換一塊片子 。</p><p>  2. 中斷陷入了死循環(huán)。</p><p>  分析:在高級(jí)中斷中修改PC值。進(jìn)入中斷時(shí)將中斷前PC的值

90、壓棧,修改棧中值,然后中斷返回時(shí)就可以從0000H開始執(zhí)行了。也可以指向任何你需要的位置。 </p><p>  進(jìn)入中斷后,棧頂?shù)膬蓚€(gè)數(shù)據(jù)為PC中斷前的值,如下操作即可。 </p><p>  POP ACC </p><p>  POP ACC </p><p>  MOV A,#RET_PCL </p&g

91、t;<p>  PUSH ACC </p><p>  MOV A,#RET_PCH </p><p>  PUSH ACC </p><p><b>  RETI </b></p><p>  其中RET_PCL, RET_PCH為要返回的地址。 </p><

92、;p>  這只是個(gè)思路,具體的話還要根據(jù)實(shí)際來編,中斷返回前還可以做一些其他工作。</p><p>  3. 現(xiàn)在的程序用仿真器仿真通過,程序正常,然后把生成的文件燒寫到芯片里面去,系統(tǒng)沒有任何反應(yīng)(用仿真器可以控制指示燈亮,將程序?qū)懙叫酒锶ブ缶筒涣亮耍?,將程序?qū)懙叫酒筮€需要如何處理。</p><p>  分析:可能是程序的起始地址沒弄好,也可能是單片機(jī)是壞了,主要問題是硬件

93、有問題。 </p><p>  4. 程序不按規(guī)定的流程執(zhí)行,程序跳轉(zhuǎn)到不可知的地址去了。</p><p>  分析:這種現(xiàn)象稱為程序跑飛,通常是由硬件引起的。堆棧開的太小了。堆棧和指針是兩個(gè)主要的影響因素,指針亂指的危險(xiǎn)性很大通常讓人莫名其妙,按步執(zhí)行看看程序是如何跑飛的,找到源頭不難解決。堆棧的溢出也是經(jīng)常發(fā)生的事情關(guān)鍵在于程序設(shè)計(jì)上對(duì)用到堆棧的地方是否加了保護(hù), 實(shí)在不行就執(zhí)行到一

94、定的階段讓堆棧指向一個(gè)固定的地方(沒有使用它的時(shí)候), 可能堆棧溢出,可能進(jìn)入死循環(huán)(如果沒有看門狗),可能邏輯方面的問題等等。</p><p><b>  6 結(jié)論與展望</b></p><p><b>  6.1結(jié)論</b></p><p>  該課題的主要任務(wù)是開發(fā)一個(gè)以MCS-51單片機(jī)為核心的電動(dòng)自行車的速度里程

95、表。本設(shè)計(jì)主要分為硬件部分和軟件部分,硬件部分著重考慮硬件電路的簡(jiǎn)單性,故盡可能簡(jiǎn)化硬件電路,節(jié)省線路板的空間,達(dá)到硬件電路最優(yōu)化設(shè)計(jì)。軟件采用匯編語言編寫,采用模塊化設(shè)計(jì)思想,程序可讀性強(qiáng)。通過仿真、實(shí)驗(yàn)驗(yàn)證了系統(tǒng)的可行,能滿足設(shè)計(jì)要求,達(dá)到設(shè)計(jì)的指標(biāo),實(shí)現(xiàn)對(duì)電動(dòng)自行車?yán)锍?速度的計(jì)算功能,并用LED顯示,里程與速度分別根據(jù)以下公式求得:</p><p>  里程=脈沖總數(shù)×車輪周長(zhǎng)</p>

96、;<p>  速度=車輪周長(zhǎng)÷車輪轉(zhuǎn)一圈所用的時(shí)間</p><p>  根據(jù)此公式將最終顯示出里程和速度。當(dāng)車輪轉(zhuǎn)動(dòng),小磁片滑過霍爾元件時(shí),霍爾元件輸出一脈沖,可根據(jù)車輪周長(zhǎng)計(jì)算里程,選擇不同的車輪周長(zhǎng),里程數(shù)的變化有所不同;當(dāng)按下開關(guān),顯示速度時(shí),LED會(huì)根據(jù)轉(zhuǎn)速的不同顯示不同的數(shù)字,當(dāng)速度超過一定速度時(shí),將啟動(dòng)報(bào)警系統(tǒng)。</p><p>  通過仿真證明本次設(shè)計(jì)

97、符合設(shè)計(jì)的要求,能實(shí)現(xiàn)對(duì)里程、速度的顯示,功能性較強(qiáng),具有一定的實(shí)踐意義,將會(huì)在許多場(chǎng)合應(yīng)用。但也有一些不足存在,當(dāng)顯示速度時(shí),若電動(dòng)自行車轉(zhuǎn)動(dòng)太快,顯示器會(huì)顯示過快,應(yīng)該將速度定時(shí)顯示,使人們能夠清楚地看出速度。</p><p><b>  6.2 展望</b></p><p>  本系統(tǒng)操作簡(jiǎn)單,易于實(shí)現(xiàn)。硬件部分采用的器件應(yīng)用較廣泛,且價(jià)格低廉,如AT89C52

98、單片機(jī)、D觸發(fā)器74LS74、存儲(chǔ)器24C02、驅(qū)動(dòng)器74LS244等。這就意味著所有的器件功能比較強(qiáng)大、穩(wěn)定。尤其是本次設(shè)計(jì)的核心元件AT89C52單片機(jī),軟件技術(shù)成熟,并具有種類齊全的支持芯片。這類微處理器既可用作控制器又適合于做數(shù)據(jù)處理,而且成本也甚是低廉。軟件采用模塊化設(shè)計(jì),可讀性強(qiáng),方便二次開發(fā)。本次設(shè)計(jì)電路簡(jiǎn)單、低成本,而且能夠滿足人們對(duì)高性能、多功能電動(dòng)自行車的要求,可在很多里程/速度測(cè)量場(chǎng)合使用,具有廣泛的應(yīng)用前景。&l

99、t;/p><p><b>  致 謝</b></p><p>  本次畢業(yè)設(shè)計(jì)是在指導(dǎo)老王義琴的指導(dǎo)下完成的。忙碌了兩個(gè)多月,我的畢業(yè)設(shè)計(jì)課題也終將告一段落。編譯程序時(shí)點(diǎn)擊運(yùn)行,也基本達(dá)到預(yù)期的效果,虛榮的成就感在沒人的時(shí)候也總會(huì)冒上心頭。但由于能力和時(shí)間的關(guān)系,總是覺得有很多不盡人意的地方,可是,我又會(huì)有點(diǎn)自戀式地安慰自己:做一件事情,不必過于在乎最終的結(jié)果,可貴的是

100、過程中的收獲。以此語言來安撫我尚沒平復(fù)的心。畢業(yè)設(shè)計(jì),也許是我大學(xué)生涯交上的最后一個(gè)作業(yè)了。想籍次機(jī)會(huì)感謝在校期間四年以來給我?guī)椭乃欣蠋?、同學(xué),你們的友誼是我人生的財(cái)富,是我生命中不可或缺的一部分。我的畢業(yè)指導(dǎo)老師王義琴老師,雖然我們是在開始畢設(shè)時(shí)才認(rèn)識(shí),但他卻給我不厭其煩的指導(dǎo),并提供了很多與該研究相關(guān)的重要信息,培養(yǎng)了我們對(duì)科學(xué)研究的嚴(yán)謹(jǐn)態(tài)度和創(chuàng)新精神。這將非常有利于我們今后的學(xué)習(xí)和工作。在此表示衷心的感謝! </p>

101、;<p><b>  參考文獻(xiàn)</b></p><p>  [1]張友德,趙志英,涂時(shí)亮. 單片微型機(jī)原理、應(yīng)用與實(shí)驗(yàn)[M].上海:復(fù)旦大學(xué)出版社,2000.</p><p>  [2]勒達(dá). 單片機(jī)應(yīng)用系統(tǒng)開發(fā)實(shí)例導(dǎo)航[M].北京:人民郵電出版社,2003.</p><p>  [3]薛鈞義,張彥斌. 單片微型計(jì)算機(jī)及其應(yīng)用[D

102、].西安:西安交通大學(xué)出版社,2001.</p><p>  [4]涂時(shí)亮.單片機(jī)軟件設(shè)計(jì)技術(shù)[D].重慶:科學(xué)文獻(xiàn)出版社重慶分社,1987.</p><p>  [5]王毅.單片機(jī)器件應(yīng)用手冊(cè)[M].北京:人民郵電出版社,1995.</p><p>  [6]何立民.單片機(jī)應(yīng)用技術(shù)選編[M].北京:北京航空航天大學(xué)出版社,1996.</p><

103、p>  [7]蔡美琴.MCS-51系列單片機(jī)系統(tǒng)及其應(yīng)用[M].上海:高等教育出版社, 1992.</p><p>  [8]蘇偉斌.8051系列單片機(jī)應(yīng)用手冊(cè)[M].北京:科學(xué)出版社, 1997.</p><p>  [9]馬家辰.MCS-51單片機(jī)原理及接口技術(shù)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社 ,1997.</p><p>  [10]藏海河.單片機(jī)原

104、理及應(yīng)用[M].重慶:重慶大學(xué)出版社,2004.</p><p>  [11]劉文秀.單片機(jī)仿真[J].中國學(xué)術(shù)期刊,2004,6(5):56-61.</p><p>  [12]楊雪梅.單片機(jī)軟件的抗干擾設(shè)計(jì)[J].中國學(xué)術(shù)期刊,2006,3(8):18-25.</p><p><b>  附 錄</b></p><p&g

105、t;  電動(dòng)自行車的速度里程表硬件系統(tǒng)原理圖</p><p>  CS0832 EQU 0a000h</p><p>  MODE EQU 01010001b ;timer1:mode1、計(jì)數(shù)器</p><p>  ;timer0:mode1、定時(shí)器</p><p>  DATA1 EQU 60H<

106、;/p><p>  DATA2 EQU 62H</p><p>  DATA3 EQU 64H</p><p>  CWADD1 EQU 08000H ;寫指令代碼地址(E1)</p><p>  DWADD1 EQU 08001H ;寫顯示數(shù)據(jù)地址(E1)</p><p&g

107、t;  CRADD1 EQU 08002H ;讀狀態(tài)字地址(E1)</p><p>  DRADD1 EQU 08003H ;讀顯示數(shù)據(jù)地址(E1)</p><p>  CWADD2 EQU 08004H ;寫指令代碼地址(E2)</p><p>  DWADD2 EQU 08005H ;寫顯示數(shù)進(jìn)地址(E2)

108、</p><p>  CRADD2 EQU 08006H ;讀狀態(tài)字地址(E2)</p><p>  DRADD2 EQU 08007H ;讀顯示數(shù)據(jù)地址(E2)</p><p>  PD1 EQU 3DH ;122/2 分成左右兩半屏 122x32</p><p>  COLUMN

109、EQU 30H ;列數(shù)據(jù)寄存器</p><p>  PAGE_ EQU 31H ;頁地址寄存器 D1,DO:頁地址</p><p>  CODE_ EQU 32H ;字符代碼寄存器</p><p>  COUNT EQU 33H ;計(jì)數(shù)器</p><p>  D

110、IR equ 34h</p><p>  CTEMP EQU 38H</p><p>  COM EQU 20H ;指令寄存器</p><p>  DAT EQU 21H ;數(shù)據(jù)寄存器</p><p>  ORG 00h</p><p&g

111、t;  JMP MAIN</p><p>  ORG 0BH</p><p>  LJMP TIMER</p><p><b>  ; 主程序段</b></p><p><b>  MAIN:</b></p><p>  LCALL INIT ;顯示器

112、初始化</p><p>  LCALL CLEAR ;顯示模塊內(nèi)存清零</p><p>  MOV CTEMP,#0</p><p>  MOV DATA1,#00H</p><p>  MOV DATA2,#00H</p><p>  MOV DATA3,#00H</p>&

溫馨提示

  • 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)論