




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、目 錄摘 要.1引言2第1章 系統(tǒng)方案分析與設(shè)計(jì)1.1課程主要任務(wù)與內(nèi)容31.2任務(wù)分析與實(shí)現(xiàn)3第2章 系統(tǒng)單元模塊與速度算法概述2.1 傳感器選型4 2.2 單片機(jī)選型52.3 顯示模塊選型62.4 算法的概述6第3章 系統(tǒng)硬件設(shè)計(jì)3.1 單片機(jī)主控電路.73.1.1 單片機(jī)概述73.1.2 單片機(jī)得引腳功能介紹83.1.3 單片機(jī)中斷系統(tǒng)介紹103.1.4單片機(jī)定時(shí)器/計(jì)數(shù)器功能介紹.103.2 霍爾傳感器的測溫原理.113.3 儲存器電路.133.4 74ls74芯片.143.5 時(shí)鐘電路的設(shè)計(jì)153.6 復(fù)位電路的設(shè)計(jì)163.7 顯示電路的設(shè)計(jì)17第4章 系統(tǒng)軟件設(shè)計(jì) 4.1 概述18
2、 4.2 總體程序設(shè)計(jì).18 4.3中斷子程序設(shè)計(jì)22 4.4 里程計(jì)算子程序23 4.5 顯示子程序的設(shè)計(jì)24總結(jié)與展望.26參考文獻(xiàn).27摘 要隨著居民生活水平的不斷提高,人們對于生活質(zhì)量的要求也日益增加,尤其是對健身的要求。自行車不再僅僅是普通的運(yùn)輸、代步的工具,而是成為人們娛樂、休閑、鍛煉的首選。自行車的速度里程表能夠滿足人們最基本的需求,讓人們能清楚地知道當(dāng)前的速度、里程等物理量。而對于自行車運(yùn)動員來說,最為關(guān)心的莫過于一段時(shí)間內(nèi)的訓(xùn)練效果。因?yàn)榻叹氁鶕?jù)一段時(shí)間內(nèi)運(yùn)動員的訓(xùn)練效果進(jìn)行評估,從而進(jìn)行適當(dāng)?shù)恼{(diào)整已使運(yùn)動員達(dá)到最佳的狀態(tài)。因此愛好自行車運(yùn)動的人十分學(xué)要一款能測速的裝置,以
3、知道自己的運(yùn)動情況。并根據(jù)外界條件,如溫度,風(fēng)速等進(jìn)行適當(dāng)?shù)恼{(diào)節(jié),已達(dá)到最佳運(yùn)動的效果。 關(guān)鍵詞:單片機(jī)、led顯示、里程/速度、霍爾元件引言本論文主要闡述一種基于霍爾元件的自行車的速度里程表的設(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)硬件
4、電路簡單,子程序具有通用性,完全符合設(shè)計(jì)要求。第一章系統(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ì)。本文首先扼要對該課題的任務(wù)進(jìn)行方案論證,包括硬件方案和軟件方案的設(shè)計(jì);繼而具體介紹了自行車的速度里程表的硬件設(shè)計(jì),包括傳感器的選擇、單片機(jī)的選擇、顯示電路的設(shè)計(jì);然后闡述了該自行車的速度里程表的軟件設(shè)計(jì),包括數(shù)據(jù)處理子程序的設(shè)計(jì)、顯示子程序的設(shè)計(jì);最后對本次設(shè)計(jì)進(jìn)行了系統(tǒng)的
5、總結(jié)。具體的硬件電路包括at89c52單片機(jī)、霍爾元件以及l(fā)ed顯示電路等。軟件設(shè)計(jì)包括:中斷子程序設(shè)計(jì),里程計(jì)算子程序設(shè)計(jì),顯示子程序設(shè)計(jì)。軟件采用匯編語言編寫,軟件設(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ī)。里程及速度的測量,是經(jīng)過at89c52的定時(shí)/計(jì)數(shù)器測出總的脈沖數(shù)和每轉(zhuǎn)一圈的時(shí)間,再經(jīng)過單片機(jī)的計(jì)算得出,其結(jié)果通過led顯示器顯示出來。本系統(tǒng)總體思路如下:假定輪圈的周長為l,在輪圈上安裝m個(gè)永久磁鐵,則測得的里程值最大誤差為l/m。經(jīng)
6、綜合分析,本設(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)前速度。要求達(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顯示里程
7、總數(shù)和即時(shí)速度。實(shí)現(xiàn):利用軟件編程,對數(shù)據(jù)進(jìn)行處理得到需要的數(shù)值。最終實(shí)現(xiàn)目標(biāo):自行車的速度里程表具有里程、速度測試與顯示功能,采用單片機(jī)作控制,顯示電路可顯示里程及速度。第二章系統(tǒng)主要單元模塊和速度算法概述2.1 傳感器選型方案一、光電傳感器。光電傳感器是應(yīng)用非常廣泛的一種器件,各種各樣的形式,如透射式、反射式等,基本原理就是當(dāng)發(fā)射管光照射到接收管時(shí),接收管導(dǎo)通,反之關(guān)斷。以透射式為例,如圖2-1所示,當(dāng)不透光的物體擋住發(fā)射與接收之間的間隙時(shí),開關(guān)管關(guān)斷,否則打開。為此可以制作一個(gè)遮光葉片如圖2-2所示,安裝在轉(zhuǎn)軸上,當(dāng)扇葉經(jīng)過時(shí),產(chǎn)生脈沖信號。當(dāng)葉片數(shù)較多時(shí),旋轉(zhuǎn)一周可以獲得多個(gè)脈沖信號。
8、圖2-1 光電傳感器的原理圖圖2-2 遮光葉片將光敏電阻安裝在自行車前又的一側(cè),在同等高度的另一側(cè)安上一個(gè)高亮度的發(fā)光二極管。在同等高度的輻條上貼上一圈黑色材料,并在黑色材料上打上等間距的小孔,這樣當(dāng)小孔經(jīng)過光敏電阻時(shí),光敏電阻根據(jù)光電流的變化發(fā)出脈沖, 從而測量里程。方案二、光電編碼器光電編碼器的工作原理與光電傳感器一樣,不過它已將光電傳感器、電子電路、碼盤等做成一個(gè)整體,只要用連軸器將光電傳感器的軸與轉(zhuǎn)軸相連,就能獲得多種輸出信號。它廣泛應(yīng)用于數(shù)控機(jī)床、回轉(zhuǎn)臺、伺服傳動、機(jī)器人、雷達(dá)、軍事目標(biāo)測定等需要檢測角度的裝置和設(shè)備中。如圖2-3所示,是某光電編碼器的外形。圖2-3 成品光電編碼器將
9、旋轉(zhuǎn)編碼器安裝在車軸上,這樣每當(dāng)車輪轉(zhuǎn)過一定的距離編碼器就會發(fā)出一個(gè)脈沖。利用脈沖數(shù)對里程進(jìn)行測量。方案三、霍爾傳感器霍爾傳感器是對磁敏感的傳感元件,常用于開關(guān)信號采集的有cs3020、cs3040、a04e等,這種傳感器是一個(gè)3端器件,外形與三極管相似,只要接上電源、地,即可工作,輸出通常是集電極開路(oc)門輸出,工作電壓范圍寬,使用非常方便。圖2-4 霍爾元件和磁鋼實(shí)際圖使用霍爾傳感器獲得脈沖信號,其機(jī)械結(jié)構(gòu)也可以做得較為簡單,只要在轉(zhuǎn)軸的圓周上粘上一粒磁鋼,讓霍爾開關(guān)靠近磁鋼,就有信號輸出,轉(zhuǎn)軸旋轉(zhuǎn)時(shí),就會不斷地產(chǎn)生脈沖信號輸出。如果在圓周上粘上多粒磁鋼,可以實(shí)現(xiàn)旋轉(zhuǎn)一周,獲得多個(gè)脈沖
10、輸出, 單片機(jī)根據(jù)脈沖數(shù)來計(jì)算里程。霍爾元件和磁鋼如圖2-4所示。在粘磁鋼時(shí)要注意,霍爾傳感器對磁場方向敏感,粘之前可以先手動接近一下傳感器,如果沒有信號輸出,可以換一個(gè)方向再試。這種傳感器不怕灰塵、油污,在工業(yè)現(xiàn)場應(yīng)用廣泛。光敏電阻對光特別敏感,當(dāng)白天行駛時(shí),外界光敏電阻對光特別敏感,當(dāng)白天行駛時(shí),外界光源導(dǎo)致光敏電阻發(fā)出錯(cuò)誤信號;光敏電阻對環(huán)境的要求相當(dāng)高,如果光敏電阻或發(fā)光二極管被泥沙或灰塵所覆蓋,光敏電阻就不能再進(jìn)行測量;在霧天和雨天光敏電阻的測量的效果也不好。而編碼器必須安裝在車軸上,這樣安裝就會給用戶帶來很多不便。霍爾元件不受天氣的影響,即便被泥沙或灰塵覆蓋對測量也不會有任何影響。
11、由霍爾元件加整形電路構(gòu)成的霍爾開關(guān)系統(tǒng),具有輸出響應(yīng)快,數(shù)字脈沖性能好,安裝方便,性能可靠,不受光線、泥水等因素影響,價(jià)格便宜的優(yōu)點(diǎn)。所以本設(shè)計(jì)采用方案三霍爾傳感器。2.2 單片機(jī)選型本設(shè)計(jì)用89c52單片機(jī)設(shè)計(jì)自行車?yán)锍?速度計(jì)。at89c52是51系列單片機(jī)的一個(gè)型號,它是atmel公司生產(chǎn)的。 一個(gè)低電壓,高性能cmos 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的flash只讀程序存儲器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲器(ram),器件采用atmel公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和flash存儲單元,功能強(qiáng)大的at8
12、9c52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。 at89c52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(i/o)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線,at89c52可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(s系列的才支持在線編程)。其將通用的微處理器和flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的flash存儲器可有效地降低開發(fā)成本2.3 顯示模塊選型單片機(jī)系統(tǒng)中常用的顯示器有:發(fā)光二極管led顯示器、液晶lcd顯示器等。在這里由于單片機(jī)測速系統(tǒng)比較簡單,所以只考慮led顯示器和lcd顯示器。led顯示器工作方式有兩種靜態(tài)顯示方式和動
13、態(tài)顯示方式。方案一 led靜態(tài)顯示器:靜態(tài)顯示的特點(diǎn)是每個(gè)數(shù)碼管的段選必須接一個(gè)8位數(shù)據(jù)線來保持顯示字形碼。當(dāng)送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優(yōu)點(diǎn)是占用cpu時(shí)間少,顯示便于監(jiān)測和控制。缺點(diǎn)是硬件電路比較復(fù)雜,成本較高。led動態(tài)顯示器:動態(tài)顯示的特點(diǎn)是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。這樣一來,就沒有必要每一位數(shù)碼管配一個(gè)鎖存器,從而大大地簡化了硬件電路。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時(shí)都在顯示,給人的印象
14、就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時(shí)應(yīng)略小于靜態(tài)顯示電路中的。 方案二 用液晶顯示器lcd顯示信息。lcd顯示器工作原理就是利用液晶的物理特性;通電時(shí)排列變得有序,使光線容易通過;不通電時(shí)排列混亂,阻止光線通過,說簡單點(diǎn)就是讓液晶如閘門般地阻隔或讓光線穿透。 lcd的好處有:與crt顯示器相比,lcd的優(yōu)點(diǎn)主要包括零輻射、低功耗、散熱小、體積小、圖像還原精確、字符顯示銳利等。led背光源技術(shù)能夠大幅度提升電視畫面的對比度和色彩表現(xiàn)力,同時(shí)具有節(jié)能環(huán)保等諸多優(yōu)點(diǎn),勢必成為未來電子顯示技術(shù)的發(fā)展趨勢。led技術(shù)具有非常明顯的三大優(yōu)勢。第一,它
15、顯示的色彩更加豐富,色彩數(shù)量可超過目前傳統(tǒng)ccfl冷陰極熒光管背光燈的1倍以上;第二,led背光源亮度可以隨著畫面亮度進(jìn)行主動調(diào)節(jié),可節(jié)能30%以上;第三,led背光源不含鉛和汞等有毒有害物質(zhì),是真正的綠色環(huán)保光源。本課題選用led動態(tài)顯示器。2.4 算法概述假定輪圈的周長為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
16、,就可以計(jì)算出即時(shí)速度v。第三章系統(tǒng)硬件設(shè)計(jì)3.1 單片機(jī)主控電路3.1.1 單片機(jī)概述單片機(jī)就是在一塊半導(dǎo)體硅片上集成了微處理器(cpu),存儲器(ram,rom,eprom)和各種輸入、輸出接口(定時(shí)器 /計(jì)數(shù)器,并行i/o口,串行口,a/d轉(zhuǎn)換器以及脈寬調(diào)制器pwm等),這樣一塊集成電路芯片具有一臺計(jì)算機(jī)的屬性,因而被稱為單片微型計(jì)算機(jī),簡稱單片機(jī)。單片機(jī)是本次設(shè)計(jì)的核心部件,它是信號從采集到輸出的橋梁,而且包括計(jì)算、定時(shí)、信息處理等功能。目前,單片機(jī)被廣泛的應(yīng)用于測控系統(tǒng)、工業(yè)自動化、智能儀表、集成智能傳感器、機(jī)電一體化產(chǎn)品、家用電器領(lǐng)域、辦公自動化領(lǐng)域、汽車電子與航空航天器電子系統(tǒng)以
17、及單片機(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系列單片機(jī)的一個(gè)型號,它是atmel公司生產(chǎn)的。 一個(gè)低電壓,高性能cmos 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的flash只讀程序存儲器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲器(ram),器件采用atmel公司的高密度
18、、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和flash存儲單元,功能強(qiáng)大的at89c52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。 (背景色)at89c52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(i/o)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線,at89c52可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(s系列的才支持在線編程)。其將通用的微處理器和flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的flash存儲器可有效地降低開發(fā)成本。 at89c52有pdip、pqfp/tqfp及plcc等三種封裝形式,以適應(yīng)
19、不同產(chǎn)品的需求。 本設(shè)計(jì)選用at89c52單片機(jī),at89c52是一種低功耗、高性能cmos 8位微控制器。使用atmel公司高密度非易失性存儲器技術(shù)制造,可與工業(yè)at89c51產(chǎn)品指令和引腳完全兼容。 at89c52是一個(gè)低電壓,高性能cmos 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的flash只讀程序存儲器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲器(ram),器件采用atmel公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和flash存儲單元,at89c52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。主要功能特性1、兼容mcs51指令系統(tǒng) 2、8k可
20、反復(fù)擦寫(大于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è)讀寫中斷口線,3級加密位; 10、低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能; 11、有pdip、pqfp、tqfp及plcc等幾種封裝形式,以適應(yīng)不同產(chǎn)品的需求。單片機(jī)內(nèi)部結(jié)構(gòu)示意圖如圖3-1所示。定時(shí)/計(jì)數(shù)器中斷系統(tǒng)cpu存儲器并行i/o口串口i/o口txdtxdrxdtintp0-p3 圖3-13.1.2 單片機(jī)的引腳功能介紹a
21、t89c52是美國atmel公司生產(chǎn)的低電壓,高性能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-2 at89c52引腳圖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)
22、具有振蕩器及時(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)精密模擬比較器的同相輸入(ain0)和反相輸入(ain1)。p1口輸出緩沖器可吸收20ma電流并能直接驅(qū)動led顯示。當(dāng)p1口引腳寫入“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)部上拉
23、電阻的七個(gè)雙向i/0引腳。p3.6用于固定輸入片內(nèi)比較器的輸出信號并且它作為一通用i/o引腳而不可訪問。p3口緩沖器可吸收20ma電流。用作輸入時(shí),被外部拉低p3口引腳將用上拉電阻而流出電流(iil)。 p3口還用于實(shí)現(xiàn)at89c2051的各種功能,如下表3-3所示。p3口還接收一些用于閃速存儲器編程和程序校驗(yàn)的控制信號。 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. xtal
24、2:作為振蕩器反相放大器的輸出。 表3-3 p3口的功能p3口引腳功能p3.0p3.1p3.2p3.3p3.4p3.5rxd(串行輸入端口)txd(串行輸出端口)int0(外中斷0)int1(外中斷1)to(定時(shí)器0外部輸入)t1(定時(shí)器1外部輸入)3.1.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)
25、中斷請求;由中斷優(yōu)先級寄存器ip安排各優(yōu)中斷源的優(yōu)先級;同一優(yōu)先級內(nèi)各終端同時(shí)提出中斷請求時(shí),由內(nèi)部的查詢邏輯確定其響應(yīng)次序。采用的外部中斷方式包括外部中斷0和外部中斷1,它們的中斷請求信號分別由單片機(jī)引腳/p3.2和/p3.3輸入。外部中斷請求有兩種信號方式:電平觸發(fā)方式和脈沖觸發(fā)方式。電平觸發(fā)方式的中斷請求是低電平有效。只要在和引腳上出現(xiàn)有效低電平時(shí),就激活外部中斷方式。脈沖觸發(fā)方式的中斷請求則是脈沖的負(fù)跳變有效。在這種方式下,在兩個(gè)相鄰機(jī)器周期內(nèi),和 引腳電平發(fā)生變化,即在第一個(gè)機(jī)器周期內(nèi)為高電平,第二個(gè)機(jī)器周期內(nèi)為低電平,就激活外部中斷。由此可見,在脈沖方式下,中斷請求信號的高電平和低
26、電平狀態(tài)都應(yīng)至少維持一個(gè)機(jī)器周期,以使cpu采樣到電平狀態(tài)的變化,本次設(shè)計(jì)所采用的觸發(fā)方式為脈沖觸發(fā)方式。3.1.4 單片機(jī)定時(shí)器/計(jì)數(shù)器功能介紹at89c52單片機(jī)定時(shí)器/計(jì)數(shù)器的工作由兩個(gè)特殊功能寄存器控制。tmod用于設(shè)置其工作方式;tcon用于控制其啟動和中斷請求。1.工作方式寄存器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ù)器工作。c/:定時(shí)/計(jì)數(shù)模式選擇位。c/=0為
27、定時(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ì)數(shù)器。2.控制寄存器tcontf1(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í)/計(jì)數(shù)器t1開始工作;t
28、r1置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.2 霍爾傳感器的測溫原理在信號脈沖發(fā)生源上,本系統(tǒng)采用的是開關(guān)型霍爾傳感器。以磁場作為媒介,利用霍爾傳感器可以檢測多種物理量,如位移、振動、轉(zhuǎn)速、加速度、流量、電流、電功率等。它不僅可以實(shí)現(xiàn)非接觸測量,并且采用永久磁鐵產(chǎn)生磁場,不需附加能源。另外霍爾傳感器尺寸小、價(jià)格便宜、應(yīng)用電路簡單、性能可靠,因而獲得極為廣泛的應(yīng)用。除了直接利用霍爾傳感器外,還利用它開發(fā)出各種派生的傳感器。金屬或半導(dǎo)體薄片的兩個(gè)端面通以控制電流ic,并
29、在薄片的垂直方向上施加磁感應(yīng)強(qiáng)度為b的磁場,則在垂直于電流和磁場的方向上將產(chǎn)生電勢uh,稱為霍爾電勢或霍爾電壓(如圖l所示)。霍爾電勢uh=khicb(其中kh為霍爾元件靈敏度,它與所用的材料及幾何尺寸有關(guān))。這種現(xiàn)象稱為霍爾效應(yīng),而用這種效應(yīng)制成的元件稱為霍爾元件。由于霍爾元件輸出的電壓信號較小,并且有一定溫度誤差,目前已較少直接使用霍爾元件作傳感器。霍爾傳感器原理圖如圖3-4所示。圖3-4 霍爾傳感器磁場效應(yīng)本系統(tǒng)采用開關(guān)型霍爾傳感器a04e。開關(guān)型霍爾傳感器是一種集成傳感器,它內(nèi)部含有霍爾元件、放大器、穩(wěn)壓電源、帶一定滯后特性的比較器及集電極開路輸出部分等,如圖3-5所示。 圖3-5 開
30、關(guān)型霍爾傳感器內(nèi)部結(jié)構(gòu)圖開關(guān)型霍爾傳感器的工作特性如圖3-6 所示。圖3-6 開關(guān)型霍爾傳感器工作特性當(dāng)外加的磁感應(yīng)強(qiáng)度超過動作點(diǎn)bop時(shí),傳感器輸出低電平,但磁感應(yīng)強(qiáng)度降到動作點(diǎn)bop以下時(shí),傳感器輸出電平不變,一直要降到釋放點(diǎn)bre時(shí),傳感器才由低電平躍變?yōu)楦唠娖健op與bre之間的滯后(或稱為回差)使開關(guān)動作更為可靠。 圖3-7 霍爾傳感器檢測轉(zhuǎn)速示意圖霍爾傳感器檢測轉(zhuǎn)速示意圖3-7如下。在非磁材料的圓盤邊上粘貼一塊磁鋼,霍爾傳感器固定在圓盤外緣附近。圓盤每轉(zhuǎn)動一圈霍爾傳感器便輸出一個(gè)脈沖。通過單片機(jī)測量產(chǎn)生脈沖的頻率,就可以得出圓盤的轉(zhuǎn)速。同樣道理,根據(jù)圓盤(車輪)的轉(zhuǎn)速,再結(jié)合圓盤
31、的周長就是計(jì)算出物體的位移。如果要增加測量位移精度,可以在圓盤(車輪)上多增加幾個(gè)磁鋼。由于傳感器內(nèi)部為集電極開路輸出,所以需外接一個(gè)上拉電阻,其阻值與電源電壓大小有關(guān),一般取12k,如圖3-8所示。圖3-8 傳感器輸出電路3.3 存儲器電路at24c02是美國atmel公司的低功耗cmos串行eeprom,它是內(nèi)含2568位存儲空間,具有工作電壓寬(2.55.5v)、擦寫次數(shù)多(大于10000次)、寫入速度快(小于10ms)等特點(diǎn)。at24c02的1、2、3腳是三條地址線,用于確定芯片的硬件地址。在at89c2051試驗(yàn)開發(fā)板上它們都接地,第8腳和第4腳分別為正、負(fù)電源。第5腳sda為串行數(shù)
32、據(jù)輸入/輸出,數(shù)據(jù)通過這條雙向i2c總線串行傳送,在at89c2051試驗(yàn)開發(fā)板上和單片機(jī)的p3.5連接。第6腳scl為串行時(shí)鐘輸入線,在at89c2051試驗(yàn)開發(fā)板上和單片機(jī)的p3.6連接。sda和scl都需要和正電源間各接一個(gè)5.1k的電阻上拉。第7腳需要接地。at24c02中帶有片內(nèi)地址寄存器。每寫入或讀出一個(gè)數(shù)據(jù)字節(jié)后,該地址寄存器自動加1,以實(shí)現(xiàn)對下一個(gè)存儲單元的讀寫。所有字節(jié)均以單一操作方式讀取。為降低總的寫入時(shí)間,一次操作可寫入多達(dá)8個(gè)字節(jié)的數(shù)據(jù)。at24c02是cmos2048位串行e2prom,在內(nèi)部的組織成2568位。at24c02的特點(diǎn)是具有允許在簡單的二線總線上工作的串
33、行接口和軟件協(xié)議。在本設(shè)計(jì)中用芯片at24c02的sda端與單片機(jī)的p3.7口相連,scl端與單片機(jī)的p3.5口相連。因?yàn)樵谶@個(gè)i2c總線上只有一個(gè)器件,所以把a(bǔ)t24c02的地址設(shè)為000,即把a(bǔ)0、a2、a3都接地。單片機(jī)計(jì)算出來的里程數(shù)據(jù)通過sda、scl向at24c02輸送數(shù)據(jù)。單片機(jī)首先向at24c02發(fā)送寫信號,當(dāng)確認(rèn)后從單片機(jī)內(nèi)部的數(shù)據(jù)儲存單元提取數(shù)據(jù)然后向at24c02的內(nèi)部地址傳送數(shù)據(jù)。當(dāng)顯示里程時(shí),單片機(jī)首先向at24c02發(fā)送讀信號,然后確認(rèn)后,單片機(jī)從at24c02內(nèi)部的地址向單片機(jī)的讀出單元字節(jié)讀出數(shù)據(jù),供顯示所用。與單片機(jī)的接口如圖3-9所示。圖3-9 at24co
34、2與單片機(jī)的接口電路3.4 74ls74芯片本次設(shè)計(jì)中的采用驅(qū)動數(shù)碼管的芯片為74ls244,74ls244為三態(tài)輸出的八位緩沖器和線驅(qū)動器,若單片機(jī)輸出口直接接顯示部分電路,則電流太小,會導(dǎo)致顯示部分不能正常工作。所以在單片機(jī)輸出口先接入驅(qū)動芯片74ls244,增大電流,使led能夠正常工作。其邏輯圖如圖3-10所示,可以看出74ls244由2組組成、每組由四路輸入、輸出構(gòu)成。每組有一個(gè)控制端高或低電平?jīng)Q定該組數(shù)據(jù)被接通還是斷開。圖3-10 74ls244邏輯圖74ls74是d觸發(fā)器的一種,它是一個(gè)具有記憶功能的二進(jìn)制信息存儲器件,是構(gòu)成多種時(shí)序電路的最基本邏輯單元。觸發(fā)器具有兩個(gè)穩(wěn)定狀態(tài),
35、即“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-11所示。 圖3-11 74ls74引腳圖在本題目中74ls74芯片起分頻的作用。當(dāng)車輪每轉(zhuǎn)一圈,霍爾傳感器輸出一個(gè)低電平脈沖,通過74ls74進(jìn)行二分頻后,定時(shí)器t1的開啟時(shí)間為車輪轉(zhuǎn)1圈的時(shí)間,這樣就可以算出自行車的速度。分頻前后對比圖如圖3-12所示。tt00vv霍爾輸出圈脈沖二分頻后的波形圖3-12 分頻前后對比圖由圖可見,二分頻后的波形的高或地電平的時(shí)間正好是霍爾傳感器開關(guān)的一
36、個(gè)周期,霍爾傳感器輸出脈沖到,即p3.2口接收到對圈數(shù)計(jì)數(shù)的脈沖。經(jīng)74ls74二分頻后的信號輸入到,內(nèi)部定時(shí)計(jì)數(shù)器測得每轉(zhuǎn)一圈所用的時(shí)間,通過計(jì)算即可得里程值和即時(shí)速度。3.5 時(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)成振蕩器的高增益反相放大器,該高增益反相放大器的輸入為芯片引腳xt
37、al1,輸出端為引腳xtal2。這兩個(gè)引腳跨接石英晶體振蕩器和電容,就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。單片機(jī)內(nèi)部時(shí)鐘方式的振蕩電路如圖3-13所示。圖3-13單片機(jī)片內(nèi)振蕩電路電路中的電容c1和c2常選擇為30pf左右。對外接電容的值雖然沒有嚴(yán)格的要求,但電容的大小會影響振蕩器的高低、振蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。而外接晶體的振蕩頻率的大小,主要取決于單片機(jī)的工作頻率范圍,每一種單片機(jī)都有自己的最大工作頻率,外接的晶體振蕩頻率不大于單片機(jī)的最大工作頻率即可。此外,如果單片機(jī)有串行通信,則應(yīng)該選擇振蕩頻率除以串行通信頻率可以除盡的晶體。本設(shè)計(jì)晶振采用12mhz,故計(jì)數(shù)周期為1us。3.6
38、 復(fù)位電路的設(shè)計(jì)at89c52單片機(jī)的復(fù)位輸入引腳ret為at89c52提供了初始化的手段。有了它可以使程序從指定處開始執(zhí)行,即從程序存儲器中的0000h地址單元開始執(zhí)行程序。在89c52的時(shí)鐘電路工作后,只要在ret引腳上出現(xiàn)兩個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)內(nèi)部則初始復(fù)位。只要ret保持高電平,則89c52循環(huán)復(fù)位。只有當(dāng)ret由高電平變成低電平以后,89c52才從0000h地址開始執(zhí)行程序。本系統(tǒng)的復(fù)位電路是采用按鍵復(fù)位的電路,如圖3-14所示,是常用復(fù)位電路之一。單片機(jī)復(fù)位通過按動按鈕產(chǎn)生高電平復(fù)位稱手動復(fù)位。上電時(shí),剛接通電源,電容c相當(dāng)于瞬間短路,+5v立即加到ret/vpd端,該
39、高電平使89c52全機(jī)自動復(fù)位,這就是上電復(fù)位;若運(yùn)行過程中需要程序從頭執(zhí)行,只需按動按鈕即可。按下按鈕,則直接把+5v加到了ret/vpd端從而復(fù)位稱為手動復(fù)位。復(fù)位后,p0到p3并行i/o口全為高電平,其它寄存器全部清零,只有sbuf寄存器狀態(tài)不確定。圖3-14 按鍵復(fù)位電路工作原理:通電瞬間,rc電路充電,rst引腳出現(xiàn)高電平,只要rst端保持24ms以上高電平,就能使單片機(jī)有效地復(fù)位。3.7 顯示電路的設(shè)計(jì)本設(shè)計(jì)中采用led數(shù)碼管顯示。在單片機(jī)系統(tǒng)中,通常用led數(shù)碼顯示器來顯示各種數(shù)字或符號。由于它具有顯示清晰、亮度高、使用電壓低、壽命長的特點(diǎn),因此使用非常廣泛。八段led顯示器由8
40、個(gè)發(fā)光二極管組成。其中7個(gè)發(fā)光二極管構(gòu)成字型“8”的各個(gè)筆畫段,另一個(gè)小數(shù)點(diǎn)為dp發(fā)光二極管。led顯示器有兩種不同的形式:一種是發(fā)光二極管的陽極都連在一起的,稱之為共陽極led顯示器;另一種是發(fā)光二極管的陰極都連在一起的,稱之為共陰極led顯示器。如圖3-15所示。本次設(shè)計(jì)采用共陰極接法。led顯示方式有動態(tài)顯示和靜態(tài)顯示兩種方式。本系統(tǒng)采用動態(tài)掃描顯示接口電路,動態(tài)顯示接口電路是把所有顯示器的8個(gè)筆劃段a-h同名端連在一起,而每一個(gè)顯示器的公共極com各自獨(dú)立地受i/o線控制。cpu向字段輸出口送出字型碼時(shí),所有顯示器接收到相同的字型碼,但究竟是哪個(gè)顯示器亮,則取決于com端。也就是說我們
41、可以采用分時(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ù),不會有閃爍感。圖3-15 七(八)段led顯示器本設(shè)計(jì)p2.0、p2.1、p2.2、p2.3信號一起組成位選通的位選信號,p0.0p0.7信號一起組成段碼選通的段選信號,通過軟件編程,先把所要顯示的數(shù)據(jù)放入存儲單元,然后把數(shù)據(jù)送入段選通對應(yīng)的地址,再選通某一個(gè)led,逐步完成四個(gè)led的顯示。第四章 系統(tǒng)軟件設(shè)計(jì)4.1 概
42、述在硬件設(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)用子程序、led顯示子程序等幾大部分。由于要實(shí)現(xiàn)很多功能,所以采用模塊化
43、設(shè)計(jì),下面就其主要部分分別加以分析。4.2 總體程序設(shè)計(jì)在主程序模塊中,需要完成對各接口芯片的初始化、自行車?yán)锍毯退俣鹊某跏蓟⒅袛嘞蛄康脑O(shè)計(jì)以及開中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要設(shè)置啟動/清除標(biāo)志寄存器、里程寄存器、速度寄存器,并對它們進(jìn)行初始化。然后主程序?qū)⒏鶕?jù)各標(biāo)志寄存器的內(nèi)容,分別完成啟動、清除、計(jì)程和計(jì)速等不同的操作。p1.0和p1.1口分別用于顯示里程狀態(tài)和速度狀態(tài)。p1.2、p1.3、p1.6和p1.7口分別用于設(shè)置輪圈的大小,低電平有效。p3.0是用于里程和速度切換的,低電平為顯示速度,高電平為顯示里程。中斷0是對輪子圈數(shù)的計(jì)數(shù)輸入,輪子每轉(zhuǎn)一圈,霍爾傳感器輸出
44、一個(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ì)算出自行車的速度。其程序流程如圖4-1所示。開始初始化p1.2=1?np1.3=1?p1.6=1?p1.7=1?出錯(cuò)提示將車圈周長調(diào)入21h開中斷,啟動定時(shí)器p3.0=1?調(diào)用里程處理子程序調(diào)用速度處理子程序nnnyyyyny圖4-1 主程序流程圖系統(tǒng)程序設(shè)計(jì)如下:$include (reg52.inc)dispbufequ59h ;顯示緩沖區(qū)從5ah開始se
45、ccounequ58hspcounequ56h;速度計(jì)時(shí)器單元57h和58h,高位在前(57h單元中)countequ55h;顯示時(shí)的計(jì)數(shù)器spcalcbit00h;要求計(jì)算速度的標(biāo)志,該位為1則主程序進(jìn)行速度計(jì)算,然后清該位hiddenequ16;消隱碼org0000hajmpstartorg1bhjmptimer1;定時(shí)中斷1入口org30hstart:movsp,#5fh;設(shè)置堆棧movp1,#0ffhmovp0,#0ffhmovp2,#0ffh;初始化,所有顯示器、led滅movtmod,#00010101b;定時(shí)器t1工作于方式1,定時(shí)器0工作方式1,計(jì)數(shù)器movth1,#high(
46、65536-3686)movtl1,#low(65536-3686)setbtr1setbet1;開定時(shí)器1中斷setbealoop:jnbspcalc,loop;如果未要求計(jì)算,轉(zhuǎn)本身循環(huán);標(biāo)號: 功能:雙字節(jié)二進(jìn)制無符號數(shù)乘法;入口條件:被乘數(shù)在r2、r3中,乘數(shù)在r6、r7中。;出口信息:乘積在r2、r3、r4、r5中。;影響資源:psw、a、b、r2r7 堆棧需求: 字節(jié)movr2,spcounmovr3,spcoun+1movr6,#0movr7,#5;測得的數(shù)值是每秒計(jì)數(shù)值,轉(zhuǎn)為分(每一轉(zhuǎn)測12次,故乘5而非60)callmuldsend:movsbuf,r2slp1:jbcti,
47、sn1;是否送完?ajmpslp1sn1:movsbuf,r3slp2:jbcti,sn2ajmpslp2sn2:movsbuf,r4slp3:jbcti,sn3ajmpslp3sn3:movsbuf,r5slp4:jbcti,sn4ajmpslp4sn4:;標(biā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é)果不可能超過2字節(jié)callhb2mo
48、vdispbuf,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ù)的需要而設(shè)置的。在單片機(jī)內(nèi)部有兩個(gè)定時(shí)/計(jì)數(shù)器,以對其中的計(jì)數(shù)結(jié)構(gòu)進(jìn)行計(jì)數(shù)的方法,來實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能。當(dāng)結(jié)構(gòu)發(fā)生計(jì)數(shù)溢出時(shí),即表明定時(shí)時(shí)間或計(jì)數(shù)值已滿,這時(shí)就以計(jì)數(shù)溢出信號作為
49、中斷請求,去置位一個(gè)溢出標(biāo)志,作為單片機(jī)接受中斷請求的標(biāo)志。這種中斷請求是在單片機(jī)芯片內(nèi)部發(fā)生的,因此無須在芯片上設(shè)置引入端。定時(shí)/計(jì)數(shù)器控制寄存器tcon是8位寄存器,地址為88h,可以位尋址。其高4位用于定時(shí)/計(jì)數(shù)器中斷控制,低4位借給外部中斷,用做中斷標(biāo)志和觸發(fā)方式選擇位。本設(shè)計(jì)采用定時(shí)中斷,對自行車的里程和速度進(jìn)行計(jì)數(shù)。中斷子程序流程圖如圖4-2所示。關(guān)中斷開始現(xiàn)場保護(hù)開中斷中斷處理關(guān)中斷現(xiàn)場恢復(fù)開中斷中斷返回圖4-2中斷子程序流程圖4.4 里程計(jì)算子程序外部中斷0服務(wù)程序用于對單片機(jī)p3.2口輸入的圈數(shù)脈沖進(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-3所示。開始點(diǎn)亮里程指示將車圈數(shù)轉(zhuǎn)換成里程顯示里程值返回 圖4-3 里程處理子程序流程圖4.5 顯示子程序的設(shè)計(jì)采用動態(tài)掃描
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【課時(shí)練基礎(chǔ)作業(yè)】人教版四年級數(shù)學(xué)下冊第十單元《期末計(jì)算能力測試》(含答案)
- 中外合資企業(yè)合作協(xié)議書
- 授權(quán)代理合同框架協(xié)議
- 二手房屋買賣合同協(xié)議書范本
- 2025年注冊會計(jì)師考試信息披露的流程與標(biāo)準(zhǔn)試題及答案
- 項(xiàng)目管理領(lǐng)域挑戰(zhàn)試題及答案
- 企業(yè)財(cái)務(wù)規(guī)劃的基本步驟試題及答案
- 項(xiàng)目管理考試中短期與長期規(guī)劃的關(guān)系試題及答案
- 2025版高考?xì)v史一輪復(fù)習(xí)第二單元西方民主政治與社會主義制度的建立課題六羅馬法的起源與發(fā)展學(xué)案含解析新人教版
- 考前沖刺資料證券從業(yè)資格證試題及答案
- 小班數(shù)學(xué)課件《拼一拼-數(shù)一數(shù)》
- 網(wǎng)球推廣計(jì)劃和方案
- FUJI-FLEXA編程流程-課件
- 第五章 中國特色社會主義理論體系的形成發(fā)展(一)
- 大學(xué)生信息安全競賽創(chuàng)新實(shí)踐能力賽題庫(附答案)
- 平頂山職業(yè)技術(shù)學(xué)院單招《語文》備考試題庫(含答案)
- 火災(zāi)事故中的緊急搶救與復(fù)蘇技巧
- 塔式起重機(jī)司機(jī)及指揮安全知識教育培訓(xùn)
- 藥物臨床試驗(yàn)機(jī)構(gòu)備案信息平臺操作手冊及填報(bào)詳情
- 【頸椎病的推拿病例分析及心得體會1700字】
- 語法專題 非謂語動詞重難點(diǎn)分類強(qiáng)化及練習(xí)答案 -2022屆高考英語總復(fù)習(xí)
評論
0/150
提交評論