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

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

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

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

10 積分

下載資源

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

資源描述:

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

1、畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)的多功能智能小車設(shè)計(jì)論文(電路+程序+論文) 基于單片機(jī)的多功能智能小車設(shè)計(jì)論文 電路程序論文 摘 要關(guān)鍵詞智能車 單片機(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ì)的簡易智能電動(dòng)車采用AT89S52單片機(jī)作為小車的檢測和控制核心采用金屬感應(yīng)器TL-Q5MC來檢測路上感應(yīng)到的鐵片從而把反饋到的信號(hào)送單片機(jī)使單片機(jī)按照預(yù)定的工作模式控制小車在各區(qū)域按預(yù)定的速度行駛并且單片機(jī)選擇的工作模式不同也可控制小車順著S形鐵片

2、行駛采用霍爾元件A44E檢測小車行駛速度采用1602LCD實(shí)時(shí)顯示小車行駛的時(shí)間小車停止行駛后輪流顯示小車行駛時(shí)間311 要求32 方案比較與選擇4 21路面檢測模塊4 22 LCD顯示模塊5 23測速模塊5 24控速模塊6 25模式選擇模塊73 程序框圖74 系統(tǒng)的具體設(shè)計(jì)與實(shí)現(xiàn)9 41路面檢測模塊9 42 LCD顯示模塊943測速模塊944控速模塊945復(fù)位電路模塊946模式選擇模塊95 最小系統(tǒng)圖106 最終PCB板圖127 系統(tǒng)程序138 致謝469 參考文獻(xiàn)4710 附錄481 設(shè)計(jì)任務(wù)設(shè)計(jì)并制作了一個(gè)智能電動(dòng)車圖1 車輛從起跑線出發(fā)出發(fā)前車體不得超出起跑線在第一個(gè)路程CD區(qū)36米以

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

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

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

6、H橋電路保證了可以簡單地實(shí)現(xiàn)轉(zhuǎn)速和方向的控制電子開關(guān)的速度很快穩(wěn)定性也很高是一種廣泛采用的調(diào)速技術(shù)綜合3種方案的優(yōu)缺點(diǎn)決定選擇方案3其電路原理圖如圖6所示圖625 模式選擇模塊模式選擇模塊通過一個(gè)74LS00與非門和兩個(gè)不帶鎖按鈕來控制單片機(jī)單片機(jī)的兩個(gè)中斷口從而按動(dòng)按鈕來選擇小車走動(dòng)的路型來選擇小車的速度是快速中速慢速走完路程小車停止后還可以通過按鈕選擇想要在LCD上想看的信息比如總時(shí)間走過各段路程的時(shí)間平均速度總路程等小車走動(dòng)的模式選擇有1 直線型滿足設(shè)計(jì)任務(wù)的基本要求能穩(wěn)定的走完全程之后按順序循環(huán)不斷的顯示走完全程所用的時(shí)間走完高速區(qū)所用的時(shí)間和走完低速區(qū)所用的時(shí)間這三個(gè)時(shí)間或者可以通過

7、兩個(gè)按鈕以及LCD顯示的菜單選擇所要看的內(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)走完全程走完后LCD顯示的內(nèi)容與直線型顯示的內(nèi)容一樣3 程序框圖單片機(jī)主程序框圖速度感應(yīng)程序框圖和鐵片感應(yīng)程序框圖分別如圖7所示 圖7 4系統(tǒng)的具體設(shè)計(jì)與實(shí)現(xiàn)41 路面檢測模塊 應(yīng)用一個(gè)

8、金屬感應(yīng)器安裝在車盤下離地略小于或約四毫米當(dāng)金屬傳感器檢測到鐵片時(shí)將對(duì)單片機(jī)發(fā)送中斷信號(hào)單片機(jī)運(yùn)行中斷改變輸給電機(jī)驅(qū)動(dòng)信號(hào)的電壓占空比來控制小車的速度42 LCD顯示模塊采用1602LCD由單片機(jī)的總線模式連接為節(jié)約電源LCD的背光用單片機(jī)進(jìn)行控制43 測速模塊通過霍爾元件感應(yīng)磁鐵來產(chǎn)生脈沖 當(dāng)霍爾元件在離磁場較近時(shí)輸出會(huì)是高電平其它時(shí)候是低電平 一個(gè)車輪均勻放四個(gè)小磁鐵計(jì)算一秒所得的脈沖數(shù)從而計(jì)算出一秒小車輪子轉(zhuǎn)動(dòng)圈數(shù)再測量出小車車輪周長即可計(jì)算出小車當(dāng)前速度累加可得到當(dāng)前路程44 控速模塊考慮到元器件的缺少以及我們所用的電路的驅(qū)動(dòng)電機(jī)的電路原理圖和和小車自帶的電路的電機(jī)驅(qū)動(dòng)原理圖一樣所以暫

9、時(shí)使用小車自帶的電機(jī)驅(qū)動(dòng)電路圖45 復(fù)位電路模塊單片機(jī)的復(fù)位電路通過手動(dòng)來實(shí)現(xiàn)復(fù)位電路圖如圖8所示圖846 模式選擇模塊兩個(gè)中斷口使用和感應(yīng)鐵片感應(yīng)速度所使用的中斷口一樣通過一個(gè)與非門和按鈕控制原理圖如圖9所示圖95最小系統(tǒng)圖 該系統(tǒng)主要用到的是單片機(jī)所以主要的部分是最小系統(tǒng)圖該最小系統(tǒng)圖如圖10所示圖126 最終PCB板圖該最小系統(tǒng)的最終PCB板圖包括LCD接口以及其他的外部擴(kuò)展電路部分考慮到最小系統(tǒng)的簡潔以及容易看懂外部擴(kuò)展電路不在最小系統(tǒng)圖上顯示分別如圖11圖12所示圖11圖127系統(tǒng)程序按照預(yù)定的功能系統(tǒng)實(shí)現(xiàn)預(yù)定的功能的程序如下所示include include 宏定義區(qū) define

10、 LCD_RW P2_6 讀寫控制端define LCD_RS P2_7數(shù)據(jù)命令選擇端define LCD_E P2_5執(zhí)行使能端define LCD_DataP1 P1口define Write0x00低電平寫入define Read0x01高電平讀出define Data0x01高電平選擇數(shù)據(jù)define Cmd0x00低電平選擇命令define Enable0x00躍變到低電平時(shí)執(zhí)行命令define Disable0x01 define True0x01define False0x00define LCD_Init0x38初始化模式define LCD_DispCtr 0x0C開顯示及光

11、標(biāo)設(shè)置define LCD_CloseCtr0x08關(guān)顯示define LCD_CLS 0x01清屏幕define LCD_EnterSet 0x06顯示光標(biāo) define BusyP1_7忙信號(hào) define CircleLength0132小車轉(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 Line0x000代表直線模式define Curve0x011代表S型模式define Nor

12、mal0x000 代表正常速度define Low0x011 代表低速define High0x022 代表高速 全局函數(shù)聲明區(qū) 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 xchar y 定位顯示地址void DisplaySi

13、ngleChar char xchar ychar cchar 顯示單個(gè)字符void DisplayString char xchar ychar 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 void 顯示路程 void INTInit void 所有中斷初始化void Spe

14、edINT void 測速中斷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í)鐘中斷初始化void CtrSpeed void 全局變量區(qū)float SpeedCount 0 測速計(jì)數(shù)脈沖float Speed 00float Distance 00 char Time1

15、INTCount 0T1中斷時(shí)間計(jì)時(shí)float PassTime 000小車行走的時(shí)間short IsT0INT 1bit IsT1INT判斷T1是否已經(jīng)響應(yīng)中斷short IsT0INT2 1char Thx5 0xf40xf40xc50xf40xff 3ms3ms15ms3mschar Tlx5 0x480x480x680x480xff char Thx0 0xd8char Tlx0 0xf0char Thx1 0xb1 20mschar Tlx1 0xe0short Round 0short Back 0short Back0 0bit Backidbit Stop 0char Area

16、0 0char Area1 0區(qū)域變量char LowSpeedArea1StartTimechar LowSpeedArea1EndTimechar HighSpeedAreaEndTimechar LowSpeedArea2EndTimechar LowSpeedArea1PassTime 0 第一個(gè)低速區(qū)通過時(shí)間char HighSpeedAreaPassTime 0高速區(qū)通過時(shí)間char LowSpeedArea2PassTime 0第二個(gè)低速區(qū)通過時(shí)間char ReadyToGo 4倒計(jì)時(shí)char flagbit Roundid 0char Nocurve 0 char Change

17、Flagchar Mode bit Runningbit SelectedAll模式和速度是否選擇完畢標(biāo)志bit IsSelectingMode模式選擇標(biāo)志bit IsSelectingSpeed速度選擇標(biāo)志bit ModeSelected已經(jīng)被選擇的模式標(biāo)志char SelectedMode 10模式選擇是否完畢標(biāo)志bit NextNext鍵標(biāo)志bit SpeedSelected已經(jīng)被選中的速度方案標(biāo)志char SelectedSpeed速度選擇是否完畢標(biāo)志bit ChoosingDisplay人工選擇菜單開始標(biāo)志bit SelectedShow顯示選擇標(biāo)志bit SelectedRetur

18、n返回選擇標(biāo)志bit Selected確定返回鍵選擇標(biāo)志bit ReturnSelection返回鍵啟用標(biāo)志bit AVGSpeedShow平均速度顯示標(biāo)志bit TotalDistanceShow總路程顯示標(biāo)志bit ReturnMain返回主菜單標(biāo)志bit AutoDisplay自動(dòng)顯示標(biāo)志bit GoToChoosingDisplay人工選擇標(biāo)志bit AutoMode 0char PassLineID 0char PassLine 0float PrepareDistancefloat FirstDistancefloat SecondDistancefloat ThirdDistan

19、ceint FirstHighint SecondHighint ThirdHighfloat Rate 125 5ms時(shí)的速度float Count 4時(shí)間的倍數(shù) 全局函數(shù)實(shí)現(xiàn)區(qū) void main P01 0P02 0P03 0P04 0P31 1單片機(jī)復(fù)位背光開Delay 40 延時(shí)等待LCD啟動(dòng)LCDInit 初始化LCDDisplayString 0x00 Starting DisplayString 0x01Designed By 202 Delay 300 WriteCmd LCD_CLS EA 1 開總中斷EX0 1開INT0中斷IT0 1INTO邊沿觸發(fā)EX1 1 開INT1

20、中斷IT1 1 INT1邊沿觸發(fā)SelectedAll False 開始模式和速度選擇 DisplayString 0x00Choose The Mode DisplayString 0x01you want Delay 50 WriteCmd LCD_CLS IsSelectingMode Truewhile 1 WriteCmd LCD_CLS DisplayString 0x00 Line Mode DisplayString 0x01Next Yes Delay 300 延時(shí)消除抖動(dòng)while 1 不斷檢測中斷直到按確定鍵或是NEXT鍵 if Next True 如果按Next鍵則直接

21、跳出breakif ModeSelected True 如果按確定鍵則設(shè)置模式為Line并跳出 SelectedMode Linebreak 如果什么鍵都沒有按下那么一直顯示等待 if ModeSelected True 按下了確定鍵退出模式選擇 IsSelectingMode Falsebreak if Next True 按下了Next鍵顯示下一個(gè)菜單項(xiàng) Next FalseWriteCmd LCD_CLS DisplayString 0x00 Curve Mode DisplayString 0x01Next Yes Delay 300 延時(shí)消除抖動(dòng)while 1 不斷檢測中斷直到按確定

22、鍵或是Next鍵 if Next True 如果再一次按下Next鍵則跳出breakif ModeSelected True 如果按下確定鍵則設(shè)置模式為Curve并跳出 SelectedMode Curvebreak if ModeSelected True 按下了確定鍵退出模式選擇 IsSelectingMode Falsebreak if Next True 再一次按下了Next鍵則循環(huán)模式選擇 Next FalseWriteCmd LCD_CLS DisplayString 0x00 AutoMode DisplayString 0x01Next Yes Delay 300 延時(shí)消除抖動(dòng)

23、while 1 if Next True breakif ModeSelected True AutoMode 1break if ModeSelected True IsSelectingMode Falsebreak if Next True Next Falsecontinue 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 IsSelect

24、ingSpeed Truewhile 1 WriteCmd LCD_CLS DisplayString 0x00 Normal Speed DisplayString 0x01Next Yes Delay 300 延時(shí)消除抖動(dòng)while 1 if Next True 如果按Next鍵則直接跳出breakif SpeedSelected True 如果按確定鍵則設(shè)置速度為Normal并跳出 Thx0 0xecTlx0 0x78 5msThx1 0xf0Tlx1 0x60 4msThx2 0x8aTlx2 0xd0 30msThx3 0xf4Tlx3 0x48 3msSelectedSpeed N

25、ormalbreak 如果什么鍵都沒有按下那么一直顯示等待 if SpeedSelected True 按下了確定鍵退出速度選擇 IsSelectingSpeed Falsebreak if Next True Next FalseWriteCmd LCD_CLS DisplayString 0x00 Low Speed DisplayString 0x01Next Yes Delay 300 延時(shí)消除抖動(dòng)while 1 if Next True 如果再一次按下Next鍵則跳出breakif SpeedSelected True 如果按下確定鍵則設(shè)置速度為Low并跳出 SelectedSpee

26、d Low這里沒有速度設(shè)置因?yàn)槟J(rèn)速度就是Lowbreak if SpeedSelected True 按下了確定鍵退出速度選擇 IsSelectingSpeed Falsebreak if Next True Next FalseWriteCmd LCD_CLS DisplayString 0x00 High Speed DisplayString 0x01Next Yes Delay 300 延時(shí)消除抖動(dòng)while 1 if Next True 如果再一次按下Next鍵則跳出breakif SpeedSelected True 如果按下確定鍵則設(shè)置速度為High并跳出 Thx0 0xe0T

27、lx0 0xc0 8ms Thx1 0xe0Tlx1 0xc0 8ms Thx2 0x63Tlx2 0xc0 40ms Thx3 0xecTlx3 0x78 5msSelectedSpeed Highbreak if SpeedSelected True 按下了確定鍵退出速度選擇 IsSelectingSpeed Falsebreak if Next True 再一次按下了Next鍵則循環(huán)速度選擇 Next Falsecontinue SelectedAll True 標(biāo)志模式選擇和速度選擇完畢Running TrueDelay 50 WriteCmd LCD_CLS if SelectedM

28、ode Line DisplayString 0x00Choosen Mode is DisplayString 0x01 Line Delay 50 WriteCmd LCD_CLS if SelectedMode Curve DisplayString 0x00Choosen Mode is DisplayString 0x01 Curve Delay 50 WriteCmd LCD_CLS if AutoMode 1 DisplayString 0x00Choosen Mode is DisplayString 0x01 AutoMode Delay 50 WriteCmd LCD_CL

29、S if SelectedMode Line if SelectedSpeed Normal DisplayString 0x00Choosen Speed is DisplayString 0x01 Normal Delay 50 WriteCmd LCD_CLS if SelectedSpeed Low DisplayString 0x00Choosen Speed is DisplayString 0x01 Low Delay 50 WriteCmd LCD_CLS if SelectedSpeed High DisplayString 0x00Choosen Speed is Disp

30、layString 0x01 High Delay 50 WriteCmd LCD_CLS INTInit 初始化所有中斷DisplayString 0x00Left Times To Go while ReadyToGo- DisplaySingleChar 0x71ReadyToGo0x30 DisplaySingleChar 0x091s Delay 300 WriteCmd LCD_CLS DisplayString 0x050Go Delay 100 WriteCmd LCD_CLS DisplayString 0x00 Living DisplayString 0x01Design

31、ed by 202 if SelectedMode LineAutoMode 0 flag Area0else flag 1while flag 5 if AutoMode 1 自動(dòng)模式 switch PassLineID case 0 if IsT0INT 1 P01 P02 P04 0P03 1 else 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 直線模式 flag Area0

32、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 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 else if P33 0 if IsT0INT2 1 P01 0P02 0P03 1P04 0 else

33、 P01 0P02 0P03 0P04 0 else EX1 1 if Round2 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 else P01 0P02 1P03 0P04 0 if IsT1INT 1 IsT1INT 0ComputeTime ComputeSpeedANDDistance 補(bǔ)中斷路程加上最后一次中斷缺失的路程ComputeSpeedANDDistance P04 1P03 0P01

34、P02 0Delay 90 P03 0P04 0行程結(jié)束小車停止P31 1 行程結(jié)束背光開ET0 0x0 關(guān)T0中斷ET1 0x0 關(guān)T1中斷EX1 0x01 開INT1中斷Running FalseAutoDisplay True默認(rèn)情況下直線模式會(huì)自動(dòng)顯示各個(gè)區(qū)域經(jīng)過的時(shí)間WriteCmd LCD_CLS if SelectedMode Line 直線模式才顯示 while 1 if GoToChoosingDisplay True breakDelay 200 WriteCmd LCD_CLS Delay 200 DisplayString 00 LowSpeedArea1 Displa

35、yString 01 Costed DisplaySingleChar 0x0C1s LowSpeedArea1PassTime LowSpeedArea1EndTime-LowSpeedArea1StartTimeDisplaySingleChar 0x0A1LowSpeedArea1PassTime100x30 if LowSpeedArea1PassTime 9 通過第一個(gè)低速區(qū)的時(shí)間超過sDisplaySingleChar 0x0B1LowSpeedArea1PassTime100x30 if GoToChoosingDisplay True breakDelay 200 WriteC

36、md LCD_CLS Delay 200 DisplayString 00 HighSpeedArea DisplayString 01 Costed DisplaySingleChar 0x0C1s HighSpeedAreaPassTime HighSpeedAreaEndTime-LowSpeedArea1EndTimeDisplaySingleChar 0x0A1HighSpeedAreaPassTime100x30 if HighSpeedAreaPassTime 9 通過高速區(qū)的時(shí)間超過sDisplaySingleChar 0x0B1HighSpeedAreaPassTime100

37、x30 if GoToChoosingDisplay True breakDelay 200 WriteCmd LCD_CLS Delay 200 DisplayString 00 LowSpeedArea2 DisplayString 01 Costed DisplaySingleChar 0x0C1s LowSpeedArea2PassTime LowSpeedArea2EndTime-HighSpeedAreaEndTimeDisplaySingleChar 0x0A1LowSpeedArea2PassTime100x30 if LowSpeedArea2PassTime 9 通過第二個(gè)

38、低速區(qū)的時(shí)間超過sDisplaySingleChar 0x0B1LowSpeedArea2PassTime100x30 AutoDisplay False- 菜單選擇你想要看的內(nèi)容-總時(shí)間總路程以及平均速度 -ChoosingDisplay True WriteCmd LCD_CLS 首先顯示主菜單然后顯示第一個(gè)選項(xiàng)DisplayString 0x00Now Choose what DisplayString 0x01you want to see Delay 100 while 1 WriteCmd LCD_CLS DisplayString 0x00 Costed Time Display

39、String 0x01Next Show Delay 250 延時(shí)消除抖動(dòng) 不斷檢測確定鍵和Next鍵while 1 if Next True breakif SelectedShow True break 按下了確定鍵顯示第一個(gè)選項(xiàng)的內(nèi)容if SelectedShow True SelectedShow FalseSelectedReturn FalseSelected FalseWriteCmd LCD_CLS DisplayString 00Costed Time is DisplayTime DisplayString 0x0A1s ReturnSelection True 按下了確定

40、鍵那么這個(gè)時(shí)候開啟返回鍵的功能 AVGSpeedShow FalseDelay 250 延時(shí)消除抖動(dòng) 按下了Next鍵則顯示第二個(gè)選項(xiàng)if Next True 按下Next鍵顯示AVGSpeed菜單項(xiàng) Next FalseWriteCmd LCD_CLS DisplayString 0x00 AVGSpeed DisplayString 0x01Next Show ReturnMain FalseReturnSelection False 按下了Next鍵那么這個(gè)時(shí)候關(guān)閉返回鍵的功能AVGSpeedShow True 表明AVGSpeed選項(xiàng)已經(jīng)顯示過了Delay 250 延時(shí)消除抖動(dòng) 顯示第

41、一個(gè)選項(xiàng)的內(nèi)容后又不斷檢測返回鍵確定鍵和Next鍵while 1 if Next True breakif Selected True break if Next True Next FalseReturnMain FalseReturnSelection False 按下了Next鍵那么這個(gè)時(shí)候關(guān)閉返回鍵的功能if AVGSpeedShow False 還沒有顯示AVGSpeed選項(xiàng)顯示它 即第一次選擇了確定鍵WriteCmd LCD_CLS DisplayString 0x00 AVGSpeed DisplayString 0x01Next Show TotalDistanceShow F

42、alse顯示了AVGSpeed則表明TotalDistance還沒有顯示Delay 250 延時(shí)消除抖動(dòng) if AVGSpeedShow True 已經(jīng)顯示過AVGSpeed選項(xiàng)了則顯示下一個(gè)選項(xiàng) 即第一次選擇了Next鍵WriteCmd LCD_CLS DisplayString 0x00 Total Distance DisplayString 0x01Next Show TotalDistanceShow True 表明顯示了TotalDistance選項(xiàng)Delay 250 延時(shí)消除抖動(dòng) if Selected True 按下了確定鍵或返回鍵 SelectedShow FalseSele

43、ctedReturn FalseSelected Falseif ReturnSelection True 第一次選擇了確定鍵故這次按下的是返回鍵ReturnMain Trueif ReturnSelection False WriteCmd LCD_CLS DisplayString 00The AVGSpeed is DisplayAVGSpeed DisplayString 0x0A1ms ReturnSelection True 按下了確定鍵那么這個(gè)時(shí)候開啟返回鍵的功能Delay 250 延時(shí)消除抖動(dòng) TotalDistanceShow False if ReturnMain True

44、 按下了返回鍵返回主菜單 ReturnMain Falsecontinue 如果沒有返回主菜單則繼續(xù)檢測Next鍵和確定鍵while 1 if Next True breakif SelectedShow True break 按下Next鍵顯示下一個(gè)選項(xiàng)if Next True Next FalseReturnMain FalseReturnSelection False 按下了Next鍵那么這個(gè)時(shí)候關(guān)閉返回鍵的功能if TotalDistanceShow True ReturnMain Trueif TotalDistanceShow False 還沒有顯示TotalDistance選項(xiàng)顯

45、示它 WriteCmd LCD_CLS DisplayString 0x00 Total Distance DisplayString 0x01Next Show TotalDistanceShow True Delay 250 延時(shí)消除抖動(dòng) if Selected True 按下了確定鍵或返回鍵 SelectedShow FalseSelectedReturn FalseSelected Falseif ReturnSelection True 按下的是返回鍵ReturnMain Trueif ReturnSelection False if TotalDistanceShow False 表明AVGSpeed選項(xiàng)的內(nèi)容還沒有顯示 WriteCmd LCD_CLS DisplayString 00The AVGSpeed is DisplayAVGSpeed DisplayString 0x0A1ms ReturnSelection True Delay 250 延時(shí)消除

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

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

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

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


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