




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
.2.2電動小車模塊電動小車由兩個直流電機與其驅(qū)動芯片組成。一左一右位于小車前端兩邊。電機通過齒輪組帶動輪胎。后端是用于平衡的輪胎。小車電動機模塊如圖2.6所示圖2.6電動小車模塊2.2.3控制模塊1、時鐘電路AT89S52雖然有內(nèi)部振蕩電路,但要形成時鐘,必須外部附加電路。AT89S52單片機的時鐘產(chǎn)生方法有兩種。內(nèi)部時鐘方式和外部時鐘方式。本設(shè)計采用內(nèi)部時鐘方式,利用芯片內(nèi)部的振蕩電路,在XTAL1、XTAL2引腳上外接定時元件,內(nèi)部的振蕩電路便產(chǎn)生自激振蕩。本設(shè)計采用最常用的內(nèi)部時鐘方式,即用外接晶體和電容組成的并聯(lián)諧振回路。振蕩晶體可在1.2MHZ到12MHZ之間選擇。電容值無嚴格要求,CX1、CX2可在20pF到100pF之間取值。所以本設(shè)計中,振蕩晶體選擇11.0592MHZ,電容選擇30pF。2、復位電路AT89S52的復位是由外部的復位電路來實現(xiàn)的。復位引腳RST通過在每個機器周期的對復位電路采樣一次,然后才能得到內(nèi)部復位操作所需要的信號。復位電路通常采用上電自動復位和按鈕復位兩種方式。最簡單的上電自動復位電路中上電自動復位是通過外部復位電路的電容充電來實現(xiàn)的。只要VCC的上升時間不超過1ms,就可以實現(xiàn)自動上電復位。時鐘頻率用11.0592MHZ時C取10uF,R取10KΩ。本設(shè)計就是用就是最簡單的上電復位??刂破髂K如圖2.7所示。圖2.7控制器模塊2.3整體方案小車的尋跡原理是當左側(cè)傳感器在黑線上時,傳感器輸出高電平,在白色地板上時輸出低電平。電平信號進入單片機P3.5口,同理右側(cè)傳感器將電平信號傳送到單片機P3.7口。單片機通過P0.0和P0.1口控制左電機組,通過P0.2和P0.3口控制右電機組。當正前方傳感器檢測出小車前方有物體阻擋時,正前方傳感器輸出低電平信號到單片機的P3.6口,單片機控制小車行動。整體硬件示意圖如圖2.8所示。當左右傳感器都在黑線上時,單片機控制左右電機同時一同速度正向轉(zhuǎn)動,小車向前行駛。當左側(cè)傳感器在黑線外,右側(cè)傳感器在黑線上,單片機控制右側(cè)的電機停止(或反向轉(zhuǎn)動),左側(cè)的電機正向轉(zhuǎn)動(或停止)來控制小車向右轉(zhuǎn)。當右側(cè)傳感器在黑線外,左側(cè)傳感器在黑線上,單片機控制左側(cè)的電機停止(或反向轉(zhuǎn)動),右側(cè)的電機正向轉(zhuǎn)動(或停止)來控制小車向左轉(zhuǎn)。從而來實現(xiàn)小車的自動尋跡。當正前方的有物體阻擋時,單片機控制小車停下來。圖2.8小車整體示意圖3軟件設(shè)計3.1程序設(shè)計程序要的任務(wù)是,讓單片機查詢傳感器模塊發(fā)出的路面信號,根據(jù)信號作出反應,控制電動機工作實現(xiàn)自動尋跡。其程序流程圖3.1所示。初始化前方是否有障礙物是否檢測到黑線是否偏離黑線初始化前方是否有障礙物是否檢測到黑線是否偏離黑線行駛停車停車NN轉(zhuǎn)向子程序NYYYN3.1.1程序的模塊化設(shè)計在進行微機控制系統(tǒng)設(shè)計時,除了系統(tǒng)硬件設(shè)計外,大量的工作就是如何根據(jù)每個生產(chǎn)對象的實際需要設(shè)計應用程序。因此,軟件設(shè)計在微機控制系統(tǒng)設(shè)計中占重要地位。為了完成要求設(shè)計,在進行軟件設(shè)計時,通常把整個過程分成若干個部分,每一部分叫做一個模塊。所謂“模塊”,實質(zhì)上就是所完成一定功能,相對獨立的程序段,這種程序設(shè)計方法叫模塊程序設(shè)計法。模塊程序設(shè)計法的主要優(yōu)點是:1、單個模塊比起一個完整的程序易編寫及調(diào)試;2、模塊可以共存,一個模塊可以被多個任務(wù)在不同條件下調(diào)用;3、模塊程序允許設(shè)計者分割任務(wù)和利用已有程序,為設(shè)計者提供方便。本系統(tǒng)軟件采用模塊化結(jié)構(gòu),由主程序﹑延時子程序﹑轉(zhuǎn)向子程序構(gòu)成。具體程序見附錄1。3.1.2部分程序設(shè)計1、延時子程序。制作一個延時子程序,讓指令執(zhí)行足夠長的時間。VoidDelay(){UnsignedIntDelayTime=50000;while(DelayTime--);return;}2、轉(zhuǎn)向子程序。voidControlCar(unsignedcharConType){M1A=0;//將M1電機A端初始化為0M1B=0;//將M1電機B端初始化為0M2A=0;//將M2電機A端初始化為0M2B=0;//將M2電機B端初始化為0switch(ConType)//判斷用戶設(shè)定電機形式{case1://前進。判斷用戶是否選擇形式1{M1A=1;//M1電機正轉(zhuǎn)M2A=1;//M2電機正轉(zhuǎn)break;}case2://后退。判斷用戶是否選擇形式2{M1B=1;//M1電機反轉(zhuǎn)M2B=1;//M2電機反轉(zhuǎn)break;}case3://左轉(zhuǎn)。判斷用戶是否選擇形式3{M1B=1;//M1電機反轉(zhuǎn)M2A=1;//M2電機正轉(zhuǎn) break;}case4://右轉(zhuǎn)。判斷用戶是否選擇形式4{M1A=1;//M1電機正轉(zhuǎn)M2B=1;//M2電機反轉(zhuǎn) break;}case5://停止。判斷用戶是否選擇形式8{break;//退出當前選擇}}}3、主程序。voidmain()//主程序入口{bitRunFlag=0;//定義小車運行標志位RunShow=0;//初始化顯示狀態(tài)while(1){Start:ControlCar(1);//初始化小車運行狀態(tài)LeftLed=LeftIR;//前方左側(cè)指示燈指示出前方左側(cè)紅外探頭狀態(tài)RightLed=RightIR;//前方右側(cè)指示燈指示出前方右側(cè)紅外探頭狀態(tài)FontIRState=FontIR;//定義蔽障狀態(tài)位if(FontIR==0)//正前方傳感器接收到了信號{ControlCar(2);//小車向后倒退SB1=!SB1;//揚聲器電平取反Delay();//延時一定時間SB1=!SB1; Delay(); SB1=!SB1; Delay(); SB1=!SB1; Delay(); SB1=!SB1; Delay(); SB1=!SB1; Delay(); SB1=!SB1; ControlCar(3);//小車向左轉(zhuǎn) Delay();//延時一定時間 SB1=!SB1;//揚聲器電平取反 Delay(); SB1=!SB1; Delay(); SB1=!SB1; Delay(); SB1=!SB1; Delay(); SB1=!SB1; ControlCar(1);//小車向前行駛 SB1=1;//揚聲器停止警報} elseif(FontIR==1)//正前方傳感器沒有接收到信號{if(B1==0)//話筒接收到信號{if(RunFlag==0)//如果小車運行標志為停止{ControlCar(8);//小車停止 RunFlag=1;//設(shè)置小車運行狀態(tài)為行駛 } else {ControlCar(1);//反之小車運行標志為行駛 RunFlag=0;//設(shè)置小車運行狀態(tài)為停止 } B1State=!B1State;//話筒判斷位取反}if(LeftIR==1)//左側(cè)傳感器在黑線上{if(RightIR==0)//右側(cè)傳感器不在黑線上{ControlCar(4);//小車左轉(zhuǎn) Delay();//延時一定時間} gotoNextRun;//跳至NextRun處 if(RightIR==1)//右側(cè)傳感器在黑線上 gotoStart;//跳至Start處}if(RightIR==1)//右側(cè)傳感器不在黑線上{if(LeftIR==0)//左側(cè)傳感器在黑線上{ControlCar(3);//小車右轉(zhuǎn) Delay();//延時一定時間}if(LeftIR==1)//左側(cè)傳感器不在黑線上gotoStart;//跳至Start出}}gotoNextRun;//跳至NextRun處}gotoStart;//跳至Start處NextRun:ControlCar(1);//小車前進}3.2利用proteus進行軟件仿真利用proteus軟件仿本設(shè)計。通過仿真可以試驗自己編寫的程序和選擇的器件是否能完成設(shè)計的要求。軟件仿真可以隨意修改源程序,而不需要。利用proteus軟件繪制仿真圖如圖3.2所示。由于proteus軟件中沒有AT89S52,用針腳相同AT98C52代替。沒有L9110芯片,所以用圖中D1~D4四個發(fā)光二極管和其上拉電阻代替。其中D1,D2代替左電動機的驅(qū)動芯片的信號輸入口。D3,D4代替電動機的信號輸入口。用發(fā)光二極管的亮滅來代替L9110接收到的高低電平。用三個可以鎖定的按鍵和其上拉電阻來代替三個紅外線傳感器。通過按鍵的開、關(guān)輸出高、低電平來代替紅外線傳感器再或者不在黑線上輸出的高、低電平。利用Keil軟件將全部程序裝換成HEX類型,載入后仿真。圖3.3~3.6為左轉(zhuǎn),右轉(zhuǎn),蔽障第一步后退,蔽障第二部左轉(zhuǎn)仿真圖。圖3.2proteus仿真圖3.3制作電路圖和PCB板圖1、制作電路圖。利用Protel99se制作本設(shè)計的整個電路圖如圖3.7所示見附錄2,在做實際的小車時,將小車的電路分為切分為車頭感應模塊和小車控制模塊分別繪制。自動尋跡小車的車頭電路圖如圖3.8所示。小車控制模塊電路圖如圖3.9所示見附錄2。圖中,小車的左下、右下傳感器中加入兩個LED燈來顯示顯示傳感器是否發(fā)出信號。在電路中加入了一個蜂鳴器,當小車發(fā)現(xiàn)障礙物時圖3.3左轉(zhuǎn)仿真圖3.4右轉(zhuǎn)仿真圖3.5蔽障第一步后退仿真圖3.6蔽障第二步左轉(zhuǎn)仿真用報警。在小車控制模塊電路圖中加入了由RS232九針串口和MAX232芯片作組成的通信小模塊用于AT89S52和電腦的通信,使得小車能方便的擦寫其程序。增加了小車的可重復利用性。2、繪制PCB板圖。根據(jù)自動尋跡小車的兩個電路圖繪制出其PCB板圖。車頭的PCB板圖如圖3.10所示,小車控制模塊的PCB板圖如圖3.11所示,兩塊張PCB圖用見附錄3。其中小車控制模塊的PCB板圖不是很完美,圖中跳線很多且沒畫出。圖3.8車頭電路圖4總結(jié)論文首先介紹了自動尋跡小車設(shè)計的背景和要求,討論了小車實現(xiàn)的可能。然后論文討論了自動尋跡小車的結(jié)構(gòu),其主要由傳感器模塊,控制器模塊和電動小車模塊組成,對各個模塊的功能進行了介紹畫出整體原理圖。并對各個模塊的設(shè)計方案進行了對比分析,并確定了各個模塊主要成分的設(shè)計方案。論文對自動尋跡小車的系統(tǒng)進行了分析和設(shè)計,包括系統(tǒng)硬件分析、軟件分析。對小車的系統(tǒng)功能設(shè)計及模塊劃分做了進一步介紹。硬件方面,針對自動尋跡小車的特點和對系統(tǒng)的功能要求,作者選用了紅外線傳感器收集數(shù)據(jù),選用AT89S52作為控制器,選用了L9110作為直流電機的驅(qū)動芯片。并對每個模塊的功能和硬件組成進行了詳細介紹,并畫出了主要元器件的應用原理圖。展示小車自動尋跡全部實現(xiàn)細節(jié),包括紅外線傳感器如何對路面情況進行采集和傳輸,AT89S52如何查詢路面情況并由此對電動機進行控制,小車如何轉(zhuǎn)彎等。軟件方面,畫出程序流程圖。利用C語言進行編程,使得程序具有可讀性。作者對整個程序經(jīng)模塊化劃分,把整個程序劃分成主程序﹑定時子程序、障礙檢測程序﹑尋跡子程序構(gòu)成。使得程序具有了可移植性??偟膩碚f,此次畢業(yè)實習及畢業(yè)設(shè)計完成了任務(wù)書規(guī)定的各項要求,在學習C語言、proteus等的基礎(chǔ)上,進一步學習并實踐了程序編寫、調(diào)試,原理圖、PCB圖的制作,Proteus的軟件仿真,電路板的制作,元器件的焊接等多種實用技術(shù),成功設(shè)計出一個自動尋跡小車。既學習了不少新的知識和技術(shù),由親身體驗軟件設(shè)計、開發(fā)的過程,個人覺得收獲頗豐。在實驗室焊接小車的電路板時也發(fā)現(xiàn)不少問題。我感覺到即使是一個簡單的電路,要想很輕松的焊好,也不是很容易的事情。有時是“虛焊”的原因,有時可能是阻值選錯。這使握深深感受到理論與實際間的差距和自身的不足。通過這樣的設(shè)計,提高了我的動手能力。每天在實驗室除了焊接線路板,還可以上機編程,不但讓我熟悉了相關(guān)的專業(yè)軟件也使我軟件調(diào)試知識提高了。從網(wǎng)絡(luò)上找到了很多的資料,其中不少新穎的思路值得一試。這次畢業(yè)設(shè)計使我受益終身。當然,這次設(shè)計還只是一個初級產(chǎn)品,還可以從以下幾方面進一步完善:(1)智能調(diào)速。本系統(tǒng)中只實現(xiàn)了以較低的速度勻速前進。若用PWM,步進電機等實現(xiàn)小車,可以實現(xiàn)小車直道高速行駛,在彎道低速行駛。大大提高小車速度。(2)多種傳感器結(jié)合。本系統(tǒng)中只用了紅外線傳感器。這對環(huán)境和路面有嚴格要求??梢园沙暡▊鞲衅?、熱紅外傳感器等加入系統(tǒng),增加小車識別路面的能力,提高小車的實用性。(3)電源。本設(shè)計使用的是4節(jié)普通5號電池供電。供電能力有限。且電動機和單片機是同一電源??梢园惭b多電壓電源,是電動機和單片機分開供電。最后敬請各位專家、老師和同學對論文和今后的研究工作提出寶貴的指導意見和建議。致謝歷時三個月的畢業(yè)設(shè)計已經(jīng)告一段落。經(jīng)過自己不斷的搜索努力以及何老師的耐心指導和熱情幫助,本設(shè)計已經(jīng)基本完成。在這段時間里,何勇老師嚴謹?shù)闹螌W態(tài)度和熱忱的工作作風令我十分欽佩,他的指導使我受益非淺。同時圖書館和系實驗室的開放也為我的設(shè)計提供了實習場地。在此對何勇老師和學院通過這次畢業(yè)設(shè)計,使我深刻地認識到學好專業(yè)知識的重要性,也理解了理論聯(lián)系實際的含義,并且檢驗了大學四年的學習成果。雖然在這次設(shè)計中對于知識的運用和銜接還不夠熟練。但是我將在以后的工作和學習中繼續(xù)努力、不斷完善。這三個月的設(shè)計是對過去所學知識的系統(tǒng)提高和擴充的過程,為今后的發(fā)展打下了良好的基礎(chǔ)。由于自身水平有限,設(shè)計中一定存在很多不足之處,敬請各位老師批評指正。參考文獻何立民.單片機應用系統(tǒng)設(shè)計[M].北京航天航空大學出版社,2005.李廣弟.單片機基礎(chǔ)[M].北京航空航天大學出版社,2001.何希才.新型實用電子電路400例[M].電子工業(yè)出版社,2000.趙負圖.傳感器集成電路手冊[M].化學工業(yè)出版社,2004.陳伯時.電力拖動自動控制系統(tǒng)[M].北京機械工業(yè)出版社,2000.張毅剛,彭喜元.新編MCS-51單片機應用設(shè)計[M].哈爾濱工業(yè)大學出版社,2003.姜志海.原理及單片機應用[M].電子工業(yè)出版社,2009.附錄1C語言程序#include<at89x51.h>//包含51單片機相關(guān)的頭文件sbitLeftLed=P2^0;//定義前方左側(cè)指示燈端口sbitRightLed=P0^7;//定義前方右側(cè)指示燈端口sbitLeftIR=P3^5;//定義前方左側(cè)紅外探頭端口sbitRightIR=P3^6;//定義前方右側(cè)紅外探頭端口sbitFontIR=P3^7;//定義前方正前方紅外探頭端口sbitB1State=P1^2;//話筒的狀態(tài)位sbitFontIRState=P1^5;//正前方傳感器狀態(tài)位sbitM1A=P0^0;//定義左側(cè)電機驅(qū)動A端sbitM1B=P0^1;//定義左側(cè)電機驅(qū)動B端sbitM2A=P0^2;//定義右側(cè)電機驅(qū)動A端sbitM2B=P0^3;//定義右側(cè)電機驅(qū)動B端sbitB1=P0^4;//定義語音識識別傳感器端口sbitSB1=P0^6;//定義蜂鳴器端口#defineRunShowP1//定義數(shù)據(jù)顯示端口voidDelay()//定義機器人調(diào)轉(zhuǎn)子時間子程序{unsignedintDelayTime=50000;//定義機器人轉(zhuǎn)彎時間變量while(DelayTime--);//機器人轉(zhuǎn)彎循環(huán)return;}voidControlCar(unsignedcharConType)//定義電機控制子程序{M1A=0;//將M1電機A端初始化為0M1B=0;//將M1電機B端初始化為0M2A=0;//將M2電機A端初始化為0M2B=0;//將M2電機B端初始化為0switch(ConType)//判斷用戶設(shè)定電機形式{case1://前進//判斷用戶是否選擇形式1{M1B=1;//M1電機正轉(zhuǎn)M2B=1;//M2電機正轉(zhuǎn)break;}case2://后退//判斷用戶是否選擇形式2{M1A=1;//M1電機反轉(zhuǎn)M2A=1;//M2電機反轉(zhuǎn)break;}case3://左轉(zhuǎn)//判斷用戶是否選擇形式3{M2B=1;//M2電機正轉(zhuǎn) break;}case4://右轉(zhuǎn)//判斷用戶是否選擇形式4{M1B=1;//M1電機正轉(zhuǎn)//M2電機反轉(zhuǎn) break;}case8://停止//判斷用戶是否選擇形式8{break;//退出當前選擇}}}voidmain()//主程序入口{bitRunFlag=0;//定義小車運行標志位RunShow=0;//初始化顯示狀態(tài)while(1){Start:ControlCar(1);//初始化小車運行狀態(tài)LeftLed=LeftIR;//前方左側(cè)指示燈指示出前方左側(cè)紅外探頭狀態(tài)RightLed=RightIR;//前方右側(cè)指示燈指示出前方右側(cè)紅外探頭狀態(tài)FontIRState=FontIR;//定義蔽障狀態(tài)位if(FontIR==0)//正前方傳感器接收到了信號{ControlCar(2);//小車向后倒退SB1=!SB1;//揚聲器電平取反Delay();//延時一定時間SB1=!SB1; Delay(); SB1=!SB1; Delay(); SB1=!SB1; Delay(); SB1=!SB1; Delay(); SB1=!SB1; Delay(); SB1=!SB1; ControlCar(3);//小車向左轉(zhuǎn) Delay();//延時一定時間 SB1=!SB1;//揚聲器電平取反 Delay(); SB1=!SB1; Delay(); SB1=!SB1; Delay(); SB1=!SB1; Delay(); SB1=!SB1; ControlCar(1);//小車向前行駛 SB1=1;//揚聲器停止警報} elseif(FontIR==1)//正前方
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電工中級鑒定復習測試卷含答案
- 部編版四年級語文下冊教學評估計劃
- 教育機構(gòu)活動籌備工期的管理措施
- 文化藝術(shù)活動節(jié)能減排措施
- 繡山中學八年級上學期期中科學試題
- 部編版五年級語文秋季教學評估計劃
- 某公司2025年客戶滿意度提升計劃
- 職業(yè)規(guī)劃課程第七單元教學計劃
- 新部編版語文五年上冊跨學科融合計劃
- 物流行業(yè)供應商合作協(xié)議管理辦法范文
- 2025年高考英語語法填空熱點語法填空熱點話題06(學生版+解析)
- 湛江漓源農(nóng)牧科技有限公司年產(chǎn)36萬噸飼料項目環(huán)境影響報告表
- 隨班就讀試題及答案
- 1.1細胞是生命活動的基本單位課件高一上學期生物人教版(2019)必修1
- 2024年福建省長樂市事業(yè)單位公開招聘醫(yī)療衛(wèi)生崗筆試題帶答案
- 無人機安全操作試題及答案
- 2025國際服務(wù)貿(mào)易合同范本(中英文)
- 病原學與防疫技術(shù)體系研究重點專項2025年度項目申報指南
- (廣東二模)2025年廣東省高三高考模擬測試(二)語文試卷(含答案解析)
- 成人腸造口護理-中華護理學會團體標準
- 湖北省武漢市2025屆高中畢業(yè)生四月調(diào)研考試歷史試題及答案(武漢四調(diào))
評論
0/150
提交評論