



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、.<< 計算機控制技術綜合訓練>> 任務書年季學期學生姓名學號專業(yè)方向班級題 目 名 稱智能小車系統(tǒng)設計2一、設計內(nèi)容及技術要求 :(一)、任務描述利用 智能小車系統(tǒng)設計2所提供部件 (綜合訓練目前共有3 種智能小車模型),組裝小車模型 ,編寫檢測 、控制程序 ,實現(xiàn)以單片機為控制系統(tǒng)核心的智能小車系統(tǒng)設計。(二)、控制任務和要求基本任務 :1.完成小車的組裝工作2.小車可完成前進、后退 、左轉(zhuǎn)、右轉(zhuǎn)等動作 ,并且可以正確顯示當前的速度及行進位移3.小車具有循跡 (自己設計跑道 )及避障功能4.三周設計任務完成后 ,不必拆分小車 ,將小車歸還老師并如實匯報功能部件運轉(zhuǎn)情
2、況 ,便于老師及時維護 ,為下一組同學的設計做好準備進階任務 :1.實現(xiàn)舵機轉(zhuǎn)動下的超聲波壁障功能,并且可以正確顯示前方物體的距離2.與按鍵功能配合,正確有序顯示小車位移、速度及與前方障礙物距離3.小車具有無線遙控功能4.與其它組的小車模型配合可以完成交替領跑任務二、課程設計總結(jié)報告要求 :1.完整的設計任務書:封面 (設計題目 、指導教師 、專業(yè)班級 、姓名 、學號 、時間);摘要及關鍵詞( 3 5 ):設計總體概述(采用何種硬件 ,利用何種方法,設計何種東西,實現(xiàn)了何種功能)目錄(按目錄格式書寫,頁碼要標清 ). 下載可編輯 .第一章緒言(本設計的內(nèi)容與實現(xiàn)的基本原理,設計的特點及可以最終
3、可以實現(xiàn)的功能,可以達到的性能指標)第二章方案論證 (對所提供的硬件理解并畫出系統(tǒng)結(jié)構(gòu)圖,為實現(xiàn)該任務所采取軟件設計思路及核心算法)第三章硬件設計 (按照結(jié)構(gòu)框圖對各功能部分進行分別介紹,如系統(tǒng) CPU 部分 、數(shù)據(jù)采集部分 、程序控制部分 、人機接口部分等)第四章軟件設計 (整體設計思路,各獨立程序功能、原理介紹包括流程圖,如主程序 、各子程序及中斷服務程序)第五章設計總結(jié) (對整個設計過程的總結(jié)、體會 ,還包括設計中遇到的問題及解決的辦法,以及想要實現(xiàn)卻未能完成的功能)參考文獻 :著作格式 :作者 .書名 .版次 .出版地 :出版者 ,出版年 ;期刊格式 :作者 .文章名 .期刊名 ,年
4、,卷 (期 ):起止頁注:字數(shù) 10000 字左右 ,不得抄襲和雷同,使用學生作業(yè)紙(16 開)2.手繪硬件連接2 圖一張 、手繪軟件流程2圖一張 。三、設計進度 :第一周 :熟悉掌握系統(tǒng)要求,完成硬件設計 、調(diào)試。第二周 :完成軟件設計 ,用仿真器完成軟、硬件聯(lián)調(diào) ,最終實現(xiàn)單片機在目標系統(tǒng)中的合理運行第三周 :完善設計 ,完成說明書編寫,答辯 。指導教師簽字 :附錄 :. 下載可編輯 .電信學院課程設計報告要求1、設計題目 ;2、目錄;3、本設計的基本原理 ;4、簡要說明本設計內(nèi)容 、用途及特點 ;5、本設計達到的性能指標 ;6、設計方案的選擇 ;7、寫出各部分設計過程 、工作原理 、元器
5、件選擇 ;8、繪制圖紙 (手繪 2 號圖紙 );9、設計參考文獻 ;10、附錄;11、設計總結(jié)體會 ;12、設計說明書不得少于10000 字。. 下載可編輯 .智能小車運行圖. 下載可編輯 .顯示速度 ,距離,超聲波探測距離經(jīng)過調(diào)試 ,小車完美實現(xiàn)了如下功能1小車具有無線遙控功能 ,小車可完成前進 、后退、左轉(zhuǎn)、右轉(zhuǎn)等動作 ,并且可以正確顯示當前的速度及行進位移 。2.小車具有循跡及避障功能,實現(xiàn)了舵機轉(zhuǎn)動下的超聲波壁障功能 ,并且可以正確有序顯示小車位移 、速度及與前方障礙物距離。3.與其它組的小車模型配合可以完成交替領跑任務。4小車所有模式切換均由遙控器控制。.流程圖. 下載可編輯 .硬件
6、原理圖附件一 :智能小車系統(tǒng)程序#include <AT89x51.H>#include <intrins.h>sbit AA=P30;sbit DD=P31;sbit BB=P32;sbit CC=P22;sbit LCM_RW=P24;/ 定義 LCD 引腳sbit LCM_RS=P23;. 下載可編輯 .#define RXP2_0#define TXP2_1#define LCM_EP2_5#define Sevro_moto_pwmP2_7 / 接舵機信號端輸入 PWM 信號調(diào)節(jié)速度#define LCM_DataP0#define Busy0x80/ 用于檢
7、測 LCM 狀態(tài)字中的 Busy 標識#define Left_1_ledP3_7/P3_7接四路尋跡模塊接口第一路輸出信號即中控板上面標記為OUT1#define XUNJI_left_ledP3_6/P3_6接四路尋跡模塊接口第二路輸出信號即中控板上面標記為OUT2#define XUNJI_right_ledP3_5/P3_5接四路尋跡模塊接口第三路輸出信號即中控板上面標記為OUT3#define Right_2_ledP3_4/P3_4接四路尋跡模塊接口第四路輸出信號即中控板上面標記為OUT4#define Left_moto_goP1_4=1,P1_5=0,P1_6=1,P1_7=0
8、;/ 左邊兩個電機向前走#define Left_moto_backP1_4=0,P1_5=1,P1_6=0,P1_7=1;/ 左邊兩個電機向后轉(zhuǎn)#defineLeft_moto_StopP1_4=0,P1_5=0,P1_6=0,P1_7=0;/ 左邊兩個電機停轉(zhuǎn). 下載可編輯 .#define Right_moto_goP1_0=1,P1_1=0,P1_2=1,P1_3=0;/ 右邊兩個電機向前走#define Right_moto_backP1_0=0,P1_1=1,P1_2=0,P1_3=1; / / 右 邊兩 個電機向后走#define Right_moto_StopP1_0=0,P1
9、_1=0,P1_2=0,P1_3=0; / 右 邊兩 個電機停轉(zhuǎn)void LCMInit(void);/LCD 初始化函數(shù)voidDisplayOneChar(unsignedcharX, unsignedcharY, unsignedcharDData);/LCD 顯示一個字符函數(shù)void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code*DData);/LCD 顯示一個字符串函數(shù)void Delay5Ms(void);/ 延時 5 毫秒函數(shù)void Delay400Ms(void);/ 延時 400 毫
10、秒函數(shù)void Decode(unsigned char ScanCode);void WriteDataLCM(unsigned char WDLCM);/LCD1602 寫數(shù)據(jù)函數(shù)void WriteCommandLCM(unsigned char WCLCM,BuysC);/LCD寫命令函數(shù)unsigned char ReadStatusLCM(void);unsigned char code Range ="V=cm/s S=. m" /LCD1602顯示格式unsigned char code welcome ="= Welcome = "un
11、signed char code key="Press any key.". 下載可編輯 .unsigned char code ASCII13 = "0123456789.-M"unsigned char code table="Distance:000.0cm"unsigned char code table1="YAO KONG MO SHI "unsigned char code table2="=XUN JI MO SHI= "unsigned char pwm_val_left= 0
12、;/ 變量定義unsigned char push_val_left =14;/舵機歸中 ,產(chǎn)生約, 1.5MS 信號unsigned intCH0=0;/ 循跡模式標志unsigned intCH1=0;/ 超聲波模式標志unsigned intt=0;/ 速度基準變量unsigned inttimer=0;/ 延時基準變量unsigned inttime=0;unsigned intpwm=250;unsigned intcount1=0;/ 計左電機碼盤脈沖值unsigned char timer1=0;/ 掃描時間變量unsigned long S1=0;unsigned long S
13、2=0;unsigned long S3=0;unsigned long S4=0;unsigned long S=0;unsigned long V=0;/ 定義其速度unsigned long SS=0;. 下載可編輯 .unsigned char disbuff4= 0,0,0,0,;unsigned char disbuff14= 0,0,0,0,;void WriteDataLCM(unsigned char WDLCM)/ 寫數(shù)據(jù)ReadStatusLCM();/ 檢測忙LCM_Data = WDLCM;LCM_RS = 1;LCM_RW = 0;LCM_E = 0;/ 若晶振速度
14、太高可以在這后加小的延時LCM_E = 0;/ 延時LCM_E = 1;void WriteCommandLCM(unsigned char WCLCM,BuysC) /寫指令,BuysC 為0 時忽略忙檢測if (BuysC) ReadStatusLCM();/ 根據(jù)需要檢測忙LCM_Data = WCLCM;LCM_RS = 0;LCM_RW = 0;. 下載可編輯 .LCM_E = 0;LCM_E = 0;LCM_E = 1;unsigned char ReadStatusLCM(void)/ 讀狀態(tài)LCM_Data = 0xFF;LCM_RS = 0;LCM_RW = 1;LCM_E
15、= 0;LCM_E = 0;LCM_E = 1;while (LCM_Data & Busy);/ 檢測忙信號return(LCM_Data);void LCMInit(void)/LCM 初始化LCM_Data = 0;WriteCommandLCM(0x38,0);/ 三次顯示模式設置 ,不檢測忙信號Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,0);. 下載可編輯 .Delay5Ms();WriteCommandLCM(0x38,1); /顯示模式設置 ,開始要求每次檢測忙信號WriteCom
16、mandLCM(0x08,1); /關閉顯示W(wǎng)riteCommandLCM(0x01,1); /顯示清屏WriteCommandLCM(0x06,1); /顯示光標移動設置WriteCommandLCM(0x0c,1); /顯示開及光標設置/ 按指定位置顯示一個字符void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)Y &= 0x1;X &= 0xF;/ 限制 X 不能大于 15,Y 不能大于 1if (Y) X |= 0x40;/ 當要顯示第二行時地址碼+0x40;X |= 0x8
17、0;/ 算出指令碼WriteCommandLCM(X, 1);/ 發(fā)命令字WriteDataLCM(DData);/ 發(fā)數(shù)據(jù)/ 按指定位置顯示一串字符void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code*DData). 下載可編輯 .unsigned char ListLength;ListLength = 0;Y &= 0x1;X &= 0xF;/ 限制 X 不能大于 15,Y 不能大于 1while (DDataListLength>0x19) /若到達字串尾則退出if (X
18、 <= 0xF)/X 坐標應小于 0xFDisplayOneChar(X, Y, DDataListLength);/ 顯示單個字符ListLength+;X+;/5ms 延時void Delay5Ms(void)unsigned int TempCyc = 5552;while(TempCyc-);/400ms延時. 下載可編輯 .void Delay400Ms(void)unsigned char TempCycA = 5;unsigned int TempCycB;while(TempCycA-)TempCycB=7269;while(TempCycB-);/*/void Conu
19、t(void)/ 超聲波距離計算函數(shù)while(!RX);/ 當 RX 為零時等待TR0=1;/ 開啟計數(shù)while(RX);/ 當 RX 為零時等待TR0=0;time=TH0*256+TL0;TH0=0;TL0=0;S=(time*1.7)/10+10;disbuff10=V%10;. 下載可編輯 .disbuff11=V/10;DisplayListChar(0, 0, Range);DisplayOneChar(2, 0, ASCIIdisbuff11);DisplayOneChar(3, 0, ASCIIdisbuff10);disbuff10=SS/10%10;disbuff11=
20、SS/100%10;disbuff12=SS/1000;DisplayOneChar(11, 0, ASCIIdisbuff12);DisplayOneChar(12, 0, ASCIIdisbuff11);DisplayOneChar(13, 1, ASCII10);DisplayOneChar(14, 0, ASCIIdisbuff10);disbuff0=S%10;disbuff1=S/10%10;disbuff2=S/100%10;disbuff3=S/1000;DisplayListChar(0, 1, table);DisplayOneChar(9, 1, ASCIIdisbuff
21、3);DisplayOneChar(10, 1, ASCIIdisbuff2);DisplayOneChar(11, 1, ASCIIdisbuff1);DisplayOneChar(12, 1, ASCII10);DisplayOneChar(13, 1, ASCIIdisbuff0);. 下載可編輯 ./*/void Conut0(void)/ 循跡模式顯示disbuff10=V%10;disbuff11=V/10;DisplayListChar(0, 0, Range);DisplayOneChar(2, 0, ASCIIdisbuff11);DisplayOneChar(3, 0, A
22、SCIIdisbuff10);disbuff10=SS/10%10;disbuff11=SS/100%10;disbuff12=SS/1000;DisplayOneChar(11, 0, ASCIIdisbuff12);DisplayOneChar(12, 0, ASCIIdisbuff11);DisplayOneChar(13, 0, ASCII10);DisplayOneChar(14, 0, ASCIIdisbuff10);DisplayListChar(0, 1, table2);/*/voidStartModule()/ 啟動模塊TX=1;/ 啟動一次模塊. 下載可編輯 ._nop_
23、();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();TX=0;. 下載可編輯 ./*/*void delayms(unsigned int ms)unsigned char i=100,j;for(;ms;ms-)while(-i)j=10;while(-j);*/void Timer_Count(void)/ 超聲波高電平
24、脈沖寬度計算函數(shù)TR0=1;/ 開啟計數(shù)while(RX);/ 當 RX 為 1 計數(shù)并等待TR0=0;/ 關閉計數(shù)Conut();/ 計算/*/ 前速前進. 下載可編輯 .voidrun(void)Left_moto_go ;/ 左電機往前走Right_moto_go ;/ 右電機往前走/*/ 前速后退voidbackrun(void)Left_moto_back ;/ 左電機往前走Right_moto_back ;/ 右電機往前走/*/ 左轉(zhuǎn)voidleftrun(void)Left_moto_back ;/ 左電機往前走Right_moto_go ;/ 右電機往前走/*/ 右轉(zhuǎn)voidr
25、ightrun(void). 下載可編輯 .Left_moto_go ;/ 左電機往前走Right_moto_back ;/ 右電機往前走/*/STOPvoidstoprun(void)Left_moto_Stop ;/ 左電機停走Right_moto_Stop ;/ 右電機停走/*/voidCOMM( void )V=0;push_val_left=5;/ 舵機向左轉(zhuǎn) 90 度timer=0;while(timer<=4000); / 延時 400MS 讓舵機轉(zhuǎn)到其位置4000StartModule();/ 啟動超聲波測距Conut();/ 計算距離S2=S;push_val_left
26、=23;/ 舵機向右轉(zhuǎn) 90 度timer=0;. 下載可編輯 .while(timer<=4000); /延時 400MS 讓舵機轉(zhuǎn)到其位置StartModule();/ 啟動超聲波測距Conut();/ 計算距離S4=S;push_val_left=14;/ 舵機歸中timer=0;while(timer<=4000); /延時 400MS 讓舵機轉(zhuǎn)到其位置StartModule();/ 啟動超聲波測距Conut();/ 計算距離S1=S;if(S2<300)|(S4<300) /只要左右各有距離小于 , 30CM 小車后退backrun();/ 后退timer=0
27、;while(timer<=1000);if(S2>S4)rightrun();/ 車的左邊比車的右邊距離小右轉(zhuǎn). 下載可編輯 .timer=0;while(timer<=800);elseleftrun();/ 車的左邊比車的右邊距離大左轉(zhuǎn)timer=0;while(timer<=800);/*/void pwm_Servomoto(void)if(pwm_val_left<=push_val_left)Sevro_moto_pwm=1;else Sevro_moto_pwm=0;if(pwm_val_left>=100)pwm_val_left=0;/*
28、/*TIMER1中斷服務子函數(shù)產(chǎn)生PWM 信號 */void time1()interrupt 3using 2. 下載可編輯 .TH1=(65536-100)/256;/100US 定時TL1=(65536-100)%256;timer+;/ 定時器 100US 為準 。在這個基礎上延時pwm_val_left+;pwm_Servomoto();t+;timer1+;if(t>=6000)V=count1;count1=0;t=0;if(timer1>=500)timer1=0;/*/void intersvr1(void) interrupt 2 using 1SS+;coun
29、t1+;/*/. 下載可編輯 .void timer0()interrupt 1 using 0/TIMER0 計數(shù)void main(void)Delay400Ms();/ 啟動等待 ,等 LCM 講入工作狀態(tài)LCMInit();/LCM 初始化Delay5Ms();/ 延時片刻DisplayListChar(0, 0, welcome);DisplayListChar(0, 1, key);TMOD=0X11;TH1=(65536-100)/256;/100US 定時TL1=(65536-100)%256;TH0=0;TL0=0;TR1= 1;ET1= 1;ET0= 1;EX1=1;/ 開
30、啟外部中斷 0IT1=1;/ 下降沿有效IE1=0;EA=1;push_val_left=14;/ 舵機歸中while(1). 下載可編輯 .if(AA=1&&BB=1)CH0=1;CH1=0;Conut0();Delay400Ms();if(AA=1&&CC=1)CH0=0;CH1=1;stoprun();Delay400Ms();if(timer>=800&&CH1=1)/80MS 檢測啟動檢測一次800timer=0;StartModule();/ 啟動檢測Conut();/ 計算距離if(S<300)/ 距離小于 30CMstoprun();/ 小車停止. 下載可編輯 .COMM();/ 方向函數(shù)elseif
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級上數(shù)學教案-三角形的面積練習課-蘇教版秋
- 三年級上冊數(shù)學教案-1.1 估算兩、三位數(shù)乘一位數(shù)丨蘇教版
- 學習2025年雷鋒精神六十二周年主題活動實施方案 (3份)-76
- 蘇教版數(shù)學三年級上冊單元測試卷-第四單元-兩、三位數(shù)除以一位數(shù)含答案
- 人教版三年級英語上冊期末測試卷
- 2025年河南省安全員《A證》考試題庫及答案
- 2025遼寧省安全員知識題庫
- 醫(yī)院鋼結(jié)構(gòu)居間合同范本
- 2025年度城市綜合體車位租賃合同
- 2025年度股權(quán)質(zhì)押合同工商局備案及企業(yè)環(huán)境管理體系認證服務協(xié)議
- 湖南省六年級上冊數(shù)學期末試卷(含答案)
- 部編版小學六年級道德與法治下冊課堂達標檢測試卷全冊含答案
- 他們創(chuàng)造了數(shù)學:50位著名數(shù)學家的故事
- 《普洱茶的定義》課件
- 2023山東經(jīng)貿(mào)職業(yè)學院教師招聘考試真題題庫
- 《定向運動》教學大綱(含課程思政要素)
- 內(nèi)浮頂儲罐檢修安全規(guī)范
- 特殊教育:康復訓練課程標準(年版)
- 注塑員工績效考核方案
- DCMM理論知識考試試題及答案
- 中學生心理輔導-第一章-緒論
評論
0/150
提交評論