freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的多功能智能小車畢設(shè)畢業(yè)論文(留存版)

  

【正文】 n plates。為節(jié)約電源電量并且不影響LCD的功能,LCD的背光用單片機(jī)進(jìn)行控制,使LCD的背光在小車行駛的過(guò)程中不亮,因?yàn)槲覀儾槐乜雌滹@示;在其它我們需要看顯示的內(nèi)容的時(shí)候LCD背光亮。當(dāng)走完S型鐵片后的一定時(shí)間里,小車自動(dòng)停止。在這期間遇到了很多從來(lái)都沒(méi)有遇到過(guò)的問(wèn)題,但是通過(guò)自己的努力和老師、同學(xué)的幫助最后把它們一一解決了。 //延時(shí)子程序bit IsBusy(void)。 float Distance = 。bit Stop=0。 bit Running。 //總路程顯示標(biāo)志bit ReturnMain。 P02=0。 //開(kāi)始模式和速度選擇 /* 模式選擇 */ DisplayString(0x0,0,Choose The Mode )。 DisplayString(0x0,0, Curve Mode )。 } } } if (ModeSelected==True) { IsSelectingMode=False。 Delay(300)。 DisplayString(0x0,0, Low Speed )。 //8ms Thx[1]=0xe0。 /* 顯示所選擇的模式和速度方案 */ if (SelectedMode==Line) { DisplayString(0x0,0,Choosen Mode is )。 } if (SelectedSpeed==Low) { DisplayString(0x0,0,Choosen Speed is)。 DisplayString(0x05,0,Go!!!)。 case 2 :{ P01=P02=P04=0。amp。P03=0。} else {P01=1。 } } //補(bǔ)中斷路程,加上最后一次中斷缺失的路程 ComputeSpeedANDDistance()。 WriteCmd(LCD_CLS)。 DisplaySingleChar(0x0C,1,39。 DisplaySingleChar(0x0A,1,LowSpeedArea2PassTime%10+0x30)。 Selected=False。 //延時(shí)消除抖動(dòng) } /*第二次按鍵*/ /*顯示第一個(gè)選項(xiàng)的內(nèi)容后又不斷檢測(cè)返回鍵(確定鍵)和Next鍵*/ while(1) { if (Next==True) break。 SelectedReturn=False。 ReturnSelection=False。 Delay(250)。 DisplayString(0x0,1,Next Show)。 if (SelectedShow==True) break。 if (SelectedShow==True) break。 WriteCmd(LCD_Init)。 WriteCmd(LCD_Init)。 DisplayString(0x0A,1,m)。 //按下了確定鍵,那么這個(gè)時(shí)候開(kāi)啟返回鍵的功能 Delay(250)。 ReturnMain=False。 DisplayString(0,0,The AVGSpeed is)。 } /*第三次按鍵*/ /*如果沒(méi)有返回主菜單,則繼續(xù)檢測(cè)Next鍵和確定鍵*/ while(1) { if (Next==True) break。 DisplayString(0x0,1,Next Show)。 ReturnMain=False。 //延時(shí)消除抖動(dòng) /*第一次按鍵*/ /*不斷檢測(cè)確定鍵和Next鍵*/ while(1) { if (Next==True) break。 DisplaySingleChar(0x0C,1,39。 WriteCmd(LCD_CLS)。 AutoDisplay=True。P04=0。P02=0。P03=1。amp。} }break。s39。 } if (SelectedMode==Line) { if (SelectedSpeed==Normal) { DisplayString(0x0,0,Choosen Speed is)。 } } } SelectedAll=True。 Delay(300)。 } //如果什么鍵都沒(méi)有按下,那么一直顯示等待 } if (SpeedSelected==True) //按下了確定鍵,退出速度選擇 { IsSelectingSpeed=False。 IsSelectingSpeed=True。 Delay(300)。 } //如果什么鍵都沒(méi)有按下,那么一直顯示等待 } if (ModeSelected==True) //按下了確定鍵,退出模式選擇 { IsSelectingMode=False。 //開(kāi)INT0中斷 IT0=1。int ThirdHigh。 //返回選擇標(biāo)志bit Selected。bit Roundid=0。short Round=0。 //時(shí)鐘中斷初始化void Clock1_Init(void)。 //定位顯示地址void DisplaySingleChar(char x,char y,char cchar)。(圖8) 模式選擇模塊:兩個(gè)中斷口使用和感應(yīng)鐵片、感應(yīng)速度所使用的中斷口一樣,通過(guò)一個(gè)與非門和按鈕控制。綜合3種方案的優(yōu)缺點(diǎn),決定選擇方案3,其電路原理圖如(圖6)所示:(圖6) 模式選擇模塊模式選擇模塊通過(guò)一個(gè)74LS00與非門和兩個(gè)不帶鎖按鈕來(lái)控制單片機(jī)單片機(jī)的兩個(gè)中斷口,從而按動(dòng)按鈕來(lái)選擇小車走動(dòng)的路型、來(lái)選擇小車的速度是快速、中速、慢速;走完路程小車停止后還可以通過(guò)按鈕選擇想要在LCD上想看的信息,比如總時(shí)間、走過(guò)各段路程的時(shí)間、平均速度、總路程等。 發(fā)揮部分S型控制:如(圖2)所示:(圖2)車輛沿著S形鐵片行駛,自動(dòng)轉(zhuǎn)彎,自動(dòng)尋找正確方向和鐵片。智能電動(dòng)車就是其中的一個(gè)體現(xiàn)。在第一個(gè)路程C~D區(qū)(3~6米)以低速行駛,通過(guò)時(shí)間不低于10s;第二個(gè)路程D~E區(qū)(2米)以高速行駛,通過(guò)時(shí)間不得多于4秒;第三個(gè)路程E~F區(qū)(3~6米)以低速行駛,通過(guò)時(shí)間不低于10s。 方案3采用由雙極性管組成的H橋電路。 測(cè)速模塊通過(guò)霍爾元件感應(yīng)磁鐵來(lái)產(chǎn)生脈沖(當(dāng)霍爾元件在離磁場(chǎng)較近時(shí)輸出會(huì)是高電平,其它時(shí)候是低電平),一個(gè)車輪均勻放四個(gè)小磁鐵,計(jì)算一秒所得的脈沖數(shù),從而計(jì)算出一秒小車輪子轉(zhuǎn)動(dòng)圈數(shù),再測(cè)量出小車車輪周長(zhǎng)即可計(jì)算出小車當(dāng)前速度,累加可得到當(dāng)前路程。 //寫(xiě)命令void WriteData(char ddata)。 //控速中斷void Time0INT(void)。char Tlx0=0xf0。 //高速區(qū)通過(guò)時(shí)間char LowSpeedArea2PassTime=0。 //速度選擇是否完畢標(biāo)志bit ChoosingDisplay。float ThirdDistance。 WriteCmd(LCD_CLS)。 //延時(shí)消除抖動(dòng) while (1) //不斷檢測(cè)中斷,直到按確定鍵或是NEXT鍵 { if (Next==True) //如果按Next鍵則直接跳出 break。 WriteCmd(LCD_CLS)。 DisplayString(0x0,1, kind of Speed )。Tlx[3]=0x48。 WriteCmd(LCD_CLS)。 break。 DisplayString(0x0,1, AutoMode )。 //初始化所有中斷 DisplayString(0x0,0,Left Times To Go)。 while(flag5) { if(AutoMode==1) //自動(dòng)模式 { switch(PassLineID) { case 0 :{ if(IsT0INT==1) {P01=P02=P04=0。P04=0。} Back=1。P04=0。} else {P01=0。 //關(guān)T0中斷 ET1=0x0。 if (LowSpeedArea1PassTime 9) //通過(guò)第一個(gè)低速區(qū)的時(shí)間超過(guò)s DisplaySingleChar(0x0B,1,LowSpeedArea1PassTime/10+0x30)。 Delay(200)。 DisplayString(0x0,0, Costed Time )。 WriteCmd(LCD_CLS)。 //顯示了AVGSpeed,則表明TotalDistance還沒(méi)有顯示 Delay(250)。 //延時(shí)消除抖動(dòng) } TotalDistanceShow=False。 Selected=False。 } /*第四次按鍵*/ while(1) { if (Next==True) break。 DisplayDistance()。 if (ReturnSelection==False) { if (TotalDistanceShow==True) { WriteCmd(LCD_CLS)。}/****************************************************************************************\** LCD驅(qū)動(dòng)模塊 **\****************************************************************************************//* LCD初始化函數(shù)*/void LCDInit(void){ //三次顯示模式設(shè)置 LCD_Data=0。 //關(guān)顯示 WriteCmd(LCD_CLS)。 ReturnSelection=False。 ReturnSelection=False。 //延時(shí)消除抖動(dòng) } } if (SelectedShow==True) { SelectedShow=False。 DisplayDistance()。 DisplayString(0x0,0, Total Distance )。 if (ReturnSelection==False) { WriteCmd(LCD_CLS)。 ReturnMain=False。 DisplayTime()。 /* 菜單選擇你想要看的內(nèi)容總時(shí)間、總路程以及
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1