單片機(jī)的多功能智能小車設(shè)計(jì)(電路 程序)_第1頁(yè)
單片機(jī)的多功能智能小車設(shè)計(jì)(電路 程序)_第2頁(yè)
單片機(jī)的多功能智能小車設(shè)計(jì)(電路 程序)_第3頁(yè)
單片機(jī)的多功能智能小車設(shè)計(jì)(電路 程序)_第4頁(yè)
單片機(jī)的多功能智能小車設(shè)計(jì)(電路 程序)_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

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

3、制作了一個(gè)智能電動(dòng)車,其行駛路線滿足所需的要求。1.1 要求:1.1.1 基本要求:(1)分區(qū)控制:如(圖1)所示:(圖1) 車輛從起跑線出發(fā)(出發(fā)前,車體不得超出起跑線)。在第一個(gè)路程cd區(qū)(36米)以低速行駛,通過(guò)時(shí)間不低于10s;第二個(gè)路程de區(qū)(2米)以高速行駛,通過(guò)時(shí)間不得多于4秒;第三個(gè)路程ef區(qū)(36米)以低速行駛,通過(guò)時(shí)間不低于10s。 (2)小車能自動(dòng)記錄、顯示行駛時(shí)間、行駛距離以及行駛速度,還能記錄每段所走的時(shí)間,從而判斷是否符合課程設(shè)計(jì)要求。(記錄顯示裝置要求安裝在車上)。1.1.2 發(fā)揮部分:s型控制:如(圖2)所示:(圖2)車輛沿著s形鐵片行駛,自動(dòng)轉(zhuǎn)彎,自動(dòng)尋找正確

4、方向和鐵片。當(dāng)離開s型鐵片跑道或者感應(yīng)不到鐵片一段時(shí)間的時(shí)候,小車自動(dòng)停止,并記錄行駛時(shí)間,路程,平均速度并通過(guò)lcd顯示出來(lái)。2. 方案比較與選擇:根據(jù)設(shè)計(jì)任務(wù)要求,并且根據(jù)我們自己的需要而附加的功能,該電路的總體框圖可分為幾個(gè)基本的模塊,框圖如(圖3)所示:(圖3)2.1 路面檢測(cè)模塊:采用鐵片感應(yīng)器tl-q5mc來(lái)檢測(cè)路面上的鐵片從而給單片機(jī)中斷脈沖。原理圖接線如(圖4)所示:(圖4)2.2 lcd顯示模塊:采用1602lcd,由單片機(jī)的總線模式連接。為節(jié)約電源電量并且不影響lcd的功能,lcd的背光用單片機(jī)進(jìn)行控制,使lcd的背光在小車行駛的過(guò)程中不亮,因?yàn)槲覀儾槐乜雌滹@示;在其它我們

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

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

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

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

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

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

11、 (圖12)6. 最終pcb板圖:該最小系統(tǒng)的最終pcb板圖(包括lcd接口以及其他的外部擴(kuò)展電路部分,考慮到最小系統(tǒng)的簡(jiǎn)潔以及容易看懂,外部擴(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 /p1口#define write0x0

12、0/低電平寫入#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_enterset 0x06/顯示光標(biāo)

13、 #define busyp1_7/忙信號(hào)/*- 測(cè)速/測(cè)距/測(cè)時(shí)模塊 -*/#define circlelength0.132/小車轉(zhuǎn)一輪的長(zhǎng)度為.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 normal0x00/0 代表正常速度#

14、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 setxy(char x,char y);

15、/定位顯示地址void displaysinglechar(char x,char y,char cchar);/顯示單個(gè)字符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 displaydistance(vo

16、id);/顯示路程/*- 測(cè)速/測(cè)距/測(cè)時(shí)模塊 -*/ void intinit(void); /所有中斷初始化void speedint(void); /測(cè)速中斷void computetime(void);void computespeedanddistance(void);/計(jì)算速度和距離/*- 控速模塊 -*/void ctrspeedint(void); /控速中斷void time0int(void); void time1int(void); /控速單位時(shí)間中斷void clock0_init(void);/時(shí)鐘中斷初始化void clock1_init(void); /時(shí)鐘中斷

17、初始化void ctrspeed(void);/* 全局變量區(qū)*/float speedcount = 0; /測(cè)速計(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=0x48,0x48,0x68,0x48

18、,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 lowspeedarea1passtime=0

19、; /第一個(gè)低速區(qū)通過(guò)時(shí)間char highspeedareapasstime=0;/高速區(qū)通過(guò)時(shí)間char lowspeedarea2passtime=0;/第二個(gè)低速區(qū)通過(guò)時(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 modeselected;/已經(jīng)被選擇的模

20、式標(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 totaldistanceshow;/總路程顯示

21、標(biāo)志bit returnmain;/返回主菜單標(biāo)志bit autodisplay;/自動(dòng)顯示標(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í)的速度f(wàn)loat count=4;/時(shí)間的倍數(shù)/

22、* 全局函數(shù)實(shí)現(xiàn)區(qū)*/*-主函數(shù) -*/void main() p01=0;p02=0;p03=0;p04=0;p31=1;/單片機(jī)復(fù)位,背光開delay(40);/延時(shí)等待lcd啟動(dòng)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ā)selectedall=false; /開

23、始模式和速度選擇/*- 模式選擇 -*/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í)消除抖動(dòng)while (1) /不斷檢測(cè)中斷,直到按確定鍵或是next鍵if (next=true)/如果按next

24、鍵則直接跳出break;if (modeselected=true)/如果按確定鍵則設(shè)置模式為line并跳出selectedmode=line;break;/如果什么鍵都沒(méi)有按下,那么一直顯示等待if (modeselected=true)/按下了確定鍵,退出模式選擇isselectingmode=false;break;if (next=true)/按下了next鍵,顯示下一個(gè)菜單項(xiàng)next=false;writecmd(lcd_cls);displaystring(0x0,0, curve mode );displaystring(0x0,1,next yes);delay(300);/延

25、時(shí)消除抖動(dòng)while(1)/不斷檢測(cè)中斷,直到按確定鍵或是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);displaystring(0x0,0, automod

26、e );displaystring(0x0,1,next yes);delay(300); /延時(shí)消除抖動(dòng)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)displaystring(0x0,0,

27、 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í)消除抖動(dòng)while(1)if (next=true) /如果按next鍵則直接跳出break;if (speedselected=true) /如果按確定鍵則設(shè)置速度為normal

28、并跳出thx0=0xec;tlx0=0x78; /5msthx1=0xf0;tlx1=0x60; /4msthx2=0x8a;tlx2=0xd0; /30msthx3=0xf4;tlx3=0x48; /3msselectedspeed=normal;break; /如果什么鍵都沒(méi)有按下,那么一直顯示等待if (speedselected=true) /按下了確定鍵,退出速度選擇isselectingspeed=false;break;if (next=true)next=false;writecmd(lcd_cls); displaystring(0x0,0, low speed );disp

29、laystring(0x0,1,next yes);delay(300); /延時(shí)消除抖動(dòng)while(1)if (next=true)/如果再一次按下next鍵,則跳出break;if (speedselected=true)/如果按下確定鍵,則設(shè)置速度為low,并跳出selectedspeed=low;/這里沒(méi)有速度設(shè)置,因?yàn)槟J(rèn)速度就是lowbreak;if (speedselected=true)/按下了確定鍵,退出速度選擇isselectingspeed=false;break;if (next=true)next=false;writecmd(lcd_cls);displaystri

30、ng(0x0,0, high speed );displaystring(0x0,1,next yes);delay(300); /延時(shí)消除抖動(dòng)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; /5msselectedspeed=high;break;if (sp

31、eedselected=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 );displaystring(0x0,1, line );de

32、lay(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)if (selectedspeed=no

33、rmal)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);displaystring(0x0,1, hi

34、gh );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, living. );displays

35、tring(0x0,1,designed by 202);if (selectedmode=line&automode=0)flag=area0;else flag=1;while(flag5) if(automode=1) /自動(dòng)模式 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; break; default :brea

36、k; 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; else p01=0;p02=0;p03=

37、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; if (ist1int=1)ist1int=0;computetime();computespeedanddistance();/補(bǔ)中斷路程,加上

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論