基于51單片機(jī)的自行車碼表設(shè)計_第1頁
基于51單片機(jī)的自行車碼表設(shè)計_第2頁
基于51單片機(jī)的自行車碼表設(shè)計_第3頁
基于51單片機(jī)的自行車碼表設(shè)計_第4頁
基于51單片機(jī)的自行車碼表設(shè)計_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學(xué)院 畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文) 系系 所:所: 電子工程系 專專 業(yè):業(yè): 嵌入式系統(tǒng)工程 學(xué)生姓名:學(xué)生姓名: 學(xué)生學(xué)號:學(xué)生學(xué)號: 指導(dǎo)教師:指導(dǎo)教師: 導(dǎo)師職稱:導(dǎo)師職稱: 講師 論文題目論文題目:基于基于 5151 單片機(jī)的自行車碼表設(shè)計及實現(xiàn)單片機(jī)的自行車碼表設(shè)計及實現(xiàn) 完成日期:完成日期: dalian neusoft institute of information technology 摘要 i 基于 51 單片機(jī)的自行車碼表設(shè)計及實現(xiàn) 摘 要 隨著人們生活水平的不斷提高,自行車已經(jīng)不僅僅是運(yùn)輸、代步的工具,其輔助 功能也變得越來越重要。因此,人們希望自行車的娛樂、休閑

2、、鍛煉的功能越來越多, 能帶來大家更多的健康與快樂。自行車碼表作為自行車的一大輔助工具迅速發(fā)展起來。 它能合理計算出速度及公里數(shù),使運(yùn)動者運(yùn)動適量,達(dá)到健康運(yùn)動與代步的最佳效果。 碼表能盡可能真實地反映騎行狀況,便于車手及時調(diào)整自己的舉動。 本論文主要闡述一種基于霍爾元件的自行車的速度里程表的設(shè)計。以 at89c51 單 片機(jī)為核心,a44e 霍爾傳感器測轉(zhuǎn)數(shù),并通過 led 實時顯示。文章詳細(xì)介紹了自行車 的速度里程表的硬件電路和軟件設(shè)計。本設(shè)計以 89c51 單片機(jī)為主控芯片,把霍爾傳 感器傳來的脈沖信號進(jìn)行處理,預(yù)算,精確的計算出行駛的速度和里程,然后在傳送 給 lcd 顯示器,從 lc

3、d 上顯示出運(yùn)動的一系列數(shù)據(jù),而且還可以通過顯示器進(jìn)行人機(jī) 對話,可以通過顯示器和鍵盤進(jìn)行一些參數(shù)的設(shè)置,比如像將要安裝的自行車的輪圈 的半徑設(shè)置,以及預(yù)設(shè)運(yùn)動量的和時間的設(shè)置。這些都需要通過顯示器進(jìn)行設(shè)置,其 中的時間是用芯片內(nèi)自帶的計數(shù)器進(jìn)行計數(shù)的。 程序用 c 語言編寫,由主程序、外部中斷服務(wù)程序、定時器中斷服務(wù)程序、延時 子程序等模塊組成。主程序主要完成程序的初始化和鍵盤處理,外部中斷服務(wù)程序由 測量、計算、讀數(shù)等部分組成。 關(guān)鍵詞關(guān)鍵詞:at89c51 單片機(jī),霍爾傳感器,速度,里程 abstract ii design and implementation of bicycle m

4、ileage count table abstract with the improvement of life level, bike is not only the transport tool but also its auxiliary function become more and more import. therefore, people hope that the function of amusement, leisure and exercise of bike become more and more; and bring more health and happy.

5、as one import auxiliary function of bike stopwatch develops quickly. the design of stopwatch is scientific, reasonable and beautiful; and it also has its practical value. stopwatch can calculate speed and distance, reflects true exercise state; based on this exerciser can adjusts exercise strength s

6、o that it can reach the best effect of healthy exercise. this project takes sst89e516 mcu as main control chip and takes 128*64 lcd as terminal display which displays speed per hour, distance and system set. in the system set menu people can set install information to improve measure precision. besi

7、des, it appends alerting function. when reach the distance and speed set in advance, the system will alert automatically to remind exerciser that he has reached exercise strength set in advance. this project mainly includes bicycle wheel pulse acquisition, keyboard input and data shows. the main pro

8、gram is compiled by c language which is to do initialization and keyboard dealing; the compiler and simulation download of program are done by keil c and sstflashflex51, and the various functions of the bicycle are realized concretely by the scm experiment development board. key words: at89c51 singl

9、e chip microcomputer, hall sensors, speed, mileage 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) 目錄 iii 目 錄 摘 要 .i abstract.ii 第第 1 1 章章項目概述項目概述 .1 1.1 項目背景.1 1.2 項目簡介.1 1.3 本課題對于專業(yè)知識的綜合應(yīng)用情況.1 第 2 章項目實施方案 .3 2.1 概述.3 2.1.1 霍爾測速模塊論證與選擇.3 2.1.2 顯示模塊論證與選擇 .4 2.1.3 電源模塊論證與選擇.4 2.1.4 單片機(jī)與測量方法模塊論證與選擇 .4 2.1.5 總體方案總結(jié).5 2.2 開發(fā)環(huán)境.5

10、2.3 硬件設(shè)計.5 2.4軟件設(shè)計 .5 2.4.1 速度程序設(shè)計思路.6 2.4.2 時間程序設(shè)計思路.6 2.4.3 行程程序設(shè)計思路.7 第 3 章項目實施過程 .8 3.1 硬件電路設(shè)置.8 3.1.1 單片機(jī)模塊.8 3.1.2 處理執(zhí)行元件.8 3.1.3 時鐘電路.11 3.1.4 復(fù)位電路.11 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) 目錄 iv 3.1.5 顯示電路.12 3.2 軟件實現(xiàn)過程.13 3.2.1 轉(zhuǎn)速部分軟件設(shè)計思路.13 3.2.2 軟件工作流程.13 3.2.3 確保自行車?yán)锍瘫淼墓ぷ餍阅芊€(wěn)定的相關(guān)措施.14 3.2.4 自行車?yán)锍逃?c 語言程序.1

11、4 3.3 實物調(diào)試 .16 第 4 章項目成果.17 第 5 章結(jié) 論.19 參考文獻(xiàn).20 致 謝.21 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -1- 第第 1 章章項目概述項目概述 隨著人們生活水平的逐漸提高,人們對于生活質(zhì)量的要求也日益增加,尤其是對 健身的要求。自行車在中國普遍作為代步工具。而在國外,自行車卻是一項十分受歡 迎的健身運(yùn)動。因為它無污染,價位低廉,老少皆宜。而且在運(yùn)動過程中可以充分享 受到大自然,對于忙碌的現(xiàn)代人來說,無疑是一種較好的放松方法。在中國這種情況 也在慢慢發(fā)生變化。因此愛好自行車運(yùn)動的人十分學(xué)要一款能測速的裝置,以知道自 己的運(yùn)動情況。并根據(jù)外界條件,如

12、溫度,風(fēng)速等進(jìn)行適當(dāng)?shù)恼{(diào)節(jié),已達(dá)到最佳運(yùn)動 的效果。而對于自行車運(yùn)動員來說,最為關(guān)心的莫過于一段時間內(nèi)的訓(xùn)練效果。因為 教練要根據(jù)一段時間內(nèi)運(yùn)動員的訓(xùn)練效果進(jìn)行評估,從而進(jìn)行適當(dāng)?shù)恼{(diào)整已使運(yùn)動員 達(dá)到最佳的狀態(tài)。因此需要一種裝置進(jìn)行對訓(xùn)練中各種參數(shù)的測定記錄。 1.1 項目背景項目背景 本設(shè)計以 89c51 單片機(jī)為主控芯片,把霍爾傳感器傳來的脈沖信號進(jìn)行處理,預(yù) 算,精確的計算出行駛的速度和里程,然后在傳送給 lcd 顯示器,從 lcd 上顯示出運(yùn) 動的一系列數(shù)據(jù),而且還可以通過顯示器進(jìn)行人機(jī)對話,可以通過顯示器和鍵盤進(jìn)行 一些參數(shù)的設(shè)置,比如像將要安裝的自行車的輪圈的半徑設(shè)置,以及預(yù)設(shè)運(yùn)動

13、量的和 時間的設(shè)置。這些都需要通過顯示器進(jìn)行設(shè)置,其中的時間是用芯片內(nèi)自帶的計數(shù)器 進(jìn)行計數(shù)的。 1.2 項目簡介項目簡介 本設(shè)計能實時地將所測的速度與累計里程數(shù)顯示出來,主要是將傳感器輸入到單 片機(jī)的脈沖信號的頻率實時地測量出來,然后通過單片機(jī)計算出速度和里程,并顯示 所測速度與里程。程序用 c 語言編寫,由主程序、外部中斷服務(wù)程序、延時子程序、 定時中斷服務(wù)程序等模塊組成。主程序的功能主要負(fù)責(zé)程序的初始化和鍵盤處理工作, 而外部中斷服務(wù)程序則是由測量、計算、讀數(shù)等部分組成。 1.3 本課題對于專業(yè)知識的綜合應(yīng)用情況本課題對于專業(yè)知識的綜合應(yīng)用情況 因為學(xué)習(xí)的知識深度的限制以及實際情況的考慮

14、,我設(shè)計的自行車?yán)锍逃嫷墓δ?確定為能夠正確顯示自行車的里程。在學(xué)院三年的單片機(jī)學(xué)習(xí)過程中,我們學(xué)習(xí)單片 機(jī)都是采用學(xué)院設(shè)計的單片機(jī)開發(fā)板以及 c 語言進(jìn)行學(xué)習(xí),學(xué)院的 51 單片機(jī)開發(fā)板在 單片機(jī)最小系統(tǒng)的基礎(chǔ)上配置了數(shù)碼管顯示、lcd 顯示區(qū)、lcd 顯示區(qū)、獨立鍵盤輸入 區(qū)以及模擬量輸入、a/d 轉(zhuǎn)換等資源,滿足了單片機(jī)實際開發(fā)的絕大部分要求。同時開 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -2- 發(fā)板上的電路結(jié)構(gòu)也能夠較好地鍛煉自己電路方面的知識。采用 c 語言進(jìn)行編程能夠 綜合鍛煉自己的實際程序編寫的能力以及程序的調(diào)試功能。 本課題的選題難度適中,能夠?qū)?yīng)用電子技術(shù)專業(yè)學(xué)習(xí)的專業(yè)課

15、程有較為全面的 應(yīng)用與掌握,同時也與自己的專業(yè)能力符合。 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -3- 第第 2 章章項目實施方案項目實施方案 2.1 概述概述 圖 2.1 系統(tǒng)整體結(jié)構(gòu)圖 本系統(tǒng)由信號處理電路、單片機(jī)、lcd 顯示模塊、按鍵控制和系統(tǒng)軟件組成,如圖 2.1 所示。每一個模塊的功能獨立,又相互聯(lián)系,相互依賴,最終以霍爾傳感器獲得的 脈沖為參數(shù),構(gòu)成一個完整的測速器。項目的實施需要電路原理設(shè)計、器件選擇、電 路焊接、代碼設(shè)計等步驟,下面介紹了系統(tǒng)原理及部分關(guān)鍵器件的介紹和選擇方案。 2.1.12.1.1 霍爾測速模塊論證與選擇霍爾測速模塊論證與選擇 方案一:采用霍爾元件傳感器

16、即霍爾片;霍爾片可分為貼片型和直插型。由于貼 片型不常用,因此選擇直插型。霍爾片體積小,安裝靈活,可用于測速,且與普通的 磁鋼片配套使用,價格一般為 2.55 元。 方案二:采用霍爾傳感器;選型號為 chv-25p/10 的霍爾傳感器。體積大,價格一 般為 40120 元之間不等。 從性價比方面綜合考慮因此選擇方案一。 霍爾傳感器是對磁敏感的一種傳感元件,常用于信號采集的有 cs3020、cs3040 等, 這種傳感器有 3 個管腳,外形與三極管相似,連上地和電源之后就可以工作,一般是 集電極的開路門輸出,工作的電壓范圍比較寬,使用很方便。如圖 2-2 所示是 cs3020 傳感器的外形圖,管

17、腳分辨方法:將有字面的一端對準(zhǔn)自己,從左向右的三根管腳分 別是 vcc,地,輸出端。 復(fù)位電路 cpu 執(zhí)行 單元 顯示電路 時鐘電路 啟動和設(shè)置 電路 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -4- 圖 2.2 cs3020 外形圖 用霍爾傳感器去獲取脈沖信號,它的機(jī)械結(jié)構(gòu)較為簡單,只需將一個磁鐵片放在 鋼圈的圓周上,讓傳感器靠與磁鐵片的距離在 1 厘米之內(nèi),就會有信號傳出,當(dāng)轉(zhuǎn)軸 轉(zhuǎn)動的時候,受磁鐵片的作用,就會不斷地產(chǎn)生脈沖信號。如果在圓周上粘上多個磁 鐵片,就可以實現(xiàn)旋轉(zhuǎn)一周,獲得多個脈沖信號。在安裝磁鐵片的時候需要注意安裝 的方向,安裝之前可以用傳感器接近后試驗一下是否有信號,如果

18、沒有信號,就換一 個方向再試一試。這種傳感器不受灰塵、溫度、油污的影響,在工業(yè)上有廣泛的應(yīng)用。 2.1.22.1.2 顯示模塊論證與選擇顯示模塊論證與選擇 方案一:采用 8 段 led 數(shù)碼管作為顯示模塊核心。數(shù)碼管顯示器件相對便宜,但 是耗能大、編寫程序相對麻煩,工作量大。 方案二:采用 lcd 液晶顯示器作為顯示模塊核心。lcd 顯示器工作原理簡單,編程 方便,節(jié)能環(huán)保。因此選擇方案二。 2.1.32.1.3 電源模塊論證與選擇電源模塊論證與選擇 方案一:采用交流 220v/50hz 電源轉(zhuǎn)換為直流 5v 電源作為電源模塊。該方案實施 簡單,但需持續(xù)供電,不能移動。 方案二:采用干電池串并

19、聯(lián)達(dá)到 5v 作為電源模塊。該方案實施簡單,無需搭建電 路,可嵌入碼表中,隨之移動。 針對該設(shè)計要求性價比低。因此選擇方案二。 2.1.42.1.4 單片機(jī)與測量方法模塊論證與選擇單片機(jī)與測量方法模塊論證與選擇 選用 stc89c52 的單片機(jī)速度快、功耗低、體積小、資源豐富。 轉(zhuǎn)速的測量方法轉(zhuǎn)速的測量方法 方案一:測頻法:利用定時器,定時某一固定時間段,并在此時間段內(nèi)計算脈沖 輸入的個數(shù)。 方案二:周期法:定時兩段輸入脈沖的時間。 由于自行車并非高速運(yùn)轉(zhuǎn),當(dāng)速度轉(zhuǎn)動較慢時,測頻法接受的脈沖個數(shù)過少,若 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -5- 此時處理數(shù)據(jù)會產(chǎn)生較大的誤差。而方案二,

20、無論速度如何,都能有極高的靈敏度。 經(jīng)過權(quán)衡,決定掌用方案二。 2.1.52.1.5 總體方案總結(jié)總體方案總結(jié) 傳感器采用霍爾器件將自行車的轉(zhuǎn)速轉(zhuǎn)化為脈沖信號,處理器采用 stc89c52 單片 機(jī).計數(shù)器采用單片機(jī)片內(nèi)汁數(shù)器完成對脈沖的計數(shù),顯示器采用字符型液晶顯示器 12864 進(jìn)行顯示。系統(tǒng)原理框圖如圖所示。系統(tǒng)工作過程:測量轉(zhuǎn)速的霍爾傳感器與自 行車輪胎一側(cè)近距相接,自行車每轉(zhuǎn)二周,用定時器精確測得時間,即可實現(xiàn)對應(yīng)車 輪的轉(zhuǎn)速值。單片機(jī) cpu 將數(shù)據(jù)處理后,通過 lcd 顯示出來。 2.2 開發(fā)環(huán)境開發(fā)環(huán)境 keil c51 vision3 microsoft office vis

21、io protel 99 se 2.3 硬件設(shè)計硬件設(shè)計 硬件設(shè)計的任務(wù)是根據(jù)總體設(shè)計要求,在選擇的機(jī)型的基礎(chǔ)上,具體確定系統(tǒng)中 所要使用的元器件,設(shè)計出系統(tǒng)的原理框圖、電路原理圖。 自行車碼表部分的硬件設(shè)計思路:本次設(shè)計單片機(jī)部分的硬件框圖如圖 2.3。 圖 2.3:單片機(jī)部分硬件框圖 2.4軟件設(shè)計軟件設(shè)計 自行車碼表程序可以分為若干模塊,然后在主程序中調(diào)用各個模塊,流程圖如圖 2-4。 復(fù)位電路 cpu 執(zhí)行 單元 顯示電路 時鐘電路 啟動和設(shè)置 電路 信號獲取電 路 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -6- 開始 定時器和外部中斷初始化 是否切割 執(zhí)行外部中斷0函數(shù),執(zhí)行定時器

22、0函數(shù) 是否按下切換 按鈕 顯示里程顯示速度 顯示0.0.0.0 n y y n 圖 2.4 系統(tǒng)流程圖 2.4.12.4.1 速度程序設(shè)計思路速度程序設(shè)計思路 實現(xiàn)自行車轉(zhuǎn)速的測量顯示需要 4 個步驟: 1、將速度非電信號轉(zhuǎn)化為電脈沖信號。 2、單片機(jī)對脈沖信號進(jìn)行計數(shù)。 3、單片機(jī)對輸入的電信號進(jìn)行一系列處理; 4、輸出顯示到 lcd 上。 2.4.22.4.2 時間程序設(shè)計思路時間程序設(shè)計思路 定時器 1: 每次中斷,標(biāo)志位 t1_num 自增 1;此處是為計算兩次中斷之間的時間而設(shè)置的一 個變量。 t=(t1_num*65536+th1*256+tl1)/1000000 s 外部中斷

23、0: 本系統(tǒng)采用周期法測速。 當(dāng)系統(tǒng)第一次進(jìn)入外部中斷 0 時。標(biāo)志位賦值為 1(用以主程序循環(huán)中顯示部分) 。 啟動單片機(jī)片內(nèi)定時器。當(dāng)系統(tǒng)第二次進(jìn)入外部中斷 0 時,停止定時器計時。并處理 數(shù)據(jù)。 s=3.14*2*r speed=1000000/(t1_num*65536.0+th1*256.0+tl1); 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -7- speed1=speed*s/100 road=s*countroad;(每次進(jìn)入外部中斷 0,路程計數(shù)量 countroad 自增一,以達(dá) 到準(zhǔn)確計算路程的數(shù)值) 平均速度計算是通過自己的數(shù)值與下一次的數(shù)值取算術(shù)平均值的方式不斷更新

24、。 2.4.32.4.3 行程程序設(shè)計思路行程程序設(shè)計思路 行程可通過外部脈沖信號進(jìn)行累加,于是可利用單片機(jī)的外部中斷實現(xiàn),從而通 過數(shù)碼管顯示。 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -8- 第第 3 章章項目實施過程項目實施過程 3.1 硬件硬件電路設(shè)置電路設(shè)置 硬件的功能由總體設(shè)計所規(guī)定,硬件設(shè)計的任務(wù)是根據(jù)總體設(shè)計要求,在選擇的 機(jī)型的基礎(chǔ)上,具體確定系統(tǒng)中所要使用的元器件,設(shè)計出系統(tǒng)的電路原理圖,必要 時做一些部件實驗,以確定電路圖的正確性,以及工藝結(jié)構(gòu)的設(shè)計加工、印制板的制 作、樣機(jī)的組裝等。 整個自行車碼表為單片機(jī)控制模塊、霍爾傳感器模塊、顯示模塊,各個模塊都承 擔(dān)著各自的任

25、務(wù)。 設(shè)計單片機(jī)模塊,考慮到單片機(jī)本身的外圍電路較多,所以在單片機(jī)模塊方面需 要極為小心。具體每一部分的設(shè)計將在以下章節(jié)中詳細(xì)分析。 3.1.13.1.1 單片機(jī)模塊單片機(jī)模塊 根據(jù)系統(tǒng)功能要求以及單片機(jī)硬件電路設(shè)計思路對單片機(jī)模塊進(jìn)行設(shè)計,要使傳 感器獲得脈沖信號,單片機(jī)精確的算出速度和總行程,并能使速度和里程在顯示器上 顯示出來,所以需要把單片機(jī)部分分為傳感器電路、時鐘電路、復(fù)位電路、執(zhí)行元件 以及顯示電路共五部分。 3.1.23.1.2 處理執(zhí)行元件處理執(zhí)行元件 我采用了 stc89c51 單片機(jī)(如圖 3.1 所示),stc89c51 是一種擁有 4k 字節(jié)存儲容 量的可以擦出、可以編

26、程只讀存儲器的低電壓、高性能的 cmos 8 位微型處理器。 圖 3.1 stc89c51 引腳圖 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -9- 主要特性: 與 mcs-5 單片機(jī)相兼容 4k 字節(jié)可編程存儲器 使用壽命:1000 的次寫/擦循環(huán) 數(shù)據(jù)的保留時間:10 年 全靜態(tài)工作的頻率:0hz-24hz 三級程序存儲器的鎖定 128*8 位內(nèi)部 ram 可編程的 i/o 線 兩個 16 位定時器/計數(shù)器 5 個信號中斷源 可編程的串行通道 低功耗閑置模式和掉電模式 片內(nèi)振蕩器及時鐘電路 管腳說明: 1.vcc:接電壓端; 2.gnd:接地端; 3.p0 口:p0 口為一個 8 位漏極開

27、路雙向 i/o 口,每腳可吸收 8ttl 門電流。當(dāng) p1 口的管腳第一次寫 1 時,被定義為高阻輸入。p0 能夠用于外部程序數(shù)據(jù)存儲器,它可 以被定義為數(shù)據(jù)/地址的第八位。在 fiash 編程時,p0 口作為原碼輸入口,當(dāng) fiash 進(jìn)行校驗時,p0 輸出原碼,此時 p0 外部必須被拉高。 4.p1 口:p1 口是一個內(nèi)部提供上拉電阻的 8 位雙向 i/o 口,p1 口緩沖器能接收輸 出 4ttl 門電流。p1 口管腳寫入 1 后,被內(nèi)部上拉為高,可用作輸入,p1 口被外部下 拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在 flash 編程和校驗時,p1 口作為第八位地址接收。 5.

28、p2 口:p2 口為一個內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 口緩沖器可接收,輸出 4 個 ttl 門電流,當(dāng) p2 口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并 因此作為輸入時,p2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。 當(dāng)把 p2 用在 16 位的地址外部數(shù)據(jù)存儲器進(jìn)行存取時,p2 口會輸出高八位地址。給出 地址“1”的時侯,它用內(nèi)部上拉,當(dāng)讀寫外部八位地址數(shù)據(jù)存儲器時,p2 口輸出它的 特殊功能寄存器的內(nèi)容。p2 在 flash 校驗和編程時接收控制信號和高八位地址信號。 6.p3 口:p3 管腳是有 8 個內(nèi)部的上拉電阻的雙向 i/o 口,可以接

29、收或者輸出共 4 個 ttl 門電流。在把 p3 口電位輸入“1”之后,它們都會被內(nèi)部上拉變成高電平用作 輸入。當(dāng)它作為輸入端,因為外部下拉成低電平,由于上拉,p3 口將輸出電流。p3 以 可作 at89c51 的一些特殊的功能口使用。 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -10- 7.rst:復(fù)位的輸入端。當(dāng)器件被振蕩器復(fù)位時,要使 rst 腳的兩個機(jī)器周期高電 平時間保持。 8.ale/prog:當(dāng)外部存儲器被訪問時,地址的鎖存允許輸出的電平用來鎖存地址 地位的字節(jié)。當(dāng)在 flash 編程的期間,這個引腳用在這個輸入的編程脈沖。而平時, ale/prog 端用固定的頻率周期輸出正的脈

30、沖信號,這個頻率是振蕩器的頻率的 1/6。 所以它可以用于定時或用作對外部輸出的脈沖。但是要注意:當(dāng)每次用作外部數(shù)據(jù)存 儲器的時候,會跳過個 ale 脈沖。如果想禁止 ale 的輸出,可以把 sfr8eh 地址設(shè)置為 0。 表 3.1 p3 口的第二功能 引引 腳腳第二功能第二功能信信 號號 名名 稱稱 p3.0 p3.1 p3.2 p3.3 p3.4 p3.5 p3.6 p3.7 rxd txd int0 int1 t0 t1 wr rd 串行數(shù)據(jù)接收 串行數(shù)據(jù)發(fā)送 外部中斷 0 請求 外部中斷 1 請求 定時器/計數(shù)器 0 計數(shù)輸入 定時器/計數(shù)器 1 計數(shù)輸入 外部 ram 寫選通 外部

31、 ram 讀選通 p3 口同時為編程校驗和閃爍編程接收一些控制的信號。 這時, ale 只是執(zhí)行 movx,movc 指令是 ale 才有用。同時,該引腳將會被略微地 拉高。如果此時處理器在外部執(zhí)行狀態(tài) ale 上禁止,則置位無效。 9. /ea/vpp:在/ea 保持低電平的時候,在此期間內(nèi)外部程序存儲器不管有或沒有 內(nèi)部程序存儲器。注意:加密方式為 1 時,/ea 將內(nèi)部鎖定為 reset;當(dāng)/ea 端保持于 高電平時,此間于內(nèi)部程序的存儲器。在 flash 編程的時候,這個引腳也將用于施加 12v 的編程電源。 10./psen:外部的程序的存儲器的選通信號。在外部程序存儲器取指的期間,

32、它 每個機(jī)器周期的兩次/psen 則有效。但是在訪問外部的數(shù)據(jù)存儲器的時候,有效的這兩 次/psen 信號將不會出現(xiàn)了。 11.xtal2:產(chǎn)生于反向振蕩器的輸出。 12.xtal1:內(nèi)部時鐘工作電路的信號輸入及反向振蕩放大器信號的輸入。 振蕩器特性: 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -11- xtal2 和 xtal1 分別是反向放大器的輸出端和輸入端。可以把這個反向放大器改造 成為片內(nèi)振蕩器。采用石英振蕩或陶瓷振蕩都可以。如采用的是外部時鐘源的驅(qū)動器 件,那么 xtal2 就應(yīng)該不接。有余輸入至內(nèi)部時鐘信號需要通過一個二分頻的觸發(fā)器, 因此對外部時鐘信號脈寬沒有要求,但必須保證脈

33、沖的高低電平所要求的寬度。 3.1.33.1.3 時鐘電路時鐘電路 時鐘電路是計算機(jī)的心臟部件,它控制計算機(jī)工作的節(jié)奏。stc89c51 單片機(jī)的時 鐘頻率為 12mhz c51 單片機(jī)內(nèi)部有一個可以控的負(fù)反饋反相放大器電路,外接晶振(或陶瓷諧振器) 和電容組成振蕩器,圖 3.2 為 cmos 型單片機(jī)時鐘電路框圖。振蕩器受/pd 端的控制, 置于“1”pd(即特殊功能寄存器 pcon.1)使/pd0,然后振蕩器會停止工作,所以整 個單片機(jī)系統(tǒng)也就停止了工作,達(dá)到了節(jié)電的目的。pd 清 0,讓振蕩器的工作產(chǎn)生了 時鐘,所以單片機(jī)就會正常運(yùn)行。圖中的 sys 是陶瓷諧振器或晶振,振蕩器所產(chǎn)生的

34、時鐘頻率主要是由 sys 的參數(shù)所確定(晶振上標(biāo)明的頻率) 。電容 c1 和 c1 有兩個作用: 一是讓振蕩器開始震蕩,其二微調(diào)振蕩器的頻率,典型的值為 30pf。 圖 3.2 cmos 型單片機(jī)時鐘電路框圖 3.1.43.1.4 復(fù)位電路復(fù)位電路 單片機(jī)每次在啟動運(yùn)行之前都需要先進(jìn)行復(fù)位初始化,讓處理器及位于系統(tǒng)里的 其它的部件都處于確定的一個初始狀態(tài),然后從這個狀態(tài)開始運(yùn)行。 mcs-51 單片機(jī)上面有一復(fù)位引腳 rst,它是史密特觸發(fā)輸入端,當(dāng)振蕩器開始震 蕩后該引腳上會出現(xiàn)高于 2 個機(jī)器周期的高電平,讓器件復(fù)位,只需讓 rst 保持高電 平,單片機(jī)就保持在復(fù)位狀態(tài)。復(fù)位引腳 rst

35、變?yōu)榈碗娖揭院螅瑫顺鰪?fù)位,cpu 從初 始狀態(tài)重現(xiàn)開始工作。 單片機(jī)采用的復(fù)位方式是自動復(fù)位方式。對于 mos(stc89c51)單片機(jī)只要接上一個 電容到 vcc 即可(見圖 3.3)。在加電瞬間,電容利用電阻充電,就在 rst 端出現(xiàn)一時的 高電平,當(dāng)高電平時間足夠長時,就可讓 mcs-51 有效的復(fù)位。當(dāng) rst 端加電的時候, 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -12- 保持高電平的時間包括振蕩器起振的時間和 vss 的上升時間,vss 上升的時間若果是 10ms,振蕩器的頻率和起震時間有關(guān)。當(dāng)平率為 10mhz 時約為 1ms,1mhz 約為 10ms, 所以一般為了復(fù)位的

36、可靠,rst 在上電時應(yīng)保持在 20ms 以上的高電平。當(dāng) rc 的時間常 數(shù)越大時,上電 rst 端保持在高電平的時間就越長。 若復(fù)位電路失效,加電后 cpu 從一個隨機(jī)的狀態(tài)開始工作,系統(tǒng)就不能正常運(yùn)轉(zhuǎn)。 圖 3.3 上電復(fù)位電路 3.1.53.1.5 顯示電路顯示電路 (1)許多電子產(chǎn)品上都有跳動的數(shù)碼來指示電器的工作狀態(tài),其實數(shù)碼管顯示的數(shù) 碼均是由八個發(fā)光二極管構(gòu)成的。每段上加上合適的電壓,該段就點亮(如圖 3-4) 。 led 數(shù)碼有共陽和共陰兩種,把這些 led 發(fā)光二極管的正極接到一塊(一般是拼成 一個 8 字加一個小數(shù)點)而作為一個引腳,就叫共陽的,相反的,就叫共陰的,那么

37、應(yīng)用時這個腳就分別的接 vcc 和 gnd。再把多個這樣的 8 字裝在一起成了多位的數(shù)碼管 了。 圖 3.4 實物圖 圖 3.5 內(nèi)部結(jié)構(gòu)圖 共陽型(圖 3-5)就是八個發(fā)光管的正極都連在一起 ,作為一條引線.ag 段用于 顯示數(shù)字,字符的筆畫,(dp 顯示小數(shù)點) ,每一段控制 agdp 的亮與來。 共陰型 lcd 數(shù)碼管可以分為靜態(tài)式和動態(tài)式兩類。 靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動又叫做直流驅(qū)動。靜態(tài)驅(qū)動是指 led 顯示器每個數(shù)碼管 的每一個段碼都由一個單片機(jī)的 i/o 端口驅(qū)動著。靜態(tài)驅(qū)動的編程比較簡單,顯示亮 度高,但是會占用更多 i/o 端口。 動態(tài)顯示驅(qū)動:動態(tài)驅(qū)動是將數(shù)碼管的 8 個顯示

38、位a,b,c,d,e,f,g,dp名相同的 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -13- 一端連在一起,然后為每個數(shù)碼管的公共極 com 加上位選通控制電路,位選通由各自 獨立的 in/out 線控制,當(dāng)單片機(jī)輸出字形碼的時候,所有的數(shù)碼管都會接收到相同的 字形碼,而具體哪個數(shù)碼管會顯示字形,要取決于單片機(jī)對位選通 com 端的電路控制, 因此只需將需要顯示的數(shù)碼管的選通控制打開來,字形就可以在該位顯示出來,沒有 選通的數(shù)碼管就不會發(fā)亮。通過分時、輪流控制各個數(shù)碼管的 com 端口,就可以使各 個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示的過程中,每位數(shù)碼管的點亮 時間為 12ms,

39、由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),給人視角上的感覺 就是穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示和靜態(tài)顯示的效果一樣,但動態(tài)顯示 可以節(jié)省大量的 i/o 端口、降低功耗(如表 3.2) 。 表 3.2 led 段碼表 顯示顯示 字符字符 共陰極共陰極 段選碼段選碼 共陽極共陽極 段選碼段選碼 顯示顯示 字符字符 共陰極共陰極 段選碼段選碼 共陽極共陽極 段選碼段選碼 0 1 2 3 4 3fh 06h 5bh 4fh 66h c0h f9h a4h b0h 99h 5 6 7 8 9 6dh 7dh 07h 7bh 6fh 92h 82h f8h 80h 90h 3.2 軟件實現(xiàn)過程軟

40、件實現(xiàn)過程 軟件需要解決的是定時器 0 的記數(shù)和外部中斷 0 的設(shè)定。顯示部分、需要有一個 二進(jìn)制到十進(jìn)制的轉(zhuǎn)化程序。啟動和設(shè)置車輪需要用到獨立按鍵方面的程序。 3.2.13.2.1 轉(zhuǎn)速部分軟件設(shè)計思路轉(zhuǎn)速部分軟件設(shè)計思路 at89c51 單片機(jī)的 p3.2 口接收傳感器的信號。主要編寫一個外部中斷服務(wù)程序 int_0,讀取記數(shù)值的三個字節(jié),并再次清 0 記數(shù)初值以便下次的記數(shù)和計算。系統(tǒng)要 求單片機(jī)晶振 11.0592mhz。 3.2.23.2.2 軟件工作流程軟件工作流程 霍爾傳感器利用磁電效應(yīng)產(chǎn)生一周期脈沖向單片機(jī)的外部中斷 0(p3.2)口發(fā)送一 個中斷信號,定時器工作在內(nèi)部定時,t

41、h0、tl0 設(shè)定初值為 0,作為除數(shù)的低兩字節(jié), 利用軟件記數(shù)器、定時器 0 中斷的次數(shù)作為除數(shù)高字節(jié)。中斷完畢讀取內(nèi)部記數(shù)值作 為除數(shù),調(diào)用除法程序計算轉(zhuǎn)速,再對二進(jìn)制數(shù)進(jìn)行一系列變換后調(diào)用顯示程序,同 時通過中斷累加行程,顯示在 led 上。 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -14- 3.2.33.2.3 確保自行車?yán)锍瘫淼墓ぷ餍阅芊€(wěn)定的相關(guān)措施確保自行車?yán)锍瘫淼墓ぷ餍阅芊€(wěn)定的相關(guān)措施 自行車?yán)锍逃嬆軐崟r地將所測的累計里程數(shù)顯示出來,主要是將傳感器輸入到單 片機(jī)的脈沖信號的頻率(傳感器將不同車速轉(zhuǎn)變成不同頻率的脈沖信號)實時地測量 出來,考慮到信號的衰減、干擾等影響,在信號送入

42、單片機(jī)前應(yīng)對其進(jìn)行放大整形, 然后通過單片機(jī)計算出里程,再將所得數(shù)據(jù)存儲到數(shù)據(jù)存儲器,并由 lcd 顯示模塊交 替顯示所測里程。本設(shè)計的里程數(shù)的算法是一種理想情況的假設(shè), (認(rèn)為在一定時間內(nèi) 自行車是勻速行進(jìn),平均速度與時間的乘積即為里程數(shù)) 。 設(shè)計應(yīng)綜合考慮測速精度和系統(tǒng)反應(yīng)時間。本設(shè)計用測量脈沖頻率來計算速度, 因而具有較高的測速精度。在計算里程時取了自行車的理想狀態(tài)。實際中,誤差控制 在幾米之內(nèi),相對于整個里程來說不是很大。為了保證系統(tǒng)的實時性,系統(tǒng)的速度轉(zhuǎn) 換模塊和顯示數(shù)據(jù)轉(zhuǎn) bcd 碼模塊都采用快速算法。另外,還應(yīng)盡量保證其他子模塊在 編程時的通用性和高效性。本設(shè)計的里程值采用四位

43、顯示。 3.2.43.2.4 自行車?yán)锍逃嬜孕熊嚴(yán)锍逃?c c 語言程序語言程序 c 語言由于具有良好的結(jié)構(gòu)化特性以及可移植性,在學(xué)校的專業(yè)課程的學(xué)習(xí)中,老 師也對 c 語言編程做了詳細(xì)的講解,所以本設(shè)計采用 c 語言編程如下。在本章主要分 析程序的基本編程思路以及編程結(jié)構(gòu),所有源程序在附錄中。程序編寫中一定要注意 結(jié)構(gòu)化的程序設(shè)計,采用編寫大量例子程序以及系統(tǒng)提供的子程序,在主程序中進(jìn)行 調(diào)用以及相應(yīng)的修改。這樣便于程序的讀寫與調(diào)試。 定時器 0 中斷函數(shù) void time0_interrupt()interrupt 1 tl0 = (65536 - 5000) % 256;/ 12m 晶

44、振,5ms 定時 th0 = (65536 - 5000) / 256; display_function(); time_counter+; time_counter8+; if(time_counter8 = 1600)/大于 8s 沒切割,車子視為停下了,速度為:0,但里程還記著 time_counter8 = 0; speed = 0;/速度為 0 point1 = 0; buf13 = speed%10;buf12 = speed/10%10; buf11 = speed/100%10;buf10 = speed/1000%10; 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -15-

45、開電源就顯示的數(shù)據(jù),初始顯示速度 void init_display() uchar i; for(i = 0;i 4;i+) wei = bitcodenum - 1; led = display1buf1num-; delay1m(4); if(num = 0)num = 4; 定時器 0 和外部中斷 0 的初始化函數(shù) void time0_int0_init() tmod |= 0 x01; tmod /定時器 0 工作于方式 1 tl0 = (65536 - 5000) % 256;/12m 晶振,5ms 定時 th0 = (65536 - 5000) / 256; it0 = 1;/

46、外部中斷 0,負(fù)跳變觸發(fā)方式 tr0 = 0; et0 = 1; ex0 = 1; ea = 1; ms 級延時函數(shù) void delay1m(uchar x) uchar i,j; for(i=0;ix;i+) /連數(shù) x 次,約 x ms for(j=0;j120;j+); /數(shù) 120 次,約 1 ms 3.3 實物調(diào)試實物調(diào)試 調(diào)適故障: 按下電源開關(guān)無反映,手觸碰復(fù)位引腳能顯示; 按下電源既有一圈的行程; 當(dāng)顯示屏顯示速度時,非數(shù)值的數(shù)碼管也會有微弱的亮光。 解決方法: 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -16- 添加一個上電復(fù)位電路即有顯示; 在初始化程序后添加了啟動程序解

47、決了開機(jī)既有一圈行程問題。 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -17- 第第 4 章章項目成果項目成果 本設(shè)計目前可用磁鐵進(jìn)行模擬演示,用磁鐵以車輪轉(zhuǎn)動一圈為一個周期的頻率去靠 近傳感器既能顯示相應(yīng)的速度。也可以實際應(yīng)用,只需用延長線把傳感器延長到車輪 附近,另把磁鐵固定在車輪的輻條上,車輪轉(zhuǎn)一圈磁鐵就能與傳感器接觸一次實現(xiàn)測 速。整個系統(tǒng)程序可實現(xiàn)速度和里程切換顯示,切換時只需按切換按鈕。 正面效果圖 4.1。 圖 4.1 顯示器根據(jù)信號頻率顯示速度 大連東軟信息技術(shù)職業(yè)學(xué)院畢業(yè)設(shè)計(論文) -18- 背面效果圖如圖 4.2 所示。 圖 4.2 實物背面圖 大連東軟信息技術(shù)職業(yè)學(xué)院畢

48、業(yè)設(shè)計(論文) -19- 第第 5 章章結(jié)結(jié) 論論 本文在學(xué)院單片機(jī)開發(fā)系統(tǒng)的基礎(chǔ)上,應(yīng)用霍爾傳感器進(jìn)行了自行車?yán)锍逃嫷脑O(shè) 計,在設(shè)計中,采用了霍爾傳感器作為數(shù)據(jù)采集,并采用了有源濾波器電路對信號進(jìn) 行了濾波優(yōu)化,同時采用了運(yùn)放對信號進(jìn)行了放大處理。最后采用單片機(jī)對信號進(jìn)行 處理,并通過 lcd 對信號進(jìn)行了顯示。電路硬件電路模塊化設(shè)計,功能正確;軟件部 分采用了 c 語言編程,同樣采用了模塊化程序編寫的理念,編寫以及調(diào)用了大量的例 子程序。電路軟硬件實現(xiàn)功能良好。 在本設(shè)計中我發(fā)現(xiàn)采用了學(xué)院的單片機(jī)開發(fā)板以及學(xué)院以及成型的濾波器電路、 運(yùn)算放大電路等開發(fā)典型電路板,設(shè)計開發(fā)的難度降低了很多。真的非常感謝這些基 本的設(shè)計素材以及資料對自己畢業(yè)設(shè)計的幫助。在今后的工作中,將繼續(xù)努力將自己 的學(xué)習(xí)的知識應(yīng)用到社會發(fā)展的各個方面來。 初定課題時自己也有些茫然,看到如此長的程序

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論