九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)的多功能智能小車畢業(yè)論文(電路 程序 論文)

上傳人:仙*** 文檔編號:31786362 上傳時(shí)間:2021-10-12 格式:DOC 頁數(shù):49 大小:683.53KB
收藏 版權(quán)申訴 舉報(bào) 下載
畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)的多功能智能小車畢業(yè)論文(電路 程序 論文)_第1頁
第1頁 / 共49頁
畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)的多功能智能小車畢業(yè)論文(電路 程序 論文)_第2頁
第2頁 / 共49頁
畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)的多功能智能小車畢業(yè)論文(電路 程序 論文)_第3頁
第3頁 / 共49頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)的多功能智能小車畢業(yè)論文(電路 程序 論文)》由會員分享,可在線閱讀,更多相關(guān)《畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)的多功能智能小車畢業(yè)論文(電路 程序 論文)(49頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、基于單片機(jī)的多功能智能小車設(shè)計(jì)論文(電路+程序+論文)摘 要(關(guān)鍵詞:智能車 單片機(jī) 金屬感應(yīng)器 霍爾元件 1602LCD)智能作為現(xiàn)代的新發(fā)明,是以后的發(fā)展方向,他可以按照預(yù)先設(shè)定的模式在一個環(huán)境里自動的運(yùn)作,不需要人為的管理,可應(yīng)用于科學(xué)勘探等等的用途。智能電動車就是其中的一個體現(xiàn)。本次設(shè)計(jì)的簡易智能電動車,采用AT89S52單片機(jī)作為小車的檢測和控制核心;采用金屬感應(yīng)器TL-Q5MC來檢測路上感應(yīng)到的鐵片,從而把反饋到的信號送單片機(jī),使單片機(jī)按照預(yù)定的工作模式控制小車在各區(qū)域按預(yù)定的速度行駛,并且單片機(jī)選擇的工作模式不同也可控制小車順著S形鐵片行駛;采用霍爾元件A44E檢測小車行駛速度;

2、采用1602LCD實(shí)時(shí)顯示小車行駛的時(shí)間,小車停止行駛后,輪流顯示小車行駛時(shí)間、行駛距離、平均速度以及各速度區(qū)行駛的時(shí)間。本設(shè)計(jì)結(jié)構(gòu)簡單,較容易實(shí)現(xiàn),但具有高度的智能化、人性化,一定程度體現(xiàn)了智能。目 錄1 設(shè)計(jì)任務(wù)31.1 要求32 方案比較與選擇4 2.1路面檢測模塊4 2.2 LCD顯示模塊5 2.3測速模塊5 2.4控速模塊6 2.5模式選擇模塊73 程序框圖74 系統(tǒng)的具體設(shè)計(jì)與實(shí)現(xiàn)9 4.1路面檢測模塊9 4.2 LCD顯示模塊94.3測速模塊94.4控速模塊94.5復(fù)位電路模塊94.6模式選擇模塊95 最小系統(tǒng)圖106 最終PCB板圖127 系統(tǒng)程序138 致謝469 參考文獻(xiàn)4

3、710 附錄481. 設(shè)計(jì)任務(wù):設(shè)計(jì)并制作了一個智能電動車,其行駛路線滿足所需的要求。1.1 要求:1.1.1 基本要求:(1)分區(qū)控制:如(圖1)所示:(圖1) 車輛從起跑線出發(fā)(出發(fā)前,車體不得超出起跑線)。在第一個路程CD區(qū)(36米)以低速行駛,通過時(shí)間不低于10s;第二個路程DE區(qū)(2米)以高速行駛,通過時(shí)間不得多于4秒;第三個路程EF區(qū)(36米)以低速行駛,通過時(shí)間不低于10s。 (2)小車能自動記錄、顯示行駛時(shí)間、行駛距離以及行駛速度,還能記錄每段所走的時(shí)間,從而判斷是否符合課程設(shè)計(jì)要求。(記錄顯示裝置要求安裝在車上)。1.1.2 發(fā)揮部分:S型控制:如(圖2)所示:(圖2)車輛沿

4、著S形鐵片行駛,自動轉(zhuǎn)彎,自動尋找正確方向和鐵片。當(dāng)離開S型鐵片跑道或者感應(yīng)不到鐵片一段時(shí)間的時(shí)候,小車自動停止,并記錄行駛時(shí)間,路程,平均速度并通過LCD顯示出來。2. 方案比較與選擇:根據(jù)設(shè)計(jì)任務(wù)要求,并且根據(jù)我們自己的需要而附加的功能,該電路的總體框圖可分為幾個基本的模塊,框圖如(圖3)所示:(圖3)2.1 路面檢測模塊:采用鐵片感應(yīng)器TL-Q5MC來檢測路面上的鐵片從而給單片機(jī)中斷脈沖。原理圖接線如(圖4)所示:(圖4)2.2 LCD顯示模塊:采用1602LCD,由單片機(jī)的總線模式連接。為節(jié)約電源電量并且不影響LCD的功能,LCD的背光用單片機(jī)進(jìn)行控制,使LCD的背光在小車行駛的過程中

5、不亮,因?yàn)槲覀儾槐乜雌滹@示;在其它我們需要看顯示的內(nèi)容的時(shí)候LCD背光亮。2.3 測速模塊:2.3.1 方案1:采用采用霍爾開關(guān)元器件A44E檢測輪子上的小磁鐵從而給單片機(jī)中斷脈沖,達(dá)到測量速度的作用。霍爾元件具有體積小,頻率響應(yīng)寬度大,動態(tài)特性好,對外圍電路要求簡單,使用壽命長,價(jià)格低廉等特點(diǎn),電源要求不高,安裝也較為方便?;魻栭_關(guān)只對一定強(qiáng)度的磁場起作用,抗干擾能力強(qiáng),因此可以在車輪上安裝小磁鐵,而將霍爾器件安裝在固定軸上,通過對脈沖的計(jì)數(shù)進(jìn)行車速測量。2.3.2 方案2:采用紅外傳感器進(jìn)行測速。但無論是反射式紅外傳感器還是對射式紅外傳感器,他們對都對外圍環(huán)境要求較高,易受外部環(huán)境的影響,

6、穩(wěn)定性不高,且價(jià)格較為昂貴。通過對方案1、方案2的比較其優(yōu)缺點(diǎn),綜合多方面因素決定選用方案1,其原理圖接線如(圖5)所示:(圖5)2.4 控速模塊:2.4.1 方案1:使用功率三極管作為功率放大器的輸出控制直流電機(jī)。線性型驅(qū)動的電路結(jié)構(gòu)和原理簡單,成本低,加速能力強(qiáng),但功率損耗大,特別是低速大轉(zhuǎn)距運(yùn)行時(shí),通過電阻R的電流大,發(fā)熱厲害,損耗大,對于小車的長時(shí)間運(yùn)行不利。2.4.2 方案2:采用繼電器對電動機(jī)的開或關(guān)進(jìn)行控制,通過開關(guān)的切換對小車的速度進(jìn)行調(diào)整.此方案的優(yōu)點(diǎn)是電路較為簡單,缺點(diǎn)是繼電器的響應(yīng)時(shí)間慢,易損壞,壽命較短,可靠性不高。2.4.3 方案3:采用由雙極性管組成的H橋電路。用單

7、片機(jī)控制晶體管使之工作在占空比可調(diào)的開關(guān)狀態(tài),精確調(diào)整電機(jī)轉(zhuǎn)速。這種電路由于工作在管子的飽和截止模式下,效率非常高;H橋電路保證了可以簡單地實(shí)現(xiàn)轉(zhuǎn)速和方向的控制;電子開關(guān)的速度很快,穩(wěn)定性也很高,是一種廣泛采用的調(diào)速技術(shù)。綜合3種方案的優(yōu)缺點(diǎn),決定選擇方案3,其電路原理圖如(圖6)所示:(圖6)2.5 模式選擇模塊:模式選擇模塊通過一個74LS00與非門和兩個不帶鎖按鈕來控制單片機(jī)單片機(jī)的兩個中斷口,從而按動按鈕來選擇小車走動的路型、來選擇小車的速度是快速、中速、慢速;走完路程小車停止后還可以通過按鈕選擇想要在LCD上想看的信息,比如總時(shí)間、走過各段路程的時(shí)間、平均速度、總路程等。小車走動的模

8、式選擇有:(1) 直線型:滿足設(shè)計(jì)任務(wù)的基本要求,能穩(wěn)定的走完全程。之后按順序循環(huán)不斷的顯示走完全程所用的時(shí)間、走完高速區(qū)所用的時(shí)間和走完低速區(qū)所用的時(shí)間這三個時(shí)間;或者可以通過兩個按鈕以及LCD顯示的菜單選擇所要看的內(nèi)容如平均速度、全程距離以及那三個時(shí)間。(2) S型:滿足設(shè)計(jì)任務(wù)的發(fā)揮部分的要求,小車能自動的感應(yīng)到在前面或在后面鐵片,即第一次轉(zhuǎn)彎后若感應(yīng)到的是錯誤的方向,則小車會后退自動調(diào)整方向,沿著S型的鐵片走。當(dāng)走完S型鐵片后的一定時(shí)間里,小車自動停止。之后自動進(jìn)入菜單由我們自己選擇要看的內(nèi)容時(shí)間、平均速度和所走的距離。(3)自動型:小車先以一定的速度走完全程,之后再以一定的速度倒退回

9、起點(diǎn),再調(diào)整速度在一定的時(shí)間內(nèi)走完全程。走完后LCD顯示的內(nèi)容與直線型顯示的內(nèi)容一樣。3. 程序框圖:單片機(jī)主程序框圖、速度感應(yīng)程序框圖和鐵片感應(yīng)程序框圖分別如(圖7)所示。(圖7)4系統(tǒng)的具體設(shè)計(jì)與實(shí)現(xiàn):4.1 路面檢測模塊: 應(yīng)用一個金屬感應(yīng)器,安裝在車盤下,離地略小于或約四毫米。當(dāng)金屬傳感器檢測到鐵片時(shí)將對單片機(jī)發(fā)送中斷信號,單片機(jī)運(yùn)行中斷,改變輸給電機(jī)驅(qū)動信號的電壓占空比來控制小車的速度。4.2 LCD顯示模塊:采用1602LCD,由單片機(jī)的總線模式連接。為節(jié)約電源,LCD的背光用單片機(jī)進(jìn)行控制。4.3 測速模塊:通過霍爾元件感應(yīng)磁鐵來產(chǎn)生脈沖(當(dāng)霍爾元件在離磁場較近時(shí)輸出會是高電平,

10、其它時(shí)候是低電平),一個車輪均勻放四個小磁鐵,計(jì)算一秒所得的脈沖數(shù),從而計(jì)算出一秒小車輪子轉(zhuǎn)動圈數(shù),再測量出小車車輪周長即可計(jì)算出小車當(dāng)前速度,累加可得到當(dāng)前路程。4.4 控速模塊:考慮到元器件的缺少以及我們所用的電路的驅(qū)動電機(jī)的電路原理圖和和小車自帶的電路的電機(jī)驅(qū)動原理圖一樣,所以暫時(shí)使用小車自帶的電機(jī)驅(qū)動電路圖。4.5 復(fù)位電路模塊:單片機(jī)的復(fù)位電路通過手動來實(shí)現(xiàn),復(fù)位電路圖如(圖8)所示。(圖8)4.6 模式選擇模塊:兩個中斷口使用和感應(yīng)鐵片、感應(yīng)速度所使用的中斷口一樣,通過一個與非門和按鈕控制。原理圖如(圖9)所示:(圖9)5最小系統(tǒng)圖: 該系統(tǒng)主要用到的是單片機(jī),所以主要的部分是最小

11、系統(tǒng)圖,該最小系統(tǒng)圖如(圖10)所示: (圖12)6. 最終PCB板圖:該最小系統(tǒng)的最終PCB板圖(包括LCD接口以及其他的外部擴(kuò)展電路部分,考慮到最小系統(tǒng)的簡潔以及容易看懂,外部擴(kuò)展電路不在最小系統(tǒng)圖上顯示。)分別如(圖11)、(圖12)所示:(圖11)(圖12)7系統(tǒng)程序:按照預(yù)定的功能,系統(tǒng)實(shí)現(xiàn)預(yù)定的功能的程序如下所示:#include #include /* 宏定義區(qū)*/*- LCD模塊 -*/#define LCD_RW P2_6 /讀寫控制端#define LCD_RS P2_7/數(shù)據(jù)命令選擇端#define LCD_E P2_5/執(zhí)行使能端#define LCD_DataP1 /

12、P1口#define Write0x00/低電平寫入#define Read0x01/高電平讀出#define Data0x01/高電平選擇數(shù)據(jù)#define Cmd0x00/低電平選擇命令#define Enable0x00/躍變到低電平時(shí)執(zhí)行命令#define Disable0x01 #define True0x01#define False0x00#define LCD_Init0x38/初始化模式#define LCD_DispCtr 0x0C/開顯示及光標(biāo)設(shè)置#define LCD_CloseCtr0x08/關(guān)顯示#define LCD_CLS 0x01/清屏幕#define LCD

13、_EnterSet 0x06/顯示光標(biāo) #define BusyP1_7/忙信號/*- 測速/測距/測時(shí)模塊 -*/#define CircleLength0.132/小車轉(zhuǎn)一輪的長度為.132m/*- 控速模塊 -*/#define P03P0_3 /后電機(jī)#define P04P0_4 /后電機(jī)#define P01 P0_1 /前電機(jī)#define P02P0_2 /前電機(jī)#define P31P0_5 /控制液晶背光#define P33P3_3/*- 菜單選擇模塊-*/#define Line0x00/0代表直線模式#define Curve0x01/1代表S型模式#define N

14、ormal0x00/0 代表正常速度#define Low0x01/1 代表低速#define High0x02/2 代表高速/* 全局函數(shù)聲明區(qū) */*- LCD模塊 -*/void LCDInit(void);/LCD初始化void SetWriteCmd(void);/設(shè)置寫命令模式void SetReadCmd(void);/設(shè)置讀命令模式void SetWriteData(void);/設(shè)置寫數(shù)據(jù)模式void WriteCmd(char cmd);/寫命令void WriteData(char ddata);/寫數(shù)據(jù)void ExecuteCmd(void);/執(zhí)行命令void Se

15、tXY(char x,char y);/定位顯示地址void DisplaySingleChar(char x,char y,char cchar);/顯示單個字符void DisplayString(char x,char y,char *str); /顯示一段字符串void Delay(unsigned int time);/延時(shí)主程序void DelayUs(unsigned int time);/延時(shí)子程序bit IsBusy(void);/判斷忙標(biāo)志函數(shù)void DisplayTime(void);/顯示時(shí)間void DisplayAVGSpeed(void);/顯示平均速度void

16、 DisplayDistance(void);/顯示路程/*- 測速/測距/測時(shí)模塊 -*/ void INTInit(void); /所有中斷初始化void SpeedINT(void); /測速中斷void ComputeTime(void);void ComputeSpeedANDDistance(void);/計(jì)算速度和距離/*- 控速模塊 -*/void CtrSpeedINT(void); /控速中斷void Time0INT(void); void Time1INT(void); /控速單位時(shí)間中斷void Clock0_Init(void);/時(shí)鐘中斷初始化void Clock

17、1_Init(void); /時(shí)鐘中斷初始化void CtrSpeed(void);/* 全局變量區(qū)*/float SpeedCount = 0; /測速計(jì)數(shù)脈沖float Speed = 0.0;float Distance = 0.0; char Time1INTCount=0;/T1中斷時(shí)間計(jì)時(shí)float PassTime=0.00;/小車行走的時(shí)間short IsT0INT=1;bit IsT1INT;/判斷T1是否已經(jīng)響應(yīng)中斷short IsT0INT2=1;char Thx5=0xf4,0xf4,0xc5,0xf4,0xff; /3ms,3ms,15ms,3mschar Tlx5=

18、0x48,0x48,0x68,0x48,0xff;char Thx0=0xd8;char Tlx0=0xf0;char Thx1=0xb1; /20mschar Tlx1=0xe0;short Round=0;short Back=0;short Back0=0;bit Backid;bit Stop=0;char Area0=0;char Area1=0;/區(qū)域變量char LowSpeedArea1StartTime;char LowSpeedArea1EndTime;char HighSpeedAreaEndTime;char LowSpeedArea2EndTime;char LowS

19、peedArea1PassTime=0; /第一個低速區(qū)通過時(shí)間char HighSpeedAreaPassTime=0;/高速區(qū)通過時(shí)間char LowSpeedArea2PassTime=0;/第二個低速區(qū)通過時(shí)間char ReadyToGo=4;/倒計(jì)時(shí)char flag;bit Roundid=0;char Nocurve=0; char ChangeFlag;char Mode; bit Running;bit SelectedAll;/模式和速度是否選擇完畢標(biāo)志bit IsSelectingMode;/模式選擇標(biāo)志bit IsSelectingSpeed;/速度選擇標(biāo)志bit Mo

20、deSelected;/已經(jīng)被選擇的模式標(biāo)志char SelectedMode=10;/模式選擇是否完畢標(biāo)志bit Next;/Next鍵標(biāo)志bit SpeedSelected;/已經(jīng)被選中的速度方案標(biāo)志char SelectedSpeed;/速度選擇是否完畢標(biāo)志bit ChoosingDisplay;/人工選擇菜單開始標(biāo)志bit SelectedShow;/顯示選擇標(biāo)志bit SelectedReturn;/返回選擇標(biāo)志bit Selected;/確定/返回鍵選擇標(biāo)志bit ReturnSelection;/返回鍵啟用標(biāo)志bit AVGSpeedShow;/平均速度顯示標(biāo)志bit Total

21、DistanceShow;/總路程顯示標(biāo)志bit ReturnMain;/返回主菜單標(biāo)志bit AutoDisplay;/自動顯示標(biāo)志bit GoToChoosingDisplay;/人工選擇標(biāo)志bit AutoMode=0;char PassLineID=0;char PassLine=0;float PrepareDistance;float FirstDistance;float SecondDistance;float ThirdDistance;int FirstHigh;int SecondHigh;int ThirdHigh;float Rate=1.25; /5ms時(shí)的速度fl

22、oat Count=4;/時(shí)間的倍數(shù)/* 全局函數(shù)實(shí)現(xiàn)區(qū)*/*-主函數(shù) -*/void main() P01=0;P02=0;P03=0;P04=0;P31=1;/單片機(jī)復(fù)位,背光開Delay(40);/延時(shí)等待LCD啟動LCDInit();/初始化LCDDisplayString(0x0,0, Starting. );DisplayString(0x0,1,Designed By 202);Delay(300);WriteCmd(LCD_CLS);EA=1; /開總中斷EX0=1;/開INT0中斷IT0=1;/INTO邊沿觸發(fā)EX1=1; /開INT1中斷IT1=1; /INT1邊沿觸發(fā)Se

23、lectedAll=False; /開始模式和速度選擇/*- 模式選擇 -*/DisplayString(0x0,0,Choose The Mode );DisplayString(0x0,1,you want. );Delay(50);WriteCmd(LCD_CLS);IsSelectingMode=True;while(1) WriteCmd(LCD_CLS);DisplayString(0x0,0, Line Mode );DisplayString(0x0,1,Next Yes);Delay(300);/延時(shí)消除抖動while (1) /不斷檢測中斷,直到按確定鍵或是NEXT鍵if

24、(Next=True)/如果按Next鍵則直接跳出break;if (ModeSelected=True)/如果按確定鍵則設(shè)置模式為Line并跳出SelectedMode=Line;break;/如果什么鍵都沒有按下,那么一直顯示等待if (ModeSelected=True)/按下了確定鍵,退出模式選擇IsSelectingMode=False;break;if (Next=True)/按下了Next鍵,顯示下一個菜單項(xiàng)Next=False;WriteCmd(LCD_CLS);DisplayString(0x0,0, Curve Mode );DisplayString(0x0,1,Next

25、 Yes);Delay(300);/延時(shí)消除抖動while(1)/不斷檢測中斷,直到按確定鍵或是Next鍵 if (Next=True)/如果再一次按下Next鍵,則跳出break;if (ModeSelected=True)/如果按下確定鍵,則設(shè)置模式為Curve,并跳出SelectedMode=Curve;break; if (ModeSelected=True) /按下了確定鍵,退出模式選擇IsSelectingMode=False;break;if (Next=True)/再一次按下了Next鍵,則循環(huán)模式選擇Next=False;WriteCmd(LCD_CLS);DisplaySt

26、ring(0x0,0, AutoMode );DisplayString(0x0,1,Next Yes);Delay(300); /延時(shí)消除抖動while(1)if (Next=True)break;if (ModeSelected=True)AutoMode=1;break;if (ModeSelected=True)IsSelectingMode=False;break;if (Next=True)Next=False;continue;Delay(50);WriteCmd(LCD_CLS); /*- 速度選擇 -*/if (SelectedMode=Line & AutoMode=0)D

27、isplayString(0x0,0, Now Choose a );DisplayString(0x0,1, kind of Speed );Delay(50);WriteCmd(LCD_CLS);IsSelectingSpeed=True;while(1)WriteCmd(LCD_CLS);DisplayString(0x0,0, Normal Speed );DisplayString(0x0,1,Next Yes);Delay(300); /延時(shí)消除抖動while(1)if (Next=True) /如果按Next鍵則直接跳出break;if (SpeedSelected=True)

28、/如果按確定鍵則設(shè)置速度為Normal并跳出Thx0=0xec;Tlx0=0x78; /5msThx1=0xf0;Tlx1=0x60; /4msThx2=0x8a;Tlx2=0xd0; /30msThx3=0xf4;Tlx3=0x48; /3msSelectedSpeed=Normal;break; /如果什么鍵都沒有按下,那么一直顯示等待if (SpeedSelected=True) /按下了確定鍵,退出速度選擇IsSelectingSpeed=False;break;if (Next=True)Next=False;WriteCmd(LCD_CLS); DisplayString(0x0,

29、0, Low Speed );DisplayString(0x0,1,Next Yes);Delay(300); /延時(shí)消除抖動while(1)if (Next=True)/如果再一次按下Next鍵,則跳出break;if (SpeedSelected=True)/如果按下確定鍵,則設(shè)置速度為Low,并跳出SelectedSpeed=Low;/這里沒有速度設(shè)置,因?yàn)槟J(rèn)速度就是Lowbreak;if (SpeedSelected=True)/按下了確定鍵,退出速度選擇IsSelectingSpeed=False;break;if (Next=True)Next=False;WriteCmd(L

30、CD_CLS);DisplayString(0x0,0, High Speed );DisplayString(0x0,1,Next Yes);Delay(300); /延時(shí)消除抖動while(1)if (Next=True) /如果再一次按下Next鍵,則跳出break;if (SpeedSelected=True) /如果按下確定鍵,則設(shè)置速度為High,并跳出Thx0=0xe0;Tlx0=0xc0; /8ms Thx1=0xe0;Tlx1=0xc0; /8ms Thx2=0x63;Tlx2=0xc0; /40ms Thx3=0xec;Tlx3=0x78; /5msSelectedSpee

31、d=High;break;if (SpeedSelected=True) /按下了確定鍵,退出速度選擇IsSelectingSpeed=False;break;if (Next=True) /再一次按下了Next鍵,則循環(huán)速度選擇Next=False;continue;SelectedAll=True; /標(biāo)志模式選擇和速度選擇完畢Running=True;Delay(50);WriteCmd(LCD_CLS);/*- 顯示所選擇的模式和速度方案 -*/if (SelectedMode=Line)DisplayString(0x0,0,Choosen Mode is );DisplayStri

32、ng(0x0,1, Line );Delay(50);WriteCmd(LCD_CLS);if (SelectedMode=Curve)DisplayString(0x0,0,Choosen Mode is );DisplayString(0x0,1, Curve );Delay(50);WriteCmd(LCD_CLS);if (AutoMode=1)DisplayString(0x0,0,Choosen Mode is );DisplayString(0x0,1, AutoMode );Delay(50);WriteCmd(LCD_CLS); if (SelectedMode=Line)i

33、f (SelectedSpeed=Normal)DisplayString(0x0,0,Choosen Speed is);DisplayString(0x0,1, Normal );Delay(50);WriteCmd(LCD_CLS);if (SelectedSpeed=Low)DisplayString(0x0,0,Choosen Speed is);DisplayString(0x0,1, Low );Delay(50);WriteCmd(LCD_CLS);if (SelectedSpeed=High)DisplayString(0x0,0,Choosen Speed is);Disp

34、layString(0x0,1, High );Delay(50);WriteCmd(LCD_CLS);INTInit(); /初始化所有中斷DisplayString(0x0,0,Left Times To Go);while (ReadyToGo-) DisplaySingleChar(0x7,1,ReadyToGo+0x30);DisplaySingleChar(0x09,1,s);Delay(300);WriteCmd(LCD_CLS);DisplayString(0x05,0,Go!);Delay(100);WriteCmd(LCD_CLS);DisplayString(0x0,0,

35、 Living. );DisplayString(0x0,1,Designed by 202);if (SelectedMode=Line&AutoMode=0)flag=Area0;else flag=1;while(flag5) if(AutoMode=1) /自動模式 switch(PassLineID) case 0 : if(IsT0INT=1) P01=P02=P04=0;P03=1; else P01=P02=P03=P04=0; break; case 1 : P01=P02=P03=0;P04=1; break; case 2 : P01=P02=P04=0;P03=1; b

36、reak; default :break; else if(SelectedMode=Line) /直線模式 flag=Area0; if(IsT0INT=1) P03=1;P04=0;P01=P02=0; else P03=0;P04=0;P01=P02=0; else /S型模式 if(Nocurve0)&Back!=0) if(Backid=1) P01=1;P02=0;P03=0;P04=1; else P01=0;P02=1;P03=0;P04=1; Back=1; else if(Round=0) if(IsT0INT2=1) P01=0;P02=0;P03=1;P04=0; el

37、se P01=0;P02=0;P03=0;P04=0; else if(P33=0) if(IsT0INT2=1)P01=0;P02=0;P03=1;P04=0; else P01=0;P02=0;P03=0;P04=0; else EX1=1; if(Round%2) if(IsT0INT2=1) P01=1;P02=0;P03=1;P04=0;Backid=1; else P01=1;P02=0;P03=0;P04=0; else if(IsT0INT2=1) P01=0;P02=1;P03=1;P04=0;Backid=0; else P01=0;P02=1;P03=0;P04=0; i

38、f (IsT1INT=1)IsT1INT=0;ComputeTime();ComputeSpeedANDDistance();/補(bǔ)中斷路程,加上最后一次中斷缺失的路程ComputeSpeedANDDistance();P04=1;P03=0;P01=P02=0;Delay(90);P03=0;P04=0;/行程結(jié)束,小車停止P31=1; /行程結(jié)束,背光開ET0=0x0; /關(guān)T0中斷ET1=0x0; /關(guān)T1中斷EX1=0x01; /開INT1中斷Running=False;AutoDisplay=True;/默認(rèn)情況下直線模式會自動顯示各個區(qū)域經(jīng)過的時(shí)間WriteCmd(LCD_CLS);

39、if (SelectedMode=Line) /直線模式才顯示while(1)if (GoToChoosingDisplay=True)break;Delay(200);WriteCmd(LCD_CLS);Delay(200);DisplayString(0,0, LowSpeedArea1);DisplayString(0,1, Costed );DisplaySingleChar(0x0C,1,s);LowSpeedArea1PassTime=LowSpeedArea1EndTime-LowSpeedArea1StartTime;DisplaySingleChar(0x0A,1,LowSp

40、eedArea1PassTime%10+0x30);if (LowSpeedArea1PassTime 9) /通過第一個低速區(qū)的時(shí)間超過sDisplaySingleChar(0x0B,1,LowSpeedArea1PassTime/10+0x30);if (GoToChoosingDisplay=True) break;Delay(200);WriteCmd(LCD_CLS);Delay(200);DisplayString(0,0, HighSpeedArea );DisplayString(0,1, Costed );DisplaySingleChar(0x0C,1,s);HighSpe

41、edAreaPassTime=HighSpeedAreaEndTime-LowSpeedArea1EndTime;DisplaySingleChar(0x0A,1,HighSpeedAreaPassTime%10+0x30);if ( HighSpeedAreaPassTime 9) /通過高速區(qū)的時(shí)間超過sDisplaySingleChar(0x0B,1,HighSpeedAreaPassTime/10+0x30);if (GoToChoosingDisplay=True)break;Delay(200);WriteCmd(LCD_CLS);Delay(200);DisplayString(0,0, LowSpeedArea2 );Display

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!