自行車?yán)锍瘫碓O(shè)計(jì)_第1頁
自行車?yán)锍瘫碓O(shè)計(jì)_第2頁
自行車?yán)锍瘫碓O(shè)計(jì)_第3頁
自行車?yán)锍瘫碓O(shè)計(jì)_第4頁
自行車?yán)锍瘫碓O(shè)計(jì)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、遼遼 寧寧 工工 業(yè)業(yè) 大大 學(xué)學(xué)單片機(jī)原理及接口技術(shù)單片機(jī)原理及接口技術(shù)課程設(shè)計(jì)課程設(shè)計(jì)(論文)(論文)題目:題目:自行車?yán)锍瘫碓O(shè)計(jì)自行車?yán)锍瘫碓O(shè)計(jì)院(系):院(系): 電氣工程學(xué)院電氣工程學(xué)院 專業(yè)班級(jí):專業(yè)班級(jí): 自動(dòng)化自動(dòng)化101101 學(xué)學(xué) 號(hào):號(hào): 100302016100302016 學(xué)生姓名:學(xué)生姓名: 郎奕翔郎奕翔 指導(dǎo)教師:指導(dǎo)教師: 起止時(shí)間:起止時(shí)間: 2013.7.3-2013.7.12 本科生課程設(shè)計(jì)(論文)III課程設(shè)計(jì)(論文)任務(wù)及評語課程設(shè)計(jì)(論文)任務(wù)及評語院(系):電氣工程學(xué)院 教研室:自動(dòng)化注:成績:平時(shí)20% 論文質(zhì)量60% 答辯20% 以百分制計(jì)算學(xué)

2、 號(hào)100302016學(xué)生姓名郎奕翔專業(yè)班級(jí) 自動(dòng)化101設(shè)計(jì)題目自行車?yán)锍瘫碓O(shè)計(jì)課程設(shè)計(jì)(論文)任務(wù)課題完成的設(shè)計(jì)任務(wù)及功能、要求、技術(shù)參數(shù)課題完成的設(shè)計(jì)任務(wù)及功能、要求、技術(shù)參數(shù)實(shí)現(xiàn)功能實(shí)現(xiàn)功能設(shè)計(jì)一個(gè)自行車?yán)锍瘫?,以單片機(jī)為核心,通過安裝在車輪支架上的傳感器感應(yīng)車輪轉(zhuǎn)過的圈數(shù),計(jì)算出速度和里程等結(jié)果數(shù)據(jù),并且進(jìn)行顯示。具體要求如下: 1. 在自行車行進(jìn)時(shí),實(shí)時(shí)顯示當(dāng)前的自行車車速,以“轉(zhuǎn)/秒”為單位。2. 實(shí)時(shí)顯示當(dāng)前的里程,以“公里”為單位。2. 超速時(shí)聲音報(bào)警,并用 LED 燈閃爍。設(shè)計(jì)任務(wù)及要求設(shè)計(jì)任務(wù)及要求1. 確定系統(tǒng)設(shè)計(jì)方案,包括控制器的選擇,檢測電路設(shè)計(jì),顯示電路設(shè)計(jì);2.

3、 完成系統(tǒng)程序設(shè)計(jì);并繪制程序流程圖;3. 要求認(rèn)真獨(dú)立完成所規(guī)定的全部內(nèi)容;所設(shè)計(jì)的內(nèi)容要求正確、合理;4. 按學(xué)校規(guī)定的書寫格式,撰寫、打印設(shè)計(jì)說明書一份;設(shè)計(jì)說明書應(yīng)在4000 字以上。技術(shù)參數(shù)技術(shù)參數(shù)1. 檢測自行車車速誤差小于 5%;2. 4 位顯示當(dāng)前自行車車速和里程數(shù)。工作計(jì)劃1. 布置任務(wù),查閱資料,確定系統(tǒng)的組成(1 天)2. 對系統(tǒng)功能進(jìn)行分析(1 天)3. 系統(tǒng)硬件電路設(shè)計(jì)(2 天)4. 系統(tǒng)軟件設(shè)計(jì)(2 天)5、實(shí)驗(yàn)測試、答辯。 (2 天)6. 撰寫、打印設(shè)計(jì)說明書(2 天)指導(dǎo)教師評語及成績平時(shí): 論文質(zhì)量: 答辯: 指導(dǎo)教師簽字: 總成績: 年 月 日本科生課程設(shè)計(jì)

4、(論文)IV摘摘 要要隨著居民生活水平的不斷提高,自行車不再僅僅是普通的運(yùn)輸、代步的工具,而是成為人們娛樂、休閑、鍛煉的首選。自行車的速度里程表能夠滿足人們最基本的需求,讓人們能清楚地知道當(dāng)前的速度、里程等物理量。本論文主要闡述一種基于霍爾元件的自行車的速度里程表的設(shè)計(jì),以 AT89C52 單片機(jī)為核心,A44E 霍爾傳感器測轉(zhuǎn)數(shù),實(shí)現(xiàn)對自行車?yán)锍?速度的測量統(tǒng)計(jì),采用 24C02 實(shí)現(xiàn)在系統(tǒng)掉電的時(shí)候保存里程信息,并能將自行車的里程數(shù)及速度用 LED 實(shí)時(shí)顯示。文章詳細(xì)介紹了自行車的速度里程表的硬件電路和軟件設(shè)計(jì)。硬件部分利用霍爾元件將自行車每轉(zhuǎn)一圈的脈沖數(shù)傳入單片機(jī)系統(tǒng),然后單片機(jī)系統(tǒng)將信

5、號(hào)經(jīng)過處理送顯示。軟件部分用匯編語言進(jìn)行編程,采用模塊化設(shè)計(jì)思想。該系統(tǒng)硬件電路簡單,子程序具有通用性,完全符合設(shè)計(jì)要求。關(guān)鍵詞:關(guān)鍵詞:霍爾元件;單片機(jī);LED 顯示本科生課程設(shè)計(jì)(論文)V目目 錄錄第 1 章 緒論.11.1 課題背景介紹 .11.2 課題研究意義 .11.3 課題研究的主要內(nèi)容 .1第 2 章 自行車的速度里程表總體方案設(shè)計(jì).22.1 系統(tǒng)實(shí)現(xiàn)功能 .22.2 系統(tǒng)方案論證 .2第 3 章 自行車的速度里程表硬件電路設(shè)計(jì).53.1 霍爾傳感器模塊 .53.2 單片機(jī)模塊 .83.3 外部存儲(chǔ)模塊 .133.4 單片機(jī)外圍電路的設(shè)計(jì) .14第 4 章 自行車的速度里程表軟件

6、程序設(shè)計(jì).204.1 自行車的速度里程表總體程序設(shè)計(jì) .204.1 數(shù)據(jù)處理子程序的設(shè)計(jì) .204.2 顯示子程序的設(shè)計(jì) .24第 5 章 系統(tǒng)調(diào)試與分析.285.1 系統(tǒng)仿真調(diào)試 .285.2 調(diào)試故障及原因分析 .28第 6 章 課程設(shè)計(jì)總結(jié).30本科生課程設(shè)計(jì)(論文)1第 1 章 緒論1.1 課題背景介紹自行車被發(fā)明及使用到現(xiàn)在已有兩百多年的歷史,這兩百年間人類在不斷的嘗試與研發(fā)過程中,將玩具式的木馬車轉(zhuǎn)換到今日各式新穎休閑運(yùn)動(dòng)自行車,自行車發(fā)展的目的也從最早的交通代步的工具轉(zhuǎn)換成休閑娛樂運(yùn)動(dòng)的用途。隨著居民生活水平的不斷提高,自行車不再僅僅是普通的運(yùn)輸、代步的工具,而是成為人們娛樂、休

7、閑、鍛煉的首選。因此,人們希望自行車的功用更強(qiáng)大,能給人們帶來更多的方便。自行車?yán)锍趟俣缺碜鳛樽孕熊嚨囊淮筝o助工具也正是隨著這個(gè)要求而迅速發(fā)展的,其功能也逐漸從單一的里程顯示發(fā)展到速度、時(shí)間顯示,甚至有的還具有測量騎車人的心跳、顯示騎車人熱量消耗等功能。采用單片機(jī)設(shè)計(jì)一種體積小、操作簡單的便攜式自行車的速度里程表,它能自動(dòng)地顯示當(dāng)前自行車行走的距離及運(yùn)行的速度,可以廣泛用于個(gè)人、家庭、比賽等場合的測速、里程顯示等其他功能。 1.2 課題研究意義自行車速度里程表已成為人們?nèi)粘I钪斜夭豢缮俚谋匦杵罚瑥V泛用于個(gè)人家庭及比賽等公共場合,給人們的生活,出行,工作帶來了極大的方便,由于自行車速度里程表的

8、數(shù)字集成電路的發(fā)展和采用了先進(jìn)的傳感器技術(shù),使自行車速度里程表有測量準(zhǔn)確、性能穩(wěn)定、攜帶方便等優(yōu)點(diǎn),它還用于測速,里程計(jì)算及自動(dòng)控制等各個(gè)領(lǐng)域。盡管目前市場上已有現(xiàn)成的自行車速度里程表集成電路芯片出售,價(jià)格便宜,使用也很方便。但鑒于自行車速度里程表的基本組成包含了數(shù)字電路、單片機(jī)及自動(dòng)檢測的主要組成部分。因此進(jìn)行自行車速度里程表的設(shè)計(jì)是必要的,研究自行車速度里程表及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。1.3 課題研究的主要內(nèi)容本課題研究的主要內(nèi)容是利用霍爾元件,單片機(jī)等部件設(shè)計(jì)一個(gè)可用的 LED 數(shù)碼實(shí)時(shí)顯示速度和里程的自行車速度里程表。能顯示速度。里程,并可以通過按鍵進(jìn)行切換。通過編程使單片機(jī)具

9、有測速并計(jì)算里程的功能,并通過按鍵切換兩種功能,再通過模塊顯示時(shí)間,霍爾傳感器和外部存儲(chǔ)對單片機(jī)提供脈沖信號(hào)和數(shù)據(jù)記錄,從本科生課程設(shè)計(jì)(論文)2而實(shí)現(xiàn)調(diào)整與現(xiàn)實(shí)的功能。本科生課程設(shè)計(jì)(論文)3第 2 章 自行車的速度里程表總體方案設(shè)計(jì)2.1 系統(tǒng)實(shí)現(xiàn)功能本設(shè)計(jì)的任務(wù)是:以通用 MCS-52 單片機(jī)為處理核心,用傳感器將車輪的轉(zhuǎn)數(shù)轉(zhuǎn)換為電脈沖,進(jìn)行處理后送入單片機(jī)。里程及速度的測量,是經(jīng)過 MCS-52 的定時(shí)/計(jì)數(shù)器測出總的脈沖數(shù)和每轉(zhuǎn)一圈的時(shí)間,再經(jīng)過單片機(jī)的計(jì)算得出,其結(jié)果通過 LED 顯示器顯示出來。本系統(tǒng)總體思路如下:假定輪圈的周長為 L,在輪圈上安裝 m 個(gè)永久磁鐵,則測得的里程值

10、最大誤差為 L/m。經(jīng)綜合分析,本設(shè)計(jì)中取 m=1。當(dāng)輪子每轉(zhuǎn)一圈,通過開關(guān)型霍爾元件傳感器采集到一個(gè)脈沖信號(hào),并從引腳 P3.2 中斷 0 端輸入,傳感器每獲取一個(gè)脈沖信號(hào)即對系統(tǒng)提供一次計(jì)數(shù)中斷。每次中斷代表車輪轉(zhuǎn)動(dòng)一圈,中斷數(shù) n 輪圈的周長為 L 的乘積為里程值。計(jì)數(shù)器 T1 計(jì)算每轉(zhuǎn)一圈所用的時(shí)間 t,就可以計(jì)算出即時(shí)速度 v。當(dāng)里程鍵按下時(shí),里程指示燈亮,LED 切換顯示當(dāng)前里程,與當(dāng)速度鍵按下時(shí),速度指示燈亮,LED 切換顯示當(dāng)前速度,若自行車超速,系統(tǒng)發(fā)出報(bào)警信號(hào),指示燈閃爍。要求達(dá)到的各項(xiàng)指標(biāo)及實(shí)現(xiàn)方法如下。(1) 利用霍爾傳感器產(chǎn)生里程數(shù)的脈沖信號(hào)。(2) 對脈沖信號(hào)進(jìn)行計(jì)

11、數(shù)。實(shí)現(xiàn):利用單片機(jī)自帶的計(jì)數(shù)器 T1 對霍爾傳感器脈沖信號(hào)進(jìn)行計(jì)數(shù)。(3) 對數(shù)據(jù)進(jìn)行處理,要求用 LED 顯示里程總數(shù)和即時(shí)速度。實(shí)現(xiàn):利用軟件編程,對數(shù)據(jù)進(jìn)行處理得到需要的數(shù)值。最終實(shí)現(xiàn)目標(biāo):自行車的速度里程表具有里程、速度測試與顯示功能,采用單片機(jī)作控制,顯示電路可顯示里程及速度。2.2 系統(tǒng)方案論證2.2.1 硬件方案分析與設(shè)計(jì)測速,首先要解決是采樣的問題。使用單片機(jī)進(jìn)行測速,可以使用簡單的脈沖計(jì)數(shù)法。只要轉(zhuǎn)軸每旋轉(zhuǎn)一周,產(chǎn)生一個(gè)或固定的多個(gè)脈沖,將脈沖送入單片機(jī)中進(jìn)行計(jì)算,即可獲得轉(zhuǎn)速的信息。常用的測速元件有霍爾傳感器、光電傳感器和光電編碼器。里程測量傳感器的選擇也有以下幾種方案:

12、使用光敏電阻對里本科生課程設(shè)計(jì)(論文)4程進(jìn)行測量、利用編碼器對車輪的圈數(shù)進(jìn)行測量、利用霍爾傳感器對里程進(jìn)行測量、利用干簧管型傳感器測量里程。光敏電阻對光特別敏感,當(dāng)白天行駛時(shí),外界光源將導(dǎo)致光敏電阻發(fā)出錯(cuò)誤信號(hào);光敏電阻對環(huán)境的要求相當(dāng)高,如果光敏電阻或發(fā)光二極管被泥沙或灰塵所覆蓋,光敏電阻就不能再進(jìn)行準(zhǔn)確測量;而編碼器必須安裝在車軸上,安裝較為復(fù)雜;霍爾元件或干簧管不但不受天氣的影響,即使被泥沙或灰塵覆蓋也不會(huì)有影響,而且安裝方便。所以本設(shè)計(jì)采用霍爾元件對里程與速度進(jìn)行測量,既簡單易行,又經(jīng)濟(jì)適用。使用霍爾傳感器獲得脈沖信號(hào),其機(jī)械結(jié)構(gòu)也可以做得較為簡單,只要在轉(zhuǎn)軸的齒輪盤上粘上一粒磁鋼,

13、霍爾元件固定在前叉上,當(dāng)車子轉(zhuǎn)動(dòng)時(shí)霍爾元件靠近磁鋼,就有信號(hào)輸出,轉(zhuǎn)軸旋轉(zhuǎn)時(shí),就會(huì)不斷地產(chǎn)生脈沖信號(hào)輸出。如果在齒輪盤上粘上多粒磁鋼,可以實(shí)現(xiàn)旋轉(zhuǎn)一周,獲得多個(gè)脈沖輸出。在粘磁鋼時(shí)要注意,霍爾傳感器對磁場方向敏感,粘之前可以先手動(dòng)接近一下傳感器,如果沒有信號(hào)輸出,可以換一個(gè)方向再試。這種傳感器不怕灰塵、油污,在工業(yè)現(xiàn)場應(yīng)用廣泛。目前,單片機(jī)被廣泛的應(yīng)用于測控系統(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ī)。硬件電路系統(tǒng)結(jié)構(gòu)框圖如圖 2.1 所示。AT89C5

14、2單片機(jī)霍爾傳感器模塊(接收外部信號(hào)產(chǎn)生脈沖信號(hào))按鍵模塊(用來切換顯示和復(fù)位)外部存儲(chǔ)模塊(儲(chǔ)存產(chǎn)生的數(shù)據(jù))外部信號(hào)顯示模塊(顯示即時(shí)里程數(shù)或者是即時(shí)速度)報(bào)警模塊(提供超速報(bào)警)電源模塊(為單片機(jī)提供電源) 圖 2.1 系統(tǒng)結(jié)構(gòu)框圖2.2.2 軟件方案分析與設(shè)計(jì)通過軟件控制單片機(jī)的功能是單片機(jī)的主要特點(diǎn)和優(yōu)點(diǎn),程序的設(shè)計(jì)要考慮合本科生課程設(shè)計(jì)(論文)5理性和可讀性,遵循模塊化設(shè)計(jì)的原則,采用自頂向下的設(shè)計(jì)方法。模塊化設(shè)計(jì)使程序的可讀性好、修改及完善方便。軟件設(shè)計(jì)包括主程序、行車過程中里程和速度計(jì)算子程序、延時(shí)子程序、中斷服務(wù)子程序、顯示子程序等等。中斷子程序是將傳感器產(chǎn)生的信號(hào)接入外部中斷

15、 0,將經(jīng)過 74LS74 分頻后的信號(hào)接入外部中斷 1,利用中斷和定時(shí)器對分別對里程進(jìn)行累加、每轉(zhuǎn)一周的時(shí)間進(jìn)行測量。數(shù)據(jù)處理子程序是將進(jìn)入單片機(jī)的脈沖信號(hào)與實(shí)際要顯示值之間有一定的對應(yīng)關(guān)系,經(jīng)過軟件編程顯示所需要的值。顯示子程序是將數(shù)據(jù)處理的結(jié)果送顯示器顯示。系統(tǒng)軟件總體流程圖如圖 2.2 所示。初始化P3.0=1?計(jì)算里程顯示里程計(jì)算速度顯示速度開始圖 2.2 軟件總體流程圖本科生課程設(shè)計(jì)(論文)6第 3 章 自行車的速度里程表硬件電路設(shè)計(jì)3.1 霍爾傳感器模塊3.1.1 檢測傳感器的選用及測量原理本次設(shè)計(jì)信號(hào)的捕獲采用的是霍爾傳感器,霍爾傳感器是利用霍爾效應(yīng)制成的一種磁敏傳感器。按照霍

16、爾傳感器元件的功能可將它們分為:霍爾線性器件和霍爾開關(guān)器件,前者輸出模擬量,后者輸出數(shù)字量。 按被檢測對象的性質(zhì)可將它們的應(yīng)用分為:直接應(yīng)用和間接應(yīng)用。前者是直接檢測出受檢測對象本身的磁場或磁特性,后者是檢測受檢對象上人為設(shè)置的磁場,用這個(gè)磁場來作被檢測的信息的載體。通過它,將許多非電、非磁的物理量轉(zhuǎn)變成電量來進(jìn)行檢測和控制。3.1.2 集成開關(guān)霍爾傳感器A44E 集成霍爾開關(guān)由穩(wěn)壓器 A、霍爾電勢發(fā)生器(即硅霍爾片)B、差分放大器 C、施密特觸發(fā)器 D 和 OC 門輸出 E 五個(gè)基本部分組成,如圖 3.1(a)所示。 (1)、(2)、(3)代表集成霍爾開關(guān)的三個(gè)引出端點(diǎn)。在電源端加電壓 VC

17、C,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍爾電勢發(fā)生器的兩端,根據(jù)霍爾效應(yīng)原理,當(dāng)霍爾片處在磁場中時(shí),在垂直于磁場的方向通以電流,則與這二者相垂直的方向上將會(huì)產(chǎn)生霍爾電勢差 VH 輸出,該 VH 信號(hào)經(jīng)放大器放大后送至施密特觸發(fā)器整形,使其成為方波輸送到 OC門輸出。當(dāng)施加的磁場達(dá)到工作點(diǎn)時(shí),觸發(fā)器輸出高電壓(相對于地電位) ,使三極管導(dǎo)通,此時(shí) OC 門輸出端輸出低電壓,通常稱這種狀態(tài)為開。當(dāng)施加的磁場達(dá)到釋放點(diǎn)時(shí),觸發(fā)器輸出低電壓,三極管截止,使 OC 門輸出高電壓,這種狀態(tài)為關(guān) 。這樣兩次電壓變換,使霍爾開關(guān)完成了一次開關(guān)的動(dòng)作。工作點(diǎn)與釋放點(diǎn)的差值一定,此差值稱為磁滯,在此差值內(nèi),V0 保持不變,因而使

18、開關(guān)輸出穩(wěn)定可靠,這也就是集電成霍爾開關(guān)傳感器優(yōu)良特性之一。傳感器主要特性是它的輸出特性,即輸入磁感應(yīng)強(qiáng)度 B 與輸出電壓 V0 之間的關(guān)系。A44E 集成霍爾開關(guān)是單穩(wěn)態(tài)型,由測量數(shù)據(jù)作出的輸出特性曲線如圖 3.1(b)所示。測量時(shí),在 1、2 兩端加 5V 直流電本科生課程設(shè)計(jì)(論文)7壓,在輸出端 3 與 1 之間接一個(gè) 2k的負(fù)載電阻,如圖 3.2 所示。DABCEVCC(1)(2)GNDOUT(3)(a)0510152036912VO/VB/mT釋放點(diǎn)(OFF)工作點(diǎn)(ON)(V)(b)圖 3.1 集成開關(guān)型霍爾傳感器圖 3.2 集成霍爾開關(guān)接線圖在本次設(shè)計(jì)中,霍爾傳感器起采集信號(hào)的

19、作用。當(dāng)電源加電壓 VCC,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍爾電勢發(fā)生器的兩端,根據(jù)霍爾效應(yīng)原理,產(chǎn)生電勢差 VH,VH 信號(hào)經(jīng)放大器后送到施密特觸發(fā)整形,使其成為方波送到 OC 門輸出,其與 74LS74 芯片相連,將整形后的方波送到 74LS74 芯片中處理后送入單片機(jī)。接線圖如圖 3.3 所示。本科生課程設(shè)計(jì)(論文)8圖 3.3 霍爾集成開關(guān)接線原理圖3.1.3 74LS74 芯片的運(yùn)用74LS74 是 D 觸發(fā)器的一種,它是一個(gè)具有記憶功能的二進(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)定狀

20、態(tài)。由于其狀態(tài)的更新發(fā)生在 CP 脈沖的邊沿故又稱之為上升沿觸發(fā)的邊沿觸發(fā)器,D 觸發(fā)器的狀態(tài)只取決于時(shí)針到來前 D 端的狀態(tài)。引腳圖如圖 3.4 所示。圖 3.4 74LS74 引腳圖74LS74 芯片起分頻的作用,當(dāng)車輪每轉(zhuǎn)一圈,霍爾傳感器輸出一個(gè)低電平脈沖,通過 74LS74 進(jìn)行二分頻,二分頻后的波形的高或地電平的時(shí)間正好是霍爾傳感器開關(guān)的一個(gè)周期,霍爾傳感器輸出脈沖到,即 P3.2 口接收到對圈數(shù)計(jì)數(shù)的脈0INT沖。經(jīng) 74LS74 二分頻后的信號(hào)輸入到,內(nèi)部定時(shí)計(jì)數(shù)器測得每轉(zhuǎn)一圈所用的1INT時(shí)間,通過計(jì)算即可得里程值和即時(shí)速度。二分頻前后波形如圖 3.5 所示。在本次設(shè)計(jì)中 74

21、LS74 與霍爾傳感器相連,接受方波,然后進(jìn)行分頻,二分頻后波形的高低電平時(shí)間正好,定時(shí)器 T1 的開啟時(shí)間為車輪轉(zhuǎn)一周的時(shí)間,這樣可以計(jì)算出自行車的速度。接線原理圖如圖 3.6 所示。本科生課程設(shè)計(jì)(論文)9霍爾輸出圈脈沖二分頻后的波形圖 3.5 分頻前后對比圖圖 3.6 74LS74 接線原理圖3.2 單片機(jī)模塊3.2.1 單片機(jī)原理簡介單片機(jī)是指集成在一個(gè)芯片上的微型計(jì)算機(jī),也就是把組成微型計(jì)算機(jī)的各種功能部件,包括 CPU(Central Processing Unit)、隨機(jī)存儲(chǔ)器 RAM(Random Access Memory)、只讀存儲(chǔ)器 ROM(Read-only Memor

22、y)、基本輸入/輸出(Input/Output)接口電路。定時(shí)器/計(jì)數(shù)器等部件都制作在一塊集成芯片上,就構(gòu)成一個(gè)完整的微型計(jì)算機(jī)從而實(shí)現(xiàn)微型計(jì)算機(jī)的基本功能。單片機(jī)內(nèi)部結(jié)構(gòu)示意圖如圖 3.7 所示。本科生課程設(shè)計(jì)(論文)10定時(shí)/計(jì)數(shù)器中斷系統(tǒng)CPU存儲(chǔ)器并行 I/O 口串口 I/O 口TXDTXDRXDTINTP0-P3圖 3.7 單片機(jī)內(nèi)部結(jié)構(gòu)示意圖3.2.2 單片機(jī)的引腳功能介紹AT89C52 是高性能 CMOS 8 位單片機(jī),片內(nèi)含 8K Bytes 的可反復(fù)擦寫的只讀程序存儲(chǔ)器(EPROM)和 256 字節(jié)的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用 ATMEL 公司的高密度、非易失性存

23、儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn) MCS-51 指令系統(tǒng)及 8052 產(chǎn)品引腳兼容,片內(nèi)置通用 8 位中央處理器(CPU)和 Flash 存儲(chǔ)單元,功能強(qiáng)大,AT89C52 單片機(jī)適合于許多較為復(fù)雜控制場合應(yīng)用。引腳圖如圖 3.8 所示。圖 3.8 AT89C52 引腳圖本科生課程設(shè)計(jì)(論文)11AT89C52 提供以下標(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 的主要管腳功能如下。:外部程序存儲(chǔ)器讀選通信號(hào)。

24、在讀外部 ROM 時(shí),有效(低電平)PSENPSEN,以實(shí)現(xiàn)外部 ROM 單元的讀操作。:訪問程序存儲(chǔ)控制信號(hào)。當(dāng)信號(hào)為低電平時(shí),對 ROM 的讀操作限定EAEA在外部程序存儲(chǔ)器;當(dāng)信號(hào)為高電平時(shí),對 ROM 的讀操作是從內(nèi)部程序存儲(chǔ)器EA開始,并可延至外部程序存儲(chǔ)器。RST:復(fù)位信號(hào)。當(dāng)輸入的復(fù)位信號(hào)延續(xù)兩個(gè)機(jī)器周期以上的高電平時(shí)即為有效,用以完成單片機(jī)的復(fù)位初始化操作。XTALl 和 XTAL2:外接晶體引線端。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此二引線端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號(hào)。VSS:地線。 VCC:+5V 電源。如果把前述的信號(hào)定義為引腳第一功能的話,

25、則根據(jù)需要再定義的信號(hào)就是它的第二功能。P3 的 8 條口線都定義有第二功能,如表 3.1 所示。對于有內(nèi)部 EPROM 的單片機(jī)芯片(例如 87C51) ,為寫入程序須提供專門的編程脈沖和編程電源。它們也由引腳以第二功能的形式提供的,即:編程脈沖:30 腳(ALE/)PROG編程電壓(25V):31 腳(/VPP)EAP0.0P0.7:P0 口是一組 8 位漏極開路型雙向 I/O 口,也是地址/數(shù)據(jù)總線復(fù)用口。P1.0P1.7:P1 是一個(gè)帶內(nèi)部上拉電阻的 8 位雙向 I/O 口。P2.0P2.7:P2 是一個(gè)帶內(nèi)部上拉電阻的 8 位雙向 I/O 口。 P3.0P3.7:P3 是一個(gè)帶內(nèi)部上

26、拉電阻的 8 位雙向 I/O 口。ALE:地址鎖存控制信號(hào)。在系統(tǒng)擴(kuò)展時(shí),ALE 用于控制把 P0 口輸出的低 8位地址鎖存起來,以實(shí)現(xiàn)低位地址和數(shù)據(jù)的分時(shí)傳送。此外,由于 ALE 是以晶振1/6 的固定頻率輸出的正脈沖,因此,可作為外部時(shí)鐘或外部定時(shí)脈沖使用。:外部程序存儲(chǔ)器讀選通信號(hào)。在讀外部 ROM 時(shí),有效(低電平)PSENPSEN,以實(shí)現(xiàn)外部 ROM 單元的讀操作。本科生課程設(shè)計(jì)(論文)12:訪問程序存儲(chǔ)控制信號(hào)。當(dāng)信號(hào)為低電平時(shí),對 ROM 的讀操作限定EAEA在外部程序存儲(chǔ)器;當(dāng)信號(hào)為高電平時(shí),對 ROM 的讀操作是從內(nèi)部程序存儲(chǔ)器EA開始,并可延至外部程序存儲(chǔ)器。RST:復(fù)位信

27、號(hào)。當(dāng)輸入的復(fù)位信號(hào)延續(xù)兩個(gè)機(jī)器周期以上的高電平時(shí)即為有效,用以完成單片機(jī)的復(fù)位初始化操作。XTALl 和 XTAL2:外接晶體引線端。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此二引線端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號(hào)。P3 口引腳及其第二功能如表 3.1 所示。表 3.1 P3 口引腳與第二功能引腳第二功能信號(hào)名稱P3.0RXD串行數(shù)據(jù)接收P3.1TXD串行數(shù)據(jù)接收P3.2P3.3P3.4P3.5P3.6P3.70INT1INTT0T1WRRD外部中斷 0 申請外部中斷 1 申請定時(shí)/計(jì)數(shù)器 0 的外部寫入定時(shí)/計(jì)數(shù)器 1 的外部寫入外部 RAM 寫選通外部 RAM 讀選通

28、3.2.3 單片機(jī)中斷系統(tǒng)介紹中斷是指當(dāng)計(jì)算機(jī)執(zhí)行正常程序時(shí),系統(tǒng)中出現(xiàn)某些急需處理的事件,CPU 暫時(shí)中止當(dāng)前的程序,轉(zhuǎn)去執(zhí)行服務(wù)程序,以對發(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)中斷請求;由中斷優(yōu)先級(jí)寄存器 IP 安排各優(yōu)中斷源的優(yōu)先級(jí);同一優(yōu)先級(jí)內(nèi)各終端同時(shí)提出中斷請求時(shí),由內(nèi)部的查詢邏輯確定其響應(yīng)次序。采用的外部中斷方式包括外部中斷 0 和外部中斷 1,它們的中斷請求信號(hào)分別由單片機(jī)引腳/P3.2

29、和/P3.3 輸入。0INT1INT本科生課程設(shè)計(jì)(論文)13外部中斷請求有兩種信號(hào)方式:電平觸發(fā)方式和脈沖觸發(fā)方式。電平觸發(fā)方式的中斷請求是低電平有效。只要在和引腳上出現(xiàn)有效低電平時(shí),就激活0INT1INT外部中斷方式。脈沖觸發(fā)方式的中斷請求則是脈沖的負(fù)跳變有效。在這種方式下,在兩個(gè)相鄰機(jī)器周期內(nèi),和引腳電平發(fā)生變化,即在第一個(gè)機(jī)器周期內(nèi)0INT1INT為高電平,第二個(gè)機(jī)器周期內(nèi)為低電平,就激活外部中斷。由此可見,在脈沖方式下,中斷請求信號(hào)的高電平和低電平狀態(tài)都應(yīng)至少維持一個(gè)機(jī)器周期,以使 CPU 采樣到電平狀態(tài)的變化,本次設(shè)計(jì)所采用的觸發(fā)方式為脈沖觸發(fā)方式。a. 中斷允許控制中斷允許控制C

30、PU 對中斷系統(tǒng)所有中斷以及某個(gè)中斷源的開放和屏蔽是由中斷允許寄存器 IE控制的。IE 的狀態(tài)可通過程序由軟件設(shè)定,某位設(shè)定為 1,相應(yīng)的中斷源中斷允許;某位設(shè)定為 0,相應(yīng)的中斷源中斷屏蔽。CPU 復(fù)位時(shí),IE 各位為 0,禁止所有中斷。IE 寄存器各位的定義如下。EX0(IE.0):外部中斷允許位;0INTET0(IE.1):定時(shí)/計(jì)數(shù)器 T0 中斷允許位;EX1(IE.2):外部中斷允許位;1INTET1(IE.3):定時(shí)/計(jì)數(shù)器 T1 中斷允許位;ES(IE.4):串行口中斷允許位;EA(IE.7):CPU 中斷允許位。b. 中斷優(yōu)先級(jí)控制中斷優(yōu)先級(jí)控制AT89C52 單片機(jī)有兩個(gè)中斷

31、優(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 寄存器各位的定義如下。PX0(IP.0):外部中斷優(yōu)先級(jí)設(shè)定位;0INTPT0(IP.1):定時(shí)/計(jì)數(shù)器 T0 中斷優(yōu)先級(jí)設(shè)定位;PX1(IP.2):外部中斷中斷優(yōu)先級(jí)設(shè)定位;1INTPT1(IP.3):定時(shí)/計(jì)數(shù)器 T1 中斷優(yōu)先級(jí)設(shè)定位;PS(IP.4):串行口中斷優(yōu)先級(jí)設(shè)定位。3.2.4 單片機(jī)定時(shí)/計(jì)

32、數(shù)功能介紹AT89C52 單片機(jī)定時(shí)/計(jì)數(shù)器的工作由兩個(gè)特殊功能寄存器控制。TMOD 用于設(shè)置其工作方式;TCON 用于控制其啟動(dòng)和中斷請求。本科生課程設(shè)計(jì)(論文)14a. 工作方式寄存器工作方式寄存器 TMOD工作方式寄存器 TMOD 用于設(shè)置定時(shí)/計(jì)數(shù)器的工作方式。GATE:門控位。GATE=0 時(shí),只要用軟件使 TCON 中的 TR0 或 TR1 為 1,就可以啟動(dòng)定時(shí)/計(jì)數(shù)器工作;GATE=1 時(shí),要用軟件 TR0 或 TR1 為 1,同時(shí)外部中斷引腳或也為高電平時(shí),才能啟動(dòng)定時(shí)/計(jì)數(shù)器工作。0INT1INTC/:定時(shí)/計(jì)數(shù)模式選擇位。C/=0 為定時(shí)模式;C/=1 為計(jì)數(shù)模式。TTT

33、M1M2:工作方式設(shè)置位。定時(shí)/計(jì)數(shù)器有 4 種工作方式,由 M1M2 進(jìn)行設(shè)置。本次設(shè)計(jì) TMOD 為 90H,即選通定時(shí)/計(jì)數(shù)器 1、定時(shí)功能、工作方式 1。工作方式16 位定時(shí)/計(jì)數(shù)器。b. 控制寄存器控制寄存器 TCONTF1(TCON.7):定時(shí)/計(jì)數(shù)器 T1 溢出中斷請求標(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 可用作查詢測試的標(biāo)志。TF1 也可以用軟件置 1或清零,同硬件置 1 或清零的效果一樣。TR1(TCON.6):定時(shí)/計(jì)數(shù)器 T1 運(yùn)行控制位。

34、TR1 置 1 時(shí)時(shí),定時(shí)/ 計(jì)數(shù)器 T1開始工作;TR1 置 0 時(shí),定時(shí)/計(jì)數(shù)器 T1 停止工作。TR1 由軟件置 1 或清 0。TF0(TCON.5):定時(shí)/計(jì)數(shù)器 T0 溢出中斷請求標(biāo)志位。TR0(TCON.4):定時(shí)/計(jì)數(shù)器 T0 運(yùn)行控制位。3.3 外部存儲(chǔ)模塊AT24C02 是一個(gè) 2K 位串行 CMOSEPROM。內(nèi)部含有 256 個(gè) 8 位字節(jié),ATMEL 公司的先進(jìn) CMOS 技術(shù)實(shí)質(zhì)上減少了器件的功耗。AT24C02 有一個(gè) 16 字節(jié)頁寫緩沖器,該器件通過 I2C 總線接口進(jìn)行操作有一個(gè)專門的寫保護(hù)功能。AT24C02 支持 I2C 總線數(shù)據(jù)傳送協(xié)議。數(shù)據(jù)傳送是由產(chǎn)生串

35、行時(shí)鐘和所有起始停止信號(hào)的主器件控制的。主器件和從器件都可以作為發(fā)送器或接收器,但由主器件控制傳送數(shù)據(jù)(發(fā)送或接收)的模式,通過器件地址輸入端 A0、A1 和 A2 可以實(shí)現(xiàn)將最多 8 個(gè) 24C02 器件連接到總線上。管腳圖如 3.9 所示。本科生課程設(shè)計(jì)(論文)15SCL43218765ccVVss0A1A2AWPSDA圖 3.9 24C02 引腳圖SCL 串行時(shí)鐘:AT24C02 串行時(shí)鐘輸入管腳用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時(shí)鐘。SDA 串行數(shù)據(jù)/地址:CAT24WC02 雙向串行數(shù)據(jù)/地址管腳用于器件所有數(shù)據(jù)的發(fā)送或接收,是一個(gè)開漏輸出管腳可與其它開漏輸出或集電極開路輸出進(jìn)行線或。

36、WP 寫保護(hù):如果 WP 管腳連接到 Vcc 所有的內(nèi)容都被寫保護(hù),只能讀。當(dāng) WP管腳連接到 Vss 或懸空,允許器件進(jìn)行正常的讀/寫操作。本次設(shè)計(jì)采用的存儲(chǔ)器 24C02 是為了防止掉電時(shí)里程數(shù)據(jù)的丟失,由于 24C02的數(shù)據(jù)線和地址線是復(fù)用的,采用串口的方式傳輸數(shù)據(jù),所以只用兩根線 SCL 和SDA 與單片機(jī)傳輸數(shù)據(jù)。存儲(chǔ)器與控制車輪大小的端口相連接,可以更快捷方便的接受數(shù)據(jù),發(fā)出時(shí)鐘脈沖,便于單片機(jī)進(jìn)行存儲(chǔ)控制。接線圖如圖 3.10 所示。圖 3.10 存儲(chǔ)器原理接線圖本科生課程設(shè)計(jì)(論文)163.4 單片機(jī)外圍電路的設(shè)計(jì)3.4.1 時(shí)鐘電路的設(shè)計(jì)時(shí)鐘是單片機(jī)的心臟,單片機(jī)各功能部件的

37、運(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ì)采用前者。單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,該高增益反相放大器的輸入為芯片引腳 XTAL1,輸出端為引腳 XTAL2。這兩個(gè)引腳跨接石英晶體振蕩器和電容,就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。單片機(jī)內(nèi)部時(shí)鐘方式的振蕩電路如圖3.11 所示。 圖 3.11 單片機(jī)片內(nèi)振蕩電路電路中的電容 C1 和 C2 常選擇為 30P

38、左右。對外接電容的值雖然沒有嚴(yán)格的要求,但電容的大小會(huì)影響振蕩器的高低、振蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。而外接晶體的振蕩頻率的大小,主要取決于單片機(jī)的工作頻率范圍,每一種單片機(jī)都有自己的最大工作頻率,外接的晶體振蕩頻率不大于單片機(jī)的最大工作頻率即可。此外,如果單片機(jī)有串行通信,則應(yīng)該選擇振蕩頻率除以串行通信頻率可以除盡的晶體。本次設(shè)計(jì)晶振采用 12MHz,則該計(jì)數(shù)周期如式 3.1 所示。 S (3.1)61112 10112THz()本科生課程設(shè)計(jì)(論文)173.4.2 按鍵模塊AT89C52 單片機(jī)的復(fù)位輸入引腳 RST 為 AT89C52 提供了初始化的手段。有了它可以使程序從

39、指定處開始執(zhí)行,即從程序存儲(chǔ)器中的 0000H 地址單元開始執(zhí)行程序。在 89C52 的時(shí)鐘電路工作后,只要在 RST 引腳上出現(xiàn)兩個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)內(nèi)部則初始復(fù)位。只要 RST 保持高電平,則 89C52 循環(huán)復(fù)位。只有當(dāng)RST 由高電平變成低電平以后,89C52 才從 0000H 地址開始執(zhí)行程序。本系統(tǒng)的復(fù)位電路是采用按鍵復(fù)位的電路,是常用復(fù)位電路之一。單片機(jī)復(fù)位通過按動(dòng)按鈕產(chǎn)生高電平復(fù)位稱手動(dòng)復(fù)位。上電時(shí),剛接通電源,電容 C 相當(dāng)于瞬間短路,+5V 立即加到 RST/VPD 端,該高電平使 89C52 全機(jī)自動(dòng)復(fù)位,這就是上電復(fù)位;若運(yùn)行過程中需要程序從頭執(zhí)行,只需按動(dòng)

40、按鈕即可。按下按鈕,則直接把+5V 加到了 RST/VPD 端從而復(fù)位稱為手動(dòng)復(fù)位。復(fù)位后,P0 到 P3 并行 I/O 口全為高電平,其它寄存器全部清零,只有 SBUF 寄存器狀態(tài)不確定,復(fù)位電路如圖 3.12所示。RSTAT89C52C1R88.2KR80.2K5V 圖 3.12 按鍵復(fù)位電路在本次設(shè)計(jì)中復(fù)位電路主要給單片機(jī)提供初始化手段,與單片機(jī) RST 引腳相連,當(dāng) RST 引腳上出現(xiàn)兩個(gè)機(jī)器周期以上的高電平時(shí)單片機(jī)內(nèi)部初始化。使用按鍵復(fù)位電路的上電復(fù)位和手動(dòng)復(fù)位可以使操作變得更簡單,方便,很大程度上提高系統(tǒng)綜合性能,其接線如圖 3.13 所示。本科生課程設(shè)計(jì)(論文)183.13 復(fù)位

41、電路接線原理圖3.4.3 顯示模塊及驅(qū)動(dòng)電路本設(shè)計(jì)中采用 LED 數(shù)碼管顯示。在單片機(jī)系統(tǒng)中,通常用 LED 數(shù)碼顯示器來顯示各種數(shù)字或符號(hào)。由于它具有顯示清晰、亮度高、使用電壓低、壽命長的特點(diǎn),因此使用非常廣泛。八段 LED 顯示器由 8 個(gè)發(fā)光二極管組成。其中 7 個(gè)發(fā)光二極管構(gòu)成字型“8”的各個(gè)筆畫段,另一個(gè)小數(shù)點(diǎn)為 dp 發(fā)光二極管。LED 顯示器有兩種不同的形式:一種是發(fā)光二極管的陽極都連在一起的,稱之為共陽極 LED 顯示器;另一種是發(fā)光二極管的陰極都連在一起的,稱之為共陰極 LED 示器,本次設(shè)計(jì)采用共共陰極接法如圖 3.14 所示。圖 3.14 七(八)段 LED 顯示LED

42、顯示方式有動(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)亮掃描過程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的(約 1ms) ,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示

43、數(shù)據(jù),不會(huì)有閃爍感。本設(shè)計(jì)中 P2.0、P2.1、P2.2、P2.3 信號(hào)一起組成位選通的位選信號(hào),P0.0P0.7 信號(hào)一起組成段碼選通的段選信號(hào),通過軟件編程,先把所要顯示的數(shù)據(jù)放入存儲(chǔ)單元,然后把數(shù)據(jù)送入段選通對應(yīng)的地址,再選通某一個(gè) LED,逐步完成四個(gè) LED 的顯示,如圖 3.15 所示。本科生課程設(shè)計(jì)(論文)19圖 3.15 顯示電路接線原理圖驅(qū)動(dòng)數(shù)碼管的芯片為 74LS244,74LS244 為三態(tài)輸出的八位緩沖器和線驅(qū)動(dòng)器,若單片機(jī)輸出口直接接顯示部分電路,則電流太小,會(huì)導(dǎo)致顯示部分不能正常工作。所以在單片機(jī)輸出口先接入驅(qū)動(dòng)芯片 74LS244,增大電流,使 LED 能夠正常

44、工作。其邏輯圖如圖 3.16 所示。圖 3.16 74LS244 邏輯圖在本次設(shè)計(jì)中 74LS244 與 LED 顯示器相連,起增大電流,使 LED 正常工作的作用。該芯片由兩組組成,每組由四路輸入,輸出構(gòu)成,每組有一個(gè)控制高低電平?jīng)Q定高低電平?jīng)Q定該組數(shù)據(jù)被接通還是斷開。接線圖如圖 3.17 所示。圖 3.17 74LS244 接線原理圖本科生課程設(shè)計(jì)(論文)203.4.4 報(bào)警模塊為了能夠安全駕駛,以免危害自己與他人健康,本課題設(shè)計(jì)了報(bào)警電路,在超出預(yù)定速度時(shí)發(fā)出警報(bào),報(bào)警電路電路圖如圖 3.18 所示。圖 3.18 報(bào)警電路圖本次報(bào)警電路采用蜂鳴器報(bào)警,報(bào)警器與控制速度的 P3.1 拐角相

45、連,當(dāng)即時(shí)速度超過預(yù)定值是蜂鳴器響,指示燈閃爍,提示應(yīng)該減速。接線圖如圖 3.19 所示。圖 3.19 報(bào)警電路接線原理圖3.4.5 電源模塊供電電源分外接交流和 USB 接口的外接直流。注意事項(xiàng):電源不要超過 20V,3A,防止意外。本科生課程設(shè)計(jì)(論文)21第 4 章 自行車的速度里程表軟件程序設(shè)計(jì)4.1 自行車的速度里程表總體程序設(shè)計(jì)在硬件設(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)的功能分成許多小的功能模塊,再根據(jù)這些小的功能模塊進(jìn)行程序編寫的

46、過程。這樣的設(shè)計(jì)方法,使得系統(tǒng)的整個(gè)功能和各部分的功能趨于明朗化。當(dāng)系統(tǒng)出現(xiàn)問題,就可以根據(jù)功能設(shè)置找出問題的根源,從而更快地解決問題。所以說,在整個(gè)設(shè)計(jì)過程中,軟件設(shè)計(jì)必須與硬件設(shè)計(jì)緊密地結(jié)合在一起。 基于霍爾傳感器自行車的速度里程表的軟件設(shè)計(jì)包括上電初始化程序、中斷子程序、速度調(diào)用子程序、里程調(diào)用子程序、LED 顯示子程序、延時(shí)子程序等幾大部分。由于要實(shí)現(xiàn)很多功能,所以采用模塊化設(shè)計(jì),下面就其主要部分分別加以分析。在主程序模塊中,需要完成對各接口芯片的初始化、自行車?yán)锍毯退俣鹊某跏蓟?、中斷向量的設(shè)計(jì)以及開中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要設(shè)置啟動(dòng)/清除標(biāo)志寄存器、里程寄存器、

47、速度寄存器,并對它們進(jìn)行初始化。然后主程序?qū)⒏鶕?jù)各標(biāo)志寄存器的內(nèi)容,分別完成啟動(dòng)、清除、計(jì)程和計(jì)速等不同的操作。在單片機(jī)的各個(gè)拐角中,P1.0 和 P1.1 口分別用于顯示里程狀態(tài)和速度狀態(tài)。P1.2、P1.3、P1.6 和 P1.7 口分別用于設(shè)置輪圈的大小,低電平有效。在本次設(shè)計(jì)中其分別代表了 1m、1.2m、1.5m、和 1.8m。P3.0 是用于里程和速度切換的,低電平為顯示速度,高電平為顯示里程。中斷 0 用于對輪子圈數(shù)的計(jì)數(shù)輸入,輪子每轉(zhuǎn)一圈,霍爾傳感器輸出一個(gè)低電平脈沖。將根據(jù)里程寄存器中的內(nèi)容計(jì)算和判斷出行駛里程數(shù)。中斷 1 用于控制定時(shí)器 T1 的啟/停,當(dāng)輸入為 0 時(shí)關(guān)閉

48、定時(shí)器。此控制信號(hào)是將輪子圈數(shù)的計(jì)數(shù)經(jīng)二分頻后形成。這樣,每次定時(shí)器 T1 的開啟時(shí)間剛好為轉(zhuǎn)一圈的時(shí)間,根據(jù)輪子的周長就可以計(jì)算出自行車的速度。本科生課程設(shè)計(jì)(論文)224.1 數(shù)據(jù)處理子程序的設(shè)計(jì)4.1.1 里程計(jì)算子程序外中斷 0 服務(wù)程序用于對單片機(jī) P3.2 口輸入的圈脈沖進(jìn)行計(jì)數(shù),為十六進(jìn)制計(jì)數(shù)器。60H 為低位,62H 為高位。每次計(jì)數(shù)一次后,對里程數(shù)據(jù)進(jìn)行一次存儲(chǔ)操作。當(dāng)車輪每轉(zhuǎn)一圈,通過霍爾元件將脈沖數(shù)輸入單片機(jī)內(nèi),通過計(jì)數(shù)器計(jì)出脈沖數(shù),再用乘法子程序算出里程數(shù)。里程處理子程序流程圖如圖 4.2 所示。開始點(diǎn)亮里程指示燈將車圈數(shù)轉(zhuǎn)換成里程數(shù)顯示里程值返回圖 4.2 里程處理子

49、程序流程圖4.1.2 里程計(jì)算程序相關(guān)代碼本科生課程設(shè)計(jì)(論文)23void timer0_int() interrupt 1TH0 = 0 x3c;TL0 = 0 xaf; /設(shè)定 50ms 定時(shí)初始值timer0_num+;if(timer0_num=20)timer0_num = 0; /定時(shí) 1s 后重新定時(shí)distance_10m_num = distance_num / N;/求行駛了多少個(gè) 10 米的距離 /其中,N=10/(3.14*R/N*dst_one_sec)distance_num = distance_num % N;distance = distance + dis

50、tance_10m_num; /每秒刷新一次行駛距離if(time_key)v_distance = v_distance + distance_10m_num;/如果啟動(dòng)計(jì)時(shí)器每秒刷新一次累積距離if(distance=65000) distance = 0;if(v_distance=65000) v_distance = 0;if(dst_one_sec10) n = 1;speed = 0;/10s 內(nèi)檢測到卡片數(shù)小于 2,速度為 0sleep = on; /開啟睡眠模式 else sleep = off; /關(guān)閉睡眠模式本科生課程設(shè)計(jì)(論文)24 ;4.1.3 速度計(jì)算子程序外中斷

51、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)的值放入 68H6BH 單元。定時(shí)器計(jì)出每轉(zhuǎn)一圈所用的時(shí)間,用自行車車輪的周長除以時(shí)間就得出自行車的速度,速度子程序如圖 4.3 所示。開始開速度指示計(jì)算速度報(bào)警是否超速顯示速度返回圖 4.3 速度處理子程序流程圖4.1.4 速度計(jì)算子程序相關(guān)代碼void timer0_int() interrupt 1TH0 = 0 x3c;TL0 = 0 xaf;/設(shè)定 50ms 定時(shí)初始值timer0_num+;if(time

52、r0_num=20)speed = speed_n * dst_one_sec;/計(jì)算速度,speed=3.6*3.14*R/N*dst_one_sec/speed_n*100, 本科生課程設(shè)計(jì)(論文)25speed n 為刷新一次速度的時(shí)間. /其中,R 為車輪的半徑,N 為車輪內(nèi)安裝的卡片數(shù),/3.6 為 m/s 轉(zhuǎn)化為 km/h 的因子,100 表示顯示到小數(shù)點(diǎn)后兩位 /最高時(shí)速為 160km/h,超過此速度時(shí) dst_one_sec 溢出n = 1; /每刷新一次速度重新確定刷新周期dst_one_sec = 0; /重新檢測 1s 內(nèi)的行車距離4.2 顯示子程序的設(shè)計(jì)采用動(dòng)態(tài)掃描顯示

53、接口電路,動(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)亮掃描過程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的(約 1ms) ,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。本設(shè)計(jì) P2.0、P2.1、P2.2、P2.3 信號(hào)一

54、起組成位選通的位選信號(hào),P0.0P0.7 信號(hào)一起組成段碼選通的段選信號(hào),通過軟件編程,先把所要顯示的數(shù)據(jù)放入存儲(chǔ)單元,然后把數(shù)據(jù)送入段選通對應(yīng)的地址,再選通某一個(gè) LED,逐步完成四個(gè) LED的顯示。顯示子程序流程圖如圖 4.4 所示。本科生課程設(shè)計(jì)(論文)26開始顯示單元首地址取顯示數(shù)數(shù)據(jù)取段碼表首地址送段碼表首地址送位選到P2口調(diào)用延時(shí)4位顯示返回修改顯示單元地址求下一位圖 4.4 顯示子程序流程圖本科生課程設(shè)計(jì)(論文)274.2.1 顯示子程序相關(guān)代碼while(1)P0 = 0 xff;P2 = 0 xff;if(dis_key=on)&(!sleep)if (dis_mod

55、=speed_mod) dis_value = speed; /里程模式,顯示路程if (dis_mod=distance_mod) dis_value = distance; /速度模式,顯示速度if (dis_mod=v_speed_mod) dis_value = v_speed; /平均速度模式,顯示平均速度if (dis_mod=time_mod) dis_value = time; /計(jì)時(shí)器模式,顯示時(shí)間if (dis_mod=v_distance_mod) dis_value = v_distance; /特定距離模式,顯示兩個(gè)特定地之間的距離bit4_code = dis_va

56、lue % 10;/顯示最低位dis_value /= 10;bit3_code = dis_value % 10;/顯示次低位dis_value /= 10;bit2_code = dis_value % 10; /顯示次高位dis_value /= 10;if(dis_value!=0) /最高位滅零bit1_code = dis_value % 10; /顯示最高位elsebit1_code = 10;dis_buf0 = dis_codebit4_code;dis_buf1 = dis_codebit2_code-4; /加小數(shù)點(diǎn)dis_buf2 = dis_codebit3_code

57、; dis_buf3 = dis_codebit1_code;本科生課程設(shè)計(jì)(論文)28P0 = dis_bufdis_index;P2 = dis_digit;dis_digit *= 2; /顯示下一位if(dis_digit=0 xf0)dis_digit=0 xef;dis_index+;dis_index &= 0 x03;/ 4 個(gè)數(shù)碼管全部掃描完一遍之后,再回到第一個(gè)開始下一次掃描delayms(1);本科生課程設(shè)計(jì)(論文)29第 5 章 系統(tǒng)調(diào)試與分析5.1 系統(tǒng)仿真調(diào)試PROTEUS 系統(tǒng)仿真平臺(tái)與開發(fā)平臺(tái)是由英國 Labcenter 公司開發(fā)的,是目前世界上最完整的

58、系統(tǒng)設(shè)計(jì)與仿真平臺(tái)之一。PROTEUS 可以實(shí)現(xiàn)數(shù)字電路、模擬電路及微控制系統(tǒng)與外設(shè)的混合電路系統(tǒng)的電路仿真、系統(tǒng)協(xié)同仿真和電路圖繪制、PCB 設(shè)計(jì)等全部功能。PROTEUS 軟件能夠?qū)Ω鞣N處理器進(jìn)行實(shí)時(shí)仿真、調(diào)試與測試的 EDA 工具,真正實(shí)現(xiàn)了在沒有目標(biāo)原形時(shí)就可以對系統(tǒng)進(jìn)行調(diào)試與驗(yàn)證。在構(gòu)思好電路原理圖和編好程序之后就要對其進(jìn)行系統(tǒng)仿真,原理圖的具體設(shè)計(jì)流程如圖 5.1 所示。當(dāng)完成原理圖布線后,利用 PROTEUS ISIS 編輯環(huán)境所提供的電器規(guī)則檢查命令對設(shè)計(jì)進(jìn)行檢查,并根據(jù)系統(tǒng)提供的錯(cuò)誤檢查報(bào)告修改原理圖。直到通過電器規(guī)則檢查為止。單片機(jī)系統(tǒng)的仿真是 PROTEUS VSM 的一

59、大特色,同時(shí),本仿真系統(tǒng)將源代碼的編輯和編譯整合到同一設(shè)計(jì)環(huán)境中,這樣使得用戶可以在設(shè)計(jì)中直接編輯代碼,并且很容易地查看到用戶對源程序修改后對仿真結(jié)果的影響及是否出現(xiàn)錯(cuò)誤。源代碼通過編譯無誤后,就可以進(jìn)行仿真,在仿真過程中不斷完善電路和程序的功能最后達(dá)到本次設(shè)計(jì)的目的。5.2 調(diào)試故障及原因分析在軟件仿真過程中遇到了一些問題,遇到的具體故障和解決所使用的方法如下:a. 數(shù)碼管不顯示數(shù)碼管不顯示本次設(shè)計(jì)的電路數(shù)碼管采用共陰極接法,在仿真時(shí)錯(cuò)用共陽極數(shù)碼管,導(dǎo)致數(shù)碼管不顯示。b. P0 口顯示高阻態(tài)口顯示高阻態(tài)正常情況下 P0 口輸出應(yīng)為高(紅色)低(藍(lán)色)互換,但在實(shí)際情況下 P0 口出現(xiàn)了高阻態(tài)(灰色) ,經(jīng)翻閱資料查得 P0 口做

溫馨提示

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

評論

0/150

提交評論