【正文】
//對(duì)新行在LF前發(fā)送CR } while(sendfull)。 //打開串行口中斷 } }}//putchar:中斷控制putchar函數(shù)//替換標(biāo)準(zhǔn)庫(kù)函數(shù)putchar程序//printf函數(shù)使用putchar輸出一個(gè)字符char putchar (char c){ if (c==39。(OLEN1)]=c。 //設(shè)置發(fā)送無效 } }} //PUTBUF: 寫字符到SBUF或發(fā)送緩沖區(qū)void putbuf(char c){ if(!sendfull) //如果緩沖區(qū)不滿就發(fā)送 { if(!sendactive) { sendactive=1。 //清發(fā)送中斷標(biāo)志 if(ostart!=oend) { SBUF=outbuf[ostart++amp。 //讀字符 RI=0。 //接收緩沖存儲(chǔ)數(shù)組bit bdata sendfull。 //發(fā)送緩沖區(qū)結(jié)束索引char idata outbuf[OLEN]。利用公式計(jì)算得出TC=256200=59,換成十六進(jìn)制為TC=0x38。模式3:TH0和TL0均作為兩個(gè)獨(dú)立的8位計(jì)數(shù)器工作。這13位由TH的全部8位和TL中的低5位組成,TL中的高3位沒有用到。SMOD 是電源控制寄存器PCON 的第7 位——波特率倍增位。它表示每秒鐘傳送的bit的個(gè)數(shù)??捎密浖聿樵儬顟B(tài)位,也可編程使其觸發(fā)中斷。寫SBUF的操作把待發(fā)送的數(shù)據(jù)送入,讀SBUF的操作把接收到的數(shù)據(jù)取出。(RXD,第10號(hào)引腳)用來串口接收,(TXD,第11號(hào)引腳)用來串口發(fā)送。圖314 ISP軟件下載窗口串口通訊UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)器)是一種能夠把二進(jìn)制數(shù)據(jù)按位(bit)傳送的通信方式。第三個(gè)為單片機(jī)型號(hào)選擇窗口。不同的接口,該窗口就提供不同內(nèi)容的下載速度。點(diǎn)擊ISP下載軟件圖標(biāo),打開ISP下載軟件窗口如圖114所示,并將通信參數(shù)設(shè)置成圖中所示的參數(shù)。點(diǎn)擊“output”,選擇其中的“Create HEX File”,如圖313所示,點(diǎn)擊確定關(guān)閉設(shè)置窗口。(3)程序文件添加到項(xiàng)目文件中去后,這時(shí)上圖中“Source Group 1”的前面將出現(xiàn)一個(gè)“+”號(hào);單擊它將出現(xiàn)剛才添加的源文件名,如圖311示(注意:圖中顯示的文件名是剛才輸入的文件名)。通過“FileNew”操作)為該項(xiàng)目新建一個(gè)C語(yǔ)言程序文件,保存后彈出圖39示的對(duì)話窗口,將文件保存在項(xiàng)目文件夾中,( 為文件擴(kuò)展名,表示此文件類型為C 語(yǔ)言源文件)。圖36 單片機(jī)型號(hào)選擇窗口 圖37 是否加載8051 啟動(dòng)代碼提示窗口 圖38 目標(biāo)工程窗口項(xiàng)目文件創(chuàng)建后,這時(shí)只有一個(gè)框架,緊接著需要向項(xiàng)目文件中添加程序文件內(nèi)容。 圖34 Project菜單畫面 圖35 Create New Project對(duì)話框(2)在文件名中輸入如“HelloRoBot”,保存在想保存的位置(如D:\我的智能車制作與編程\程序\Chapter 1),可不用加后綴名,點(diǎn)擊“保存”,后會(huì)出現(xiàn)圖36示的窗口。(2)在后續(xù)出現(xiàn)的窗口中全部選擇Nex按鈕,將程序默認(rèn)安裝在C:\ProgramFiles\Keil文件目錄下。圖32為智能車走“日”字的程序流程圖。、左伺服電動(dòng),、GND接地和VCC接+5V電源。[15]下面是連接的串口通信電路和ISP下載接口,分別如圖213和圖214所示。15腳GND、16腳VCC(+5v)。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。由6腳和4只電容構(gòu)成。本設(shè)計(jì)采用了轉(zhuǎn)換芯片MAX232來進(jìn)行實(shí)現(xiàn)。RS232標(biāo)準(zhǔn)是1969 年由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。[13]為了讓單片機(jī)與PC機(jī)能相互通信,必須讓RS232電平和TTL電平相互轉(zhuǎn)換。 EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲(chǔ)器(地址為0000HFFFFH),EA端必須保持低電平(接地)。 如有必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。 ALE/PROG——當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)。INT1(外中斷1)。在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。 P3口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O 口,p3輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL 邏輯電平。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX DPTR)時(shí),P2口送出高八位地址。SCK(在系統(tǒng)編程用)。 表21 P1端口引腳第二功能端口第二功能T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出。對(duì)P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。[10]在這種模式下,P0不具有內(nèi)部上拉電阻。圖210 AT89S52引腳結(jié)構(gòu)示意圖P0口:P0口是一個(gè)8位漏極開路的雙向I/O口。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。[8]使用ATMEL公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。它的工作原理是:它的基區(qū)做得很薄,當(dāng)按圖29連接時(shí),發(fā)射結(jié)正偏,集電結(jié)反偏,發(fā)射區(qū)向基區(qū)注入電子,這時(shí)由于集電結(jié)反偏,對(duì)基區(qū)的電子有很強(qiáng)的吸力,所以由發(fā)射區(qū)注入基區(qū)的電子大部分進(jìn)入集電區(qū),于是集電極的電流得到了增大。搭建電路圖,如圖29所示。紅外線的硬件部件清單:(1) 兩個(gè)IR LED。也就是說,檢測(cè)器只尋找每秒閃爍38,500次的紅外光。圖28 紅外光探測(cè)障礙物紅外線二極管發(fā)射紅外光,如果智能車的前面有障礙物,紅外線將從物體反射回來,相當(dāng)于智能車眼睛的紅外檢測(cè)(接收)器,檢測(cè)到反射回的紅外光線,并發(fā)出信號(hào)來表明檢測(cè)到從物體反射回紅外線。本設(shè)計(jì)中將使用紅外光來照射智能車前進(jìn)的路線,然后確定何時(shí)有光波從被探測(cè)目標(biāo)反射回來,通過檢查反射回來的紅外線就可以確定前面是否有物體,來決定它的動(dòng)作,從而實(shí)現(xiàn)導(dǎo)航。紅外輻射是波長(zhǎng)介于可見光與微波之間的電磁波,人眼察覺不到。 紅外線導(dǎo)航模塊人類70%以上的知識(shí)均來自眼睛,也就是人類的視覺系統(tǒng),盡管人們的眼睛所能見到的光線只占整個(gè)光波范圍很小的一部分。搭建的胡須電路,如圖27所示。(4)M3尼龍墊圈2個(gè)。在本設(shè)計(jì)中,在智能車上安裝一個(gè)稱為胡須的觸覺開關(guān),通過對(duì)智能車編程來監(jiān)視學(xué)覺開關(guān)的狀態(tài),以及當(dāng)它遇到障礙物時(shí)決定如何動(dòng)作,最終的結(jié)果是通過觸覺給智能車自動(dòng)導(dǎo)航。[2]。所謂零點(diǎn)信號(hào)就是指伺服電機(jī)在保持靜止時(shí)接收到某一特定的控制信號(hào)。脈沖信號(hào)不同可以控制伺服電機(jī)的轉(zhuǎn)速。 伺服電機(jī)驅(qū)動(dòng)模塊機(jī)器人的伺服電機(jī)是用來將機(jī)器人大腦(計(jì)算機(jī))發(fā)出的運(yùn)動(dòng)指令轉(zhuǎn)換為運(yùn)動(dòng)動(dòng)作的部件,相當(dāng)于肌肉的作用。該系列集成穩(wěn)壓IC型號(hào)中的LM78后面的數(shù)字代表該三端集成穩(wěn)壓電路的輸出電壓,本設(shè)計(jì)用的LM7805表示輸出電壓為正5V。具體的智能車控制系統(tǒng)總體方案如圖11所示。隨著現(xiàn)代化信息技術(shù)的飛躍發(fā)展,最近幾年智能控制技術(shù)廣泛的應(yīng)用和研究。其研究重點(diǎn)開始轉(zhuǎn)向具有感覺環(huán)境模型,自主自導(dǎo)式的智能機(jī)器人。智能控制技術(shù)包括分級(jí)遞階智能控制技術(shù),模糊控制技術(shù),專家控制技術(shù),機(jī)器學(xué)習(xí)技術(shù)。近幾年,處理器速度的提高和微機(jī)的高性能化、傳感器系統(tǒng)的集成化與智能化為嵌入智能控制創(chuàng)造了條件,有力地推動(dòng)著機(jī)電一體化產(chǎn)品向智能化方向發(fā)展。設(shè)計(jì)分為五個(gè)模塊:?jiǎn)纹瑱C(jī)最小系統(tǒng)、電機(jī)驅(qū)動(dòng)電源、伺服電機(jī)驅(qū)動(dòng)電路、胡須導(dǎo)航、紅外線導(dǎo)航。為了簡(jiǎn)化電路,減少小車負(fù)擔(dān),用軟件編程發(fā)給伺服電機(jī)的高、低電平信號(hào),來控制電機(jī)的轉(zhuǎn)向、轉(zhuǎn)速。關(guān)鍵字:?jiǎn)纹瑱C(jī),智能車,避障,伺服電機(jī)AbstractThis design uses AT89S52 microcontroller as the core controller,and as the data processing center. To simplify the circuit, reducing the burden of the car, the software program distributed by the high servo motor, lowlevel signals to control the steering motor, rotational speed. Design is divided into five modules: SCM minimum system, motor drive power supply, servo motor drive circuit, beard navigation, infrared navigation. Car to go to achieve a Day, which beard obstacle avoidance and infrared obstacle avoidance capabilities. Simple circuit structure of the system reliability can be high, the intelligent control of the factory pave the way.Key words: Microcontroller, smart cars, obstacle avoidance, servo motor 目錄1 緒論12 硬件設(shè)計(jì)13 軟件設(shè)計(jì)14 安裝軟件16“日”字程序354 結(jié)論38參考文獻(xiàn)39致謝401 緒論智能化是21世紀(jì)機(jī)電一體化的發(fā)展方向。智能控制是一種無需人的干預(yù)就能夠自主地驅(qū)動(dòng)智能機(jī)器實(shí)現(xiàn)其自身目標(biāo)的過程是用機(jī)器模擬人類智能的一個(gè)重要領(lǐng)域。智能機(jī)器人是一個(gè)復(fù)雜而龐大系統(tǒng),必須配備各種傳感器,以便獲得周圍環(huán)境的必要信息,提供給智能機(jī)器人的智能控制系統(tǒng)進(jìn)行決策和執(zhí)行。直至今天,中國(guó)“智水Ⅲ型”機(jī)器人和中國(guó)“月球車”的研制成功,它代表著人工智能控制技術(shù)在國(guó)內(nèi)的進(jìn)一步發(fā)展的結(jié)果,在今后智能控制技術(shù)領(lǐng)域仍然處于科技研究領(lǐng)域的熱點(diǎn)問題。2 硬件設(shè)計(jì) 總體設(shè)計(jì)方案胡須導(dǎo)航電機(jī)驅(qū)動(dòng)模塊單片機(jī)最小系統(tǒng)紅外導(dǎo)航驅(qū)動(dòng)電源模塊智能小車設(shè)計(jì)分為五個(gè)模塊:?jiǎn)纹瑱C(jī)最小系統(tǒng)、電機(jī)驅(qū)動(dòng)電源、伺服電機(jī)驅(qū)動(dòng)電路、胡須導(dǎo)航、紅外線導(dǎo)航。用LM78系列三端穩(wěn)壓IC來組成穩(wěn)壓電源所需的外圍元件極少,電路內(nèi)部還有過流、過熱及調(diào)整管的保護(hù)電路,使用起來可靠、方便,而且價(jià)格便宜。圖22 電源模塊接線圖其中CC2分別為輸入端和輸出端濾波電容。現(xiàn)在的伺服電機(jī)的種類很多,本設(shè)計(jì)中使用的是一種控制非常方便和簡(jiǎn)單的伺服電機(jī),它最初主要用于航空模型等方向舵的位置控制,因而又稱作伺服舵機(jī)。該脈沖序列發(fā)給經(jīng)過零點(diǎn)標(biāo)定后的伺服電機(jī),伺服電機(jī)不會(huì)旋轉(zhuǎn)