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

正文內(nèi)容

基于單片機(jī)的智能小車畢業(yè)論文-資料下載頁

2025-02-26 12:03本頁面

【導(dǎo)讀】同時帶動傳統(tǒng)控制檢測,日新月益更新。的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個核心部件來使用。機(jī)是把主要計算機(jī)功能部件都集成在一塊芯片上的微型計算機(jī)。一種集計數(shù)和多中接口于一體的微控制器。為典型和最有代表性的一種。利用單片機(jī)AT89S51作為報警裝置。的控制器,能充分發(fā)揮AT89S51的數(shù)據(jù)處理和實時控制功能。工作處于最佳狀態(tài),提高系統(tǒng)的靈敏度。當(dāng)產(chǎn)生信號驅(qū)動小車前進(jìn)。塊.控制小車讓其在黑線上實現(xiàn)前進(jìn)后退以及轉(zhuǎn)向。

  

【正文】 ControlCar(uchar CarType)。 //聲明小車控制子程序 void delay(unsigned char x) // 延時程序 { unsigned char i。 //定義臨時變量 while(x) //延時時間循環(huán) { for (i = 0。 i13。 i++) {} //14mS 延時 } } void Delay() //定義延時子程序 { uint DelayTime=30000。 //定義延時時間變量 while(DelayTime)。 //開始進(jìn)行延時循環(huán) return。 //子程序返回 基于單片機(jī)的智能小車的設(shè)計 34 } void ControlCar(uchar CarType) //定義小車控制子程序 { M1A=0。 //將電機(jī) 1 正向電平置低 M1B=0。 //將電機(jī) 1 反向電平置低 M2A=0。 //將電機(jī) 2 正向電平置低 M2B=0。 //將電機(jī) 2 反向電平置低 LeftLed=1。 //關(guān)閉前方左側(cè)指示燈 RightLed=1。 //關(guān)閉前方右側(cè)指示燈 Delay()。 //將此狀態(tài)延時一段時間 switch(CarType) //判斷小車控制指令類型 { case 1: //前進(jìn) //判斷是否是前進(jìn) { M1A=1。 //將電機(jī) 1 正向端口置高 M2A=1。 //將電機(jī) 2 正向端口置高 ShowPort=LedShowData[1]。 //數(shù)碼管顯示前進(jìn)狀態(tài) break。 //退出判基于單片機(jī)的智能小車的設(shè)計 35 斷 } case 2: //后退 //判斷是否是后退 { M1B=1。 //將電機(jī) 1 反向端口置高 M2B=1。 //將電機(jī) 2 反向端口置高 ShowPort=LedShowData[2]。 //數(shù)碼管顯示后退狀態(tài) RightLed=0。 //將前方右側(cè)指示燈置低 (亮 ) LeftLed=0。 //將前方左側(cè)指示燈置低 (亮 ) break。 //退出判斷 } case 3: //左轉(zhuǎn) //判斷是否是左轉(zhuǎn) { M1B=1。 //將電機(jī) 1 反向端口置高 M2A=1。 //將電機(jī) 2 正向端口置高 ShowPort=LedShowData[3]。 //數(shù)碼管顯示左轉(zhuǎn)狀態(tài) LeftLed=0。 //將前方左側(cè)指示燈置低 (亮 ) break。 //退出判斷 } case 4: //右轉(zhuǎn) //判斷是否基于單片機(jī)的智能小車的設(shè)計 36 是右轉(zhuǎn) { M1A=1。 //將電機(jī) 1 正向端口置高 M2B=1。 //將電機(jī) 2 反向端口置高 ShowPort=LedShowData[4]。 //數(shù)碼管顯示右轉(zhuǎn)狀態(tài) RightLed=0。 //將前方右側(cè)指示燈置低 (亮 ) break。 //退出判斷 } default: //默認(rèn)情況下的判斷 { break。 //直接退出判斷 } } } void ComBreak() interrupt 4 //定義串口通信子程序 {unsigned char RecvData。 //定義串口數(shù)據(jù)接收變量 if(RI==1) //判斷是否接收數(shù)據(jù) { RecvData=SBUF。 //將接收到的數(shù)據(jù)放入暫 時變量 if(RecvData10) //判斷接收到的數(shù)據(jù)是否小于 10 基于單片機(jī)的智能小車的設(shè)計 37 { ShowPort=LedShowData[RecvData]。 //將接收到的數(shù)據(jù)通過數(shù)碼管顯示出來 ControlCar(RecvData)。 //將串口數(shù)據(jù)置于小于狀態(tài) } SBUF=RecvData。 //向電腦返回當(dāng)前接收到的數(shù)據(jù) RI=0。 //清除接收中斷標(biāo)志位 } if(TI==1) //判斷是否是發(fā)送中斷 { TI=0。 //清除發(fā)送中斷標(biāo)志位 } } void IR_IN() interrupt 2 using 0 //定義 INT2 外部中斷函數(shù) { unsigned char j,k,N=0。 //定義臨時接收變量 EX1 = 0。 //關(guān)閉外部中斷 ,防止再有信號到達(dá) delay(15)。 //延時時間,進(jìn)行紅外消抖 if (IRIN==1) //判斷紅外信號是否消失 基于單片機(jī)的智能小車的設(shè)計 38 { EX1 =1。 //外部中斷開 return。 //返回 } while (!IRIN) //等 IR 變?yōu)楦唠娖?,跳過 9ms 的前導(dǎo)低電平信號。 { delay(1)。 //延時等待 } for (j=0。j4。j++) //采集紅外遙控器數(shù)據(jù) { for (k=0。k8。k++) //分次采集8 位數(shù)據(jù) { while (IRIN) //等 IR 變?yōu)榈碗娖?,跳過 的前導(dǎo)高電平信號。 { delay(1)。 //延時等待 } while (!IRIN) //等 IR 變?yōu)楦唠娖? { delay(1)。 //延時等待 基于單片機(jī)的智能小車的設(shè)計 39 } while (IRIN) //計算 IR高電平時長 { delay(1)。 //延時等待 N++。 //計數(shù)器加加 if (N=30) //判斷計數(shù)器累加值 { EX1=1。 //打開外部中斷功能 return。 //返回 } } IRCOM[j]=IRCOM[j] 1。
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1