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

正文內(nèi)容

基于at89s52微處理器的機(jī)器人車體系統(tǒng)智能小車設(shè)計(jì)畢業(yè)論文(編輯修改稿)

2025-04-03 08:40 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 客 戶端程序。 智能小車程序 介紹 本設(shè)計(jì)程序分為上位機(jī)和下位機(jī),上位機(jī)主要通過 MFC 控制窗口對(duì)小車發(fā)送運(yùn)動(dòng)指令,上位機(jī)通過 MFC 讀取指令,由計(jì)算機(jī)的串口發(fā)送給 XL02232AP1 無線發(fā)送模塊。無線接收模塊接收命令后進(jìn)行分析解碼,傳送給單片機(jī) AT89S52,單片機(jī)讀取指令,發(fā)送控制命令給電動(dòng)機(jī)驅(qū)動(dòng)芯片 L293D,驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn),從而實(shí)現(xiàn)智能小車的運(yùn)動(dòng)。 上位機(jī)程序介紹 上位機(jī)是用 MFC 寫成的應(yīng)用程序,主要目的為通過 COM口向串口發(fā)送數(shù)據(jù)到無線發(fā)送模塊,經(jīng)接收模塊接收后控制 小車的運(yùn)行軌跡。 第 13 頁(yè) 例如:小車的左直角拐彎的控制代碼如下 void CRobot2Dlg::OnButton7() { // TODO: Add your control notification handler code here CSerial ser。 char buf[1]。 buf[0]=Rob_left_one。 (,9600)。 (buf,)。 ()。 } 通過運(yùn)行程序,點(diǎn)擊此按鈕可以實(shí)現(xiàn)小車的左轉(zhuǎn)彎的運(yùn)動(dòng) 。 下位機(jī)程序介紹 A 主要功能 及 實(shí)現(xiàn) 本設(shè)計(jì)主要實(shí)現(xiàn)了只能小車在運(yùn)動(dòng)過程中的直行,后退,停止及轉(zhuǎn)彎,下面詳細(xì)介紹各功能的實(shí)現(xiàn)情況。 sbit input1=P1^3。 sbit input2=P1^2。 sbit input4=P1^0。 sbit input3=P1^1。 sbit en=P3^6。 分別定義 input1,input2,input4,input3 為 P1 口的第 3,2,0,1 位,以便進(jìn)行位操作 ,定義 en 為 p3 口的第六位。 首先進(jìn)行單片機(jī)的初始化。 TMOD=0x22。 TH0=0x38。 第 14 頁(yè) TL0=0x38。 TH1=0xfd。 TL1=0xfd。 TR0=1。 TR1=1。 REN=1。 SM0=0。 SM1=1。 EA=1。 ES=1。 ET0=1。 對(duì)定時(shí)器方式選擇寄存器 TMOD 的操作,確定是按定時(shí)器的工作模式, TH0和 TL0 分別是定時(shí)器 0 的高低 8 位,賦初值為 0x38, TH1 和 TL1 分別是定時(shí)器 1的高低八位,賦初值為 0xfd。 TR0=1, TR1=1 表示分別啟動(dòng) T0 和 T1計(jì)數(shù)器 REN為接收控制位, REN=1 表示允許接收 。 SM0=0, SM1=1 表示單片機(jī)的串行口的通信方式是 10 位異步收發(fā)方式,所用的波特頻率則由定時(shí)器控制完成。在中斷初始化方面, EA=1 表示開單片機(jī)所有中斷 ,ES=1 開串行口中斷, ET0=1 開 TO中斷,初始化完畢,進(jìn)入主程序循環(huán)。 主程序中,建立 void carmov(uchar left,uchar right)函數(shù),方便主程序循環(huán)語句 while()的調(diào)用。 利用 switch 語句的判斷 ,例如小車的右轉(zhuǎn): case 0x06: carmov(UF,US)。 break。//小車 原地 case 0x07: carmov(UF,UL)。 break。//小車右轉(zhuǎn) 弧形拐彎 1級(jí) case 0x08: carmov(UF,UM)。 break。//小車右轉(zhuǎn) 弧形拐彎 2級(jí) 單片機(jī)對(duì)接收到的指令通過 上述語句進(jìn)行判斷,若收到的為 0x08,則執(zhí)行第三條語句,調(diào)用 carmov 函數(shù),函數(shù)的兩個(gè)初始值分別為 UF 和 UM,在程序中已定義 define UF 1, define UM 2,運(yùn)行 carmov 函數(shù),首先進(jìn)行左輪運(yùn)動(dòng)情況的判斷 ,在此例中,我們選擇左輪的初值為 UF。 if(left==UF) 第 15 頁(yè) { input1=1。 input2=0。 } input1 和 input2 分別賦值為 1 和 0,表示小車左輪全速前進(jìn) 。 繼續(xù)運(yùn)行程序進(jìn)行小車的右輪運(yùn)動(dòng)情況的判斷,此例中,我們選擇右輪的初值為 UM。 else if(right==UM) { if(num60) { input4=1。 input3=0。 } else { input4=1。 input3=1。 } } 首先判斷 num 是否小于 60,若小于,則將 input4 和 input3 分別 賦值為 1及 0,既右輪前進(jìn),否則將二者賦值為 1 和 1,右輪停止。 通過左右輪的單獨(dú)控制,完成小車的向右 2級(jí)弧形拐彎。 在本程序設(shè)計(jì)中,巧用定時(shí)器中斷 模擬產(chǎn)生了 PWM 信號(hào),以實(shí)現(xiàn)控制舵機(jī)。 void tim0() interrupt 1 { num++。 if(num=90) 第 16 頁(yè) num=0。 } 簡(jiǎn)單介紹單片機(jī)模擬產(chǎn)生 PWM信號(hào) 。單片機(jī)系統(tǒng)實(shí)現(xiàn)對(duì) 電機(jī) 的控制,必須首先完成兩個(gè)任務(wù):首先是產(chǎn)生基本的 PWM 周期信號(hào) ;其次是脈寬的調(diào)整,即單片機(jī)模擬 PWM 信號(hào)的輸出,并且調(diào)整占空比。 在此,我們?cè)O(shè)計(jì) num 初值 為 0, num自加,如果 num=90 時(shí),則將 num 變?yōu)?繼續(xù)中斷程序運(yùn)行,在此我們用定時(shí)器中斷模擬出 PWM 波,將其分成 90 等份,在小車轉(zhuǎn)動(dòng)過程中,可以限制 num 值的大小而調(diào)整 PWM 波中高電平的占空比,從而實(shí)現(xiàn)小車電機(jī)在一個(gè) PWM 周期波中的轉(zhuǎn)數(shù)控制,達(dá)到小車拐彎角度的控制 ]1[ 。 具體的設(shè)計(jì)過程:例如想讓小車 轉(zhuǎn)向左極限的角度,它的正脈沖為 2ms,則負(fù)脈沖為 脈沖周期 20ms2ms=18ms,所以開始時(shí)在控制口發(fā)送高電平,然后設(shè)置定時(shí)器在 2ms 后發(fā)生中斷,中斷發(fā)生后,在中 斷程序里將控制口改為低電平,并將中斷時(shí)間改為 18ms,再過 18ms 進(jìn)入下一次定時(shí)中斷,再將控制口改為高電平,并將定時(shí)器初值改為 2ms,等待下次中斷到來,如此往復(fù)實(shí)現(xiàn) PWM 信號(hào)輸出到 電機(jī) 。用修改定時(shí)器中 斷初值的方法巧妙形成了脈沖信號(hào),調(diào)整時(shí)間段的寬度便可使小車 運(yùn)動(dòng)。 為保證軟件在定時(shí)中斷里采集其他信號(hào),并且使發(fā)生 PWM 信號(hào)的程序不影響中斷程序的運(yùn)行 (如果這些程序所占用時(shí)間過長(zhǎng),有可能會(huì)發(fā)生中斷程序還未結(jié)束,下次中斷又到來的后果 ),所以需要將采集信號(hào)的函數(shù)放在長(zhǎng)定時(shí)中斷過程中執(zhí)行,也就是說每經(jīng)過兩次中斷執(zhí)行一次 這些程序,執(zhí)行的周期還是 20ms。 B 程序流程圖 第 17 頁(yè) 圖 27 產(chǎn)生 PWM 信號(hào)流程圖 開始 中斷返回 定時(shí)器初始化開定時(shí)器中斷 改變定時(shí)時(shí)間輸出管腳取反 運(yùn)行其他中斷程序 有中斷 是否為長(zhǎng)中斷 第 18 頁(yè) 圖 28 串口中斷程序流程圖 圖 29 定時(shí)器中斷流程圖 接收中斷標(biāo)志位RI 清零 讀取數(shù)據(jù) 結(jié)束 開始 結(jié)束 num++ num=90? num=0 是 否 開始 第 19 頁(yè) 圖 210 主程序流程 圖 前進(jìn) 原地左轉(zhuǎn) 向左弧形轉(zhuǎn)彎 向右弧形轉(zhuǎn)彎 原地右轉(zhuǎn) 后退 停止 開始 初始化 第 20 頁(yè) 第 3 章 無線 收發(fā)模塊 在小車系統(tǒng)中,控制系統(tǒng)的基本任務(wù)是:接收系統(tǒng)通過無線通信發(fā)射裝置傳來的運(yùn)動(dòng)控制指令,然后根據(jù)接收到的運(yùn)動(dòng)指令控制小車左、右輪的停止或轉(zhuǎn)動(dòng)以實(shí)現(xiàn)規(guī)劃的運(yùn)動(dòng)。機(jī)器人能否正確接收運(yùn)動(dòng)控制指令,決定于無線通信系統(tǒng)的性能。所以通信速率高、集成度好、可靠性高、抗干擾能力強(qiáng)的無線通信系統(tǒng)對(duì)于 正確實(shí)現(xiàn)小車的運(yùn)動(dòng)規(guī)劃 具有重要的意義 ]8[ 。 無線模塊的選擇 本設(shè)計(jì)中采用一款低功耗超高頻 的 XL02232AP1數(shù)據(jù)收發(fā)模塊,它具有 通信速率高、性能可靠、體積小的優(yōu)點(diǎn),只接少許外圍電路即可工作,使用非常方便,既可發(fā)送又可接收。 其特點(diǎn)主要有 ]8[ : ★ 300米傳輸距離 ★工作頻率在 - ,(默認(rèn) ) ★可設(shè)置 ID:范圍 0- 65535,默認(rèn) ID:12345 ★串口速率 .(默認(rèn) ) ★數(shù)據(jù)格式 8N1 ★方便快捷的參數(shù)設(shè)置 XL02232AP1 的端口定義及 連接示意圖 第 21 頁(yè) A 端口定義: 表 31 管腳 定義 說明 電平 備注 1 VCC 電源 +5v 模塊的第一方形焊盤 2 GND 地 GND 3 TXD 模塊數(shù)據(jù)輸出 TTL 4 RXD 模塊數(shù)據(jù)輸入 TTL 5 SET 設(shè)置時(shí)拉低,平時(shí)懸空 進(jìn)入設(shè)置模塊時(shí),請(qǐng)先將此端口拉低,再給模塊上電,此時(shí)綠燈長(zhǎng)亮 6 GND 地 GND 7 NC 不連接 B 連接示意圖 圖 31 第 22 頁(yè) 圖 32 無線模塊的性能 A 通信方式 在智能小車運(yùn)動(dòng)過程中,機(jī)器人的無線通信協(xié)議采用廣播式通信方式。上位機(jī)通過無線通信設(shè)備,發(fā)出數(shù)據(jù),小車從數(shù)據(jù)串中確定出發(fā)給自己的命令 B 程序 小車 無線接收程序是串行通信中斷服務(wù)程序,其流程框圖見圖 33“串行通信中斷程序流程”。 第 23 頁(yè) 圖 33 串行口通信中斷程序流程 開始 同步標(biāo)志 1? 幀頭 155H? 同步標(biāo)志 2? 同步標(biāo)志 3? 幀頭 355H? 幀頭 2FAH? 置同步標(biāo)志 1 置同步標(biāo)志 3 置同步標(biāo)志 0 置同步標(biāo)志 2 置同步標(biāo)志 0 開始接收數(shù)據(jù),送到暫存區(qū),數(shù)據(jù)和 CRC 校驗(yàn) 最后字節(jié) CRC? 最后一個(gè)字節(jié)? 置同步標(biāo)志 0 置新接收成功標(biāo)志 1 置同步標(biāo)志 0 恢復(fù)現(xiàn)場(chǎng)返回 N N N Y Y Y Y N N N N N Y Y Y Y Y 第 24 頁(yè) 由流程圖 33 可知,必須通過啟始同步碼 3道關(guān)驗(yàn)證,才能開始接收數(shù)據(jù)。一幀數(shù)據(jù)接收完后,字節(jié)還要進(jìn)行 CRC(循環(huán)冗余校驗(yàn) )。 CRC 校驗(yàn)字節(jié)是每個(gè)數(shù)據(jù)字節(jié)相互異或后的結(jié)果。接收到的數(shù)據(jù)校驗(yàn)正確則接收,否則放棄這幀數(shù)據(jù) ]9[ 。 C 干擾與噪聲 造成無線通信系統(tǒng)可靠 性不高的原因很多,主要原因是存在著各種噪聲和干擾。它們的來源不同 ,有電臺(tái)干擾、通信信號(hào)干擾及驅(qū)動(dòng)左右輪的直流電機(jī)產(chǎn)生的干擾, 以及系統(tǒng)設(shè)備本身所產(chǎn)生的各種噪聲等。 為了抑制系統(tǒng)干擾及噪 聲,應(yīng)盡可能提高無線模塊的工作電壓和發(fā)射功率。發(fā)射器是通過通信線纜與上位機(jī)相連的,發(fā)射器輸入端加上光電隔離電路,以排除上位機(jī)的干擾。使用的發(fā)射和接收天線的長(zhǎng)度保持一致,且均垂直于水平面向上。通信中出現(xiàn)失誤的情況是難以避免的,因此在通信協(xié)議中加入起始幀頭和校驗(yàn)碼,通過抗干擾方法設(shè)計(jì)接收軟件程序,提高數(shù)據(jù)接收的準(zhǔn)確性。 配置接口通訊協(xié)議 圖 34 第 25 頁(yè) 操作步驟:按圖 34中標(biāo)識(shí),把無線模塊插入轉(zhuǎn)接板相對(duì)位置。將無線發(fā)射模塊接到計(jì)算機(jī)串口上面,并將無線接收模塊接到小車串口上。首次使用無線收發(fā)模塊要進(jìn)行 調(diào)試:將電源開關(guān)置于 ON,電源指示燈紅燈亮,再將設(shè)置開關(guān)置于 ON,設(shè)置狀態(tài)燈綠燈亮。此時(shí),可以用相關(guān)軟件調(diào)試無線收發(fā)模塊通信協(xié)議 ]7[ 。本設(shè)計(jì)中,采用 RFMagic 調(diào)試無線模塊。在正常通訊情況下,設(shè)置開關(guān)置于 OFF。 接口 通訊接口 : RS232 – TTL 通訊速率 : 9600bps 通訊格式 : 1 start bit , 8 data bits , no parity bit , 1 stop bit 注意:在配置模式下串口恒為以上 格式。 配置使能: config pin 低電平進(jìn)入配置模式 config pin 高電平進(jìn)入正常模式 頻率計(jì)算: x = 設(shè)置 RF頻率參數(shù) TX = * (67 + x/65535) 例如:頻率高字節(jié) = 0xcc; 頻率低字節(jié) = 0xcc; 則 x = 0xcccc TX = * (67 + 0xcccc/0xffff) = * (67 +) = 例如:頻率高字節(jié) = 0xaa; 頻率低字節(jié) = 0x00; 則 x = 0xaa00 TX = * (67 + 0xaa00/0xffff) = * (67 +) = 命令 第 26 頁(yè) ( 1)寫命令: 0xF8
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1