版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請(qǐng)聯(lián)系改正或者刪除。摘 要隨著居民生活水平的不斷提高, 人們對(duì)于生活質(zhì)量的要求也日益增加, 特別是對(duì)健身的要求。自行車不再僅僅是普通的運(yùn)輸、 代步的工具, 而是成為人們娛樂(lè)、 休閑、 鍛煉的首選。自行車的速度里程表能夠滿足人們最基本的需求, 讓人們能清楚地知道當(dāng)前的速度、 里程等物理量。而對(duì)于自行車運(yùn)動(dòng)員來(lái)說(shuō), 最為關(guān)心的莫過(guò)于一段時(shí)間內(nèi)的訓(xùn)練效果。因?yàn)榻叹氁鶕?jù)一段時(shí)間內(nèi)運(yùn)動(dòng)員的訓(xùn)練效果進(jìn)行評(píng)估, 從而進(jìn)行適當(dāng)?shù)恼{(diào)整已使運(yùn)動(dòng)員達(dá)到最佳的狀態(tài)。因此愛(ài)好自行車運(yùn)動(dòng)的人十分學(xué)要一款能測(cè)速的裝置, 以知道自己的運(yùn)動(dòng)情況。并根據(jù)外界條件, 如溫度, 風(fēng)速等進(jìn)行適當(dāng)
2、的調(diào)節(jié), 已達(dá)到最佳運(yùn)動(dòng)的效果。 關(guān)鍵詞: 單片機(jī)、 LED顯示、 里程/速度、 霍爾元件第一章系統(tǒng)總方案分析與設(shè)計(jì)1.1 課題主要任務(wù)及內(nèi)容本課題主要任務(wù)是利用霍爾元件、 單片機(jī)等部件設(shè)計(jì)一個(gè)可用LED數(shù)碼管實(shí)時(shí)顯示里程和速度的自行車的速度里程表。本文主要介紹了自行車的速度里程表的設(shè)計(jì)思想、 電路原理、 方案論證以及元件的選擇等內(nèi)容, 整體上分為硬件部分設(shè)計(jì)和軟件部分設(shè)計(jì)。本文首先扼要對(duì)該課題的任務(wù)進(jìn)行方案論證, 包括硬件方案和軟件方案的設(shè)計(jì); 繼而具體介紹了自行車的速度里程表的硬件設(shè)計(jì), 包括傳感器的選擇、 單片機(jī)的選擇、 顯示電路的設(shè)計(jì); 然后闡述了該自行車的速度里程表的軟件設(shè)計(jì), 包括
3、數(shù)據(jù)處理子程序的設(shè)計(jì)、 顯示子程序的設(shè)計(jì); 最后對(duì)本次設(shè)計(jì)進(jìn)行了系統(tǒng)的總結(jié)。具體的硬件電路包括AT89C52單片機(jī)、 霍爾元件以及LED顯示電路等。軟件設(shè)計(jì)包括: 中斷子程序設(shè)計(jì), 里程計(jì)算子程序設(shè)計(jì), 顯示子程序設(shè)計(jì)。軟件采用匯編語(yǔ)言編寫(xiě), 軟件設(shè)計(jì)的思想主要是自頂向下, 模塊化設(shè)計(jì), 各個(gè)子模塊逐一設(shè)計(jì)。 1.2 任務(wù)分析與實(shí)現(xiàn)本設(shè)計(jì)的任務(wù)是: 以通用AT89C52單片機(jī)為處理核心, 用傳感器將車輪的轉(zhuǎn)數(shù)轉(zhuǎn)換為電脈沖, 進(jìn)行處理后送入單片機(jī)。里程及速度的測(cè)量, 是經(jīng)過(guò)AT89C52的定時(shí)/計(jì)數(shù)器測(cè)出總的脈沖數(shù)和每轉(zhuǎn)一圈的時(shí)間, 再經(jīng)過(guò)單片機(jī)的計(jì)算得出, 其結(jié)果經(jīng)過(guò)LED顯示器顯示出來(lái)。本系
4、統(tǒng)總體思路如下: 假定輪圈的周長(zhǎng)為L(zhǎng), 在輪圈上安裝m個(gè)永久磁鐵, 則測(cè)得的里程值最大誤差為L(zhǎng)/m。經(jīng)綜合分析, 本設(shè)計(jì)中取m=1。當(dāng)輪子每轉(zhuǎn)一圈, 經(jīng)過(guò)開(kāi)關(guān)型霍爾元件傳感器采集到一個(gè)脈沖信號(hào), 并從引腳P3.2中斷0端輸入, 傳感器每獲取一個(gè)脈沖信號(hào)即對(duì)系統(tǒng)提供一次計(jì)數(shù)中斷。每次中斷代表車輪轉(zhuǎn)動(dòng)一圈, 中斷數(shù)n和周長(zhǎng)L的乘積為里程值。計(jì)數(shù)器T1計(jì)算每轉(zhuǎn)一圈所用的時(shí)間t, 就能夠計(jì)算出即時(shí)速度v。當(dāng)里程鍵按下時(shí), 里程指示燈亮, LED切換顯示當(dāng)前里程;當(dāng)速度鍵按下時(shí), 速度指示燈亮, LED切換顯示當(dāng)前速度。要求達(dá)到的各項(xiàng)指標(biāo)及實(shí)現(xiàn)方法如下: 1. 利用霍爾傳感器產(chǎn)生里程數(shù)的脈沖信號(hào)。2.
5、對(duì)脈沖信號(hào)進(jìn)行計(jì)數(shù)。實(shí)現(xiàn): 利用單片機(jī)自帶的計(jì)數(shù)器T1對(duì)霍爾傳感器脈沖信號(hào)進(jìn)行計(jì)數(shù)。3. 對(duì)數(shù)據(jù)進(jìn)行處理, 要求用LED顯示里程總數(shù)和即時(shí)速度。實(shí)現(xiàn): 利用軟件編程, 對(duì)數(shù)據(jù)進(jìn)行處理得到需要的數(shù)值。最終實(shí)現(xiàn)目標(biāo): 自行車的速度里程表具有里程、 速度測(cè)試與顯示功能, 采用單片機(jī)作控制, 顯示電路可顯示里程及速度。第二章系統(tǒng)主要單元模塊和速度算法概述2.HYPERLINK l _Toc1 傳感器選型方案一、 光電傳感器。光電傳感器是應(yīng)用非常廣泛的一種器件, 各種各樣的形式, 如透射式、 反射式等, 基本原理就是當(dāng)發(fā)射管光照射到接收管時(shí), 接收管導(dǎo)通, 反之關(guān)斷。以透射式為例, 如圖2-1所示, 當(dāng)
6、不透光的物體擋住發(fā)射與接收之間的間隙時(shí), 開(kāi)關(guān)管關(guān)斷, 否則打開(kāi)。為此能夠制作一個(gè)遮光葉片如圖2-2所示, 安裝在轉(zhuǎn)軸上, 當(dāng)扇葉經(jīng)過(guò)時(shí), 產(chǎn)生脈沖信號(hào)。當(dāng)葉片數(shù)較多時(shí), 旋轉(zhuǎn)一周能夠獲得多個(gè)脈沖信號(hào)。圖2-1 光電傳感器的原理圖圖2-2 遮光葉片將光敏電阻安裝在自行車前又的一側(cè), 在同等高度的另一側(cè)安上一個(gè)高亮度的發(fā)光二極管。在同等高度的輻條上貼上一圈黑色材料, 并在黑色材料上打上等間距的小孔, 這樣當(dāng)小孔經(jīng)過(guò)光敏電阻時(shí), 光敏電阻根據(jù)光電流的變化發(fā)出脈沖, 從而測(cè)量里程。方案二、 光電編碼器光電編碼器的工作原理與光電傳感器一樣, 不過(guò)它已將光電傳感器、 電子 HYPERLINK t _bl
7、ank 電路、 碼盤等做成一個(gè)整體, 只要用連軸器將光電傳感器的軸與轉(zhuǎn)軸相連, 就能獲得多種輸出信號(hào)。它廣泛應(yīng)用于數(shù)控機(jī)床、 回轉(zhuǎn)臺(tái)、 伺服傳動(dòng)、 機(jī)器人、 雷達(dá)、 軍事目標(biāo)測(cè)定等需要檢測(cè)角度的裝置和設(shè)備中。將旋轉(zhuǎn)編碼器安裝在車軸上, 這樣每當(dāng)車輪轉(zhuǎn)過(guò)一定的距離編碼器就會(huì)發(fā)出一個(gè)脈沖。利用脈沖數(shù)對(duì)里程進(jìn)行測(cè)量。方案三、 霍爾傳感器霍爾傳感器是對(duì)磁敏感的傳感元件, 常見(jiàn)于開(kāi)關(guān)信號(hào)采集的有CS3020、 CS3040、 A04E等, 這種傳感器是一個(gè)3端器件, 外形與三極管相似, 只要接上電源、 地, 即可工作, 輸出一般是集電極開(kāi)路( OC) 門輸出, 工作電壓范圍寬, 使用非常方便。圖2-3
8、霍爾元件和磁鋼實(shí)際圖使用霍爾傳感器獲得脈沖信號(hào), 其機(jī)械結(jié)構(gòu)也能夠做得較為簡(jiǎn)單, 只要在轉(zhuǎn)軸的圓周上粘上一粒磁鋼, 讓霍爾開(kāi)關(guān)靠近磁鋼, 就有信號(hào)輸出, 轉(zhuǎn)軸旋轉(zhuǎn)時(shí), 就會(huì)不斷地產(chǎn)生脈沖信號(hào)輸出。如果在圓周上粘上多粒磁鋼, 能夠?qū)崿F(xiàn)旋轉(zhuǎn)一周, 獲得多個(gè)脈沖輸出, 單片機(jī)根據(jù)脈沖數(shù)來(lái)計(jì)算里程?;魻栐痛配撊鐖D2-3所示。在粘磁鋼時(shí)要注意, 霍爾傳感器對(duì)磁場(chǎng)方向敏感, 粘之前能夠先手動(dòng)接近一下傳感器, 如果沒(méi)有信號(hào)輸出, 能夠換一個(gè)方向再試。這種傳感器不怕灰塵、 油污, 在工業(yè)現(xiàn)場(chǎng)應(yīng)用廣泛。光敏電阻對(duì)光特別敏感, 當(dāng)白天行駛時(shí), 外界光敏電阻對(duì)光特別敏感, 當(dāng)白天行駛時(shí), 外界光源導(dǎo)致光敏電阻發(fā)
9、出錯(cuò)誤信號(hào); 光敏電阻對(duì)環(huán)境的要求相當(dāng)高, 如果光敏電阻或發(fā)光二極管被泥沙或灰塵所覆蓋, 光敏電阻就不能再進(jìn)行測(cè)量; 在霧天和雨天光敏電阻的測(cè)量的效果也不好。而編碼器必須安裝在車軸上, 這樣安裝就會(huì)給用戶帶來(lái)很多不便?;魻栐皇芴鞖獾挠绊? 即便被泥沙或灰塵覆蓋對(duì)測(cè)量也不會(huì)有任何影響。由霍爾元件加整形電路構(gòu)成的霍爾開(kāi)關(guān)系統(tǒng), 具有輸出響應(yīng)快, 數(shù)字脈沖性能好, 安裝方便, 性能可靠, 不受光線、 泥水等因素影響, 價(jià)格便宜的優(yōu)點(diǎn)。因此本設(shè)計(jì)采用方案三霍爾傳感器。2.HYPERLINK l _Toc2 單片機(jī)選型本設(shè)計(jì)用89C52單片機(jī)設(shè)計(jì)自行車?yán)锍?速度計(jì)。AT89C52是51系列 HYPE
10、RLINK t _blank 單片機(jī)的一個(gè)型號(hào), 它是HYPERLINK t _blankATMEL公司生產(chǎn)的。 一個(gè)低電壓, 高性能CMOS 8位單片機(jī), 片內(nèi)含8k bytes的可重復(fù)擦寫(xiě)的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器( RAM) , 器件采用ATMEL公司的高密度、 非易失性存儲(chǔ)技術(shù)生產(chǎn), 兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng), 片內(nèi)置通用8位中央處理器和FlashHYPERLINK t _blank存儲(chǔ)單元, 功能強(qiáng)大的AT89C52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場(chǎng)合。 AT89C52有40個(gè)引腳, 32個(gè)外部雙向輸入/輸出( I/O) 端口, 同時(shí)
11、內(nèi)含2個(gè)外中斷口, 3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口, 2個(gè)讀寫(xiě)口線, AT89C52能夠按照常規(guī)方法進(jìn)行編程,但不能夠在線編程(S系列的才支持在線編程)。其將通用的微處理器和 HYPERLINK t _blank Flash存儲(chǔ)器結(jié)合在一起, 特別是可重復(fù)擦寫(xiě)的Flash存儲(chǔ)器可有效地降低開(kāi)發(fā)成本2.3 顯示模塊選型單片機(jī)系統(tǒng)中常見(jiàn)的顯示器有: 發(fā)光二極管LED顯示器、 液晶LCD顯示器等。在這里由于單片機(jī)測(cè)速系統(tǒng)比較簡(jiǎn)單, 因此只考慮LED顯示器和LCD顯示器。LED顯示器工作方式有兩種靜態(tài)顯示方式和動(dòng)態(tài)顯示方式。方案一 LED靜態(tài)顯示器: 靜態(tài)顯示的特點(diǎn)是每個(gè)數(shù)碼管的段選
12、必須接一個(gè)8位數(shù)據(jù)線來(lái)保持顯示字形碼。當(dāng)送入一次字形碼后, 顯示字形可一直保持, 直到送入新字形碼為止。這種方法的優(yōu)點(diǎn)是占用CPU時(shí)間少, 顯示便于監(jiān)測(cè)和控制。缺點(diǎn)是硬件電路比較復(fù)雜, 成本較高。LED動(dòng)態(tài)顯示器: 動(dòng)態(tài)顯示的特點(diǎn)是將所有位數(shù)碼管的段選線并聯(lián)在一起, 由位選線控制是哪一位數(shù)碼管有效。這樣一來(lái), 就沒(méi)有必要每一位數(shù)碼管配一個(gè)鎖存器, 從而大大地簡(jiǎn)化了硬件電路。選亮數(shù)碼管采用動(dòng)態(tài)掃描顯示。所謂動(dòng)態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選, 利用發(fā)光管的余輝和人眼視覺(jué)暫留作用, 使人的感覺(jué)仿佛各位數(shù)碼管同時(shí)都在顯示, 給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù), 不會(huì)有閃爍感。動(dòng)態(tài)顯示
13、的亮度比靜態(tài)顯示要差一些, 因此在選擇限流電阻時(shí)應(yīng)略小于靜態(tài)顯示電路中的。 方案二 用液晶顯示器LCD顯示信息。LCD顯示器工作原理就是利用液晶的物理特性; 通電時(shí)排列變得有序, 使光線容易經(jīng)過(guò); 不通電時(shí)排列混亂, 阻止光線經(jīng)過(guò), 說(shuō)簡(jiǎn)單點(diǎn)就是讓液晶如閘門般地阻隔或讓光線穿透。 LCD的好處有: 與CRT顯示器相比, LCD的優(yōu)點(diǎn)主要包括零輻射、 低功耗、 散熱小、 體積小、 圖像還原精確、 字符顯示銳利等。LED背光源技術(shù)能夠大幅度提升電視畫(huà)面的對(duì)比度和色彩表現(xiàn)力, 同時(shí)具有節(jié)能環(huán)保等諸多優(yōu)點(diǎn), 勢(shì)必成為未來(lái)電子顯示技術(shù)的發(fā)展趨勢(shì)。LED技術(shù)具有非常明顯的三大優(yōu)勢(shì)。第一, 它顯示的色彩更加
14、豐富, 色彩數(shù)量可超過(guò)當(dāng)前傳統(tǒng)CCFL冷陰極熒光管背光燈的1倍以上; 第二, LED背光源亮度能夠隨著畫(huà)面亮度進(jìn)行主動(dòng)調(diào)節(jié), 可節(jié)能30%以上; 第三, LED背光源不含鉛和汞等有毒有害物質(zhì), 是真正的綠色環(huán)保光源。本課題選用LED動(dòng)態(tài)顯示器。2.4 算法概述假定輪圈的周長(zhǎng)為L(zhǎng), 在輪圈上安裝m個(gè)永久磁鐵, 則測(cè)得的里程值最大誤差為L(zhǎng)/m。經(jīng)綜合分析, 本設(shè)計(jì)中取m=1。當(dāng)輪子每轉(zhuǎn)一圈, 經(jīng)過(guò)開(kāi)關(guān)型霍爾元件傳感器采集到一個(gè)脈沖信號(hào), 并從引腳P3.2中斷0端輸入, 傳感器每獲取一個(gè)脈沖信號(hào)即對(duì)系統(tǒng)提供一次計(jì)數(shù)中斷。每次中斷代表車輪轉(zhuǎn)動(dòng)一圈, 中斷數(shù)n和周長(zhǎng)L的乘積為里程值。計(jì)數(shù)器T1計(jì)算每轉(zhuǎn)一
15、圈所用的時(shí)間t, 就能夠計(jì)算出即時(shí)速度v。第三章系統(tǒng)硬件設(shè)計(jì)3.1 單片機(jī)主控電路3.1.1 單片機(jī)概述單片機(jī)就是在一塊半導(dǎo)體硅片上集成了微處理器( CPU) , 存儲(chǔ)器( RAM,ROM,EPROM) 和各種輸入、 輸出接口( 定時(shí)器 /計(jì)數(shù)器, 并行I/O口, 串行口, A/D轉(zhuǎn)換器以及脈寬調(diào)制器PWM等) , 這樣一塊集成電路芯片具有一臺(tái)計(jì)算機(jī)的屬性, 因而被稱為單片微型計(jì)算機(jī), 簡(jiǎn)稱單片機(jī)。單片機(jī)是本次設(shè)計(jì)的核心部件, 它是信號(hào)從采集到輸出的橋梁, 而且包括計(jì)算、 定時(shí)、 信息處理等功能。當(dāng)前, 單片機(jī)被廣泛的應(yīng)用于測(cè)控系統(tǒng)、 工業(yè)自動(dòng)化、 智能儀表、 集成智能傳感器、 機(jī)電一體化產(chǎn)品
16、、 家用電器領(lǐng)域、 辦公自動(dòng)化領(lǐng)域、 汽車電子與航空航天器電子系統(tǒng)以及單片機(jī)的多機(jī)系統(tǒng)等領(lǐng)域。在設(shè)計(jì)中選用的是AT89C52單片機(jī)。單片機(jī)由于將CPU、 內(nèi)存和一些必要的接口集成到一個(gè)芯片上, 而且面向控制功能將結(jié)構(gòu)作了一定的優(yōu)化, 因此它有一般芯片不具有的特點(diǎn): 1. 體積小、 重量輕; 2. 電源單一、 功耗低; 3. 功能強(qiáng)、 價(jià)格低; 4. 全部集成在一塊芯片上, 布線短、 合理; 本設(shè)計(jì)用89C52單片機(jī)設(shè)計(jì)自行車?yán)锍?速度計(jì)。AT89C52是51系列 HYPERLINK t _blank 單片機(jī)的一個(gè)型號(hào), 它是HYPERLINK t _blankATMEL公司生產(chǎn)的。 一個(gè)低電壓
17、, 高性能CMOS 8位單片機(jī), 片內(nèi)含8k bytes的可重復(fù)擦寫(xiě)的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器( RAM) , 器件采用ATMEL公司的高密度、 非易失性存儲(chǔ)技術(shù)生產(chǎn), 兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng), 片內(nèi)置通用8位中央處理器和FlashHYPERLINK t _blank存儲(chǔ)單元, 功能強(qiáng)大的AT89C52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場(chǎng)合。 (背景色)AT89C52有40個(gè)引腳, 32個(gè)外部雙向輸入/輸出( I/O) 端口, 同時(shí)內(nèi)含2個(gè)外中斷口, 3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口, 2個(gè)讀寫(xiě)口線, AT89C52能夠按照常規(guī)
18、方法進(jìn)行編程,但不能夠在線編程(S系列的才支持在線編程)。其將通用的微處理器和 HYPERLINK t _blank Flash存儲(chǔ)器結(jié)合在一起, 特別是可重復(fù)擦寫(xiě)的Flash存儲(chǔ)器可有效地降低開(kāi)發(fā)成本。 AT89C52有PDIP、 PQFP/TQFP及PLCC等三種封裝形式, 以適應(yīng)不同產(chǎn)品的需求。 本設(shè)計(jì)選用AT89C52單片機(jī), AT89C52是一種低功耗、 高性能CMOS 8位微控制器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造, 可與工業(yè)AT89C51 AT89C52是一個(gè)低電壓, 高性能CMOS 8位單片機(jī), 片內(nèi)含8k bytes的可重復(fù)擦寫(xiě)的Flash只讀程序存儲(chǔ)器和256
19、 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器( RAM) , 器件采用ATMEL公司的高密度、 非易失性存儲(chǔ)技術(shù)生產(chǎn), 兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng), 片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元, AT89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。主要功能特性1、 兼容MCS51指令系統(tǒng) 2、 8k可重復(fù)擦寫(xiě)(大于1000次) Flash ROM; 3、 32個(gè)雙向I/O口; 4、 256x8bit內(nèi)部RAM; 5、 3個(gè)16位可編程定時(shí)/計(jì)數(shù)器; 6、 時(shí)鐘頻率0-24MHz; 7、 2個(gè)串行中斷, 可編程UART串行通道; 8、 2個(gè)外部中斷源, 共5個(gè)中斷源; 9、 2個(gè)讀寫(xiě)中斷口線, 3級(jí)加密位;
20、 10、 低功耗空閑和掉電模式, 軟件設(shè)置睡眠和喚醒功能; 11、 有PDIP、 PQFP、 TQFP及PLCC等幾種封裝形式, 以適應(yīng)不同產(chǎn)品的需求。單片機(jī)內(nèi)部結(jié)構(gòu)示意圖如圖3-1所示。定時(shí)/計(jì)數(shù)器定時(shí)/計(jì)數(shù)器中斷系統(tǒng)CPU存儲(chǔ)器并行I/O口串口I/O口TXDTXDRXDTINTP0-P3 圖3-13.1.2AT89C52是美國(guó)ATMEL公司生產(chǎn)的低電壓, 高性能CMOS 8位單片機(jī), 片內(nèi)含8K Bytes的可重復(fù)擦寫(xiě)的只讀程序存儲(chǔ)器( EPROM) 和256 字節(jié)的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器( RAM) , 器件采用ATMEL公司的高密度、 非易失性存儲(chǔ)技術(shù)生產(chǎn), 與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8
21、052產(chǎn)品引腳兼容, 片內(nèi)置通用8位中央處理器( CPU) 和Flash存儲(chǔ)單元, 功能強(qiáng)大, AT89C52單片機(jī)適合于許多較為復(fù)雜控制場(chǎng)合應(yīng)用。圖3-2 AT89C52引腳圖AT89C52提供以下標(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管腳圖如圖2.3所示。AT89C2051芯片的20個(gè)引腳功能為: 1. Vcc: 電源電壓。 2. P1口: P1口是一8位雙向I/O口。P1.0和P1.1要求外部上拉電阻。P1.0和P1.1還分別作為片內(nèi)精
22、密模擬比較器的同相輸入(AIN0)和反相輸入( AIN1)。P1口輸出緩沖器可吸收20mA電流并能直接驅(qū)動(dòng)LED顯示。當(dāng)P1口引腳寫(xiě)入”1”時(shí),其可用作輸入端。當(dāng)引腳P1.2P1.7用作輸入并被外部拉低時(shí),它們將因內(nèi)部的上拉電阻而流出電流(IIL)。 P1口還在閃速編程和程序校驗(yàn)期間接收代碼數(shù)據(jù)。 3. P3口: P3口的P3.0P3.5、 P3.7是帶有內(nèi)部上拉電阻的七個(gè)雙向I/0引腳。P3.6用于固定輸入片內(nèi)比較器的輸出信號(hào)而且它作為一通用I/O引腳而不可訪問(wèn)。P3口緩沖器可吸收20mA電流。用作輸入時(shí),被外部拉低P3口引腳將用上拉電阻而流出電流(IIL)。 P3口還用于實(shí)現(xiàn)AT89C20
23、51的各種功能,如下表3-3所示。P3口還接收一些用于閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。 4. RST: 復(fù)位輸入。RST一旦變成高電平,所有的I/O引腳就復(fù)位到”1”。當(dāng)振蕩器正在運(yùn)行時(shí),持續(xù)給出RST引腳兩個(gè)機(jī)器周期的高電平便可完成復(fù)位。每一個(gè)機(jī)器周期需12個(gè)振蕩器或時(shí)鐘周期。5. XTAL1: 作為振蕩器反相放大器的輸入和內(nèi)部時(shí)鐘發(fā)生器的輸入。 6. XTAL2: 作為振蕩器反相放大器的輸出。 表3-3 P3口的功能P3口引腳功能P3.0P3.1P3.2P3.3P3.4P3.5RXD(串行輸入端口)TXD(串行輸出端口)INT0(外中斷0)INT1(外中斷1)TO(定時(shí)器0外部輸入)T
24、1(定時(shí)器1外部輸入)3.1.3中斷是指當(dāng)計(jì)算機(jī)執(zhí)行正常程序時(shí), 系統(tǒng)中出現(xiàn)某些急需處理的事件, CPU暫時(shí)中止當(dāng)前的程序, 轉(zhuǎn)去執(zhí)行服務(wù)程序, 以對(duì)發(fā)生的更緊迫的事件進(jìn)行處理, 待處理結(jié)束后, CPU自動(dòng)返回原來(lái)的程序執(zhí)行AT89C52系列單片機(jī)的系統(tǒng)有5個(gè)中斷源, 2個(gè)優(yōu)先級(jí), 可實(shí)現(xiàn)二級(jí)中斷服務(wù)嵌套。由片內(nèi)特殊功能寄存器中的中斷允許寄存器IE控制CPU是否響應(yīng)中斷請(qǐng)求; 由中斷優(yōu)先級(jí)寄存器IP安排各優(yōu)中斷源的優(yōu)先級(jí); 同一優(yōu)先級(jí)內(nèi)各終端同時(shí)提出中斷請(qǐng)求時(shí), 由內(nèi)部的查詢邏輯確定其響應(yīng)次序。采用的外部中斷方式包括外部中斷0和外部中斷1, 它們的中斷請(qǐng)求信號(hào)分別由單片機(jī)引腳/P3.2和/P3
25、.3輸入。外部中斷請(qǐng)求有兩種信號(hào)方式: 電平觸發(fā)方式和脈沖觸發(fā)方式。電平觸發(fā)方式的中斷請(qǐng)求是低電平有效。只要在和引腳上出現(xiàn)有效低電平時(shí), 就激活外部中斷方式。脈沖觸發(fā)方式的中斷請(qǐng)求則是脈沖的負(fù)跳變有效。在這種方式下, 在兩個(gè)相鄰機(jī)器周期內(nèi), 和 引腳電平發(fā)生變化, 即在第一個(gè)機(jī)器周期內(nèi)為高電平, 第二個(gè)機(jī)器周期內(nèi)為低電平, 就激活外部中斷。由此可見(jiàn), 在脈沖方式下, 中斷請(qǐng)求信號(hào)的高電平和低電平狀態(tài)都應(yīng)至少維持一個(gè)機(jī)器周期, 以使CPU采樣到電平狀態(tài)的變化, 本次設(shè)計(jì)所采用的觸發(fā)方式為脈沖觸發(fā)方式。3.1.4AT89C52單片機(jī)定時(shí)器/計(jì)數(shù)器的工作由兩個(gè)特殊功能寄存器控制。TMOD用于設(shè)置其工
26、作方式; TCON用于控制其啟動(dòng)和中斷請(qǐng)求。1.工作方式寄存器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ù)器工作。C/: 定時(shí)/計(jì)數(shù)模式選擇位。C/=0為定時(shí)模式; C/=1時(shí)為計(jì)數(shù)模式。M1M2: 工作方式設(shè)置位。定時(shí)/計(jì)數(shù)器有4種工作方式, 由M1M2進(jìn)行設(shè)置。本次設(shè)計(jì)TMOD為90H, 即選通定時(shí)/計(jì)數(shù)器為1、 定時(shí)功能、 工作方式1.工作方式為16位定時(shí)/計(jì)
27、數(shù)器。2.控制寄存器TCONTF1( TCON.7) 定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(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可用作查詢測(cè)試的標(biāo)志。TF1也能夠用軟件置1或清零, 同硬件置1或清零的效果一樣。TR1( TCON.6) 定時(shí)/計(jì)數(shù)器T1運(yùn)行控制位。TR1置1時(shí), 定時(shí)/計(jì)數(shù)器T1開(kāi)始工作; TR1置0時(shí), 定時(shí)/計(jì)數(shù)器T1停止工作。TR1由軟件置1或清0。TF0( TCON.5) 定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志位。TR0( TCON.4) 定時(shí)/計(jì)數(shù)器T0運(yùn)行控制位。3.
28、2 霍爾傳感器的測(cè)溫原理在信號(hào)脈沖發(fā)生源上, 本系統(tǒng)采用的是開(kāi)關(guān)型霍爾傳感器。以磁場(chǎng)作為媒介, 利用霍爾傳感器能夠檢測(cè)多種物理量, 如位移、 振動(dòng)、 轉(zhuǎn)速、 加速度、 流量、 電流、 電功率等。它不但能夠?qū)崿F(xiàn)非接觸測(cè)量, 而且采用永久磁鐵產(chǎn)生磁場(chǎng), 不需附加能源。另外霍爾傳感器尺寸小、 價(jià)格便宜、 應(yīng)用電路簡(jiǎn)單、 性能可靠, 因而獲得極為廣泛的應(yīng)用。除了直接利用霍爾傳感器外, 還利用它開(kāi)發(fā)出各種派生的傳感器。金屬或半導(dǎo)體薄片的兩個(gè)端面通以控制電流Ic, 并在薄片的垂直方向上施加磁感應(yīng)強(qiáng)度為B的磁場(chǎng), 則在垂直于電流和磁場(chǎng)的方向上將產(chǎn)生電勢(shì)Uh, 稱為霍爾電勢(shì)或霍爾電壓(如圖l所示)?;魻栯妱?shì)U
29、h=KhIcB(其中Kh為霍爾元件靈敏度, 它與所用的材料及幾何尺寸有關(guān))。這種現(xiàn)象稱為霍爾效應(yīng), 而用這種效應(yīng)制成的元件稱為霍爾元件。由于霍爾元件輸出的電壓信號(hào)較小, 而且有一定溫度誤差, 當(dāng)前已較少直接使用霍爾元件作傳感器?;魻杺鞲衅髟韴D如圖3-4所示。圖3-4 霍爾傳感器磁場(chǎng)效應(yīng)本系統(tǒng)采用開(kāi)關(guān)型霍爾傳感器A04E。開(kāi)關(guān)型霍爾傳感器是一種集成傳感器, 它內(nèi)部含有霍爾元件、 放大器、 穩(wěn)壓電源、 帶一定滯后特性的比較器及集電極開(kāi)路輸出部分等, 如圖3-5所示。 圖3-5 開(kāi)關(guān)型霍爾傳感器內(nèi)部結(jié)構(gòu)圖開(kāi)關(guān)型霍爾傳感器的工作特性如圖3-6 所示。圖3-6 開(kāi)關(guān)型霍爾傳感器工作特性當(dāng)外加的磁感應(yīng)強(qiáng)
30、度超過(guò)動(dòng)作點(diǎn)Bop時(shí), 傳感器輸出低電平, 但磁感應(yīng)強(qiáng)度降到動(dòng)作點(diǎn)Bop以下時(shí), 傳感器輸出電平不變, 一直要降到釋放點(diǎn)BRE時(shí), 傳感器才由低電平躍變?yōu)楦唠娖?。Bop與Bre之間的滯后(或稱為回差)使開(kāi)關(guān)動(dòng)作更為可靠。 圖3-7 霍爾傳感器檢測(cè)轉(zhuǎn)速示意圖霍爾傳感器檢測(cè)轉(zhuǎn)速示意圖3-7如下。在非磁材料的圓盤邊上粘貼一塊磁鋼, 霍爾傳感器固定在圓盤外緣附近。圓盤每轉(zhuǎn)動(dòng)一圈霍爾傳感器便輸出一個(gè)脈沖。經(jīng)過(guò)單片機(jī)測(cè)量產(chǎn)生脈沖的頻率, 就能夠得出圓盤的轉(zhuǎn)速。同樣道理, 根據(jù)圓盤(車輪)的轉(zhuǎn)速, 再結(jié)合圓盤的周長(zhǎng)就是計(jì)算出物體的位移。如果要增加測(cè)量位移精度, 能夠在圓盤(車輪)上多增加幾個(gè)磁鋼。由于傳感器
31、內(nèi)部為集電極開(kāi)路輸出, 因此需外接一個(gè)上拉電阻, 其阻值與電源電壓大小有關(guān), 一般取12k, 如圖3-8所示。圖3-8 傳感器輸出電路3.HYPERLINK l _Toc3 存儲(chǔ)器電路HYPERLINK t _blankAT24C02是美國(guó)ATMEL公司的低功耗CMOS串行EEPROM, 它是內(nèi)含2568位存儲(chǔ)空間, 具有工作電壓寬( 2.55.5V) 、 擦寫(xiě)次數(shù)多( 大于10000次) 、 寫(xiě)入速度快( 小于10ms) 等特點(diǎn)。HYPERLINK t _blankAT24C02的1、 2、 3腳是三條地址線, 用于確定芯片的硬件地址。在 HYPERLINK t _blank AT89C20
32、51試驗(yàn)開(kāi)發(fā)板上它們都接地, 第8腳和第4腳分別為正、 負(fù)電源。第5腳SDA為串行數(shù)據(jù)輸入/輸出, 數(shù)據(jù)經(jīng)過(guò)這條雙向I2C總線串行傳送, 在 HYPERLINK t _blank AT89C2051試驗(yàn)開(kāi)發(fā)板上和單片機(jī)的P3.5連接。第6腳SCL為串行時(shí)鐘輸入線, 在 HYPERLINK t _blank AT89C2051試驗(yàn)開(kāi)發(fā)板上和單片機(jī)的P3.6連接。SDA和SCL都需要和正電源間各接一個(gè)5.1K的電阻上拉。第7腳需要接地。AT24C02中帶有片內(nèi)地址寄存器。每寫(xiě)入或讀出一個(gè)數(shù)據(jù)字節(jié)后, 該地址寄存器自動(dòng)加1, 以實(shí)現(xiàn)對(duì)下一個(gè)存儲(chǔ)單元的讀寫(xiě)。所有字節(jié)均以單一操作方式讀取。為降低總的寫(xiě)入
33、時(shí)間, 一次操作可寫(xiě)入多達(dá)8個(gè)字節(jié)的數(shù)據(jù)。AT24C02是CMOS2048位串行E2PROM, 在內(nèi)部的組織成2568位。AT24C02的特點(diǎn)是具有允許在簡(jiǎn)單的二線總線上工作的串行接口和軟件協(xié)議。在本設(shè)計(jì)中用芯片AT24C02的SDA端與單片機(jī)的P3.7口相連, SCL端與單片機(jī)的P3.5口相連。因?yàn)樵谶@個(gè)I2C總線上只有一個(gè)器件, 因此把AT24C02的地址設(shè)為000, 即把A0、 A2、 A3都接地。單片機(jī)計(jì)算出來(lái)的里程數(shù)據(jù)經(jīng)過(guò)SDA、 SCL向AT24C02輸送數(shù)據(jù)。單片機(jī)首先向AT24C02發(fā)送寫(xiě)信號(hào), 當(dāng)確認(rèn)后從單片機(jī)內(nèi)部的數(shù)據(jù)儲(chǔ)存單元提取數(shù)據(jù)然后向AT24C02的內(nèi)部地址傳送數(shù)據(jù)。
34、當(dāng)顯示里程時(shí), 單片機(jī)首先向AT24C02發(fā)送讀信號(hào), 然后確認(rèn)后, 單片機(jī)從AT24C02內(nèi)部的地址向單片機(jī)的讀出單元字節(jié)讀出數(shù)據(jù), 供顯示所用。與單片機(jī)的接口如圖3-9所示。圖3-9 AT24CO2與單片機(jī)的接口電路3.4 74LS74芯片本次設(shè)計(jì)中的采用驅(qū)動(dòng)數(shù)碼管的芯片為74LS244, 74LS244為三態(tài)輸出的八位緩沖器和線驅(qū)動(dòng)器, 若單片機(jī)輸出口直接接顯示部分電路, 則電流太小, 會(huì)導(dǎo)致顯示部分不能正常工作。因此在單片機(jī)輸出口先接入驅(qū)動(dòng)芯片74LS244, 增大電流, 使LED能夠正常工作。其邏輯圖如圖3-10所示, 能夠看出74LS244由2組組成、 每組由四路輸入、 輸出構(gòu)成。
35、每組有一個(gè)控制端高或低電平?jīng)Q定該組數(shù)據(jù)被接通還是斷開(kāi)。圖3-10 74LS244邏輯圖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)定狀態(tài)。由于其狀態(tài)的更新發(fā)生在CP脈沖的邊沿故又稱之為上升沿觸發(fā)的邊沿觸發(fā)器, D觸發(fā)器的狀態(tài)只取決于時(shí)針到來(lái)前D端的狀態(tài)。引腳圖如圖3-11所示。 圖3-11 74LS74引腳圖在本題目中74LS74芯片起分頻的作用。當(dāng)車輪每轉(zhuǎn)一圈, 霍爾傳感器輸出一個(gè)低電平脈沖, 經(jīng)過(guò)74LS74進(jìn)行二分頻后,
36、 定時(shí)器T1的開(kāi)啟時(shí)間為車輪轉(zhuǎn)1圈的時(shí)間, 這樣就能夠算出自行車的速度。分頻前后對(duì)比圖如圖3-12所示。ttt00vv霍爾輸出圈脈沖二分頻后的波形圖3-12 分頻前后對(duì)比圖由圖可見(jiàn), 二分頻后的波形的高或地電平的時(shí)間正好是霍爾傳感器開(kāi)關(guān)的一個(gè)周期, 霍爾傳感器輸出脈沖到, 即P3.2口接收到對(duì)圈數(shù)計(jì)數(shù)的脈沖。經(jīng)74LS74二分頻后的信號(hào)輸入到, 內(nèi)部定時(shí)計(jì)數(shù)器測(cè)得每轉(zhuǎn)一圈所用的時(shí)間, 經(jīng)過(guò)計(jì)算即可得里程值和即時(shí)速度。3.5 時(shí)鐘電路的設(shè)計(jì)時(shí)鐘是單片機(jī)的心臟, 單片機(jī)各功能部件的運(yùn)行都是以時(shí)鐘頻率為基準(zhǔn), 有條不紊地一拍一拍地工作。因此, 時(shí)鐘頻率直接影響單片機(jī)的速度, 時(shí)鐘電路的質(zhì)量也直接影響
37、單片機(jī)系統(tǒng)的穩(wěn)定性。AT89C52片內(nèi)由一個(gè)反相放大器構(gòu)成振蕩器, 能夠由它產(chǎn)生時(shí)鐘。常見(jiàn)的時(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-13所示。圖3-13單片機(jī)片內(nèi)振蕩電路電路中的電容C1和C2常選擇為30PF左右。對(duì)外接電容的值雖然沒(méi)有嚴(yán)格的要求, 但電容的大小會(huì)影響振蕩器的高低、 振蕩器的穩(wěn)定性、 起振的快速性和溫度的穩(wěn)定性。而
38、外接晶體的振蕩頻率的大小, 主要取決于單片機(jī)的工作頻率范圍, 每一種單片機(jī)都有自己的最大工作頻率, 外接的晶體振蕩頻率不大于單片機(jī)的最大工作頻率即可。另外, 如果單片機(jī)有串行通信, 則應(yīng)該選擇振蕩頻率除以串行通信頻率能夠除盡的晶體。本設(shè)計(jì)晶振采用12MHz, 故計(jì)數(shù)周期為1us。3.6 復(fù)位電路的設(shè)計(jì)AT89C52單片機(jī)的復(fù)位輸入引腳RET為AT89C52提供了初始化的手段。有了它能夠使程序從指定處開(kāi)始執(zhí)行, 即從程序存儲(chǔ)器中的0000H地址單元開(kāi)始執(zhí)行程序。在89C52的時(shí)鐘電路工作后, 只要在RET引腳上出現(xiàn)兩個(gè)機(jī)器周期以上的高電平時(shí), 單片機(jī)內(nèi)部則初始復(fù)位。只要RET保持高電平, 則89
39、C52循環(huán)復(fù)位。只有當(dāng)RET由高電平變成低電平以后, 89C52才從0000H地址開(kāi)始執(zhí)行程序。本系統(tǒng)的復(fù)位電路是采用按鍵復(fù)位的電路, 如圖3-14所示, 是常見(jiàn)復(fù)位電路之一。單片機(jī)復(fù)位經(jīng)過(guò)按動(dòng)按鈕產(chǎn)生高電平復(fù)位稱手動(dòng)復(fù)位。上電時(shí), 剛接通電源, 電容C相當(dāng)于瞬間短路, +5V立即加到RET/VPD端, 該高電平使89C52全機(jī)自動(dòng)復(fù)位, 這就是上電復(fù)位; 若運(yùn)行過(guò)程中需要程序從頭執(zhí)行, 只需按動(dòng)按鈕即可。按下按鈕, 則直接把+5V加到了RET/VPD端從而復(fù)位稱為手動(dòng)復(fù)位。復(fù)位后, P0到P3并行I/O口全為高電平, 其它寄存器全部清零, 只有SBUF寄存器狀態(tài)不確定。圖3-14 按鍵復(fù)位電
40、路工作原理: 通電瞬間, RC電路充電, RST引腳出現(xiàn)高電平, 只要RST端保持24ms以上高電平, 就能使單片機(jī)有效地復(fù)位。3.7 顯示電路的設(shè)計(jì)本設(shè)計(jì)中采用LED數(shù)碼管顯示。在單片機(jī)系統(tǒng)中, 一般見(jiàn)LED數(shù)碼顯示器來(lái)顯示各種數(shù)字或符號(hào)。由于它具有顯示清晰、 亮度高、 使用電壓低、 壽命長(zhǎng)的特點(diǎn), 因此使用非常廣泛。八段LED顯示器由8個(gè)發(fā)光二極管組成。其中7個(gè)發(fā)光二極管構(gòu)成字型”8”的各個(gè)筆畫(huà)段, 另一個(gè)小數(shù)點(diǎn)為dp發(fā)光二極管。LED顯示器有兩種不同的形式: 一種是發(fā)光二極管的陽(yáng)極都連在一起的, 稱之為共陽(yáng)極LED顯示器; 另一種是發(fā)光二極管的陰極都連在一起的, 稱之為共陰極LED顯示器
41、。如圖3-15所示。本次設(shè)計(jì)采用共陰極接法。LED顯示方式有動(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端。也就是說(shuō)我們能夠采用分時(shí)的方法, 輪流控制各個(gè)顯示器的COM端, 使各個(gè)顯示器輪流點(diǎn)亮。在輪流點(diǎn)亮掃描過(guò)程中, 每位顯示器的點(diǎn)亮?xí)r間是極為短暫的( 約1ms) , 由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng), 盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮, 但只
42、要掃描的速度足夠快, 給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù), 不會(huì)有閃爍感。圖3-15 七(八)段LED顯示器本設(shè)計(jì)P2.0、 P2.1、 P2.2、 P2.3信號(hào)一起組成位選通的位選信號(hào), P0.0P0.7信號(hào)一起組成段碼選通的段選信號(hào), 經(jīng)過(guò)軟件編程, 先把所要顯示的數(shù)據(jù)放入存儲(chǔ)單元, 然后把數(shù)據(jù)送入段選通對(duì)應(yīng)的地址, 再選通某一個(gè)LED, 逐步完成四個(gè)LED的顯示。第四章 HYPERLINK l _Toc系統(tǒng)軟件設(shè)計(jì)4.1 概述在硬件設(shè)計(jì)完畢之后, 接下來(lái)就是設(shè)計(jì)中最核心和最為主要的軟件部分設(shè)計(jì)。所謂軟件設(shè)計(jì)就是把軟件需求變換成軟件的具體設(shè)計(jì)方案( 即模塊結(jié)構(gòu)) 的過(guò)程。模塊化結(jié)構(gòu)設(shè)計(jì)即是根
43、據(jù)要求和硬件設(shè)計(jì)的結(jié)構(gòu), 將整個(gè)系統(tǒng)的功能分成許多小的功能模塊, 再根據(jù)這些小的功能模塊進(jìn)行程序編寫(xiě)的過(guò)程。這樣的設(shè)計(jì)方法, 使得系統(tǒng)的整個(gè)功能和各部分的功能趨于明朗化。當(dāng)系統(tǒng)出現(xiàn)問(wèn)題, 就能夠根據(jù)功能設(shè)置找出問(wèn)題的根源, 從而更快地解決問(wèn)題。因此說(shuō), 在整個(gè)設(shè)計(jì)過(guò)程中, 軟件設(shè)計(jì)必須與硬件設(shè)計(jì)緊密地結(jié)合在一起。 基于霍爾傳感器自行車的速度里程表的軟件設(shè)計(jì)包括中斷子程序、 里程調(diào)用子程序、 LED顯示子程序等幾大部分。由于要實(shí)現(xiàn)很多功能, 因此采用模塊化設(shè)計(jì), 下面就其主要部分分別加以分析。4.2 總體程序設(shè)計(jì)在主程序模塊中, 需要完成對(duì)各接口芯片的初始化、 自行車?yán)锍毯退俣鹊某跏蓟?中斷向
44、量的設(shè)計(jì)以及開(kāi)中斷、 循環(huán)等待等工作。另外, 在主程序模塊中還需要設(shè)置啟動(dòng)/清除標(biāo)志寄存器、 里程寄存器、 速度寄存器, 并對(duì)它們進(jìn)行初始化。然后主程序?qū)⒏鶕?jù)各標(biāo)志寄存器的內(nèi)容, 分別完成啟動(dòng)、 清除、 計(jì)程和計(jì)速等不同的操作。P1.0和P1.1口分別用于顯示里程狀態(tài)和速度狀態(tài)。P1.2、 P1.3、 P1.6和P1.7口分別用于設(shè)置輪圈的大小, 低電平有效。P3.0是用于里程和速度切換的, 低電平為顯示速度, 高電平為顯示里程。中斷0是對(duì)輪子圈數(shù)的計(jì)數(shù)輸入, 輪子每轉(zhuǎn)一圈, 霍爾傳感器輸出一個(gè)低電平脈沖。將根據(jù)里程寄存器中的內(nèi)容計(jì)算和判斷出行駛里程數(shù)。中斷1用于控制定時(shí)器T1的啟/停, 當(dāng)輸
45、入為0時(shí)關(guān)閉定時(shí)器。此控制信號(hào)是將輪子圈數(shù)的計(jì)數(shù)經(jīng)二分頻后形成。這樣, 每次定時(shí)器T1的開(kāi)啟時(shí)間剛好為轉(zhuǎn)一圈的時(shí)間, 根據(jù)輪子的周長(zhǎng)就能夠計(jì)算出自行車的速度。其程序流程如圖4-1所示。開(kāi)始開(kāi)始初始化P1.2=1?NP1.3=1?P1.6=1?P1.7=1?出錯(cuò)提示將車圈周長(zhǎng)調(diào)入21H開(kāi)中斷, 啟動(dòng)定時(shí)器P3.0=1?調(diào)用里程處理子程序調(diào)用速度處理子程序NNNYYYYNY圖4-1 主程序流程圖系統(tǒng)程序設(shè)計(jì)如下: $INCLUDE (REG52.INC)DISPBUFEQU59H ;顯示緩沖區(qū)從5AH開(kāi)始SecCounEQU58HSpCounEQU56H;速度計(jì)時(shí)器單元57H和58H, 高位在前(
46、 57H單元中) CountEQU55H;顯示時(shí)的計(jì)數(shù)器SpCalcbit00h;要求計(jì)算速度的標(biāo)志, 該位為1則主程序進(jìn)行速度計(jì)算, 然后清該位HiddenEQU16;消隱碼ORG0000HAJMPSTARTORG1BHJMPTIMER1;定時(shí)中斷1入口ORG30HSTART:MOVSP,#5FH;設(shè)置堆棧MOVP1,#0FFHMOVP0,#0FFHMOVP2,#0FF H;初始化, 所有顯示器、 LED滅MOVTMOD,#00010101B;定時(shí)器T1工作于方式1, 定時(shí)器0工作方式1, 計(jì)數(shù)器MOVTH1,#HIGH(65536-3686)MOVTL1,#LOW(65536-3686)S
47、ETBTR1SETBET1;開(kāi)定時(shí)器1中斷SETBEALOOP:JNBSpCalc,LOOP;如果未要求計(jì)算, 轉(zhuǎn)本身循環(huán);標(biāo)號(hào): 功能: 雙字節(jié)二進(jìn)制無(wú)符號(hào)數(shù)乘法;入口條件: 被乘數(shù)在R2、 R3中, 乘數(shù)在R6、 R7中。;出口信息: 乘積在R2、 R3、 R4、 R5中。;影響資源: PSW、 A、 B、 R2R7 堆棧需求: 字節(jié)MOVR2,SpCounMOVR3,SpCoun+1MOVR6,#0MOVR7,#5;測(cè)得的數(shù)值是每秒計(jì)數(shù)值, 轉(zhuǎn)為分( 每一轉(zhuǎn)測(cè)12次, 故乘5而非60) CALLMULDSEND:MOVSBUF,R2SLP1:JBCTI,SN1;是否送完? AJMPSLP
48、1SN1:MOVSBUF,R3SLP2:JBCTI,SN2AJMPSLP2SN2:MOVSBUF,R4SLP3:JBCTI,SN3AJMPSLP3SN3:MOVSBUF,R5SLP4:JBCTI,SN4AJMPSLP4SN4:;標(biāo)號(hào): 功能: 雙字節(jié)十六進(jìn)制整數(shù)轉(zhuǎn)換成雙字節(jié)碼整數(shù);入口條件: 待轉(zhuǎn)換的雙字節(jié)十六進(jìn)制整數(shù)在R6、 R7中。;出口信息: 轉(zhuǎn)換后的三字節(jié)碼整數(shù)在R3、 R4、 R5中。;影響資源: PSW、 A、 R2R7 堆棧需求: 字節(jié)MOVA,R4MOVR6,AMOVA,R5MOVR7,A;將乘得的結(jié)果送R6R7準(zhǔn)備轉(zhuǎn)換, 這里結(jié)果不可能超過(guò)2字節(jié)CALLHB2MOVDISPBUF,R3;最高位MOVA,R4;ANLA,#0F0H;去掉低4位SWAPA;將高4位切換到低4位MOVDISPBUF+1,AMOVA,R4ANLA,#0FHMOVDISPBUF+2,AMOVA,R5ANLA,#0F0HSWAPAMOVDISPBUF+3,AMOVA,R5ANLA,#0FHMOVDISPBUF+4,ACLRSpCalc;清計(jì)算標(biāo)志JMPLOOP4.3 中斷子程序設(shè)計(jì)定時(shí)中斷是為滿足定時(shí)或計(jì)數(shù)的需要而
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 消防培訓(xùn)方案
- 2024年醫(yī)用設(shè)備維修合同范本
- 等級(jí)保護(hù)三級(jí)相關(guān)要求
- 股權(quán)轉(zhuǎn)讓協(xié)議書(shū)范本 格式 樣本 樣式 協(xié)議
- 住宅租賃合同撰寫(xiě)指南
- 員工專業(yè)技能培訓(xùn)合同
- 2024年委托貸款協(xié)議合同
- 出口代理協(xié)議范本模板
- 個(gè)人融資協(xié)議書(shū)合同范本撰寫(xiě)指南
- 2024年簡(jiǎn)單店面租賃合同2
- 2024-2025學(xué)年八年級(jí)上學(xué)期地理期中模擬試卷(湘教版+含答案解析)
- 基于數(shù)據(jù)挖掘的高職學(xué)情分析與課堂教學(xué)質(zhì)量提升研究
- 能源崗位招聘筆試題與參考答案(某大型國(guó)企)2024年
- 蔡戈尼效應(yīng)完整版本
- 統(tǒng)編版道德與法治初二上學(xué)期期中試卷及答案指導(dǎo)(2024年)
- 職業(yè)技能等級(jí)認(rèn)定質(zhì)量控制及規(guī)章制度
- 期中測(cè)試(二)-2024-2025學(xué)年語(yǔ)文六年級(jí)上冊(cè)統(tǒng)編版
- 山東省臨沂市(2024年-2025年小學(xué)四年級(jí)語(yǔ)文)人教版期中考試(上學(xué)期)試卷及答案
- 期中 (試題) -2024-2025學(xué)年譯林版(三起)英語(yǔ)四年級(jí)上冊(cè)
- 英大傳媒投資集團(tuán)限公司2024年應(yīng)屆畢業(yè)生招聘(第一批)高頻500題難、易錯(cuò)點(diǎn)模擬試題附帶答案詳解
- 2024人教版道法七年級(jí)上冊(cè)第二單元:成長(zhǎng)的時(shí)空大單元整體教學(xué)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論