基于單片機多功能智能小車設(shè)計電路程序_第1頁
基于單片機多功能智能小車設(shè)計電路程序_第2頁
基于單片機多功能智能小車設(shè)計電路程序_第3頁
基于單片機多功能智能小車設(shè)計電路程序_第4頁
基于單片機多功能智能小車設(shè)計電路程序_第5頁
免費預(yù)覽已結(jié)束,剩余41頁可下載查看

付費下載

下載本文檔

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

文檔簡介

設(shè)計任務(wù)(車輛從起跑線出發(fā)(出發(fā)前,車體不得超出起跑線C~D區(qū)(3~6米)以低速行駛,通過時間不低于10s;第二個路程D~E區(qū)(2米)以高速行駛,通過S型控制:如(2)(SS型鐵片跑度并通過LCD顯示出來。方案比較與選擇根據(jù)設(shè)計任務(wù)要求,并且根據(jù)自己的需要而附加的功能,該電路的總體框圖可分為幾個基本的模塊,框圖如(圖3)所示:(如(圖4)所示:(采用1602LCD,由單片機的總線模式連接。為節(jié)約電源電量并且不影響LCD的功能,LCD的背光用單片機進行控制,使LCD的背光在小車行駛的過程中不亮,因為不必看其顯示;在其它需要看顯示的內(nèi)容的時候LCD背光亮。量速度的作用。霍爾元件具有體積小,頻率響應(yīng)寬度大,動態(tài)特性好,對電路要求一定強度的磁場起作用,能力強,因此可以在車輪上安裝小磁鐵,而將霍爾器件采用紅外傳感器進速。但無論是反射式紅外傳感器還是對射式紅外傳感器,他們對都對環(huán)境要求較高,易受外部環(huán)境的影響,穩(wěn)定性不高,且價格較為昂貴。通過對方案1、方案2的比較其優(yōu)缺點,綜合多方面因素決定選用方案1,其原理圖接線如(圖5)(理簡單,成本低,加速能力強,但功率損耗大,特別是低速大轉(zhuǎn)距運行時,通過電阻R 方案的優(yōu)點是電路較為簡單,缺點是繼電器的響應(yīng)時間慢,易損壞,較短,可靠性不高。H關(guān)狀態(tài),精確調(diào)整電機轉(zhuǎn)速。這種電路由于工作在管子的飽和截止模式下,效率非常高;H(模式選擇模塊通過一個74LS00走完路程小車停止后還可以通過按鈕選擇想要在LCD片,即第一次轉(zhuǎn)彎后若感應(yīng)到的是錯誤的方向,則小車會后退自動調(diào)整方向,沿著S型LCD程序框圖圖系統(tǒng)的具體設(shè)計與實現(xiàn)采用1602LCD,由單片機的總線模式連接。為節(jié)約電源,LCD的背光用單片機進行控秒小車轉(zhuǎn)動圈數(shù),再測量出小車車輪周長即可計算出小車當(dāng)前速度,累加可得到當(dāng)V

22 RST1(鈕控制。原理圖如(圖9)所示:(最小系統(tǒng)圖該系統(tǒng)主要用到的是單片機,所以主要的部分是最小系統(tǒng)圖,該最小系統(tǒng)圖如(最終PCB板圖最小系統(tǒng)的簡潔以及容易看懂,外部擴展電路不在最小系統(tǒng)圖上顯示。)分別如(11、((系統(tǒng)程序#include #define#define#define#define#define#define#defineData#defineCmd//0表正常速//1表低//2表高 全局函數(shù) WriteCmd(charWriteDharvoid voidSetXY(charx,chary); voidDisplaySingleChar(charx,chary,charcchar); voidDisplayString(charx,chary,char*str); voidDelay(unsignedint voidDelayUs(unsignedint bit void void void voidINTInit(void); void voidvoid

SpeedCount=Speed=Distance=0.0;

shortBack0=0; void{Starting...DisplayString(0x0,1,"DesignedBy202"); DisplayString(0x0,0,"ChooseTheMode");DisplayString(0x0,1,"youwant. { LineMode"); while {if(Next==True) if { }if {}if {DisplayString(0x0,0,"CurveMode"); {if(Next==True) if {}}}if {}if { {if{}}}if{}if{}} if(SelectedMode==Line&&AutoMode==0){DisplayString(0x0,0,"NowChoosea");DisplayString(0x0,1,"kindofSpeed");{ {if(Next==True) if { }if {}if{ LowSpeed"); {if(Next==True) if { }}}if {}if{DisplayString(0x0,0,"HighSpeed"); {if(Next==True) if {Thx[0]=0xe0;Tlx[0]=0xc0;//8msThx[1]=0xe0;Tlx[1]=0xc0;//8msThx[2]=0x63;Tlx[2]=0xc0;//40msThx[3]=0xec;Tlx[3]=0x78;//5ms}}}if {}if {}}} if{

DisplayString(0x0,0,"ChoosenModeis");DisplayString(0x0,1,"Line");Delay(50);}if{DisplayString(0x0,0,"ChoosenModeis");DisplayString(0x0,1,"Curve");}if{DisplayString(0x0,0,"ChoosenModeis }if{if{DisplayString(0x0,0,"ChoosenSpeedis");DisplayString(0x0,1,"Normal");}if{DisplayString(0x0,0,"ChoosenSpeedis");DisplayString(0x0,1,"Low");Delay(50);}if{DisplayString(0x0,0,"ChoosenSpeedis");DisplayString(0x0,1,"High");Delay(50);}} DisplayString(0x0,0,"LeftTimesToGo");while(ReadyToGo--){} DisplayString(0x0,1,"Designedby{ {{case0case1

case2:{}}{

default:break; {}

{}{

{}

{

{}{

{}{}}}}}}if{}} if {{if(GoToChoosingDisplay==True)DisplayString(0,1,"Costed");if(LowSpeedArea1PassTime>9) if(GoToChoosingDisplay==True)DisplayString(0,0,"HighSpeedAreaDisplayString(0,1,"Costed");if(HighSpeedAresTime>9) if(GoToChoosingDisplay==True)DisplayString(0,0,"LowSpeedArea2");DisplayString(0,1,"Costed");if(LowSpeedArea2PassTime>9) }}/*----------------菜單選擇你想要看的內(nèi)容--總時間、總路程以及平均速 DisplayString(0x0,0,"NowChoosewhatDisplayString(0x0,1,"youwanttosee{ CostedTime"); {}if(SelectedShow==True){DisplayString(0,0,"CostedTimeis"); }if {DisplayString(0x0,0,"AVGSpeed");DisplayString(0x0,1,"NextShow"); } {if}if{ if(AVGSpeedShow==False) }if DisplayString(0x0,0,"TotalDistance }}if {if(ReturnSelection==True) if{DisplayString(0,0,"TheAVGSpeedis"); }}if {} {}if(Next==True){ if(TotalDistanceShow==True)if {DisplayString(0x0,0,"TotalDistance");DisplayString(0x0,1,"NextShow"); }}if {if(ReturnSelection==True) if{if {DisplayString(0,0,"TheAVGSpeedis"); }if{ }}}if {}{

}if {if{DisplayString(0x0,0,"TotalDistance");DisplayString(0x0,1,"NextShow"); }}if{if(ReturnSelection==True) if{if{;//按 }}}if {}{

}if {if {}}if{if(ReturnSelection==True) if{if{ }}} {}if{}if{}}} void{ } 設(shè)置LCD為寫命令模式 void{}void{}void{} voidWriteCmd(char{ }voidWriteDhar{}void{}voidSetXY(charx,char{if}voidDisplaySingleChar(charx,chary,char{}voidDisplayString(charx,chary,char{{}}bit{return(bit)(P1&}voidDelay(unsignedint{

延時函 unsignedinttimeCounter=for(timeCounter=time;timeCounter>0;timeCounter--)}voidDelayUs(unsignedint{unsignedinttimeCounter=for(timeCounter=0;timeCounter<time;timeCounter} void{if(Area0<}void{ }void{

顯示時 charPassTime1=0x30;charPassTime2=0x30;charPassTime3=0x30;charif {}elseif((int)(PassTime*100100&&(int)(PassTime*100)10001s而未夠{}{}

if((int)(PassTime*100)<{}{}

} void{int intif((int)(Distance/PassTime*100)<{}{}

} 顯示路 void{intDistance1=0x30;intDistance2=0x30;intDistance3=0x30;intDistance4=0x30;if((int)(Distance*100)<{}elseif((int)(Distance*100)>100&&(int)(Distance*100)<{}{

}if((int)(Distance*100)<{}{}}

void{ }void{ }void{ } 外部中斷 voidSpeedINT(voidinterrupt {if(SelectedAll==False) if(Running==True) if(ChoosingDisplay==True) } 外部中斷 voidCtrSpeedINT(voidinterrupt {if {if(IsSelectingMode==True) if(IsSelectingSpeed==True) }if {if { }if ififif {{case5case10default}{

if {if(Area0==5)} {}}}if{}if{}} voidTime0INT(void)interrupt {{ case2case3:Distance=Distance-case4:SecondDistance=Distance-PrepareDistance-case5:ThirdDistance=Distance-PrepareDistance-Distance-SecondDistance;break;default:break;}{case0

case1

{}case2:{}}{

Thx[0]=Thx[1]=((High&0xf0)>>8);Tlx[0]=Tlx[1]=(High&0x0f);Th

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論