自行車?yán)锍趟俣扔嫷脑O(shè)計 畢業(yè)論文_第1頁
已閱讀1頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)教學(xué)環(huán)節(jié)成果</b></p><p><b>  (2013 屆)</b></p><p>  題 目 自行車?yán)锍?速度計的設(shè)計 </p><p>  學(xué) 院 </p><p>  專 業(yè) &

2、lt;/p><p>  班 級 </p><p>  學(xué) 號 </p><p>  姓 名 </p><p>  指導(dǎo)教師 </p><p>  20

3、13年 05月18日</p><p><b>  目 錄</b></p><p><b>  摘 要1</b></p><p>  ABSTRACT2</p><p><b>  1 引 言3</b></p><p>  1.1 課題背

4、景3</p><p>  1.2 課題的主要任務(wù)及內(nèi)容3</p><p>  2 自行車的里程/速度計總體方案設(shè)計4</p><p>  2.1 任務(wù)分析與實現(xiàn)4</p><p>  2.2 自行車的里程/速度計硬件方案設(shè)計4</p><p>  2.3 自行車的里程/速度計軟件方案設(shè)計6</p>

5、;<p>  3 自行車的速度/里程計硬件電路設(shè)計8</p><p>  3.1 傳感器及其測量系統(tǒng)8</p><p>  3.1.1 霍爾傳感器的測量原理8</p><p>  3.1.2 集成開關(guān)型霍爾傳感器9</p><p>  3.2 單片機最小系統(tǒng)10</p><p>  3.2.1

6、單片機簡介10</p><p>  3.2.2 單片機最小系統(tǒng)10</p><p>  3.3 74HC573驅(qū)動器的介紹11</p><p>  3.4 顯示和報警電路的設(shè)計13</p><p>  3.4.1 顯示電路的設(shè)計14</p><p>  3.4.2 報警電路的設(shè)計15</p>

7、<p>  4 自行車的里程/速度計軟件程序設(shè)計15</p><p>  4.1 自行車的里程/速度計總體程序設(shè)計15</p><p>  4.2 子程序的設(shè)計17</p><p>  4.3 主程序的設(shè)計18</p><p>  5 系統(tǒng)調(diào)試與分析18</p><p>  5.1 系統(tǒng)仿真調(diào)試1

8、8</p><p>  5.2 調(diào)試故障及原因分析19</p><p>  5.3 PROTEUS仿真過程19</p><p>  6 結(jié)論與展望21</p><p><b>  6.1結(jié)論21</b></p><p><b>  6.2 展望22</b></

9、p><p><b>  致 謝22</b></p><p><b>  參考文獻(xiàn)23</b></p><p><b>  附 錄23</b></p><p>  1 自行車的速度里程計硬件系統(tǒng)原理圖23</p><p>  2 自行車的速度里程計仿真

10、效果圖25</p><p>  3 自行車的速度里程計PCB圖26</p><p><b>  4 元件清單26</b></p><p><b>  5 源程序27</b></p><p>  自行車?yán)锍?速度計的設(shè)計</p><p>  摘 要:本論文主要闡述一種基

11、于霍爾元件的自行車的速度里程表的設(shè)計。以 AT89C52 單片機為核心, 霍爾元件測轉(zhuǎn)數(shù),實現(xiàn)對自行車?yán)锍?速度的測量統(tǒng)計,采用 74HC573 實現(xiàn)在系統(tǒng)掉電的時候保存里程信息,利用定時中斷記錄行車時間,并用按鈕切換將自行車的里程、速度和行車時間用LED實時顯示。文章詳細(xì)介紹了自行車的速度里程計的硬件和軟件設(shè)計。硬件部分利用霍爾元件將自行車每轉(zhuǎn)一圈的脈沖數(shù)傳入單片機系統(tǒng),然后將信號經(jīng)過處理送顯示,軟件部分用C語言進(jìn)行編程,采用模塊化設(shè)

12、計思想。</p><p>  關(guān)鍵詞:里程/速度 霍爾元件 單片機 LED</p><p>  Design of bicycle mileage / speed meter</p><p>  ABSTRACT:the bicycle mileage/speed design based on the Hall element is elaborated.

13、By AT89C52 as kernel, Measuring the number of revolutions of the Hall signal generator, the measure and statistic are achieved. The range information is saved by 74HC573 when the power is off, Use timer interrupt to reco

14、rd travel time, and can use a button to switch to the bicycle mileage, speed and travel time real-time display with LED..In this article, the hardware circuit and software design of bicycle mileage</p><p>  

15、KEY WORDS: Mileage / speed; Hall element; Single chip microcomputer; LED</p><p><b>  1 引 言</b></p><p><b>  1.1 課題背景</b></p><p>  自行車被發(fā)明及使用到現(xiàn)在已有兩百多年的歷史,這兩百年間人

16、類在不斷的嘗試與研發(fā)過程中,將玩具式的木馬車轉(zhuǎn)換到今日各式新穎休閑運動自行車,自行車發(fā)展的目的也從最早的交通代步的工具轉(zhuǎn)換成休閑娛樂運動的用途。</p><p>  隨著居民生活水平的不斷提高,自行車不再僅僅是普通的運輸、代步的工具,而是成為人們娛樂、休閑、鍛煉的首選。因此,人們希望自行車的功用更強大,能給人們帶來更多的方便。自行車?yán)锍趟俣缺碜鳛樽孕熊嚨囊淮筝o助工具也正是隨著這個要求而迅速發(fā)展的,其功能也逐漸從單

17、一的里程顯示發(fā)展到速度、時間顯示,甚至有的還具有測量騎車人的心跳、顯示騎車人熱量消耗等功能。本設(shè)計采用了MCS-51系列單片機設(shè)計一種體積小、操作簡單的便攜式自行車的速度里程表,它能自動地顯示當(dāng)前自行車行走的距離及運行的速度。 </p><p>  1.2 課題的主要任務(wù)及內(nèi)容</p><p>  本課題主要任務(wù)是利用霍爾元件、單片機等部件設(shè)計一個可用LED數(shù)碼管實時顯示里程和速度的自行車

18、的速度里程表。本文主要介紹了自行車的速度里程表的設(shè)計思想、電路原理、方案論證以及元件的選擇等內(nèi)容,整體上分為硬件部分設(shè)計和軟件部分設(shè)計。</p><p>  本文首先扼要對該課題的任務(wù)進(jìn)行方案論證,包括硬件方案和軟件方案的設(shè)計;繼而具體介紹了自行車的速度里程表的硬件設(shè)計,包括傳感器的選擇、單片機的選擇、顯示電路的設(shè)計;然后闡述了該自行車的速度里程表的軟件設(shè)計,包括數(shù)據(jù)處理子程序的設(shè)計、顯示子程序的設(shè)計;最后針對仿

19、真過程遇到的問題進(jìn)行了具體說明與分析,對本次設(shè)計進(jìn)行了系統(tǒng)的總結(jié)。</p><p>  具體的硬件電路包括AT89C52單片機的外圍電路以及LED顯示電路等。</p><p>  軟件設(shè)計包括:芯片的初始化程序、定時中斷采樣子程序、顯示子程序等,軟件采用匯編語言編寫,軟件設(shè)計的思想主要是自頂向下,模塊化設(shè)計,各個子模塊逐一設(shè)計。 </p><p>  2 自行車的里

20、程/速度計總體方案設(shè)計</p><p>  2.1 任務(wù)分析與實現(xiàn)</p><p>  本設(shè)計的任務(wù)是:以通用MCS-51單片機為處理核心,用傳感器將車輪的轉(zhuǎn)數(shù)轉(zhuǎn)換為電脈沖,進(jìn)行處理后送入單片機。里程及速度的測量,是經(jīng)過MCS-51的定時/計數(shù)器測出總的脈沖數(shù)和每轉(zhuǎn)一圈的時間,再經(jīng)過單片機的計算得出,其結(jié)果通過LED顯示器顯示出來。</p><p>  本系統(tǒng)總體思

21、路如下:假定輪圈的周長為L,在輪圈上安裝m個永久磁鐵,則測得的里程值最大誤差為L/m。經(jīng)綜合分析,本設(shè)計中取m=1。當(dāng)輪子每轉(zhuǎn)一圈,通過開關(guān)型霍爾元件傳感器采集到一個脈沖信號,并從引腳P3.2中斷0端輸入,傳感器每獲取一個脈沖信號即對系統(tǒng)提供一次計數(shù)中斷。每次中斷代表車輪轉(zhuǎn)動一圈,中斷數(shù)n輪圈的周長為L的乘積為里程值。計數(shù)器T1計算每轉(zhuǎn)一圈所用的時間t,就可以計算出即時速度v。用定時器2中斷記錄自行車行駛時間,并通過接在P1.1的按鍵進(jìn)

22、行切換,同時LED切換顯示當(dāng)前行駛時間。此外若自行車超速,系統(tǒng)發(fā)出報警信號,指示燈閃爍。</p><p>  要求達(dá)到的各項指標(biāo)及實現(xiàn)方法如下:</p><p>  1. 利用霍爾傳感器產(chǎn)生里程數(shù)的脈沖信號。</p><p>  2. 對脈沖信號進(jìn)行計數(shù)。</p><p>  實現(xiàn):利用單片機自帶的計數(shù)器T1對霍爾傳感器脈沖信號進(jìn)行計數(shù)。&

23、lt;/p><p>  3. 對數(shù)據(jù)進(jìn)行處理,要求用LED顯示里程總數(shù)和即時速度。</p><p>  實現(xiàn):利用軟件編程,對數(shù)據(jù)進(jìn)行處理得到需要的數(shù)值。</p><p>  最終實現(xiàn)目標(biāo):自行車的速度里程表具有里程、速度測試、行駛時間記錄與顯示、超速報警功能,采用單片機作控制,顯示電路可顯示里程、速度、行駛時間。</p><p>  2.2 自

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

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

26、;<p>  使用霍爾傳感器獲得脈沖信號,其機械結(jié)構(gòu)也可以做得較為簡單,只要在轉(zhuǎn)軸的齒輪盤上粘上一粒磁鋼,霍爾元件固定在前叉上,當(dāng)車子轉(zhuǎn)動時霍爾元件靠近磁鋼,就有信號輸出,轉(zhuǎn)軸旋轉(zhuǎn)時,就會不斷地產(chǎn)生脈沖信號輸出。如果在齒輪盤上粘上多粒磁鋼,可以實現(xiàn)旋轉(zhuǎn)一周,獲得多個脈沖輸出。在粘磁鋼時要注意,霍爾傳感器對磁場方向敏感,粘之前可以先手動接近一下傳感器,如果沒有信號輸出,可以換一個方向再試。這種傳感器不怕灰塵、油污,在工業(yè)現(xiàn)場

27、應(yīng)用廣泛。</p><p>  霍爾傳感器是對磁敏感的傳感元件,常用于信號采集的有A44E,該傳感器是一個3端器件,外形與三極管相似,只要接上電源、地,即可工作,工作電壓范圍寬,使用非常方便。A44E的外形如圖2.1所示。</p><p>  1-Vcc 2-GND 3-OUT </p><p>  圖2-1 A44E外形圖</p><p

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

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

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

31、。</p><p>  中斷子程序是將傳感器產(chǎn)生的信號接入外部中斷0,利用中斷和定時器對分別對里程進(jìn)行累加、每轉(zhuǎn)一周的時間進(jìn)行測量。</p><p>  數(shù)據(jù)處理子程序是將進(jìn)入單片機的脈沖信號與實際要顯示值之間有一定的對應(yīng)關(guān)系,經(jīng)過軟件編程顯示所需要的值。</p><p>  顯示子程序是將數(shù)據(jù)處理的結(jié)果送顯示器顯示。</p><p><

32、;b>  各部分介紹如下:</b></p><p>  1、初始化:打開外部中斷和定時器0中斷,當(dāng)有脈沖來的時候就進(jìn)入中斷程序。</p><p>  2、外部中斷:記錄一個脈沖時間time;計算一個脈沖時間的速度,五個速度作為一個數(shù)組,高低速判斷;開啟T0,記脈沖數(shù)為n。</p><p>  3、定時器0中斷:記50毫秒時間賦值給t.</p&

33、gt;<p>  4、處理函數(shù):給出速度和路程的計算公式。</p><p>  v=0.9*pi*r/time s=0.00025*pi*r*n</p><p>  5、顯示程序:用三位數(shù)顯示速度,四位數(shù)顯示路程。</p><p>  3 自行車的速度/里程計硬件電路設(shè)計</p><p>  3.1 傳感器及其測量

34、系統(tǒng)</p><p>  本次設(shè)計信號的捕獲采用的是霍爾傳感器。 霍爾器件具有許多優(yōu)點,它們的結(jié)構(gòu)牢固、體積小、重量輕、壽命長、安裝方便、功耗小、頻率高(可達(dá)1MHz)、耐震動、不怕灰塵、油污、水汽及煙霧等的污染或腐蝕。霍爾線性器件的精度高、線性度好;霍爾開關(guān)器件無觸點、無磨損、輸出波形清晰、無抖動、無回跳、位置重復(fù)精度高。取用各種補償和保護(hù)措施的霍爾器件工作溫度范圍寬,可達(dá)-55℃~150℃。按照霍爾

35、器件的功能可將它們分為:霍爾線性器件和霍爾開關(guān)器件,前者輸出模擬量,后者輸出數(shù)字量。 按被檢測對象的性質(zhì)可將它們的應(yīng)用分為:直接應(yīng)用和間接應(yīng)用。前者是直接檢測出受檢測對象本身的磁場或磁特性,后者是檢測受檢對象上人為設(shè)置的磁場,用這個磁場來作被檢測的信息的載體。通過它,將許多非電、非磁的物理量例如力、力矩、位置、位移、速度、加速度、角度、角速度、轉(zhuǎn)數(shù)、轉(zhuǎn)速以及工作狀態(tài)發(fā)生變化的時間等,轉(zhuǎn)變成電量來進(jìn)行檢測和控制。 </p>

36、<p>  3.1.1 霍爾傳感器的測量原理</p><p>  霍爾傳感器是利用霍爾效應(yīng)制成的一種磁敏傳感器。在置于磁場中的導(dǎo)體或半導(dǎo)體通入電流I,若電流垂直磁場B,則在與磁場和電流都垂直的方向上會出現(xiàn)一個電勢差Uh,這種現(xiàn)象稱為霍爾效應(yīng)。利用霍爾效應(yīng)制成的元件稱為霍爾元件。因為它具有結(jié)構(gòu)簡單、頻率響應(yīng)寬、靈敏度高、測量線性范圍大、抗干擾能力強以及體積小、使用壽命長等一系列特點,因此被廣泛應(yīng)用于測量、

37、自動控制及信息處理等領(lǐng)域。霍爾效應(yīng)原理圖如圖3-1所示。</p><p>  圖3-1 霍爾效應(yīng)原理圖</p><p>  3.1.2 集成開關(guān)型霍爾傳感器</p><p>  A44E集成霍爾開關(guān)由穩(wěn)壓器A、霍爾電勢發(fā)生器(即硅霍爾片)B、差分放大器 C、施密特觸發(fā)器D和OC門輸出E五個基本部分組成,如圖3-2(a)所示。(1)、(2)、(3)代表集成霍爾開關(guān)的三

38、個引出端點。在電源端加電壓Vcc,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍爾電勢發(fā)生器的兩端,根據(jù)霍爾效應(yīng)原理,當(dāng)霍爾片處在磁場中時,在垂直于磁場的方向通以電流,則與這二者相垂直的方向上將會產(chǎn)生霍爾電勢差VH輸出,該VH信號經(jīng)放大器放大后送至施密特觸發(fā)器整形,使其成為方波輸送到OC門輸出。當(dāng)施加的磁場達(dá)到工作點時,觸發(fā)器輸出高電壓(相對于地電位),使三極管導(dǎo)通,此時OC門輸出端輸出低電壓,通常稱這種狀態(tài)為開 。當(dāng)施加的磁場達(dá)到釋放點時,觸發(fā)器輸出低電壓,三

39、極管截止,使OC門輸出高電壓,這種狀態(tài)為關(guān) 。這樣兩次電壓變換,使霍爾開關(guān)完成了一次開關(guān)動作。工作點與釋放點的差值一定,此差值稱為磁滯,在此差值內(nèi),V0保持不變,因而使開關(guān)輸出穩(wěn)定可靠,這也就是集電成霍爾開關(guān)傳感器優(yōu)良特性之一。傳感器主要特性是它的輸出特性,即輸入磁感應(yīng)強度B與輸出電壓V0之間的關(guān)系。A44E集成霍爾開關(guān)是單穩(wěn)態(tài)型,由測量數(shù)據(jù)作出的輸出特性曲線如圖 3</p><p>  圖3-2 集成開關(guān)型霍爾

40、傳感器</p><p>  圖3-3 集成霍爾開關(guān)接線圖</p><p>  3.2 單片機最小系統(tǒng)</p><p>  3.2.1 單片機原理簡介</p><p>  單片機是指集成在一個芯片上的微型計算機,也就是把組成微型計算機的各種功能部件,包括CPU(Central Processing Unit)、隨機存儲器RAM(Random A

41、ccess Memory)、只讀存儲器ROM(Read-only Memory)、基本輸入/輸出(Input/Output)接口電路。定時器/計數(shù)器等部件都制作在一塊集成芯片上,構(gòu)成一個完整的微型計算機從而實現(xiàn)微型計算機的基本功能。單片機內(nèi)部結(jié)構(gòu)示意圖如圖3-4所示。</p><p>  圖3-4 單片機內(nèi)部結(jié)構(gòu)示意圖</p><p>  3.2.2 單片機最小系統(tǒng)介紹</p>

42、<p>  單片機最小系統(tǒng)是指用最少的元件組成的單片機可以工作的系統(tǒng),對于51單片機來說,最小系統(tǒng)一般應(yīng)該包括:單片機、時鐘電路和復(fù)位電路。</p><p>  單片機內(nèi)部時鐘方式的振蕩電路如圖3-8所示。</p><p>  圖3-8 單片機片內(nèi)時鐘電路</p><p>  本系統(tǒng)的復(fù)位電路是采用按鍵復(fù)位的電路,如圖3-9所示,是常用復(fù)位電路之一。&

43、lt;/p><p>  圖3-9 按鍵復(fù)位電路</p><p>  工作原理:通電瞬間,RC電路充電,RST引腳出現(xiàn)高電平,只要RST端保持10ms以上高電平,就能使單片機有效地復(fù)位。 </p><p>  3.3 74HC573驅(qū)動器的介紹</p><p>  SL74HC573 跟LS/AL573 的管腳一樣。如下圖3-6器件的輸入是和

44、標(biāo)準(zhǔn)CMOS 輸出兼容的;加上拉電阻,他們能和LS/ALSTTL 輸出兼容。當(dāng)鎖存使能端為高時,這些器件的鎖存對于數(shù)據(jù)是透明的(也就是說輸出同步)。當(dāng)鎖存使能變低時,符合建立時間和保持時間的數(shù)據(jù)會被鎖存。輸出能直接接到CMOS,NMOS 和TTL 接口上操作電壓范圍:2.0V~6.0V;低輸入電流:1.0uA;CMOS 器件的高噪聲抵抗特性。</p><p>  圖3-6 SL74HC573管腳功能</p

45、><p>  表3-1 74HC573功能表</p><p>  3.4 顯示和報警電路的設(shè)計</p><p>  3.4.1 顯示電路的設(shè)計</p><p>  本設(shè)計中采用LED數(shù)碼管顯示。在單片機系統(tǒng)中,通常用LED數(shù)碼顯示器來顯示各種數(shù)字或符號。由于它具有顯示清晰、亮度高、使用電壓低、壽命長的特點,因此使用非常廣泛。八段LED顯示器由8

46、個發(fā)光二極管組成。其中7個發(fā)光二極管構(gòu)成字型“8”的各個筆畫段,另一個小數(shù)點為dp發(fā)光二極管。</p><p>  LED顯示器采用動態(tài)顯示,用74HC573驅(qū)動共陰極LED數(shù)碼管。</p><p>  圖3-10 LED數(shù)碼管顯示結(jié)構(gòu)</p><p>  OC門驅(qū)動器用573,573 即TTL 集電極開路六正相高壓驅(qū)動器.當(dāng)573輸出低電平時,沒有電流流過LED

47、,當(dāng)573輸出為開路狀態(tài)時,電流經(jīng)100限流電阻流入LED顯示器,每個七段LED的公共端都接一個573驅(qū)動器。</p><p>  本設(shè)計中采用7SEG-MPX8-CC-BLUE八位共陰極數(shù)碼管(藍(lán)色),顯示速度、路程數(shù)據(jù)和自行車行駛時間。</p><p>  3.4.2 報警電路的設(shè)計</p><p>  本次報警電路采用蜂鳴器報警,當(dāng)即時速度超過預(yù)定值是蜂鳴器響

48、,指示燈閃爍,提示應(yīng)該減速。報警電路圖如圖3.13所示。</p><p>  圖3-11 報警電路圖</p><p>  4 自行車的里程/速度計軟件程序設(shè)計</p><p>  4.1 自行車的里程/速度計總體程序設(shè)計</p><p>  基于霍爾傳感器自行車的速度里程表的軟件設(shè)計包括上電初始化程序、中斷子程序、數(shù)據(jù)處理子程序、LED顯示子

49、程序、延時子程序等幾大部分。由于要實現(xiàn)很多功能,所以采用模塊化設(shè)計,下面就其主要部分分別加以分析。</p><p>  系統(tǒng)軟件總體流程圖如圖4-1所示。</p><p>  圖4-1 軟件總體流程圖</p><p>  程序初始化,當(dāng)沒有產(chǎn)生中斷時,程序進(jìn)入處理程序,接著進(jìn)入顯示程序;當(dāng)產(chǎn)生中斷時,先進(jìn)入外部中斷服務(wù)程序和定時器0中斷服務(wù)程序,后面的和沒有產(chǎn)生中斷

50、時相同。在整個程序中中,不停地掃描有沒有產(chǎn)生中斷。</p><p>  4.2 子程序的設(shè)計</p><p>  設(shè)汽車輪子半徑為r,脈沖數(shù)為n,t=50毫秒,一個脈沖的時間為time,速度為v(km/h),路程為s(km),pi=3.14。</p><p>  子程序按模塊化的思路編寫。各子程序流程如下:</p><p>  1.初始化:設(shè)

51、置 T0計時器工作方式1,輸入口為p3.2;開總中斷。打開外中斷0中斷控制位.設(shè)置外部中斷0優(yōu)先級控制位;設(shè)置外部中斷0觸發(fā)方式為邊沿觸發(fā)方式;打開T0中斷允許; 打開T1中斷允許。</p><p>  2.外部中斷:當(dāng)P3.2口有脈沖時進(jìn)入外部中斷0。</p><p>  time=sec+t*0.05,記一個脈沖的時間; tab_v[5]=0.9*pi*r/time,計算速度并放

52、入數(shù)組中。</p><p>  高低速的判斷,當(dāng)V>=5時為高速,并用flag = 0,記高速標(biāo)志位,flag=1,記低速標(biāo)志位;</p><p>  3.定時器0中斷:當(dāng)來一個脈沖進(jìn)入定時器0中斷,給T0定時器賦50毫秒初值,當(dāng)記滿50毫秒t++。</p><p>  4.定時器1中斷:當(dāng)來一個脈沖進(jìn)入定時器1中斷,給T1定時器賦50毫秒初值,當(dāng)記滿50毫秒

53、t++,若tt==20,tt清零;再 secc++;若secc==60,secc清零;再fen++,若fen==60,fen清零;再shi++;若shi==24,shi清零;再以此秒、分、時循環(huán)。</p><p>  5.數(shù)據(jù)處理函數(shù):計算速度分高速和低速。</p><p>  速度計算公式:tab_v[5]=0.9*pi*r/time;(單位km/h)</p><p&

54、gt;  低速時:v=tab_v[5],即顯示第五個速度值。</p><p>  高速時:v+=tab_v[i];計算五個速度之和。v=v/5;求得平均速度。</p><p>  路程公式: s=0.00025*pi*r*n,隨著脈沖n的增加s不斷累加。</p><p>  6.顯示程序:用三位數(shù)顯示速度,四位數(shù)顯示路程。</p><

55、;p>  4.3 主程序的設(shè)計</p><p>  主函數(shù)在初始化程序之后采用循環(huán)設(shè)計。</p><p>  當(dāng)不斷發(fā)送脈沖時,程序從外部中斷到顯示程序一直循環(huán)。</p><p>  流程圖如下圖4-2。</p><p>  圖4-2 主程序流程圖</p><p><b>  5 系統(tǒng)調(diào)試與分析<

56、/b></p><p>  5.1 系統(tǒng)仿真調(diào)試</p><p>  PROTEUS系統(tǒng)仿真平臺與開發(fā)平臺是由英國Labcenter公司開發(fā)的,是目前世界上最完整的系統(tǒng)設(shè)計與仿真平臺之一。PROTEUS可以實現(xiàn)數(shù)字電路、模擬電路及微控制系統(tǒng)與外設(shè)的混合電路系統(tǒng)的電路仿真、系統(tǒng)協(xié)同仿真和PCB設(shè)計等全部功能。PROTEUS軟件能夠?qū)Ω鞣N處理器進(jìn)行實時仿真、調(diào)試與測試的EDA工具,真正實

57、現(xiàn)了在沒有目標(biāo)原形時就可以對系統(tǒng)進(jìn)行調(diào)試與驗證。</p><p>  在構(gòu)思好電路原理圖和編好程序之后就要對其進(jìn)行系統(tǒng)仿真,原理圖的具體設(shè)計流程如圖5.1所示。</p><p>  當(dāng)完成原理圖布線后,利用PROTEUS ISIS編輯環(huán)境所提供的電器規(guī)則檢查命令對設(shè)計進(jìn)行檢查,并根據(jù)系統(tǒng)提供的錯誤檢查報告修改原理圖。直到通過電器規(guī)則檢查為止。</p><p>  單

58、片機系統(tǒng)的仿真是PROTEUS VSM的一大特色,同時,本仿真系統(tǒng)將源代碼的編輯和編譯整合到同一設(shè)計環(huán)境中,這樣使得用戶可以在設(shè)計中直接編輯代碼,并且很容易地查看到用戶對源程序修改后對仿真結(jié)果的影響。</p><p>  源代碼通過編譯無誤后,就可以進(jìn)行仿真,在仿真過程中不斷完善電路和程序的功能最后達(dá)到本次設(shè)計的目的。</p><p>  5.2 調(diào)試故障及原因分析</p>

59、<p>  在軟件仿真過程中遇到了一些問題,具體故障和解決方法如下:</p><p><b>  1、數(shù)碼管不顯示</b></p><p>  本次設(shè)計的電路數(shù)碼管采用共陰極接法,在仿真時錯用共陽極數(shù)碼管,導(dǎo)致數(shù)碼管不顯示。</p><p>  2、按鍵切換后數(shù)碼管只顯示8個零,不會秒加一</p><p>  

60、正常情況下按一下P1_1口按鈕,數(shù)碼管上顯示00—00—00,之后再計時。通過一番檢查,并沒有發(fā)現(xiàn)程序有任何的錯誤,之后請教同學(xué)幫忙檢查,也說沒錯誤,再進(jìn)一步的仔細(xì)檢查才發(fā)現(xiàn)定時中斷用錯了,改掉之后正常顯示。</p><p>  5.3 PROTEUS仿真過程</p><p>  一、電路原理圖如圖5-1:</p><p>  圖5-1自行車速度/里程計原理圖<

61、;/p><p>  二、生成HEX文件如圖5-2。</p><p><b>  圖5-2生成文件</b></p><p>  三、編譯結(jié)果如圖5-3。</p><p><b>  圖5-3編譯結(jié)果</b></p><p><b>  6 結(jié)論與展望</b>&

62、lt;/p><p><b>  6.1結(jié)論</b></p><p>  該課題的主要任務(wù)是開發(fā)一個以MCS-51單片機為核心的自行車的速度里程計。本設(shè)計主要分為硬件部分和軟件部分,硬件部分著重考慮硬件電路的簡單性,故盡可能簡化硬件電路,節(jié)省線路板的空間,達(dá)到硬件電路最優(yōu)化設(shè)計。軟件采用C語言編寫,采用模塊化設(shè)計思想,程序可讀性強。通過仿真、實驗驗證了系統(tǒng)的可行,能滿足設(shè)計

63、要求,達(dá)到設(shè)計的指標(biāo),實現(xiàn)對自行車?yán)锍?速度的計算功能,并用LED顯示,里程與速度分別根據(jù)以下公式求得:</p><p>  設(shè)自行車輪子半徑為r,脈沖數(shù)為n,t=50毫秒,一個脈沖的時間為time,速度為v(km/h),路程為s(km), pi=3.14。</p><p>  v=0.9*pi*r/time s=0.00025*pi*r*n</p><p>

64、;  根據(jù)此公式將最終顯示出里程和速度。當(dāng)車輪轉(zhuǎn)動,小磁片滑過霍爾元件時,霍爾元件輸出一脈沖,可根據(jù)自行車輪子半徑r的不同,速度的變化有所不同;LED會根據(jù)轉(zhuǎn)速的不同顯示不同的數(shù)字,當(dāng)速度超過一定速度時,將啟動報警系統(tǒng),指示燈閃爍。當(dāng)按一下切換按鈕,顯示行車時間,再按一下按鈕,繼續(xù)顯示里程/速度。</p><p>  通過仿真證明本次設(shè)計符合設(shè)計的要求,能實現(xiàn)對里程、速度的顯示,功能性較強,具有一定的實踐意義,將

65、會在許多場合應(yīng)用。但也有一些不足存在,當(dāng)顯示速度時,若自行車轉(zhuǎn)動太快,顯示器會顯示過快,應(yīng)該將速度定時顯示,使人們能夠清楚地看出速度。</p><p><b>  6.2 展望</b></p><p>  本系統(tǒng)操作簡單,易于實現(xiàn)。硬件部分采用的器件應(yīng)用較廣泛,且價格低廉,如AT89C52單片機、霍爾傳感器、驅(qū)動器74HC573等。這就意味著所有的器件功能比較強大、穩(wěn)

66、定。尤其是本次設(shè)計的核心元件AT89C52單片機,軟件技術(shù)成熟,并具有種類齊全的支持芯片。這類微處理器既可用作控制器又適合于做數(shù)據(jù)處理,而且成本也甚是低廉。軟件采用模塊化設(shè)計,可讀性強,方便二次開發(fā)。</p><p>  本次設(shè)計電路簡單、低成本,而且能夠滿足人們對高性能、多功能自行車的要求,可在很多里程/速度測量場合使用,具有廣泛的應(yīng)用前景。</p><p><b>  致

67、謝</b></p><p>  在本次畢業(yè)設(shè)計過程中我獲益匪淺,同時也遇到了許多困難,在看到我的畢業(yè)設(shè)計題目時,我的感性認(rèn)識讓我感覺題目挺簡單,但在理性分析和實際操作過程中卻處處碰壁,這都是由于基礎(chǔ)知識不牢造成的,最后在老師同學(xué)的指導(dǎo)下,加上自己在網(wǎng)上查找有關(guān)資料,我對題目有了一定程度的認(rèn)識和理解,對具體的細(xì)節(jié)有了清晰的認(rèn)識。</p><p>  在這里我要感謝我的指導(dǎo)老師,是

68、他的耐心教導(dǎo),和不厭其煩地講解,使我順利地完成了畢業(yè)設(shè)計。也要感謝我的同學(xué)們,在我遇到困難時主動幫我解決,使我很快地攻克了一個又一個難關(guān)。還要感謝學(xué)校領(lǐng)導(dǎo)的關(guān)心和關(guān)懷。</p><p>  畢業(yè)設(shè)計已經(jīng)結(jié)束,但是它卻給我留下了美好的回憶,在做畢業(yè)設(shè)計的過程中加深了師生的感情和同學(xué)之間的友誼,覺得每一天都是那么的充實和愉快。</p><p><b>  參考文獻(xiàn)</b>

69、</p><p>  樓然苗, 李光飛. 51系列單片機設(shè)計實例. 北京航空航天大學(xué)出版社, 2006</p><p>  松井邦彥, 梁瑞林. 傳感器應(yīng)用技術(shù)141例. 科學(xué)出版社, 2006</p><p>  李朝青. 單片機原理及接口技術(shù). 北京航空航天大學(xué)出版社, 1994</p><p>  張洪潤, 張亞凡. 傳感器技術(shù)與應(yīng)用教

70、程. 清華大學(xué)出版社, 2005</p><p>  張毅剛, 劉杰. MCS-51單片機原理及應(yīng)用. 哈爾濱工業(yè)大學(xué)出版社,2004</p><p>  黃河, 郭紀(jì)林. 單片機原理及應(yīng)用. 大連理工大學(xué)出版社, 2006</p><p>  劉燦軍. 實用傳感器. 國防工業(yè)出版社, 2004</p><p>  何希才. 傳感器及其應(yīng)用

71、. 國防工業(yè)出版社, 2001</p><p>  陳雪麗. 單片機原理及接口技術(shù).化學(xué)工業(yè)出版社, 2005</p><p><b>  附 錄</b></p><p>  1 自行車的速度里程計硬件系統(tǒng)原理圖</p><p><b>  仿真原理圖</b></p><p>

72、;<b>  電路原理圖</b></p><p>  2 自行車的速度里程計仿真效果圖</p><p>  注:計時時間顯示 注:左邊三位顯示速度,右邊四位顯示里程。</p><p>  3 自行車的速度里程計PCB圖</p><p><b>  4 元件清單</b&g

73、t;</p><p><b>  5 源程序</b></p><p>  #include<reg52.h></p><p>  #define uchar unsigned char </p><p>  #define uint unsigned int</p><p>  #de

74、fine pi 3.14</p><p>  #define r 0.33</p><p>  sbit duan = P2^0 ;</p><p>  sbit we = P2^1 ;</p><p>  sbit LED =P3^0;</p><p>  sbit P1_1=P1^1;</p&

75、gt;<p>  uchar num[8]; </p><p>  uchar t,tt,secc,fen,shi,k=0;</p><p>  uchar code tab_duan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, 0x7F,0x6F,0x77,0x7C, 0x39,0x5E,0x7

76、9,0x71,0x40}; //0-f數(shù)碼管代碼 //</p><p>  uchar code tab_we[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //位碼</p><p>  void delay(uint );</p><p><b>  bit flag;</b></p>

77、<p>  uchar t,sec;</p><p>  uint v1,s1,n;</p><p>  float time,s,v;</p><p>  float tab_v[6];//單個速度,用來求平均值</p><p>  /******************顯示函數(shù)****************/&l

78、t;/p><p>  void show(uchar j,uchar k)//j斷碼數(shù),k位碼數(shù)</p><p><b>  {</b></p><p>  P0 = 0;//消影,消除干擾</p><p>  P0 = 0;//消影,消除干擾</p><p>  duan = 1;

79、//段選打開 </p><p>  P0 = tab_duan[j];//送斷碼</p><p>  duan = 0; //關(guān)段選</p><p>  P0 = 0XFF; //消影,消除干擾</p><p>  P0 = 0XFF;//消影,消除干擾</p><p>  we = 1;//開位選

80、</p><p>  P0 = tab_we[k];//送位選碼</p><p>  we = 0;//關(guān)位選</p><p>  delay(2);//延時顯示停留</p><p><b>  }</b></p><p>  /***********延時函數(shù)***********/

81、 </p><p>  void delay(uint n)</p><p><b>  {</b></p><p><b>  uint x,y;</b></p><p>  for(x = n;x > 0;x--)</p><p>  for(y = 110;y&g

82、t;0;y--); </p><p><b>  }</b></p><p>  /*********************初始化函數(shù)********************/</p><p>  void init()</p><p><b>  {</b></p><p&g

83、t;  TMOD = 0x11;//T0計數(shù)方式1 [3][1] 輸入p3.2 TR1=1;</p><p>  TH1 =0x3c;//50000</p><p>  TL1 =0xb0;</p><p><b>  TR1=1;</b></p><p>  EA = 1; //開總中斷&l

84、t;/p><p>  EX0 = 1; //外中斷0中斷控制位.打開</p><p>  PX0 = 1; //外部中斷0優(yōu)先級控制位。</p><p>  IT0 = 1; //外部中斷0觸發(fā)方式控制位。邊緣觸發(fā)方式</p><p>  ET0 = 1; //T0中斷允許</p><p>&

85、lt;b>  ET1=1;</b></p><p><b>  }</b></p><p>  /*****************中斷*************************/</p><p>  void rupt() interrupt 0 //外中斷0</p><p>  {u

86、char i;</p><p>  time=sec+t*0.05;//一個脈沖的時間</p><p>  sec=0; t=0;//用完清零。</p><p>  tab_v[5]=0.9*pi*r/time; //速度</p><p>  if(tab_v[5]>=5)//高低速的判斷</p>

87、;<p><b>  {</b></p><p>  flag = 0;//高低速標(biāo)志位</p><p>  for(i = 0;i<6;i++)</p><p>  tab_v[i] = tab_v[i+1];//數(shù)組移數(shù)據(jù)</p><p><b>  }</b></p

88、><p><b>  else </b></p><p>  flag=1;//低速標(biāo)志位;</p><p>  TR0 = 0;//關(guān)閉T0 </p><p>  TH0 = 0x3c;//50000</p><p>  TL0 = 0xb0;</p><p>

89、;  TR0 = 1;//開啟T0 </p><p><b>  n++; </b></p><p>  if(n == 50000)//n清零</p><p><b>  n = 0;</b></p><p>  if(time >= 5)</p><p>

90、<b>  n = 0;</b></p><p><b>  }</b></p><p>  /**************定時中斷******************/</p><p>  void timer0() interrupt 1 //T0定時</p><p><b>  {

91、</b></p><p>  TH0 =0x3c;//50000</p><p>  TL0 =0xb0;</p><p><b>  t++;</b></p><p><b>  }</b></p><p>  void timer1() interru

92、pt 3 //T1定時</p><p><b>  {</b></p><p>  TH1 =0x3c;//50000</p><p>  TL1 =0xb0;</p><p><b>  tt++;</b></p><p>  if(tt==20)</p&g

93、t;<p><b>  { tt=0;</b></p><p><b>  secc++;</b></p><p>  if(secc==60)</p><p><b>  { </b></p><p><b>  secc=0;</b>&

94、lt;/p><p><b>  fen++;</b></p><p>  if(fen==60)</p><p><b>  { </b></p><p><b>  fen=0;</b></p><p><b>  shi++;</b&g

95、t;</p><p><b>  }</b></p><p>  if(shi==24)</p><p><b>  {</b></p><p><b>  shi=0;</b></p><p><b>  }</b></p&

96、gt;<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /*******************數(shù)據(jù)處理***********************/</p><p>  void

97、 date_deal()</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p><b>  if(t==20)</b></p><p><b>  {</b></p><p&g

98、t;<b>  t=0;</b></p><p><b>  sec++;</b></p><p><b>  }</b></p><p>  if(flag==1)//低速</p><p>  v=tab_v[5];</p><p><b&

99、gt;  else</b></p><p><b>  {</b></p><p><b>  v=0;</b></p><p>  for(i=0;i<6;i++)</p><p>  v+=tab_v[i];</p><p><b>  v=v

100、/6;</b></p><p><b>  }</b></p><p>  s=0.00025*pi*r*n;</p><p>  if(v1>100)</p><p><b>  {LED=1;</b></p><p><b>  delay(5

101、);</b></p><p><b>  LED=0;</b></p><p>  delay(5);}</p><p>  else LED=0 ;</p><p><b>  }</b></p><p>  /******************主函數(shù)****

102、**********/</p><p>  void main()</p><p><b>  {</b></p><p><b>  init();</b></p><p><b>  while(1)</b></p><p><b>  {

103、</b></p><p>  date_deal();</p><p><b>  v1=v*10;</b></p><p>  s1=s*10; </p><p>  if(P1_1==0) </p><p><b>  {</b></p>

104、<p><b>  delay(1);</b></p><p>  if(P1_1==0)</p><p><b>  {</b></p><p>  while(P1_1==0);</p><p><b>  k++;</b></p><p&

105、gt;<b>  if(k>1)</b></p><p><b>  {</b></p><p><b>  k=0;</b></p><p><b>  }</b></p><p><b>  }</b></p>

106、<p><b>  }</b></p><p><b>  if(k==0)</b></p><p><b>  {</b></p><p>  show(v1/100,0);//速度顯示vs</p><p>  show(v1/10%10,1);

107、</p><p>  show(v1%10,2);</p><p>  show(s1/1000%10,4);//路程顯示vs</p><p>  show(s1/100%10,5);</p><p>  show(s1/10%10,6);</p><p>  show(s1%10,7);</p

108、><p><b>  }</b></p><p><b>  if(k==1)</b></p><p><b>  {</b></p><p>  show(shi/10,0);</p><p>  show(shi%10,1);</p>&l

109、t;p>  show(16,2);</p><p>  show(fen/10,3);//時間顯示vs</p><p>  show(fen%10,4);</p><p>  show(16,5);</p><p>  show(secc/10,6);</p><p>  show(secc%10,7);&l

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。