單片機課程設(shè)計-智能小車_第1頁
單片機課程設(shè)計-智能小車_第2頁
單片機課程設(shè)計-智能小車_第3頁
單片機課程設(shè)計-智能小車_第4頁
單片機課程設(shè)計-智能小車_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機課程設(shè)計能小車學(xué)院:電子工程學(xué)院指導(dǎo)教師:制作人:制作時間:2010/713目錄TOC\o"1-5"\h\z摘要:3一、設(shè)計任務(wù)概述31.1設(shè)計任務(wù)概述33\o"CurrentDocument"二、系統(tǒng)方案論證與選擇A66677778TOC\o"1-5"\h\z\o"CurrentDocument"三、硬件系統(tǒng)的設(shè)計與功能實現(xiàn)889電源電路原理與設(shè)計1010\o"CurrentDocument"四、軟件設(shè)計的實現(xiàn)與說明101011\o"CurrentDocument"五、系統(tǒng)程序12驅(qū)動電機程序12紅外接收程序172125循跡小車黑線程序2830\o"CurrentDocument"六、結(jié)論32\o"CurrentDocument"七、結(jié)束語32\o"CurrentDocument"八、參考文獻:33摘要智能車輛是當今車輛工程領(lǐng)域研究的前沿,它體現(xiàn)了車輛工程、人工智能、自動控制、計算機等多個學(xué)科領(lǐng)域理論技術(shù)的交叉和綜合,是未來汽車發(fā)展的趨勢。本小組設(shè)計制作的一款智能小車,本文介紹一款紅外線遙控小車,以STEC89C52單片機為核心控制器,用L283驅(qū)動直流電機工作,控制小車的運行。本款小車具有紅外線遙控手動駕駛、自動駕駛、尋跡前進等功能。本系統(tǒng)采用模塊化設(shè)計,軟件用C語言編寫。本作品以四個直流減速電機為驅(qū)動,通過各類傳感器件來采集信息,送入主控單元STC89C52單片機,處理數(shù)據(jù)后完成相應(yīng)的操作,以實現(xiàn)相應(yīng)的功能。直流減速電機采用電機專用驅(qū)動芯片L293進行驅(qū)動,其中采紅外接收發(fā)送模,來實現(xiàn)避障、循跡;關(guān)鍵詞:小車底盤、無線遙控、STC89C52、L293、HD74HCO4P一、設(shè)計任務(wù)和要求以STEC89C52單片機為核心,制作一款紅外遙控小車,小車具有自動駕駛,手動駕駛和循跡前進等功能。自動駕駛時,前進過程中可以避障。手動駕駛時,遙控控制小車前進、后退、左轉(zhuǎn)、右轉(zhuǎn)等操作。尋跡前進時小車還可以按照預(yù)先設(shè)計好的軌跡前進。1.1設(shè)計任務(wù)概述設(shè)計制作一個智能小車,該小車能按照要求自動前進、后退、左轉(zhuǎn)、右轉(zhuǎn)。能通過預(yù)設(shè)好的黑色路線自動循跡。1、實現(xiàn)前進、后退、左轉(zhuǎn)、右轉(zhuǎn).2、前進過程中遇到障礙物能自動停止,從而進行人為操作(圖一)3、循跡電路是用以實現(xiàn)小車沿著場地的黑色弧形引導(dǎo)軌跡BC進行前進,并校正的,且小車不能偏離該軌跡。(圖三)墻壁小車OO(圖一)路徑黑線的識別的準確程度決定智能車能否完成快速、穩(wěn)定的尋線。識別裝置由高發(fā)射功率紅外光電二極管和高靈敏度光電晶體管組成,以非接觸檢測方式檢測距離可調(diào)整達4?20mm。為了精確測定智能車的相對位置,將3對ST178并排安放在車底盤下部的前端,其分布垂直于智能車行走的方向。當車行走時,保持3個發(fā)光管發(fā)光,當某一個光電對管的下方為黑色軌跡時,相應(yīng)的接收管輸出為高電平,而下方為白色路面的接收管輸出為低電平。再經(jīng)數(shù)據(jù)處理后,控制系統(tǒng)就可以分析出當前車行走的位置,從而達到調(diào)整智能車運行狀態(tài)的目的。例如,假設(shè)路面黑線的寬度為三組紅外線對管的寬度,當黑線在車體中間時,7個輸入引腳為28H(0011100);當車體左或右偏時,接收到的數(shù)據(jù)會改變,即“1”會相應(yīng)的左移或右移,如0001110(右偏)、0111000(左偏),偏移幅度不同,“1”的移動位數(shù)便不同(圖二)二、系統(tǒng)方案論證與選擇

根據(jù)題目中的設(shè)計要求,本系統(tǒng)主要由微控制器模塊、電源模塊、避障模塊、循跡傳感器模塊、直流電機及其驅(qū)動模塊等構(gòu)成。本系統(tǒng)的方框圖如圖1所示:避障模塊遙控模塊電機驅(qū)動模塊?微控制模塊JL避障模塊遙控模塊電機驅(qū)動模塊?微控制模塊電源模埃系統(tǒng)總框圖為較好的實現(xiàn)各模塊的功能,我們分別設(shè)計了幾種方案并分別進行了論證。方案1:購買玩具電動車。購買的玩具電動車具有組裝完整的車架車輪、電機及其驅(qū)動電路。玩具電動車的電機多為玩具直流電機,力矩小,空載轉(zhuǎn)速快,負載性能差,不易調(diào)速。而且這種電動車一般都價格不菲。因此我們放棄了此方案。方案2:自己制作電動車。經(jīng)過反復(fù)考慮論證,我們制定了四兩輪分別驅(qū)動,即四個輪分別用四個轉(zhuǎn)速和力矩基本完全相同的直流電機進行驅(qū)動。這樣,當兩個直流電機轉(zhuǎn)向相反同時轉(zhuǎn)速相同時就可以實現(xiàn)電動車的原地旋轉(zhuǎn),由此可以輕松的實現(xiàn)小車坐標不變的90度和180度的轉(zhuǎn)彎。方案3:通過淘寶網(wǎng)上訂購小車車體,因為實驗室的材料限制,所以我們選擇此方案

小車實物方案一:采用凌陽公司的16位單片機,它是16位控制器,具有體積小、驅(qū)動能力強、可靠性高、功耗低、結(jié)構(gòu)簡單、具有語音處理、運算速度快等優(yōu)點,但考慮到我們小組對這個方案采用的微處理器并不熟悉,使用起來并不是很方便,這對于硬件電路的設(shè)計和軟件編程增加了難度。我們決定不再使用此方案,考慮其他方案。方案二:采用STC89C52單片機作為主控制器。STC89C52是一個超低功耗,和標準51系列單片機相比較具有運算速度快,抗干擾能力強,支持ISP在線編程,片內(nèi)含8k空間的可反復(fù)擦寫1000次的Flash只讀存儲器,具有256bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個I/O口,2個16位可編程定時計數(shù)器。其指令系統(tǒng)和傳統(tǒng)的8051系列單片機指令系統(tǒng)兼容,降低了系統(tǒng)軟件設(shè)計的難度,電路設(shè)計簡單、價格低廉,在后來的實驗中我們發(fā)現(xiàn),STC89C52精確度和運算速度也都完全符合我們系統(tǒng)的要求。綜合以上方案我們選擇比較普通的更為熟悉的方案二使用STC89C52單片機為我們整個系統(tǒng)的控制核心。由于本系統(tǒng)需要給救援小車系統(tǒng)供電,我們考慮如下幾種方案:方案一:采用7.2V可充電動力電池組。動力電池組具有較強的電流驅(qū)動能力及穩(wěn)定的電壓輸出性能,經(jīng)測試在用此種供電方式下,單片機和傳感器工作穩(wěn)定,直流電機工作良好,且電池體積較小、可以充電、能夠重復(fù)利用等,能夠滿足系統(tǒng)的要求。方案二:采用為直流電機供電,將兩個6V電壓分別給單片機系統(tǒng)和其它芯片供電。由于小車耗電量大,故選擇容易更換的電池組綜上考慮,我們選擇了方案二來完成智能小車系統(tǒng)供電的任務(wù)。方案一:采用直流減速電機。直流減速電機轉(zhuǎn)動力矩大,體積小,重量輕,裝配簡單,使用方便,小車電機內(nèi)部裝有減速齒輪組,所以并不需要考慮調(diào)速功能,很方便的就可以實現(xiàn)通過單片機對直流減速電機前進、后退、停止等操作,方案二:采用步進電機作為該系統(tǒng)的驅(qū)動電機,由于其轉(zhuǎn)動的角度可以精確定位,可以實現(xiàn)小車前進距離和位置的精確定位。雖然采用步進電機有諸多優(yōu)點,但步進電機的輸出力矩較低,隨轉(zhuǎn)速的升高而下降,且在較高的轉(zhuǎn)速時會急劇下降,其轉(zhuǎn)速較低時不適于小車等對速度有一定要求的系統(tǒng)。經(jīng)綜合比較分析我們決定放棄此方案。綜合以上考慮我們選擇方案一的直流減速電機作為整個救援小車的驅(qū)動電機。方案一:采用分立組件組成的平衡式驅(qū)動電路,這種電路可以由單片機直接對其進行操作,但由于分立組件占用的空間比較大,還要配上兩個繼電器,考慮到小車的空間問題,此方案不夠理想,我們決定放棄此方案。方案二:因為小車電機內(nèi)部裝有減速齒輪組,考慮不需調(diào)速功能,采用市面易購的電機驅(qū)動芯片L293控制減速電機,該芯片是利用TTL電平進行控制,通過改變芯片控制端的輸入電平,即可以對電機進行正轉(zhuǎn)、反轉(zhuǎn)和停止操作,亦能滿足直流減速電機的要求,用該芯片作為電機驅(qū)動具有的操作方便、穩(wěn)定性好等優(yōu)點。綜合以上分析與論證我們選擇方案二的驅(qū)動芯片L293D作為整個救援小車系統(tǒng)的電機驅(qū)動電路。方案一:用超聲波傳感器進行避障。超聲波傳感器的原理是:超聲波由壓電陶瓷超聲波傳感器發(fā)出后,遇到障礙物便反射回來,再被超聲波傳感器接收。超聲波傳感器在避障的設(shè)計中被廣泛應(yīng)用。但是超聲波傳感器需要40KHz的方波信號來工作,因為超聲波傳感器對工作頻率要求較高,偏差在1%內(nèi),所以用模擬電路來做方波發(fā)生器比較難以實現(xiàn)。因此我們考慮其它的方案。方案二:用漫反射式光電開關(guān)進行避障。光電開關(guān)的工作原理是根據(jù)光線發(fā)射頭發(fā)出的光束,被物體反射,其接收電路據(jù)此做出判斷反應(yīng),物體對紅外光由同步回路選通而檢測物體的有無。當有光線反射回來時,輸出低電平。當沒有光線反射回來時,輸出高電平??紤]到本系統(tǒng)只需要檢測障礙物,沒有十分復(fù)雜的環(huán)境。為了使用方便,便于操作和調(diào)試,我們最終選擇了方案二。光電開關(guān)的實物如下圖:方案三:通過紅外接收發(fā)送來實現(xiàn),它測量距離近,但反應(yīng)靈敏、準確。相比光電傳感器而言,其體積較小,價格低,安裝較容易.方案一:用光敏電阻組成光敏探測器。光敏電阻的阻值可以跟隨周圍環(huán)境光線的變化而變化。當光線照射到白線上面時,光線發(fā)射強烈,光線照射到黑線上面時,光線發(fā)射較弱。因此光敏電阻在白色軌跡上方和黑色軌跡上方時,阻值會發(fā)生明顯的變化。將阻值的變化值經(jīng)過比較器就可以輸出高低電平。單片機據(jù)此來判斷小車是否偏離軌道,并根據(jù)反饋來不同的電平信號,發(fā)出相應(yīng)的控制操作命令來校驗小車的位置。來完成小車的循跡任務(wù)。但是這種方案的缺點是受環(huán)境中光線的影響很大,不能夠穩(wěn)定的工作。因此我們考慮其它更加穩(wěn)定的方案。方案二:用HD74HCO4P紅外接收發(fā)送模塊來為系統(tǒng)循跡。HD74HCO4P芯片構(gòu)成的是集成電路,因此具有體積小,結(jié)構(gòu)集成緊湊,靈敏度高,容易調(diào)整。。經(jīng)測試方案二不論是在黑暗或者是強光照射下,小車系統(tǒng)均可以很穩(wěn)定的工作,對環(huán)境的適應(yīng)能力較強。因此我們選擇方案二2.8智能救援小車最終方案經(jīng)過反復(fù)的探討和論證我們最終確定智能救援小車的如下最終方案:車體采用購買的整體車體采用STC89C52單片機作為整個電路的控制核心。使用八節(jié)電池為系統(tǒng)提供基準電源。采用直流減速電機作為小車系統(tǒng)的驅(qū)動電機。使用電機專用驅(qū)動芯片L293作為直流減速電機的驅(qū)動芯片。紅外接收發(fā)送模塊器組成小車的避障、循跡系統(tǒng)。三、硬件系統(tǒng)的設(shè)計與功能實現(xiàn)小車主線路板制作

微控制器電路是整個智能救援小車系統(tǒng)的核心控制部分,它負責(zé)對各路傳感信號的采集、處理、分析及對各部分硬件電路進行調(diào)整。本設(shè)計制作的智能救援小車系統(tǒng)以STC89C52單片機最小系統(tǒng)電路為整個系統(tǒng)的控制電路,通過各種傳感器電路,采集各種傳感器信息,以發(fā)出各種控制信號命令,來完成相應(yīng)的操作,單片機控制電路原理圖如所示:SWJ滲巷餐單片機控制電路原理圖電源電路原理與設(shè)計本設(shè)計中采用的電機專用驅(qū)動芯片L293D。L293D是歐洲著名的SGS公司的產(chǎn)品,為單塊集成電路、高電壓、高電流、四通道驅(qū)動。設(shè)計用來接收DTL或者TTL邏輯電平,驅(qū)動感性負載(比如繼電器,直流電機),和開關(guān)電源晶體管。內(nèi)部包含4通道邏輯驅(qū)動電路。其額定工作電流為1A,最大可達1.5A,Vss電壓最小4.5V,最大可達36V。ENA(B)nilQN3)IK2(IN4)電機運行情況11a正轉(zhuǎn)1a1反轉(zhuǎn)0KK停止輸入引腳和輸出引腳的邏輯關(guān)系L293d可直接的對電機進行控制,無須隔離電路。通過單片機的I/O輸入改變芯片控制端的電平,即可以對電機進行正反轉(zhuǎn),停止的操作(表1是其使能端、輸入引腳和輸出引腳的邏輯關(guān)系。),操作非常方便,亦能滿足直流減速電機的大電流要求。調(diào)試時在依照上表,用程序輸入對應(yīng)的碼值,即可以實現(xiàn)對應(yīng)的操作。其驅(qū)動電路原理圖如下所示:U7BinD[C2JVCC_EW11EJT1VCCINPUT1IWPUT4OUTPUT1OUTPUT4GNDGNDG1WG皿OUTPUTSOUTPUTSINPUT2IWPUT3VSEN21.5':211041.[NB4[IT:EN1LE>TJIN21[N41I_LLOUTL3*OUT44HC1-!l74T■]r4"il41:3il1';1J1~lft.1-.jUIJI51;2jHlLrHU.*卜JOUT2呂11OUT.■ET61EEEr\—MHyr_]IN:J71(][N3L_J_.L_L89MOI'ElL--_741474T4C*4■iVI471。'割LWJJFiL2!德磷喊兒J1四、軟件設(shè)計的實現(xiàn)與說明我們所設(shè)計的軟件的主程序流程圖如下圖所示:

購束五、系統(tǒng)程序include<reg51.h>#definesen_portP1#defineLEDP0sbitEN1=P2A2;sbitIN1=P2A3;sbitIN2=P2A4;sbitEN2=P2A5;sbitIN3=P2A6;sbitIN4=P2A7;sbitbeed=P2A0;sbitstart_botton=P1A6;//thesecondtoucthbottonsbitstop_botton=P1A7;//thefristtoucthbottonunsignedcharpattern=0;//延時子程序voiddelay(unsignedlongn)//延時子程序unsignedinti,j,k;for(i=n;i>0;i--)for(j=10;j>0;j--)for(k=50;k>0;k--);}unsignedcharsensor_inp(){unsignedcharsensor;sensor=sen_port;sensor&=0x07;//LED=sensor|0xf8;returnsensor;}/*motorcontrolprogramvoidfaward()/*IN1=1;IN2=0;IN3=1;IN4=0;EN1=1;EN2=1;}voidturn_left()

IN1=1;IN2=0;IN3=0;IN4=0;EN1=1;EN2=1;}voidturn_right(){IN1=0;IN2=0;IN3=1;IN4=0;EN1=1;EN2=1;}voidstop(){EN1=0;EN2=0;}//beedison/***************************beedcontrolprogram******************************///beedisonbeed=0;}//voidbeed_off(){//beed=1;}/*******************************start&stop*********************************/voidturn_onoff(){if(start_botton==0)pattern=1;if(stop_botton==0)pattern=0;}/********************************check_line***********************************/voidcheck_line(){if(sensor_inp()==0x03){LED=0xf0;pattern=21;if(sensor_inp()==0x06){LED=0x0f;pattern=31;}}/********************************main*****************************************/voidmain(void){LED=0x55;delay(150);LED=0xAA;delay(150);LED=0xff;while(1){turn_onoff();switch(pattern){case0://waitingforthestartbottonstop();LED=0x1f;delay(30);LED=0xf8;delay(30);break;case1://thetimetostartstop();LED=0x7f;beed_on();delay(80);beed_off();delay(60);LED=0x0f;beed_on();delay(80);beed_off();delay(60);LED=0x00;beed_on();delay(120);beed_off();delay(40);pattern=11;break;case11://flowingtheblacklinecheck_line();switch(sensor_inp()){case0x02:faward();break;case0x04:turn_right();break;case0x01:turn_left();break;default:break;}break;case21:turn_left();beed_on();delay(20);beed_off();delay(80);pattern=22;break;case22://stopcarinleftcartswitch(sensor_inp()){case0x02:faward();break;case0x04:turn_right();break;case0x01:turn_left();break;case0x07:stop();pattern=0;break;default:break;}break;case31:turn_right();beed_on();delay(20);beed_off();delay(80);pattern=32;break;case32://stopcarinrightcartswitch(sensor_inp()){case0x02:faward();break;case0x04:turn_right();break;case0x01:turn_left();break;case0x07:stop();pattern=0;break;default:break;}break;default:break;}}}#include<reg51.h>#include<IR.h>#defineucharunsignedchar#defineuintunsignedint#definesen_portP1〃傳感器入口sbitEN1=P2A0;sbitIN1=P2A1;sbitIN2=P2A2;sbitEN2=P2A3;sbitIN3=P2A4;sbitIN4=P2A5;sbitbz=P1A4;voiddelay1(uintx){uinta,b;for(a=x;a>0;a--)for(b=1000;b>0;b--);}//延時子程序voiddelay(unsignedlongn){unsignedinti,j,k;for(i=n;i>0;i--)for(j=10;j>0;j--)for(k=50;k>0;k--);}unsignedcharsensor_inp(){unsignedcharsensor;sensor=sen_port;sensor&=//延時子程序P1=sensor;returnsensor;}voidfaward(){IN1=1;IN2=0;IN3=1;IN4=0;EN1=1;EN2=1;}voidbackward(){IN1=0;IN2=1;IN3=0;IN4=1;EN1=1;EN2=1;}voidturn_left(){IN1=1;IN2=0;IN3=0;IN4=1;EN1=1;EN2=1;}voidturn_right(){IN1=0;IN2=1;IN3=1;IN4=0;EN1=1;EN2=1;}voidleft(){IN1=1;IN2=0;IN3=0;IN4=0;EN1=1;EN2=1;}voidright(){IN1=0;IN2=0;IN3=1;IN4=0;EN1=1;EN2=1;}voidstop()EN1=0;EN2=0;}voidxunji(){//delay(10);switch(sensor_inp()){case0x02:faward();break;case0x01:right();break;case0x04:left();break;default:break;}}voidbizang(){if(bz==0){backward();delay1(10);turn_left();delay1(8);}else{faward();}voidmain(void){init_IR();while(1){switch(read_IR()){case0x1c:bizang();break;case0x19:xunji();break;case0x14:turn_left();break;case0x13:faward();break;case0x10:turn_right();break;case0x17:backward();break;case0x0e:stop();break;default:break;}}}紅外遙控程序#include<reg52.h>#include<delay52.h>sbitbeep=P2A0;sbitinf=P3A3;sbitled1=P2A1;sbitCLK=P1A0;sbitDAT=P1A1;ucharkey_code=255;uintbuf_key_code=0;ucharkey_bit_count=0;uintcount_T=0,buf_CT=0;ucharcommon_code_count=0;ucharinf_status=0;unsignedcharw[4];unsignedcharcodetab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};/0-11,-,全滅(共陽字段表)voiddisplay(void){unsignedchari,j,num;unsignedlongtemp;temp=key_code;w[3]=temp&0x000f;temp>>=4;w[2]=temp&0x000f;temp>>=4;w[1]=temp&0x000f;temp>>=4;w[0]=temp&0x000f;for(i=0;i<4;i++){num=tab[w[i]];for(j=0;j<8;j++){CLK=0;DAT=num&0x80;//(0x80即十進制的128,二進制的10000000按位發(fā)送)CLK=1;num<<=1;}voidTime0(void)interrupt1{count_T++;if(inf_status==0&&count_T<160){EX1=0;}elseif((inf_status==1||inf_status==2)&&count_T<12){EX1=0;}else{EX1=1;}if(count_T>500){inf_status=0;count_T=600;}}voidint_1(void)interrupt2{beep=0;TR0=1;if(count_T>15&&count_T<250){buf_CT=count_T;count_T=0;}delay10us(10);if(inf==0){count_T=2;}if(buf_CT>15&&buf_CT<250){if(inf_status==0){if(buf_CT>210&&buf_CT<250){inf_status=1;buf_key_code=0;key_bit_count=0;buf_CT=0;}}elseif(inf_status==1){if((buf_CT>15&&buf_CT<25)||(buf_CT>32&&buf_CT<45)){common_code_count++;if(common_code_count>=26){inf_status=2;common_code_count=0;key_bit_count=0;buf_key_code=0;}}}elseif(inf_status==2){if(buf_CT>15&&buf_CT<25){buf_key_code>>=1;key_bit_count++;}elseif(buf_CT>32&&buf_CT<45){buf_key_code>>=1;buf_key_code|=0x80;key_bit_count++;}if(key_bit_count>=8){led1=!led1;inf_status=0;key_bit_count=0;key_code=buf_key_code;buf_key_code=0;TR0=0;count_T=600;}}buf_CT=0;}beep=1;EX1=1;}voidmain(){ET0=1;TMOD=0x02;TH0=0xCA;TL0=0xCA;IT1=1;EX1=1;TR0=1;EA=1;while(1){P0=key_code;//display();delayms(50);}尋跡小車測試程序#include<reg51.h>#definesen_portP1sbitSEN1=P1A0;sbitSEN2=P1A1;sbitEN1=P2A0;sbitIN1=P2A1;sbitIN2=P2A2;sbitEN2=P2A3;sbitIN3=P2A4;sbitIN4=P2A5;voiddelay(intn)〃延時子程序{unsignedchari,j,k;for(i=n;i>0;i--)for(j=100;j>0;j--)for(k=200;k>0;k--);}unsignedcharsensor_inp(){unsignedcharsensor;sensor=sen_port;sensor&=0x03;P0=sensor;returnsensor;}voidforward()//twomotosareruningforward{IN1=1;IN2=0;IN3=1;IN4=0;EN1=1;EN2=1;}voidbackward()//twomotosareruningbackward{IN1=0;IN2=1;IN3=0;IN4=1;EN1=1;EN2=1;}voidturn_left()//leftmotoisruning,butrightmotoisbrake{IN1=1;IN2=0;IN3=0;IN4=0;EN1=1;EN2=1;}voidrotate_left()//rightmotoisruningforward,andleftmotoisrunningbackward{IN1=1;IN2=0;IN3=0;IN4=1;EN1=1;EN2=1;}voidturn_right()//rightmotoisruning,butleftmotoisbrake{IN1=0;IN2=0;IN3=1;IN4=0;EN1=1;EN2=1;}voidrotate_right()//leftmotoisrunningforward,andrightmotoisrunningbackward{IN1=0;IN2=1;IN3=1;IN4=0;EN1=1;EN2=1;}voidfree()//twomotosisfree{IN1=0;IN2=0;IN3=0;IN4=0;EN1=0;EN2=0;}voidstop()//twomotosstop{IN1=1;IN2=1;IN3=1;IN4=1;EN1=1;EN2=1;}voidmain(void){//delay(10);//P0=0x55;while(1){//P0=P1;//delay(100);forward();//delay(100);stop();//delay(100);backward();//delay(100);stop();//delay(100);turn_left();//delay(100);stop();//delay(100);turn_right();//delay(100);stop();delay(100);rotate_left();delay(100);stop();delay(100);rotate_right();delay(100);stop();/*delay(100);stop();*///delay(20);forward();//delay(20);backward();//delay(20);/**/}巡際小車黑線程序bz=P14xun1=13xun2=P12xun3=P11xun4=P10xun5=空**/#include<reg51.h>#definesen_portP1〃傳感器入口sbitEN1=P2A0;sbitIN1=P2A1;sbitIN2=P2A2;sbitEN2=P2A3;sbitIN3=P2A4;sbitIN4=P2A5;voiddelay(intn)〃延時子程序{unsignedchari,j,k;for(i=n;i>0;i--)for(j=50;j>0;j--)for(k=100;k>0;k--);}unsignedcharsensor_inp(){unsignedcharsensor;sensor=sen_port;sensor&=0x07;P1=sensor;returnsensor;}voidfaward(){IN1=1;IN2=0;IN3=1;IN4=0;EN1=1;EN2=1;}voidturn_left(){IN1=1;IN2=0;IN3=0;IN4=1;EN1=1;EN2=1;}voidt

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論