基于單片機(jī)的智能小車的設(shè)計(jì)——畢業(yè)論文
《基于單片機(jī)的智能小車的設(shè)計(jì)——畢業(yè)論文》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)的智能小車的設(shè)計(jì)——畢業(yè)論文(54頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、基于單片機(jī)的智能小車的設(shè)計(jì)基于單片機(jī)的智能小車的設(shè)計(jì)摘要近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入。同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè),日新月益更新。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件來使用。單片機(jī)是把主要計(jì)算機(jī)功能部件都集成在一塊芯片上的微型計(jì)算機(jī)。它是一種集計(jì)數(shù)和多中接口于一體的微控制器。而51單片機(jī)是單片機(jī)中最為典型和最有代表性的一種。本設(shè)計(jì)主要應(yīng)用AT89S51作為控制核心,與顯示器、驅(qū)動(dòng)電路等相結(jié)合的系統(tǒng)?;趩纹瑱C(jī)設(shè)計(jì)。利用單片機(jī)AT89S51作為報(bào)警裝置的控制器,能充分發(fā)揮AT89S51的數(shù)據(jù)處理和實(shí)時(shí)控制功能。使系統(tǒng)工作處于最佳狀態(tài),提高系統(tǒng)的
2、靈敏度。當(dāng)產(chǎn)生信號(hào)驅(qū)動(dòng)小車前進(jìn)時(shí),通過尋跡模塊里的紅外對(duì)管是否尋到黑線產(chǎn)生的電平信號(hào)再返回到單片機(jī),單片機(jī)根據(jù)程序設(shè)計(jì)要求做出相應(yīng)的判斷送給電機(jī)驅(qū)動(dòng)模塊.控制小車讓其在黑線上實(shí)現(xiàn)前進(jìn)后退以及轉(zhuǎn)向。關(guān)鍵詞:?jiǎn)纹瑱C(jī) 尋跡 報(bào)警 紅外 電機(jī)驅(qū)動(dòng)48AbstractWith the rapid development of science and technology in recent years, SCM applications are continually deepening. Traditional control test drive at the same time, the rapi
3、dly growing update. In real-time detection and control of the microcomputer application system, the microcontroller is often used as a core component. SCM is the main feature integrated computer chip in a micro-computer. It is a set of multi-counting and the interface in one of the micro-controller.
4、 The 51 single-chip microcontroller is the most typical and most representative one.The design of the main application AT89S51 as the control, and display driver integrated circuits and other systems. Based on single chip design. MCU AT89S51 using the controller as an alarm device that can give full
5、 play to AT89S51 of data processing and real-time control functions. Make the system work in the best condition, improve the system sensitivity.When two signal driven forward by car tracing module,the infrares on whether to produce level signals through the black,retutn again according to requiremen
6、t of design procedure of judgment for motor driver module,it controls the car turning back forward of running on the black line.Keywords: SCM,Tracing, Alarm device, Level signals, Motor driver module目錄摘要IAbstractII目錄III前言11 設(shè)計(jì)任務(wù)及方案21.1 設(shè)計(jì)任務(wù)及要求21.2 設(shè)計(jì)方案論證21.2.1 控制器選擇21.2.2 電機(jī)驅(qū)動(dòng)芯片的選擇31.2.3 路況檢測(cè)模塊42 系統(tǒng)
7、硬件電路與實(shí)現(xiàn)52.1 紅外遙控及解碼模塊52.1.1 二進(jìn)制信號(hào)的調(diào)制62.1.2 二進(jìn)制信號(hào)的解調(diào)72.1.3 二進(jìn)制信號(hào)的解碼72.2 單片機(jī)紅外接收硬件電路的實(shí)現(xiàn)82.3 電機(jī)驅(qū)動(dòng)模塊92.4路況檢測(cè)模塊132.4.1 尋跡模塊142.4.2 智能防撞報(bào)警模塊163系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)173.1整體程序的構(gòu)架183.2紅外遙控解碼的實(shí)現(xiàn)193.3電機(jī)驅(qū)動(dòng)213.4 小車尋跡213.5 小車防撞報(bào)警224 小車系統(tǒng)原理圖245 系統(tǒng)調(diào)試265.1 遙控發(fā)送接收調(diào)試265.2 電機(jī)驅(qū)動(dòng)調(diào)試275.3 尋黑線和防撞的調(diào)試27總結(jié)27致謝28參考文獻(xiàn)29附錄30元件清單30系統(tǒng)程序31前言當(dāng)今世
8、界,傳感器技術(shù)和自動(dòng)控制技術(shù)正在飛速發(fā)展,機(jī)械、電氣和電子信息已經(jīng)不再明顯分家,自動(dòng)控制在工業(yè)領(lǐng)域中的地位已經(jīng)越來越重要,“智能”這個(gè)詞也已經(jīng)成為了熱門詞匯。現(xiàn)在國(guó)外的自動(dòng)控制和傳感器技術(shù)已經(jīng)達(dá)到了很高的水平,特別是日本,比如日本本田制作的機(jī)器人,其仿人雙足行走已經(jīng)做得十分逼真,而且具有一定的學(xué)習(xí)能力,還據(jù)說其智商已達(dá)到6歲兒童的水平。作為機(jī)械行業(yè)的代表產(chǎn)品汽車,其與電子信息產(chǎn)業(yè)的融合速度也顯著提高,呈現(xiàn)出兩個(gè)明顯的特點(diǎn):一是電子裝置占汽車整車(特別是轎車)的價(jià)值量比例逐步提高,汽車將由以機(jī)械產(chǎn)品為主向高級(jí)的機(jī)電一體化方向發(fā)展,汽車電子產(chǎn)業(yè)也很有可能成為依托整車制造業(yè)和用車提升配置而快速成為新
9、的增長(zhǎng)點(diǎn);二是汽車開始向電子化、多媒體化和智能化方向發(fā)展,使其不僅作為一種代步工具、同時(shí)能具有交通、娛樂、辦公和通訊等多種功能。無容置疑,電子信息化人才的培養(yǎng)不論是在國(guó)外還是國(guó)內(nèi),都開始重視起來,主要表現(xiàn)在大學(xué)生的各種大型的創(chuàng)新比賽,比如:亞洲廣播電視聯(lián)盟亞太地區(qū)機(jī)器人大賽(ABU ROBCON)、全國(guó)大學(xué)生“飛思卡爾”杯智能汽車競(jìng)賽等眾多重要競(jìng)賽都能很好的培養(yǎng)大學(xué)生對(duì)于機(jī)電一體化的興趣與強(qiáng)化機(jī)電一體化的相關(guān)知識(shí)。但很現(xiàn)實(shí)的狀況是,國(guó)內(nèi)不論是在機(jī)械還是電氣領(lǐng)域,與國(guó)外的差距還是很明顯的,所以作為電子信息化學(xué)生,必須加倍努力,為逐步趕上國(guó)外先進(jìn)水平并超過之而努力。為了適應(yīng)智能控制的發(fā)展在汽車智能
10、化方向的發(fā)展要求,提出簡(jiǎn)易智能小車的構(gòu)想,目的在于:通過獨(dú)立設(shè)計(jì)并制作一輛具有簡(jiǎn)單智能化的簡(jiǎn)易小車,獲得項(xiàng)目整體設(shè)計(jì)的能力,并掌握多通道多樣化傳感器綜合控制的方法。所以立“智能循跡小車”一題作為嘗試。此項(xiàng)設(shè)計(jì)是在以楊老師提供的小車為基礎(chǔ)上,采用AT89C52單片機(jī)作為控制核心,實(shí)現(xiàn)能夠自主識(shí)別黑色引導(dǎo)線并根據(jù)黑線走向?qū)崿F(xiàn)快速穩(wěn)定的尋線行駛。1 設(shè)計(jì)任務(wù)及方案1.1 設(shè)計(jì)任務(wù)及要求此次的設(shè)計(jì)任務(wù)是設(shè)計(jì)一款基于單片機(jī)的智能小車的設(shè)計(jì)。設(shè)計(jì)要求如下:具有單片機(jī)核心控制模塊;具有紅外遙控解碼模塊;具有電機(jī)驅(qū)動(dòng)模塊;具有路況檢測(cè)模塊;具有光感模塊;具有聲控模塊;具有七段數(shù)碼管顯示模塊;具有報(bào)警模塊;1.
11、2 設(shè)計(jì)方案論證1.2.1 控制器選擇方案一:采用MSP430單片機(jī)MSP430是德州儀器 (TI)的一種RISC混合信號(hào)處理器,MSP430產(chǎn)品系列為電池供電測(cè)量應(yīng)用提供了最終解決方案。作為混合信號(hào)和數(shù)字技術(shù)的領(lǐng)導(dǎo)者,TI創(chuàng)新生產(chǎn)的MSP430,使系統(tǒng)設(shè)計(jì)人員能夠在保持獨(dú)一無二的低功率的同時(shí)同步連接至模擬信號(hào)、傳感器和數(shù)字組件。MSP430優(yōu)點(diǎn):0.1uA RAM 保持;0.8uA實(shí)時(shí)時(shí)鐘模式;250uA/MIPS有效;高性能模擬器件;是精確測(cè)量的理想選擇;先進(jìn)的16位RISC CPU使得新的應(yīng)用僅需一段代碼即可實(shí)現(xiàn);系統(tǒng)內(nèi)可編程閃存允許更改代碼、更新字段和記錄數(shù)據(jù)。但是,MSP430每個(gè)管
12、腳的驅(qū)動(dòng)能力較弱,有利于低功耗,但是在電源方面,處理器使用的功耗相對(duì)輸入幾乎沒有多大影響。MSP430使用的主頻相對(duì)較低,處理速度較慢,在本系統(tǒng)中要使用電機(jī)驅(qū)動(dòng)控制,對(duì)管腳輸出都有較高的要求。所以在本系統(tǒng)中使用MSP430不利于系統(tǒng)的控制。方案二:采用AT89S51單片機(jī)1AT89S51是一種低功耗、高性能CMOS8位微控制器,具8K在系統(tǒng)可編程 Flash存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程 Flash,使得 AT89S51為眾
13、多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S51具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié) RAM,32位I/O口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S51可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM 內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。方案選擇:綜上所述:通過以上方案比較,在本系統(tǒng)中控制器選用第二個(gè)方案,使用AT89S51作控制器。因
14、為該單片機(jī)成本低廉,操作起來方便,因此本設(shè)計(jì)控制器選用此方案。1.2.2 電機(jī)驅(qū)動(dòng)芯片的選擇方案一:采用L298N L298N為SGS-THOMSON Microelectronics 所出產(chǎn)的雙全橋步進(jìn)電機(jī)專用驅(qū)動(dòng)芯片( Dual Full-Bridge Driver ) ,內(nèi)部包含4信道邏輯驅(qū)動(dòng)電路,是一種二相CEs838電子-技術(shù)資料-電子元件-電路圖-技術(shù)應(yīng)用網(wǎng)站-基本知識(shí)-原理-維修-作用-參數(shù)-電子元器件符號(hào)-各種圖紙和四相步進(jìn)電機(jī)的專用驅(qū)動(dòng)器,可同時(shí)驅(qū)動(dòng)2個(gè)二相或1個(gè)四相步進(jìn)電機(jī),內(nèi)含二個(gè)H-Bridge 的高電壓、大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn)CEs838電子-技術(shù)資料-電子元
15、件-電路圖-技術(shù)應(yīng)用網(wǎng)站-基本知識(shí)-原理-維修-作用-參數(shù)-電子元器件符號(hào)-各種圖紙TTL邏輯準(zhǔn)位信號(hào),可驅(qū)動(dòng)46V、2A以下的步進(jìn)電機(jī),且可以直接透過電源來調(diào)節(jié)輸出電壓;此芯片可直接由單片機(jī)的IO端口來提供模擬時(shí)序信號(hào),CEs838電子-技術(shù)資料-電子元件-電路圖-技術(shù)應(yīng)用網(wǎng)站-基本知識(shí)-原理-維修-作用-參數(shù)-電子元器件符號(hào)-各種圖紙但在智能小車電路中單片機(jī)IO 端口的使用匱乏。該設(shè)計(jì)也不用于速度控制,相對(duì)來講LG9110成本較低。方案二:采用LG9110LG9110是為控制和驅(qū)動(dòng)電機(jī)設(shè)計(jì)的兩通道推挽式功率放大專用集成電路器件,將分立電路集成在單片IC之中,使外圍器件成本降低,整機(jī)可靠性提
16、高。該芯片有兩個(gè)TTL/CMOS兼容電平的輸入,具有良好的抗干擾性;兩個(gè)輸出端能直接驅(qū)動(dòng)電機(jī)的正反轉(zhuǎn)運(yùn)動(dòng),它具有較大的電流驅(qū)動(dòng)能力,每通道能通過750-800mA的持續(xù)電流,峰值電流能力可達(dá)1.5-2.0A;同時(shí)它具有較低的輸出飽和壓降;內(nèi)置的鉗位二極管能釋放感性負(fù)載的反向沖擊電流,使它在驅(qū)動(dòng)繼電器、直流電機(jī)、步進(jìn)電機(jī)或開關(guān)功率管的使用安全可靠。LG9110被廣泛應(yīng)用于玩具汽車電機(jī)驅(qū)動(dòng)、步進(jìn)電機(jī)驅(qū)動(dòng)、和開關(guān)功率管等電路上。方案三:使用分立原件搭建電機(jī)驅(qū)動(dòng)電路 使用分立原件搭建電機(jī)驅(qū)動(dòng)電路造價(jià)低廉,在大規(guī)模生產(chǎn)中使用廣泛。但分立原件H橋電路工作性能不夠穩(wěn)定,較易出現(xiàn)硬件上的故障,故我們放棄了這一
17、方案。綜上所述:通過以上方案比較,在本系統(tǒng)中電機(jī)驅(qū)動(dòng)芯片選用第二個(gè)方案,使用LG9110作為驅(qū)動(dòng)電路。因?yàn)樵揕G9110驅(qū)動(dòng)能力強(qiáng),成本低廉,操作起來方便,因此本設(shè)計(jì)控制器選用此方案。1.2.3 路況檢測(cè)模塊采用紅外發(fā)送接收探頭來檢測(cè)實(shí)時(shí)路況信息,并傳回單片機(jī)處理。紅外發(fā)射探頭發(fā)射紅外信號(hào),遇地面或障礙物反射回紅外接收探頭,紅外接收探頭接收到從地面或障礙物反射回的紅外信號(hào)之后給單片給一個(gè)電平信號(hào),來判斷整體路況信息。2 系統(tǒng)硬件電路與實(shí)現(xiàn)本設(shè)計(jì)采用了AT89C52單片機(jī)作為主控芯片來處理各個(gè)模塊的運(yùn)營(yíng),系統(tǒng)硬件總框圖如圖2.1AT89C52遙控模塊路面檢測(cè)模塊電機(jī)驅(qū)動(dòng)模塊報(bào)警模塊顯示模塊 圖2
18、.1 系統(tǒng)硬件總體框圖2.1 紅外遙控及解碼模塊紅外遙控是一種無線、非接觸控制技術(shù),具有抗干擾能力強(qiáng),信息傳輸可靠,功耗低,低成本,易實(shí)現(xiàn)等顯著優(yōu)點(diǎn),被諸多電子設(shè)備特別是家用電器廣泛采用,并越來越多的應(yīng)用到計(jì)算機(jī)系統(tǒng)中。紅外遙控由發(fā)送和接收兩個(gè)部分組成。發(fā)送部分由主芯片將待發(fā)的二進(jìn)制信號(hào)編碼調(diào)制為一系列的脈沖串信號(hào),通過紅外發(fā)射管發(fā)射紅外信號(hào)紅外信號(hào)接收端普遍采用價(jià)格便宜,性能可靠的一體化紅外接收頭(如HS0038,它接收紅外頻率為38KHz,周期為26us)接收紅外信號(hào),它同時(shí)對(duì)信號(hào)進(jìn)行放大、檢波、整形,得到TTL電平的編碼信號(hào),再送給單片機(jī),經(jīng)單片機(jī)解碼并執(zhí)行,去控制相關(guān)對(duì)象。如圖2.1.
19、1所示。遙控器一體化紅外接收頭單片機(jī)發(fā)送接收解調(diào)解碼圖2.1.1 紅外遙控解碼框圖 2.1.1 二進(jìn)制信號(hào)的調(diào)制二進(jìn)制信號(hào)的調(diào)制由遙控器的主芯片來完成,它把編碼后的二進(jìn)制信號(hào)調(diào)制成頻率為 38KHz的間斷脈沖串,相當(dāng)于用二進(jìn)制信號(hào)的編碼乘以頻率為38KHz 的脈沖信號(hào)得到的間斷脈沖串,即是調(diào)制后用于紅外發(fā)射二極管發(fā)送的信號(hào)。如圖2.1.2所示,A是二進(jìn)制信號(hào)的編碼波形,B 是頻率為38KHz(周期為26us) 的連續(xù)脈沖串,C是經(jīng)調(diào)制后的間斷脈沖串(相當(dāng)于C=AB),用于紅外發(fā)射二極管發(fā)送的波形。圖2.1.2中,待發(fā)送的二進(jìn)制數(shù)據(jù)為 101。如圖 2.1.2所示。 圖2.1.2 二進(jìn)制信號(hào)的調(diào)
20、制2.1.2 二進(jìn)制信號(hào)的解調(diào)二進(jìn)制信號(hào)的解調(diào)由一體化紅外接收頭HS0038來完成,它把收到的紅外信號(hào)經(jīng)內(nèi)部處理并解調(diào)復(fù)原,輸出圖2.1.3中波形E(正好是對(duì)圖2.1.2中波形A 的取反),HS0038的解調(diào)可理解為:在輸入有脈沖串時(shí),輸出端輸出低電平,否則輸出高電平。一體化紅外接收頭HS0038的 1腳GND接電源地,2腳VCC接+5V,3腳OUT為數(shù)據(jù)輸出(TTL電平,反相輸出),可直接與單片機(jī)相聯(lián)。 圖2.1.3 HS0038解調(diào)出的波形2.1.3 二進(jìn)制信號(hào)的解碼二進(jìn)制信號(hào)的解碼由接收單片機(jī)來完成,它把紅外接收頭送來的二進(jìn)制編碼波形通過解碼,還原出發(fā)送端發(fā)送的數(shù)據(jù)。如圖2.1.3,把波
21、形E解碼還原成數(shù)據(jù)信息101。圖2.1.4為紅外信號(hào)的編碼格式傳輸開始8位數(shù)據(jù)傳輸結(jié)束20個(gè)脈沖高位在前,低位在后10個(gè)脈沖 圖2.1.4 紅外信號(hào)的編碼格式2.2 單片機(jī)紅外接收硬件電路的實(shí)現(xiàn)圖2.2.1中,一體化紅外接收頭IR的圓形面為紅外接收面,它與SE303紅外發(fā)射管的有效收發(fā)直射距離為35m。 圖2.2.1 紅外接收電路3腳接電源,2腳接地,一腳接單片機(jī)的P3.3(外部中斷0),當(dāng)有紅外信號(hào)輸入時(shí),1腳解調(diào)之后將數(shù)據(jù)信息傳送給單片機(jī)引起單片機(jī)中斷,從而對(duì)紅外信號(hào)進(jìn)行解碼。2.3 電機(jī)驅(qū)動(dòng)模塊在幾乎所有的遙控車大都采用了直流電機(jī)來控制小車的行為,直流電機(jī)有兩個(gè)控制端,通過改變輸入電平的
22、不同來改變電機(jī)的運(yùn)轉(zhuǎn)。圖2.3.1為電機(jī)驅(qū)動(dòng)模塊的硬件電路圖。圖2.3.1電機(jī)驅(qū)動(dòng)模塊 在圖2.3.1中,單片機(jī)通過控制P0.0P0.3引腳電平的高低來控制直流電機(jī)M1、M2的正反轉(zhuǎn)。當(dāng)P0.0P0.3輸入為1010時(shí),兩電機(jī)均處于正轉(zhuǎn)狀態(tài),此時(shí)小車表現(xiàn)為整體前進(jìn);當(dāng)P0.0P0.30輸入為0101時(shí),兩電機(jī)均處于反轉(zhuǎn)模式,小車整體表現(xiàn)為后退。當(dāng)P0.0P0.3輸入為1001以及0110時(shí),一電機(jī)正轉(zhuǎn),另一電機(jī)反轉(zhuǎn),從而實(shí)現(xiàn)了左右轉(zhuǎn)向功能。很顯然,僅僅只靠單片機(jī)來驅(qū)動(dòng)小車的行為是不現(xiàn)實(shí)的,因?yàn)閱纹瑱C(jī)自身管腳輸出的高電平的電壓是很微弱的,這種電壓直接控制電機(jī)會(huì)使得電機(jī)馬力不足,沒能夠帶動(dòng)整個(gè)小車
23、運(yùn)行,所以在這種情況之下,最適合的就是運(yùn)用電機(jī)驅(qū)動(dòng)芯片來完成小車的驅(qū)動(dòng),這里我們采用了一款價(jià)格低廉的電機(jī)驅(qū)動(dòng)芯片L9110來完成它的使命,實(shí)際上L298N這款芯片能夠更好的驅(qū)動(dòng)電機(jī),并能實(shí)現(xiàn)電機(jī)調(diào)速的功能,但由于小車自身重量因數(shù)和電壓?jiǎn)栴}我們就采用L9110了。下面給出關(guān)于L9110的相關(guān)數(shù)據(jù)手冊(cè)。 圖2.3.2 LG9110的實(shí)物圖特點(diǎn): 低靜態(tài)工作電流; 寬電源電壓范圍 2.5V-12V; 每通道具有800mA連續(xù)電流輸出能力; 較低的飽和壓降; TTL/CMOS輸出電平兼容,可直接連接CPU; 輸出內(nèi)置鉗位二極管,適用于感性負(fù)載; 控制和驅(qū)動(dòng)集成于單片IC之中; 具備管腳高壓保護(hù)功能;
24、圖2.3.3 LG9110管腳圖管腳定義如表2.3.1表2.3.1 LG9110的管腳定義序號(hào)符號(hào)功能1OAA路輸出管腳2VCC電源電壓3VCC電源電壓4OBB路輸出管腳5GND地線6IAA路輸入管腳7IBB路輸入管腳8GND地線L9110電機(jī)驅(qū)動(dòng)芯片有八個(gè)管腳,其中兩個(gè)電源管腳和兩個(gè)接地管腳,另外有兩個(gè)輸入(IA/IB)、和兩個(gè)輸出管腳(OA/OB),兩個(gè)輸出管腳接,電機(jī)的兩極,而兩輸入管腳和單片機(jī)連接,從而控制電機(jī)的狀態(tài)。圖2.2.4為L(zhǎng)9110的硬件連接圖。圖2.3.4 LG9110硬件連接圖2.4路況檢測(cè)模塊采用了紅外發(fā)射和接收探頭來探測(cè)路況信息。紅外發(fā)射管發(fā)射紅外信號(hào),經(jīng)路面反射傳回
25、給紅外接收管進(jìn)行判斷處理。由于黑線和白紙對(duì)光線的反射系數(shù)不同,可根據(jù)接收到的反射光的強(qiáng)弱來判斷“道路”情況和前方是否存在障礙物。筆者在該模塊中利用了簡(jiǎn)單、應(yīng)用也比較普遍的檢測(cè)方法紅外探測(cè)法。 圖2.4.1為路況檢測(cè)模塊的硬件設(shè)計(jì)原理圖。 圖2.4.1 路況檢測(cè)模塊硬件連接圖上電之后紅外發(fā)射管V1、V6、V3導(dǎo)通,向地面以及前方實(shí)時(shí)發(fā)射紅外信號(hào),當(dāng)遇到白色墻或路面時(shí),紅外信號(hào)經(jīng)白色路面有較強(qiáng)發(fā)射,這時(shí)紅外接收探頭V2、V5、V4剛好接收到紅外信號(hào),使得這些探頭導(dǎo)通,將低電平送給P3.5、P3.6、P3.7讓單片機(jī)進(jìn)行判斷處理。路面檢測(cè)模塊分為小車尋黑線的檢測(cè)和前方是否有障礙物的檢測(cè)兩部分。2.4
26、.1 尋跡模塊所謂尋跡,就是我們建立一條畫畫有彎曲黑線的白紙跑道,該智 利用紅外線在不同顏色的物理表面具有不同的反射性質(zhì)的特點(diǎn)。在小車行駛過程中不斷地向地面發(fā)射紅外光,當(dāng)紅外光遇到白色地面時(shí)發(fā)生漫發(fā)射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,則小車上的接收管接收不到信號(hào)。 黑線要有一定寬度,應(yīng)該是大于兩紅外線發(fā)射探頭的距離,如圖2.4.2所示。 圖2.4.2 小車前方探頭實(shí)物這里的紅外線發(fā)射探頭為前端向下伸出的透明的探頭,所以黑色跑道寬度應(yīng)該至少大于兩透明探頭的距離,才能保證小車正常運(yùn)行。小車放在黑色跑道上時(shí),打開電源時(shí),小車前端向下伸出的紅外線發(fā)射探頭發(fā)射紅外線,如果小車
27、在黑線上,小車發(fā)出的紅外線就遇到黑色時(shí),不產(chǎn)生反射。當(dāng)左邊稍微跑出黑色跑道時(shí),發(fā)出的紅外線就會(huì)遇到白色而產(chǎn)生反射,這時(shí)旁邊的黑色接收探頭接收到反射信號(hào),從而使接收探頭導(dǎo)通。原理圖如下圖所示,當(dāng)D2接收到紅外信號(hào)時(shí),會(huì)使P3.5產(chǎn)生一個(gè)低電平,進(jìn)而送給單片機(jī)進(jìn)行處理,單片機(jī)接收到來至左側(cè)的接收頭給的低電平時(shí),給予小車右轉(zhuǎn)操作;同理,當(dāng)小車右邊跑出黑線時(shí),右側(cè)探頭識(shí)別之后會(huì)給小車低電平,提示小車應(yīng)該進(jìn)行左轉(zhuǎn)操作。這樣就完成了整個(gè)小車的尋跡功能。2.4.2 智能防撞報(bào)警模塊智能防撞報(bào)警是現(xiàn)代智能小車的一個(gè)非常有研究?jī)r(jià)值的課題,十分有現(xiàn)實(shí)意義。智能小車能夠自識(shí)別前方是否有障礙物。如果有則自動(dòng)調(diào)節(jié)小車的
28、運(yùn)動(dòng)軌跡來成功避免撞到障礙物所帶來的損失,同時(shí)在遇到障礙物時(shí),能夠提示報(bào)警,以提示主人應(yīng)注意安全。將小車放置在空曠的路面上,小車的前端兩探頭感應(yīng)前面是否有障礙物,與此同時(shí),朝下的四個(gè)探頭也會(huì)同時(shí)接收來自地面路況的信息,當(dāng)小車運(yùn)行到懸崖邊上時(shí),小車上面主控芯片單片機(jī)就會(huì)接收到此時(shí)的路況信息,進(jìn)而去改變小車的運(yùn)行路徑。同時(shí)發(fā)出報(bào)警信號(hào)。報(bào)警模塊硬件圖如圖2.4.3所示。 圖2.4.3 防撞探頭實(shí)物 當(dāng)前面有障礙物時(shí),單片機(jī)分析之后送給P0.6一個(gè)高電平信號(hào),使得三極管V1導(dǎo)通,從而引起SB1蜂鳴器導(dǎo)通,發(fā)出報(bào)警信號(hào)。當(dāng)前方無障礙物時(shí),另一個(gè)紅外接收探頭則接收不到由發(fā)射頭發(fā)射出來的紅外信號(hào),當(dāng)前方遇
29、到障礙物時(shí),發(fā)射頭發(fā)出去的紅外信號(hào)被前方障礙物反射回來,此時(shí)剛好被接受探頭接收,探頭接收到信號(hào)時(shí),將會(huì)使其中一個(gè)管腳變?yōu)榈碗娖?,再傳送給單片機(jī);同理小車在判斷前方是否有懸崖時(shí)也一樣,當(dāng)前方?jīng)]有出現(xiàn)懸崖時(shí),小車朝下的探頭發(fā)出去的紅外信號(hào)就會(huì)經(jīng)路面反射,而且只要小車在路面上行駛,那么紅外信號(hào)就會(huì)一直被反射進(jìn)而被接收,也就會(huì)使得單片機(jī)與紅外接收探頭其中一腳相連的管腳一直至0,當(dāng)前面遇到懸崖時(shí),紅外信號(hào)發(fā)射出去之后,由于紅外接收頭的接收距離有限,就會(huì)檢測(cè)不到有傳回的紅外信號(hào),此時(shí)就會(huì)給單片機(jī)一個(gè)高電平,單片機(jī)識(shí)別之后便會(huì)做出相應(yīng)的修正動(dòng)作,并給蜂鳴器一個(gè)信號(hào),使得蜂鳴器出現(xiàn)報(bào)警提示。3系統(tǒng)軟件設(shè)計(jì)與實(shí)
30、現(xiàn)遙控器輸入單片機(jī)解碼電機(jī)控制(前進(jìn)后退左右轉(zhuǎn))黑線尋跡防撞報(bào)警在系統(tǒng)軟件設(shè)計(jì)時(shí),我們將所有的模塊程序嵌入到遙控器中,這種嵌入式主要是為了便于控制,且不占CPU,因?yàn)檫b控模塊、尋跡模塊、以及避障模塊等都同時(shí)用到了實(shí)時(shí)檢測(cè)掃描,這樣不僅占用CPU,而且多個(gè)程序一塊運(yùn)行還會(huì)產(chǎn)生沖突。各個(gè)模塊銜接如圖3.1所示。 圖3.1 程序模塊連接遙控器發(fā)送紅外信號(hào)時(shí),開啟單片機(jī)外部中斷0,主程序進(jìn)入中斷函數(shù),進(jìn)行解碼。解碼處理完成之后,將遙控信息反饋給主程序,主程序?qū)Ρ冗b控器輸入值之后進(jìn)入相應(yīng)模塊執(zhí)行相關(guān)操作,各模塊最終會(huì)處理是由電機(jī)驅(qū)動(dòng)來完成的,所以在圖3.1中最終箭頭是指向電機(jī)控制模塊的。3.1整體程序的
31、構(gòu)架程序框圖如圖3.1.1所示圖3.1.1 整體程序框圖3.2紅外遙控解碼的實(shí)現(xiàn)整個(gè)控制程序都嵌入到了遙控模塊這一單元里邊,所以紅外遙控的解碼是貫穿整個(gè)設(shè)計(jì)的主線,起到了整個(gè)系統(tǒng)入口的作用。當(dāng)遙控器上按下按鍵時(shí),1腳收到遙控器發(fā)送的紅外脈沖信號(hào)并解碼出脈寬波形,同時(shí)使單片機(jī)產(chǎn)生中斷,并開啟定時(shí)器、脈沖個(gè)數(shù)計(jì)數(shù)。記錄出每來一個(gè)脈沖的時(shí)間和脈沖總個(gè)數(shù),等到一幀的數(shù)據(jù)發(fā)送完成之后,單片機(jī)結(jié)束計(jì)數(shù),并關(guān)閉定時(shí)器。之后進(jìn)入判斷階段,首先判斷這一幀數(shù)據(jù)中的脈沖個(gè)數(shù),如果脈沖個(gè)數(shù)大于31個(gè)則將數(shù)據(jù)丟棄,如果剛好則判斷接收的脈沖是0還是1,接收完之后將這些數(shù)據(jù)保存起來,再來比對(duì)數(shù)據(jù)的對(duì)錯(cuò),首先比對(duì)前導(dǎo)碼是否正
32、確,也就是看一下當(dāng)前遙控器是不是與小車匹配的遙控器,如果都正確之后再來將碼值存起來。主程序用一個(gè)swich函數(shù)來對(duì)相應(yīng)碼值進(jìn)行對(duì)應(yīng)函數(shù)的調(diào)用就可以了,比如按下了上鍵,則調(diào)用前進(jìn)函數(shù)來完成小車前進(jìn)動(dòng)作。如圖3.2所示初始化中斷口是否有遙控信號(hào)輸入是否有抖動(dòng)進(jìn)入解碼計(jì)數(shù)脈沖個(gè)數(shù)同時(shí)計(jì)數(shù)單個(gè)脈沖寬度脈沖個(gè)數(shù)是否為32個(gè)數(shù)據(jù)解碼并判斷數(shù)據(jù)碼和數(shù)據(jù)反碼取非之后是否相等執(zhí)行相關(guān)模塊否是是否是否是否 圖3.2 解碼程序框圖3.3電機(jī)驅(qū)動(dòng)從宏觀上講,電機(jī)驅(qū)動(dòng)在小車運(yùn)行中占據(jù)主導(dǎo),也是小車接收到命令之后的最終輸出,任何一個(gè)模塊所執(zhí)行命令的外在表現(xiàn)。電機(jī)驅(qū)動(dòng)包括驅(qū)動(dòng)電機(jī)前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)以及暫停功能,這些功能
33、不僅僅只是遙控器按下上下左右之后才執(zhí)行,而是每一個(gè)模塊都會(huì)有執(zhí)行電機(jī)驅(qū)動(dòng)模塊的操作,所以在設(shè)計(jì)程序時(shí),最優(yōu)設(shè)計(jì)應(yīng)該是將這些前進(jìn)、后退、左右轉(zhuǎn)向單獨(dú)編譯成一個(gè)函數(shù)塊,每一個(gè)子模塊的運(yùn)行就只需調(diào)用這些函數(shù)就可完成。這樣做就節(jié)省了很大的程序空間。舉個(gè)例子,在編寫前進(jìn)函數(shù)時(shí),為了滿足小車前進(jìn)功能,只需將P0.0P0.3賦值1010就可完成,其他左轉(zhuǎn)右轉(zhuǎn)只是改變相應(yīng)P0.0P0.3的碼值則可實(shí)現(xiàn)。當(dāng)然為了使得更準(zhǔn)確,可以添加一下延時(shí)函數(shù)在內(nèi)部,以避免操作太快給電機(jī)帶了的損壞。3.4 小車尋跡在主程序中只要檢測(cè)到遙控器上按下了尋跡功能鍵之后,主程序直接調(diào)用尋跡函數(shù),來實(shí)現(xiàn)尋跡功能。這里介紹一下尋跡模塊編寫
34、的一些思路。要實(shí)現(xiàn)尋跡就必須清楚尋跡原理,在前面的技術(shù)介紹中,已經(jīng)介紹了他的原理。這里不做過多說明,以免冗余。尋跡函數(shù)的編寫是一個(gè)實(shí)時(shí)掃描單片機(jī)管腳P3.5/P3.6,P3.5管腳代表左方探頭傳回的信息,P3.6代表右邊探頭傳回的信號(hào)。當(dāng)左方探頭跑出黑線時(shí),會(huì)給P3.5至0,單片機(jī)檢測(cè)到P3.5為0時(shí),便調(diào)用右轉(zhuǎn)向函數(shù),來完成右側(cè)轉(zhuǎn)功能,當(dāng)右方探頭跑出黑線時(shí),同樣會(huì)使P3.6至0,這時(shí)再調(diào)用左轉(zhuǎn)向函數(shù)來調(diào)節(jié)小車的位置。圖3.4為小車尋跡模塊的程序流程圖初始化探頭跑出黑線了嗎哪邊探頭有輸入前進(jìn)后退右轉(zhuǎn)左轉(zhuǎn)是否左左右均有右 圖3.4 尋跡程序流程圖3.5 小車防撞報(bào)警 主人命令開啟防撞功能時(shí),小車
35、主程序調(diào)用防撞報(bào)警函數(shù),在防撞報(bào)警函數(shù)打開時(shí)進(jìn)入實(shí)時(shí)檢測(cè)P3.7腳,當(dāng)前方遇到懸崖或障礙物時(shí),小車內(nèi)部防撞函數(shù)調(diào)用電機(jī)驅(qū)動(dòng)函數(shù)來調(diào)節(jié)小車行經(jīng)來避免掉入懸崖或撞擊障礙物,并觸發(fā)報(bào)警信號(hào)引起報(bào)警。圖3.5為防撞報(bào)警模塊的程序流程圖。初始化前方有懸崖或障礙物嗎前進(jìn)后退并報(bào)警左轉(zhuǎn)并報(bào)警是否 圖3.5 防撞報(bào)警程序流程圖 4 小車系統(tǒng)原理圖硬件電路總設(shè)計(jì)圖如圖4.1所示 圖4.1 硬件電路原理圖最終主板PCB圖前板PCB5 系統(tǒng)調(diào)試把原理圖畫、最終PCB畫好之后再根據(jù)實(shí)驗(yàn)室現(xiàn)有的實(shí)驗(yàn)條件進(jìn)行制版,并一并把所有元器件焊接上,在焊接時(shí)應(yīng)注意以下幾點(diǎn): 、電解電容容有正負(fù)極之分,長(zhǎng)正短負(fù); 、二極管有正負(fù)極之
36、分,長(zhǎng)正短負(fù); 、話筒有正負(fù)之分,負(fù)極與外殼相連; 、蜂鳴器有正負(fù)之分,長(zhǎng)正短負(fù); 、三極管按照電路板封裝焊接; 、集成電路即芯片,安裝時(shí)要注意缺口對(duì)應(yīng)(缺口對(duì)應(yīng)位置和封裝對(duì)應(yīng)位置要一致)。(缺口在芯片或芯片底座的一端); 、數(shù)碼管焊接時(shí)注意數(shù)碼管上的小數(shù)點(diǎn)要與電路板封裝上的小數(shù)點(diǎn)對(duì)應(yīng);、每個(gè)電機(jī)都需要焊接瓷片電容104。焊接完之后,還需對(duì)小車各個(gè)模塊進(jìn)行調(diào)試,以確保硬件的完好。5.1 遙控發(fā)送接收調(diào)試由于遙控器是由廠家直接提供的,為了確保遙控器能夠正常發(fā)送紅外信號(hào),必須提前進(jìn)行測(cè)試,但遙控器是集成的,而紅外線發(fā)射燈又是透明的,當(dāng)發(fā)送的時(shí)候人眼觀察不到任何現(xiàn)象,那么怎樣知道遙控器是否正常呢?這
37、里教你一小招,將遙控器裝上電池,然后將你自己的手機(jī)的照相功能打開,將手機(jī)上的攝像頭對(duì)準(zhǔn)你遙控器前面的發(fā)射燈,然后按下遙控器上的任何一個(gè)按鍵,觀察手機(jī)照相功能里面的遙控器發(fā)射燈是否點(diǎn)亮,如果燈已被點(diǎn)亮,則說明遙控器能夠正常發(fā)射紅外信號(hào),否則遙控不能發(fā)射紅外信號(hào)。這一招很簡(jiǎn)單,在家里也能用,平常家里面的遙控電視機(jī)遙控器不靈了就可試著采用這一方法,進(jìn)而初步判斷是不是遙控器已壞或者遙控器上面電池沒電了。在上面已經(jīng)介紹了遙控器的測(cè)試,現(xiàn)在再來談?wù)劶t外接收頭的調(diào)試,如果遙控器能夠正常工作,下一步就應(yīng)該測(cè)試一下接收頭是否正常接收了。小車上電之后將接收頭的1號(hào)管腳接上示波器,然后一直按下遙控器上面的按鍵,觀察
38、示波器上面波形,如果能夠發(fā)現(xiàn)有重復(fù)的高低脈沖,但看不清具體的脈沖寬度,則說明紅外線能夠正常接收紅外信號(hào)。如果接上之后沒什么反應(yīng),也未見其波形,初步推斷是接收頭有問題,或許是元器件已壞,也可能是焊接時(shí)有虛焊或短路,這時(shí)應(yīng)該再次檢查電路連接。以上步驟都完成且正常之后可燒寫遙控小程序以此來檢查所用程序是否能夠正常解碼。5.2 電機(jī)驅(qū)動(dòng)調(diào)試最直接的方法來判斷電機(jī)是否完好就是那一節(jié)干電池做電源,將兩極分別接在直流電機(jī)的兩極,來觀察能否實(shí)現(xiàn)正轉(zhuǎn)反轉(zhuǎn),當(dāng)然在接之前最好在直流電機(jī)兩引腳之間接上一個(gè)104的瓷片電容,這樣做是防止由于電流過大將電機(jī)燒壞。完成之后再燒電機(jī)驅(qū)動(dòng)程序,程序里邊在執(zhí)行完正轉(zhuǎn)之后設(shè)置一個(gè)延
39、遲時(shí)間,燒寫完程序之后再運(yùn)行小車,觀察小車前進(jìn)后退敏不敏捷,左右轉(zhuǎn)向弧度大小怎樣,如果不滿足自己要求,則可改變延遲時(shí)間的長(zhǎng)短來實(shí)現(xiàn),不斷進(jìn)行調(diào)試。已達(dá)到最佳效果。5.3 尋黑線和防撞的調(diào)試首先檢查前板探頭是否正常,紅外信號(hào)發(fā)射探頭可繼續(xù)采用檢測(cè)器正常與否中使用的方法,黑色接收探頭正常與否可參考原理圖,將小車置于白色跑道上,正前方放一障礙物,注意障礙物表面一定不能為黑色,然后用萬用表測(cè)量一下P3.5、P3.6、P3.7管腳電壓。觀察是否為0電壓,如果為0,則正常工作,如果不為0,則可能電路存在問題,需檢查電路完整性。然后再次燒寫尋跡和防撞報(bào)警程序,并自己建立邊緣為白色,跑道為黑色的實(shí)驗(yàn)臺(tái),觀察小
40、車在自動(dòng)尋跡功能上是否能正常實(shí)現(xiàn),并觀察小車在彎曲跑道上的轉(zhuǎn)向弧度是否合理,如果不合理則應(yīng)調(diào)節(jié)內(nèi)部延時(shí)間。以跑道要求。總結(jié)畢業(yè)設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn)、提出、分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。這次的畢業(yè)設(shè)計(jì)通過搜集相關(guān)資料和撰寫論文對(duì)我來說是一次非常難得的鍛煉機(jī)會(huì),可以說已經(jīng)囊括了大學(xué)期間大部分的知識(shí),從選題到定稿,從理論到實(shí)踐可以把所學(xué)的專業(yè)知識(shí)充分運(yùn)用起來解決具體的問題,不僅可以鞏固以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí),能夠使所學(xué)知識(shí)融會(huì)貫通。對(duì)于我來說這不僅僅是一次畢業(yè)設(shè)計(jì),更重要的是在過程中提高了我學(xué)
41、習(xí)的能力、解決問題的能力和實(shí)際工作的能力,這些技能和方法都會(huì)對(duì)將來的工作有很大的幫助?;仡櫰鸫舜萎厴I(yè)設(shè)計(jì),至今我仍感慨頗多,可以說得是苦多于甜,但是可以學(xué)到很多很多的東西。在設(shè)計(jì)和寫論文的過程中遇到很多問題,可以說得是困難重重,發(fā)現(xiàn)了自己還有很多的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,這次課程設(shè)計(jì)也讓我對(duì)以前所學(xué)過的知識(shí)有了溫故知新。參考文獻(xiàn)1 宋建國(guó):AVR單片機(jī)原理及應(yīng)用A,北京航空航天大學(xué)出版社,1998.2,P35-P45 2 黃繼昌:傳感器工作原理及應(yīng)用實(shí)例A,北京人民郵電出版社,1998.6,P32-P353 雷輝:基于AT89C2051的智能防撞報(bào)警器設(shè)計(jì),
42、電氣時(shí)代J,2005.1,P44-P464吳愛萍: 基于AT89S51的多功能紅外遙控器設(shè)計(jì)期刊論文-儀表技術(shù)與傳感器 2008(8)5洪剛:一種簡(jiǎn)易紅外遙控鍵盤的設(shè)計(jì)期刊論文-重慶科技學(xué)院學(xué)報(bào)(自然科學(xué)版) 2008(4)6王建躍:紅外遙控器編碼方法期刊論文-工礦自動(dòng)化 2005(z1)附錄元件清單位號(hào)名稱位號(hào)名稱M1電機(jī)1接線座SIUILED數(shù)碼管M2電機(jī)2接線座IR1紅外接收頭X1前端探測(cè)板接線座RX110K排阻9腳DC15KZ111.0592晶振R1220IC1STC89C52RCR2150IC2MAX232CPER31MIC3L9110集成電路R447KIC4L9110集成電路R54
43、.7KC110uF/16VR6560C2104R7560C3104R8560C4104R9560C510uF/16VR10560C610uF/16VR11560C730PFR12560C830PFR13560C9104R14220C1010uF/16VR1510KC1110uF/16VR16560C1210uF/16VR17560C1310uF/16VR18560D1D8紅色發(fā)光二極管R19560D9綠色發(fā)光二極管R20560S1按鍵開關(guān)R21560S2按鍵開關(guān)R22560S3按鍵開關(guān)R23560COM1DB9針串口R24560D1D2LED(前板用)R2510KV1發(fā)射頭(前板用)R2656
44、0V2接收頭(前板用)RL1光敏電阻V3發(fā)射頭(前板用)SB1蜂鳴器V4接收頭(前板用)B1話筒V5發(fā)射頭(前板用)R1220(前板用)V6接收頭(前板用)R2560(前板用)R3220(前板用)R415K(前板用)R515K(前板用)R6220(前板用)R7560(前板用)R815K(前板用)9012紅外遙控發(fā)射器V1V28550J1J2跳線帽系統(tǒng)程序#include /包含51單片機(jī)相關(guān)的頭文件#define uint unsigned int /重定義無符號(hào)整數(shù)類型#define uchar unsigned char /重定義無符號(hào)字符類型uchar code LedShowData=
45、0 x03,0 x9F,0 x25,0 x0D,0 x99, /定義數(shù)碼管顯示數(shù)據(jù) 0 x49,0 x41,0 x1F,0 x01,0 x19;/0,1,2,3,4,5,6,7,8,9uchar code RecvData=0 x07,0 x0A,0 x1B,0 x1F,0 x0C,0 x0D,0 x0E,0 x00,0 x0F,0 x19;uchar IRCOM7;static unsigned int LedFlash; /定義閃動(dòng)頻率計(jì)數(shù)變量unsigned char RunFlag=0; /定義運(yùn)行標(biāo)志位bit EnableLight=0; /定義指示燈使能位/*完成基本數(shù)據(jù)變量定義*
46、/sbit S1State=P10; /定義S1狀態(tài)標(biāo)志位sbit S2State=P11; /定義S2狀態(tài)標(biāo)志位sbit B1State=P12; /定義B1狀態(tài)標(biāo)志位sbit IRState=P13; /定義IR狀態(tài)標(biāo)志位sbit RunStopState=P14; /定義運(yùn)行停止標(biāo)志位sbit FontIRState=P15; /定義FontIR狀態(tài)標(biāo)志位sbit LeftIRState=P16; /定義LeftIR狀態(tài)標(biāo)志位sbit RightIRState=P17; /定義RightIRState狀態(tài)標(biāo)志位/*完成狀態(tài)指示燈定義*/sbit S1=P32; /定義S1按鍵端口sbit
47、 S2=P34; /定義S2按鍵端口/*完成按鍵端口的定義*/ sbit LeftLed=P20; /定義前方左側(cè)指示燈端口sbit RightLed=P07; /定義前方右側(cè)指示燈端口/*完成前方指示燈端口定義*/sbit LeftIR=P35; /定義前方左側(cè)紅外探頭sbit RightIR=P36; /定義前主右側(cè)紅外探頭sbit FontIR=P37; /定義正前方紅外探頭/*完成紅外探頭端口定義*/sbit M1A=P00; /定義電機(jī)1正向端口sbit M1B=P01; /定義電機(jī)1反向端口sbit M2A=P02; /定義電機(jī)2正向端口sbit M2B=P03; /定義電機(jī)2反向
48、端口/*完成電機(jī)端口定義*/sbit B1=P04; /定義話筒傳感器端口sbit RL1=P05; /定義光敏電阻端口sbit SB1=P06; /定義蜂鳴端口/*完成話筒,光敏電阻,蜂鳴器.端口定義*/sbit IRIN=P33; /定義紅外接收端口/*完成紅外接收端口的定義*/#define ShowPort P2 /定義數(shù)碼管顯示端口extern void ControlCar(uchar CarType); /聲明小車控制子程序void delay(unsigned char x) /0.14mS延時(shí)程序 unsigned char i; /定義臨時(shí)變量 while(x-) /延時(shí)時(shí)
49、間循環(huán) for (i = 0; i13; i+) /14mS延時(shí) void Delay() /定義延時(shí)子程序 uint DelayTime=30000; /定義延時(shí)時(shí)間變量 while(DelayTime-); /開始進(jìn)行延時(shí)循環(huán) return; /子程序返回void ControlCar(uchar CarType) /定義小車控制子程序 M1A=0; /將電機(jī)1正向電平置低 M1B=0; /將電機(jī)1反向電平置低 M2A=0; /將電機(jī)2正向電平置低 M2B=0; /將電機(jī)2反向電平置低 LeftLed=1; /關(guān)閉前方左側(cè)指示燈 RightLed=1; /關(guān)閉前方右側(cè)指示燈 Delay()
50、; /將此狀態(tài)延時(shí)一段時(shí)間 switch(CarType) /判斷小車控制指令類型 case 1: /前進(jìn) /判斷是否是前進(jìn) M1A=1; /將電機(jī)1正向端口置高 M2A=1; /將電機(jī)2正向端口置高 ShowPort=LedShowData1; /數(shù)碼管顯示前進(jìn)狀態(tài) break; /退出判斷 case 2: /后退 /判斷是否是后退 M1B=1; /將電機(jī)1反向端口置高 M2B=1; /將電機(jī)2反向端口置高 ShowPort=LedShowData2; /數(shù)碼管顯示后退狀態(tài) RightLed=0; /將前方右側(cè)指示燈置低(亮) LeftLed=0; /將前方左側(cè)指示燈置低(亮) break; /退出判斷 case 3: /左轉(zhuǎn) /判斷是否是左轉(zhuǎn) M1B=1; /將電機(jī)1反向端口置高 M2A=1; /將電機(jī)2正向端口置高 ShowPort=LedShowData3; /數(shù)碼管顯示左轉(zhuǎn)狀態(tài) LeftLed=0; /將前方左側(cè)指示燈置低(亮) break; /退出判斷 case 4: /右轉(zhuǎn) /判斷是否是右轉(zhuǎn) M1A=1; /將電機(jī)1正向端口置高 M2B=1;
- 溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第8章WORD長(zhǎng)文檔編排
- (北師大)五年級(jí)數(shù)學(xué)課件上冊(cè)商的近似數(shù)
- 翻譯理論與實(shí)踐-基礎(chǔ)知識(shí)回顧
- 大酒店?duì)I銷計(jì)劃
- 診斷學(xué):腹部觸診【優(yōu)質(zhì)PPT】
- 飛機(jī)牽引注意事項(xiàng)
- 白酒營(yíng)銷及漢武御運(yùn)作策略
- 教學(xué)講義:網(wǎng)路品牌法則
- 應(yīng)用統(tǒng)計(jì)學(xué)導(dǎo)言[研]
- (精品)分式方程及其解法 (2)
- 普通股成本方法一
- 流體力學(xué):泵與風(fēng)機(jī)PPT課件
- 線性代數(shù)課件黃六
- 創(chuàng)業(yè)計(jì)劃模板
- 原發(fā)性支氣管肺癌