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

正文內(nèi)容

基于無(wú)線(xiàn)控制的智能小車(chē)系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)(編輯修改稿)

2024-10-03 17:36 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 基于無(wú)線(xiàn)控制的智能小車(chē)系統(tǒng)的設(shè)計(jì) 18 前面板中有豐富的輸入控件(如圖 20),和顯示控件(如圖 21),能模仿實(shí)際儀器,非常方便地對(duì)數(shù)據(jù)信號(hào)進(jìn)行顯示和控制。 輸入控件(如圖 20) 顯示控件(如圖 21) 程序框圖中,通過(guò) G 語(yǔ)言,實(shí)現(xiàn)對(duì)數(shù)據(jù)信息的處理和控制,并能對(duì)串口工作方式進(jìn)行設(shè)置,如圖 22。 圖 22 串口設(shè)置圖 上位機(jī) G 語(yǔ)言總程序框圖如圖 23 基于無(wú)線(xiàn)控制的智能小車(chē)系統(tǒng)的設(shè)計(jì) 19 圖 23 上位機(jī) G 語(yǔ)言總程序框圖 上位機(jī)主要功能 1) 發(fā)送小車(chē)運(yùn)行模式的控制命令。 2) 在遠(yuǎn)程控制模式下,發(fā)送小車(chē)運(yùn)動(dòng)指令,控制小車(chē)運(yùn)動(dòng)方向。 3) 無(wú)線(xiàn)發(fā)送數(shù)據(jù)。 4) 無(wú)線(xiàn)接收溫度信息。 5) 實(shí)時(shí)顯示溫度信息。 上位機(jī)進(jìn)入運(yùn)行狀態(tài)后,等待控制命令。當(dāng)發(fā)出控制命令后,首先判斷運(yùn)動(dòng)模式,若為自動(dòng)模式,則小車(chē)自行運(yùn)動(dòng),并發(fā)出溫 度信息到上位機(jī)處,上位機(jī)接受到溫度信息后,進(jìn)行實(shí)時(shí)顯示;若為遠(yuǎn)程控制模式,則小車(chē)按照接受到的運(yùn)動(dòng)命令進(jìn)行行駛,并發(fā)出溫度信息到上位機(jī)處,上位機(jī)接受到溫度信息后,進(jìn)行實(shí)時(shí)顯示。 上位機(jī)主程序流程框圖如圖 24 基于無(wú)線(xiàn)控制的智能小車(chē)系統(tǒng)的設(shè)計(jì) 20 開(kāi) 始 運(yùn) 行小 車(chē) 控制 命 令遠(yuǎn) 程模 式Y(jié)行 駛信 號(hào)小 車(chē)行 駛顯 示溫 度結(jié) 束NNYYN小 車(chē) 自動(dòng) 行 駛 圖 24 上位機(jī)主程序流程框圖 下位機(jī)主程序 單片機(jī)控制 下位機(jī)用單片機(jī) STC89C52 為核心控制系統(tǒng),以 C 語(yǔ)言為開(kāi)發(fā)環(huán)境。下位機(jī)結(jié)構(gòu)如圖25。 基于無(wú)線(xiàn)控制的智能小車(chē)系統(tǒng)的設(shè)計(jì) 21 M C U小 車(chē) 行 駛溫 度 傳 采 集紅 外 避 障L E D 溫 度 顯 示發(fā) 送 溫度 信 息接 受 P C 命 令 圖 25 下位機(jī)程序結(jié)構(gòu)圖 溫度采集子程序 本系統(tǒng) 使用 DS18B20 溫度傳感器,溫度數(shù)據(jù)關(guān)系如表 9 所示。 表 9 DS18b20 溫度數(shù)據(jù)關(guān)系 溫度℃ 數(shù)據(jù)輸出(二進(jìn)制) 數(shù)據(jù)輸出(十六進(jìn)制) +125 00000000 11111010 +25 00000000 00110010 +1/2 00000000 00000001 0 00000000 00000000 1/2 11111111 11111111 FFFF 25 11111111 11001110 FFCE 55 11111111 10010010 FF92 溫度采集子程序包括:初始化,讀一個(gè)字節(jié),寫(xiě)一個(gè)字節(jié),讀取溫度。當(dāng)需要讀取溫度信息時(shí),首先向溫度傳感器寫(xiě)入數(shù)據(jù)信息,完成初始化命令,再次寫(xiě)入數(shù)據(jù),使其開(kāi)始轉(zhuǎn)換溫度信息,最后再發(fā)出命令,完成溫度讀取。子程序如下: void Init_DS18B20(void)//初始化 ds1820 基于無(wú)線(xiàn)控制的智能小車(chē)系統(tǒng)的設(shè)計(jì) 22 { unsigned char x=0。 DQ = 1。 //DQ 復(fù)位 Delay(8)。 //稍做延時(shí) DQ = 0。 Delay(80)。 //精確延時(shí) 大于 480us DQ = 1。 //拉高總線(xiàn) Delay(14)。 x=DQ。 Delay(20)。 } unsigned char ReadOneChar(void) //讀取一個(gè)字節(jié)數(shù)據(jù) { unsigned char i=0。 unsigned char dat = 0。 for (i=8。i0。i) { DQ = 0。 dat=1。 DQ = 1。 if(DQ) dat|=0x80。 Delay(4)。 } return(dat)。 } void WriteOneChar(unsigned char dat)//寫(xiě)一個(gè)字節(jié) { unsigned char i=0。 for (i=8。 i0。 i) 基于無(wú)線(xiàn)控制的智能小車(chē)系統(tǒng)的設(shè)計(jì) 23 { DQ = 0。 DQ = datamp。0x01。 Delay(5)。 DQ = 1。 dat=1。 } } unsigned int ReadTemperature(void)//讀取溫度 { unsigned char a=0。 unsigned char b=0。 unsigned int t=0。 float tt=0。 Init_DS18B20()。 WriteOneChar(0xCC)。 // 跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0x44)。 // 啟動(dòng)溫度轉(zhuǎn)換 Init_DS18B20()。 WriteOneChar(0xCC)。 //跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0xBE)。 //讀取溫度寄存器 a=ReadOneChar()。 //讀低 8 位 b=ReadOneChar()。 //讀高 8 位 t=b。 t=8。 t=t|a。 tt=t*。 t= tt*10+。 //放大 10 倍輸出并四舍五入 return(t)。 } 基于無(wú)線(xiàn)控制的智能小車(chē)系統(tǒng)的設(shè)計(jì) 24 電機(jī)子程序 小車(chē)采用四輪驅(qū)動(dòng),使小車(chē)驅(qū)動(dòng)力增強(qiáng),并可以原地 360 度轉(zhuǎn)彎。電機(jī)驅(qū)動(dòng)模塊接口連接在單片機(jī) P1 口。通過(guò)改變 P1 口的管腳的電平信號(hào),來(lái)改變電機(jī)轉(zhuǎn)動(dòng)方向,從而改變小車(chē)運(yùn)動(dòng)。部分子程序如下: define Left_moto_go {P1_0=0,P1_1=1,P1_2=0,P1_3=1。} //左邊兩個(gè)電機(jī)向前走 define Left_moto_back {P1_0=1,P1_1=0,P1_2=1,P1_3=0。} //左邊兩個(gè)電機(jī)向后轉(zhuǎn) define Left_moto_Stop {P1_0=0,P1_1=0,P1_2=0,P1_3=0。} //左邊兩個(gè)電機(jī)停轉(zhuǎn) define Right_moto_go {P1_4=0,P1_5=1,P1_6=0,P1_7=1。} //右邊兩個(gè)電機(jī)向前走 define Right_moto_back {P1_4=1,P1_5=0,P1_6=1,P1_7=0。} //右邊兩個(gè)電機(jī)向前走 define Right_moto_Stop {P1_4=0,P1_5=0,P1_6=0,P1_7=0。} //右邊兩個(gè)電機(jī)停轉(zhuǎn) void run(void) //前進(jìn) { Left_moto_go 。 //左電機(jī)往前走 Right_moto_go 。 //右電機(jī)往前走 } void backrun(void) //后退 { Left_moto_back 。 //左電機(jī)往前走 Right_moto_back 。 //右電機(jī)往前走 } void leftrun(void) //左轉(zhuǎn) { Left_moto_go 。 //左電機(jī)往前走 Right_moto_back 。 //右電機(jī)往前走 } void rightrun(void) //右轉(zhuǎn) { Left_moto_back 。 //左電機(jī)往前走 Right_moto_go 。 //右電機(jī)往前走 } 基于無(wú)線(xiàn)控制的智能小車(chē)系統(tǒng)的設(shè)計(jì) 25 void stoprun(void) //停止 { Left_moto_Stop 。 //左電機(jī)停止 Right_moto_Stop 。 //右電機(jī)停止 } 避障子程序 小車(chē)避障通過(guò)紅外傳感器來(lái)實(shí)現(xiàn),小車(chē)的右、前、左三個(gè)方向分別安裝了三個(gè)紅外傳感器,檢測(cè)到障礙物時(shí),就返回低電平到 , ,通過(guò)單片機(jī)進(jìn)行判斷,改變小車(chē)運(yùn)動(dòng)方向,從而達(dá)到避障效果。 void fun() { if(P3_5==0amp。amp。P3_7==0) // 左 (中 )右測(cè) 后退 { backrun()。 } else if(P3_5==0) // 右中測(cè) 左轉(zhuǎn) { leftrun()。 } else if(P3_7==0) // 左中測(cè) 右轉(zhuǎn) { rightrun()。 } else if(P3_6==0) // 中測(cè) 左轉(zhuǎn) { if(flag==1) { rightrun()。 flag=0。 } 基于無(wú)線(xiàn)控制的智能小車(chē)系統(tǒng)的設(shè)計(jì) 26 if(flag==0) { leftrun()。 flag=1。 } } else run()。 } 串口通信子程序 [22] 通過(guò)串口方式 [23],實(shí)現(xiàn)數(shù)據(jù)的發(fā)送與接收。下位機(jī)處,單片機(jī)通過(guò)串口通信,與無(wú)線(xiàn)模塊交互數(shù)據(jù)信息,上位機(jī)處, PC 終端通過(guò)串口通信,與無(wú)線(xiàn)模塊交互數(shù)據(jù)信息。 /************************串口中斷接受一個(gè)字符 *************************/ void INT_Uart_Transmit() interrupt 4 //全雙工 uart 接收 { uchar receive_temp。 if (RI==1) //處理接收中斷 { RI=0。 //清除中斷標(biāo)志位 receive_temp=SBUF。 //接收串口數(shù)據(jù) if (point==0) { if(receive_temp==39。@39。) //判斷是否起始位 point++。 else point=0。 } else if (point0 amp。amp。 point=3) //判斷是否接收夠 4bit receive_buffer[point++]=receive_temp。 else if (point==4) //判斷是否接收夠 4bit { 基于無(wú)線(xiàn)控制的智能小車(chē)系統(tǒng)的設(shè)計(jì) 27 if(receive_temp==39。39。) { receive_data[0]=receive_buffer[3]。 if(receive_buffer[1]==39。y39。 amp。amp。 receive_buffer[2]==39。c39。) { Car_mode=39。139。 //遠(yuǎn)程控制模式 } if(receive_buffer[1]==39。z39。 amp。amp。 receive_buffer[2]==39。d39。) { Car_mode=39。239。 //自動(dòng)滅火模式 } point=0。 } else point=0。 } else point=0。 //緩沖區(qū)已滿(mǎn) ,清除緩沖區(qū)內(nèi)數(shù)據(jù) ,重新接收 } } /****************************串口發(fā)送一個(gè)數(shù)字 **************************/ void send_int(int txd) { SBUF = txd。 while(!TI)。 // 等特?cái)?shù)據(jù)傳送 TI = 0。 // 清除數(shù)據(jù)傳送標(biāo)志 } /****************************串口發(fā)送一個(gè)字符 *****
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1