版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
智能小車實驗報告目錄1.1項目概述……………………11.2項目要求……………………11.3實訓(xùn)目的……………………11.4系統(tǒng)設(shè)計……………………11.4.1框圖設(shè)計………………11.4.2知識點…………………11.5硬件設(shè)計……………………1.5.1總體設(shè)計……………1.5.2原件清單……………1.5.3元器件介紹…………1.6軟件設(shè)計……………………1.6.1程序流程圖…………1.6.2程序清單……………1.6.3程序下載調(diào)試………………………1.7智能小車運行效果圖………………………1.8總結(jié)…………………………1.9參考文獻……………………1.1項目概述本次實訓(xùn)是基于單片機(STC89C51)智能小車的設(shè)計與開發(fā),開發(fā)中涉及控制、程序設(shè)計、模式識別、傳感技術(shù)、電子、計算機、機械等。開發(fā)智能小車的學習與發(fā)展,對促進學習綜合運用所學的嵌入式知識以及電子技術(shù)的知識提高,具有良好的推動作用。1.2項目要求(1)理解程序、硬件電路圖,查閱相關(guān)資料;(2)焊接電路板;(3)軟硬件調(diào)試;(4)完成循跡,避障,遙控等功能。1.3實訓(xùn)目的(1)理解并掌握單片機控制小車的循跡,遙控、避障的原理;(2)了解電子路的布局、PCB板的設(shè)計;(3)掌握電路板焊接技術(shù),如何用萬用表線判斷元器件的好壞;(4)掌握單片機C語言的編程及軟硬件調(diào)試。1.4系統(tǒng)設(shè)計1.4.1框圖設(shè)計基于STC89C52單片機智能小車系統(tǒng)設(shè)計由STC89C52單片機、電機驅(qū)動、晶振電路、按鍵電路、數(shù)碼管顯示電路、紅外感應(yīng)電路幾部分組成,系統(tǒng)框圖如圖1-1所示。圖1-1基于STC89C52單片機智能小車系統(tǒng)框圖1.4.2知識點該項目需要了解以下知識點。(1)+5V電源原理及設(shè)計。(2)單片機復(fù)位電路工作原理及設(shè)計。(3)單片機晶振電路工作原理及設(shè)計。(4)案件電路的設(shè)計。(5)數(shù)碼管的特性及應(yīng)用。(6)電路板焊接技術(shù)。(7)STC89C52單片機引腳。(8)單片機C語言程序設(shè)計(9)紅外線感應(yīng)原理。1.5硬件設(shè)計1.5.1總體設(shè)計智能小車采用前輪驅(qū)動,前輪左右兩邊各用一個電機驅(qū)動,調(diào)制前面兩個輪子的轉(zhuǎn)速起停從而達到控制轉(zhuǎn)向的目的,后輪是萬象輪,起支撐的作用。循跡光電對管分別裝在車體下的左右。當車身下左邊的傳感器檢測到黑線為主控芯片控制左輪電機停止,車向左修正,當車身下右邊傳感器檢測到黑線時,主控芯片控制右輪電機停止,車向右修正。如圖1-2所示圖1-2智能小車循跡光電對管圖避障的原理和循線一樣,在車身右邊裝一個光電對管,當其檢測到障礙物時,主控芯片給出信號報警并控制車子倒退,轉(zhuǎn)向,從而避開障礙物。如圖1-3所示。圖1-3智能小車避障光電對管圖1.5.2原件清單:基于單片機STC89C51元器件如表1-4所示。表1-4基于STC89C51智能小車原件清單1.5.3元器件介紹1)STC89C52單片機管腳圖及功能如圖1-5為STC89C51的引腳功能圖,其各個引腳功能概述如下: VCC:供電電壓。 GND:接地圖1-5STC89C52引腳功能圖P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示: 口管腳備選功能 P3.0RXD(串行輸入口) P3.1TXD(串行輸出口) P3.2/INT0(外部中斷0) P3.3/INT1(外部中斷1) P3.4T0(記時器0外部輸入) P3.5T1(記時器1外部輸入) P3.6/WR(外部數(shù)據(jù)存儲器寫選通) P3.7/RD(外部數(shù)據(jù)存儲器讀選通) P3口同時為閃爍編程和編程校驗接收一些控制信號。 RST:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號出現(xiàn)。/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。2)L293D驅(qū)動引腳原理圖圖1-6L293D驅(qū)動與電機相連原理圖圖1-6為L293D采用16引腳DIP封裝,其內(nèi)部集成了雙極型H-橋電路,所有的開量都做成n型。這種雙極型脈沖調(diào)寬方式具有很多優(yōu)點,如電流連續(xù);電機可四角限運行;電機停止時有微振電流,起到“動力潤滑”作用,消除正反向時的靜摩擦死區(qū):低速平穩(wěn)性好等。L293D通過內(nèi)部邏輯生成使能信號。H-橋電路的輸入量可以用來設(shè)置馬達轉(zhuǎn)動方向,使能信號可以用于脈寬調(diào)整(PWM)。另外,L293D將2個H-橋電路集成到1片芯片上,這就意味著用1片芯片可以同時控制2個電機。每1個電機需要3個控制信號EN12、IN1、IN2,其中EN12是使能信號,IN1、IN2為電機轉(zhuǎn)動方向控制信號,IN1、IN2分別為1,0時,電機正轉(zhuǎn),反之,電機反轉(zhuǎn)。選用一路PWM連接EN12引腳,通過調(diào)整PWM的占空比可以調(diào)整電機的轉(zhuǎn)速。選擇一路I/O口,經(jīng)反向器74HC14分別接IN1和IN2引腳,控制電機的正反轉(zhuǎn)。L293D驅(qū)動器管腳賦值表表1-7為L293D驅(qū)動器小車電機轉(zhuǎn)動的管腳圖賦值表:表1-7L293D驅(qū)動管腳賦值表行進引腳停止左轉(zhuǎn)右轉(zhuǎn)前進后退原路返回Out1(P2.0)0011001Out2(P2.1)0000110Out3(P2.2)0101010Out4(P2.3)0000101電機驅(qū)動一般采用H橋式驅(qū)動電路,L293N內(nèi)部集成了H橋式驅(qū)動電路,從而可以采用L293N電路來驅(qū)動電機。通過單片機給予L293N電路PWM信號來控制小車的速度,起停。驅(qū)動原理圖如圖1-8所示。圖1-8L298N引腳圖1.6軟件設(shè)計1.6.1程序流程圖智能循跡避障小車程序流程圖如圖1-9所示。1.6.2程序清單智能小車程序清單如下所示:#include<reg52.h>#define ucharunsignedchar#defineuintunsignedintsbitK1=P1^0; //P1.0到P1.4為尋線檢測端sbitK2=P1^1;sbitK3=P1^2;sbitK4=P1^3;sbitK5=P1^4;sbitKIN1=P1^5; //P1.5P1.6是避障檢測端sbitKIN2=P1^6;sbitout1=P2^0; //P2.0到P2.3是電機驅(qū)動輸出控制端sbitout2=P2^1;sbitout3=P2^2;sbitout4=P2^3;sbitbeem=P3^7; //蜂鳴器控制引腳unsignedlongxdatarec_code;unsignedlongxdatatime_us;unsignedcharxdatarec_cnt;unsignedcharxdatakbuf;ucharsdata,flag; //sdata是紅外遙控接收鍵值變量flag是啟動小車或停止小車變量bitrec_b;bitkey_save;bitkeyp;ucharcounter=0;sbitSET1=P2^4 ;sbitSET2=P2^5;sbitSET3=P2^6;sbitSET4=P2^7;ucharcodeseg7code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};voiddelay1(uchart)//延時程序1{ ucharj;while(t--) {for(j=50;j>0;j--);}}voiddisplay(uchari){ P2=P2|0XF0; P0=~seg7code[i/100]; SET1=0; delay1(10); P2=P2|0XF0; P0=~seg7code[(i/10)%10]; SET2=0; delay1(10); P2=P2|0XF0; P0=~seg7code[i%10]; SET3=0; delay1(10); P2=P2|0XF0; P0=~seg7code[(i+3)%10]; SET4=0; delay1(10); P2=P2|0XF0;}voiddelay(uintt)//延時程序1{ ucharj;while(t--) {for(j=5;j>0;j--);}}voidbeep() //蜂鳴器提示音{ beem=0; delay(1000); beem=1; delay(1000); beem=0; delay(1000); beem=1; delay(1000); }voidInit() //初始化{ TMOD=0x09; //T/C1采用16位定時器/計數(shù)器 ET1=1; //定時器1開中斷TH0=0x00;TL0=0x00;ET0=0;TR0 =1; //定時計數(shù)器啟動計數(shù) EX0 =1; //外部中斷0關(guān)中斷 EX1 =0; //外中斷1關(guān)中斷 EA =1; //CPU開中斷}//左轉(zhuǎn)voidcomeleft(){ uchari; out1=0; out2=0; out3=1; out4=0; for(i=0;i<10;i++) { out1=!out1; delay(1); }}//左微轉(zhuǎn)voidsleft(){ uchari; out1=0; out2=0; out3=1; out4=0; for(i=0;i<5;i++) { out1=!out1; delay(1); }}//右微轉(zhuǎn)voidsright(){ uchari; out1=1; out2=0; out3=0; out4=0; for(i=0;i<5;i++) { out3=!out3; delay(1); }}//右轉(zhuǎn)voidcomeright(){ uchari; out1=1; out2=0; out3=0; out4=0; for(i=0;i<10;i++) { out3=!out3; delay(1); }}//前進加速;voidcomeon(){ out2=0; out4=0; out1=1; out3=1;}voidstop() //停止{ out1=0; out2=0; out3=0; out4=0;}voidinter_x0()interrupt0{TR0=0;time_us=(unsignedlong)(TH0<<8)+TL0;TH0=0;TL0=0;TR0=1;if(time_us>3800&&time_us<4500){rec_cnt=0;rec_code=0;}elseif(time_us>300&&time_us<700){rec_cnt++;rec_code=rec_code<<1;//rec_code=rec_code&0x00000000;}elseif(time_us>1300&&time_us<1750){rec_cnt++;rec_code=rec_code<<1;rec_code=rec_code|0x00000001;//IO_buzz=0;}elseif(time_us>1800&&time_us<2200){rec_code=rec_code;rec_cnt++;//if(rec_cnt>1){rec_cnt=0;key_save=1;}}if(rec_cnt==32){rec_b=1;key_save=0;rec_cnt=0;}}voidGetKeyValue() //紅外遙控鍵值取值{if(rec_b){unsignedcharda;rec_b=0;kbuf=(rec_code&0x0000ff00)>>8;da=rec_code&0x000000ff;if(kbuf==~da){ sdata=da;}}}//避障原路返回voidshunback(){ if(!KIN1) { out1=0; out2=1; out3=1; out4=0; delay(1000); while(K1&&K2&&K3&&K4&&K5); } elseif(!KIN2) { out1=1; out2=0; out3=0; out4=1; delay(1000); while(K1&&K2&&K3&&K4&&K5); } else{;}}//循跡voidscanline(){ P1=0XFF; if(!(K1||K2||K3||K4||K5)) {counter++; if(counter==5)stop(); } if(K5==0){comeleft();} elseif(!K1){ comeright();} elseif(!K4){ sleft();comeon(); } elseif(!K2){ sright();comeon(); } elseif(!K3){ comeon();comeon(); } else{P2=P2;}}voidmain(void){ P1=0XFF; P2=0XFF; P3=0XFF; P0=0XFF; Init(); while(1) {display(counter); GetKeyValue();//紅外遙控鍵值取值 if(sdata==221) //按221鍵則小車停止運行 { flag=0; //小車停止變量 beep(); //蜂鳴器叫兩聲 stop(); //小車停止 sdata=0; //紅外遙控鍵變量歸零 } elseif(sdata==93)//按93鍵則小車啟動 { flag=1; //小車啟動變量 beep(); //蜂鳴器叫兩聲 comeon(); //小車啟動 sdata=0; //紅外遙控鍵變量歸零 } else{;} if(flag==1) // //小車啟動,則進行尋線避障操作 { shunback(); //避障 scanline(); //尋線 } }}1.6.3程序下載調(diào)試圖1-10程序下載軟件界面如圖1-10是STC89C51單片機程序下載軟件STC-ISP.exe。下載方式步驟如下:(1)首先像2-5連接串口,安裝硬件驅(qū)動。右擊“我的電腦”,點擊“屬性”,選擇“硬件/設(shè)備管理器”單擊“端口”查看串口是否被連接。連接成功則顯示com端口號。(2)首先點擊STC-ISP.exe快捷方式進入圖2-4界面。點擊“OpenFile”按鈕選擇要下載的程序確定,在選擇下載點串口COM,下一步點擊“Download/下載”,按“Download/下載”之前小車處于斷電狀態(tài),按下瞬間必須給小車供電。1.7智能小車運行效果圖1.8總結(jié)經(jīng)過為期兩周的實訓(xù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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 改裝簡易計算器課程設(shè)計
- 教師離職管理制度
- 攝動法課程設(shè)計
- 搬遷設(shè)備施工方案
- 加強作風建設(shè)發(fā)言稿
- 搓洗一體沐浴椅課程設(shè)計
- 攪拌面機課程設(shè)計
- 插齒機模型課程設(shè)計
- 軟件工程課程設(shè)計 運輸
- 課程設(shè)計擋油板
- 弘揚教育家精神主題教師演講稿10篇
- 麻醉引起的惡性高熱護理課件
- 產(chǎn)品包裝設(shè)計合同正規(guī)范本(通用版)
- 國家安全教育課-教案3篇
- 傷口評估記錄表
- 幼兒園優(yōu)質(zhì)公開課:小班語言《小雞球球藏貓貓》課件(共同欣賞)
- 中建體育中心工程預(yù)制看臺吊裝專項施工方案
- 《西洋樂器介紹》課件
- 心理咨詢之精神分析療法
- 人教版八年級數(shù)學上冊全等三角形典型6類難題題型歸類
- 2023春國開合同法第10章試題及答案
評論
0/150
提交評論