基于51單片機(jī)的自行車測(cè)速系統(tǒng)設(shè)計(jì)_第1頁
基于51單片機(jī)的自行車測(cè)速系統(tǒng)設(shè)計(jì)_第2頁
基于51單片機(jī)的自行車測(cè)速系統(tǒng)設(shè)計(jì)_第3頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、.摘 要隨著居民生活水平的不斷提高,人們對(duì)于生活質(zhì)量的要求也日益增加,尤其是對(duì)健身的要求。自行車不再僅僅是普通的運(yùn)輸、代步的工具,而是成為人們娛樂、休閑、鍛煉的首選。自行車的速度里程表能夠滿足人們最基本的需求,讓人們能清楚地知道當(dāng)前的速度、里程等物理量。而對(duì)于自行車運(yùn)動(dòng)員來說,最為關(guān)心的莫過于一段時(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)。因此愛好自行車運(yùn)動(dòng)的人十分學(xué)要一款能測(cè)速的裝置,以知道自己的運(yùn)動(dòng)情況。并根據(jù)外界條件,如溫度,風(fēng)速等進(jìn)行適當(dāng)?shù)恼{(diào)節(jié),已達(dá)到最佳運(yùn)動(dòng)的效果。關(guān)鍵詞:?jiǎn)纹瑱C(jī)、LED顯示、里程/速度、霍爾元件第一

2、章系統(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ì),包括數(shù)據(jù)處理子程序的設(shè)計(jì)、顯示子程序的設(shè)計(jì);最后對(duì)本次設(shè)計(jì)進(jìn)行了系統(tǒng)的總結(jié)。具體的硬件電路包括AT89C52單片機(jī)、霍爾元

3、件以及LED顯示電路等。軟件設(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ī)。里程及速度的測(cè)量,是經(jīng)過AT89C52的定時(shí)/計(jì)數(shù)器測(cè)出總的脈沖數(shù)和每轉(zhuǎn)一圈的時(shí)間,再經(jīng)過單片機(jī)的計(jì)算得出,其結(jié)果通過LED顯示器顯示出來。本系統(tǒng)總體思路如下:假定輪圈的周長為L,在輪圈上安裝m個(gè)永久磁鐵,則測(cè)得的里程值最大誤差為L/m。經(jīng)綜合分析,本設(shè)計(jì)中取m=1。當(dāng)輪子每轉(zhuǎn)一圈,通過開關(guān)型

4、霍爾元件傳感器采集到一個(gè)脈沖信號(hào),并從引腳P3.2中斷0端輸入,傳感器每獲取一個(gè)脈沖信號(hào)即對(duì)系統(tǒng)提供一次計(jì)數(shù)中斷。每次中斷代表車輪轉(zhuǎn)動(dòng)一圈,中斷數(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ù)的脈沖信號(hào)。2. 對(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)行處理得到

5、需要的數(shù)值。最終實(shí)現(xiàn)目標(biāo):自行車的速度里程表具有里程、速度測(cè)試與顯示功能,采用單片機(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)生脈沖信號(hào)。當(dāng)葉片數(shù)較多時(shí),旋轉(zhuǎn)一周可以獲得多個(gè)脈沖信號(hào)。圖2-1 光電傳感器的原理圖圖2-2 遮光葉片將光敏電阻

6、安裝在自行車前又的一側(cè),在同等高度的另一側(cè)安上一個(gè)高亮度的發(fā)光二極管。在同等高度的輻條上貼上一圈黑色材料,并在黑色材料上打上等間距的小孔,這樣當(dāng)小孔經(jīng)過光敏電阻時(shí),光敏電阻根據(jù)光電流的變化發(fā)出脈沖,從而測(cè)量里程。方案二、光電編碼器 光電編碼器的工作原理與光電傳感器一樣,不過它已將光電傳感器、電子電路、碼盤等做成一個(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)過一定的距離編碼器就會(huì)發(fā)出一個(gè)脈沖。利用脈沖數(shù)對(duì)里程進(jìn)行測(cè)量。方案三、

7、霍爾傳感器霍爾傳感器是對(duì)磁敏感的傳感元件,常用于開關(guān)信號(hào)采集的有CS3020、CS3040、A04E等,這種傳感器是一個(gè)3端器件,外形與三極管相似,只要接上電源、地,即可工作,輸出通常是集電極開路(OC)門輸出,工作電壓范圍寬,使用非常方便。圖2-3 霍爾元件和磁鋼實(shí)際圖使用霍爾傳感器獲得脈沖信號(hào),其機(jī)械結(jié)構(gòu)也可以做得較為簡(jiǎn)單,只要在轉(zhuǎn)軸的圓周上粘上一粒磁鋼,讓霍爾開關(guān)靠近磁鋼,就有信號(hào)輸出,轉(zhuǎn)軸旋轉(zhuǎn)時(shí),就會(huì)不斷地產(chǎn)生脈沖信號(hào)輸出。如果在圓周上粘上多粒磁鋼,可以實(shí)現(xiàn)旋轉(zhuǎn)一周,獲得多個(gè)脈沖輸出, 單片機(jī)根據(jù)脈沖數(shù)來計(jì)算里程?;魻栐痛配撊鐖D2-3所示。在粘磁鋼時(shí)要注意,霍爾傳感器對(duì)磁場(chǎng)方向敏感

8、,粘之前可以先手動(dòng)接近一下傳感器,如果沒有信號(hào)輸出,可以換一個(gè)方向再試。這種傳感器不怕灰塵、油污,在工業(yè)現(xiàn)場(chǎng)應(yīng)用廣泛。光敏電阻對(duì)光特別敏感,當(dāng)白天行駛時(shí),外界光敏電阻對(duì)光特別敏感,當(dāng)白天行駛時(shí),外界光源導(dǎo)致光敏電阻發(fā)出錯(cuò)誤信號(hào);光敏電阻對(duì)環(huán)境的要求相當(dāng)高,如果光敏電阻或發(fā)光二極管被泥沙或灰塵所覆蓋,光敏電阻就不能再進(jìn)行測(cè)量;在霧天和雨天光敏電阻的測(cè)量的效果也不好。而編碼器必須安裝在車軸上,這樣安裝就會(huì)給用戶帶來很多不便。霍爾元件不受天氣的影響,即便被泥沙或灰塵覆蓋對(duì)測(cè)量也不會(huì)有任何影響。由霍爾元件加整形電路構(gòu)成的霍爾開關(guān)系統(tǒng),具有輸出響應(yīng)快,數(shù)字脈沖性能好,安裝方便,性能可靠,不受光線、泥水等

9、因素影響,價(jià)格便宜的優(yōu)點(diǎn)。所以本設(shè)計(jì)采用方案三霍爾傳感器。2.2單片機(jī)選型本設(shè)計(jì)用89C52單片機(jī)設(shè)計(jì)自行車?yán)锍?速度計(jì)。AT89C52是51系列單片機(jī)的一個(gè)型號(hào),它是ATMEL公司生產(chǎn)的。 一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的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位中央處理器和Flash存儲(chǔ)單元,功能強(qiáng)大的AT89C52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場(chǎng)合。 AT89C52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I

10、/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線,AT89C52可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲(chǔ)器可有效地降低開發(fā)成本2.3 顯示模塊選型單片機(jī)系統(tǒng)中常用的顯示器有:發(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ù)碼管的段選必須接一個(gè)8位數(shù)據(jù)線來保持顯示字形碼。當(dāng)

11、送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優(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ù)碼管有效。這樣一來,就沒有必要每一位數(shù)碼管配一個(gè)鎖存器,從而大大地簡(jiǎn)化了硬件電路。選亮數(shù)碼管采用動(dòng)態(tài)掃描顯示。所謂動(dòng)態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時(shí)都在顯示,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。動(dòng)態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時(shí)應(yīng)略小于靜態(tài)顯示電

12、路中的。 方案二 用液晶顯示器LCD顯示信息。LCD顯示器工作原理就是利用液晶的物理特性;通電時(shí)排列變得有序,使光線容易通過;不通電時(shí)排列混亂,阻止光線通過,說簡(jiǎn)單點(diǎn)就是讓液晶如閘門般地阻隔或讓光線穿透。 LCD的好處有:與CRT顯示器相比,LCD的優(yōu)點(diǎn)主要包括零輻射、低功耗、散熱小、體積小、圖像還原精確、字符顯示銳利等。LED背光源技術(shù)能夠大幅度提升電視畫面的對(duì)比度和色彩表現(xiàn)力,同時(shí)具有節(jié)能環(huán)保等諸多優(yōu)點(diǎn),勢(shì)必成為未來電子顯示技術(shù)的發(fā)展趨勢(shì)。LED技術(shù)具有非常明顯的三大優(yōu)勢(shì)。第一,它顯示的色彩更加豐富,色彩數(shù)量可超過目前傳統(tǒng)CCFL冷陰極熒光管背光燈的1倍以上;第二,LED背光源亮度可以隨著

13、畫面亮度進(jìn)行主動(dòng)調(diào)節(jié),可節(jié)能30%以上;第三,LED背光源不含鉛和汞等有毒有害物質(zhì),是真正的綠色環(huán)保光源。本課題選用LED動(dòng)態(tài)顯示器。2.4 算法概述假定輪圈的周長為L,在輪圈上安裝m個(gè)永久磁鐵,則測(cè)得的里程值最大誤差為L/m。經(jīng)綜合分析,本設(shè)計(jì)中取m=1。當(dāng)輪子每轉(zhuǎn)一圈,通過開關(guān)型霍爾元件傳感器采集到一個(gè)脈沖信號(hào),并從引腳P3.2中斷0端輸入,傳感器每獲取一個(gè)脈沖信號(hào)即對(duì)系統(tǒng)提供一次計(jì)數(shù)中斷。每次中斷代表車輪轉(zhuǎn)動(dòng)一圈,中斷數(shù)n和周長L的乘積為里程值。計(jì)數(shù)器T1計(jì)算每轉(zhuǎn)一圈所用的時(shí)間t,就可以計(jì)算出即時(shí)速度v。第三章系統(tǒng)硬件設(shè)計(jì)3.1單片機(jī)主控電路3.1.1單片機(jī)概述單片機(jī)就是在一塊半導(dǎo)體硅片

14、上集成了微處理器(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í)、信息處理等功能。目前,單片機(jī)被廣泛的應(yīng)用于測(cè)控系統(tǒng)、工業(yè)自動(dòng)化、智能儀表、集成智能傳感器、機(jī)電一體化產(chǎn)品、家用電器領(lǐng)域、辦公自動(dòng)化領(lǐng)域、汽車電子與航空航天器電子系統(tǒng)以及單片機(jī)的多機(jī)系統(tǒng)等領(lǐng)域。在設(shè)計(jì)中選用的是AT89C52單片機(jī)。單片機(jī)由于將CPU、內(nèi)存和一些必要的接口集成到一個(gè)

15、芯片上,并且面向控制功能將結(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è)型號(hào),它是ATMEL公司生產(chǎn)的。 一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的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位中央處理器和Flash存儲(chǔ)單元,功能強(qiáng)大的AT

16、89C52單片機(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è)讀寫口線,AT89C52可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲(chǔ)器可有效地降低開發(fā)成本。 AT89C52有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。 本設(shè)計(jì)選用AT89C52單片機(jī),AT89C52是一種低功耗、高性能CMOS 8位微控制器。使用A

17、tmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,可與工業(yè)AT89C51產(chǎn)品指令和引腳完全兼容。 AT89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的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位中央處理器和Flash存儲(chǔ)單元,AT89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。主要功能特性1、兼容MCS51指令系統(tǒng) 2、8k可反復(fù)擦寫(大于1000次)Flash ROM; 3、32個(gè)雙向I/O口; 4、256x8bit內(nèi)部RAM; 5、3

18、個(gè)16位可編程定時(shí)/計(jì)數(shù)器; 6、時(shí)鐘頻率0-24MHz; 7、2個(gè)串行中斷,可編程UART串行通道; 8、2個(gè)外部中斷源,共5個(gè)中斷源; 9、2個(gè)讀寫中斷口線,3級(jí)加密位; 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存儲(chǔ)器并行I/O口串口I/O口TXDTXDRXDTINTP0-P3 圖3-13.1.2單片機(jī)的引腳功能介紹AT89C52是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8K Bytes的可反復(fù)擦寫的只讀程

19、序存儲(chǔ)器(EPROM)和256 字節(jié)的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(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:

20、電源電壓。 2. P1口:P1口是一8位雙向I/O口。P1.0和P1.1要求外部上拉電阻。P1.0和P1.1還分別作為片內(nèi)精密模擬比較器的同相輸入(AIN0)和反相輸入(AIN1)。P1口輸出緩沖器可吸收20mA電流并能直接驅(qū)動(dòng)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)部上拉電阻的七個(gè)雙向I/0引腳。P3.6用于固定輸入片內(nèi)比較器的輸出信號(hào)并且它作為一通用I/O引腳而不可訪問。P3口緩沖器

21、可吸收20mA電流。用作輸入時(shí),被外部拉低P3口引腳將用上拉電阻而流出電流(IIL)。 P3口還用于實(shí)現(xiàn)AT89C2051的各種功能,如下表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-3P3口的功能P3口引腳功能P3.0P3.1P3.2

22、P3.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ù)程序,以對(duì)發(fā)生的更緊迫的事件進(jìn)行處理,待處理結(jié)束后,CPU自動(dòng)返回原來的程序執(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í),由

23、內(nèi)部的查詢邏輯確定其響應(yīng)次序。采用的外部中斷方式包括外部中斷0和外部中斷1,它們的中斷請(qǐng)求信號(hào)分別由單片機(jī)引腳/P3.2和/P3.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)為低電平,就激活外部中斷。由此可見,在脈沖方式下,中斷請(qǐng)求信號(hào)的高電平和低電平狀態(tài)都應(yīng)至少維持一個(gè)機(jī)器周期,以使CPU采樣到電平狀態(tài)的變化,本次設(shè)計(jì)所采用的觸發(fā)方式為脈沖

24、觸發(fā)方式。3.1.4單片機(jī)定時(shí)器/計(jì)數(shù)器功能介紹AT89C52單片機(jī)定時(shí)器/計(jì)數(shù)器的工作由兩個(gè)特殊功能寄存器控制。TMOD用于設(shè)置其工作方式;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)

25、行設(shè)置。本次設(shè)計(jì)TMOD為90H,即選通定時(shí)/計(jì)數(shù)器為1、定時(shí)功能、工作方式1.工作方式為16位定時(shí)/計(jì)數(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開始工作;TR1置0時(shí),定時(shí)/計(jì)數(shù)器T1停止工作。TR1由軟件置1或清0。TF0(TCON.5)定時(shí)/計(jì)數(shù)器T

26、0溢出中斷請(qǐng)求標(biāo)志位。TR0(TCON.4)定時(shí)/計(jì)數(shù)器T0運(yùn)行控制位。3.2霍爾傳感器的測(cè)溫原理在信號(hào)脈沖發(fā)生源上,本系統(tǒng)采用的是開關(guān)型霍爾傳感器。以磁場(chǎng)作為媒介,利用霍爾傳感器可以檢測(cè)多種物理量,如位移、振動(dòng)、轉(zhuǎn)速、加速度、流量、電流、電功率等。它不僅可以實(shí)現(xiàn)非接觸測(cè)量,并且采用永久磁鐵產(chǎn)生磁場(chǎng),不需附加能源。另外霍爾傳感器尺寸小、價(jià)格便宜、應(yīng)用電路簡(jiǎn)單、性能可靠,因而獲得極為廣泛的應(yīng)用。除了直接利用霍爾傳感器外,還利用它開發(fā)出各種派生的傳感器。金屬或半導(dǎo)體薄片的兩個(gè)端面通以控制電流Ic,并在薄片的垂直方向上施加磁感應(yīng)強(qiáng)度為B的磁場(chǎng),則在垂直于電流和磁場(chǎng)的方向上將產(chǎn)生電勢(shì)Uh,稱為霍爾電勢(shì)

27、或霍爾電壓(如圖l所示)?;魻栯妱?shì)Uh=KhIcB(其中Kh為霍爾元件靈敏度,它與所用的材料及幾何尺寸有關(guān))。這種現(xiàn)象稱為霍爾效應(yīng),而用這種效應(yīng)制成的元件稱為霍爾元件。由于霍爾元件輸出的電壓信號(hào)較小,并且有一定溫度誤差,目前已較少直接使用霍爾元件作傳感器。霍爾傳感器原理圖如圖3-4所示。圖3-4霍爾傳感器磁場(chǎng)效應(yīng)本系統(tǒng)采用開關(guān)型霍爾傳感器A04E。開關(guān)型霍爾傳感器是一種集成傳感器,它內(nèi)部含有霍爾元件、放大器、穩(wěn)壓電源、帶一定滯后特性的比較器及集電極開路輸出部分等,如圖3-5所示。 圖3-5 開關(guān)型霍爾傳感器內(nèi)部結(jié)構(gòu)圖開關(guān)型霍爾傳感器的工作特性如圖3-6所示。圖3-6開關(guān)型霍爾傳感器工作特性當(dāng)外

28、加的磁感應(yīng)強(qiáng)度超過動(dòng)作點(diǎn)Bop時(shí),傳感器輸出低電平,但磁感應(yīng)強(qiáng)度降到動(dòng)作點(diǎn)Bop以下時(shí),傳感器輸出電平不變,一直要降到釋放點(diǎn)BRE時(shí),傳感器才由低電平躍變?yōu)楦唠娖?。Bop與Bre之間的滯后(或稱為回差)使開關(guān)動(dòng)作更為可靠。 圖3-7 霍爾傳感器檢測(cè)轉(zhuǎn)速示意圖霍爾傳感器檢測(cè)轉(zhuǎn)速示意圖3-7如下。在非磁材料的圓盤邊上粘貼一塊磁鋼,霍爾傳感器固定在圓盤外緣附近。圓盤每轉(zhuǎn)動(dòng)一圈霍爾傳感器便輸出一個(gè)脈沖。通過單片機(jī)測(cè)量產(chǎn)生脈沖的頻率,就可以得出圓盤的轉(zhuǎn)速。同樣道理,根據(jù)圓盤(車輪)的轉(zhuǎn)速,再結(jié)合圓盤的周長就是計(jì)算出物體的位移。如果要增加測(cè)量位移精度,可以在圓盤(車輪)上多增加幾個(gè)磁鋼。由于傳感器內(nèi)部為集

29、電極開路輸出,所以需外接一個(gè)上拉電阻,其阻值與電源電壓大小有關(guān),一般取12k,如圖3-8所示。圖3-8 傳感器輸出電路3.3存儲(chǔ)器電路AT24C02是美國ATMEL公司的低功耗CMOS串行EEPROM,它是內(nèi)含256×8位存儲(chǔ)空間,具有工作電壓寬(2.55.5V)、擦寫次數(shù)多(大于10000次)、寫入速度快(小于10ms)等特點(diǎn)。AT24C02的1、2、3腳是三條地址線,用于確定芯片的硬件地址。在AT89C2051試驗(yàn)開發(fā)板上它們都接地,第8腳和第4腳分別為正、負(fù)電源。第5腳SDA為串行數(shù)據(jù)輸入/輸出,數(shù)據(jù)通過這條雙向I2C總線串行傳送,在AT89C2051試驗(yàn)開發(fā)板上和單片機(jī)的P3

30、.5連接。第6腳SCL為串行時(shí)鐘輸入線,在AT89C2051試驗(yàn)開發(fā)板上和單片機(jī)的P3.6連接。SDA和SCL都需要和正電源間各接一個(gè)5.1K的電阻上拉。第7腳需要接地。AT24C02中帶有片內(nèi)地址寄存器。每寫入或讀出一個(gè)數(shù)據(jù)字節(jié)后,該地址寄存器自動(dòng)加1,以實(shí)現(xiàn)對(duì)下一個(gè)存儲(chǔ)單元的讀寫。所有字節(jié)均以單一操作方式讀取。為降低總的寫入時(shí)間,一次操作可寫入多達(dá)8個(gè)字節(jié)的數(shù)據(jù)。AT24C02是CMOS2048位串行E2PROM,在內(nèi)部的組織成256×8位。AT24C02的特點(diǎn)是具有允許在簡(jiǎn)單的二線總線上工作的串行接口和軟件協(xié)議。在本設(shè)計(jì)中用芯片AT24C02的SDA端與單片機(jī)的P3.7口相連,

31、SCL端與單片機(jī)的P3.5口相連。因?yàn)樵谶@個(gè)I2C總線上只有一個(gè)器件,所以把AT24C02的地址設(shè)為000,即把A0、A2、A3都接地。單片機(jī)計(jì)算出來的里程數(shù)據(jù)通過SDA、SCL向AT24C02輸送數(shù)據(jù)。單片機(jī)首先向AT24C02發(fā)送寫信號(hào),當(dāng)確認(rèn)后從單片機(jī)內(nèi)部的數(shù)據(jù)儲(chǔ)存單元提取數(shù)據(jù)然后向AT24C02的內(nèi)部地址傳送數(shù)據(jù)。當(dāng)顯示里程時(shí),單片機(jī)首先向AT24C02發(fā)送讀信號(hào),然后確認(rèn)后,單片機(jī)從AT24C02內(nèi)部的地址向單片機(jī)的讀出單元字節(jié)讀出數(shù)據(jù),供顯示所用。與單片機(jī)的接口如圖3-9所示。圖3-9AT24CO2與單片機(jī)的接口電路3.474LS74芯片本次設(shè)計(jì)中的采用驅(qū)動(dòng)數(shù)碼管的芯片為74LS2

32、44,74LS244為三態(tài)輸出的八位緩沖器和線驅(qū)動(dòng)器,若單片機(jī)輸出口直接接顯示部分電路,則電流太小,會(huì)導(dǎo)致顯示部分不能正常工作。所以在單片機(jī)輸出口先接入驅(qū)動(dòng)芯片74LS244,增大電流,使LED能夠正常工作。其邏輯圖如圖3-10所示,可以看出74LS244由2組組成、每組由四路輸入、輸出構(gòu)成。每組有一個(gè)控制端高或低電平?jīng)Q定該組數(shù)據(jù)被接通還是斷開。圖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)。由于其

33、狀態(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í)間,這樣就可以算出自行車的速度。分頻前后對(duì)比圖如圖3-12所示。tt00vv霍爾輸出圈脈沖二分頻后的波形圖3-12 分頻前后對(duì)比圖由圖可見,二分頻后的波形的高或地電平的時(shí)間正好是霍爾傳感器開關(guān)的一個(gè)周期,霍爾傳感器輸出脈沖到,即P3.2口接收到對(duì)圈數(shù)計(jì)數(shù)的脈沖。經(jīng)74LS74二分頻后的

34、信號(hào)輸入到,內(nèi)部定時(shí)計(jì)數(shù)器測(cè)得每轉(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)成振蕩器的高增益反相放大器,該高增益反相放大器的輸入為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個(gè)引腳跨接石英晶體振蕩器和電容,就構(gòu)成一個(gè)穩(wěn)定的自激振蕩

35、器。單片機(jī)內(nèi)部時(shí)鐘方式的振蕩電路如圖3-13所示。圖3-13單片機(jī)片內(nèi)振蕩電路電路中的電容C1和C2常選擇為30PF左右。對(duì)外接電容的值雖然沒有嚴(yán)格的要求,但電容的大小會(huì)影響振蕩器的高低、振蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。而外接晶體的振蕩頻率的大小,主要取決于單片機(jī)的工作頻率范圍,每一種單片機(jī)都有自己的最大工作頻率,外接的晶體振蕩頻率不大于單片機(jī)的最大工作頻率即可。此外,如果單片機(jī)有串行通信,則應(yīng)該選擇振蕩頻率除以串行通信頻率可以除盡的晶體。本設(shè)計(jì)晶振采用12MHz,故計(jì)數(shù)周期為1us。3.6 復(fù)位電路的設(shè)計(jì)AT89C52單片機(jī)的復(fù)位輸入引腳RET為AT89C52提供了初始化的手段。

36、有了它可以使程序從指定處開始執(zhí)行,即從程序存儲(chǔ)器中的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ù)位通過按動(dòng)按鈕產(chǎn)生高電平復(fù)位稱手動(dòng)復(fù)位。上電時(shí),剛接通電源,電容C相當(dāng)于瞬間短路,+5V立即加到RET/VPD端,該高電平使89C52全機(jī)自動(dòng)復(fù)位,這就是上電復(fù)位;若運(yùn)行過程中需要程序從頭執(zhí)行,只需按動(dòng)按鈕即

37、可。按下按鈕,則直接把+5V加到了RET/VPD端從而復(fù)位稱為手動(dòng)復(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ù)字或符號(hào)。由于它具有顯示清晰、亮度高、使用電壓低、壽命長的特點(diǎn),因此使用非常廣泛。八段LED顯示器由8個(gè)發(fā)光二極管組成。其中7個(gè)發(fā)光二極管構(gòu)成字型“8”的各個(gè)筆畫段,另一個(gè)小數(shù)點(diǎn)為dp發(fā)光二極管。L

38、ED顯示器有兩種不同的形式:一種是發(fā)光二極管的陽極都連在一起的,稱之為共陽極LED顯示器;另一種是發(fā)光二極管的陰極都連在一起的,稱之為共陰極LED顯示器。如圖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端。也就是說我們可以采用分時(shí)的方法,輪流控制各個(gè)顯示器的COM端,使各個(gè)顯示器輪流點(diǎn)亮。在輪流點(diǎn)亮掃描過程中,每

39、位顯示器的點(diǎn)亮?xí)r間是極為短暫的(約1ms),由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(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),通過軟件編程,先把所要顯示的數(shù)據(jù)放入存儲(chǔ)單元,然后把數(shù)據(jù)送入段選通對(duì)應(yīng)的地址,再選通某一個(gè)LED,逐步完成四個(gè)LED的顯示。第四章系統(tǒng)軟件設(shè)計(jì)4.1概述在硬件設(shè)計(jì)完畢之后,接下來就是設(shè)計(jì)中最核心和最為主要的軟件部分設(shè)計(jì)。所謂軟件設(shè)計(jì)就是把軟件需求變換成

40、軟件的具體設(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)很多功能,所以采用模塊化設(shè)計(jì),下面就其主要部分分別加以分析。4.2總體程序設(shè)計(jì)在主程序模塊中,需要完成對(duì)各接口芯片的初始化、自

41、行車?yán)锍毯退俣鹊某跏蓟?、中斷向量的設(shè)計(jì)以及開中斷、循環(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)輸入

42、為0時(shí)關(guān)閉定時(shí)器。此控制信號(hào)是將輪子圈數(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開中斷,啟動(dòng)定時(shí)器P3.0=1"調(diào)用里程處理子程序調(diào)用速度處理子程序NNNYYYYNY圖4-1主程序流程圖系統(tǒng)程序設(shè)計(jì)如下:$INCLUDE (REG52.INC) DISPBUF EQU 59H  顯示緩沖區(qū)從5AH開始 S

43、ecCoun EQU 58H SpCoun EQU 56H 速度計(jì)時(shí)器單元57H和58H,高位在前(57H單元中) Count EQU 55H; 顯示時(shí)的計(jì)數(shù)器 SpCalc bit 00h 要求計(jì)算速度的標(biāo)志,該位為1則主程序進(jìn)行速度計(jì)算,然后清該位 Hidden EQU 16 消隱碼  ORG 0000H AJMP START ORG 1BH&

44、#160;JMP TIMER1  定時(shí)中斷1入口 ORG 30HSTART: MOV SP,*5FH  設(shè)置堆棧 MOV P1,*0FFH MOV P0,*0FFH MOV P2,*0FFH 初始化,所有顯示器、LED滅 MOV TMOD,*00010101B 定時(shí)器T1工作于方式1,定時(shí)器0工作方式1,計(jì)數(shù)器 MOV TH1,*HIGH(65536-3686) MOV

45、0;TL1,*LOW(65536-3686) SETB TR1 SETB ET1  開定時(shí)器1中斷 SETB EALOOP: JNB SpCalc,LOOP 如果未要求計(jì)算,轉(zhuǎn)本身循環(huán);標(biāo)號(hào):     功能:雙字節(jié)二進(jìn)制無符號(hào)數(shù)乘法;入口條件:被乘數(shù)在R2、R3中,乘數(shù)在R6、R7中。;出口信息:乘積在R2、R3、R4、R5中。;影響資源:PSW、A、B、R2R7    堆棧需求:  字節(jié) MOV 

46、;R2,SpCoun MOV R3,SpCoun+1 MOV R6,*0 MOV R7,*5  測(cè)得的數(shù)值是每秒計(jì)數(shù)值,轉(zhuǎn)為分(每一轉(zhuǎn)測(cè)12次,故乘5而非60) CALL MULDSEND: MOV SBUF,R2SLP1: JBC TI,SN1  是否送完. AJMP SLP1SN1: MOV SBUF,R3SLP2: JBC TI,SN2 AJMP SL

47、P2SN2: MOV SBUF,R4SLP3: JBC TI,SN3 AJMP SLP3SN3: MOV SBUF,R5SLP4: JBC TI,SN4 AJMP SLP4SN4:;標(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é) MO

48、V A,R4 MOV R6,A MOV A,R5 MOV R7,A 將乘得的結(jié)果送R6R7準(zhǔn)備轉(zhuǎn)換,這里結(jié)果不可能超過2字節(jié) CALL HB2 MOV DISPBUF,R3 最高位  MOV A,R4   ANL A,*0F0H  去掉低4位 SWAP A  將高4位切換到低4位 MOV DISPBUF+1,A MOV A,R4 ANL A,*0FH MOV DISPBUF+2,A  MOV A,R5 ANL A,*0F0H SWAP A MOV DISPBUF+3,A  MOV A,R5 ANL A,*0FH MOV DISPBUF+4,A &

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論