單片機(jī)課程設(shè)計(jì)-自動(dòng)循跡小車_第1頁(yè)
已閱讀1頁(yè),還剩19頁(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>  單片機(jī)原理及應(yīng)用課程設(shè)計(jì)</p><p><b>  自動(dòng)尋跡小車的設(shè)計(jì)</b></p><p>  學(xué) 院 名 稱 : 機(jī) 電 工 程 學(xué) 院 </p><p>  專 業(yè) 名 稱: 電氣工程及其自動(dòng)化 </p><p>  學(xué) 生 姓 名:

2、 </p><p>  學(xué) 生 學(xué) 號(hào): </p><p>  指 導(dǎo) 教 師: </p><p><b>  摘要</b></p><p>  本設(shè)計(jì)是一種基于單片機(jī)控制的簡(jiǎn)易自動(dòng)尋跡小車系統(tǒng),包括小車系統(tǒng)構(gòu)成軟硬件設(shè)計(jì)方法。小

3、車以AT89C52為控制核心, 用單片機(jī)產(chǎn)生PWM波,控制小車速度。利用紅外光電傳感器對(duì)路面黑色軌跡進(jìn)行檢測(cè),并將路面檢測(cè)信號(hào)反饋給單片機(jī)。單片機(jī)對(duì)采集到的信號(hào)予以分析判斷,及時(shí)控制驅(qū)動(dòng)電機(jī)以調(diào)整小車轉(zhuǎn)向,從而使小車能夠沿著黑色軌跡自動(dòng)行駛,實(shí)現(xiàn)小車自動(dòng)尋跡的目的。</p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī)AT89C51  光電傳感器  直流電機(jī)  

4、自動(dòng)循跡小車</p><p><b>  1任務(wù)要求</b></p><p><b>  總體流程:</b></p><p>  設(shè)計(jì)一個(gè)基于直流電機(jī)的自動(dòng)尋跡小車,車能夠自動(dòng)檢測(cè)地面黑色軌跡,并沿著黑色車軌跡行駛。系統(tǒng)方案方框圖如圖1所示。</p><p>  圖 1系統(tǒng)方案方框圖</p&

5、gt;<p> ?。?)控制系統(tǒng)總體設(shè)計(jì):</p><p>  自動(dòng)循跡小車控制系統(tǒng)由主控制電路模塊、穩(wěn)壓電源模塊、紅外檢測(cè)模塊、電機(jī)及驅(qū)動(dòng)模塊等部分組成,控制系統(tǒng)的結(jié)構(gòu)框圖如圖2 所示。</p><p>  圖 2控制系統(tǒng)的結(jié)構(gòu)框圖</p><p><b>  2系統(tǒng)工作原理</b></p><p&

6、gt;  這里的循跡是指小車在白色地板上循黑線行走,由于黑線和白色地板對(duì)光線的反射系數(shù)不同,可以根據(jù)接收到的反射光的強(qiáng)弱來(lái)判斷“道路”。通常采取的方法是紅外探測(cè)法。 </p><p>  紅外探測(cè)法,即利用紅外線在不同顏色的物體表面具有不同的反射性質(zhì)的特點(diǎn),在小車行駛過(guò)程中不斷地向地面發(fā)射紅外光,當(dāng)紅外光遇到白色紙質(zhì)地板時(shí)發(fā)生漫反射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,小車上的接

7、收管接收不到紅外光。單片機(jī)就是否收到反射回來(lái)的紅外光為依據(jù)來(lái)確定黑線的位置和小車的行走路線。</p><p>  2.1主控制電路模塊:用AT89C52單片機(jī)、復(fù)位電路,時(shí)鐘電路 </p><p>  整個(gè)系統(tǒng)主要由主控中心(單片機(jī))、復(fù)位電路、時(shí)鐘電路、按鍵控制電路、數(shù)碼管顯示電路及LED模仿交通信號(hào)燈電路等功能模塊組成。遇到特殊情況時(shí)可以通過(guò)按鍵電路控制實(shí)時(shí)交通實(shí)際情況,系統(tǒng)

8、框圖如圖3所示。</p><p>  圖 3主控制電路模塊圖</p><p>  2.2紅外檢測(cè)模塊:光電傳感器ST188,比較器LM324</p><p>  紅外線光電傳感器【1】(簡(jiǎn)稱光電傳感器,又稱光電開(kāi)關(guān))是通過(guò)把光強(qiáng)度的變化轉(zhuǎn)換成電信號(hào)的變化來(lái)實(shí)現(xiàn)控制的。光電開(kāi)關(guān)是傳感器大家族中的成員,它把發(fā)射端和接收端之間光的強(qiáng)弱變化轉(zhuǎn)化為電流的變化以達(dá)到探測(cè)的目的。

9、由于光電開(kāi)關(guān)輸出回路和輸入回路是電隔離的(即電緣絕),所以它可以在許多場(chǎng)合得到應(yīng)用。</p><p>  2.3電機(jī)及驅(qū)動(dòng)模塊:電機(jī)驅(qū)動(dòng)芯片L298N、兩個(gè)直流電機(jī) </p><p>  L298N是SGS公司的產(chǎn)品,內(nèi)部包含4通道邏輯驅(qū)動(dòng)電路。是一種二相和四相電機(jī)的專用驅(qū)動(dòng)器,即【2】?jī)?nèi)含二個(gè)H橋的高電壓大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn)TTL邏輯電平信號(hào),可驅(qū)動(dòng)46V、2A以下的

10、電機(jī)。</p><p>  2.4電源模塊:雙路開(kāi)關(guān)電源</p><p>  模塊電源是可以直接貼裝在印刷電路板上的電源供應(yīng)器,其特點(diǎn)是可為專用集成電路(ASIC)、數(shù)字信號(hào)處理器 (DSP)、微處理器、存儲(chǔ)器、現(xiàn)場(chǎng)可編程門(mén)陣列 (FPGA) 及其他數(shù)字或模擬負(fù)載提供供電。一般來(lái)說(shuō),這類模塊稱為負(fù)載點(diǎn) (POL) 電源供應(yīng)系統(tǒng)或使用點(diǎn)電源供

11、應(yīng)系統(tǒng) (PUPS)。由于模塊式結(jié)構(gòu)的優(yōu)點(diǎn)甚多,因此模塊電源廣泛用于交換設(shè)備、接入設(shè)備、移動(dòng)通訊、微波通訊以及光傳輸、路由器等通信領(lǐng)域和汽車電子、航空航天等。 </p><p><b>  3系統(tǒng)硬件設(shè)計(jì)</b></p><p>  3.1尋跡傳感器模塊</p><p>  ST系列反射式光電傳感器是經(jīng)常使用的傳感器。這個(gè)系

12、列的傳感器種類齊全、價(jià)格便宜、體積小、使用方便、質(zhì)量可靠、用途廣泛。 </p><p>  我們采用ST188作為紅外檢測(cè)傳感器。  </p><p>  在黑線檢測(cè)的測(cè)試中,若檢測(cè)到白色區(qū)域,發(fā)射管發(fā)射的紅外線沒(méi)有反射到接收管,測(cè)量接收管的電壓為4.8V,若檢測(cè)到黑色區(qū)域,接收管接受到發(fā)射管發(fā)射的紅外線,電阻發(fā)生變化,所分得的電壓也就隨之發(fā)生變化,測(cè)的接收管

13、的電壓為0.5V,測(cè)試基本滿足要求。 </p><p>  判斷有無(wú)黑線我們用的一塊比較器LM324,比較基準(zhǔn)電壓由30K的變阻器調(diào)節(jié),各個(gè)接收管的參數(shù)都不一致,每個(gè)傳感器的比較基準(zhǔn)電壓也不盡相同,我們?yōu)槊總€(gè)傳感器配備了一個(gè)變阻器。</p><p><b>  3.2傳感器電路</b></p><p>  通過(guò)ST188檢測(cè)黑線,輸出

14、接收到的信號(hào)給LM324 ,接收電壓與比較電壓比較后,輸出信號(hào)變?yōu)楦叩碗娖?,再輸入到單片機(jī)中,用以判定是否檢測(cè)到黑線。如4所示。</p><p>  圖 4傳感器模塊電路圖</p><p><b>  3.3傳感器安裝</b></p><p>  在小車具體的循跡行走過(guò)程中,為了能精確測(cè)定黑線位置并確定小車行走的方向,需要同時(shí)在底盤(pán)裝

15、設(shè)4個(gè)紅外探測(cè)頭,進(jìn)行兩級(jí)方向糾正控制,提高其循跡的可靠性。這4個(gè)紅外探頭的具體位置如圖5所示。圖中循跡傳感器全部在一條直線上。其中X1與Y1為第一級(jí)方向控制傳感器,X2與Y2為第二級(jí)方向控制傳感器,并且黑線同一邊的兩個(gè)傳感器之間的寬度不得大于黑線的寬度。小車前進(jìn)時(shí),始終保持(如圖3-6中所示的行走軌跡黑線)在X1和Y1這兩個(gè)第一級(jí)傳感器之間,當(dāng)小車偏離黑線時(shí),第一級(jí)傳感器就能檢測(cè)到黑線,【3】把檢測(cè)的信號(hào)送給小車的處理、控制系統(tǒng),控制

16、系統(tǒng)發(fā)出信號(hào)對(duì)小車軌跡予以糾正。若小車回到了軌道上,即4個(gè)探測(cè)器都只檢測(cè)到白紙,則小車會(huì)繼續(xù)行走;若小車由于慣性過(guò)大依舊偏離軌道,越出了第一級(jí)兩個(gè)探測(cè)器的探測(cè)范圍,這時(shí)第二級(jí)探測(cè)器動(dòng)作,再次對(duì)小車的運(yùn)動(dòng)進(jìn)行糾正,使之回到正確軌道上去。可以看出,第二級(jí)方向探測(cè)器實(shí)際是第一級(jí)的后備保護(hù),從而提高了小車循跡的可靠性。</p><p><b>  圖 5傳感器安裝圖</b></p>&

17、lt;p><b>  3.4控制器模塊</b></p><p>  采用Atmel 公司的AT89C51 單片機(jī)作為主控制器。它是一個(gè)低功耗,高性能的8 位單片機(jī),片內(nèi)含32k 空間的可反復(fù)擦寫(xiě)100,000 次Flash 只讀存儲(chǔ)器,具有4K 的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32 個(gè)I/O口,2個(gè)8位可編

18、程定時(shí)計(jì)數(shù)器,且可在線編程、調(diào)試,方便地實(shí)現(xiàn)程序的下載與整機(jī)的調(diào)試。如圖6所示。</p><p><b>  3.5電源模塊</b></p><p>  電源采用雙路開(kāi)關(guān)電源。明偉牌D-30W雙路開(kāi)關(guān)電源。輸出(5V、12V)。該開(kāi)關(guān)電源尺寸為129X98X38mm,交流輸入轉(zhuǎn)換由開(kāi)關(guān)選擇,具有過(guò)流短路保護(hù)功能,能自冷散熱。低價(jià)位、高可靠。輸入電壓范圍----85~1

19、32VAC/175~264VAC。</p><p><b>  圖 6時(shí)鐘電路</b></p><p><b>  3.6電機(jī)模塊</b></p><p>  電機(jī)采用直流減速電機(jī),直流減速電機(jī)轉(zhuǎn)動(dòng)力矩大,體積小,重量輕,裝</p><p>  配簡(jiǎn)單,使用方便?!?】由于其內(nèi)部由高速電動(dòng)機(jī)提供原始

20、動(dòng)力,帶動(dòng)變速(減速)齒輪組,可以產(chǎn)生較大扭力。 </p><p>  可選用減速比為1:74的直流電機(jī),減速后電機(jī)的轉(zhuǎn)速為100r/min。若車輪直徑為6cm,則小車的最大速度可以達(dá)到V=2πr*v=2*3.14*0.03*100/60=0.31 4m/s。能夠較好的滿足系統(tǒng)的要求。</p><p><b>  3.7驅(qū)動(dòng)模塊</b></p>

21、<p>  驅(qū)動(dòng)模塊采用專用芯片L298N 作為電機(jī)驅(qū)動(dòng)芯片,L298N 是一個(gè)具有高電壓大電流的全橋驅(qū)動(dòng)芯片,其響應(yīng)頻率高,一片L298N可以分別控制兩個(gè)直流電機(jī)。以下圖7為L(zhǎng)298N的引腳圖和輸入輸出關(guān)系表1。</p><p>  驅(qū)動(dòng)電路的設(shè)計(jì)如圖8所示:</p><p>  L298N 的5、7、10、12 四個(gè)引腳接到單片機(jī)上,

22、通過(guò)對(duì)單片機(jī)的編程就可實(shí)現(xiàn)兩個(gè)直流電機(jī)的PWM調(diào)速控制。</p><p>  圖 7 L298N外部引腳</p><p>  表格 1 L298N輸入輸出關(guān)系</p><p>  圖 8 L298N電機(jī)驅(qū)動(dòng)電路</p><p>  3.8自動(dòng)小車總體電路圖</p><p>  如圖9所示,當(dāng)光電傳感器開(kāi)始接受信號(hào),通過(guò)

23、比較器將信號(hào)傳如單片機(jī)中。小車進(jìn)入尋跡模式,即開(kāi)始不停地掃描與探測(cè)器連接的單片I/O口,一旦檢測(cè)到某個(gè)I/O口有信號(hào)變化,就執(zhí)行相應(yīng)的判斷程序,把相應(yīng)的信號(hào)發(fā)送給電動(dòng)機(jī)從而糾正小車的狀態(tài)。單片機(jī)采用T0定時(shí)計(jì)數(shù)器,通過(guò)來(lái)產(chǎn)生PWM波,控制電機(jī)轉(zhuǎn)速。</p><p><b>  圖 9總體電路圖</b></p><p><b>  4系統(tǒng)硬件設(shè)計(jì)</b&

24、gt;</p><p><b>  4.1PWM控制</b></p><p>  本系統(tǒng)采用PWM來(lái)調(diào)節(jié)直流電機(jī)的速度。【5】PWM是通過(guò)控制固定電壓的直流電源開(kāi)關(guān)頻率,從而改變負(fù)載兩端的電壓,進(jìn)而達(dá)到控制要求的一種電壓調(diào)整方法。PWM可以應(yīng)用在許多方面,如電機(jī)調(diào)速、溫度控制、壓力控制等。 </p><p>  在PWM驅(qū)動(dòng)控制的調(diào)整

25、系統(tǒng)中,按一個(gè)固定的頻率來(lái)接通和斷開(kāi)電源,并根據(jù)需要改變一個(gè)周期內(nèi)“接通”和“斷開(kāi)”時(shí)間的長(zhǎng)短。通過(guò)改變直流電機(jī)電樞上電壓的“占空比”來(lái)改變平均電壓的大小,從而控制電動(dòng)機(jī)的轉(zhuǎn)速。因此,PWM又被稱為“開(kāi)關(guān)驅(qū)動(dòng)裝置”。 </p><p>  在脈沖作用下,當(dāng)電機(jī)通電時(shí),速度增加;電機(jī)斷電時(shí),速度逐漸減少。只要按一定規(guī)律,改變通、斷電的時(shí)間,即可讓電機(jī)轉(zhuǎn)速得到控制。</p><p>

26、  4.2總體軟件流程圖</p><p>  小車進(jìn)入尋跡模式后,即開(kāi)始不停地掃描與探測(cè)器連接的單片I/O口,一旦檢測(cè)到某個(gè)I/O口有信號(hào)變化,就執(zhí)行相應(yīng)的判斷程序,把相應(yīng)的信號(hào)發(fā)送給電動(dòng)機(jī)從而糾正小車的狀態(tài)。軟件的主程序流程圖如圖10。</p><p><b>  Y</b></p><p><b>  N</b><

27、;/p><p><b>  N</b></p><p>  圖 10主程序流程圖</p><p>  4.3小車循跡流程圖</p><p>  小車進(jìn)入循跡模式后,即開(kāi)始不停地掃描與探測(cè)器連接的單片機(jī)I/O口,一旦檢測(cè)到某個(gè)I/O口有信號(hào),即進(jìn)入判斷處理程序,先確定4個(gè)探測(cè)器中的哪一個(gè)探測(cè)到了黑線,如果左面【6】第一級(jí)傳感器

28、或者左面第二級(jí)傳感器探測(cè)到黑線,即小車左半部分壓到黑線,車身向右偏出,此時(shí)應(yīng)使小車向左轉(zhuǎn);如果是右面第一級(jí)傳感器或右面第二級(jí)傳感器探測(cè)到了黑線,即車身右半部壓住黑線,小車向左偏出了軌跡,則應(yīng)使小車向右轉(zhuǎn)。在經(jīng)過(guò)了方向調(diào)整后,小車再繼續(xù)向前行走,并繼續(xù)探測(cè)黑線重復(fù)上述動(dòng)作。循跡流程圖如圖11所示。</p><p><b>  N</b></p><p><b>

29、;  Y</b></p><p><b>  圖 11循跡流程圖</b></p><p>  4.4中斷程序流程圖</p><p>  這里利用的是51單片機(jī)的T0定時(shí)計(jì)數(shù)器,從而讓單片機(jī)P0口的P0.4和P0.5引腳輸出占空比不同的方波, 然后經(jīng)驅(qū)動(dòng)芯片放大后控制直流電機(jī)。定時(shí)計(jì)數(shù)器若干時(shí)間(比如0.1ms)比如中斷一次

30、, 就使P0.4或P0.5產(chǎn)生一個(gè)高電平或低電平。中斷程序流程圖如圖12。</p><p>  Y N</p><p>  圖 12中斷程序流程圖</p><p><b>  5結(jié)論</b></p><p>  本次設(shè)計(jì)采用各個(gè)模塊分開(kāi)設(shè)

31、計(jì)的方法,大大降低了設(shè)計(jì)的難度。主要基于STC89C52的最小系統(tǒng),進(jìn)行外圍設(shè)備的擴(kuò)展。信號(hào)采集模塊進(jìn)行調(diào)試的時(shí)候,最重要的是電位器的調(diào)節(jié),通過(guò)電位器的調(diào)節(jié)來(lái)控制信號(hào)采集的靈敏度。光線的不同會(huì)帶來(lái)不同的效果,所以,對(duì)于適應(yīng)環(huán)境,找到一個(gè)合適的狀態(tài),電位器的調(diào)節(jié)就顯得尤為重要了。還有,調(diào)節(jié)電機(jī)轉(zhuǎn)速的占空比也很重要,因?yàn)椋M管電機(jī)的型號(hào)完全一樣,在使用時(shí),左右兩輪的電機(jī)還是會(huì)有差異。所以,必須經(jīng)過(guò)調(diào)試確定兩機(jī)轉(zhuǎn)速相同的占空比。如果兩機(jī)轉(zhuǎn)速不

32、同,在行駛的過(guò)程中會(huì)出現(xiàn)搖擺的狀況。這兩條是我在制作的過(guò)程中遇到的容易被忽略的問(wèn)題。</p><p><b>  6參考文獻(xiàn)</b></p><p>  【1】宋健,姜軍生,趙文亮.基于單片機(jī)的直流電動(dòng)機(jī)PWM調(diào)速系統(tǒng)[J].農(nóng)機(jī)化研究,2006,(1):102-103. </p><p>  【2】邊春元 李文濤 

33、;江杰 杜平等;C51單片機(jī)典型模塊設(shè)計(jì)與應(yīng)用;機(jī)械工業(yè)出版社;2008.4 </p><p>  【3】李華. MCS- 51 系列單片機(jī)實(shí)用接口技術(shù)[M].北京:航空航天大學(xué)出版社, 2003 </p><p>  【4】樓然苗.51 單片機(jī)設(shè)計(jì)實(shí)例[M].北京:航空航天大學(xué)出版社,2005.8</p

34、><p>  【5】王晶,翁顯耀,梁業(yè)宗 自動(dòng)尋跡小車的傳感器模塊設(shè)計(jì).武漢理工大學(xué)自動(dòng)化學(xué)院 湖北武漢</p><p>  【6】劉迎春. 傳感器原理設(shè)計(jì)與應(yīng)用[M] . 長(zhǎng)沙:國(guó)防科技大學(xué)出版社,1992. </p><p><b>  附錄一:</b></p><

35、p><b>  圖13總電路圖</b></p><p><b>  附錄二:</b></p><p><b>  圖14實(shí)物圖</b></p><p><b>  附錄三:總程序</b></p><p>  #include<reg51.h&g

36、t;</p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  unsigned char zkb1=0; //左邊電機(jī)的占空比//</p><p>  unsigned char zkb2=0; //右邊點(diǎn)機(jī)的占空比/

37、/</p><p>  unsigned char t=0; //定時(shí)器中斷計(jì)數(shù)器//</p><p>  sbit RSEN1=P0^0;</p><p>  sbit RSEN2=P0^1;</p><p>  sbit LSEN1=P0^2;</p><p>  sbit LSEN2=P0^3;<

38、;/p><p>  sbit B1=P2^0;</p><p>  sbit B2=P2^1;</p><p>  sbit B3=P2^2;</p><p>  sbit B4=P2^3;</p><p>  sbit ENA=P2^4;</p><p>  sbit ENB=P2^5;</

39、p><p>  sbit START1=P2^6;</p><p>  sbit ERROR1=P2^7;</p><p>  //**********延時(shí)函數(shù)**********//</p><p>  void delay_1ms(uint d)</p><p>  { uint i;</p><

40、;p>  while(d--)</p><p>  for(i=0;i<75;i++);</p><p><b>  }</b></p><p>  //*******初始化定時(shí)器,中斷********//</p><p>  void init()</p><p>  {TMOD=

41、0x01;</p><p>  TH0=(65536-100)/256;</p><p>  TH0=(65536-100)%256;</p><p><b>  EA=1;</b></p><p><b>  ET0=1;</b></p><p><b>  TR

42、0=1;</b></p><p><b>  }</b></p><p>  void timer0()interrupt 1</p><p>  {if(t<zkb1)</p><p><b>  B1=1;</b></p><p><b>  

43、else</b></p><p><b>  B1=0;</b></p><p>  if(t<zkb2)</p><p><b>  B2=1;</b></p><p><b>  else</b></p><p><b>

44、  B2=0;</b></p><p><b>  t++;</b></p><p>  if(t>=100)</p><p><b>  {t=0;}</b></p><p>  TH0=(65536-100)/256;</p><p>  TL0=(65

45、536-100)%256;</p><p><b>  }</b></p><p>  //*********中斷函數(shù)+脈沖調(diào)制******//</p><p>  //**********直行*******//</p><p>  void qianjin()</p><p>  { zkb1

46、=30;</p><p><b>  zkb2=30;</b></p><p><b>  }</b></p><p>  //*********左轉(zhuǎn)函數(shù)1*********//</p><p>  void turn_left1()</p><p>  { zkb1=5;

47、</p><p><b>  zkb2=50;</b></p><p><b>  }</b></p><p>  //********左轉(zhuǎn)函數(shù)2********//</p><p>  void turn_left2()</p><p>  { zkb1=5;</

48、p><p><b>  zkb2=60;</b></p><p><b>  }</b></p><p>  //*********右轉(zhuǎn)函數(shù)1*****//</p><p>  void turn_right1()</p><p>  { zkb1=50;</p>

49、<p><b>  zkb2=5;</b></p><p><b>  }</b></p><p>  //*********右轉(zhuǎn)函數(shù)2*****//</p><p>  void turn_right2()</p><p>  { zkb1=60;</p><p&

50、gt;<b>  zkb2=5;</b></p><p><b>  }</b></p><p>  //*******出錯(cuò)*******//</p><p>  void turn_error()</p><p><b>  {</b></p><p>

51、;<b>  EA=0;</b></p><p><b>  ET0=0;</b></p><p><b>  TR0=0;</b></p><p><b>  zkb1=0;</b></p><p><b>  zkb2=0;</b>

52、;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  START1=1;</b></p><p><b>  ERROR1=0;</b></p><p><

53、;b>  B1=0;</b></p><p><b>  B2=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //*********循跡函數(shù)********//</p><

54、;p>  void xunji()</p><p>  { uchar flag;</p><p>  if((RSEN1==1)&&(RSEN2==1)&&(LSEN1==1)&&(LSEN2=1))</p><p>  {flag=0;}//*******直行*******//</p><

55、p>  else if((RSEN1==0)&&(RSEN2==1)&&(LSEN1==1)&&(LSEN2=1))</p><p>  {flag=1;}//*****左偏1,右轉(zhuǎn)1***//</p><p>  else if((RSEN1==0)&&(RSEN2==0)&&(LSEN1==1)&

56、amp;&(LSEN2=1))</p><p>  {flag=2;}//*****左偏2,右轉(zhuǎn)2***//</p><p>  else if((RSEN1==1)&&(RSEN2==1)&&(LSEN1==0)&&(LSEN2=1))</p><p>  {flag=3;}//*****右偏2,左轉(zhuǎn)2**

57、*//</p><p>  else if((RSEN1==1)&&(RSEN2==1)&&(LSEN1==0)&&(LSEN2=0))</p><p>  {flag=4;}//*****右偏2,左轉(zhuǎn)2***//</p><p><b>  else</b></p><p&

58、gt;<b>  {flag=5;}</b></p><p>  switch(flag)</p><p>  { case 0:qianjin();</p><p><b>  break;</b></p><p>  case 1:turn_right1();</p><p&

59、gt;<b>  break;</b></p><p>  case 2:turn_right2();</p><p><b>  break;</b></p><p>  case 3:turn_left1();</p><p><b>  break;</b></p&

60、gt;<p>  case 4:turn_left2();</p><p><b>  break;</b></p><p>  case 5:turn_error();</p><p><b>  break;</b></p><p>  default:break;</p&g

61、t;<p><b>  }</b></p><p><b>  }</b></p><p>  //********主程序********//</p><p>  void main()</p><p><b>  {init();</b></p>

62、<p><b>  zkb1=30;</b></p><p><b>  zkb2=30;</b></p><p><b>  ERROR1=1;</b></p><p><b>  START1=0;</b></p><p><b>

63、  while(1)</b></p><p>  { B1=1;//***給電機(jī)加電啟動(dòng)*****//</p><p><b>  B2=1;</b></p><p><b>  B3=1;</b></p><p><b>  B4=1;</b></p>

64、<p><b>  ENA=1;</b></p><p><b>  ENB=1;</b></p><p><b>  while(1)</b></p><p>  { xunji();//******循跡********8// </p><p><b>

溫馨提示

  • 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)論