2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  畢業(yè)設(shè)計(jì)</b></p><p>  設(shè)計(jì)題目:基于單片機(jī)的自行車?yán)锍趟俣扔?jì)設(shè)計(jì)</p><p>  學(xué) 院: </p><p>  專 業(yè): </p><p>  班 級(jí): </p>&l

2、t;p>  姓 名: </p><p>  指導(dǎo)教師: </p><p>  日 期: 年 月 日</p><p><b>  摘 要</b></p><p>  目前自行車已成為人們娛樂(lè)、休閑、鍛煉的首選,尤其是對(duì)于用來(lái)鍛煉

3、的人們,自行車速度里程計(jì)讓他們清楚地知道當(dāng)前的速度、里程等物理量,更好的用于鍛煉。本論文主要闡述一種基于霍爾元件的自行車速度里程計(jì)設(shè)計(jì)。以 AT89C51 單片機(jī)為核心,A44E 霍爾傳感器測(cè)轉(zhuǎn)數(shù),實(shí)現(xiàn)對(duì)自行車速度里程計(jì)測(cè)量統(tǒng)計(jì)。該速度里程計(jì)將傳感器輸入到單片機(jī)的脈沖信號(hào)的寬度實(shí)時(shí)地測(cè)量出來(lái),然后通過(guò)單片機(jī)計(jì)算出速度和行程,再將所得的數(shù)據(jù)存儲(chǔ)到串口數(shù)據(jù)存儲(chǔ)器,采用CAT24WC32 實(shí)現(xiàn)在系統(tǒng)掉電的時(shí)候保存速度和行程信息,并由串口液晶顯

4、示模塊實(shí)時(shí)顯示出所測(cè)速度和行程。本設(shè)計(jì)介紹了自行車速度/里程測(cè)試儀的硬件電路和軟件設(shè)計(jì)。硬件部分利用霍爾元件將自行車每轉(zhuǎn)一圈的脈沖數(shù)傳入單片機(jī)系統(tǒng),然后單片機(jī)系統(tǒng)將信號(hào)經(jīng)過(guò)處理送顯示。軟件部分用匯編語(yǔ)言進(jìn)行編程,采用模塊化設(shè)計(jì)思想。該系統(tǒng)硬件電路簡(jiǎn)單,子程序具有通用性,完全符合設(shè)計(jì)要求。</p><p>  關(guān)鍵詞:速度/里程;霍爾元件;單片機(jī);LCD液晶顯示</p><p><b&

5、gt;  Abstract</b></p><p>  Now the bicycle has become the first choice of entertainmenting and exercising. Especially for people to exercise,The bicycle speed/trip can fulfill the basic need of people’

6、s life, so that they can learn the speed and the mileage of the bicycle. In these paper, the bicycle speed/trip design based on the Hall element is elaborated. By AT89C51 as kernel, using A44E Hall element to measure re

7、volution, the measure and statistic are achieved. The range informations are saved by CAT24WC32 when the p</p><p>  Key words: speed/trip; Hall element; Single Chip Microcomputer; LCD</p><p><

8、;b>  目錄</b></p><p><b>  一、概述</b></p><p>  1、設(shè)計(jì)目的…………………………………………………………… 1</p><p>  2、課題簡(jiǎn)介…………………………………………………………… 1</p><p><b>  二、系統(tǒng)設(shè)計(jì)</b&g

9、t;</p><p>  1、總體設(shè)計(jì)方案……………………………………………………… 2</p><p>  2、硬件部分簡(jiǎn)介……………………………………………………… 3</p><p>  (1)AT89c51芯片簡(jiǎn)介……………………………………………… 3</p><p>  (2)硬件設(shè)計(jì)…………………………………………………………

10、 4</p><p>  3、軟件部分…………………………………………………………… 5</p><p>  (1)初始化程序………………………………………………………6</p><p>  (2)主程序……………………………………………………………8</p><p>  (3)中斷程序…………………………………………………………9</

11、p><p>  (4)里程、速度處理程序……………………………………………11</p><p>  (5)顯示子程序………………………………………………………14</p><p>  (6)延時(shí)子程序………………………………………………………16</p><p>  三、調(diào)試………………………………………………………………………17</p&

12、gt;<p>  1、硬件調(diào)試…………………………………………………………… 17</p><p>  2、軟件調(diào)試…………………………………………………………… 17 </p><p>  四、操作說(shuō)明…………………………………………………………………19</p><p>  五、參考文獻(xiàn)…………………………………………………………………20<

13、/p><p>  六、心得體會(huì)…………………………………………………………………21</p><p>  七、附錄………………………………………………………………………22</p><p>  1、元器件清單………………………………………………………… 22</p><p>  2、整體原理圖………………………………………………………… 23&l

14、t;/p><p>  3、完整程序…………………………………………………………… 24</p><p>  自行車?yán)锍逃?jì)/速度計(jì)的設(shè)計(jì)</p><p><b>  概述</b></p><p><b>  設(shè)計(jì)目的</b></p><p>  本設(shè)計(jì)采用AT89C51單片機(jī)作控制

15、,利用霍爾元件等器件設(shè)計(jì)一個(gè)可用LED數(shù)碼管顯示當(dāng)前自行車行駛的距離及速度并具有超速報(bào)警功能的自行車?yán)锍?速度表,使其作為自行車的一種輔助工具,讓自行車的功用更強(qiáng)大,給人們帶來(lái)更多的方便。</p><p><b>  課題簡(jiǎn)介</b></p><p>  自行車被發(fā)明及使用到現(xiàn)在已有兩百多年的歷史,在這兩百年間人類在不斷的嘗試與研發(fā)過(guò)程中,自行車發(fā)展的目的也從最早的代

16、步工具轉(zhuǎn)換成休閑娛樂(lè)的用途,隨著生活水平的提高,人們希望自行車的功能更強(qiáng)大,而里程計(jì)/速度計(jì)正滿足了這個(gè)需求。現(xiàn)在先進(jìn)的里程/速度計(jì)不僅能顯示實(shí)時(shí)的速度和里程,還顯示時(shí)間,甚至具有測(cè)量騎車人的心跳、顯示騎車人熱量消耗等功能。</p><p>  由于時(shí)間有限,本設(shè)計(jì)完成的功能減為兩個(gè),即測(cè)量并通過(guò)LED數(shù)碼管進(jìn)行動(dòng)態(tài)顯示當(dāng)前的速度和里程,并在超速時(shí)發(fā)出警報(bào)。</p><p>  要求達(dá)到的

17、各項(xiàng)指標(biāo)及實(shí)現(xiàn)方法如下:</p><p>  1. 利用霍爾傳感器產(chǎn)生里程數(shù)的脈沖信號(hào)。</p><p>  2. 對(duì)脈沖信號(hào)進(jìn)行計(jì)數(shù)。</p><p>  實(shí)現(xiàn):利用單片機(jī)自帶的計(jì)數(shù)器T1對(duì)霍爾傳感器脈沖信號(hào)進(jìn)行計(jì)數(shù)。</p><p>  3. 對(duì)數(shù)據(jù)進(jìn)行處理,要求用LED顯示里程總數(shù)和即時(shí)速度。</p><p>

18、  實(shí)現(xiàn):利用軟件編程,對(duì)數(shù)據(jù)進(jìn)行處理得到需要的數(shù)值。</p><p>  最終實(shí)現(xiàn)目標(biāo):自行車的速度里程表具有里程、速度測(cè)試與顯示功能,采用單片機(jī)作控制,顯示電路可顯示里程及速度。</p><p><b>  二、系統(tǒng)設(shè)計(jì)</b></p><p><b>  1、總體設(shè)計(jì)方案</b></p><p&g

19、t;  采用AT89C51芯片,用霍爾元件將車輪的轉(zhuǎn)速轉(zhuǎn)換成電脈沖,經(jīng)過(guò)處理后送入單片機(jī)。里程及速度的測(cè)量,是經(jīng)過(guò)AT89C51的定時(shí)/計(jì)數(shù)器測(cè)出總的脈沖數(shù)和每轉(zhuǎn)一圈的時(shí)間,再經(jīng)過(guò)單片機(jī)的計(jì)算得出,計(jì)算結(jié)果通過(guò)LED顯示器顯示出來(lái)。</p><p>  傳感器是獲取自然或生產(chǎn)領(lǐng)域中信息的關(guān)鍵器件,是現(xiàn)代信息系統(tǒng)和各種設(shè)備不可缺少的信息采集工具。磁傳感器是一種將磁學(xué)量信號(hào)轉(zhuǎn)變?yōu)殡娦盘?hào)的器件或裝置。隨著信息產(chǎn)業(yè)、工業(yè)

20、自動(dòng)化、醫(yī)療儀器等的飛速發(fā)展和計(jì)算機(jī)應(yīng)用的普及,需要大量的傳感器將被測(cè)或被控的非電信號(hào)轉(zhuǎn)換成可與計(jì)算機(jī)兼容的電信號(hào)。作為輸入信號(hào),這就給磁傳感器的快速發(fā)展提供了機(jī)遇,形成了磁傳感器的產(chǎn)業(yè)。其中最具代表的磁傳感器就是霍爾傳感器,在自動(dòng)檢測(cè)系統(tǒng)中,利用霍爾傳感器測(cè)轉(zhuǎn)數(shù)是一種最基本的測(cè)量工作。</p><p>  單片機(jī)是本次設(shè)計(jì)的核心部件,它是信號(hào)從采集到輸出的橋梁,而且包括計(jì)算、定時(shí)、信息處理等功能</p&g

21、t;<p>  當(dāng)輪子每轉(zhuǎn)一圈,通過(guò)開關(guān)型霍爾元件傳感器采集到一個(gè)脈沖信號(hào),并從引腳12即P3.2外部中斷0端輸入,傳感器每獲取一個(gè)脈沖信號(hào)即對(duì)系統(tǒng)提供一次計(jì)數(shù)中斷。每次中斷代表車輪轉(zhuǎn)動(dòng)一圈,中斷數(shù)n輪圈的周長(zhǎng)為L(zhǎng)的乘積為里程值。計(jì)數(shù)器T1計(jì)算每轉(zhuǎn)一圈所用的時(shí)間t,就可以計(jì)算出即時(shí)速度v。當(dāng)里程鍵按下時(shí),里程指示燈亮,LED切換顯示當(dāng)前里程,與當(dāng)速度鍵按下時(shí),速度指示燈亮,LED切換顯示當(dāng)前速度,若自行車超速,系統(tǒng)發(fā)出報(bào)警

22、信號(hào),指示燈閃爍。里程數(shù)據(jù)自動(dòng)記憶,也可用于電動(dòng)自行車、摩托車、汽車等機(jī)動(dòng)車儀表上。</p><p>  設(shè)計(jì)包括硬件、軟件兩部分,硬件電路包括AT89C51單片機(jī)的外圍電路以及LED顯示電路等,這里對(duì)硬件部分只做簡(jiǎn)單介紹,主要闡述的是軟件部分的設(shè)計(jì),包括數(shù)據(jù)初始化程序的設(shè)計(jì)、主程序的設(shè)計(jì)、處理子程序的設(shè)計(jì)、顯示子程序的設(shè)計(jì);最后針對(duì)仿真過(guò)程遇到的問(wèn)題進(jìn)行了具體說(shuō)明與分析,對(duì)本次設(shè)計(jì)進(jìn)行總結(jié)。</p>

23、<p>  圖2.1 系統(tǒng)的原理框圖</p><p><b>  硬件部分介紹</b></p><p> ?。?)AT89C51芯片簡(jiǎn)介</p><p>  AT89C51是一種帶4K字節(jié)閃存可編程可擦除的只讀存儲(chǔ)器即為</p><p> ?。‵PEROM—Flash Programmable and Er

24、asable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。</p><p>  圖2-2 單片機(jī)內(nèi)部機(jī)構(gòu)示意圖</p><p><b>  管腳說(shuō)明:</b></p><p><b>  VCC:供電電壓。</b></p><p><b>  GN

25、D:接地。</b></p><p>  P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。</p><p>  P1口:P1口是一個(gè)內(nèi)部提供

26、上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 </p><p>  P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作

27、為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p><p>  P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出

28、4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p><p>  P3口也可作為AT89C51的一些特殊功能口,如下表所示:</p><p><b>  口管腳 備選功能</b></p><p>  P3.0 RXD(串行輸入口)<

29、;/p><p>  P3.1 TXD(串行輸出口)</p><p>  P3.2 /INT0(外部中斷0)</p><p>  P3.3 /INT1(外部中斷1)</p><p>  P3.4 T0(記時(shí)器0外部輸入)</p><p>  P3.5 T1(記時(shí)器1外部輸入)</p><p>  P3

30、.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)</p><p>  P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)</p><p>  P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。</p><p>  RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p>  ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸

31、出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)

32、效。</p><p>  /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。</p><p>  /EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平

33、時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p>  XTAL2:來(lái)自反向振蕩器的輸出。</p><p><b>  振蕩器特性:</b></p><p>  XTAL1和XTAL2分別

34、為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p><b>  (2)硬件設(shè)計(jì)</b></p><p>  自行車?yán)锍逃?jì)/速度計(jì)電路原理圖見(jiàn)附錄。<

35、/p><p>  本次設(shè)計(jì)信號(hào)的捕獲采用的是霍爾傳感器。 霍爾器件具有許多優(yōu)點(diǎn),它們的結(jié)構(gòu)牢固、體積小、重量輕、壽命長(zhǎng)、安裝方便、功耗小、頻率高(可達(dá)1MHz)、耐震動(dòng)、不怕灰塵、油污、水汽及煙霧等的污染或腐蝕?;魻柧€性器件的精度高、線性度好;霍爾開關(guān)器件無(wú)觸點(diǎn)、無(wú)磨損、輸出波形清晰、無(wú)抖動(dòng)、無(wú)回跳、位置重復(fù)精度高。取用各種補(bǔ)償和保護(hù)措施的霍爾器件工作溫度范圍寬,可達(dá)-55℃~150℃。XTAL1和XTAL

36、2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。由于輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p>  P0口作為輸出口用于顯示歷程狀態(tài)和速度狀態(tài)。由于P0口沒(méi)有上拉電阻,</p><p>  因此作為輸出口時(shí)要加上上

37、拉電阻來(lái)驅(qū)動(dòng)LED數(shù)碼管的點(diǎn)亮。接于引腳10即P3.2、RXD的開關(guān)用于控制改變顯示的方式,當(dāng)開關(guān)閉合時(shí),顯示速度;開關(guān)打開時(shí)顯示里程。第12腳即外部中斷0用于對(duì)輪子圈數(shù)的計(jì)數(shù)輸入,輪子每轉(zhuǎn)一圈,霍爾傳感器輸出一個(gè)低電平脈沖。第十三腳即外部中斷1用于控制定時(shí)器T1的啟停,當(dāng)輸入為0時(shí)關(guān)閉定時(shí)器。此控制信號(hào)是將輪子圈數(shù)的計(jì)數(shù)脈沖經(jīng)二分頻后形成,這樣,每次定時(shí)器T1的開啟時(shí)間剛好為轉(zhuǎn)一圈的時(shí)間,根據(jù)輪子的周長(zhǎng)就可以計(jì)算出自行車的速度。P1.

38、4口和P1.5口用于EEPROM存儲(chǔ)器24C01的存取控制。11腳輸出用于超速時(shí)的報(bào)警,此時(shí)蜂鳴器發(fā)出聲音,同時(shí)LED燈閃爍。</p><p>  LED數(shù)碼管采用四位相連的共陰極數(shù)碼管,片選信號(hào)分別通過(guò)三極管接</p><p>  至21-24管腳即P2.0-P2.4口,從而實(shí)現(xiàn)里程和速度的動(dòng)態(tài)顯示。</p><p>  自行車的速度里程表的硬件電路設(shè)計(jì)是基礎(chǔ)部分

39、,它包括信號(hào)的捕獲、放大、整形,單片機(jī)的計(jì)算處理,數(shù)碼管的實(shí)時(shí)顯示和單片機(jī)外圍基本電路的設(shè)計(jì),兩大主要器件就是傳感器和單片機(jī)。</p><p>  3.軟件部分軟件部分</p><p>  模塊化結(jié)構(gòu)設(shè)計(jì)即是根據(jù)要求和硬件設(shè)計(jì)的結(jié)構(gòu),將整個(gè)系統(tǒng)的功能分成許多小的功能模塊,再根據(jù)這些小的功能模塊進(jìn)行程序編寫的過(guò)程。這樣的設(shè)計(jì)方法,使得系統(tǒng)的整個(gè)功能和各部分的功能趨于明朗化。當(dāng)系統(tǒng)出現(xiàn)問(wèn)題,就

40、可以根據(jù)功能設(shè)置找出問(wèn)題的根源,從而更快地解決問(wèn)題。所以說(shuō),在整個(gè)設(shè)計(jì)過(guò)程中,軟件設(shè)計(jì)必須與硬件設(shè)計(jì)緊密地結(jié)合在一起。</p><p>  軟件設(shè)計(jì)包括初始化程序、主程序、行車過(guò)程中里程和速度計(jì)算子程序、延時(shí)子程序、中斷服務(wù)子程序、顯示子程序等。</p><p>  系統(tǒng)軟件總體流程圖如圖3.1所示</p><p>  總體設(shè)計(jì)思路:首先進(jìn)行初始化,選擇車輪周長(zhǎng),P

41、3.0是用于里程和速度切換的,低電平為顯示速度,高電平為顯示里程。根據(jù)P3.0的狀態(tài)來(lái)決定顯示內(nèi)容,P3.0=1時(shí),轉(zhuǎn)到計(jì)算速度子程序并進(jìn)行顯示;P3.0=0時(shí),轉(zhuǎn)到計(jì)算里程子程序并進(jìn)行顯示。P1.0和P1.1口分別用于顯示里程狀態(tài)和速度狀態(tài)。P1.2、P1.3、P1.6和P1.7口分別用于設(shè)置輪圈的大小,低電平有效。中斷0用于對(duì)輪子圈數(shù)的計(jì)數(shù)輸入,輪子每轉(zhuǎn)一圈,霍爾傳感器輸出一個(gè)低電平脈沖。將根據(jù)里程寄存器中的內(nèi)容計(jì)算和判斷出行駛里程

42、數(shù)。中斷1用于控制定時(shí)器T1的啟/停,當(dāng)輸入為0時(shí)關(guān)閉定時(shí)器。此控制信號(hào)是將輪子圈數(shù)的計(jì)數(shù)經(jīng)二分頻后形成。這樣,每次定時(shí)器T1的開啟時(shí)間剛好為轉(zhuǎn)一圈的時(shí)間,根據(jù)輪子的周長(zhǎng)就可以計(jì)算出自行車的速度。</p><p>  圖 3.1 系統(tǒng)整體流程圖 </p><p>  主要內(nèi)存單元及用處:</p><p>  50H:E

43、EPROM器件尋址字節(jié)存放單元</p><p>  51H:EEPROM傳送字節(jié)數(shù)存放單元</p><p>  30H:EEPROM發(fā)送數(shù)據(jù)緩沖單元</p><p>  40H:EEPROM讀出數(shù)據(jù)存放單元</p><p>  0A0H:EEPROM尋址字節(jié)寫入</p><p>  0A1H:EEPROM尋址字節(jié)讀出&

44、lt;/p><p>  62H:DPTR計(jì)數(shù)擴(kuò)展高8位</p><p>  6CH:定時(shí)器T1計(jì)數(shù)擴(kuò)展高8位</p><p>  6DH:定時(shí)器T1計(jì)數(shù)擴(kuò)展高8—16位</p><p>  60H、61H、62H:里程計(jì)數(shù)單元</p><p>  68H、69H、6AH、6BH:存放自行車每圈時(shí)間數(shù)</p>

45、<p>  70H、71H、72H、73H:顯示BCD碼數(shù)據(jù)存放用</p><p>  11H--15H:存放被除數(shù)</p><p>  16H—19H:存放除</p><p><b>  (1)初始化程序</b></p><p>  初始化程序主要完成以下工作:將T1設(shè)為外部控制定時(shí)器方式;外部中斷0及外部中

46、斷1設(shè)為邊沿觸發(fā)方式;將部分內(nèi)存單元清0;設(shè)置輪子周長(zhǎng);開中斷及定時(shí)器;將EEPROM中的數(shù)據(jù)調(diào)入內(nèi)存。</p><p>  CLEARMEN:MOV TMOD,#90H ;T1為16位外部控制定時(shí)器</p><p>  MOV SP,#75H ;堆棧從75H開始</p><p>  SETB PX0 ;外部

47、中斷0優(yōu)先級(jí)為1</p><p>  SETB IT0 ;外部中斷0用邊沿觸發(fā)</p><p>  SETB IT1 ;外部中斷1用邊沿觸發(fā)</p><p>  CLR A ;清A</p><p>  MOV 20H,A ;清內(nèi)存中特定

48、單元</p><p>  MOV 6CH,A ;清內(nèi)存中特定單元</p><p>  MOV 6DH,A ;清內(nèi)存中特定單元</p><p>  MOV 70H,A ;清內(nèi)存中特定單元</p><p>  MOV 71H,A ;清內(nèi)存中特定單元&l

49、t;/p><p>  MOV 72H,A ;清內(nèi)存中特定單元</p><p>  MOV 73H,A ;清內(nèi)存中特定單元</p><p>  MOV 60H,A ;清內(nèi)存中特定單元</p><p>  MOV 61H,A ;清內(nèi)存中特定單元

50、 6</p><p>  MOV 62H,A ;清內(nèi)存中特定單元</p><p>  MOV 63H,A ;清內(nèi)存中特定單元</p><p>  DEC A ;A為0FFH</p><p>  MOV 68H,A ;

51、內(nèi)存置數(shù)據(jù)0FFH</p><p>  MOV 69H,A ;內(nèi)存置數(shù)據(jù)0FFH</p><p>  MOV 6AH,A ;內(nèi)存置數(shù)據(jù)0FFH</p><p>  MOV 6BH,A ;內(nèi)存置數(shù)據(jù)0FFH</p><p>  MOV P1,A ;

52、P1口置1</p><p>  CLEAR1: JB P1.2,KEY1 ;根據(jù)P1.2設(shè)置狀態(tài)</p><p>  MOV 21H,#0FH </p><p>  LJMP CLEAR2 ;轉(zhuǎn)CLEAR2</p><p>  KEY1: JB P1.3,KEY2

53、 ;根據(jù)P1.3設(shè)置狀態(tài)</p><p>  MOV 21H,#12H</p><p>  LJMP CLEAR2</p><p>  KEY2: JB P1.6,KEY3 ;根據(jù)P1.6設(shè)置狀態(tài)</p><p>  MOV 21H,#14H </p><p>  LJMP

54、 CLEAR2</p><p>  KEY3: JB P1.7,ERR ;根據(jù)P1.7設(shè)置狀態(tài)</p><p>  MOV 21H,#19H</p><p>  CLEAR2: SETB TR1 ;開定時(shí)器T1</p><p>  SETB EA ;開中斷

55、允許</p><p>  SETB EX0 ;開外中斷0</p><p>  SETB ET1 ;開定時(shí)中斷T1</p><p>  SETB P3.1 ;關(guān)報(bào)警器</p><p>  LCALL VIICREAD ;將EEPROM中原里程數(shù)據(jù)調(diào)入內(nèi)存<

56、/p><p><b>  RET</b></p><p>  ERR: CPL P3.1 ;未設(shè)置車輪周長(zhǎng),開始報(bào)警</p><p>  LCALL DL5S ;延時(shí)5S</p><p>  LJMP CLEAR1 ;重新初始化</p>&l

57、t;p>  初始化具體過(guò)程:首先對(duì)P1.2口的內(nèi)容進(jìn)行查詢,若P1.2=0,則說(shuō)明P1.2口接的按鈕被按下,即選擇第一種車輪周長(zhǎng),同時(shí)將周長(zhǎng)存入21H單元內(nèi);若P1.2=1,則第一個(gè)按鈕沒(méi)被按下,再對(duì)P1.3口的內(nèi)容進(jìn)行查詢,內(nèi)容為0則將其周長(zhǎng)值存入21H中,不為0則掃描P1.6,內(nèi)容為0則將其周長(zhǎng)值存入21H中,不為0則掃描P1.7,若P1.7為0則將其周長(zhǎng)值存入21H中,不為0則說(shuō)明沒(méi)有選擇車輪直徑,此時(shí)開始報(bào)警,并調(diào)用延時(shí)子

58、程序。接著再?gòu)腜1.2口掃描,如此循環(huán),直到有鍵按下后停止報(bào)警。</p><p>  圖 3.2 初始化程序流程圖</p><p><b>  (2)主程序</b></p><p>  主程序根據(jù)P3.0口的開關(guān)狀態(tài)選擇里程速度顯示。</p><p>  START: LCALL CLEARMEN

59、 ;上電初始化</p><p>  START1: JB P3.0,DISPLAYS ;P3.0=1,顯示里程</p><p>  LCALL DISPLAYV ;P3.0=0,顯示速度</p><p>  START2: SJMP START1 ;循環(huán)</p><

60、;p>  圖3.3 主程序流程圖</p><p>  (3)用外部中斷0實(shí)現(xiàn)的里程計(jì)數(shù)程序</p><p>  定時(shí)中斷是為滿足定時(shí)或計(jì)數(shù)的需要而設(shè)置的。在單片機(jī)內(nèi)部有兩個(gè)定時(shí)/計(jì)數(shù)器,以對(duì)其中的計(jì)數(shù)結(jié)構(gòu)進(jìn)行計(jì)數(shù)的方法,來(lái)實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能。當(dāng)結(jié)構(gòu)發(fā)生計(jì)數(shù)溢出時(shí),即表明定時(shí)時(shí)間或計(jì)數(shù)值已滿,這時(shí)就以計(jì)數(shù)溢出信號(hào)作為中斷請(qǐng)求,去置位一個(gè)溢出標(biāo)志,作為單片機(jī)接受中斷請(qǐng)求的標(biāo)志。這種

61、中斷請(qǐng)求是在單片機(jī)芯片內(nèi)部發(fā)生的,因此無(wú)須在芯片上設(shè)置引入端。</p><p>  定時(shí)/計(jì)數(shù)器控制寄存器TCON是8位寄存器,地址為88H,可以位尋址。其高4位用于定時(shí)/計(jì)數(shù)器中斷控制,低4位借給外部中斷,用做中斷標(biāo)志和觸發(fā)方式選擇位。本設(shè)計(jì)采用定時(shí)中斷,對(duì)自行車的里程和速度進(jìn)行計(jì)數(shù)。</p><p>  INTEX0: PUSH ACC ;累加器堆棧

62、保護(hù)</p><p>  PUSH PSW ;狀態(tài)字堆棧保護(hù)</p><p>  INC 60H ;圈數(shù)加1</p><p>  CLR A ;清A</p><p>  CJNE A,60H,INTEX0OUT ;計(jì)數(shù)器沒(méi)溢

63、出轉(zhuǎn)INTEX0OUT</p><p>  INC 61H ;溢出進(jìn)位(61H加1)</p><p>  CJNE A,61H,INTEX0OUT ;計(jì)數(shù)器沒(méi)溢出轉(zhuǎn)INTEX0OUT</p><p>  INC 62H ;溢出進(jìn)位(62H加1)</p><p>

64、  INTEX0OUT:LCALL VIICWRITE ;里程數(shù)據(jù)存入EEPROM</p><p>  SETB EX1 ;開外部中斷1</p><p>  POP PSW ;狀態(tài)字恢復(fù)</p><p>  POP ACC ;累加器恢復(fù)

65、 RETI ;中斷返回</p><p>  ;每轉(zhuǎn)一圈時(shí)間計(jì)數(shù)處理程序,每圈時(shí)間放在68H—6BH單元中</p><p>  INTEX1: PUSH ACC ;累加器堆棧保護(hù)</p><p>  PUSH PSW ;狀態(tài)字堆棧保

66、護(hù)</p><p>  CLR EX1 ;關(guān)外部中斷1</p><p>  JNB 00H,INTEX11 ;溢出標(biāo)志為0轉(zhuǎn)INTEX11</p><p>  MOV TL1,#0FFH ;溢出時(shí)計(jì)時(shí)單元賦#0FFH(顯示速度為零)</p><p>  MOV TH1,#

67、0FFH </p><p>  MOV 6CH,#0FFH</p><p>  MOV 6DH,#0FFH</p><p>  INTEX11: MOV 68H,TL1 ;將時(shí)間計(jì)數(shù)值移入暫存單元68H-6BH</p><p>  MOV 69H,TH1 </p><p&

68、gt;  MOV 6AH,6CH</p><p>  MOV 6BH,6DH</p><p>  CLR A ;清A</p><p>  MOV TL1,A ;計(jì)數(shù)單元置零</p><p>  MOV TH1,A</p><p>  MOV

69、 6CH,A</p><p>  MOV 6DH,A</p><p>  CLR 00H ;清溢出標(biāo)志</p><p>  POP PSW ;狀態(tài)字堆?;謴?fù)</p><p>  POP ACC ;累加器堆棧恢復(fù)</p>&

70、lt;p>  RETI ;中斷返回</p><p>  ;T1計(jì)數(shù)器中斷服務(wù)程序。(計(jì)數(shù)器T1由外部中斷1輸入控制,當(dāng)為高電平時(shí)計(jì)時(shí)開始)</p><p>  INTT1: PUSH ACC ; 累加器堆棧保護(hù)</p><p>  PUSH PSW ;狀態(tài)字堆棧

71、保護(hù)</p><p>  INC 6CH ;6C計(jì)時(shí)單元加1</p><p>  MOV A,6CH ;6C單元內(nèi)容移入A</p><p>  JNZ INTT11 ;不為0,轉(zhuǎn)INTT11</p><p>  INC 6DH ;進(jìn)位

72、,6DH單元加1</p><p>  MOV A,6DH ;移入A</p><p>  JNZ INTT11 ;不為0,轉(zhuǎn)INTT11</p><p>  SETB 00H ;計(jì)時(shí)器溢出,置溢出標(biāo)志位</p><p>  INTT11: POP PSW

73、 ;狀態(tài)字堆?;謴?fù)</p><p>  POP ACC ;累加器堆?;謴?fù)</p><p>  RETI ;中斷返回</p><p>  圖 3.4 中斷流程圖</p><p>  (4)里程、速度處理程序</p><p><b&

74、gt;  里程處理程序</b></p><p>  外中斷0服務(wù)程序用于對(duì)單片機(jī)P3.2口輸入的圈脈沖進(jìn)行計(jì)數(shù),為十六進(jìn)制計(jì)數(shù)器。60H為低位,62H為高位。每次計(jì)數(shù)一次后,對(duì)里程數(shù)據(jù)進(jìn)行一次存儲(chǔ)操作。當(dāng)車輪每轉(zhuǎn)一圈,通過(guò)霍爾元件將脈沖數(shù)輸入單片機(jī)內(nèi),通過(guò)計(jì)數(shù)器計(jì)出脈沖數(shù),再用乘法子程序算出里程數(shù)。</p><p>  SSS: MOV 19H,#64H

75、 ;除數(shù)最高位賦值</p><p>  MOV 18H,#00H ;除數(shù)賦值</p><p>  MOV 17H,#00H ; 除數(shù)賦值</p><p>  MOV 16H,#00H ; 除數(shù)賦值</p><p>  MOV 11H,#00H

76、 ; 被除數(shù)賦值</p><p>  MOV 12H,#00H ; 被除數(shù)賦值</p><p>  MOV 13H,62H ; 被除數(shù)賦值</p><p>  MOV 14H,61H ; 被除數(shù)賦值</p><p>  MOV 15

77、H,60H ; 被除數(shù)賦值</p><p>  LCALL DIVST ;調(diào)除法程序 LCALL BCDST ; 跳到二進(jìn)制轉(zhuǎn)BCD碼程序</p><p>  MOV A,25H ;將25H內(nèi)容移入A</p><

78、p>  ANL A,#0FH ; 高四位為0</p><p>  MOV 70H,A ;移入70H</p><p>  MOV A,25H ; 將25H內(nèi)容移入A</p><p>  SWAP A ;交換高低字節(jié)</p>

79、;<p>  ANL A,#0FH ; 高四位為0</p><p>  MOV 71H,A ; 移入71H</p><p>  MOV A,24H ; 將24H內(nèi)容移入A</p><p>  ANL A,#0FH ; 高四位為0&

80、lt;/p><p>  MOV 72H,A ; 移入72H</p><p>  MOV A,24H ; 將24H內(nèi)容移入A</p><p>  SWAP A ; 交換高低字節(jié)</p><p>  ANL A,#0FH

81、 ; 高四位為0</p><p>  MOV 73H,A ; 移入73H</p><p><b>  RET</b></p><p>  圖 3.5 里程處理程序流程圖</p><p><b>  速度處理程序</b></p><p>  外中

82、斷1服務(wù)程序用于處理輪子轉(zhuǎn)動(dòng)一圈后的計(jì)時(shí)數(shù)據(jù)。當(dāng)標(biāo)志位(00H)為1時(shí),計(jì)數(shù)溢出,放入最大時(shí)間值(為#0FFH);當(dāng)標(biāo)志位為0時(shí),將計(jì)數(shù)單元(TL1、TH1、6CH、6DH)的值放入68H~6BH單元。定時(shí)器計(jì)出每轉(zhuǎn)一圈所用的時(shí)間,用自行車車輪的周長(zhǎng)除以時(shí)間就得出自行車的速度。</p><p>  VVV: MOV 18H,68H ;除數(shù)賦值</p><p>

83、;  MOV 17H,69H ;除數(shù)賦值</p><p>  MOV 16H,6AH ;除數(shù)賦值 </p><p>  MOV 11H,#00H ;被除數(shù)賦值</p><p>  MOV 12H,#00H ;被除

84、數(shù)賦值</p><p>  MOV 13H,#36H ;被除數(shù)賦值</p><p>  MOV 14H,#0EEH ;被除數(shù)賦值</p><p>  MOV 15H,#80H ;被除數(shù)賦值</p><p>  LCALL DIVST ;調(diào)除

85、法程序</p><p>  MOV 14H,#00H ;舍去一位</p><p>  LCALL BCDST ;跳到二進(jìn)制轉(zhuǎn)BCD碼程序</p><p>  MOV A,25H ;以下將速度值放入顯示單元</p><p>  ANL A,#0FH

86、 ;高四位為0</p><p>  MOV 70H,A ;放入70H內(nèi)</p><p>  MOV A,25H ;再取數(shù)</p><p>  SWAP A ;高低字節(jié)交換</p><p>  ANL A,#0FH

87、 ;高四位為0</p><p>  MOV 71H,A ;放入71H內(nèi)</p><p>  MOV 72H,#00H ;72H為0</p><p>  MOV 73H,#00H ;73H為0</p><p>  RET

88、 ;子程序返回</p><p>  圖 3.6速度處理程序流程圖</p><p><b>  (5)顯示子程序</b></p><p>  采用動(dòng)態(tài)掃描顯示接口電路,動(dòng)態(tài)顯示接口電路是把所有顯示器的8個(gè)筆劃段a-h同名端連在一起,而每一個(gè)顯示器的公共極COM各自獨(dú)立地受I/O線控制。CPU向字段輸出口送出字型碼時(shí),所有顯示器

89、接收到相同的字型碼,但究竟是哪個(gè)顯示器亮,則取決于COM端。可以采用分時(shí)的方法,輪流控制各個(gè)顯示器的COM端,使各個(gè)顯示器輪流點(diǎn)亮。在輪流點(diǎn)亮掃描過(guò)程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的(約1ms),由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。</p><p>  本設(shè)計(jì)P2.0、P2.1、P2.2、P2.3

90、信號(hào)一起組成位選通的位選信號(hào),P0.0~P0.7信號(hào)一起組成段碼選通的段選信號(hào),通過(guò)軟件編程,先把所要顯示的數(shù)據(jù)放入存儲(chǔ)單元,然后把數(shù)據(jù)送入段選通對(duì)應(yīng)的地址,再選通某一個(gè)LED,逐步完成四個(gè)LED的顯示。</p><p><b>  ;里程顯示控制程序</b></p><p>  DISPLAYS:SETB P1.0 ;點(diǎn)亮LED1</

91、p><p>  CLR P1.1 ;關(guān)閉速度指示燈</p><p>  SETB P3.7</p><p>  LCALL SSS ;將圈數(shù)轉(zhuǎn)為公里數(shù)</p><p>  LCALL DISPLAY ;顯示公里數(shù)據(jù)</p><p>  LJMP S

92、TART1 ;跳回START1</p><p><b>  ;速度顯示程序</b></p><p>  DISPLAYV:CLR P1.0 ;關(guān)閉LED1(里程指示燈)</p><p>  SETB P1.1 ;點(diǎn)亮LED2(速度指示燈)</p><p

93、>  CLR P3.7 </p><p>  LCALL VVV ;每圈時(shí)間換算為KM/H程序</p><p>  MOV A,71H ;將十位數(shù)(BCD碼)值植入A</p><p>  SUBB A,#04H ;與預(yù)定報(bào)警值比較</p>&l

94、t;p>  JNC WARING ;時(shí)速超過(guò)40時(shí)報(bào)警</p><p>  SETB P3.1 ;關(guān)報(bào)警燈</p><p>  V1: LCALL DISPLAY ;顯亮一次</p><p>  RET ;子程序返回</p>

95、<p>  DISPLAY: MOV R1,#70H ;顯示單元首址</p><p>  MOV R2,#0FEH ;掃描字</p><p>  PLAY: MOV A,R2 ;掃描字送入A</p><p>  MOV P2,A ;放到端口P2&l

96、t;/p><p>  MOV A,@R1 ;取顯示數(shù)據(jù)</p><p>  ANL A,#0FH ;高四位清0</p><p>  MOV DPTR,#TAB ;取段碼表首址</p><p>  MOVC A,@A+DPTR ;查顯示數(shù)據(jù)對(duì)應(yīng)段碼

97、 MOV P0,A ;段碼輸出</p><p>  LCALL DL1MS ;點(diǎn)亮1MS</p><p>  INC R1 ;指向下一顯示數(shù)據(jù)地址</p><p>  MOV A,R2 ;取掃描字</p><p>

98、  JNB ACC.3,ENDOUT ;已掃描到第四位,轉(zhuǎn)ENDOUT退出</p><p>  RL A ;循環(huán)左移</p><p>  MOV R2,A ;放回R2</p><p>  AJMP PLAY ;轉(zhuǎn)PLAY循環(huán)</p><p>

99、  ENDOUT: SETB P2.0 ;關(guān)掃描</p><p>  SETB P2.1 ;關(guān)掃描</p><p>  SETB P2.2 ;關(guān)掃描</p><p>  SETB P2.3 ;關(guān)掃描</p><p>  RET

100、 ;子程序返回</p><p><b>  ;共陰極段碼表</b></p><p>  TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H</p><p>  DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H</p><p>

101、;<b>  DB 00H</b></p><p>  圖 3.5 顯示程序流程圖</p><p><b>  (6)延時(shí)子程序</b></p><p>  ;1ms延時(shí)程序 利用循環(huán)實(shí)現(xiàn)延時(shí)</p><p>  DL1MS: MOV R6,#14H</p><p&

102、gt;  DL1: MOV R7,#19H</p><p>  DL2: DJNZ R7,DL2 ;循環(huán)19H次</p><p>  DJNZ R6,DL1 ;循環(huán)14H次</p><p><b>  RET</b></p><p>  ;出錯(cuò)閃爍利用延時(shí)255ms</p><

103、;p>  DL5S: MOV R5,#0FFH </p><p>  DL3: LCALL DL1MS ;調(diào)用1ms延時(shí)</p><p>  DJNZ R5,DL3 ;循環(huán)255次</p><p><b>  RET</b></p><p><b>  三、調(diào)試</b&

104、gt;</p><p><b>  1.硬件調(diào)試</b></p><p>  硬件調(diào)試時(shí),我們首先檢查了接線,對(duì)照電路原理圖,確保準(zhǔn)確無(wú)誤。其次是檢查各個(gè)焊點(diǎn)是否有虛焊的情況,檢查無(wú)誤后,接通經(jīng)穩(wěn)壓后的5V電源。硬件的修改可在元器件參數(shù)方面調(diào)整,如電阻的阻值等。</p><p><b>  2.軟件調(diào)試</b></p

105、><p>  先用KEIL軟件輸入完整的程序,進(jìn)行編譯。</p><p>  首先,新建一個(gè)項(xiàng)目選擇AT89C51,新建一個(gè)文件,將程序輸入,輸完后保存,保存時(shí)需加后綴名.ASM。然后將文件添加到新建的工程下。進(jìn)行檢錯(cuò)和編譯,窗口如圖3.2所示。</p><p>  圖 3.1 KEIL編譯窗口</p><p>  編譯無(wú)誤后即可運(yùn)行,運(yùn)行時(shí)可

106、從Peripherals中調(diào)出輸出口P0—P3來(lái)觀察輸出情況。運(yùn)行時(shí)窗口如圖3.1所示。</p><p>  圖 3.2 KEIL運(yùn)行窗口 17</p><p>  接著再使用PROTEUS仿真軟件進(jìn)行仿真。首先新建一個(gè)文件,選擇所需的元件并排列好,根據(jù)電路原理圖進(jìn)行布線。當(dāng)完成原理圖布線后,利用PROTEUS ISIS編輯環(huán)境所提供的電器規(guī)則檢查命

107、令對(duì)設(shè)計(jì)進(jìn)行檢查,并根據(jù)系統(tǒng)提供的錯(cuò)誤檢查報(bào)告修改原理圖。直到通過(guò)電器規(guī)則檢查為止。然后在KEIL中生成HEX文件,雙擊AT89C51芯片,將完整的程序灌入芯片,單擊左下角的開始箭頭即可開始模擬仿真。</p><p>  在仿真過(guò)程中遇到過(guò)一些問(wèn)題,針對(duì)這些問(wèn)題做了些軟件方面的調(diào)整。</p><p>  剛開始仿真時(shí),P0口是灰色的,數(shù)碼管沒(méi)有點(diǎn)亮。經(jīng)檢查是由于P0口內(nèi)部沒(méi)有上拉電阻,因此

108、,必須另外加上,上拉電阻一段接P0口,另一端直接接到電源的正集。接上后數(shù)碼管點(diǎn)亮,但顯示的是亂碼經(jīng)過(guò)仔細(xì)的檢查,發(fā)現(xiàn)了程序中的錯(cuò)誤,硬件中選用的是共陰極數(shù)碼管,而程序中錯(cuò)用了共陽(yáng)極的段碼表,從而造成了應(yīng)該點(diǎn)亮的部分沒(méi)亮,而不該點(diǎn)亮的部分反而亮了的錯(cuò)誤情況。</p><p><b>  18</b></p><p><b>  四、操作說(shuō)明</b>

109、</p><p>  本設(shè)計(jì)為自行車?yán)锍逃?jì)/速度計(jì),實(shí)現(xiàn)了里程速度計(jì)的基本功能。</p><p>  接通電源后,由于未選擇車輪周長(zhǎng),蜂鳴器報(bào)警提示,同時(shí)LED燈D3閃爍,直到有鍵按下。當(dāng)按下P1.2口所接開關(guān)SW2時(shí)選擇車輪周長(zhǎng)1,按下P1.3口所接開關(guān)SW3時(shí)選擇車輪周長(zhǎng)2,按下P1.6口所接開關(guān)SW4時(shí)選擇車輪周長(zhǎng)3,P1.7口所接開關(guān)SW5時(shí)選擇車輪周長(zhǎng)4,選擇周長(zhǎng)后,每按下開關(guān)S

110、W6一次表示車輪轉(zhuǎn)了一圈,此時(shí)數(shù)碼管顯示當(dāng)前的里程值,此時(shí)若按下開關(guān)SW7則數(shù)碼管顯示當(dāng)前的速度值,當(dāng)超速時(shí)蜂鳴器報(bào)警。</p><p>  (1)接通電源后,由于未選擇車輪周長(zhǎng),蜂鳴器報(bào)警提示,紅燈閃爍。</p><p>  (2)按下P1.2口所接開關(guān)SW2時(shí)選擇車輪周長(zhǎng)1藍(lán)燈亮</p><p> ?。?)按下開關(guān)SW7則數(shù)碼管顯示當(dāng)前的速度值,綠燈亮,當(dāng)超速時(shí)

111、蜂鳴器報(bào)警。</p><p>  (4)每按下開關(guān)SW6一次表示車輪轉(zhuǎn)了一圈,此時(shí)數(shù)碼管顯示當(dāng)前的里程值</p><p><b>  五、參考文獻(xiàn)</b></p><p>  [1]《單片機(jī)原理及應(yīng)用技術(shù)》 范力旻 主編 電子工業(yè)出版社</p><p>  [2]《單片機(jī)原理及其接口技術(shù)》(第二版) 胡汗才編著

112、 北京大學(xué)出版社</p><p>  [3]《51系列單片機(jī)設(shè)計(jì)實(shí)列》 樓然苗 李光飛編著 北航出版社</p><p>  [4]《單片微機(jī)測(cè)控系統(tǒng)設(shè)計(jì)大全》 王福瑞編著 北航出版社</p><p>  [5]《例說(shuō)8051》 張義和 編著 人民郵電出版社</p><p>  [6]《傳感器應(yīng)用技

113、術(shù)141例》松井邦彥, 梁瑞林 編著 科學(xué)出版社,</p><p>  [7]《單片機(jī)設(shè)計(jì)教程》 孫惠芹 編著 電子工業(yè)出版社</p><p>  [8]李勛, 劉源, 李靜東. 單片機(jī)實(shí)用教程.北京航空航天大學(xué)出版社, 2006</p><p>  [9]曲家駭,王季秩,伺服控制系統(tǒng)中的傳感器[M]. 機(jī)械工業(yè)出版社. 1998</p>

114、<p>  [10]張洪潤(rùn), 張亞凡. 傳感器技術(shù)與應(yīng)用教程. 清華大學(xué)出版社, 2005</p><p><b>  六、心得體會(huì)</b></p><p>  通過(guò)兩周的時(shí)間,我們較成功的完成了這次課程設(shè)計(jì)。</p><p>  剛開始選課題的時(shí)候,對(duì)各個(gè)課題都不了解,難易程度也不太清楚,前面選的幾個(gè)課題有的比較簡(jiǎn)單,有的又和其

115、他的組沖突,所以課題定的比較晚,后來(lái)感覺(jué)對(duì)這個(gè)方面還是比較感興趣的,而且它的實(shí)際用途也比較大。通過(guò)查閱一些資料,我們確定了總體方案。接下來(lái)就是采購(gòu)元器件了,因?yàn)橐郧皼](méi)買過(guò),沒(méi)什么經(jīng)驗(yàn),買的時(shí)候也沒(méi)仔細(xì)看,回來(lái)后發(fā)現(xiàn)元器件都比較舊,特別是89C51芯片,引腳都發(fā)黑了,只好去換了一個(gè)。接下來(lái)的幾天就是焊接電路了,由于我們選的電路比較復(fù)雜,所以焊接也是一項(xiàng)大工程。開始我們把所有元件都焊在了一塊板子上,排列比較緊湊,結(jié)果導(dǎo)線全部接好以后,板子上

116、密密麻麻的全是線,顯得很亂。調(diào)試的時(shí)候,結(jié)果不正確,經(jīng)過(guò)一些改動(dòng)和調(diào)整仍不見(jiàn)起色,看著這么多線不知從何下手,后來(lái)正負(fù)極之間發(fā)生短路現(xiàn)象。我們不得不放棄這塊板子,準(zhǔn)備重新做。于是我們重新買了一套元件,不同的是,這次買了兩塊板子,根據(jù)上一次的經(jīng)驗(yàn)教訓(xùn),我們準(zhǔn)備將電路分兩部分,其中一塊板子上只有最小系統(tǒng),兩塊板子通過(guò)排線相互連接。這樣焊接出來(lái)的板子看起來(lái)就清晰的多,而且,兩個(gè)人一起焊,每人一塊板子焊得更快,效率更高。經(jīng)過(guò)一天的調(diào)試,結(jié)果終于正

溫馨提示

  • 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ù)僅提供信息存儲(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)論