電動智能小車畢業(yè)論文_第1頁
電動智能小車畢業(yè)論文_第2頁
電動智能小車畢業(yè)論文_第3頁
電動智能小車畢業(yè)論文_第4頁
免費預(yù)覽已結(jié)束,剩余44頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、( 此文檔為 word 格式,下載后您可任意編輯修改!)摘 要STC89C51單片機是一款八位單片機,他的易用性和多功能性受到了廣大使用者的好評。這里介紹的是如何用STC89C51單片機來實現(xiàn)簡易智能電動車設(shè)計,該設(shè)計是結(jié)合科研項目而確定的設(shè)計類課題。本系統(tǒng)以設(shè)計題目的要求為目的,采用STC89C51單片機為控制核心,利用避障傳感器檢測道路上的障礙,控制電動小汽車的自動避障,快慢速行駛,以及自動停車,并可以自動記錄時間、里程和速度,自動尋跡和尋光功能。整個系統(tǒng)的電路結(jié)構(gòu)簡單,可靠性能高。實驗測試結(jié)果滿足要求,本文著重介紹了該系統(tǒng)的硬件設(shè)計方法及測試結(jié)果分析。采用的技術(shù)主要有:(1) 通過編程來

2、控制小車的速度;(2) 傳感器的有效應(yīng)用;(3) 新型顯示芯片的采用 .關(guān)鍵詞 STC89C51單片機、光電檢測器、 PWM調(diào)速、電動小車Design and createan intelligenceelectricitymotivesmall carAbstract89C51 is a 8 bit single chip computer. Its easily using and multi-functionsuffer large users. This article introduces the CCUT graduation design withthe 89C51 single

3、chipcomputer.This design combines withscientificresearchobject. This system regards the request of the topic, adopting 89C51 forcontrollingcore, super sonicsensor fortesttherun ina recordthe time,distanceand thespeed or searching lightand mark automatically the electriccircuit construction ofwholesy

4、stem is simple, the function is dependable.Experiment testresultsatisfythe request,thistext emphasizesintroducedthe of technique as:(1)Reduce the speed by program the engine;(2) Efficient application of the sensor;(3) The adoption of the new display chip.Keywords 89C51 singlechip computer,lightelect

5、ricitydetector,PWMspeedadjusting, Electricity motive small car目錄第一章前 言3第二章系統(tǒng)功能描述及設(shè)計思路4一 系統(tǒng)功能描述4二 設(shè)計思路5第三章硬件電路設(shè)計7一 STC89C51單片機硬件結(jié)構(gòu)7二 最小應(yīng)用系統(tǒng)設(shè)計8六 避障傳感器電路12第四章軟件設(shè)計17第五章小結(jié)33致謝33參 考 文 獻34附錄 A 程序清單34附錄 B 硬件原理圖47第一章前言隨著汽車工業(yè)的迅速發(fā)展,關(guān)于汽車的研究也就越來越受人關(guān)注。全國電子大賽和省內(nèi)電子大賽幾乎每次都有智能小車這方面的題目,全國各高校也都很重視該題目的研究。可見其研究意義很大。本設(shè)計就是

6、在這樣的背景下提出的,指導(dǎo)教師已經(jīng)有充分的準備。本題目是結(jié)合科研項目而確定的設(shè)計類課題。設(shè)計的智能電動小車應(yīng)該能夠?qū)崟r顯示時間,具有自動尋跡、尋光、避障功能,可程控行駛速度、準確定位停車。根據(jù)題目的要求,確定如下方案:在現(xiàn)有玩具電動車的基礎(chǔ)上,加裝光電、紅外線、避障傳感器等電路,實現(xiàn)對電動車的速度、位置、運行狀況的實時測量,并將測量數(shù)據(jù)傳送至單片機進行處理,然后由單片機根據(jù)所檢測的各種數(shù)據(jù)實現(xiàn)對電動車的智能控制。這種方案能實現(xiàn)對電動車的運動狀態(tài)進行實時控制,控制靈活、可靠,精度高,可滿足對系統(tǒng)的各項要求。本設(shè)計 采用 MCS-51 系列中的 STC89C51單片機。以STC89C51為控制核心

7、,利用超聲波傳感器檢測道路上的障礙,控制電動小汽車的自動避障,快慢速行駛,以及自動停車,并可以自動記錄時間,自動尋跡和尋光功能。STC89C51是一款八位單片機,它的易用性和多功能性受到了廣大使用者的好評。它是第四代單片機的代表。第四代單片機包括了Intel公司發(fā)展 MCS-51系列的新一代產(chǎn)品。新一代的單片機的最主要的技術(shù)特點是向外部接口電路擴展,以實現(xiàn)Microcomputer完善的控制功能為己任,將一些外部接口功能單元如 AD PWM PCA(可編程計數(shù)器陣列 ) WDT(監(jiān)視定時器 ) 高速 IO 口計數(shù)器的捕獲比較邏輯等。這一代單片機中,在總線方面最重要的進展是為單片機配置了芯片間的

8、串行總線,為單片機應(yīng)用系統(tǒng)設(shè)計提供了更加靈活的方式。 Philips 公司還為這一代單片機 STC89C51系列 8C592單片機引入了具有較強功能的設(shè)備間網(wǎng)絡(luò)系統(tǒng)總線 -CAN(Controller Area NetworkBUS).新一代單片機為外部提供了相當完善的總線結(jié)構(gòu),為系統(tǒng)的擴展與配置打下了良好的基礎(chǔ)。本設(shè)計就采用了比較先進的80C51為控制核心, 80C51采用 CHOMS工藝,功耗很低。該設(shè)計具有實際意義,可以應(yīng)用于考古、機器人、醫(yī)療器械等許多方面。尤其是在足球機器人研究方面具有很好的發(fā)展前景;在考古方面也應(yīng)用到了超聲波傳感器進行檢測。所以本設(shè)計與實際相結(jié)合,現(xiàn)實意義很強。第二

9、章系統(tǒng)功能描述及設(shè)計思路由于機械結(jié)構(gòu)的不同,智能車有兩種控制轉(zhuǎn)向的方式,一種是采用四輪雙電機結(jié)構(gòu),前面兩個輪子用于控制轉(zhuǎn)向,后面兩個控制速度;另一種是采用三輪雙電機結(jié)構(gòu),前面采用一個萬向輪,后面采用兩臺電動機分別控制兩個輪子,利用兩個輪子速度不同來實現(xiàn)轉(zhuǎn)向。這里設(shè)計的簡單智能小車采用的是第二種機械結(jié)構(gòu)。這種方案能實現(xiàn)對電動車的運動狀態(tài)進行實時控制,控制靈活、可靠,精度高,可滿足對系統(tǒng)的各項要求。一 系統(tǒng)功能描述如圖 1-1 所示,設(shè)計制作一個智能小車,該小車能按照要求自行運動,按照虛線路徑通過一個建筑物中曲折的道路,并完成規(guī)劃的動作。設(shè)矩形建筑物有兩個門A,B, 門寬 24cm,建筑物的墻壁是

10、10cm高, 2cm厚的矮墻,建筑物內(nèi)無引導(dǎo)軌跡。具體功能 如下:. 要求智能小車從 A 門進入并開始自動計時,從 B 門出來,在行進過程中,能自動選擇適當?shù)穆窂?,避開墻壁,找到通路,三分鐘之內(nèi)到達B 門;. 到達 B 門,停 5s,小車自動計時并數(shù)字顯示 AB 段所用的時間,并聲光報警;. 自 B 門外,循環(huán)形引導(dǎo)軌跡 BC前進(引導(dǎo)軌跡為 2cm寬);. 到達 C點后,小車停止前進并停止計時,顯示 BC段所用的時間;BC圖 1-1A二 設(shè)計思路在本次設(shè)計中,小車底盤選取的是三輪雙電機結(jié)構(gòu),通過后輪電動機轉(zhuǎn)速和轉(zhuǎn)向的不同實現(xiàn)對小車方向的控制。左右兩側(cè)電動機控制采用電動機驅(qū)動芯片L298 實現(xiàn)

11、驅(qū)動,轉(zhuǎn)速調(diào)節(jié)是通過單片機輸出的PWM脈沖寬度方式進行調(diào)節(jié)。為了保證小車在建筑物內(nèi)行進過程中不碰壁,因此選用一組光電開關(guān)實現(xiàn)障礙物的檢測,當傳感器檢測到障礙物時進行及時避讓和調(diào)整。另外,在小車離開建筑物時,可以通過安裝在小車底部的光電開關(guān)檢測黑色循跡線,使得小車沿線運行。第三章硬件電路設(shè)計一個單片機應(yīng)用系統(tǒng)的硬件電路設(shè)計包含有兩部分內(nèi)容:一是系統(tǒng)擴展, 即單片機內(nèi)部的功能單元,如ROMRAM IO 口定時記數(shù)器中斷系統(tǒng)等能量不能滿足應(yīng)用系統(tǒng)的要求時,必須在片外進行擴展,選擇適當?shù)男酒?,設(shè)計相應(yīng)的電路。二是系統(tǒng)配置,既按照系統(tǒng)功能要求配置外圍設(shè)備,如鍵盤顯示器打印機AD DA 轉(zhuǎn)換器等,要設(shè)計合

12、適的接口電路。一 STC89C51單片機硬件結(jié)構(gòu)STC89C51單片機是把那些作為控制應(yīng)用所必需的基本內(nèi)容都集成在一個尺寸有限的集成電路芯片上 2 。如果按功能劃分,它由如下功能部件組成,即微處理器、數(shù)據(jù)存儲器、程序存儲器、并行IO 口、串行口、定時器計數(shù)器、中斷系統(tǒng)及特殊功能寄存器。它們都是通過片內(nèi)單一總線連接而成,其基本結(jié)構(gòu)依舊是CPU加上外圍芯片的傳統(tǒng)結(jié)構(gòu)模式。但對各種功能部件的控制是采用特殊功能寄存器的集中控制方式。1 微處理器該單片機中有一個8 位的微處理器,與通用的微處理器基本相同,同樣包括了運算器和控制器兩大部分,只是增加了面向控制的處理功能,不僅可處理數(shù)據(jù),還可以進行位變量的處

13、理。2 數(shù)據(jù)存儲器片內(nèi)為 128 個字節(jié),片外最多可外擴至64k 字節(jié),用來存儲程序在運行期間的工作變量、運算的中間結(jié)果、數(shù)據(jù)暫存和緩沖、標志位等,所以稱為數(shù)據(jù)存儲器。3 程序存儲器由于受集成度限制,片內(nèi)只讀存儲器一般容量較小,如果片內(nèi)的只讀存儲器的容量不夠,則需用擴展片外的只讀存儲器,片外最多可外擴至64k 字節(jié)。4 中斷系統(tǒng)具有 5 個中斷源, 2 級中斷優(yōu)先權(quán)。5 定時器計數(shù)器片內(nèi)有 2 個 16 位的定時器計數(shù)器,具有四種工作方式。6 串行口1 個全雙工的串行口,具有四種工作方式??捎脕磉M行串行通訊,擴展并行IO口,甚至與多個單片機相連構(gòu)成多機系統(tǒng),從而使單片機的功能更強且應(yīng)用更廣。7

14、 P1 口、P2口、 P3口、 P4 口為4個并行 8位IO口。8 特殊功能寄存器共有 21 個,用于對片內(nèi)的個功能的部件進行管理、控制、監(jiān)視。實際上是一些控制寄存器和狀態(tài)寄存器,是一個具有特殊功能的RAM區(qū)。由上可見, 80C51 單片機的硬件結(jié)構(gòu)具有功能部件種類全,功能強等特點。特別值得一提的是該單片機CPU中的位處理器,它實際上是一個完整的1 位微計算機,這個一位微計算機有自己的CPU、位寄存器、 IO 口和指令集。 1 位機在開關(guān)決策、邏輯電路仿真、過程控制方面非常有效;而8 位機在數(shù)據(jù)采集,運算處理方面有明顯的長處。 MCS-51單片機中 8 位機和 1 位機的硬件資源復(fù)合在一起,二

15、者相輔相承,它是單片機技術(shù)上的一個突破,這也是MCS-51單片機在設(shè)計的精美之處。二 最小應(yīng)用系統(tǒng)設(shè)計STC89C51是片內(nèi)有 ROMEPROM的單片機,因此,這種芯片構(gòu)成的最小系統(tǒng)簡單可靠。用 80C51單片機構(gòu)成最小應(yīng)用系統(tǒng)時,只要將單片機接上時鐘電路和復(fù)位電路即可,如圖 3.1STC89C51 單片機最小系統(tǒng)所示。由于集成度的限制,最小應(yīng)用系統(tǒng)只能用作一些小型的控制單元。其應(yīng)用特點:(1) 有可供用戶使用的大量 IO 口線。(2) 內(nèi)部存儲器容量有限。(3) 應(yīng)用系統(tǒng)開發(fā)具有特殊性。圖 1-2 STC89C51 單片機最小系統(tǒng)1、時鐘電路STC89C51雖然有內(nèi)部振蕩電路,但要形成時鐘,

16、必須外部附加電路。STC89C51單片機的時鐘產(chǎn)生方法有兩種。內(nèi)部時鐘方式和外部時鐘方式。本設(shè)計采用內(nèi)部時鐘方式,利用芯片內(nèi)部的振蕩電路,在XTAL1、XTAL2引腳上外接定時元件,內(nèi)部的振蕩電路便產(chǎn)生自激振蕩。本設(shè)計采用最常用的內(nèi)部時鐘方NPO電式,即用外接晶體和電容組成的并聯(lián)諧振回路。振蕩晶體可在1.2MHZ到 12MHZ之間選擇。電容值無嚴格要求,但電容取值對振蕩頻率輸出的穩(wěn)定性、大小、振蕩電路起振速度有少許影響, CX1、CX2可在 20pF 到 100pF 之間取值,但在 60pF 到 70pF 時振蕩器有較高的頻率穩(wěn)定性。所以本設(shè)計中,振蕩晶體選擇 6MHZ,電容選擇 65pF。在

17、設(shè)計印刷電路板時,晶體和電容應(yīng)盡可能靠近單片機芯片安裝,以減少寄生電容,更好的保證振蕩器穩(wěn)定和可靠地工作。為了提高溫度穩(wěn)定性,應(yīng)采用容。2、復(fù)位電路STC89C51的復(fù)位是由外部的復(fù)位電路來實現(xiàn)的。復(fù)位引腳 RST通過一個斯密特觸發(fā)器用來抑制噪聲, 在每個機器周期的 S5P2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號。復(fù)位電路通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式。最簡單的上電自動復(fù)位電路中上電自動復(fù)位是通過外部復(fù)位電路的電容充電來實現(xiàn)的。只要 Vcc 的上升時間不超過1ms,就可以實現(xiàn)自動上電復(fù)位。 時鐘頻率用 6MHZ時 C取 22uF,R 取 1K

18、。除了上電復(fù)位外,有時還需要按鍵手動復(fù)位。本設(shè)計就是用的按鍵手動復(fù)位。按鍵手動復(fù)位有電平方式和脈沖方式兩種。其中電平復(fù)位是通過 RST 端經(jīng)電阻與電源 Vcc接通而實現(xiàn)的。按鍵手動復(fù)位電路見圖 3.2 。時鐘頻率選用 6MHZ時,C取 22uF,Rs取 200,RK取 1K。圖 1-3 STC89C51 復(fù)位電路如圖 1-4 所示,智能電動車的系統(tǒng)原理框圖主要包括主控器,電動機驅(qū)動控制電路,避障紅外傳感器電路,尋線紅外傳感器電路,顯示電路,時鐘電路,報警電路和電源電路等部分構(gòu)成。圖 1-4 智能電動車的系統(tǒng)原理框圖三 主控器本系統(tǒng)中主控器需要對雙電機進行控制,因此需要使用PWM脈沖信號輸出。A

19、T89S51是一種低功耗,高性能CMOS 8位微控制器,三個定時器計數(shù)器,具有 8KB在系統(tǒng)可編程 Flash 存儲器。主控器外圍電路如圖1-5 所示。圖 1-5 主控器外圍電路圖四 電動機驅(qū)動控制L298 是 SGS公司(意法半導(dǎo)體公司)的一款H 橋電動機驅(qū)動芯片。該芯片內(nèi)部有 4 通道邏輯驅(qū)動電路,具有兩套 H 橋電路,可以方便地驅(qū)動兩個直流電動機。電動機驅(qū)動控制電路如圖 1-6 所示。圖 1-6 電動機驅(qū)動控制電路圖五 尋跡傳感器電路尋跡傳感器電路采用TCRC5000L型紅外對管進行設(shè)計。該型號的傳感器內(nèi)部由一個高發(fā)射功率紅外光電二極管和高靈敏度光電晶體管組成,具有體積小,結(jié)構(gòu)緊猝,靈敏

20、度高,工作性能穩(wěn)定等特點,能夠滿足本次設(shè)計的要求。傳感器的工作原理如下:紅外發(fā)射管發(fā)出紅外線,若紅外光照射到白色的平面將存在反射光線,傳感器會輸出一個低電平信號:反之,若紅外光照射到黑色的平面將無反射光線,傳感器側(cè)輸出一個高電平信號。尋跡傳感器電路如圖1-7 所示,通過一個電壓比較器可以獲取每個傳感器的檢測狀態(tài)。如果傳感器末檢測到黑線,比較器LM324會輸出一個低電平 ; 如果檢測到黑線, LM324則輸出一個高電平。為了節(jié)省單片機的IO 接口,這里通過74LS165 將 8個傳感器輸出信號轉(zhuǎn)為串行信號送入單片機中。圖 1-7尋跡傳感器電路六 避障傳感器電路避障傳感器電路采用紅外光電開關(guān)E3F

21、-DS10C4進行避障。該型號的傳感器具有操作簡單 , 使用方便等特點。傳感器內(nèi)部將集發(fā)射器和接收器于一體,當有被檢測物體經(jīng)過時,物體將光電開關(guān)發(fā)射器發(fā)射的足夠量的光線反射到接收器,于是光電開關(guān)就產(chǎn)生了開關(guān)信號。當有光線反射回來時,傳感器輸出低電平信號;當沒有光線反射回來時,輸出高電平信號。避障傳感器電路如圖1-8 所以,同樣為了節(jié)省單片機的IO 接口,這里也通過74LS165將 6 個傳感器輸出信號轉(zhuǎn)為串行信號送入單片機中。圖 1-8 尋跡傳感器電路七 顯示電路本系統(tǒng)需要顯示的內(nèi)容較少,主要是計時時間的顯示,因此選用一個LCD1602即可實現(xiàn)該項功能。 LCD1602液晶也稱 1602 字符

22、型液晶, 是一種專門用來顯示字母,數(shù)字,符號等的點陣型液晶模塊,可以顯示兩行,每行16 個字符液晶模塊(顯示字符和數(shù)字)。該顯示模塊具有微功耗,體積小,顯示內(nèi)容豐富,超薄輕巧等特點,常用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中。本系統(tǒng)顯示電路如圖1-9 所示。圖 1-9 顯示電路八 PWM輸出控制電路PWM信號的產(chǎn)生電路如圖1-10所示。 8254所需的基準頻率是由有源晶振Y2 產(chǎn)生的。晶振Y2 的震蕩頻率為1MHz,因此產(chǎn)生周期為1us的時鐘信號。圖 1-10 PWM輸出控制電路九 聲光提示電路聲光提示電路如圖1-11 所示,發(fā)光二極管的驅(qū)動采用灌電流的方式,當單片機驅(qū)動引腳 LED為低電平時,發(fā)光二

23、極管點亮。蜂鳴器使用一個PNP三極管進行驅(qū)動,當單片機 BEEP引腳輸出低電平時,蜂鳴器發(fā)出聲音進行提示。圖 1-11 聲光提示電路十 電源電路智能小車的驅(qū)動電機需要9V 直流電,采用充電電池供電。因此,需要通過一個電源變換電源實現(xiàn)DC9V到 DC5V的轉(zhuǎn)換。這里選用一個開關(guān)電源芯片LM2576進行設(shè)計,該芯片是美國國家半導(dǎo)體公司生產(chǎn)的3A集成穩(wěn)壓電路,它內(nèi)部集成了一個固定的振蕩器,只需極少外圍器件便可構(gòu)成一種高效的穩(wěn)壓電路,可大大減小散熱片的體積,而在大多數(shù)情況下不需散熱片,內(nèi)部有完整的保護電路,包括電流限制及熱關(guān)斷電路等。電源電路如圖1-12 所示。圖 1-12電源電路第四章軟件設(shè)計一 軟

24、件流程簡易智能電動車的主程序流程如圖 1-13 所以。系統(tǒng)上電后,首先完成對定時器T0, T1 和液晶的初始化,然后啟動智能車前進,進入避障和循跡程序的檢測。圖 1-13主程序流程圖避障程序流程如圖 1-14 所示,在該程序中,系統(tǒng)實時讀取避障傳感器的狀態(tài),更加各傳感器的輸入信號來判斷智能車的行進位置及狀態(tài),并根據(jù)位置和狀態(tài)信息及時調(diào)整車的走向。圖 1-14 避障程序流程圖在單片機控制系統(tǒng)中,大體上可分為數(shù)據(jù)處理、過程控制兩個基本類型。數(shù)據(jù)處理包括:數(shù)據(jù)的采集、數(shù)字濾波、標度變換等。過程控制程序主要是使單片機按一定的方法進行計算,然后再輸出,以便控制生產(chǎn)。為了完成上述任務(wù),在進行軟件設(shè)計時,通

25、常把整個過程分成若干個部分,每一部分叫做一個模塊。所謂“模塊” ,實質(zhì)上就是所完成一定功能,相對獨立的程序段,。二代碼分析智能車控制軟件分為主程序,避障傳感器檢測程序,循跡傳感器檢測程序,電動機控制程序,顯示程序,定時器T0,T1 有關(guān)子程序,延時程序等,各部分程序功能如下:主程序通過調(diào)用各個子程序,實現(xiàn)系統(tǒng)功能。避障傳感器檢測程序用于檢測智能車在迷宮中的行進狀態(tài),并及時調(diào)整小車的位置避免與迷宮內(nèi)的墻壁發(fā)生碰撞。循跡傳感器檢測程序用于檢測智能車在迷宮外的進行狀態(tài), 通過這些傳感器可以實現(xiàn)車沿著黑線進行,防止跑偏。電動機控制子程序是實現(xiàn)對智能車實現(xiàn)前進,制動,左轉(zhuǎn),右轉(zhuǎn)等控制。顯示程序主要是顯示

26、智能車的行進狀態(tài),并對行進過程進行計時。定時器 T0 有關(guān)子程序包括完成對 T0 的初始化設(shè)置,以及在 T0 的中斷服務(wù)程序中對定時器 T0 和 8254 的初值設(shè)置等功能。定時器 T1 有關(guān)子程序包括完成對 T1 的初始化設(shè)置,以及在 T1 的中斷服務(wù)程序中對定時器實現(xiàn)計時時間的計算。延時函數(shù)用于在智能車行進過程中行走狀態(tài)的保持。系統(tǒng)具體的程序代碼如下。1. 函數(shù)聲明及變量定義為方便程序的編寫,這里把部分常用的變量進行定義。由于本實列中顯示器件選用的是 LCD1602,該器件在前面的章節(jié)中已經(jīng)進行了詳細的介紹, 這里就不在重述了。修改 LCD1602.C文件中引腳定義,然后直接引用該頭文件。

27、#include <reg52._word XBYTE0x7fff8254 控制字*引腳聲明 *避障傳感器輸出sbit sen1dat = P31;74165 數(shù)據(jù)引腳sbit sen1clk = P30;74165 時鐘引腳sbit sen1ld = P34;74165 鎖存引腳循跡傳感器輸出sbit sen2dat = P32;74165 數(shù)據(jù)引腳sbit sen2clk = P33;74165 時鐘引腳sbit sen2ld = P35;74165 鎖存引腳左側(cè)電機sbit IN1 = P12;sbit IN2 = P13;sbit PWM0 = P16;右側(cè)電機sbit IN3

28、= P14;sbit IN4 = P15;sbit PWM1 = P17;聲光提示sbit beep = P17;聲音提示sbit led = P16;發(fā)光提示*變量定義 *bitOutFlag=0;bit:"uchar code Tab2 = "Time:"uchar code Tab3 = "A->B"uchar code Tab4 = "B->C"*函數(shù)聲明 *ucharSen1In(void);避障傳感器信號ucharSen2In(void);循跡傳感器信號voidinitPWM(void);初始化 PW

29、M占空比void Delay1ms(uint i);void Leftself(void);void Rightself(void);void Left(void);void Right(void);void Forward(void);void Brake(void);void Track(void);void Avoidance(void);void init_T0(void);void init_T1(void);延時程序原地左轉(zhuǎn)原地右轉(zhuǎn)左轉(zhuǎn)右轉(zhuǎn)前進停車循跡程序避障程序初始化 T0初始化 T1void initdisp(void);2. 主程序進入系統(tǒng)主程序后,首先對定時器 T0,T1進

30、行初始化設(shè)置,然后初始化 LCD1602并顯示初始信息,啟動智能車前進,在循環(huán)程序中將調(diào)用傳感器檢測程序調(diào)整小車運行狀態(tài)。void main(void)init_T0();init_T1();Inlt_LCD1602();initdisp();Forward();Delay1ms(5000);while (1)Avoidance();Delay1ms(200);3. 智能車運動控制智能車運動控制程序主要實現(xiàn)控制小車原地右轉(zhuǎn),左轉(zhuǎn),右轉(zhuǎn),前進,停止等動作。該部分程序由以下程序構(gòu)成,如表 1-15 所示。表 1-15 智能車運動控制程序及功能表序號函數(shù)名功能序號函數(shù)名功能1Leftself()原地

31、左轉(zhuǎn)程序4Right ()右轉(zhuǎn)程序2Rightself()原地右轉(zhuǎn)程序5Forward ()前進程序3Left ()左轉(zhuǎn)程序6Brake()停止程序下面對這幾個程序加以詳細介紹。( 1) Leftself():原地左轉(zhuǎn)程序通過調(diào)用Leftself()程序控制智能車實現(xiàn)原地左轉(zhuǎn),該過程中智能車的左右兩側(cè)電動機會實現(xiàn)同轉(zhuǎn)速反向運動。void Leftself(void)IN1 = 1;IN2 = 0;IN3 = 0;IN4 = 1;( 2) Rightself ():原地右轉(zhuǎn)程序通過調(diào)用 Rightself()程序控制智能車實現(xiàn)原地右轉(zhuǎn),本過程中智能車的左右兩側(cè)電動機也會實現(xiàn)同轉(zhuǎn)速反向運動。voi

32、d Rightself(void)IN1 = 0;IN2 = 1;IN3 = 1;IN4 = 0;( 3) Left ():左轉(zhuǎn)程序通過調(diào)用 Left ()程序控制智能車實現(xiàn)左轉(zhuǎn),本過程中智能車的右側(cè)電動機轉(zhuǎn)動,而左側(cè)電動機停轉(zhuǎn)。void Left(void)IN1 = 0;IN2 = 0;IN3 = 1;IN4 = 0;( 4) Right ():右轉(zhuǎn)程序通過調(diào)用 Right ()程序控制智能車實現(xiàn)右轉(zhuǎn), 本過程中智能車的左側(cè)電動機轉(zhuǎn)動,而右側(cè)電動機停轉(zhuǎn)。void Left(void)IN1 = 0;IN2 = 0;IN3 = 1;IN4 = 0;( 5) Forward ():前進程序通過

33、調(diào)用 Forward ()程序控制智能車前進,兩側(cè)電動機以同速度運行。void Forward(void)IN1 = 1;IN2 = 0;IN3 = 1;IN4 = 0;( 5) Brake ():停止程序通過調(diào)用 Brake()程序控制智能車停止,兩側(cè)電動機停止運行。void Brake(void)IN1 = 1;IN2 = 1;IN3 = 1;IN4 = 1;4. 傳感器檢測子程序智能車傳感器檢測程序主要實現(xiàn)避障傳感器的檢測,循跡傳感器的檢測,避障調(diào)整程序,循跡調(diào)整程序等動作。該部分程序由以下程序構(gòu)成,如表1-16 所示表 1-16 傳感器檢測子程序及功能序號函數(shù)名功能序號函數(shù)名功能1Se

34、n1In(): 避障傳感器檢測程序3Track ():循跡調(diào)整程序2Sen2In(): 循跡傳感器檢測程序4Avoidance():避障調(diào)整程序下面對這幾個程序加以詳細介紹。( 1) Sen1In():避障傳感器檢測程序通過 74LS165將 6 個避障傳感器的狀態(tài)轉(zhuǎn)為串行輸出信號送入51 單片機,再由單片機程序屏蔽沒用到的前兩位,返回檢測狀態(tài)值。uchar Sen1In(void)uchar i,temp;載入數(shù)據(jù)sen1ld=0;_nop_();_nop_();sen1ld=1;移出數(shù)據(jù)for(i=0;i<8;i+)temp<<=1;sen1clk=0;if(sen1da

35、t)temp=temp|0x01;sen1clk=1;sen2clk=0;temp=temp&0x3f;return(temp);( 2) Sen2In():循跡傳感器檢測程序通過 74LS165將 8 個避障傳感器的狀態(tài)轉(zhuǎn)為串行輸出信號送入51 單片機,該函數(shù)返回檢測狀態(tài)值。uchar Sen2In(void)uchar i,temp;載入數(shù)據(jù)sen2ld=0;_nop_();_nop_();sen2ld=1;移出數(shù)據(jù)for(i=0;i<8;i+)temp<<=1;sen2clk=0;if(sen2dat)temp=temp|0x01;sen2clk=1;sen2c

36、lk=0;return(temp);( 3) Track ():循跡調(diào)整程序讀取循跡傳感器狀態(tài),然后根據(jù)該狀態(tài)判斷車體相對于黑線循跡線的位置,判斷并調(diào)整智能車,使得車體中線沿著軌跡線前進。void Track(void)xped=Sen2In();switch (xped)case 0x80:Leftself();for(;0x18!=Sen2In(););Forward();break;case 0xc0:Right();for(;xped=Sen2In(););Forward();break;case 0x60:Right();for(;xped=Sen2In(););Forward();

37、break;case 0x40:Right();for(;xped=Sen2In(););Forward();break;case 0x30:Right();for(;xped=Sen2In(););Forward();break;case 0x20:Right();for(;xped=Sen2In(););Forward();break;case 0x18:Forward();break;case 0x0c:Left();for(;xped=Sen2In(););Forward();break;case 0x08:Left();for(;xped=Sen2In(););Forward();b

38、reak;case 0x06:Left();for(;xped=Sen2In(););Forward();break;case 0x04:Left();for(;xped=Sen2In(););Forward();break;case 0x02:Left();for(;xped=Sen2In(););Forward();break;case 0x03:Left();for(;xped=Sen2In(););Forward();break;case 0x01:Rightself();for(;0x18!=Sen2In(););Forward();break;case 0x00:Delay1ms(

39、100);if(Sen2In()=0xff)Brake();break;( 3) Avoidance ():循跡調(diào)整程序讀取避障傳感器狀態(tài),然后根據(jù)該狀態(tài)判斷車體在迷宮內(nèi)的位置,判斷并調(diào)整智能車,使得車體在迷宮內(nèi)前進。void Avoidance(void)();();Forward(); 左側(cè)有障礙else if();Forward();右邊有障礙else if();();Forward();如果右側(cè)無障礙if();();Forward();如果左右都無障礙if();()!=0xff)OutFlag=1;MeaTime=0;LcdStartPos(0x40);Print(Tab4);if(O

40、utFlag)Brake();beep=0;led=0;Delay1ms(2000);beep=1;led=1;Forward();Left();while (1)Track();Delay1ms(2000);Forward();4. 定時器有關(guān)子程序本系統(tǒng)用到了定時器T0 和 T1, 其中定時器T0 用于產(chǎn)生 PWM脈沖調(diào)制函數(shù),定時器T1 用于定時基準信號的產(chǎn)生,這部分是由以下幾個程序構(gòu)成,如表1-17 所示。表 1-17定時器相關(guān)子程序及功能序號函數(shù)名功能序號函數(shù)名功能1init_T0 ():定時器 T0 初始化程序3timer0 ()定時器 TO中斷服務(wù)程序2init_T1 ():定時

41、器 T1 初始化程序4Timer1 ()定時器 T1 中斷服務(wù)程序下面對這幾個程序進行詳細介紹。(1)init_T0():定時器 T0 初始化程序init_T0()用于實現(xiàn)對定時器T0 初始化設(shè)置,其中定時器工作為方式1,定時時間為 50ms。void init_T0(void)TMOD=0x01;工作方式 1TH0=0x3c;定時 50msTL0=0xb0;ET0=1;允許定時器 T0 中斷EA=1;開總中斷TR0=1;啟動定時器 T0(2)init_T1():定時器 T1 初始化程序init_T1()用于實現(xiàn)對定時器T1 初始化設(shè)置,其中定時器工作為方式1,定時時間為 50ms。void

42、init_T1(void)TMOD = TMOD|0x10;TH1 = 0x3C;TL1 = 0x0B0;ET1 = 1;TR1 = 1;(3) timer0 ():定時器 T0 中斷服務(wù)程序timer0()用于定時向8254 芯片寫入計數(shù)初值,以實現(xiàn)8254 芯片能夠輸出PWM控制信號對電動機速度進行控制。void timer0(void) interrupt 1TR0=0;TH0=0x3c;重載定時器 T0 初值TL0=0xb0;TR0=1;Con_word=0x30;寫 8254計數(shù)器 0 初值Count0=(uchar)(time1%256);Count0=(uchar)(time12

43、56);Con_word=0x70;寫 8254計數(shù)器 1 初值Count0=(uchar)(time2%256);Count0=(uchar)(time2256);( 4) timer1 ():定時器 T1 中斷服務(wù)程序timer1()用于 50ms基準時鐘信號的產(chǎn)生,每1s 更新一次計時數(shù)值并顯示。void timer1(void) interrupt 3TH1 = 0x3C;TL1 = 0x0B0;if(+MeaMs=20)MeaTime+;disbuffer0=DispTABMeaTime10;disbuffer1=DispTABMeaTime%10;LcdStartPos(0x49);Print(disbuffer);5. 其他有關(guān)子程序除了以上幾個子程序塊以外,本系統(tǒng)還包括顯示內(nèi)容初始化和延時函數(shù)等,這部分是由以下幾個程序構(gòu)成。. initdisp ():顯示初始化函數(shù);. Delay1ms():延時程序。下面就對這兩個程序進行詳細介紹。(1)initdisp():顯示初始化函數(shù)Delay1ms ()用于顯示上電時顯示內(nèi)容的初始化。void initdisp(void

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論