畢業(yè)設(shè)計(jì)論文基于51單片機(jī)的多功能智能小車(chē)設(shè)計(jì)論文電路程序論文
《畢業(yè)設(shè)計(jì)論文基于51單片機(jī)的多功能智能小車(chē)設(shè)計(jì)論文電路程序論文》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《畢業(yè)設(shè)計(jì)論文基于51單片機(jī)的多功能智能小車(chē)設(shè)計(jì)論文電路程序論文(70頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)的多功能智能小車(chē)設(shè)計(jì)論文(電路+程序+論文) 基于單片機(jī)的多功能智能小車(chē)設(shè)計(jì)論文 電路程序論文 摘 要 關(guān)鍵詞智能車(chē) 單片機(jī) 金屬感應(yīng)器 霍爾元件 1602LCD 智能作為現(xiàn)代的新發(fā)明是以后的發(fā)展方向他可以按照預(yù)先設(shè)定的模式在一個(gè)環(huán)境里自動(dòng)的運(yùn)作不需要人為的管理可應(yīng)用于科學(xué)勘探等等的用途智能電動(dòng)車(chē)就是其中的一個(gè)體現(xiàn)本次設(shè)計(jì)的簡(jiǎn)易智能電動(dòng)車(chē)采用AT89S52單片機(jī)作為小車(chē)的檢測(cè)和控制核心采用金屬感應(yīng)器TL-Q5MC來(lái)檢測(cè)路上感應(yīng)到的鐵片從而把反饋到的信號(hào)送單片機(jī)使
2、單片機(jī)按照預(yù)定的工作模式控制小車(chē)在各區(qū)域按預(yù)定的速度行駛并且單片機(jī)選擇的工作模式不同也可控制小車(chē)順著S形鐵片行駛采用霍爾元件A44E檢測(cè)小車(chē)行駛速度采用1602LCD實(shí)時(shí)顯示小車(chē)行駛的時(shí)間小車(chē)停止行駛后輪流顯示小車(chē)行駛時(shí)間3 11 要求3 2 方案比較與選擇4 21路面檢測(cè)模塊4 22 LCD顯示模塊5 23測(cè)速模塊5 24控速模塊6 25模式選擇模塊7 3 程序框圖7 4 系統(tǒng)的具體設(shè)計(jì)與實(shí)現(xiàn)9 41路面檢測(cè)模塊9 42 LCD顯示模塊9 43測(cè)速模塊9 44控速模塊9 45復(fù)位電路模塊9 46模式選擇模塊9 5 最小系統(tǒng)圖10
3、6 最終PCB板圖12 7 系統(tǒng)程序13 8 致謝46 9 參考文獻(xiàn)47 10 附錄48 1 設(shè)計(jì)任務(wù) 設(shè)計(jì)并制作了一個(gè)智能電動(dòng)車(chē) 圖1 車(chē)輛從起跑線(xiàn)出發(fā)出發(fā)前車(chē)體不得超出起跑線(xiàn)在第一個(gè)路程CD區(qū)3~6米以低速行駛通過(guò)時(shí)間不低于10s第二個(gè)路程D~E速通過(guò)時(shí)間不得于秒自動(dòng)記錄顯示時(shí)間行駛距離 圖2 車(chē)輛沿著S形鐵片行駛自動(dòng)轉(zhuǎn)彎自動(dòng)尋找正確方向和鐵片當(dāng)離開(kāi)S型鐵片跑道或者感應(yīng)不到鐵片一段時(shí)間的時(shí)候小車(chē)自動(dòng)停止并記錄行駛時(shí)間路程平均速度并通過(guò)LCD顯示出來(lái) 2 方案比較與選擇 根據(jù)設(shè)計(jì)任務(wù)要求并且根據(jù)我們自己的需要而附加的功能該電路的總體框圖可分為幾個(gè)基本的模塊框圖
4、如圖3所示 圖3 21 路面檢測(cè)模塊 采用鐵片感應(yīng)器TL-Q5MC來(lái)檢測(cè)路面上的鐵片從而給單片機(jī)中斷脈沖原理圖接線(xiàn)如圖4所示 圖4 22 LCD顯示模塊 采用1602LCD由單片機(jī)的總線(xiàn)模式連接為節(jié)約電源電量并且不影響LCD的功能LCD的背光用單片機(jī)進(jìn)行控制使LCD的背光在小車(chē)行駛的過(guò)程中不亮因?yàn)槲覀儾槐乜雌滹@示在其它我們需要看顯示的內(nèi)容的時(shí)候LCD背光亮 23 測(cè)速模塊 231 方案1 采用采用霍爾開(kāi)關(guān)元器件A44E檢測(cè)輪子上的小磁鐵從而給單片機(jī)中斷脈沖達(dá)到測(cè)量速度的作用霍爾元件具有體積小頻率響應(yīng)寬度大動(dòng)態(tài)特性好對(duì)外圍電路要求簡(jiǎn)單使用壽命長(zhǎng)價(jià)格低廉等特點(diǎn)電源要求不高安裝也較
5、為方便霍爾開(kāi)關(guān)只對(duì)一定強(qiáng)度的磁場(chǎng)起作用抗干擾能力強(qiáng)因此可以在車(chē)輪上安裝小磁鐵而將霍爾器件安裝在固定軸上通過(guò)對(duì)脈沖的計(jì)數(shù)進(jìn)行車(chē)速測(cè)量 232 方案2 采用紅外傳感器進(jìn)行測(cè)速但無(wú)論是反射式紅外傳感器還是對(duì)射式紅外傳感器他們對(duì)都對(duì)外圍環(huán)境要求較高易受外部環(huán)境的影響穩(wěn)定性不高且價(jià)格較為昂貴 通過(guò)對(duì)方案1方案2的比較其優(yōu)缺點(diǎn)綜合多方面因素決定選用方案1其原理圖接線(xiàn)如圖5所示 圖5 24 控速模塊 241 方案1 使用功率三極管作為功率放大器的輸出控制直流電機(jī)線(xiàn)性型驅(qū)動(dòng)的電路結(jié)構(gòu)和原理簡(jiǎn)單成本低加速能力強(qiáng)但功率損耗大特別是低速大轉(zhuǎn)距運(yùn)行時(shí)通過(guò)電阻R的電流大發(fā)熱厲害損耗大對(duì)于小車(chē)的長(zhǎng)時(shí)間運(yùn)行不
6、利 242 方案2 采用繼電器對(duì)電動(dòng)機(jī)的開(kāi)或關(guān)進(jìn)行控制通過(guò)開(kāi)關(guān)的切換對(duì)小車(chē)的速度進(jìn)行調(diào)整此方案的優(yōu)點(diǎn)是電路較為簡(jiǎn)單缺點(diǎn)是繼電器的響應(yīng)時(shí)間慢易損壞壽命較短可靠性不高 243 方案3 采用由雙極性管組成的H橋電路用單片機(jī)控制晶體管使之工作在占空比可調(diào)的開(kāi)關(guān)狀態(tài)精確調(diào)整電機(jī)轉(zhuǎn)速這種電路由于工作在管子的飽和截止模式下效率非常高H橋電路保證了可以簡(jiǎn)單地實(shí)現(xiàn)轉(zhuǎn)速和方向的控制電子開(kāi)關(guān)的速度很快穩(wěn)定性也很高是一種廣泛采用的調(diào)速技術(shù) 綜合3種方案的優(yōu)缺點(diǎn)決定選擇方案3其電路原理圖如圖6所示 圖6 25 模式選擇模塊 模式選擇模塊通過(guò)一個(gè)74LS00與非門(mén)和兩個(gè)不帶鎖按鈕來(lái)控制單片機(jī)單片機(jī)的兩個(gè)中
7、斷口從而按動(dòng)按鈕來(lái)選擇小車(chē)走動(dòng)的路型來(lái)選擇小車(chē)的速度是快速中速慢速走完路程小車(chē)停止后還可以通過(guò)按鈕選擇想要在LCD上想看的信息比如總時(shí)間走過(guò)各段路程的時(shí)間平均速度總路程等 小車(chē)走動(dòng)的模式選擇有 1 直線(xiàn)型滿(mǎn)足設(shè)計(jì)任務(wù)的基本要求能穩(wěn)定的走完全程之后按順序循環(huán)不斷的顯示走完全程所用的時(shí)間走完高速區(qū)所用的時(shí)間和走完低速區(qū)所用的時(shí)間這三個(gè)時(shí)間或者可以通過(guò)兩個(gè)按鈕以及LCD顯示的菜單選擇所要看的內(nèi)容如平均速度全程距離以及那三個(gè)時(shí)間 2 S型滿(mǎn)足設(shè)計(jì)任務(wù)的發(fā)揮部分的要求小車(chē)能自動(dòng)的感應(yīng)到在前面或在后面鐵片即第一次轉(zhuǎn)彎后若感應(yīng)到的是錯(cuò)誤的方向則小車(chē)會(huì)后退自動(dòng)調(diào)整方向沿著S型的鐵片走當(dāng)走完S型鐵片后的一
8、定時(shí)間里小車(chē)自動(dòng)停止之后自動(dòng)進(jìn)入菜單由我們自己選擇要看的內(nèi)容時(shí)間平均速度和所走的距離 3自動(dòng)型小車(chē)先以一定的速度走完全程之后再以一定的速度倒退回起點(diǎn)再調(diào)整速度在一定的時(shí)間內(nèi)走完全程走完后LCD顯示的內(nèi)容與直線(xiàn)型顯示的內(nèi)容一樣 3 程序框圖 單片機(jī)主程序框圖速度感應(yīng)程序框圖和鐵片感應(yīng)程序框圖分別如圖7所示 圖7 4.系統(tǒng)的具體設(shè)計(jì)與實(shí)現(xiàn) 41 路面檢測(cè)模塊 應(yīng)用一個(gè)金屬感應(yīng)器安裝在車(chē)盤(pán)下離地略小于或約四毫米當(dāng)金屬傳感器檢測(cè)到鐵片時(shí)將對(duì)單片機(jī)發(fā)送中斷信號(hào)單片機(jī)運(yùn)行中斷改變輸給電機(jī)驅(qū)動(dòng)信號(hào)的電壓占空比來(lái)控制小車(chē)的速度 42 LCD顯示模塊 采用1602LCD由單片機(jī)的總
9、線(xiàn)模式連接為節(jié)約電源LCD的背光用單片機(jī)進(jìn)行控制 43 測(cè)速模塊 通過(guò)霍爾元件感應(yīng)磁鐵來(lái)產(chǎn)生脈沖 當(dāng)霍爾元件在離磁場(chǎng)較近時(shí)輸出會(huì)是高電平其它時(shí)候是低電平 一個(gè)車(chē)輪均勻放四個(gè)小磁鐵計(jì)算一秒所得的脈沖數(shù)從而計(jì)算出一秒小車(chē)輪子轉(zhuǎn)動(dòng)圈數(shù)再測(cè)量出小車(chē)車(chē)輪周長(zhǎng)即可計(jì)算出小車(chē)當(dāng)前速度累加可得到當(dāng)前路程 44 控速模塊 考慮到元器件的缺少以及我們所用的電路的驅(qū)動(dòng)電機(jī)的電路原理圖和和小車(chē)自帶的電路的電機(jī)驅(qū)動(dòng)原理圖一樣所以暫時(shí)使用小車(chē)自帶的電機(jī)驅(qū)動(dòng)電路圖 45 復(fù)位電路模塊 單片機(jī)的復(fù)位電路通過(guò)手動(dòng)來(lái)實(shí)現(xiàn)復(fù)位電路圖如圖8所示 圖8 46 模式選擇模塊 兩個(gè)中斷口使用和感應(yīng)鐵片感應(yīng)速度所使用的中斷
10、口一樣通過(guò)一個(gè)與非門(mén)和按鈕控制原理圖如圖9所示 圖9 5.最小系統(tǒng)圖 該系統(tǒng)主要用到的是單片機(jī)所以主要的部分是最小系統(tǒng)圖該最小系統(tǒng)圖如圖10所示 圖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ū) \ d
11、efine LCD_RW P2_6 讀寫(xiě)控制端 define LCD_RS P2_7 數(shù)據(jù)命令選擇端 define LCD_E P2_5 執(zhí)行使能端 define LCD_Data P1 P1口 define Write 0x00 低電平寫(xiě)入 define Read 0x01 高電平讀出 define Data 0x01 高電平選擇數(shù)據(jù) define Cmd 0x00 低電平選擇命令 define Enable 0x00 躍變到低電平時(shí)執(zhí)行命令
12、 define Disable 0x01 define True 0x01 define False 0x00 define LCD_Init 0x38 初始化模式 define LCD_DispCtr 0x0C 開(kāi)顯示及光標(biāo)設(shè)置 define LCD_CloseCtr 0x08 關(guān)顯示 define LCD_CLS 0x01 清屏幕 define LCD_EnterSet 0x06 顯示光標(biāo) define Busy P1_7 忙信號(hào)
13、define CircleLength 0132 小車(chē)轉(zhuǎn)一輪的長(zhǎng)度為132m define P03 P0_3 后電機(jī) define P04 P0_4 后電機(jī) define P01 P0_1 前電機(jī) define P02 P0_2 前電機(jī) define P31 P0_5 控制液晶背光 define P33 P3_3 define Line 0x00 0代表直線(xiàn)模式 define Curve 0x01 1代表S型模式 de
14、fine Normal 0x00 0 代表正常速度 define Low 0x01 1 代表低速 define High 0x02 2 代表高速 \ 全局函數(shù)聲明區(qū) \ void LCDInit void LCD初始化 void SetWriteCmd void 設(shè)置寫(xiě)命令模式 void SetReadCmd void 設(shè)置讀命令模式 void SetWriteData void 設(shè)置寫(xiě)數(shù)據(jù)模式 void WriteCmd
15、 char cmd 寫(xiě)命令 void WriteData char ddata 寫(xiě)數(shù)據(jù) void ExecuteCmd void 執(zhí)行命令 void SetXY char xchar y 定位顯示地址 void DisplaySingleChar char xchar ychar cchar 顯示單個(gè)字符 void DisplayString char xchar ychar str 顯示一段字符串 void Delay unsigned int time 延時(shí)主程序 void DelayUs un
16、signed int time 延時(shí)子程序 bit IsBusy void 判斷忙標(biāo)志函數(shù) void DisplayTime void 顯示時(shí)間 void DisplayAVGSpeed void 顯示平均速度 void DisplayDistance void 顯示路程 void INTInit void 所有中斷初始化 void SpeedINT void 測(cè)速中斷 void ComputeTime void void ComputeSp
17、eedANDDistance void 計(jì)算速度和距離 void CtrSpeedINT void 控速中斷 void Time0INT void void Time1INT void 控速單位時(shí)間中斷 void Clock0_Init void 時(shí)鐘中斷初始化 void Clock1_Init void 時(shí)鐘中斷初始化 void CtrSpeed void \ 全局變量區(qū)
18、 \ float SpeedCount 0 測(cè)速計(jì)數(shù)脈沖 float Speed 00 float Distance 00 char Time1INTCount 0 T1中斷時(shí)間計(jì)時(shí) float PassTime 000 小車(chē)行走的時(shí)間 short IsT0INT 1 bit IsT1INT 判斷T1是否已經(jīng)響應(yīng)中斷 short IsT0INT2 1 char Thx[5] 0xf40xf4
19、0xc50xf40xff 3ms3ms15ms3ms char Tlx[5] 0x480x480x680x480xff char Thx0 0xd8 char Tlx0 0xf0 char Thx1 0xb1 20ms char Tlx1 0xe0 short Round 0 short Back 0 short Back0 0 bit Backid bit Stop 0 char Area0 0 char Area1 0 區(qū)域變量 char LowSpeed
20、Area1StartTime char LowSpeedArea1EndTime char HighSpeedAreaEndTime char LowSpeedArea2EndTime char LowSpeedArea1PassTime 0 第一個(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 Roun
21、did 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)被選擇的模式標(biāo)志 char SelectedMode 10 模式選擇是否完畢標(biāo)志 bit Next Next鍵標(biāo)志
22、 bit SpeedSelected 已經(jīng)被選中的速度方案標(biāo)志 char SelectedSpeed 速度選擇是否完畢標(biāo)志 bit ChoosingDisplay 人工選擇菜單開(kāi)始標(biāo)志 bit SelectedShow 顯示選擇標(biāo)志 bit SelectedReturn 返回選擇標(biāo)志 bit Selected 確定返回鍵選擇標(biāo)志 bit ReturnSelection 返回鍵啟用標(biāo)志 bit AVGSpeedShow 平均速
23、度顯示標(biāo)志 bit TotalDistanceShow 總路程顯示標(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 ThirdDis
24、tance int FirstHigh int SecondHigh int ThirdHigh float Rate 125 5ms時(shí)的速度 float Count 4 時(shí)間的倍數(shù) \ 全局函數(shù)實(shí)現(xiàn)區(qū) \ void main P01 0 P02 0 P03 0 P04 0 P31 1 單片機(jī)復(fù)位背光開(kāi) Delay 40 延時(shí)等待LCD啟動(dòng) LCDInit
25、 初始化LCD DisplayString 0x00" Starting " DisplayString 0x01"Designed By 202" Delay 300 WriteCmd LCD_CLS EA 1 開(kāi)總中斷 EX0 1 開(kāi)INT0中斷 IT0 1 INTO邊沿觸發(fā) EX1 1 開(kāi)INT1中斷 IT1 1 INT1邊沿觸發(fā) SelectedAll False 開(kāi)始模式和速度選擇
26、 DisplayString 0x00"Choose The Mode " DisplayString 0x01"you want " Delay 50 WriteCmd LCD_CLS IsSelectingMode True while 1 WriteCmd LCD_CLS DisplayString 0x00" Line Mode " DisplayString 0x01"Next Yes" Delay 300 延時(shí)消除抖動(dòng)
27、while 1 不斷檢測(cè)中斷直到按確定鍵或是NEXT鍵 if Next True 如果按Next鍵則直接跳出 break if ModeSelected True 如果按確定鍵則設(shè)置模式為L(zhǎng)ine并跳出 SelectedMode Line break 如果什么鍵都沒(méi)有按下那么一直顯示等待 if ModeSelected True 按下了確定鍵退出模式選擇 IsSelectingMode F
28、alse break if Next True 按下了Next鍵顯示下一個(gè)菜單項(xiàng) Next False WriteCmd LCD_CLS DisplayString 0x00" Curve Mode " DisplayString 0x01"Next Yes" Delay 300 延時(shí)消除抖動(dòng) while 1 不斷檢測(cè)中斷直到按確定鍵或是Next鍵 if Next True 如果再一次按下Ne
29、xt鍵則跳出 break if ModeSelected True 如果按下確定鍵則設(shè)置模式為Curve并跳出 SelectedMode Curve break if ModeSelected True 按下了確定鍵退出模式選擇 IsSelectingMode False break if Next True 再一次按下了Next鍵則循環(huán)模式選擇 Next False Writ
30、eCmd LCD_CLS DisplayString 0x00" AutoMode " DisplayString 0x01"Next Yes" Delay 300 延時(shí)消除抖動(dòng) while 1 if Next True break if ModeSelected True AutoMode 1 break if ModeSelected True
31、 IsSelectingMode False break if Next True Next False continue Delay 50 WriteCmd LCD_CLS if SelectedMode Line AutoMode 0 DisplayString 0x00" Now Choose a " DisplayString 0x01" kind of Speed " Delay 50 WriteCmd LCD_CLS
32、 IsSelectingSpeed True while 1 WriteCmd LCD_CLS DisplayString 0x00" Normal Speed " DisplayString 0x01"Next Yes" Delay 300 延時(shí)消除抖動(dòng) while 1 if Next True 如果按Next鍵則直接跳出 break if SpeedSelected True 如果按確定鍵
33、則設(shè)置速度為Normal并跳出 Thx[0] 0xecTlx[0] 0x78 5ms Thx[1] 0xf0Tlx[1] 0x60 4ms Thx[2] 0x8aTlx[2] 0xd0 30ms Thx[3] 0xf4Tlx[3] 0x48 3ms SelectedSpeed Normal break 如果什么鍵都沒(méi)有按下那么一直顯示等待 if SpeedSelected True 按下了確定鍵退出速度選
34、擇 IsSelectingSpeed False break if Next True Next False WriteCmd LCD_CLS DisplayString 0x00" Low Speed " DisplayString 0x01"Next Yes" Delay 300 延時(shí)消除抖動(dòng) while 1 if Next True 如果再一次按下Next鍵則跳出
35、 break if SpeedSelected True 如果按下確定鍵則設(shè)置速度為L(zhǎng)ow并跳出 SelectedSpeed Low 這里沒(méi)有速度設(shè)置因?yàn)槟J(rèn)速度就是Low break if SpeedSelected True 按下了確定鍵退出速度選擇 IsSelectingSpeed False break if Next True Next False
36、 WriteCmd LCD_CLS DisplayString 0x00" High Speed " DisplayString 0x01"Next Yes" Delay 300 延時(shí)消除抖動(dòng) while 1 if Next True 如果再一次按下Next鍵則跳出 break if SpeedSelected True 如果按下確定鍵則設(shè)置速度為High并跳出 Thx[0] 0xe0Tlx[0] 0
37、xc0 8ms Thx[1] 0xe0Tlx[1] 0xc0 8ms Thx[2] 0x63Tlx[2] 0xc0 40ms Thx[3] 0xecTlx[3] 0x78 5ms SelectedSpeed High break if SpeedSelected True 按下了確定鍵退出速度選擇 IsSelectingSpeed False break if
38、Next True 再一次按下了Next鍵則循環(huán)速度選擇 Next False continue SelectedAll True 標(biāo)志模式選擇和速度選擇完畢 Running True Delay 50 WriteCmd LCD_CLS if SelectedMode Line DisplayString 0x00"Choosen Mode is " DisplayString 0x01"
39、 Line " Delay 50 WriteCmd LCD_CLS if SelectedMode Curve DisplayString 0x00"Choosen Mode is " DisplayString 0x01" Curve " Delay 50 WriteCmd LCD_CLS if AutoMode 1 DisplayString 0x00"Choosen Mode is " DisplayString 0x01" Aut
40、oMode " Delay 50 WriteCmd LCD_CLS if SelectedMode Line if SelectedSpeed Normal DisplayString 0x00"Choosen Speed is" DisplayString 0x01" Normal " Delay 50 WriteCmd LCD_CLS if SelectedSpeed Low DisplayString 0x00
41、"Choosen Speed is" DisplayString 0x01" Low " Delay 50 WriteCmd LCD_CLS if SelectedSpeed High DisplayString 0x00"Choosen Speed is" DisplayString 0x01" High " Delay 50 WriteCmd LCD_CLS INTInit 初始化所有中斷
42、DisplayString 0x00"Left Times To Go" while ReadyToGo-- DisplaySingleChar 0x71ReadyToGo0x30 DisplaySingleChar 0x091s Delay 300 WriteCmd LCD_CLS DisplayString 0x050"Go" Delay 100 WriteCmd LCD_CLS DisplayString 0x00" Living " DisplayString 0x01"Designe
43、d by 202" if SelectedMode LineAutoMode 0 flag Area0 else flag 1 while flag 5 if AutoMode 1 自動(dòng)模式 switch PassLineID case 0 if IsT0INT 1 P01 P02 P04 0P03 1 else
44、 P01 P02 P03 P04 0 break case 1 P01 P02 P03 0P04 1 break case 2 P01 P02 P04 0P03 1 break default break else if SelectedMode Line 直線(xiàn)模式
45、 flag Area0 if IsT0INT 1 P03 1P04 0P01 P02 0 else P03 0P04 0P01 P02 0 else S型模式 if Nocurve 2 Round 0 Back0 0 Back 0 if Backid 1
46、 P01 1P02 0P03 0P04 1 else P01 0P02 1P03 0P04 1 Back 1 else if Round 0 if IsT0INT2 1 P01 0P02 0P03 1P04 0 else P01 0P02 0P03 0P04 0
47、 else if P33 0 if IsT0INT2 1 P01 0P02 0P03 1P04 0 else P01 0P02 0P03 0P04 0 else EX1 1 if Round2
48、 if IsT0INT2 1 P01 1P02 0P03 1P04 0Backid 1 else P01 1P02 0P03 0P04 0 else if IsT0INT2 1 P01 0P02 1P03 1P04 0Backid 0 el
49、se P01 0P02 1P03 0P04 0 if IsT1INT 1 IsT1INT 0 ComputeTime ComputeSpeedANDDistance 補(bǔ)中斷路程加上最后一次中斷缺失的路程 ComputeSpeedANDDistance P04 1P03 0P01 P02 0Delay 90 P03
50、 0P04 0 行程結(jié)束小車(chē)停止 P31 1 行程結(jié)束背光開(kāi) ET0 0x0 關(guān)T0中斷 ET1 0x0 關(guān)T1中斷 EX1 0x01 開(kāi)INT1中斷 Running False AutoDisplay True 默認(rèn)情況下直線(xiàn)模式會(huì)自動(dòng)顯示各個(gè)區(qū)域經(jīng)過(guò)的時(shí)間 WriteCmd LCD_CLS if SelectedMode Line 直線(xiàn)模式才顯示 while 1
51、 if GoToChoosingDisplay True break Delay 200 WriteCmd LCD_CLS Delay 200 DisplayString 00" LowSpeedArea1" DisplayString 01" Costed " DisplaySingleChar 0x0C1s LowSpeedArea1PassTime LowSpeedArea1EndTime-LowSpeedArea1StartTime DisplaySingleChar 0x0A1Lo
52、wSpeedArea1PassTime100x30 if LowSpeedArea1PassTime 9 通過(guò)第一個(gè)低速區(qū)的時(shí)間超過(guò)s DisplaySingleChar 0x0B1LowSpeedArea1PassTime100x30 if GoToChoosingDisplay True break Delay 200 WriteCmd LCD_CLS Delay 200 DisplayString 00" HighSpeedArea " DisplayString 0
53、1" Costed " DisplaySingleChar 0x0C1s HighSpeedAreaPassTime HighSpeedAreaEndTime-LowSpeedArea1EndTime DisplaySingleChar 0x0A1HighSpeedAreaPassTime100x30 if HighSpeedAreaPassTime 9 通過(guò)高速區(qū)的時(shí)間超過(guò)s DisplaySingleChar 0x0B1HighSpeedAreaPassTime100x30 if GoToChoosingDi
54、splay True break Delay 200 WriteCmd LCD_CLS Delay 200 DisplayString 00" LowSpeedArea2 " DisplayString 01" Costed " DisplaySingleChar 0x0C1s LowSpeedArea2PassTime LowSpeedArea2EndTime-HighSpeedAreaEndTime DisplaySingleChar 0x0A1LowSpeedArea2PassTime100x30
55、 if LowSpeedArea2PassTime 9 通過(guò)第二個(gè)低速區(qū)的時(shí)間超過(guò)s DisplaySingleChar 0x0B1LowSpeedArea2PassTime100x30 AutoDisplay False ---------------- 菜單選擇你想要看的內(nèi)容--總時(shí)間總路程以及平均速度 -------------- ChoosingDisplay True WriteCmd LCD_CLS 首先顯示主菜單然后顯示第一個(gè)選項(xiàng) DisplayString 0x00"N
56、ow Choose what " DisplayString 0x01"you want to see " Delay 100 while 1 WriteCmd LCD_CLS DisplayString 0x00" Costed Time " DisplayString 0x01"Next Show" Delay 250 延時(shí)消除抖動(dòng) 不斷檢測(cè)確定鍵和Next鍵 while 1 if Next True break if S
57、electedShow True break 按下了確定鍵顯示第一個(gè)選項(xiàng)的內(nèi)容 if SelectedShow True SelectedShow False SelectedReturn False Selected False WriteCmd LCD_CLS DisplayString 00"Costed Time is" DisplayTime DisplayString 0x0A1"s" ReturnSelection True 按
58、下了確定鍵那么這個(gè)時(shí)候開(kāi)啟返回鍵的功能 AVGSpeedShow False Delay 250 延時(shí)消除抖動(dòng) 按下了Next鍵則顯示第二個(gè)選項(xiàng) if Next True 按下Next鍵顯示AVGSpeed菜單項(xiàng) Next False WriteCmd LCD_CLS DisplayString 0x00" AVGSpeed " DisplayString 0x01"Next Show" ReturnMa
59、in False ReturnSelection False 按下了Next鍵那么這個(gè)時(shí)候關(guān)閉返回鍵的功能 AVGSpeedShow True 表明AVGSpeed選項(xiàng)已經(jīng)顯示過(guò)了 Delay 250 延時(shí)消除抖動(dòng) 顯示第一個(gè)選項(xiàng)的內(nèi)容后又不斷檢測(cè)返回鍵確定鍵和Next鍵 while 1 if Next True break if Selected True break if Next True
60、Next False ReturnMain False ReturnSelection False 按下了Next鍵那么這個(gè)時(shí)候關(guān)閉返回鍵的功能 if AVGSpeedShow False 還沒(méi)有顯示AVGSpeed選項(xiàng)顯示它 即第一次選擇了確定鍵 WriteCmd LCD_CLS DisplayString 0x00" AVGSpeed " DisplayString 0x01"Next Show" TotalDistanceShow F
61、alse 顯示了AVGSpeed則表明TotalDistance還沒(méi)有顯示 Delay 250 延時(shí)消除抖動(dòng) if AVGSpeedShow True 已經(jīng)顯示過(guò)AVGSpeed選項(xiàng)了則顯示下一個(gè)選項(xiàng) 即第一次選擇了Next鍵 WriteCmd LCD_CLS DisplayString 0x00" Total Distance " DisplayString 0x01"Next Show" TotalDistanceShow True
62、 表明顯示了TotalDistance選項(xiàng) Delay 250 延時(shí)消除抖動(dòng) if Selected True 按下了確定鍵或返回鍵 SelectedShow False SelectedReturn False Selected False if ReturnSelection True 第一次選擇了確定鍵故這次按下的是返回鍵 ReturnMain True if ReturnSelection False
63、 WriteCmd LCD_CLS DisplayString 00"The AVGSpeed is" DisplayAVGSpeed DisplayString 0x0A1"ms" ReturnSelection True 按下了確定鍵那么這個(gè)時(shí)候開(kāi)啟返回鍵的功能 Delay 250 延時(shí)消除抖動(dòng) TotalDistanceShow False if ReturnMain True 按下了返回鍵返回主菜單
64、 ReturnMain False continue 如果沒(méi)有返回主菜單則繼續(xù)檢測(cè)Next鍵和確定鍵 while 1 if Next True break if SelectedShow True break 按下Next鍵顯示下一個(gè)選項(xiàng) if Next True Next False ReturnMain False ReturnSelection False 按下了Next鍵那么這
65、個(gè)時(shí)候關(guān)閉返回鍵的功能 if TotalDistanceShow True ReturnMain True if TotalDistanceShow False 還沒(méi)有顯示TotalDistance選項(xiàng)顯示它 WriteCmd LCD_CLS DisplayString 0x00" Total Distance " DisplayString 0x01"Next Show" TotalDistanceShow True Delay 250
66、 延時(shí)消除抖動(dòng) if Selected True 按下了確定鍵或返回鍵 SelectedShow False SelectedReturn False Selected False if ReturnSelection True 按下的是返回鍵 ReturnMain True if ReturnSelection False if TotalDistanceShow False 表明AVGSpeed選項(xiàng)的內(nèi)容還沒(méi)有顯示 WriteCmd LCD_CLS DisplayString 00"The AVGSpeed is" DisplayAVGSpeed DisplayString 0x0A1"ms" ReturnSelection True Delay 250 延時(shí)消除
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 銷(xiāo)售技巧培訓(xùn)課件:接近客戶(hù)的套路總結(jié)
- 20種成交的銷(xiāo)售話(huà)術(shù)和技巧
- 銷(xiāo)售技巧:接近客戶(hù)的8種套路
- 銷(xiāo)售套路總結(jié)
- 房產(chǎn)銷(xiāo)售中的常見(jiàn)問(wèn)題及解決方法
- 銷(xiāo)售技巧:值得默念的成交話(huà)術(shù)
- 銷(xiāo)售資料:讓人舒服的35種說(shuō)話(huà)方式
- 汽車(chē)銷(xiāo)售績(jī)效管理規(guī)范
- 銷(xiāo)售技巧培訓(xùn)課件:絕對(duì)成交的銷(xiāo)售話(huà)術(shù)
- 頂尖銷(xiāo)售技巧總結(jié)
- 銷(xiāo)售技巧:電話(huà)營(yíng)銷(xiāo)十大定律
- 銷(xiāo)售逼單最好的二十三種技巧
- 銷(xiāo)售最常遇到的10大麻煩
- 銷(xiāo)售資料:銷(xiāo)售10大黃金觀念
- 銷(xiāo)售資料:導(dǎo)購(gòu)常用的搭訕?lè)椒?/a>