單片機(jī)遙控小汽車的設(shè)計方法_第1頁
單片機(jī)遙控小汽車的設(shè)計方法_第2頁
單片機(jī)遙控小汽車的設(shè)計方法_第3頁
單片機(jī)遙控小汽車的設(shè)計方法_第4頁
單片機(jī)遙控小汽車的設(shè)計方法_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學(xué) 號01081237密 級哈爾濱工程大學(xué)本科生畢業(yè)論文遙控小汽車的設(shè)計研究院(系)名稱:信息與通信工程學(xué)院 專業(yè)名稱:電子信息工程學(xué)生姓名:張洪生指導(dǎo)教師:付永慶 教授2005年6月哈爾濱工程大學(xué)本科生畢業(yè)論文哈爾濱工程大學(xué)本科生畢業(yè)論文遙控小汽車的設(shè)計研究院 (系):信息與通信工程學(xué)院專學(xué)業(yè):電子信息工程 號:01081237學(xué)生姓名:張洪生指導(dǎo)教師:付永慶 教授2005年6月1哈爾濱工程大學(xué)本科生畢業(yè)論文摘 要根據(jù)題目要求,本設(shè)計采用2片AT89C52單片機(jī)構(gòu)成主從式的控制系統(tǒng),雙機(jī)采用串行口進(jìn)行通信。紅外遙控部分采用遙控車模專用編、解碼芯片TX-2/RX-2,提高控制的可靠性;同時,在

2、遙控發(fā)射端加入了用凌陽61板做的語音識別系統(tǒng),能夠完成語音遙控功能。采用紅外傳感器進(jìn)行里程檢測;超聲波傳感器進(jìn)行障礙識別;感光電阻輔以步進(jìn)電機(jī)控制的轉(zhuǎn)動機(jī)構(gòu)進(jìn)行光源方向的檢測,并能用軟件控制小車行駛到光源附近。采用步進(jìn)電機(jī)對小車的轉(zhuǎn)向進(jìn)行精確的控制,同時用紅外傳感器對轉(zhuǎn)向的角度進(jìn)行校正。此外,采用四位LED數(shù)碼管和若干LED發(fā)光二極管顯示時間、行進(jìn)的里程以及小車的各種狀態(tài);采用AT24C08串行EEPROM記錄小車的行駛軌跡,并能按照所記錄的軌跡自動行駛。本次設(shè)計基于完備的軟硬件系統(tǒng),很好的實現(xiàn)了小車語音遙控、任意曲線行駛、路線記錄與重放、自動查找光源、自動避障,里程統(tǒng)計并發(fā)出指示信息等功能。

3、關(guān)鍵詞:單片機(jī);超聲波傳感器;紅外遙控;語音識別;凌陽61板哈爾濱工程大學(xué)本科生畢業(yè)論文ABSTRACTAccording to the topic, my design needs to adopt two AT89C52 to form a control system of principal and subordinate. The communication between the two MCU is to adopt the serial port. Meanwhile, launch end join with insult male genital 61 sound reco

4、gnition system that board make remotely, can finish the remote control function of the pronunciation, and it adopts the infrared sensor to measure the mileage; The ultrasonic sensor carries on the obstacle to discern; Sensitization resistance complement in order to walk into whom electrical machiner

5、y control rotate organization carry on measuring, direction of the light source, The small car can go to the adjacent place of the light source with the software .The design adopts serial EEPROM of AT24C08 to write down the orbit of the car , and can repeat the route automatically which has been rec

6、orded.The Design is on the basis of the complete software and hardware system, and the small car has the function of sound remote control, following any curve, recording the route where it has gone, finding out the light source, etcKeywords: MCU; AT24C08; sensor; SPCE061A哈爾濱工程大學(xué)本科生畢業(yè)論文目 錄第1章 緒論11.1概

7、述11.2設(shè)計要求及主要功能介紹11.2.1 手動控制功能21.2.2 自動尋找光源功能21.2.3 超聲避障功能21.2.4 記錄路線與重放路線功能21.2.5 聲控功能31.2.6 其他功能31.3 MCS-51系列單片機(jī)簡介31.4凌陽SPCE061A精簡開發(fā)板簡介5第2章 系統(tǒng)總體設(shè)計62.1系統(tǒng)功能模塊的劃分62.2單片機(jī)數(shù)目的選定62.3系統(tǒng)原理框圖72.4系統(tǒng)軟件主要特色72.4.1軟件分層結(jié)構(gòu)82.4.2多任務(wù)結(jié)構(gòu)82.4.3消息驅(qū)動結(jié)構(gòu)132.5本章小結(jié)15第3章 各模塊的詳細(xì)設(shè)計163.1 紅外遙控模塊的設(shè)計163.1.1 遙控模塊的功能需求163.1.2 編解碼芯片的選型

8、163.1.3 遙控模塊原理圖16哈爾濱工程大學(xué)本科生畢業(yè)論文3.1.4 遙控電路與語音識別模塊的連接183.2 數(shù)碼管、發(fā)光二極管顯示模塊的設(shè)計183.2.1 多位數(shù)碼管掃描顯示原理183.2.2 工作狀態(tài)指示燈及轉(zhuǎn)向燈的設(shè)計193.2.3 顯示模塊電原理圖193.2.4 顯示任務(wù)的軟件設(shè)計203.3 聲音提示功能的設(shè)計203.4 前輪轉(zhuǎn)向模塊的設(shè)計213.4.1 前輪轉(zhuǎn)向的機(jī)械結(jié)構(gòu)設(shè)計213.4.2 前輪轉(zhuǎn)向中點校準(zhǔn)功能的設(shè)計223.4.3 步進(jìn)電機(jī)驅(qū)動芯片223.4.4 前輪轉(zhuǎn)向任務(wù)的軟件設(shè)計223.5 后輪驅(qū)動模塊的設(shè)計243.5.1 直流電機(jī)驅(qū)動芯片L298N243.5.2 后輪驅(qū)動

9、任務(wù)的軟件設(shè)計253.6 里程檢測模塊的設(shè)計253.6.1 探頭的選型與安裝253.6.2 軟件消抖與硬件消抖的比較263.6.3 里程檢測任務(wù)的軟件設(shè)計263.7 超聲測距模塊的設(shè)計273.7.1 超聲測距的理論依據(jù)273.7.2 超聲發(fā)射電路273.7.3 超聲接收電路283.7.4 超聲測距任務(wù)的軟件設(shè)計293.8 光源方向探測模塊的設(shè)計303.8.1 旋轉(zhuǎn)機(jī)構(gòu)設(shè)計303.8.2 亮度檢測電路的選型與設(shè)計31哈爾濱工程大學(xué)本科生畢業(yè)論文3.8.3 尋找光源方向任務(wù)的軟件設(shè)計323.9 行駛路線的記錄與重放模塊的設(shè)計333.9.1 該模塊的功能概述333.9.2 AT24C08串行EEPR

10、OM介紹333.9.3 存儲記錄的格式333.9.4 手動模式下記錄行駛路線功能的軟件設(shè)計333.9.5 重放行駛路線功能的軟件設(shè)計343.10 雙機(jī)串行通信模塊的軟件設(shè)計353.10.1 通信方式的選型353.10.2 雙機(jī)串行通信的軟件設(shè)計353.11 語音識別功能的設(shè)計363.11.1 凌陽語音壓縮算法373.11.2 語音識別模塊的軟件設(shè)計373.12 本章小結(jié)37第4章 系統(tǒng)軟件的設(shè)計394.1 單片機(jī)的C語言程序設(shè)計簡介394.2 系統(tǒng)的三種工作模式394.3 手動模式的設(shè)計404.4 自動尋找光源模式的設(shè)計404.4.1 功能分析404.4.2 尋找光源的策略414.4.3 自動

11、尋找光源的軟件設(shè)計414.4.5 該功能模塊存在的一些問題414.5 走數(shù)字及路線重放模式的設(shè)計444.6 本章小結(jié)44第5章 系統(tǒng)的組裝、調(diào)試和測試455.1 系統(tǒng)的組裝、調(diào)試45哈爾濱工程大學(xué)本科生畢業(yè)論文5.2 遙控距離的測試455.3 時間顯示功能的測試455.4 里程顯示功能的測試465.5 超聲測障礙功能的測試465.6 走數(shù)字功能的測試465.7 行駛路線記錄與重放功能的測試475.8 自動尋找光源功能的測試475.9 語音識別功能的測試475.10 本章小結(jié)48 結(jié)論49 致謝50 參考文獻(xiàn)51 附錄52哈爾濱工程大學(xué)本科生畢業(yè)論文第1章 緒論1.1 概述單片機(jī)以其強(qiáng)大的控制能

12、力已經(jīng)被廣泛應(yīng)用于諸多領(lǐng)域,配以各種接口傳感器可以實現(xiàn)系統(tǒng)的智能化。無論是在工業(yè)控制領(lǐng)域、醫(yī)療衛(wèi)生領(lǐng)域、還是在國防軍事領(lǐng)域、航天航空領(lǐng)域,微控制器都起著舉足輕重的作用。從最初的8位控制器到現(xiàn)在的16位、32位控制器都還有很大的發(fā)展和應(yīng)用空間。目前市場上已有很多種用超聲波傳感器制作的產(chǎn)品,在汽車電子領(lǐng)域,用超聲波傳感器做的倒車?yán)走_(dá)可以提高汽車行駛的安全性。對汽車駕駛員來說車身后方是一個視線的“死區(qū)”,倒車時得非常小心,倒車?yán)走_(dá)的出現(xiàn)就解決了這一問題,當(dāng)車身后方有障礙時能及時發(fā)出警告。語音識別技術(shù)也日趨完善,在機(jī)器人領(lǐng)域,要想用語言和機(jī)器人“交談”,首先就要解決語音的識別問題??梢杂谜Z音識別技術(shù)做

13、成電話聲控?fù)芴枴⒙暱丶译?、兒童玩具等。語音識別技術(shù)還有待于進(jìn)一步的發(fā)展。本設(shè)計中采用凌陽61板做的聲控系統(tǒng)可以用語音控制小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止。1.2 設(shè)計要求及主要功能介紹根據(jù)題目要求,本設(shè)計需要完成的以下幾項功能:(1)紅外遙控功能,啟停、自動或手動;(2)前或后直線行進(jìn);(3)任意曲線行進(jìn);(4)測距避障功能;(5)顯示行進(jìn)距離;(6)精確查找光源。1哈爾濱工程大學(xué)本科生畢業(yè)論文另外,在設(shè)計過程中又?jǐn)U展了一些功能,比如聲控功能、記錄與重放行駛路線功能等。1.2.1 手動控制功能在手動控制模式下,可以控制小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止、漏粉、顯示時間、顯示里程,若在行駛過程

14、中遇到障礙小車將自動停止,并發(fā)出聲光警告信號。同時,在轉(zhuǎn)彎或后退時相應(yīng)的轉(zhuǎn)向燈和倒車燈會閃爍發(fā)光,小車接收到一個按鍵命令后除了執(zhí)行相應(yīng)的動作外蜂鳴器還會響一聲,以告知操作者已收到了命令。在手動控制模式下,還設(shè)置了一個記錄行駛路線的開關(guān)。操作者按下這個開關(guān)后,先選擇這一次記錄的路線的名稱,此后對小車的控制命令將被存入EEPROM中,直至操作者再按下一次這個開關(guān)結(jié)束這次路線的記錄。記錄的路線可在重放路線模式下重放。1.2.2 自動尋找光源功能在自動尋找光源模式下,小車可以自動查找光源的方向,然后自動行駛到光源的附近。在自動行駛過程中若遇到障礙,小車將自動采取一些避障措施避開障礙。此外在尋找過程中操

15、作者若按下“顯示模式切換鍵”數(shù)碼管顯示的內(nèi)容將在時間和里程之間切換,若按下“停止”鍵,小車將立即停止尋找光源,然后等待切換到其他模式。1.2.3 超聲避障功能在手動模式、自動尋找光源模式、重放路線模式下超聲測障模塊始終工作。在前進(jìn)時發(fā)現(xiàn)前方有障礙,或在后退時發(fā)現(xiàn)后方有障礙小車都將立即停車,并發(fā)出聲光報警信號告知操作者。障礙檢測的距離調(diào)整在20厘米內(nèi),即只有在20厘米之內(nèi)有障礙時小車才會做出避讓動作,在這個范圍之外的障礙小車不予處理。1.2.4 記錄路線與重放路線功能在手動模式下打開記錄路線開關(guān),開始記錄路線;在重放路線模式下選擇重放的路線,開始重放指定的路線。在重放過程中遇到障礙 2哈爾濱工程

16、大學(xué)本科生畢業(yè)論文或操作者按下“停止”鍵將結(jié)束本條路線的重放,等待選擇下一條需要重放的路線或選擇另外一種模式。1.2.5 聲控功能本設(shè)計采用凌陽61板做了聲控系統(tǒng)。打開遙控器電源后開始訓(xùn)練語音命令,由于受到單片機(jī)內(nèi)的SRAM容量的限制只能錄制5條語音命令,分別是前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止。當(dāng)識別出某條語音命令時和直接按下相應(yīng)的按鍵等價,紅外發(fā)射電路都會給小車發(fā)出相應(yīng)的命令。操作者在使用聲控功能時有語音提示音,所以操作很簡便、快捷。1.2.6 其他功能小車還具有走數(shù)字功能,即小車可按照事先由程序設(shè)置好的路線行走,并灑下粉末,顯示出一個數(shù)字。除此之外,小車上還有左、右轉(zhuǎn)向燈,倒車燈,障礙指示燈,

17、模式指示燈,蜂鳴器報警電路,小車狀態(tài)一目了然。1.3 MCS-51系列單片機(jī)簡介MCS51單片機(jī)的基本結(jié)構(gòu)如圖1.1所示,其基本結(jié)構(gòu)包括: 8位CPU; 片內(nèi)震蕩器及時鐘電路; 32根I/O口線; 外部存儲器ROM和RAM尋址范圍各為64KB; 2個16位定時器/計數(shù)器; 5個中斷源,2個中斷優(yōu)先級;3哈爾濱工程大學(xué)本科生畢業(yè)論文 全雙工串行口; 布爾處理器。8051單片機(jī)的存儲器結(jié)構(gòu)特點之一是程序存儲器和數(shù)據(jù)存儲器分開,并有各自的尋址機(jī)構(gòu)和尋址方式。這種結(jié)構(gòu)的單片機(jī)稱為哈佛結(jié)構(gòu)單片機(jī)。8051單片機(jī)在物理上有四個存儲空間:片內(nèi)程序存儲器和片外程序存儲器;片內(nèi)數(shù)據(jù)存儲器和片外數(shù)據(jù)存儲器。805

18、1單片機(jī)有4個8位的并行接口,記作P0,P1,P2和P3,共32根口線,實際上它們就是SFR中的4個。這4個接口特性上主要差別是P0,P2和P3都還有第二功能,而P1口只能用做I/O口。4個口的驅(qū)動能力也是不相同。P1,P2和P3都能驅(qū)動3個LS TTL門,并且不需外加上拉電阻就能驅(qū)動MOS電路。P0能驅(qū)動8個LS TTL門,但驅(qū)動MOS電路時,若作為地址/數(shù)據(jù)總線,則可以直接驅(qū)動;而作為I/O口時,需外接上拉電阻才能驅(qū)動MOS電路。4哈爾濱工程大學(xué)本科生畢業(yè)論文1.4凌陽SPCE061A精簡開發(fā)板簡介凌陽61板是采用凌陽16位單片機(jī)為核心的開發(fā)系統(tǒng),具有DSP處理功能和語音處理功能。利用該開

19、發(fā)板可方便的實現(xiàn)語音的錄、放、識別等功能。SPCE061A凌陽16位單片機(jī)的結(jié)構(gòu)框圖如圖1.2所示:SPECE061A的CPU工作速率為0.32MHZ-49.152MHZ;SRAM容量為2K字;程序存儲器容量為32K字FLASH,使用凌陽音頻壓縮算法SACM_240方式(2.4Kbps),能容納240秒語音數(shù)據(jù);有兩個16位的并行I/O接口;還具有ADC、DAC、麥克風(fēng)放大器和AGC電路等。由于IDE自帶了很多有關(guān)語音錄放、語音識別的API函數(shù),所以采用61板來做聲控系統(tǒng)比較方便。圖1.2 SPCE061A結(jié)構(gòu)框圖5哈爾濱工程大學(xué)本科生畢業(yè)論文第2章 系統(tǒng)總體設(shè)計2.1系統(tǒng)功能模塊的劃分按照設(shè)

20、計要求,系統(tǒng)可以分為以下幾個基本功能模塊:遙控模塊、顯示模塊、前輪轉(zhuǎn)向模塊、后輪驅(qū)動模塊、超聲測距避障模塊、尋找光源模塊、記錄與重放路線模塊、里程檢測模塊等。有些模塊的功能是由硬件完成,有些模塊的功能由軟、硬件配合完成,有些模塊則是由軟件、硬件、機(jī)械三部分共同完成。將系統(tǒng)拆分成以上的這些基本功能模塊后,再根據(jù)各個模塊所要完成的功能分別去設(shè)計,也就是按照“逐步求精”的思想去設(shè)計本系統(tǒng),這將使設(shè)計工作細(xì)化,也有助于制定進(jìn)度安排。2.2單片機(jī)數(shù)目的選定由于系統(tǒng)需要完成的功能較多,CPU的負(fù)荷也較重,再加之單片機(jī)內(nèi)的定時器/計數(shù)器、中斷、I/O口等資源有限,如果選用一片單片機(jī)必將會給系統(tǒng)的設(shè)計帶來一些

21、困難。所以可以考慮采用兩個單片機(jī)構(gòu)成主從式的結(jié)構(gòu),各分擔(dān)一部分控制與運算功能,這樣兩個單片機(jī)可同時工作。所謂主從式結(jié)構(gòu)是指從單片機(jī)片機(jī)根據(jù)主單片機(jī)發(fā)出的命令來完成某項功能,并且把結(jié)果報告給主單片機(jī),這樣的結(jié)構(gòu)在某種程度上可以簡化系統(tǒng)。主單片機(jī)負(fù)責(zé)紅外遙控接收、顯示、小車的運動以及處理遙控命令等功能;從單片機(jī)則主要負(fù)責(zé)超聲測距、檢測光源方位這兩項比較費時的功能,在探測到障礙或探測到光源時將有關(guān)信息報告給主單片機(jī)進(jìn)行處理,并由主單片機(jī)來采取相應(yīng)的措施。本設(shè)計中采用了兩片AT89C52單片機(jī),通過串行接口通信。因為兩個單片機(jī)之間的距離很近,所以串行口可以工作在較高的波特率上,可以讓串行口工作在方式2

22、,其特點是其波特率高,并且波特率可以直接從晶振32分頻、或64分頻而得到,不需要占用定時器資源。 6哈爾濱工程大學(xué)本科生畢業(yè)論文2.3系統(tǒng)原理框圖系統(tǒng)原理框圖如圖2.1所示:圖2.1 系統(tǒng)原理框圖2.4系統(tǒng)軟件主要特色軟件在一個智能系統(tǒng)中扮演著舉足輕重的作用,軟件設(shè)計的好壞直接關(guān)系著整個系統(tǒng)的性能。目前已經(jīng)有很多種嵌入式實時多任務(wù)操作系統(tǒng),如:Linux、RTX51及UC/OS等,可以更有效的利用系統(tǒng)的各種資源,簡化編程,縮短開發(fā)周期。簽于本系統(tǒng)采用AT89C52單片機(jī)為控制器,本身的各種資源都很有限,引入一個操作系統(tǒng)代價太大,所以考慮直接來優(yōu)化系統(tǒng)的軟件結(jié)構(gòu),同樣可以達(dá)到“多任務(wù)”、“實時”

23、等要求。2.4.1軟件分層結(jié)構(gòu)為了便于編程,將邏輯控制層和具體的硬件相分離開是很有必要 7哈爾濱工程大學(xué)本科生畢業(yè)論文的。硬件驅(qū)動層的軟件負(fù)責(zé)直接操作硬件,并且給上層的軟件提供一定的接口,這樣有助于上層的軟件實現(xiàn)更復(fù)雜的功能,并且系統(tǒng)的硬件有所改動時也只需改動相應(yīng)的驅(qū)動模塊即可。本系統(tǒng)中的LED顯示模塊、前輪轉(zhuǎn)向模塊、后輪驅(qū)動模塊、AT24C08存取模塊、尋光源轉(zhuǎn)動機(jī)構(gòu)都做成了一些獨立的模塊,并且給外部提供了一些接口函數(shù),來實現(xiàn)對這些硬件或機(jī)械部件的高級操作。分層結(jié)構(gòu)如圖2.2所示:軟件的分層結(jié)構(gòu)是很多系統(tǒng)中普遍采用的一種軟件結(jié)構(gòu),比如TCP/IP協(xié)議就是一種典型的分層結(jié)構(gòu)。WINDOWS、L

24、INUX等系統(tǒng)中也幾乎把所有的系統(tǒng)硬件進(jìn)行了抽象,這樣上層的軟件就不必關(guān)心硬件的細(xì)節(jié),可以調(diào)用相應(yīng)的模塊提供的服務(wù)即可,這樣可把更多的精力放在高級功能的實現(xiàn)上。2.4.2多任務(wù)結(jié)構(gòu)為了充分利用單片機(jī)的CPU,內(nèi)存等資源,本系統(tǒng)中引入了多任務(wù)的軟件結(jié)構(gòu),即從宏觀上來看單片機(jī)同時在做多件事情。分析一般的多任務(wù)系統(tǒng)的軟件結(jié)構(gòu),系統(tǒng)的核心是任務(wù)調(diào)度器,在適當(dāng)?shù)臅r候任務(wù)調(diào)度器將保存當(dāng)前任務(wù)的現(xiàn)場,并且恢復(fù)將要運行的任務(wù)的現(xiàn)場,并讓其投入運行。簡單的說,一般的多任務(wù)系統(tǒng)是任務(wù)調(diào)度器循環(huán)的調(diào)用各個需要執(zhí)行的任務(wù),進(jìn)而可以更有效的利用系統(tǒng)的各種資源。從這里得到啟發(fā),可以用定時器每隔一定的時間中斷一次,在中斷處

25、理函數(shù)中依次調(diào)用一次各個任務(wù)所對應(yīng)的函數(shù),并且各個函數(shù)都8 圖2.2 軟件分層結(jié)構(gòu)示意圖哈爾濱工程大學(xué)本科生畢業(yè)論文能在一個較短的時間內(nèi)返回,這樣在某段時間內(nèi),各個任務(wù)所對應(yīng)的函數(shù)都能夠被執(zhí)行到,就好像多個任務(wù)同時運行了。還有一點需要說明,就是各個任務(wù)是由一些函數(shù)和一些靜態(tài)變量組成。函數(shù)由定時器中斷處理函數(shù)定期的調(diào)用一次,并且有個前提就是這個函數(shù)能夠在較短的時間內(nèi)返回,否則其他任務(wù)將不能及時的被調(diào)用到,也就達(dá)不到“實時”這一要求。靜態(tài)變量保存該任務(wù)的各種狀態(tài),并且其他模塊和該任務(wù)進(jìn)行通信也是通過置取這些靜態(tài)變量來實現(xiàn)的。本系統(tǒng)中軟件的多任務(wù)結(jié)構(gòu)如圖2.3所示:可以說定時器中斷處理函數(shù)就是本設(shè)計

26、中多任務(wù)的核心,即任務(wù)調(diào)度器。以下是定時器0中斷處理函數(shù)的程序清單:/圖2.3 多任務(wù)結(jié)構(gòu)示意圖/定時器0中斷處理函數(shù)/每4毫秒中斷一次/產(chǎn)生時鐘節(jié)拍9哈爾濱工程大學(xué)本科生畢業(yè)論文/負(fù)責(zé)維護(hù)一個系統(tǒng)時間變量和任務(wù)調(diào)度/#define TIME_OVERLOAD 3960 /定時器計數(shù)初值 /記錄時間的結(jié)構(gòu)的定義typedef structuchar t_ms; /毫秒數(shù)0-99uchar t_100ms; /100毫秒數(shù)0-9 uchar t_sec; /秒數(shù)0-59uchar t_min; /分鐘數(shù),0-255TIME;TIME time; /記錄系統(tǒng)時間的全局變量 void timer0(

27、void) interrupt 1/重裝定時器0的計數(shù)初值TH0=(65536-TIME_OVERLOAD)/256; TL0=(65536-TIME_OVERLOAD)%256; /維護(hù)系統(tǒng)時間time.t_ms+=4;if(time.t_ms>99)time.t_ms=0;if(+time.t_100ms>9)time.t_100ms=0; if(+time.t_sec>59) 10哈爾濱工程大學(xué)本科生畢業(yè)論文time.t_sec=0;time.t_min+;/大約每50毫秒調(diào)用一次蜂鳴器任務(wù)/并且只有在需要發(fā)聲時才調(diào)用/n_beep全局變量表示需要發(fā)出幾聲if(n_be

28、ep)&&(!(time.t_ms%52)beep2();/每4毫秒調(diào)用一次顯示任務(wù)led_disp();/每16毫秒調(diào)用一次后輪直流電機(jī)驅(qū)動程序if(!(time.t_ms&0x0f)dianji();/每32毫秒調(diào)用一次里程檢測任務(wù)if(!(time.t_ms&0x1f)licheng();/每16ms調(diào)用一次前輪轉(zhuǎn)向電機(jī)驅(qū)動函數(shù)if(!(time.t_ms&0x0f)gw_dianji();以上的這段程序代碼就是實現(xiàn)了任務(wù)的調(diào)度,和一般的多任務(wù)系統(tǒng)相比較有幾點不同:(1) 任務(wù)之間的切換是通過函數(shù)的調(diào)用與返回實現(xiàn)的,當(dāng)以上的這幾個任務(wù)全調(diào)用一次之后

29、將進(jìn)入主任務(wù)執(zhí)行,主任務(wù)即main()函數(shù)所對應(yīng)的任務(wù)。(2) 相應(yīng)的任務(wù)上、下文的保存與恢復(fù)也不是由任務(wù)調(diào)度器實現(xiàn)的,而是由C語言編譯器在函數(shù)調(diào)用時自動保存與恢復(fù)了主任務(wù)的上、下文;其他的任務(wù)不用保存上、下文,每次進(jìn)入執(zhí)行都是從相應(yīng)函數(shù)的第一行開始,寄存器值也不用保存。11哈爾濱工程大學(xué)本科生畢業(yè)論文總之,采用以上這種軟件結(jié)構(gòu),也可以實現(xiàn)多個任務(wù)并發(fā)運行,在timer0()函數(shù)中可以加進(jìn)更多的任務(wù),只要各個任務(wù)都能在一個較段的時間內(nèi)執(zhí)行一次并返回到timer0()函數(shù)中就可以。此外,關(guān)于RAM的分配是在編譯的時候完成的,各個任務(wù)一般要用一些全局的靜態(tài)變量來標(biāo)識自身狀態(tài)。在主控單片機(jī)上有以下幾

30、個任務(wù):(1) 主任務(wù):main()開始的任務(wù),很多功能都要在該任務(wù)中完成;(2) 蜂鳴器發(fā)聲任務(wù):beep2(),全局變量n_beep表示需要發(fā)出幾個“嘀”聲;(3) LED顯示任務(wù):led_disp(),LED數(shù)碼管和LED發(fā)光二極管顯示任務(wù);(4) 后輪電機(jī)驅(qū)動任務(wù):dianji(),目前只實現(xiàn)了電機(jī)的正、反轉(zhuǎn)和停止功能,以后可以在該任務(wù)中加入PWM調(diào)速功能;(5) 前輪轉(zhuǎn)向任務(wù):gw_dianji(),控制步進(jìn)電機(jī)讓前輪轉(zhuǎn)到指定的角度;(6) 里程檢測任務(wù):licheng(),檢測小車的行駛里程。在從單片機(jī)上有四個任務(wù):(1) 尋找光源方向任務(wù):該任務(wù)作為從單片機(jī)的背景任務(wù),由main

31、()函數(shù)調(diào)用,然后一直循環(huán)的執(zhí)行;(2) 前超聲測障任務(wù):chaosheng_qian(),由從單片機(jī)的定時器中斷處理函數(shù)timer0()每隔64毫秒調(diào)用一次;(3) 后超聲測障任務(wù):chaosheng_hou(),每64毫秒調(diào)用一次,和chaosheng_qian()的調(diào)用相差32毫秒;(4) 旋轉(zhuǎn)機(jī)構(gòu)轉(zhuǎn)動任務(wù):driver_dianji(),將尋找光源方向的轉(zhuǎn)動機(jī)構(gòu)旋轉(zhuǎn)到指定的角度。2.4.3消息驅(qū)動結(jié)構(gòu)考慮到系統(tǒng)中無論是操作者按下一個按鍵,還是遇到障礙或是尋 12哈爾濱工程大學(xué)本科生畢業(yè)論文找到光源,這些事件都有一個共同點,就是系統(tǒng)要對這些事件做出相應(yīng)的處理或采取相應(yīng)的措施。所以為了簡化

32、編程,讓這些事件在主任務(wù)中能得到統(tǒng)一的處理,可以給這些事件編上號,然后由一個消息搜集模塊去等待各種消息。一旦某個事件發(fā)生,該模塊馬上給主任務(wù)返回該事件的編號,即消息值,讓主任務(wù)按照消息值分類去處理消息。在消息搜集模塊的頭文件中定義了如下若干個消息:/消息的結(jié)構(gòu)為:高三位,消息分類碼,可以加快消息處理的速 /度;低五位,消息值。#define NULL 0/按鍵消息的定義#define MSG_K_QIAN 0x01#define MSG_K_HOU 0x02#define MSG_K_ZUO 0x03#define MSG_K_YOU 0x04#define MSG_K_TING 0x05#d

33、efine MSG_K_MODE 0x06#define MSG_K_FEN 0x07#define MSG_K_REC 0x08 /“前進(jìn)”按鍵消息 /“后退”按鍵消息 /“左轉(zhuǎn)”按鍵消息 /“右轉(zhuǎn)”按鍵消息 /“停止”按鍵消息 /“模式選擇”按鍵消息 /“漏粉”按鍵消息 /“記錄路線”按鍵消息/“顯示切換”按鍵消息 #define MSG_K_DISPMODE 0x09/超聲避障消息#define MSG_QIANZHANG 0x14#define MSG_HOUZHANG 0x15 /前方出現(xiàn)障礙消息 /后方出現(xiàn)障礙消息#define MSG_NOQIANZHANG 0x16 /前方障礙

34、消失消息#define MSG_NOHOUZHANG 0x17/光源消息#define MSG_NOTFOUND 0x28#define MSG_FOUND 0x2913 /后方障礙消失消息 /沒有發(fā)現(xiàn)光源消息 /發(fā)現(xiàn)光源消息哈爾濱工程大學(xué)本科生畢業(yè)論文/主從機(jī)之間的控制消息#define MSG_BEGINFIND 0x31#define MSG_ENDFIND 0x32extern uchar getmsg(void);extern uchar imgetch(void);消息搜集模塊對外提供了兩個接口函數(shù):getmsg()函數(shù)一直等待到有消息時返回消息值;imgetch()函數(shù)立即返回按

35、鍵值,這是為了某些地方使用上的靈活而設(shè)置的。有了這個消息搜集模塊后,主任務(wù)執(zhí)行的大部分時間就會停留在getmsg()函數(shù)內(nèi)等待消息,當(dāng)有按鍵命令或遇到障礙時返回消息值,主任務(wù)對其進(jìn)行相應(yīng)的處理。主任務(wù)處理消息可以設(shè)計成如下結(jié)構(gòu):while(1)switch(getmsg() /消息分類處理 /消息循環(huán) /開始尋找光源命令消息 /停止尋找光源消息case MSG_K_QIAN:break;case MSG_K_HOU:break;case 14 /“前進(jìn)”按鍵消息處理 /“后退”按鍵消息處理哈爾濱工程大學(xué)本科生畢業(yè)論文2.5本章小結(jié)本章將系統(tǒng)拆分成了若干個功能模塊,并且采用兩個AT89C52單片

36、機(jī)來各分擔(dān)一部分功能。在軟件方面通過對結(jié)構(gòu)的特殊設(shè)計,基本上實現(xiàn)了多任務(wù)并發(fā)運行,并且通過軟件的分層結(jié)構(gòu)將功能實現(xiàn)和具體的硬件分離開,再加上消息驅(qū)動的結(jié)構(gòu),這將給后續(xù)的各模塊軟件的設(shè)計帶來方便。15哈爾濱工程大學(xué)本科生畢業(yè)論文第3章 各模塊的詳細(xì)設(shè)計3.1 紅外遙控模塊的設(shè)計3.1.1 遙控模塊的功能需求遙控模塊采用紅外遙控方式,因為采用紅外遙控抗干擾能力強(qiáng),且不會對周圍的無線電設(shè)備產(chǎn)生干擾電波,接口簡單;但是紅外方式遙控的距離比較有限,一般在幾米之內(nèi)。鑒于本設(shè)計不需要遠(yuǎn)距離遙控,所以綜合考慮之下采用紅外遙控較為合適。本設(shè)計中要求能用遙控器控制小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止、記錄路線、尋找

37、光源等很多種功能;遙控距離在幾米之內(nèi)即可;并且要在遙控發(fā)射模塊加入語音識別模塊,能夠?qū)崿F(xiàn)聲控功能。3.1.2 編解碼芯片的選型由于在遙控端的按鍵數(shù)目有多個,而紅外通道傳輸?shù)闹荒苁怯?、1組成的串行代碼,所以需要在發(fā)射端對按鍵進(jìn)行“并-串”編碼,在接收端相應(yīng)的要進(jìn)行“串-并”解碼。碼的波特率在收、發(fā)兩端應(yīng)該是一致的。方案一,使用MC145026、MC145027編解碼芯片,其特殊的編碼方式保證了信息的可靠傳輸,但是外圍器件參數(shù)的選定較為煩瑣,并且不能利用到其所提供的地址功能,也就是說傳輸?shù)男畔?dāng)中地址碼部分是多余的,這就降低了信道的利用率。方案二,采用臺灣瑞昱公司生產(chǎn)的專用于遙控車模的CMOS大

38、規(guī)模集成電路TX-2/RX-2,該編解碼芯片具有5種控制功能,使用方便,所以本設(shè)計中采用了該方案。3.1.3 遙控模塊原理圖遙控模塊發(fā)送部分原理如圖3.1所示。TX-2的11腳和12腳之間接的電阻決定振蕩頻率;3腳接地;10腳接3-5V電源;14腳、1腳、4腳、5腳、6腳分別為5路發(fā)射控制端;9腳為發(fā)射指示端,當(dāng)有按 16哈爾濱工程大學(xué)本科生畢業(yè)論文鍵按下時LED1發(fā)光提示;7腳為帶載波的編碼信號輸出端,即編碼信號已經(jīng)內(nèi)調(diào)制到38KHZ的載波上,該腳的信號通過一個NPN型三極管放大后可直接驅(qū)動紅外發(fā)射二極管發(fā)射信號;8腳為不帶載波的編碼信號輸出端。3.1.3 遙控發(fā)射端按鍵數(shù)目的擴(kuò)展圖3.1

39、遙控發(fā)射原理圖圖3.2 遙控接收電路圖遙控接收電路如圖3.2所示。RX-2的4腳和5腳之間接的電阻阻值要和TX-2的11腳、12腳間的電阻阻值接近,相差在20%之內(nèi)方可正確的解碼,本設(shè)計中這兩個電阻都選用150K;2腳接地;13腳接3-5V電源;3腳接輸入信號,由一體化紅外接收頭1838輸出的信號 17哈爾濱工程大學(xué)本科生畢業(yè)論文需要加一個反向器才是正確的編碼信號;6腳、7腳、10腳、11腳、12腳為5路遙控命令的輸出端,分別和TX-2的5路輸入端的狀態(tài)相對應(yīng)。另外,為了方便操作,將TX-2的5路功能擴(kuò)展成9功能,即在遙控發(fā)射端可以接9個按鍵。這是通過對原先的5路輸入進(jìn)行組合得到的。3.1.4

40、 遙控電路與語音識別模塊的連接語音識別模塊采用凌陽61板,可以將SPCE061A單片機(jī)的輸出引腳直接接到TX-2的輸入端,與按鍵實現(xiàn)“線與”功能,這樣遙控發(fā)射端的按鍵和凌陽單片機(jī)都可以通過遙控電路給小車發(fā)送命令。3.2 數(shù)碼管、發(fā)光二極管顯示模塊的設(shè)計3.2.1 多位數(shù)碼管掃描顯示原理LED數(shù)碼管是常用的顯示器件,數(shù)碼管的結(jié)構(gòu)如圖3.3所示。每一段相當(dāng)于一個發(fā)光二極管,各個發(fā)光二極管的陽極或陰極接在一起,分別稱作共陽極數(shù)碼管和共陰極數(shù)碼管。本設(shè)計中采用的是共陰極數(shù)碼管。對于多個數(shù)碼管的顯示,有靜態(tài)方式和動態(tài)掃描方式。本設(shè)計中用了4個共陰極數(shù)碼管,并采用動態(tài)掃描方式顯示。掃描顯示的原理是將各個數(shù)

41、碼管的段碼端口分別并聯(lián)在一起,由位選端口輪流選通各個數(shù)碼管,并讓每個數(shù)碼管分別顯示幾毫秒,由于人眼的視覺慣性,看到的將是多個數(shù)碼管同時在顯示。3.2.2 工作狀態(tài)指示燈及轉(zhuǎn)向燈的設(shè)計為了直觀的顯示出小車的各種狀態(tài),設(shè)計了若干發(fā)光二極管指示 18 圖3.3 LED數(shù)碼管結(jié)構(gòu)哈爾濱工程大學(xué)本科生畢業(yè)論文燈,有模式指示燈、漏粉指示燈、記錄行駛路線指示燈、障礙指示燈、轉(zhuǎn)向指示燈、倒車指示燈。3.2.3 顯示模塊電原理圖顯示模塊原理如圖3.4所示:顯示任務(wù)由主單片機(jī)完成。P0.0和P0.1分別接到74LS164的串行數(shù)據(jù)輸入端和移位脈沖端,產(chǎn)生數(shù)碼管選通信號。P0.2接到74LS273的時鐘端,鎖存P2

42、口給出的段碼數(shù)據(jù)。在完成鎖存后由P2口直接驅(qū)動8個LED發(fā)光二極管,作為小車的狀態(tài)指示。為了在74LS273鎖存數(shù)據(jù)時避免狀態(tài)指示燈的閃爍,用P1.2控制狀態(tài)指示燈的選通。在74LS273鎖存數(shù)據(jù)期間P1.2置高電平,全部熄滅狀態(tài)指示燈;在鎖存結(jié)束后,P2口給出正確的電平后再置P1.2低電平。同樣在4個數(shù)碼管掃描顯示的過程中也應(yīng)避免數(shù)碼管的閃爍。3.2.4 顯示任務(wù)的軟件設(shè)計數(shù)碼管的掃描顯示和狀態(tài)指示燈的顯示流程如圖3.5所示。由定時器0中斷處理函數(shù)timer0()每隔4毫秒調(diào)用一次。這樣每個數(shù)碼管 19 圖3.4 顯示模塊原理圖哈爾濱工程大學(xué)本科生畢業(yè)論文輪流顯示4毫秒,掃描一遍共需16毫秒

43、,也就是閃爍的頻率大概是60Hz,人眼看到的就是4個數(shù)碼管同時在顯示了。圖3.5 顯示流程圖3.3 聲音提示功能的設(shè)計和狀態(tài)指示燈的設(shè)計目的一樣,給小車加入聲音提示功能也是為了更直觀地顯示各種狀態(tài)。在操作者通過遙控器給小車發(fā)出命令后,蜂鳴器將響一聲,及時的提示操作者已經(jīng)收到命令。這是挺有必要的,因為紅外遙控方式并不是很可靠,有時操作者發(fā)出的遙控命令小車可20哈爾濱工程大學(xué)本科生畢業(yè)論文能是收不到的,因此操作者幾乎處于“盲操作”狀態(tài)。加入了聲音提示功能后,小車有沒有接收到遙控命令很容易就能知道了。此外,當(dāng)小車遇到障礙時也會給出聲音報警信號。本設(shè)計中所采用的蜂鳴器使用很簡便,只需給其正負(fù)端加上5V

44、左右的電壓就能夠發(fā)出聲音,在其內(nèi)部已經(jīng)含有一個振蕩電路。工作電流大約10mA,因此可以用P0口的某一位直接驅(qū)動。聲音提示功能被設(shè)計成一個單獨的任務(wù),原因是為了能讓蜂鳴器響若干聲,而同時單片機(jī)又能做其他的事情。其他模塊通過beep(n)函數(shù)設(shè)置靜態(tài)變量n_beep,告訴聲音提示模塊需要響n聲,大約50毫秒響一聲后自動會將n_beep減去1,一直減到0后不再發(fā)聲。3.4 前輪轉(zhuǎn)向模塊的設(shè)計3.4.1 前輪轉(zhuǎn)向的機(jī)械結(jié)構(gòu)設(shè)計圖3.6 遮擋校準(zhǔn)方案前輪的機(jī)械結(jié)構(gòu)如圖3.6所示。通過步進(jìn)電機(jī)來控制前輪轉(zhuǎn)到一定的角度,并且采用了一個遮擋型的紅外對管來檢測轉(zhuǎn)向的中點,以便在開機(jī)時能自動找到轉(zhuǎn)向的中點。而且在

45、一定程度上可以校準(zhǔn)由步進(jìn)電機(jī)的失步帶來的角度誤差。3.4.2 前輪轉(zhuǎn)向中點校準(zhǔn)功能的設(shè)計21哈爾濱工程大學(xué)本科生畢業(yè)論文如圖3.7所示,在紅外發(fā)射管和接收管之間無遮擋時,電壓比較器輸出低電平;當(dāng)之間有遮擋時,電壓比較器輸出高電平。當(dāng)前輪轉(zhuǎn)到中點時,細(xì)桿正好能遮擋住紅外對管,此時電壓比較器輸出一個高電平;當(dāng)前輪偏離中點時,輸出低電平。3.4.3 步進(jìn)電機(jī)驅(qū)動芯片本設(shè)計中前輪的轉(zhuǎn)向電機(jī)是從廢棄的軟驅(qū)上拆卸下來的步進(jìn)電機(jī),體積小、性能好、使用方便,并且有專門的驅(qū)動芯片。驅(qū)動芯片引腳如圖3.8所示,輸入、輸出信號如圖3.9所示。當(dāng)控制信號的周期為40Hz左右時,步進(jìn)電機(jī)工作在最佳狀態(tài)。3.4.5 前輪

46、轉(zhuǎn)向任務(wù)的軟件設(shè)計前輪轉(zhuǎn)向設(shè)計成一個單獨的任務(wù),由定時器0中斷處理函數(shù)每16毫秒調(diào)用一次。其他模塊可以調(diào)用函數(shù)setdegree()設(shè)置需要轉(zhuǎn)到的角度,然后由轉(zhuǎn)向任務(wù)負(fù)責(zé)轉(zhuǎn)到所指定的角度,在轉(zhuǎn)向期間,單片機(jī)可以做其他的事情;其他模塊還可以調(diào)用getnowdegree()取得當(dāng)前轉(zhuǎn)到的角度。22 圖3.7 紅外對管檢測電路哈爾濱工程大學(xué)本科生畢業(yè)論文A-CH inB-CH in 圖3.8 步進(jìn)電機(jī)驅(qū)動芯片A BB圖3.9 步進(jìn)電機(jī)控制時序23哈爾濱工程大學(xué)本科生畢業(yè)論文3.5 后輪驅(qū)動模塊的設(shè)計3.5.1 直流電機(jī)驅(qū)動芯片L298N后輪采用直流電機(jī)來驅(qū)動,和步進(jìn)電機(jī)相比較直流電機(jī)驅(qū)動力大,電源利

47、用率高。因為直流電機(jī)的轉(zhuǎn)速很高,所以必須加入齒輪箱進(jìn)行減速,減速后驅(qū)動力變大,轉(zhuǎn)速降低。小車的行駛速度大概在20cm/s左右。為了控制直流電機(jī)的正反轉(zhuǎn)來實現(xiàn)小車的前進(jìn)和后退,采用了直流電機(jī)驅(qū)動芯片L298N,引腳連接如圖3.10所示。前進(jìn)時5腳輸入方波占空比為100%(即持續(xù)高電平),7腳為低電平;后退時5腳為低電平,7腳輸入方波占空比為100%。另外,改變方波的占空比可以實現(xiàn)對直流電機(jī)的調(diào)速,由于本設(shè)計中小車速度已調(diào)整到較低水平,所以無需再調(diào)速。 100n100n圖3.10 直流電機(jī)驅(qū)動芯片L298N24哈爾濱工程大學(xué)本科生畢業(yè)論文3.5.2 后輪驅(qū)動任務(wù)的軟件設(shè)計本設(shè)計中只需控制后輪的正、

48、反轉(zhuǎn),無需調(diào)速,所以后輪驅(qū)動模塊的設(shè)計要比前輪轉(zhuǎn)向模塊簡單很多,并且不建立后輪驅(qū)動任務(wù)也能實現(xiàn),因為只需要在改變小車的行進(jìn)狀態(tài)的時候改變單片機(jī)和L298N相連的I/O口電平狀態(tài)即可。而本設(shè)計中將后輪驅(qū)動模塊也設(shè)計成一個單獨的任務(wù)是考慮到以后功能擴(kuò)展的方便。以后可以通過PWM方式對后輪直流電機(jī)進(jìn)行調(diào)速,那就必須把后輪驅(qū)動模塊設(shè)計成一個單獨任務(wù)了。目前本模塊對其他模塊主要提供了以下幾個接口函數(shù)。setspeed(n),n>0時,小車前進(jìn);n<0時,小車后退;n=0時,小車停止。getspeed(),前進(jìn)時返回1;后退時返回-1;停止時返回0。imstop(),該函數(shù)實現(xiàn)反電動勢剎車功能

49、。3.6 里程檢測模塊的設(shè)計3.6.1 探頭的選型與安裝可以用這樣的思路來設(shè)計里程檢測模塊,在車軸上安裝一個圓盤,圓盤上均勻的開一些缺口,如圖3.11所示:圖3.11 里程檢測遮光圓盤的設(shè)計車輪每轉(zhuǎn)過一圈圓盤將把紅外對管遮擋4次,小車勻速行駛時檢測電路輸出占空比為50%的方波。檢測電路如圖3.7所示。25哈爾濱工程大學(xué)本科生畢業(yè)論文3.6.2 軟件消抖與硬件消抖的比較從檢測電路輸出的方波在其上升和下降沿處是不穩(wěn)定的,有抖動,統(tǒng)計里程的原理是檢測上升和下降沿的個數(shù),抖動必將引起里程統(tǒng)計的誤差,因此要考慮消抖。消抖的方法有多種,用硬件電路可以實現(xiàn)消抖功能,例如加一級施密特觸發(fā)器或加一級單穩(wěn)態(tài)觸發(fā)器

50、都可以在一定程度上消除抖動。硬件消抖后的信號可以直接接到單片機(jī)的計數(shù)器引腳,利用單片機(jī)內(nèi)部的計數(shù)器來統(tǒng)計里程,但這樣的方法硬件代價比較大,而且需要使用單片機(jī)的計數(shù)器或中斷才能實現(xiàn)。所以考慮用軟件的方法來消除抖動。軟件消抖的思路是每隔T1對原信號采樣一次,假設(shè)抖動的時間寬度為T2,高、低電平的寬度為T,則只要滿足T2<T1<(T-T2),采樣后的信號上升和下降沿的個數(shù)就是正確的。每次采樣的時候兼做沿的個數(shù)統(tǒng)計,將總數(shù)存放在靜態(tài)變量li_cheng中,再乘上一個常數(shù)即是小車行駛的里程值。軟件消抖的原理如圖3.12所示:圖3.12 軟件消抖示意圖3.6.3 里程檢測任務(wù)的軟件設(shè)計里程檢測

51、模塊被設(shè)計成一個獨立的任務(wù),由定時器0的中斷處理函數(shù)每隔32毫秒調(diào)用一次,也就是說采樣的時間間隔為32毫秒,這 26哈爾濱工程大學(xué)本科生畢業(yè)論文基本上能夠滿足T2<T1<(T-T2)的關(guān)系。該模塊對外提供了以下幾個接口函數(shù):void licheng(void):里程檢測任務(wù)函數(shù),由定時器0的中斷處理函數(shù)調(diào)用,完成采樣和上升沿、下降沿的個數(shù)統(tǒng)計;unsigned int getlicheng(void):獲取里程值函數(shù),單位為上升和下降沿的個數(shù),后輪每轉(zhuǎn)過1/8圈對應(yīng)一個上升或下降沿;unsigned int getlichenglimi(void):該函數(shù)也是獲取里程值,單位是厘米

52、;void setlicheng(unsigned int lc):設(shè)置里程值函數(shù)。由于記錄里程值的變量是unsigned int型,所以表示的里程值范圍為:0-65535(沿個數(shù)),大約是1366米,對于本設(shè)計而言,這個范圍是足夠了。3.7 超聲測距模塊的設(shè)計3.7.1 超聲測距的理論依據(jù)超聲測距的依據(jù)是超聲波在空氣中以一定的速度傳播,遇到障礙后聲波反射回來,被超聲波接收傳感器檢測到,根據(jù)發(fā)射和接收到回波之間的時間差t就可以計算出障礙的距離,計算公式是:S=·t/2。圖3.12 超聲測距原理圖3.7.2 超聲發(fā)射電路發(fā)射電路要求能給出40KHz的方波,可以由硬件電路振蕩產(chǎn)生,27哈爾濱工程大學(xué)本科生畢業(yè)論文也可以用軟件產(chǎn)生

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論