單片機原理及接口技術課程設計-自行車里程表設計.doc_第1頁
單片機原理及接口技術課程設計-自行車里程表設計.doc_第2頁
單片機原理及接口技術課程設計-自行車里程表設計.doc_第3頁
單片機原理及接口技術課程設計-自行車里程表設計.doc_第4頁
單片機原理及接口技術課程設計-自行車里程表設計.doc_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

遼遼 寧寧 工工 業(yè)業(yè) 大大 學學 單片機原理及接口技術單片機原理及接口技術課程設計課程設計 (論文)(論文) 題目:題目:自行車里程表設計自行車里程表設計 院(系):院(系): 電氣工程學院電氣工程學院 專業(yè)班級:專業(yè)班級: 自動化自動化101101 學學 號:號: 100302016100302016 學生姓名:學生姓名: 郎奕翔郎奕翔 指導教師:指導教師: 起止時間:起止時間: 2013.7.3-2013.7.12 本科生課程設計(論文) III 課程設計(論文)任務及評語課程設計(論文)任務及評語 院(系):電氣工程學院 教研室:自動化 注:成績:平時20% 論文質量60% 答辯20% 以百分制計算 學 號100302016學生姓名郎奕翔專業(yè)班級 自動化101 設計 題目 自行車里程表設計 課程設計(論文)任務 課題完成的設計任務及功能、要求、技術參數(shù)課題完成的設計任務及功能、要求、技術參數(shù) 實現(xiàn)功能實現(xiàn)功能 設計一個自行車里程表,以單片機為核心,通過安裝在車輪支架上的傳感器 感應車輪轉過的圈數(shù),計算出速度和里程等結果數(shù)據(jù),并且進行顯示。具體要求 如下: 1. 在自行車行進時,實時顯示當前的自行車車速,以“轉/秒”為單位。 2. 實時顯示當前的里程,以“公里”為單位。 2. 超速時聲音報警,并用 LED 燈閃爍。 設計任務及要求設計任務及要求 1. 確定系統(tǒng)設計方案,包括控制器的選擇,檢測電路設計,顯示電路設計; 2. 完成系統(tǒng)程序設計;并繪制程序流程圖; 3. 要求認真獨立完成所規(guī)定的全部內容;所設計的內容要求正確、合理; 4. 按學校規(guī)定的書寫格式,撰寫、打印設計說明書一份;設計說明書應在 4000 字以上。 技術參數(shù)技術參數(shù) 1. 檢測自行車車速誤差小于 5%; 2. 4 位顯示當前自行車車速和里程數(shù)。 工作計劃 1. 布置任務,查閱資料,確定系統(tǒng)的組成(1 天) 2. 對系統(tǒng)功能進行分析(1 天) 3. 系統(tǒng)硬件電路設計(2 天) 4. 系統(tǒng)軟件設計(2 天) 5、實驗測試、答辯。 (2 天) 6. 撰寫、打印設計說明書(2 天) 指導教師評語及成績 平時: 論文質量: 答辯: 指導教師簽字: 總成績: 年 月 日 本科生課程設計(論文) IV 摘摘 要要 隨著居民生活水平的不斷提高,自行車不再僅僅是普通的運輸、代步的工具, 而是成為人們娛樂、休閑、鍛煉的首選。自行車的速度里程表能夠滿足人們最基 本的需求,讓人們能清楚地知道當前的速度、里程等物理量。本論文主要闡述一 種基于霍爾元件的自行車的速度里程表的設計,以 AT89C52 單片機為核心, A44E 霍爾傳感器測轉數(shù),實現(xiàn)對自行車里程/速度的測量統(tǒng)計,采用 24C02 實 現(xiàn)在系統(tǒng)掉電的時候保存里程信息,并能將自行車的里程數(shù)及速度用 LED 實時 顯示。文章詳細介紹了自行車的速度里程表的硬件電路和軟件設計。硬件部分利 用霍爾元件將自行車每轉一圈的脈沖數(shù)傳入單片機系統(tǒng),然后單片機系統(tǒng)將信號 經過處理送顯示。軟件部分用匯編語言進行編程,采用模塊化設計思想。該系統(tǒng) 硬件電路簡單,子程序具有通用性,完全符合設計要求。 關鍵詞:關鍵詞:霍爾元件;單片機;LED 顯示 本科生課程設計(論文) V 目目 錄錄 第 1 章 緒論.1 1.1 課題背景介紹 .1 1.2 課題研究意義 .1 1.3 課題研究的主要內容 .1 第 2 章 自行車的速度里程表總體方案設計.2 2.1 系統(tǒng)實現(xiàn)功能 .2 2.2 系統(tǒng)方案論證 .2 第 3 章 自行車的速度里程表硬件電路設計.5 3.1 霍爾傳感器模塊 .5 3.2 單片機模塊 .8 3.3 外部存儲模塊 .13 3.4 單片機外圍電路的設計 .14 第 4 章 自行車的速度里程表軟件程序設計.20 4.1 自行車的速度里程表總體程序設計 .20 4.1 數(shù)據(jù)處理子程序的設計 .20 4.2 顯示子程序的設計 .24 第 5 章 系統(tǒng)調試與分析.28 5.1 系統(tǒng)仿真調試 .28 5.2 調試故障及原因分析 .28 第 6 章 課程設計總結.30 本科生課程設計(論文) 1 第 1 章 緒論 1.1 課題背景介紹 自行車被發(fā)明及使用到現(xiàn)在已有兩百多年的歷史,這兩百年間人類在不斷的嘗 試與研發(fā)過程中,將玩具式的木馬車轉換到今日各式新穎休閑運動自行車,自行車 發(fā)展的目的也從最早的交通代步的工具轉換成休閑娛樂運動的用途。 隨著居民生活水平的不斷提高,自行車不再僅僅是普通的運輸、代步的工具, 而是成為人們娛樂、休閑、鍛煉的首選。因此,人們希望自行車的功用更強大,能 給人們帶來更多的方便。自行車里程速度表作為自行車的一大輔助工具也正是隨著 這個要求而迅速發(fā)展的,其功能也逐漸從單一的里程顯示發(fā)展到速度、時間顯示, 甚至有的還具有測量騎車人的心跳、顯示騎車人熱量消耗等功能。采用單片機設計 一種體積小、操作簡單的便攜式自行車的速度里程表,它能自動地顯示當前自行車 行走的距離及運行的速度,可以廣泛用于個人、家庭、比賽等場合的測速、里程顯 示等其他功能。 1.2 課題研究意義 自行車速度里程表已成為人們日常生活中必不可少的必需品,廣泛用于個人家 庭及比賽等公共場合,給人們的生活,出行,工作帶來了極大的方便,由于自行車 速度里程表的數(shù)字集成電路的發(fā)展和采用了先進的傳感器技術,使自行車速度里程 表有測量準確、性能穩(wěn)定、攜帶方便等優(yōu)點,它還用于測速,里程計算及自動控制 等各個領域。盡管目前市場上已有現(xiàn)成的自行車速度里程表集成電路芯片出售,價 格便宜,使用也很方便。但鑒于自行車速度里程表的基本組成包含了數(shù)字電路、單 片機及自動檢測的主要組成部分。因此進行自行車速度里程表的設計是必要的,研 究自行車速度里程表及擴大其應用,有著非?,F(xiàn)實的意義。 1.3 課題研究的主要內容 本課題研究的主要內容是利用霍爾元件,單片機等部件設計一個可用的 LED 數(shù) 碼實時顯示速度和里程的自行車速度里程表。能顯示速度。里程,并可以通過按鍵 進行切換。 通過編程使單片機具有測速并計算里程的功能,并通過按鍵切換兩種功能,再 通過模塊顯示時間,霍爾傳感器和外部存儲對單片機提供脈沖信號和數(shù)據(jù)記錄,從 本科生課程設計(論文) 2 而實現(xiàn)調整與現(xiàn)實的功能。 本科生課程設計(論文) 3 第 2 章 自行車的速度里程表總體方案設計 2.1 系統(tǒng)實現(xiàn)功能 本設計的任務是:以通用 MCS-52 單片機為處理核心,用傳感器將車輪的轉數(shù) 轉換為電脈沖,進行處理后送入單片機。里程及速度的測量,是經過 MCS-52 的定 時/計數(shù)器測出總的脈沖數(shù)和每轉一圈的時間,再經過單片機的計算得出,其結果通 過 LED 顯示器顯示出來。 本系統(tǒng)總體思路如下:假定輪圈的周長為 L,在輪圈上安裝 m 個永久磁鐵,則 測得的里程值最大誤差為 L/m。經綜合分析,本設計中取 m=1。當輪子每轉一圈, 通過開關型霍爾元件傳感器采集到一個脈沖信號,并從引腳 P3.2 中斷 0 端輸入,傳 感器每獲取一個脈沖信號即對系統(tǒng)提供一次計數(shù)中斷。每次中斷代表車輪轉動一圈, 中斷數(shù) n 輪圈的周長為 L 的乘積為里程值。計數(shù)器 T1 計算每轉一圈所用的時間 t, 就可以計算出即時速度 v。當里程鍵按下時,里程指示燈亮,LED 切換顯示當前里 程,與當速度鍵按下時,速度指示燈亮,LED 切換顯示當前速度,若自行車超速, 系統(tǒng)發(fā)出報警信號,指示燈閃爍。 要求達到的各項指標及實現(xiàn)方法如下。 (1) 利用霍爾傳感器產生里程數(shù)的脈沖信號。 (2) 對脈沖信號進行計數(shù)。 實現(xiàn):利用單片機自帶的計數(shù)器 T1 對霍爾傳感器脈沖信號進行計數(shù)。 (3) 對數(shù)據(jù)進行處理,要求用 LED 顯示里程總數(shù)和即時速度。 實現(xiàn):利用軟件編程,對數(shù)據(jù)進行處理得到需要的數(shù)值。 最終實現(xiàn)目標:自行車的速度里程表具有里程、速度測試與顯示功能,采用單 片機作控制,顯示電路可顯示里程及速度。 2.2 系統(tǒng)方案論證 2.2.1 硬件方案分析與設計 測速,首先要解決是采樣的問題。使用單片機進行測速,可以使用簡單的脈沖 計數(shù)法。只要轉軸每旋轉一周,產生一個或固定的多個脈沖,將脈沖送入單片機中 進行計算,即可獲得轉速的信息。常用的測速元件有霍爾傳感器、光電傳感器和光 電編碼器。里程測量傳感器的選擇也有以下幾種方案:使用光敏電阻對里 本科生課程設計(論文) 4 程進行測量、利用編碼器對車輪的圈數(shù)進行測量、利用霍爾傳感器對里程進行 測量、利用干簧管型傳感器測量里程。光敏電阻對光特別敏感,當白天行駛時,外 界光源將導致光敏電阻發(fā)出錯誤信號;光敏電阻對環(huán)境的要求相當高,如果光敏電 阻或發(fā)光二極管被泥沙或灰塵所覆蓋,光敏電阻就不能再進行準確測量;而編碼器 必須安裝在車軸上,安裝較為復雜;霍爾元件或干簧管不但不受天氣的影響,即使 被泥沙或灰塵覆蓋也不會有影響,而且安裝方便。所以本設計采用霍爾元件對里程 與速度進行測量,既簡單易行,又經濟適用。 使用霍爾傳感器獲得脈沖信號,其機械結構也可以做得較為簡單,只要在轉軸 的齒輪盤上粘上一粒磁鋼,霍爾元件固定在前叉上,當車子轉動時霍爾元件靠近磁 鋼,就有信號輸出,轉軸旋轉時,就會不斷地產生脈沖信號輸出。如果在齒輪盤上 粘上多粒磁鋼,可以實現(xiàn)旋轉一周,獲得多個脈沖輸出。在粘磁鋼時要注意,霍爾 傳感器對磁場方向敏感,粘之前可以先手動接近一下傳感器,如果沒有信號輸出, 可以換一個方向再試。這種傳感器不怕灰塵、油污,在工業(yè)現(xiàn)場應用廣泛。 目前,單片機被廣泛的應用于測控系統(tǒng)、工業(yè)自動化、智能儀表、集成智能傳 感器、機電一體化產品、家用電器領域、辦公自動化領域、汽車電子與航空航天器 電子系統(tǒng)以及單片機的多機系統(tǒng)等領域。在設計中選用的是 AT89C52 單片機。硬件 電路系統(tǒng)結構框圖如圖 2.1 所示。 AT89C52 單片機 霍爾傳感器模 塊(接收外部信號 產生脈沖信號) 按鍵模塊(用 來切換顯示和復位) 外部存儲模塊 (儲存產生的數(shù)據(jù)) 外部信號 顯示模塊 (顯示即時里程 數(shù)或者是即時速 度) 報警模塊 (提供超速報警) 電源模塊 (為單片機提供 電源) 圖 2.1 系統(tǒng)結構框圖 2.2.2 軟件方案分析與設計 通過軟件控制單片機的功能是單片機的主要特點和優(yōu)點,程序的設計要考慮合 本科生課程設計(論文) 5 理性和可讀性,遵循模塊化設計的原則,采用自頂向下的設計方法。模塊化設計使 程序的可讀性好、修改及完善方便。 軟件設計包括主程序、行車過程中里程和速度計算子程序、延時子程序、中斷 服務子程序、顯示子程序等等。 中斷子程序是將傳感器產生的信號接入外部中斷 0,將經過 74LS74 分頻后的信 號接入外部中斷 1,利用中斷和定時器對分別對里程進行累加、每轉一周的時間進 行測量。 數(shù)據(jù)處理子程序是將進入單片機的脈沖信號與實際要顯示值之間有一定的對應 關系,經過軟件編程顯示所需要的值。 顯示子程序是將數(shù)據(jù)處理的結果送顯示器顯示。 系統(tǒng)軟件總體流程圖如圖 2.2 所示。 初始化 P3.0=1? 計算里程 顯示里程 計算速度 顯示速度 開始 圖 2.2 軟件總體流程圖 本科生課程設計(論文) 6 第 3 章 自行車的速度里程表硬件電路設計 3.1 霍爾傳感器模塊 3.1.1 檢測傳感器的選用及測量原理 本次設計信號的捕獲采用的是霍爾傳感器,霍爾傳感器是利用霍爾效應制成的 一種磁敏傳感器。按照霍爾傳感器元件的功能可將它們分為:霍爾線性器件和霍爾 開關器件,前者輸出模擬量,后者輸出數(shù)字量。 按被檢測對象的性質可將它們的應 用分為:直接應用和間接應用。前者是直接檢測出受檢測對象本身的磁場或磁特性, 后者是檢測受檢對象上人為設置的磁場,用這個磁場來作被檢測的信息的載體。通 過它,將許多非電、非磁的物理量轉變成電量來進行檢測和控制。 3.1.2 集成開關霍爾傳感器 A44E 集成霍爾開關由穩(wěn)壓器 A、霍爾電勢發(fā)生器(即硅霍爾片)B、差分放大 器 C、施密特觸發(fā)器 D 和 OC 門輸出 E 五個基本部分組成,如圖 3.1(a)所示。 (1)、 (2)、(3)代表集成霍爾開關的三個引出端點。在電源端加電壓 VCC,經穩(wěn)壓器穩(wěn)壓 后加在霍爾電勢發(fā)生器的兩端,根據(jù)霍爾效應原理,當霍爾片處在磁場中時,在垂 直于磁場的方向通以電流,則與這二者相垂直的方向上將會產生霍爾電勢差 VH 輸 出,該 VH 信號經放大器放大后送至施密特觸發(fā)器整形,使其成為方波輸送到 OC 門輸出。當施加的磁場達到工作點時,觸發(fā)器輸出高電壓(相對于地電位) ,使三極 管導通,此時 OC 門輸出端輸出低電壓,通常稱這種狀態(tài)為開。當施加的磁場達到 釋放點時,觸發(fā)器輸出低電壓,三極管截止,使 OC 門輸出高電壓,這種狀態(tài)為關 。這樣兩次電壓變換,使霍爾開關完成了一次開關的動作。工作點與釋放點的差值 一定,此差值稱為磁滯,在此差值內,V0 保持不變,因而使開關輸出穩(wěn)定可靠,這 也就是集電成霍爾開關傳感器優(yōu)良特性之一。傳感器主要特性是它的輸出特性,即 輸入磁感應強度 B 與輸出電壓 V0 之間的關系。A44E 集成霍爾開關是單穩(wěn)態(tài)型,由 測量數(shù)據(jù)作出的輸出特性曲線如圖 3.1(b)所示。測量時,在 1、2 兩端加 5V 直流電 本科生課程設計(論文) 7 壓,在輸出端 3 與 1 之間接一個 2k 的負載電阻,如圖 3.2 所示。 D A B C E VCC (1) (2) GND OUT (3) (a) 05101520 3 6 9 12 VO/V B/mT 釋放點 (OFF) 工作點 (ON) (V) (b) 圖 3.1 集成開關型霍爾傳感器 圖 3.2 集成霍爾開關接線圖 在本次設計中,霍爾傳感器起采集信號的作用。當電源加電壓 VCC,經穩(wěn)壓器 穩(wěn)壓后加在霍爾電勢發(fā)生器的兩端,根據(jù)霍爾效應原理,產生電勢差 VH,VH 信號 經放大器后送到施密特觸發(fā)整形,使其成為方波送到 OC 門輸出,其與 74LS74 芯片 相連,將整形后的方波送到 74LS74 芯片中處理后送入單片機。接線圖如圖 3.3 所示。 本科生課程設計(論文) 8 圖 3.3 霍爾集成開關接線原理圖 3.1.3 74LS74 芯片的運用 74LS74 是 D 觸發(fā)器的一種,它是一個具有記憶功能的二進制信息存儲器件,是 構成多種時序電路的最基本邏輯單元。觸發(fā)器具有兩個穩(wěn)定狀態(tài),即“0”和“1”,在 一定的外界信號作用下,可以從一個穩(wěn)定狀態(tài)翻轉到另一個穩(wěn)定狀態(tài)。由于其狀態(tài) 的更新發(fā)生在 CP 脈沖的邊沿故又稱之為上升沿觸發(fā)的邊沿觸發(fā)器,D 觸發(fā)器的狀 態(tài)只取決于時針到來前 D 端的狀態(tài)。引腳圖如圖 3.4 所示。 圖 3.4 74LS74 引腳圖 74LS74 芯片起分頻的作用,當車輪每轉一圈,霍爾傳感器輸出一個低電平脈沖, 通過 74LS74 進行二分頻,二分頻后的波形的高或地電平的時間正好是霍爾傳感器 開關的一個周期,霍爾傳感器輸出脈沖到,即 P3.2 口接收到對圈數(shù)計數(shù)的脈0INT 沖。經 74LS74 二分頻后的信號輸入到,內部定時計數(shù)器測得每轉一圈所用的1INT 時間,通過計算即可得里程值和即時速度。二分頻前后波形如圖 3.5 所示。 在本次設計中 74LS74 與霍爾傳感器相連,接受方波,然后進行分頻,二分頻 后波形的高低電平時間正好,定時器 T1 的開啟時間為車輪轉一周的時間,這樣可以 計算出自行車的速度。接線原理圖如圖 3.6 所示。 本科生課程設計(論文) 9 霍爾輸出圈脈沖 二分頻后的波形 圖 3.5 分頻前后對比圖 圖 3.6 74LS74 接線原理圖 3.2 單片機模塊 3.2.1 單片機原理簡介 單片機是指集成在一個芯片上的微型計算機,也就是把組成微型計算機的各種 功能部件,包括 CPU(Central Processing Unit)、隨機存儲器 RAM(Random Access Memory)、只讀存儲器 ROM(Read-only Memory)、基本輸入/輸出(Input/Output)接口 電路。定時器/計數(shù)器等部件都制作在一塊集成芯片上,就構成一個完整的微型計算 機從而實現(xiàn)微型計算機的基本功能。單片機內部結構示意圖如圖 3.7 所示。 本科生課程設計(論文) 10 定時/計數(shù)器中斷系統(tǒng) CPU 存儲器 并行 I/O 口 串口 I/O 口 TX D T XD RX D T INT P0- P3 圖 3.7 單片機內部結構示意圖 3.2.2 單片機的引腳功能介紹 AT89C52 是高性能 CMOS 8 位單片機,片內含 8K Bytes 的可反復擦寫的只讀程 序存儲器(EPROM)和 256 字節(jié)的隨機存取數(shù)據(jù)存儲器(RAM),器件采用 ATMEL 公 司的高密度、非易失性存儲技術生產,與標準 MCS-51 指令系統(tǒng)及 8052 產品引腳兼 容,片內置通用 8 位中央處理器(CPU)和 Flash 存儲單元,功能強大,AT89C52 單片 機適合于許多較為復雜控制場合應用。引腳圖如圖 3.8 所示。 圖 3.8 AT89C52 引腳圖 本科生課程設計(論文) 11 AT89C52 提供以下標準功能:8K 字節(jié) Flash 閃速存儲器,256 字節(jié)內部 RAM,32 個 I/O 口線,3 個 16 位定時/計數(shù)器,5 個中斷源,一個全雙工串行通信 口,片內具有振蕩器及時鐘電路。AT89C52 管腳圖如圖 3.5 所示。AT89C52 的主要 管腳功能如下。 :外部程序存儲器讀選通信號。在讀外部 ROM 時,有效(低電平)PSENPSEN ,以實現(xiàn)外部 ROM 單元的讀操作。 :訪問程序存儲控制信號。當信號為低電平時,對 ROM 的讀操作限定EAEA 在外部程序存儲器;當信號為高電平時,對 ROM 的讀操作是從內部程序存儲器EA 開始,并可延至外部程序存儲器。 RST:復位信號。當輸入的復位信號延續(xù)兩個機器周期以上的高電平時即為有 效,用以完成單片機的復位初始化操作。 XTALl 和 XTAL2:外接晶體引線端。當使用芯片內部時鐘時,此二引線端用于 外接石英晶體和微調電容;當使用外部時鐘時,用于接外部時鐘脈沖信號。 VSS:地線。 VCC:+5V 電源。 如果把前述的信號定義為引腳第一功能的話,則根據(jù)需要再定義的信號就是它 的第二功能。P3 的 8 條口線都定義有第二功能,如表 3.1 所示。 對于有內部 EPROM 的單片機芯片(例如 87C51) ,為寫入程序須提供專門的編 程脈沖和編程電源。它們也由引腳以第二功能的形式提供的,即: 編程脈沖:30 腳(ALE/)PROG 編程電壓(25V):31 腳(/VPP)EA P0.0P0.7:P0 口是一組 8 位漏極開路型雙向 I/O 口,也是地址/數(shù)據(jù)總線復用 口。 P1.0P1.7:P1 是一個帶內部上拉電阻的 8 位雙向 I/O 口。 P2.0P2.7:P2 是一個帶內部上拉電阻的 8 位雙向 I/O 口。 P3.0P3.7:P3 是一個帶內部上拉電阻的 8 位雙向 I/O 口。 ALE:地址鎖存控制信號。在系統(tǒng)擴展時,ALE 用于控制把 P0 口輸出的低 8 位地址鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的分時傳送。此外,由于 ALE 是以晶振 1/6 的固定頻率輸出的正脈沖,因此,可作為外部時鐘或外部定時脈沖使用。 :外部程序存儲器讀選通信號。在讀外部 ROM 時,有效(低電平)PSENPSEN ,以實現(xiàn)外部 ROM 單元的讀操作。 本科生課程設計(論文) 12 :訪問程序存儲控制信號。當信號為低電平時,對 ROM 的讀操作限定EAEA 在外部程序存儲器;當信號為高電平時,對 ROM 的讀操作是從內部程序存儲器EA 開始,并可延至外部程序存儲器。 RST:復位信號。當輸入的復位信號延續(xù)兩個機器周期以上的高電平時即為有 效,用以完成單片機的復位初始化操作。 XTALl 和 XTAL2:外接晶體引線端。當使用芯片內部時鐘時,此二引線端用于 外接石英晶體和微調電容;當使用外部時鐘時,用于接外部時鐘脈沖信號。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ù)器 0 的外部寫 入 定時/計數(shù)器 1 的外部寫 入 外部 RAM 寫選通 外部 RAM 讀選通 3.2.3 單片機中斷系統(tǒng)介紹 中斷是指當計算機執(zhí)行正常程序時,系統(tǒng)中出現(xiàn)某些急需處理的事件,CPU 暫 時中止當前的程序,轉去執(zhí)行服務程序,以對發(fā)生的更緊迫的事件進行處理,待處 理結束后,CPU 自動返回原來的程序執(zhí)行 AT89C52 系列單片機的系統(tǒng)有 5 個中斷 源,2 個優(yōu)先級,可實現(xiàn)二級中斷服務嵌套。由片內特殊功能寄存器中的中斷允許 寄存器 IE 控制 CPU 是否響應中斷請求;由中斷優(yōu)先級寄存器 IP 安排各優(yōu)中斷源的 優(yōu)先級;同一優(yōu)先級內各終端同時提出中斷請求時,由內部的查詢邏輯確定其響應 次序。 采用的外部中斷方式包括外部中斷 0 和外部中斷 1,它們的中斷請求信號分別 由單片機引腳/P3.2 和/P3.3 輸入。0INT1INT 本科生課程設計(論文) 13 外部中斷請求有兩種信號方式:電平觸發(fā)方式和脈沖觸發(fā)方式。電平觸發(fā)方式 的中斷請求是低電平有效。只要在和引腳上出現(xiàn)有效低電平時,就激活0INT1INT 外部中斷方式。脈沖觸發(fā)方式的中斷請求則是脈沖的負跳變有效。在這種方式下, 在兩個相鄰機器周期內,和引腳電平發(fā)生變化,即在第一個機器周期內0INT1INT 為高電平,第二個機器周期內為低電平,就激活外部中斷。由此可見,在脈沖方式 下,中斷請求信號的高電平和低電平狀態(tài)都應至少維持一個機器周期,以使 CPU 采 樣到電平狀態(tài)的變化,本次設計所采用的觸發(fā)方式為脈沖觸發(fā)方式。 a. 中斷允許控制中斷允許控制 CPU 對中斷系統(tǒng)所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器 IE 控制的。IE 的狀態(tài)可通過程序由軟件設定,某位設定為 1,相應的中斷源中斷允許; 某位設定為 0,相應的中斷源中斷屏蔽。CPU 復位時,IE 各位為 0,禁止所有中斷。 IE 寄存器各位的定義如下。 EX0(IE.0):外部中斷允許位;0INT ET0(IE.1):定時/計數(shù)器 T0 中斷允許位; EX1(IE.2):外部中斷允許位;1INT ET1(IE.3):定時/計數(shù)器 T1 中斷允許位; ES(IE.4):串行口中斷允許位; EA(IE.7):CPU 中斷允許位。 b. 中斷優(yōu)先級控制中斷優(yōu)先級控制 AT89C52 單片機有兩個中斷優(yōu)先級,即可實現(xiàn)二級中斷服務嵌套。每個中斷源 的中斷優(yōu)先級都是由中斷優(yōu)先級寄存器 IP 中的相應的狀態(tài)來規(guī)定的。IP 的狀態(tài)由軟 件設定,某位設定為 1,則相應的中斷源為高優(yōu)先級中斷;某位設定為 0.則相應的 中斷源為低優(yōu)先級中斷。單片機復位時,IP 各位清 0,各中斷源同為低優(yōu)先級中斷。 IP 寄存器各位的定義如下。 PX0(IP.0):外部中斷優(yōu)先級設定位;0INT PT0(IP.1):定時/計數(shù)器 T0 中斷優(yōu)先級設定位; PX1(IP.2):外部中斷中斷優(yōu)先級設定位;1INT PT1(IP.3):定時/計數(shù)器 T1 中斷優(yōu)先級設定位; PS(IP.4):串行口中斷優(yōu)先級設定位。 3.2.4 單片機定時/計數(shù)功能介紹 AT89C52 單片機定時/計數(shù)器的工作由兩個特殊功能寄存器控制。TMOD 用于 設置其工作方式;TCON 用于控制其啟動和中斷請求。 本科生課程設計(論文) 14 a. 工作方式寄存器工作方式寄存器 TMOD 工作方式寄存器 TMOD 用于設置定時/計數(shù)器的工作方式。 GATE:門控位。GATE=0 時,只要用軟件使 TCON 中的 TR0 或 TR1 為 1,就 可以啟動定時/計數(shù)器工作;GATE=1 時,要用軟件 TR0 或 TR1 為 1,同時外部中斷 引腳或也為高電平時,才能啟動定時/計數(shù)器工作。0INT1INT C/:定時/計數(shù)模式選擇位。C/=0 為定時模式;C/=1 為計數(shù)模式。TTT M1M2:工作方式設置位。定時/計數(shù)器有 4 種工作方式,由 M1M2 進行設置。 本次設計 TMOD 為 90H,即選通定時/計數(shù)器 1、定時功能、工作方式 1。工作方式 16 位定時/計數(shù)器。 b. 控制寄存器控制寄存器 TCON TF1(TCON.7):定時/計數(shù)器 T1 溢出中斷請求標志位。定時/計數(shù)器 T1 計數(shù)溢出 時由硬件自動置 TF1 為 1。CPU 響應中斷后 TF1 由硬件自動清零。T1 工作時,CPU 可隨時查詢 TF 的狀態(tài)。所以,TF1 可用作查詢測試的標志。TF1 也可以用軟件置 1 或清零,同硬件置 1 或清零的效果一樣。 TR1(TCON.6):定時/計數(shù)器 T1 運行控制位。TR1 置 1 時時,定時/ 計數(shù)器 T1 開始工作;TR1 置 0 時,定時/計數(shù)器 T1 停止工作。TR1 由軟件置 1 或清 0。 TF0(TCON.5):定時/計數(shù)器 T0 溢出中斷請求標志位。 TR0(TCON.4):定時/計數(shù)器 T0 運行控制位。 3.3 外部存儲模塊 AT24C02 是一個 2K 位串行 CMOSEPROM。內部含有 256 個 8 位字節(jié), ATMEL 公司的先進 CMOS 技術實質上減少了器件的功耗。AT24C02 有一個 16 字 節(jié)頁寫緩沖器,該器件通過 I2C 總線接口進行操作有一個專門的寫保護功能。 AT24C02 支持 I2C 總線數(shù)據(jù)傳送協(xié)議。數(shù)據(jù)傳送是由產生串行時鐘和所有起始停止 信號的主器件控制的。主器件和從器件都可以作為發(fā)送器或接收器,但由主器件控 制傳送數(shù)據(jù)(發(fā)送或接收)的模式,通過器件地址輸入端 A0、A1 和 A2 可以實現(xiàn) 將最多 8 個 24C02 器件連接到總線上。管腳圖如 3.9 所示。 本科生課程設計(論文) 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 串行時鐘:AT24C02 串行時鐘輸入管腳用于產生器件所有數(shù)據(jù)發(fā)送或接收 的時鐘。 SDA 串行數(shù)據(jù)/地址:CAT24WC02 雙向串行數(shù)據(jù)/地址管腳用于器件所有數(shù)據(jù) 的發(fā)送或接收,是一個開漏輸出管腳可與其它開漏輸出或集電極開路輸出進行線或。 WP 寫保護:如果 WP 管腳連接到 Vcc 所有的內容都被寫保護,只能讀。當 WP 管腳連接到 Vss 或懸空,允許器件進行正常的讀/寫操作。 本次設計采用的存儲器 24C02 是為了防止掉電時里程數(shù)據(jù)的丟失,由于 24C02 的數(shù)據(jù)線和地址線是復用的,采用串口的方式傳輸數(shù)據(jù),所以只用兩根線 SCL 和 SDA 與單片機傳輸數(shù)據(jù)。存儲器與控制車輪大小的端口相連接,可以更快捷方便的 接受數(shù)據(jù),發(fā)出時鐘脈沖,便于單片機進行存儲控制。接線圖如圖 3.10 所示。 圖 3.10 存儲器原理接線圖 本科生課程設計(論文) 16 3.4 單片機外圍電路的設計 3.4.1 時鐘電路的設計 時鐘是單片機的心臟,單片機各功能部件的運行都是以時鐘頻率為基準,有條 不紊地一拍一拍地工作。因此,時鐘頻率直接影響單片機的速度,時鐘電路的質量 也直接影響單片機系統(tǒng)的穩(wěn)定性。AT89C52 片內由一個反相放大器構成振蕩器,可 以由它產生時鐘。常用的時鐘電路有兩種方式,一種是內部時鐘方式,另一種為外 部時鐘方式。本設計采用前者。 單片機內部有一個用于構成振蕩器的高增益反相放大器,該高增益反相放大器 的輸入為芯片引腳 XTAL1,輸出端為引腳 XTAL2。這兩個引腳跨接石英晶體振蕩 器和電容,就構成一個穩(wěn)定的自激振蕩器。單片機內部時鐘方式的振蕩電路如圖 3.11 所示。 圖 3.11 單片機片內振蕩電路 電路中的電容 C1 和 C2 常選擇為 30P 左右。對外接電容的值雖然沒有嚴格的要 求,但電容的大小會影響振蕩器的高低、振蕩器的穩(wěn)定性、起振的快速性和溫度的 穩(wěn)定性。而外接晶體的振蕩頻率的大小,主要取決于單片機的工作頻率范圍,每一 種單片機都有自己的最大工作頻率,外接的晶體振蕩頻率不大于單片機的最大工作 頻率即可。此外,如果單片機有串行通信,則應該選擇振蕩頻率除以串行通信頻率 可以除盡的晶體。 本次設計晶振采用 12MHz,則該計數(shù)周期如式 3.1 所示。 S (3.1) 6 1 1 12 10112 T Hz () 本科生課程設計(論文) 17 3.4.2 按鍵模塊 AT89C52 單片機的復位輸入引腳 RST 為 AT89C52 提供了初始化的手段。有了 它可以使程序從指定處開始執(zhí)行,即從程序存儲器中的 0000H 地址單元開始執(zhí)行程 序。在 89C52 的時鐘電路工作后,只要在 RST 引腳上出現(xiàn)兩個機器周期以上的高電 平時,單片機內部則初始復位。只要 RST 保持高電平,則 89C52 循環(huán)復位。只有當 RST 由高電平變成低電平以后,89C52 才從 0000H 地址開始執(zhí)行程序。 本系統(tǒng)的復位電路是采用按鍵復位的電路,是常用復位電路之一。單片機復位 通過按動按鈕產生高電平復位稱手動復位。上電時,剛接通電源,電容 C 相當于瞬 間短路,+5V 立即加到 RST/VPD 端,該高電平使 89C52 全機自動復位,這就是上 電復位;若運行過程中需要程序從頭執(zhí)行,只需按動按鈕即可。按下按鈕,則直接 把+5V 加到了 RST/VPD 端從而復位稱為手動復位。復位后,P0 到 P3 并行 I/O 口全 為高電平,其它寄存器全部清零,只有 SBUF 寄存器狀態(tài)不確定,復位電路如圖 3.12 所示。 RST AT89C52 C1 R8 8.2K R8 0.2K 5V 圖 3.12 按鍵復位電路 在本次設計中復位電路主要給單片機提供初始化手段,與單片機 RST 引腳相連, 當 RST 引腳上出現(xiàn)兩個機器周期以上的高電平時單片機內部初始化。使用按鍵復位 電路的上電復位和手動復位可以使操作變得更簡單,方便,很大程度上提高系統(tǒng)綜 合性能,其接線如圖 3.13 所示。 本科生課程設計(論文) 18 3.13 復位電路接線原理圖 3.4.3 顯示模塊及驅動電路 本設計中采用 LED 數(shù)碼管顯示。在單片機系統(tǒng)中,通常用 LED 數(shù)碼顯示器來 顯示各種數(shù)字或符號。由于它具有顯示清晰、亮度高、使用電壓低、壽命長的特點, 因此使用非常廣泛。八段 LED 顯示器由 8 個發(fā)光二極管組成。其中 7 個發(fā)光二極管 構成字型“8”的各個筆畫段,另一個小數(shù)點為 dp 發(fā)光二極管。LED 顯示器有兩種不 同的形式:一種是發(fā)光二極管的陽極都連在一起的,稱之為共陽極 LED 顯示器;另 一種是發(fā)光二極管的陰極都連在一起的,稱之為共陰極 LED 示 器,本次設計采用共共陰極接法如圖 3.14 所示。 圖 3.14 七(八)段 LED 顯示 LED 顯示方式有動態(tài)顯示和靜態(tài)顯示兩種方式。本系統(tǒng)采用動態(tài)掃描顯示接口 電路,動態(tài)顯示接口電路是把所有顯示器的 8 個筆劃段 a-h 同名端連在一起,而每 一個顯示器的公共極 COM 各自獨立地受 I/O 線控制。CPU 向字段輸出口送出字型 碼時,所有顯示器接收到相同的字型碼,但究竟是哪個顯示器亮,則取決于 COM 端。也就是說我們可以采用分時的方法,輪流控制各個顯示器的 COM 端,使各個 顯示器輪流點亮。在輪流點亮掃描過程中,每位顯示器的點亮時間是極為短暫的 (約 1ms) ,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位顯示 器并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù), 不會有閃爍感。 本設計中 P2.0、P2.1、P2.2、P2.3 信號一起組成位選通的位選信號,P0.0 P0.7 信號一起組成段碼選通的段選信號,通過軟件編程,先把所要顯示的數(shù)據(jù) 放入存儲單元,然后把數(shù)據(jù)送入段選通對應的地址,再選通某一個 LED,逐步完成 四個 LED 的顯示,如圖 3.15 所示。 本科生課程設計(論文) 19 圖 3.15 顯示電路接線原理圖 驅動數(shù)碼管的芯片為 74LS244,74LS244 為三態(tài)輸出的八位緩沖器和線驅動器, 若單片機輸出口直接接顯示部分電路,則電流太小,會導致顯示部分不能正常工作。 所以在單片機輸出口先接入驅動芯片 74LS244,增大電流,使 LED 能夠正常工作。 其邏輯圖如圖 3.16 所示。 圖 3.16 74LS244 邏輯圖 在本次設計中 74LS244 與 LED 顯示器相連,起增大電流,使 LED 正常工作的 作用。該芯片由兩組組成,每組由四路輸入,輸出構成,每組有一個控制高低電平 決定高低電平決定該組數(shù)據(jù)被接通還是斷開。接線圖如圖 3.17 所示。 圖 3.17 74LS244 接線原理圖 本科生課程設計(論文) 20 3.4.4 報警模塊 為了能夠安全駕駛,以免危害自己與他人健康,本課題設計了報警電路,在超 出預定速度時發(fā)出警報,報警電路電路圖如圖 3.18 所示。 圖 3.18 報警電路圖 本次報警電路采用蜂鳴器報警,報警器與控制速度的 P3.1 拐角相連,當即時速 度超過預定值是蜂鳴器響,指示燈閃爍,提示應該減速。接線圖如圖 3.19 所示。 圖 3.19 報警電路接線原理圖 3.4.5 電源模塊 供電電源分外接交流和 USB 接口的外接直流。 注意事項:電源不要超過 20V,3A,防止意外。 本科生課程設計(論文) 21 第 4 章 自行車的速度里程表軟件程序設計 4.1 自行車的速度里程表總體程序設計 在硬件設計完畢之后,接下來就是設計中最核心和最為主要的軟件部分設計。 所謂軟件設計就是把軟件需求變換成軟件的具體設計方案(即模塊結構)的過程。 模塊化結構設計即是根據(jù)要求和硬件設計的結構,將整個系統(tǒng)的功能分成許多小的 功能模塊,再根據(jù)這些小的功能模塊進行程序編寫的過程。這樣的設計方法,使得 系統(tǒng)的整個功能和各部分的功能趨于明朗化。當系統(tǒng)出現(xiàn)問題,就可以根據(jù)功能設 置找出問題的根源,從而更快地解決問題。所以說,在整個設計過程中,軟件設計 必須與硬件設計緊密地結合在一起。 基于霍爾傳感器自行車的速度里程表的軟件設計包括上電初始化程序、中斷子 程序、速度調用子程序、里程調用子程序、LED 顯示子程序、延時子程序等幾大部 分。由于要實現(xiàn)很多功能,所以采用模塊化設計,下面就其主要部分分別加以分析。 在主程序模塊中,需要完成對各接口芯片的初始化、自行車里程和速度的初始 化、中斷向量的設計以及開中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要 設置啟動/清除標志寄存器、里程寄存器、速度寄存器,并對它們進行初始化。然后 主程序將根據(jù)各標志寄存器的內容,分別完成啟動、清除、計程和計速等不同的操 作。 在單片機的各個拐角中,P1.0 和 P1.1 口分別用于顯示里程狀態(tài)和速度狀態(tài)。 P1.2、P1.3、P1.6 和 P1.7 口分別用于設置輪圈的大小,低電平有效。在本次設計中 其分別代表了 1m、1.2m、1.5m、和 1.8m。P3.0 是用于里程和速度切換的,低電平 為顯示速度,高電平為顯示里程。中斷 0 用于對輪子圈數(shù)的計數(shù)輸入,輪子每轉一 圈,霍爾傳感器輸出一個低電平脈沖。將根據(jù)里程寄存器中的內容計算和判斷出行 駛里程數(shù)。中斷 1 用于控制定時器 T1 的啟/停,當輸入為 0 時關閉定時器。此控制 信號是將輪子圈數(shù)的計數(shù)經二分頻后形成。這樣,每次定時器 T1 的開啟時間剛好為 轉一圈的時間,根據(jù)輪子的周長就可以計算出自行車的速度。 本科生課程設計(論文) 22 4.1 數(shù)據(jù)處理子程序的設計 4.1.1 里程計算子程序 外中斷 0 服務程序用于對單片機 P3.2 口輸入的圈脈沖進行計數(shù),為十六進制計 數(shù)器。60H 為低位,62H 為高位。每次計數(shù)一次后,對里程數(shù)據(jù)進行一次存儲操作。 當車輪每轉一圈,通過霍爾元件將脈沖數(shù)輸入單片機內,通過計數(shù)器計出脈沖數(shù), 再用乘法子程序算出里程數(shù)。里程處理子程序流程圖如圖 4.2 所示。 開始 點亮里程指示燈 將車圈數(shù)轉換成里程 數(shù) 顯示里程值 返回 圖 4.2 里程處理子程序流程圖 4.1.2 里程計算程序相關代碼 本科生課程設計(論文) 23 void timer0_int() interrupt 1 TH0 = 0 x3c; TL0 = 0 xaf; /設定 50ms 定時初始值 timer0_num+; if(timer0_num=20) timer0_num = 0; /定時 1s 后重新定時 distance_10m_num = distance_num / N;/求行駛了多少個 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;/如果啟動計時器每秒刷新一次累 積距離 if(distance=65000) distance = 0; if(v_distance=65000) v_distance = 0; if(dst_one_sec10) n = 1; speed = 0;/10s 內檢測到卡片數(shù)小于 2,速度為 0 sleep = on; /開啟睡眠模式 else sleep = off; /關閉睡眠模式 本科生課程設計(論文) 24 ; 4.1.3 速度計算子程序 外中斷 1 服務程序用于處理輪子轉動一圈后的計時數(shù)據(jù)。當標志位(00H)為 1 時, 計數(shù)溢出,放入最大時間值(#0FFH);當標志位為 0 時,將計數(shù)單元 (TL1、TH1、6CH、6DH)的值放入 68H6BH 單元。定時器計出每轉一圈所用的時 間,用自行車車輪的周長除以時間就得出自行車的速度,速度子程序如圖 4.3 所示。 開始 開速度指示 計算速度 報警 是否超速 顯示速度 返回 圖 4.3 速度處理子程序流程圖 4.1.4 速度計算子程序相關代碼 void timer0_int() interrupt 1 TH0 = 0 x3c; TL0 = 0 xaf;/設定 50ms 定時初始值 timer0_num+; if(timer0_num=20) speed = speed_n * dst_one_sec; /計算速度,speed=3.6*3.14*R/N*dst_one_sec/speed_n*100, 本科生課程設計(論文) 25 speed n 為刷新一次速度的時間. /其中,R 為車輪的半徑,N 為車輪內安裝的卡片數(shù), /3.6 為 m/s 轉化為 km/h 的因子,100 表示顯示到小數(shù)點后兩 位 /最高時速為 160km/h,超過此 速度時 dst_one_sec 溢出 n = 1; /每刷新一次速度重新確定刷新 周期 dst_one_sec = 0; /重新檢測 1s 內的行車距離 4.2 顯示子程序的設計 采用動態(tài)掃描顯示接口電路,動態(tài)顯示接口電路是把所有顯示器的 8 個筆劃段 a-h 同名端連在一起,而每一個顯示器的公共極 COM 各自獨立地受 I/O 線控制。 CPU 向字段輸出口送出字型碼時,所有顯示器接收到相同的字型碼,但究竟是哪個 顯示器亮,則取決于 COM 端??梢圆捎梅謺r的方法,輪流控制各個顯示器的 COM 端,使各個顯示器輪流點亮。在輪流點亮掃描過程中,每位顯示器的點亮時間是極 為短暫的(約 1ms) ,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上 各位顯示器并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的 顯示數(shù)據(jù),不會有閃爍感。 本設計 P2.0、P2.1、P2.2、P2.3 信號一起組成位選通的位選信號,P0.0P0.7 信 號一起組成段碼選通的段選信號,通過軟件編程,先把所要顯示的數(shù)據(jù)放入存儲單 元,然后把數(shù)據(jù)送入段選通對應的地址,再選通某一個 LED,逐步完成四個 LED 的顯示。顯示子程序流程圖如圖 4.4 所示。 本科生課程設計(論文) 26 開始 顯示單元首地址 取顯示數(shù)數(shù)據(jù) 取段碼表首地址 送段碼表首地址 送位選到P2口 調用延時 4位顯示 返回 修改顯示 單元地址 求下一位 圖 4.4 顯示子程序流程圖 本科生課程設計(論文) 27 4.2.1 顯示子程序相關代碼 while(1) P0 = 0 xff; P2 = 0 xf

溫馨提示

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

評論

0/150

提交評論