電動(dòng)智能小車畢業(yè)論文_第1頁(yè)
電動(dòng)智能小車畢業(yè)論文_第2頁(yè)
電動(dòng)智能小車畢業(yè)論文_第3頁(yè)
電動(dòng)智能小車畢業(yè)論文_第4頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

2、控制小車的速度;(2) 傳感器的有效應(yīng)用;(3) 新型顯示芯片的采用 .關(guān)鍵詞 STC89C51單片機(jī)、光電檢測(cè)器、 PWM調(diào)速、電動(dòng)小車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è)計(jì)思路4一 系統(tǒng)功能描述4二 設(shè)計(jì)思路5第三章硬件電路設(shè)計(jì)7一 STC89C51單片機(jī)硬件結(jié)構(gòu)7二 最小應(yīng)用系統(tǒng)設(shè)計(jì)8六 避障傳感器電路12第四章軟件設(shè)計(jì)17第五章小結(jié)33致謝33參 考 文 獻(xiàn)34附錄 A 程序清單34附錄 B 硬件原理圖47第一章前言隨著汽車工業(yè)的迅速發(fā)展,關(guān)于汽車的研究也就越來(lái)越受人關(guān)注。全國(guó)電子大賽和省內(nèi)電子大賽幾乎每次都有智能小車這方面的題目,全國(guó)各高校也都很重視該題目的研究??梢娖溲芯恳饬x很大。本設(shè)計(jì)就是

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

27、#include <reg52._word XBYTE0x7fff8254 控制字*引腳聲明 *避障傳感器輸出sbit sen1dat = P31;74165 數(shù)據(jù)引腳sbit sen1clk = P30;74165 時(shí)鐘引腳sbit sen1ld = P34;74165 鎖存引腳循跡傳感器輸出sbit sen2dat = P32;74165 數(shù)據(jù)引腳sbit sen2clk = P33;74165 時(shí)鐘引腳sbit sen2ld = P35;74165 鎖存引腳左側(cè)電機(jī)sbit IN1 = P12;sbit IN2 = P13;sbit PWM0 = P16;右側(cè)電機(jī)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);避障傳感器信號(hào)ucharSen2In(void);循跡傳感器信號(hào)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);延時(shí)程序原地左轉(zhuǎn)原地右轉(zhuǎn)左轉(zhuǎn)右轉(zhuǎn)前進(jìn)停車循跡程序避障程序初始化 T0初始化 T1void initdisp(void);2. 主程序進(jìn)入系統(tǒng)主程序后,首先對(duì)定時(shí)器 T0,T1進(jìn)

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

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

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

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

34、n1In(): 避障傳感器檢測(cè)程序3Track ():循跡調(diào)整程序2Sen2In(): 循跡傳感器檢測(cè)程序4Avoidance():避障調(diào)整程序下面對(duì)這幾個(gè)程序加以詳細(xì)介紹。( 1) Sen1In():避障傳感器檢測(cè)程序通過(guò) 74LS165將 6 個(gè)避障傳感器的狀態(tài)轉(zhuǎn)為串行輸出信號(hào)送入51 單片機(jī),再由單片機(jī)程序屏蔽沒用到的前兩位,返回檢測(cè)狀態(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():循跡傳感器檢測(cè)程序通過(guò) 74LS165將 8 個(gè)避障傳感器的狀態(tài)轉(zhuǎn)為串行輸出信號(hào)送入51 單片機(jī),該函數(shù)返回檢測(cè)狀態(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)判斷車體相對(duì)于黑線循跡線的位置,判斷并調(diào)整智能車,使得車體中線沿著軌跡線前進(jìn)。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)前進(jìn)。void Avoidance(void)();();Forward(); 左側(cè)有障礙else if();Forward();右邊有障礙else if();();Forward();如果右側(cè)無(wú)障礙if();();Forward();如果左右都無(wú)障礙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. 定時(shí)器有關(guān)子程序本系統(tǒng)用到了定時(shí)器T0 和 T1, 其中定時(shí)器T0 用于產(chǎn)生 PWM脈沖調(diào)制函數(shù),定時(shí)器T1 用于定時(shí)基準(zhǔn)信號(hào)的產(chǎn)生,這部分是由以下幾個(gè)程序構(gòu)成,如表1-17 所示。表 1-17定時(shí)器相關(guān)子程序及功能序號(hào)函數(shù)名功能序號(hào)函數(shù)名功能1init_T0 ():定時(shí)器 T0 初始化程序3timer0 ()定時(shí)器 TO中斷服務(wù)程序2init_T1 ():定時(shí)

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

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

43、56);Con_word=0x70;寫 8254計(jì)數(shù)器 1 初值Count0=(uchar)(time2%256);Count0=(uchar)(time2256);( 4) timer1 ():定時(shí)器 T1 中斷服務(wù)程序timer1()用于 50ms基準(zhǔn)時(shí)鐘信號(hào)的產(chǎn)生,每1s 更新一次計(jì)時(shí)數(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)子程序除了以上幾個(gè)子程序塊以外,本系統(tǒng)還包括顯示內(nèi)容初始化和延時(shí)函數(shù)等,這部分是由以下幾個(gè)程序構(gòu)成。. initdisp ():顯示初始化函數(shù);. Delay1ms():延時(shí)程序。下面就對(duì)這兩個(gè)程序進(jìn)行詳細(xì)介紹。(1)initdisp():顯示初始化函數(shù)Delay1ms ()用于顯示上電時(shí)顯示內(nèi)容的初始化。void initdisp(void

溫馨提示

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

評(píng)論

0/150

提交評(píng)論