




已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
遼遼 寧寧 工工 業(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è)班級:專業(yè)班級: 自動化自動化101101 學(xué)學(xué) 號:號: 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é)院 教研室:自動化 注:成績:平時(shí)20% 論文質(zhì)量60% 答辯20% 以百分制計(jì)算 學(xué) 號100302016學(xué)生姓名郎奕翔專業(yè)班級 自動化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)锍瘫恚詥纹瑱C(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. 完成系統(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ì)(論文) 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)將信號 經(jīng)過處理送顯示。軟件部分用匯編語言進(jìn)行編程,采用模塊化設(shè)計(jì)思想。該系統(tǒng) 硬件電路簡單,子程序具有通用性,完全符合設(shè)計(jì)要求。 關(guān)鍵詞:關(guān)鍵詞:霍爾元件;單片機(jī);LED 顯示 本科生課程設(shè)計(jì)(論文) V 目目 錄錄 第 1 章 緒論.1 1.1 課題背景介紹 .1 1.2 課題研究意義 .1 1.3 課題研究的主要內(nèi)容 .1 第 2 章 自行車的速度里程表總體方案設(shè)計(jì).2 2.1 系統(tǒng)實(shí)現(xiàn)功能 .2 2.2 系統(tǒng)方案論證 .2 第 3 章 自行車的速度里程表硬件電路設(shè)計(jì).5 3.1 霍爾傳感器模塊 .5 3.2 單片機(jī)模塊 .8 3.3 外部存儲模塊 .13 3.4 單片機(jī)外圍電路的設(shè)計(jì) .14 第 4 章 自行車的速度里程表軟件程序設(shè)計(jì).20 4.1 自行車的速度里程表總體程序設(shè)計(jì) .20 4.1 數(shù)據(jù)處理子程序的設(shè)計(jì) .20 4.2 顯示子程序的設(shè)計(jì) .24 第 5 章 系統(tǒng)調(diào)試與分析.28 5.1 系統(tǒng)仿真調(diào)試 .28 5.2 調(diào)試故障及原因分析 .28 第 6 章 課程設(shè)計(jì)總結(jié).30 本科生課程設(shè)計(jì)(論文) 1 第 1 章 緒論 1.1 課題背景介紹 自行車被發(fā)明及使用到現(xiàn)在已有兩百多年的歷史,這兩百年間人類在不斷的嘗 試與研發(fā)過程中,將玩具式的木馬車轉(zhuǎn)換到今日各式新穎休閑運(yùn)動自行車,自行車 發(fā)展的目的也從最早的交通代步的工具轉(zhuǎn)換成休閑娛樂運(yùn)動的用途。 隨著居民生活水平的不斷提高,自行車不再僅僅是普通的運(yùn)輸、代步的工具, 而是成為人們娛樂、休閑、鍛煉的首選。因此,人們希望自行車的功用更強(qiáng)大,能 給人們帶來更多的方便。自行車?yán)锍趟俣缺碜鳛樽孕熊嚨囊淮筝o助工具也正是隨著 這個(gè)要求而迅速發(fā)展的,其功能也逐漸從單一的里程顯示發(fā)展到速度、時(shí)間顯示, 甚至有的還具有測量騎車人的心跳、顯示騎車人熱量消耗等功能。采用單片機(jī)設(shè)計(jì) 一種體積小、操作簡單的便攜式自行車的速度里程表,它能自動地顯示當(dāng)前自行車 行走的距離及運(yùn)行的速度,可以廣泛用于個(gè)人、家庭、比賽等場合的測速、里程顯 示等其他功能。 1.2 課題研究意義 自行車速度里程表已成為人們?nèi)粘I钪斜夭豢缮俚谋匦杵?,廣泛用于個(gè)人家 庭及比賽等公共場合,給人們的生活,出行,工作帶來了極大的方便,由于自行車 速度里程表的數(shù)字集成電路的發(fā)展和采用了先進(jìn)的傳感器技術(shù),使自行車速度里程 表有測量準(zhǔn)確、性能穩(wěn)定、攜帶方便等優(yōu)點(diǎn),它還用于測速,里程計(jì)算及自動控制 等各個(gè)領(lǐng)域。盡管目前市場上已有現(xiàn)成的自行車速度里程表集成電路芯片出售,價(jià) 格便宜,使用也很方便。但鑒于自行車速度里程表的基本組成包含了數(shù)字電路、單 片機(jī)及自動檢測的主要組成部分。因此進(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ī)具有測速并計(jì)算里程的功能,并通過按鍵切換兩種功能,再 通過模塊顯示時(shí)間,霍爾傳感器和外部存儲對單片機(jī)提供脈沖信號和數(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è)永久磁鐵,則 測得的里程值最大誤差為 L/m。經(jīng)綜合分析,本設(shè)計(jì)中取 m=1。當(dāng)輪子每轉(zhuǎn)一圈, 通過開關(guān)型霍爾元件傳感器采集到一個(gè)脈沖信號,并從引腳 P3.2 中斷 0 端輸入,傳 感器每獲取一個(gè)脈沖信號即對系統(tǒng)提供一次計(jì)數(shù)中斷。每次中斷代表車輪轉(zhuǎn)動一圈, 中斷數(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)警信號,指示燈閃爍。 要求達(dá)到的各項(xiàng)指標(biāo)及實(shí)現(xiàn)方法如下。 (1) 利用霍爾傳感器產(chǎn)生里程數(shù)的脈沖信號。 (2) 對脈沖信號進(jìn)行計(jì)數(shù)。 實(shí)現(xiàn):利用單片機(jī)自帶的計(jì)數(shù)器 T1 對霍爾傳感器脈沖信號進(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)速的信息。常用的測速元件有霍爾傳感器、光電傳感器和光 電編碼器。里程測量傳感器的選擇也有以下幾種方案:使用光敏電阻對里 本科生課程設(shè)計(jì)(論文) 4 程進(jìn)行測量、利用編碼器對車輪的圈數(shù)進(jìn)行測量、利用霍爾傳感器對里程進(jìn)行 測量、利用干簧管型傳感器測量里程。光敏電阻對光特別敏感,當(dāng)白天行駛時(shí),外 界光源將導(dǎo)致光敏電阻發(fā)出錯(cuò)誤信號;光敏電阻對環(huán)境的要求相當(dāng)高,如果光敏電 阻或發(fā)光二極管被泥沙或灰塵所覆蓋,光敏電阻就不能再進(jìn)行準(zhǔn)確測量;而編碼器 必須安裝在車軸上,安裝較為復(fù)雜;霍爾元件或干簧管不但不受天氣的影響,即使 被泥沙或灰塵覆蓋也不會有影響,而且安裝方便。所以本設(shè)計(jì)采用霍爾元件對里程 與速度進(jìn)行測量,既簡單易行,又經(jīng)濟(jì)適用。 使用霍爾傳感器獲得脈沖信號,其機(jī)械結(jié)構(gòu)也可以做得較為簡單,只要在轉(zhuǎn)軸 的齒輪盤上粘上一粒磁鋼,霍爾元件固定在前叉上,當(dāng)車子轉(zhuǎn)動時(shí)霍爾元件靠近磁 鋼,就有信號輸出,轉(zhuǎn)軸旋轉(zhuǎn)時(shí),就會不斷地產(chǎn)生脈沖信號輸出。如果在齒輪盤上 粘上多粒磁鋼,可以實(shí)現(xiàn)旋轉(zhuǎn)一周,獲得多個(gè)脈沖輸出。在粘磁鋼時(shí)要注意,霍爾 傳感器對磁場方向敏感,粘之前可以先手動接近一下傳感器,如果沒有信號輸出, 可以換一個(gè)方向再試。這種傳感器不怕灰塵、油污,在工業(yè)現(xiàn)場應(yīng)用廣泛。 目前,單片機(jī)被廣泛的應(yīng)用于測控系統(tǒng)、工業(yè)自動化、智能儀表、集成智能傳 感器、機(jī)電一體化產(chǎn)品、家用電器領(lǐng)域、辦公自動化領(lǐng)域、汽車電子與航空航天器 電子系統(tǒng)以及單片機(jī)的多機(jī)系統(tǒng)等領(lǐng)域。在設(shè)計(jì)中選用的是 AT89C52 單片機(jī)。硬件 電路系統(tǒng)結(jié)構(gòu)框圖如圖 2.1 所示。 AT89C52 單片機(jī) 霍爾傳感器模 塊(接收外部信號 產(chǎn)生脈沖信號) 按鍵模塊(用 來切換顯示和復(fù)位) 外部存儲模塊 (儲存產(chǎn)生的數(shù)據(jù)) 外部信號 顯示模塊 (顯示即時(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)生的信號接入外部中斷 0,將經(jīng)過 74LS74 分頻后的信 號接入外部中斷 1,利用中斷和定時(shí)器對分別對里程進(jìn)行累加、每轉(zhuǎn)一周的時(shí)間進(jìn) 行測量。 數(shù)據(jù)處理子程序是將進(jìn)入單片機(jī)的脈沖信號與實(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ì)信號的捕獲采用的是霍爾傳感器,霍爾傳感器是利用霍爾效應(yīng)制成的 一種磁敏傳感器。按照霍爾傳感器元件的功能可將它們分為:霍爾線性器件和霍爾 開關(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)。在電源端加電壓 VCC,經(jīng)穩(wěn)壓器穩(wěn)壓 后加在霍爾電勢發(fā)生器的兩端,根據(jù)霍爾效應(yīng)原理,當(dāng)霍爾片處在磁場中時(shí),在垂 直于磁場的方向通以電流,則與這二者相垂直的方向上將會產(chǎn)生霍爾電勢差 VH 輸 出,該 VH 信號經(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)的動作。工作點(diǎn)與釋放點(diǎn)的差值 一定,此差值稱為磁滯,在此差值內(nèi),V0 保持不變,因而使開關(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 所示。 D A B C E VCC (1) (2) GND OUT (3) (a) 05101520 3 6 9 12 VO/V B/mT 釋放點(diǎn) (OFF) 工作點(diǎn) (ON) (V) (b) 圖 3.1 集成開關(guān)型霍爾傳感器 圖 3.2 集成霍爾開關(guān)接線圖 在本次設(shè)計(jì)中,霍爾傳感器起采集信號的作用。當(dāng)電源加電壓 VCC,經(jīng)穩(wěn)壓器 穩(wěn)壓后加在霍爾電勢發(fā)生器的兩端,根據(jù)霍爾效應(yīng)原理,產(chǎn)生電勢差 VH,VH 信號 經(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)制信息存儲器件,是 構(gòu)成多種時(shí)序電路的最基本邏輯單元。觸發(fā)器具有兩個(gè)穩(wěn)定狀態(tài),即“0”和“1”,在 一定的外界信號作用下,可以從一個(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.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 二分頻后的信號輸入到,內(nèi)部定時(shí)計(jì)數(shù)器測得每轉(zhuǎn)一圈所用的1INT 時(shí)間,通過計(jì)算即可得里程值和即時(shí)速度。二分頻前后波形如圖 3.5 所示。 在本次設(shè)計(jì)中 74LS74 與霍爾傳感器相連,接受方波,然后進(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ī)存儲器 RAM(Random Access Memory)、只讀存儲器 ROM(Read-only Memory)、基本輸入/輸出(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 存儲器 并行 I/O 口 串口 I/O 口 TX D T XD RX D T INT P0- P3 圖 3.7 單片機(jī)內(nèi)部結(jié)構(gòu)示意圖 3.2.2 單片機(jī)的引腳功能介紹 AT89C52 是高性能 CMOS 8 位單片機(jī),片內(nèi)含 8K Bytes 的可反復(fù)擦寫的只讀程 序存儲器(EPROM)和 256 字節(jié)的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用 ATMEL 公 司的高密度、非易失性存儲技術(shù)生產(chǎn),與標(biāo)準(zhǔn) MCS-51 指令系統(tǒng)及 8052 產(chǎn)品引腳兼 容,片內(nèi)置通用 8 位中央處理器(CPU)和 Flash 存儲單元,功能強(qiáng)大,AT89C52 單片 機(jī)適合于許多較為復(fù)雜控制場合應(yīng)用。引腳圖如圖 3.8 所示。 圖 3.8 AT89C52 引腳圖 本科生課程設(shè)計(jì)(論文) 11 AT89C52 提供以下標(biāo)準(zhǔn)功能:8K 字節(jié) Flash 閃速存儲器,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 的主要 管腳功能如下。 :外部程序存儲器讀選通信號。在讀外部 ROM 時(shí),有效(低電平)PSENPSEN ,以實(shí)現(xiàn)外部 ROM 單元的讀操作。 :訪問程序存儲控制信號。當(dāng)信號為低電平時(shí),對 ROM 的讀操作限定EAEA 在外部程序存儲器;當(dāng)信號為高電平時(shí),對 ROM 的讀操作是從內(nèi)部程序存儲器EA 開始,并可延至外部程序存儲器。 RST:復(fù)位信號。當(dāng)輸入的復(fù)位信號延續(xù)兩個(gè)機(jī)器周期以上的高電平時(shí)即為有 效,用以完成單片機(jī)的復(fù)位初始化操作。 XTALl 和 XTAL2:外接晶體引線端。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此二引線端用于 外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號。 VSS:地線。 VCC:+5V 電源。 如果把前述的信號定義為引腳第一功能的話,則根據(jù)需要再定義的信號就是它 的第二功能。P3 的 8 條口線都定義有第二功能,如表 3.1 所示。 對于有內(nèi)部 EPROM 的單片機(jī)芯片(例如 87C51) ,為寫入程序須提供專門的編 程脈沖和編程電源。它們也由引腳以第二功能的形式提供的,即: 編程脈沖:30 腳(ALE/)PROG 編程電壓(25V):31 腳(/VPP)EA P0.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)部上拉電阻的 8 位雙向 I/O 口。 ALE:地址鎖存控制信號。在系統(tǒng)擴(kuò)展時(shí),ALE 用于控制把 P0 口輸出的低 8 位地址鎖存起來,以實(shí)現(xiàn)低位地址和數(shù)據(jù)的分時(shí)傳送。此外,由于 ALE 是以晶振 1/6 的固定頻率輸出的正脈沖,因此,可作為外部時(shí)鐘或外部定時(shí)脈沖使用。 :外部程序存儲器讀選通信號。在讀外部 ROM 時(shí),有效(低電平)PSENPSEN ,以實(shí)現(xiàn)外部 ROM 單元的讀操作。 本科生課程設(shè)計(jì)(論文) 12 :訪問程序存儲控制信號。當(dāng)信號為低電平時(shí),對 ROM 的讀操作限定EAEA 在外部程序存儲器;當(dāng)信號為高電平時(shí),對 ROM 的讀操作是從內(nèi)部程序存儲器EA 開始,并可延至外部程序存儲器。 RST:復(fù)位信號。當(dāng)輸入的復(fù)位信號延續(xù)兩個(gè)機(jī)器周期以上的高電平時(shí)即為有 效,用以完成單片機(jī)的復(fù)位初始化操作。 XTALl 和 XTAL2:外接晶體引線端。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此二引線端用于 外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號。P3 口引 腳及其第二功能如表 3.1 所示。 表 3.1 P3 口引腳與第二功能 引腳 第二功 能 信號名稱 P3.0RXD串行數(shù)據(jù)接收 P3.1TXD串行數(shù)據(jù)接收 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 0INT 1INT T0 T1 WR RD 外部中斷 0 申請 外部中斷 1 申請 定時(shí)/計(jì)數(shù)器 0 的外部寫 入 定時(shí)/計(jì)數(shù)器 1 的外部寫 入 外部 RAM 寫選通 外部 RAM 讀選通 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 自動返回原來的程序執(zhí)行 AT89C52 系列單片機(jī)的系統(tǒng)有 5 個(gè)中斷 源,2 個(gè)優(yōu)先級,可實(shí)現(xiàn)二級中斷服務(wù)嵌套。由片內(nèi)特殊功能寄存器中的中斷允許 寄存器 IE 控制 CPU 是否響應(yīng)中斷請求;由中斷優(yōu)先級寄存器 IP 安排各優(yōu)中斷源的 優(yōu)先級;同一優(yōu)先級內(nèi)各終端同時(shí)提出中斷請求時(shí),由內(nèi)部的查詢邏輯確定其響應(yīng) 次序。 采用的外部中斷方式包括外部中斷 0 和外部中斷 1,它們的中斷請求信號分別 由單片機(jī)引腳/P3.2 和/P3.3 輸入。0INT1INT 本科生課程設(shè)計(jì)(論文) 13 外部中斷請求有兩種信號方式:電平觸發(fā)方式和脈沖觸發(fā)方式。電平觸發(fā)方式 的中斷請求是低電平有效。只要在和引腳上出現(xiàn)有效低電平時(shí),就激活0INT1INT 外部中斷方式。脈沖觸發(fā)方式的中斷請求則是脈沖的負(fù)跳變有效。在這種方式下, 在兩個(gè)相鄰機(jī)器周期內(nèi),和引腳電平發(fā)生變化,即在第一個(gè)機(jī)器周期內(nèi)0INT1INT 為高電平,第二個(gè)機(jī)器周期內(nèi)為低電平,就激活外部中斷。由此可見,在脈沖方式 下,中斷請求信號的高電平和低電平狀態(tài)都應(yīng)至少維持一個(gè)機(jī)器周期,以使 CPU 采 樣到電平狀態(tài)的變化,本次設(shè)計(jì)所采用的觸發(fā)方式為脈沖觸發(fā)方式。 a. 中斷允許控制中斷允許控制 CPU 對中斷系統(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):外部中斷允許位;0INT ET0(IE.1):定時(shí)/計(jì)數(shù)器 T0 中斷允許位; EX1(IE.2):外部中斷允許位;1INT ET1(IE.3):定時(shí)/計(jì)數(shù)器 T1 中斷允許位; ES(IE.4):串行口中斷允許位; EA(IE.7):CPU 中斷允許位。 b. 中斷優(yōu)先級控制中斷優(yōu)先級控制 AT89C52 單片機(jī)有兩個(gè)中斷優(yōu)先級,即可實(shí)現(xiàn)二級中斷服務(wù)嵌套。每個(gè)中斷源 的中斷優(yōu)先級都是由中斷優(yōu)先級寄存器 IP 中的相應(yīng)的狀態(tài)來規(guī)定的。IP 的狀態(tài)由軟 件設(shè)定,某位設(shè)定為 1,則相應(yīng)的中斷源為高優(yōu)先級中斷;某位設(shè)定為 0.則相應(yīng)的 中斷源為低優(yōu)先級中斷。單片機(jī)復(fù)位時(shí),IP 各位清 0,各中斷源同為低優(yōu)先級中斷。 IP 寄存器各位的定義如下。 PX0(IP.0):外部中斷優(yōu)先級設(shè)定位;0INT PT0(IP.1):定時(shí)/計(jì)數(shù)器 T0 中斷優(yōu)先級設(shè)定位; PX1(IP.2):外部中斷中斷優(yōu)先級設(shè)定位;1INT PT1(IP.3):定時(shí)/計(jì)數(shù)器 T1 中斷優(yōu)先級設(shè)定位; PS(IP.4):串行口中斷優(yōu)先級設(shè)定位。 3.2.4 單片機(jī)定時(shí)/計(jì)數(shù)功能介紹 AT89C52 單片機(jī)定時(shí)/計(jì)數(shù)器的工作由兩個(gè)特殊功能寄存器控制。TMOD 用于 設(shè)置其工作方式;TCON 用于控制其啟動和中斷請求。 本科生課程設(shè)計(jì)(論文) 14 a. 工作方式寄存器工作方式寄存器 TMOD 工作方式寄存器 TMOD 用于設(shè)置定時(shí)/計(jì)數(shù)器的工作方式。 GATE:門控位。GATE=0 時(shí),只要用軟件使 TCON 中的 TR0 或 TR1 為 1,就 可以啟動定時(shí)/計(jì)數(shù)器工作;GATE=1 時(shí),要用軟件 TR0 或 TR1 為 1,同時(shí)外部中斷 引腳或也為高電平時(shí),才能啟動定時(shí)/計(jì)數(shù)器工作。0INT1INT C/:定時(shí)/計(jì)數(shù)模式選擇位。C/=0 為定時(shí)模式;C/=1 為計(jì)數(shù)模式。TTT 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. 控制寄存器控制寄存器 TCON TF1(TCON.7):定時(shí)/計(jì)數(shù)器 T1 溢出中斷請求標(biāo)志位。定時(shí)/計(jì)數(shù)器 T1 計(jì)數(shù)溢出 時(shí)由硬件自動置 TF1 為 1。CPU 響應(yīng)中斷后 TF1 由硬件自動清零。T1 工作時(shí),CPU 可隨時(shí)查詢 TF 的狀態(tài)。所以,TF1 可用作查詢測試的標(biāo)志。TF1 也可以用軟件置 1 或清零,同硬件置 1 或清零的效果一樣。 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。 TF0(TCON.5):定時(shí)/計(jì)數(shù)器 T0 溢出中斷請求標(biāo)志位。 TR0(TCON.4):定時(shí)/計(jì)數(shù)器 T0 運(yùn)行控制位。 3.3 外部存儲模塊 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)生串行時(shí)鐘和所有起始停止 信號的主器件控制的。主器件和從器件都可以作為發(fā)送器或接收器,但由主器件控 制傳送數(shù)據(jù)(發(fā)送或接收)的模式,通過器件地址輸入端 A0、A1 和 A2 可以實(shí)現(xiàn) 將最多 8 個(gè) 24C02 器件連接到總線上。管腳圖如 3.9 所示。 本科生課程設(shè)計(jì)(論文) 15 SCL 4 3 2 1 8 7 6 5 cc V Vss 0 A 1 A 2 A WP SDA 圖 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)行線或。 WP 寫保護(hù):如果 WP 管腳連接到 Vcc 所有的內(nèi)容都被寫保護(hù),只能讀。當(dāng) WP 管腳連接到 Vss 或懸空,允許器件進(jìn)行正常的讀/寫操作。 本次設(shè)計(jì)采用的存儲器 24C02 是為了防止掉電時(shí)里程數(shù)據(jù)的丟失,由于 24C02 的數(shù)據(jù)線和地址線是復(fù)用的,采用串口的方式傳輸數(shù)據(jù),所以只用兩根線 SCL 和 SDA 與單片機(jī)傳輸數(shù)據(jù)。存儲器與控制車輪大小的端口相連接,可以更快捷方便的 接受數(shù)據(jù),發(fā)出時(shí)鐘脈沖,便于單片機(jī)進(jìn)行存儲控制。接線圖如圖 3.10 所示。 圖 3.10 存儲器原理接線圖 本科生課程設(shè)計(jì)(論文) 16 3.4 單片機(jī)外圍電路的設(shè)計(jì) 3.4.1 時(shí)鐘電路的設(shè)計(jì) 時(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ì)采用前者。 單片機(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 左右。對外接電容的值雖然沒有嚴(yán)格的要 求,但電容的大小會影響振蕩器的高低、振蕩器的穩(wěn)定性、起振的快速性和溫度的 穩(wěn)定性。而外接晶體的振蕩頻率的大小,主要取決于單片機(jī)的工作頻率范圍,每一 種單片機(jī)都有自己的最大工作頻率,外接的晶體振蕩頻率不大于單片機(jī)的最大工作 頻率即可。此外,如果單片機(jī)有串行通信,則應(yīng)該選擇振蕩頻率除以串行通信頻率 可以除盡的晶體。 本次設(shè)計(jì)晶振采用 12MHz,則該計(jì)數(shù)周期如式 3.1 所示。 S (3.1) 6 1 1 12 10112 T Hz () 本科生課程設(shè)計(jì)(論文) 17 3.4.2 按鍵模塊 AT89C52 單片機(jī)的復(fù)位輸入引腳 RST 為 AT89C52 提供了初始化的手段。有了 它可以使程序從指定處開始執(zhí)行,即從程序存儲器中的 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ù)位 通過按動按鈕產(chǎn)生高電平復(fù)位稱手動復(fù)位。上電時(shí),剛接通電源,電容 C 相當(dāng)于瞬 間短路,+5V 立即加到 RST/VPD 端,該高電平使 89C52 全機(jī)自動復(fù)位,這就是上 電復(fù)位;若運(yùn)行過程中需要程序從頭執(zhí)行,只需按動按鈕即可。按下按鈕,則直接 把+5V 加到了 RST/VPD 端從而復(fù)位稱為手動復(fù)位。復(fù)位后,P0 到 P3 并行 I/O 口全 為高電平,其它寄存器全部清零,只有 SBUF 寄存器狀態(tài)不確定,復(fù)位電路如圖 3.12 所示。 RST AT89C52 C1 R8 8.2K R8 0.2K 5V 圖 3.12 按鍵復(fù)位電路 在本次設(shè)計(jì)中復(fù)位電路主要給單片機(jī)提供初始化手段,與單片機(jī) RST 引腳相連, 當(dāng) RST 引腳上出現(xiàn)兩個(gè)機(jī)器周期以上的高電平時(shí)單片機(jī)內(nèi)部初始化。使用按鍵復(fù)位 電路的上電復(fù)位和手動復(fù)位可以使操作變得更簡單,方便,很大程度上提高系統(tǒng)綜 合性能,其接線如圖 3.13 所示。 本科生課程設(shè)計(jì)(論文) 18 3.13 復(fù)位電路接線原理圖 3.4.3 顯示模塊及驅(qū)動電路 本設(shè)計(jì)中采用 LED 數(shù)碼管顯示。在單片機(jī)系統(tǒng)中,通常用 LED 數(shù)碼顯示器來 顯示各種數(shù)字或符號。由于它具有顯示清晰、亮度高、使用電壓低、壽命長的特點(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 顯示方式有動態(tài)顯示和靜態(tài)顯示兩種方式。本系統(tǒng)采用動態(tài)掃描顯示接口 電路,動態(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ù), 不會有閃爍感。 本設(shè)計(jì)中 P2.0、P2.1、P2.2、P2.3 信號一起組成位選通的位選信號,P0.0 P0.7 信號一起組成段碼選通的段選信號,通過軟件編程,先把所要顯示的數(shù)據(jù) 放入存儲單元,然后把數(shù)據(jù)送入段選通對應(yīng)的地址,再選通某一個(gè) LED,逐步完成 四個(gè) LED 的顯示,如圖 3.15 所示。 本科生課程設(shè)計(jì)(論文) 19 圖 3.15 顯示電路接線原理圖 驅(qū)動數(shù)碼管的芯片為 74LS244,74LS244 為三態(tài)輸出的八位緩沖器和線驅(qū)動器, 若單片機(jī)輸出口直接接顯示部分電路,則電流太小,會導(dǎo)致顯示部分不能正常工作。 所以在單片機(jī)輸出口先接入驅(qū)動芯片 74LS244,增大電流,使 LED 能夠正常工作。 其邏輯圖如圖 3.16 所示。 圖 3.16 74LS244 邏輯圖 在本次設(shè)計(jì)中 74LS244 與 LED 顯示器相連,起增大電流,使 LED 正常工作的 作用。該芯片由兩組組成,每組由四路輸入,輸出構(gòu)成,每組有一個(gè)控制高低電平 決定高低電平?jīng)Q定該組數(shù)據(jù)被接通還是斷開。接線圖如圖 3.17 所示。 圖 3.17 74LS244 接線原理圖 本科生課程設(shè)計(jì)(論文) 20 3.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 拐角相連,當(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)行程序編寫的過程。這樣的設(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è)置啟動/清除標(biāo)志寄存器、里程寄存器、速度寄存器,并對它們進(jìn)行初始化。然后 主程序?qū)⒏鶕?jù)各標(biāo)志寄存器的內(nèi)容,分別完成啟動、清除、計(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)閉定時(shí)器。此控制 信號是將輪子圈數(shù)的計(jì)數(shù)經(jīng)二分頻后形成。這樣,每次定時(shí)器 T1 的開啟時(shí)間剛好為 轉(zhuǎn)一圈的時(shí)間,根據(jù)輪子的周長就可以計(jì)算出自行車的速度。 本科生課程設(shè)計(jì)(論文) 22 4.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)行一次存儲操作。 當(dāng)車輪每轉(zhuǎn)一圈,通過霍爾元件將脈沖數(shù)輸入單片機(jī)內(nèi),通過計(jì)數(shù)器計(jì)出脈沖數(shù), 再用乘法子程序算出里程數(shù)。里程處理子程序流程圖如圖 4.2 所示。 開始 點(diǎn)亮里程指示燈 將車圈數(shù)轉(zhuǎn)換成里程 數(shù) 顯示里程值 返回 圖 4.2 里程處理子程序流程圖 4.1.2 里程計(jì)算程序相關(guān)代碼 本科生課程設(shè)計(jì)(論文) 23 void timer0_int() interrupt 1 TH0 = 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 + distance_10m_num; /每秒刷新一次行駛距離 if(time_key) v_distance = v_distance + distance_10m_num;/如果啟動計(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,速度為 0 sleep = on; /開啟睡眠模式 else sleep = off; /關(guān)閉睡眠模式 本科生課程設(shè)計(jì)(論文) 24 ; 4.1.3 速度計(jì)算子程序 外中斷 1 服務(wù)程序用于處理輪子轉(zhuǎn)動一圈后的計(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 1 TH0 = 0 x3c; TL0 = 0 xaf;/設(shè)定 50ms 定時(shí)初始值 timer0_num+; if(timer0_num=20) speed = speed_n * dst_one_sec; /計(jì)算速度,speed=3.6*3.14*R/N*dst_one_sec/speed_n*100, 本科生課程設(shè)計(jì)(論文) 25 speed 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ì) 采用動態(tài)掃描顯示接口電路,動態(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ù),不會有閃爍感。 本設(shè)計(jì) P2.0、P2.1、P2.2、P2.3 信號一起組成位選通的位選信號,P0.0P0.7 信 號一起組成段碼選通的段選信號,通過軟件編程,先把所要顯示的數(shù)據(jù)放入存儲單 元,然后把數(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ì)(論文) 27 4.2.1 顯示子程序相關(guān)代碼 while(1) P0 = 0 xff; P2 = 0 xf
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 緊缺人才專項(xiàng)招聘與合同解除及補(bǔ)償協(xié)議
- Unit8ChineseNewYear句型默寫(試題)譯林版英語六年級上冊
- 2025【碎石采購與運(yùn)輸項(xiàng)目合同書】私營企業(yè)承包合同
- 商場臨時(shí)安保協(xié)議書
- 2025年關(guān)于物業(yè)服務(wù)合同范本
- 地鐵合作維修協(xié)議書
- 周末課后服務(wù)協(xié)議書
- 財(cái)務(wù)管理課程學(xué)習(xí)經(jīng)驗(yàn)試題及答案
- 商鋪煙道管理協(xié)議書
- 2025關(guān)于終止解除勞動合同證明書范本
- 公路工程計(jì)量與計(jì)價(jià)2013-2014-2考試B(本科)
- 《答司馬諫議書》同步練習(xí)-統(tǒng)編版高中語文必修下冊
- 森林公安派出所臺帳全套表格模板
- CB/T 3766-1996排氣管鋼法蘭及墊片
- 11471勞動爭議處理(第5章)
- 傳熱學(xué)課后習(xí)題答案
- 登臨詩 詩歌賞析
- 免修申請表(模板)
- 電阻的測量-伏安法的實(shí)驗(yàn)報(bào)告
- 公司應(yīng)急救援物資臺賬
- 超限梁板支撐架專項(xiàng)施工方案(濱州醫(yī)院)
評論
0/150
提交評論