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

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

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

  • 資源ID:35028007       資源大?。?span id="24d9guoke414" class="font-tahoma">107KB        全文頁數(shù):70頁
  • 資源格式: DOC        下載積分:10積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要10積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號:
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

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

畢業(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)境里自動的運(yùn)作不需要人為的管理可應(yīng)用于科學(xué)勘探等等的用途智能電動車就是其中的一個(gè)體現(xiàn)本次設(shè)計(jì)的簡易智能電動車采用AT89S52單片機(jī)作為小車的檢測和控制核心采用金屬感應(yīng)器TL-Q5MC來檢測路上感應(yīng)到的鐵片從而把反饋到的信號送單片機(jī)使單片機(jī)按照預(yù)定的工作模式控制小車在各區(qū)域按預(yù)定的速度行駛并且單片機(jī)選擇的工作模式不同也可控制小車順著S形鐵片行駛采用霍爾元件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è)智能電動車圖1 車輛從起跑線出發(fā)出發(fā)前車體不得超出起跑線在第一個(gè)路程CD區(qū)36米以低速行駛通過時(shí)間不低于10s第二個(gè)路程DE速通過時(shí)間不得于秒自動記錄顯示時(shí)間行駛距離圖2車輛沿著S形鐵片行駛自動轉(zhuǎn)彎自動尋找正確方向和鐵片當(dāng)離開S型鐵片跑道或者感應(yīng)不到鐵片一段時(shí)間的時(shí)候小車自動停止并記錄行駛時(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)行控制使LCD的背光在小車行駛的過程中不亮因?yàn)槲覀儾槐乜雌滹@示在其它我們需要看顯示的內(nèi)容的時(shí)候LCD背光亮23 測速模塊231 方案1采用采用霍爾開關(guān)元器件A44E檢測輪子上的小磁鐵從而給單片機(jī)中斷脈沖達(dá)到測量速度的作用霍爾元件具有體積小頻率響應(yīng)寬度大動態(tài)特性好對外圍電路要求簡單使用壽命長價(jià)格低廉等特點(diǎn)電源要求不高安裝也較為方便霍爾開關(guān)只對一定強(qiáng)度的磁場起作用抗干擾能力強(qiáng)因此可以在車輪上安裝小磁鐵而將霍爾器件安裝在固定軸上通過對脈沖的計(jì)數(shù)進(jìn)行車速測量232 方案2采用紅外傳感器進(jìn)行測速但無論是反射式紅外傳感器還是對射式紅外傳感器他們對都對外圍環(huán)境要求較高易受外部環(huán)境的影響穩(wěn)定性不高且價(jià)格較為昂貴通過對方案1方案2的比較其優(yōu)缺點(diǎn)綜合多方面因素決定選用方案1其原理圖接線如圖5所示圖524 控速模塊241 方案1使用功率三極管作為功率放大器的輸出控制直流電機(jī)線性型驅(qū)動的電路結(jié)構(gòu)和原理簡單成本低加速能力強(qiáng)但功率損耗大特別是低速大轉(zhuǎn)距運(yùn)行時(shí)通過電阻R的電流大發(fā)熱厲害損耗大對于小車的長時(shí)間運(yùn)行不利242 方案2采用繼電器對電動機(jī)的開或關(guān)進(jìn)行控制通過開關(guān)的切換對小車的速度進(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)速這種電路由于工作在管子的飽和截止模式下效率非常高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è)中斷口從而按動按鈕來選擇小車走動的路型來選擇小車的速度是快速中速慢速走完路程小車停止后還可以通過按鈕選擇想要在LCD上想看的信息比如總時(shí)間走過各段路程的時(shí)間平均速度總路程等小車走動的模式選擇有1 直線型滿足設(shè)計(jì)任務(wù)的基本要求能穩(wěn)定的走完全程之后按順序循環(huán)不斷的顯示走完全程所用的時(shí)間走完高速區(qū)所用的時(shí)間和走完低速區(qū)所用的時(shí)間這三個(gè)時(shí)間或者可以通過兩個(gè)按鈕以及LCD顯示的菜單選擇所要看的內(nèi)容如平均速度全程距離以及那三個(gè)時(shí)間2 S型滿足設(shè)計(jì)任務(wù)的發(fā)揮部分的要求小車能自動的感應(yīng)到在前面或在后面鐵片即第一次轉(zhuǎn)彎后若感應(yīng)到的是錯(cuò)誤的方向則小車會后退自動調(diào)整方向沿著S型的鐵片走當(dāng)走完S型鐵片后的一定時(shí)間里小車自動停止之后自動進(jìn)入菜單由我們自己選擇要看的內(nèi)容時(shí)間平均速度和所走的距離3自動型小車先以一定的速度走完全程之后再以一定的速度倒退回起點(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è)金屬感應(yīng)器安裝在車盤下離地略小于或約四毫米當(dāng)金屬傳感器檢測到鐵片時(shí)將對單片機(jī)發(fā)送中斷信號單片機(jī)運(yùn)行中斷改變輸給電機(jī)驅(qū)動信號的電壓占空比來控制小車的速度42 LCD顯示模塊采用1602LCD由單片機(jī)的總線模式連接為節(jié)約電源LCD的背光用單片機(jī)進(jìn)行控制43 測速模塊通過霍爾元件感應(yīng)磁鐵來產(chǎn)生脈沖 當(dāng)霍爾元件在離磁場較近時(shí)輸出會是高電平其它時(shí)候是低電平 一個(gè)車輪均勻放四個(gè)小磁鐵計(jì)算一秒所得的脈沖數(shù)從而計(jì)算出一秒小車輪子轉(zhuǎn)動圈數(shù)再測量出小車車輪周長即可計(jì)算出小車當(dāng)前速度累加可得到當(dāng)前路程44 控速模塊考慮到元器件的缺少以及我們所用的電路的驅(qū)動電機(jī)的電路原理圖和和小車自帶的電路的電機(jī)驅(qū)動原理圖一樣所以暫時(shí)使用小車自帶的電機(jī)驅(qū)動電路圖45 復(fù)位電路模塊單片機(jī)的復(fù)位電路通過手動來實(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 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開顯示及光標(biāo)設(shè)置define LCD_CloseCtr0x08關(guān)顯示define LCD_CLS 0x01清屏幕define LCD_EnterSet 0x06顯示光標(biāo) define BusyP1_7忙信號 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 Normal0x000 代表正常速度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 DisplaySingleChar 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 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 Clock1_Init void 時(shí)鐘中斷初始化void CtrSpeed void 全局變量區(qū)float SpeedCount 0 測速計(jì)數(shù)脈沖float Speed 00float Distance 00 char Time1INTCount 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 Area0 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 ChangeFlagchar 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 SelectedReturn返回選擇標(biāo)志bit Selected確定返回鍵選擇標(biāo)志bit ReturnSelection返回鍵啟用標(biāo)志bit AVGSpeedShow平均速度顯示標(biāo)志bit TotalDistanceShow總路程顯示標(biāo)志bit ReturnMain返回主菜單標(biāo)志bit AutoDisplay自動顯示標(biāo)志bit GoToChoosingDisplay人工選擇標(biāo)志bit AutoMode 0char PassLineID 0char PassLine 0float PrepareDistancefloat FirstDistancefloat SecondDistancefloat ThirdDistanceint 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啟動LCDInit 初始化LCDDisplayString 0x00" Starting " DisplayString 0x01"Designed By 202" Delay 300 WriteCmd LCD_CLS EA 1 開總中斷EX0 1開INT0中斷IT0 1INTO邊沿觸發(fā)EX1 1 開INT1中斷IT1 1 INT1邊沿觸發(fā)SelectedAll False 開始模式和速度選擇 DisplayString 0x00"Choose The Mode " DisplayString 0x01"you want " Delay 50 WriteCmd LCD_CLS IsSelectingMode Truewhile 1 WriteCmd LCD_CLS DisplayString 0x00" Line Mode " DisplayString 0x01"Next Yes" Delay 300 延時(shí)消除抖動while 1 不斷檢測中斷直到按確定鍵或是NEXT鍵 if Next True 如果按Next鍵則直接跳出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 0x01"Next Yes" Delay 300 延時(shí)消除抖動while 1 不斷檢測中斷直到按確定鍵或是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 0x01"Next Yes" Delay 300 延時(shí)消除抖動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 IsSelectingSpeed Truewhile 1 WriteCmd LCD_CLS DisplayString 0x00" Normal Speed " DisplayString 0x01"Next Yes" Delay 300 延時(shí)消除抖動while 1 if Next True 如果按Next鍵則直接跳出breakif SpeedSelected True 如果按確定鍵則設(shè)置速度為Normal并跳出 Thx0 0xecTlx0 0x78 5msThx1 0xf0Tlx1 0x60 4msThx2 0x8aTlx2 0xd0 30msThx3 0xf4Tlx3 0x48 3msSelectedSpeed Normalbreak 如果什么鍵都沒有按下那么一直顯示等待 if SpeedSelected True 按下了確定鍵退出速度選擇 IsSelectingSpeed Falsebreak if Next True Next FalseWriteCmd LCD_CLS DisplayString 0x00" Low Speed " DisplayString 0x01"Next Yes" Delay 300 延時(shí)消除抖動while 1 if Next True 如果再一次按下Next鍵則跳出breakif SpeedSelected True 如果按下確定鍵則設(shè)置速度為Low并跳出 SelectedSpeed 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 0x01"Next Yes" Delay 300 延時(shí)消除抖動while 1 if Next True 如果再一次按下Next鍵則跳出breakif SpeedSelected True 如果按下確定鍵則設(shè)置速度為High并跳出 Thx0 0xe0Tlx0 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 SelectedMode Line DisplayString 0x00"Choosen Mode is " DisplayString 0x01" 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" AutoMode " 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"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 初始化所有中斷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"Designed by 202" if SelectedMode LineAutoMode 0 flag Area0else flag 1while flag 5 if AutoMode 1 自動模式 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 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 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 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)情況下直線模式會自動顯示各個(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" DisplayString 01" Costed " DisplaySingleChar 0x0C1s LowSpeedArea1PassTime LowSpeedArea1EndTime-LowSpeedArea1StartTimeDisplaySingleChar 0x0A1LowSpeedArea1PassTime100x30 if LowSpeedArea1PassTime 9 通過第一個(gè)低速區(qū)的時(shí)間超過sDisplaySingleChar 0x0B1LowSpeedArea1PassTime100x30 if GoToChoosingDisplay True breakDelay 200 WriteCmd LCD_CLS Delay 200 DisplayString 00" HighSpeedArea " DisplayString 01" Costed " DisplaySingleChar 0x0C1s HighSpeedAreaPassTime HighSpeedAreaEndTime-LowSpeedArea1EndTimeDisplaySingleChar 0x0A1HighSpeedAreaPassTime100x30 if HighSpeedAreaPassTime 9 通過高速區(qū)的時(shí)間超過sDisplaySingleChar 0x0B1HighSpeedAreaPassTime100x30 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è)低速區(qū)的時(shí)間超過sDisplaySingleChar 0x0B1LowSpeedArea2PassTime100x30 AutoDisplay False- 菜單選擇你想要看的內(nèi)容-總時(shí)間總路程以及平均速度 -ChoosingDisplay True WriteCmd LCD_CLS 首先顯示主菜單然后顯示第一個(gè)選項(xiàng)DisplayString 0x00"Now 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í)消除抖動 不斷檢測確定鍵和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 00"Costed Time is" DisplayTime DisplayString 0x0A1"s" ReturnSelection True 按下了確定鍵那么這個(gè)時(shí)候開啟返回鍵的功能 AVGSpeedShow FalseDelay 250 延時(shí)消除抖動 按下了Next鍵則顯示第二個(gè)選項(xiàng)if Next True 按下Next鍵顯示AVGSpeed菜單項(xiàng) Next FalseWriteCmd LCD_CLS DisplayString 0x00" AVGSpeed " DisplayString 0x01"Next Show" ReturnMain FalseReturnSelection False 按下了Next鍵那么這個(gè)時(shí)候關(guān)閉返回鍵的功能AVGSpeedShow True 表明AVGSpeed選項(xiàng)已經(jīng)顯示過了Delay 250 延時(shí)消除抖動 顯示第一個(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 0x01"Next Show" TotalDistanceShow False顯示了AVGSpeed則表明TotalDistance還沒有顯示Delay 250 延時(shí)消除抖動 if AVGSpeedShow True 已經(jīng)顯示過AVGSpeed選項(xiàng)了則顯示下一個(gè)選項(xiàng) 即第一次選擇了Next鍵WriteCmd LCD_CLS DisplayString 0x00" Total Distance " DisplayString 0x01"Next Show" TotalDistanceShow True 表明顯示了TotalDistance選項(xiàng)Delay 250 延時(shí)消除抖動 if Selected True 按下了確定鍵或返回鍵 SelectedShow FalseSelectedReturn FalseSelected Falseif ReturnSelection True 第一次選擇了確定鍵故這次按下的是返回鍵ReturnMain Trueif ReturnSelection False WriteCmd LCD_CLS DisplayString 00"The AVGSpeed is" DisplayAVGSpeed DisplayString 0x0A1"ms" ReturnSelection True 按下了確定鍵那么這個(gè)時(shí)候開啟返回鍵的功能Delay 250 延時(shí)消除抖動 TotalDistanceShow False if ReturnMain True 按下了返回鍵返回主菜單 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)顯示它 WriteCmd LCD_CLS DisplayString 0x00" Total Distance " DisplayString 0x01"Next Show" TotalDistanceShow True Delay 250 延時(shí)消除抖動 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 00"The AVGSpeed is" DisplayAVGSpeed DisplayString 0x0A1"ms" ReturnSelection True Delay 250 延時(shí)消除

注意事項(xiàng)

本文(畢業(yè)設(shè)計(jì)論文基于51單片機(jī)的多功能智能小車設(shè)計(jì)論文電路程序論文)為本站會員(仙***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(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),我們立即給予刪除!