2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p><b>  緒論1</b></p><p><b>  1系統(tǒng)方案選擇2</b></p><p><b>  1.1任務(wù)要求2</b></p><p>  1.1.1 設(shè)計(jì)任務(wù)2</

2、p><p>  1.1.2 設(shè)計(jì)要求2</p><p>  1.2總體設(shè)計(jì)方案2</p><p>  1.3方案選擇與分析3</p><p>  1.3.1控制器分析與比較3</p><p>  1.3.2電動(dòng)車車體的選擇3</p><p>  1.3.3電機(jī)的選擇與分析4</p

3、><p>  1.3.4電機(jī)驅(qū)動(dòng)電路方案選擇4</p><p>  1.3.5軌跡探測(cè)模塊設(shè)計(jì)與比較4</p><p>  1.3.6火源檢測(cè)設(shè)計(jì)與比較5</p><p>  1.3.7電源模塊5</p><p>  1.3.8避障模塊設(shè)計(jì)與分析5</p><p>  1.3.9滅火模塊

4、6</p><p><b>  1.4最終方案6</b></p><p>  2硬件實(shí)現(xiàn)及單元電路設(shè)計(jì)6</p><p>  2.1 STC89C52單片機(jī)系統(tǒng)概述及其引腳功能介紹6</p><p>  2.1.1 STC89C52單片機(jī)系統(tǒng)概述6</p><p>  2.1.2 單片機(jī)引

5、腳功能7</p><p>  2.2光電對(duì)管電路的設(shè)計(jì)9</p><p>  2.3火焰?zhèn)鞲衅骷皯?yīng)用10</p><p>  2.4電機(jī)驅(qū)動(dòng)電路的設(shè)計(jì)11</p><p>  2.5滅火模塊設(shè)計(jì)13</p><p>  2.6避障功能的實(shí)現(xiàn)方法13</p><p>  3軟件系統(tǒng)設(shè)計(jì)

6、13</p><p>  3.1編譯語言及編譯環(huán)境13</p><p>  3.1.1匯編語言的概述13</p><p>  3.1.2 C語言概述13</p><p>  3.1.3 編譯語言及編譯環(huán)境綜述14</p><p>  3.2程序解析14</p><p>  3.2.1

7、各函數(shù)功能14</p><p>  3.2.2程序流程圖18</p><p><b>  4測(cè)試結(jié)果19</b></p><p><b>  結(jié)束語20</b></p><p><b>  致謝21</b></p><p><b> 

8、 參考文獻(xiàn)22</b></p><p>  附錄A:程序清單23</p><p><b>  緒論</b></p><p>  現(xiàn)在,隨著科技的快速發(fā)展,國內(nèi)外對(duì)小型智能系統(tǒng)的應(yīng)用越來越廣泛,種類也越來越多。本題目就是結(jié)合有關(guān)科研項(xiàng)目而確定的設(shè)計(jì)類課題,所設(shè)計(jì)的智能尋跡滅火小車應(yīng)能夠?qū)崿F(xiàn)自動(dòng)發(fā)現(xiàn)火源、自動(dòng)尋跡、自動(dòng)前進(jìn)接近火源并

9、完成滅火任務(wù)的功能。</p><p>  根據(jù)題目的要求,智能尋跡滅火小車控制系統(tǒng)采用一片STC89C52單片機(jī)作為本控制系統(tǒng)的主控芯片,硬件包括以下幾個(gè)模塊:驅(qū)動(dòng)電機(jī)模塊、尋跡傳感器模塊、單片機(jī)控制模塊、火源傳感器模塊、風(fēng)扇模塊、電源模塊。本設(shè)計(jì)采用了STC89C52單片機(jī)為智能小車核心控制部分,通過查詢方式實(shí)現(xiàn)對(duì)小車的智能控制。小車由主控制板、傳感系統(tǒng)、風(fēng)扇系統(tǒng)和車身四部分組成。主控制系統(tǒng)由主控CPU電路、傳

10、感器接口電路、直流電機(jī)驅(qū)動(dòng)電路等組成;傳感系統(tǒng)采用紅外傳感器檢測(cè)黑白線,火源傳感器檢測(cè)火源;行進(jìn)直流電機(jī)驅(qū)動(dòng)采用PWM調(diào)制技術(shù),可靈活方便地對(duì)車速、行進(jìn)方向進(jìn)行控制。</p><p>  本設(shè)計(jì)通過采用STC89C52單片機(jī)為控制核心,實(shí)現(xiàn)對(duì)小車的智能控制。該控制系統(tǒng)不僅在智能小車中有很強(qiáng)的實(shí)用價(jià)值,在汽車應(yīng)用、智能機(jī)器人等方面都有很強(qiáng)的實(shí)用價(jià)值,尤其是在機(jī)器人研究方面具有很好的發(fā)展前景。所以本設(shè)計(jì)與實(shí)際相聯(lián)系,

11、具有重要的現(xiàn)實(shí)意義。</p><p><b>  1系統(tǒng)方案選擇</b></p><p><b>  1.1任務(wù)要求</b></p><p>  1.1.1 設(shè)計(jì)任務(wù)</p><p>  設(shè)計(jì)制作一個(gè)智能滅火小車模型,能到指定區(qū)域進(jìn)行搶險(xiǎn)滅火工作。以蠟燭模擬火源,隨機(jī)分布在場(chǎng)地中,模擬滅火場(chǎng)地如圖1

12、-1所示。</p><p>  圖1-1模擬火場(chǎng)示意圖</p><p>  1.1.2 設(shè)計(jì)要求</p><p>  (1)智能滅火小車手動(dòng)啟動(dòng)后,自動(dòng)尋找到火源的位置。</p><p>  (2)智能滅火小車必須按照固定的路線行進(jìn)(黑白線)。</p><p>  (3)撲滅火源后自動(dòng)檢測(cè)周圍環(huán)境是否還有其他火源。&

13、lt;/p><p>  (4)若有則繼續(xù)滅火,若無則停止工作。</p><p><b>  1.2總體設(shè)計(jì)方案</b></p><p>  總體方案為:整個(gè)電路分為驅(qū)動(dòng)電機(jī)模塊、尋跡傳感器模塊、避障模塊、單片機(jī)控制模塊、火源傳感器模塊、風(fēng)扇模塊、電源模塊七個(gè)模塊。</p><p>  首先利用紅外對(duì)路面信號(hào)進(jìn)行探測(cè),利用火源

14、傳感器檢測(cè)火源信號(hào),兩種信號(hào)經(jīng)過處理之后,送給單片機(jī)控制模塊進(jìn)行實(shí)時(shí)運(yùn)算,輸出相應(yīng)的信號(hào)給驅(qū)動(dòng)電機(jī)模塊驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng),從而控制整個(gè)小車的運(yùn)動(dòng)。系統(tǒng)方案框圖如圖1-2所示。</p><p>  圖1-2 方案設(shè)計(jì)框圖</p><p>  1.3方案選擇與分析</p><p>  1.3.1控制器分析與比較</p><p>  方案一:采用凌陽公司

15、的16位單片機(jī),它是16位控制器,具有體積小、驅(qū)動(dòng)能力高、集成度高、易擴(kuò)展、可靠性高、功耗低、結(jié)構(gòu)簡單、中斷處理能力強(qiáng)等特點(diǎn)。處理速度高,尤其適用于語音處理和識(shí)別等領(lǐng)域。但是當(dāng)凌陽單片機(jī)應(yīng)用語音處理和辨識(shí)時(shí),由于其占用的CPU資源較多而使得凌陽單片機(jī)同時(shí)處理其它任務(wù)的速度和能力降低。</p><p>  方案二:采用STC89C52單片機(jī)作為主控制器。STC89C52是一個(gè)低功耗,高性能的51內(nèi)核的CMOS 8位

16、單片機(jī),片內(nèi)含8k空間的可反復(fù)擦寫1000次以上的Flash只讀存儲(chǔ)器,具有256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)IO口,2個(gè)16位可編程定時(shí)計(jì)數(shù)器。且該系列的51單片機(jī)可以不用燒寫器而直接用串口或并口就可以向單片機(jī)中下載程序。</p><p>  從方便使用和綜合性能的角度考慮,選擇了方案二。</p><p>  1.3.2電動(dòng)車車體的選擇</p><

17、;p>  方案一:購買玩具電動(dòng)車。購買的玩具電動(dòng)車具有組裝完整的車架車輪、電機(jī)及其驅(qū)動(dòng)電路。但是一般的說來,玩具電動(dòng)車具有如下缺點(diǎn):首先,這種玩具電動(dòng)車由于裝配緊湊,使得各種所需傳感器的安裝十分不方便。其次,這種電動(dòng)車一般都是前輪轉(zhuǎn)向后輪驅(qū)動(dòng),不能適應(yīng)該題目的方格地圖,不能方便迅速的實(shí)現(xiàn)原地保持坐標(biāo)轉(zhuǎn)90度甚至180度的彎角。而且這種電動(dòng)車一般都價(jià)格不扉。因此放棄了此方案。</p><p>  方案二:自己

18、制作電動(dòng)車。經(jīng)過反復(fù)考慮論證,我們制定了左右兩輪分別驅(qū)動(dòng),后方萬向輪轉(zhuǎn)向的方案。即左右輪分別用兩個(gè)直流電機(jī)進(jìn)行驅(qū)動(dòng),后面裝一個(gè)萬向輪。這樣,當(dāng)兩個(gè)電機(jī)轉(zhuǎn)向相反同時(shí)轉(zhuǎn)速相同時(shí)就可以實(shí)現(xiàn)電動(dòng)車的原地旋轉(zhuǎn),由此可以輕松的實(shí)現(xiàn)小車坐標(biāo)不變的90度和180度的轉(zhuǎn)彎。</p><p>  對(duì)于車架材料的選擇,經(jīng)過比較選擇了硬塑板。用硬塑板做的車架比塑料車架更加牢固,比鐵制小車更輕便,美觀。故選擇了方案二。</p>

19、<p>  1.3.3電機(jī)的選擇與分析</p><p>  方案一:采用直流電機(jī)</p><p>  直流電機(jī)速度快,價(jià)格便宜,通過調(diào)節(jié)電流來改變速度,驅(qū)動(dòng)電路簡單,調(diào)速范圍廣,調(diào)速特性平滑。</p><p>  方案二:采用步進(jìn)電機(jī)</p><p>  步進(jìn)電機(jī)是一種能將電脈沖轉(zhuǎn)化為角位移的機(jī)構(gòu),通過控制脈沖個(gè)數(shù)來控制角位移量

20、,通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,其精確度高,但控制相對(duì)較繁瑣。</p><p>  由于本系統(tǒng)對(duì)電機(jī)速度控制要求不高,采用方案一。</p><p>  1.3.4電機(jī)驅(qū)動(dòng)電路方案選擇</p><p>  方案一:采用專用芯片L298N作為電機(jī)驅(qū)動(dòng)芯片。L298N是一個(gè)具有高電壓大電流的全橋驅(qū)動(dòng)芯片,它相應(yīng)頻率高,L298N芯片可以驅(qū)動(dòng)兩個(gè)二相電機(jī),也

21、可以驅(qū)動(dòng)一個(gè)四相電機(jī),輸出電壓最高可達(dá)50V,可以直接通過電源來調(diào)節(jié)輸出電壓;可以直接用單片機(jī)的IO口提供信號(hào);電路簡單,使用比較方便。</p><p>  方案二:對(duì)于直流電機(jī)用分立元件構(gòu)成驅(qū)動(dòng)電路。由分立元件構(gòu)成電機(jī)驅(qū)動(dòng)電路,結(jié)構(gòu)簡單,價(jià)格低廉,在實(shí)際應(yīng)用中應(yīng)用廣泛。但是這種電路工作性能不夠穩(wěn)定。</p><p>  通過比較,使用L298N芯片充分發(fā)揮了它的功能,能穩(wěn)定地驅(qū)動(dòng)步進(jìn)電機(jī)

22、,且價(jià)格不高,采用方案一。</p><p>  1.3.5軌跡探測(cè)模塊設(shè)計(jì)與比較</p><p>  方案一:用光敏電阻組成光敏探測(cè)器。光敏電阻的阻值可以跟隨周圍環(huán)境光線的變化而變化。當(dāng)光線照射到白線上面時(shí),光線發(fā)射強(qiáng)烈,光線照射到黑線上面時(shí),光線發(fā)射較弱。因此光敏電阻在白線和黑線上方時(shí),阻值會(huì)發(fā)生明顯的變化。將阻值的變化值經(jīng)過比較器就可以輸出高低電平。但是這種方案受光照影響很大,不能夠穩(wěn)

23、定的工作。因此要考慮其他更加穩(wěn)定的方案。</p><p>  方案二:用紅外發(fā)射管和接收管自己制作光電對(duì)管尋跡傳感器。紅外發(fā)射管發(fā)出紅外線,當(dāng)發(fā)出的紅外線照射到白色的平面后反射,若紅外接收管能接收到反射回的光線則檢測(cè)出白線繼而輸出低電平,若接收不到發(fā)射管發(fā)出的光線則檢測(cè)出黑線繼而輸出高電平。這樣自己制作組裝的尋跡傳感器基本能夠滿足要求,但是工作不夠穩(wěn)定,且容易受外界光線的影響,所以也放棄了這個(gè)方案。</p&

24、gt;<p>  方案三:用RPR220型光電對(duì)管。RPR220是一種一體化反射型光電探測(cè)器,其發(fā)射器是一個(gè)砷化鎵紅外發(fā)光二極管,而接收器是一個(gè)高靈敏度,硅平面光電三極管。RPR220采用DIP4封裝,塑料透鏡可以提高靈敏度,內(nèi)置可見光過濾器能減小離散光的影響,體積小,結(jié)構(gòu)緊湊。當(dāng)發(fā)光二極管發(fā)出的光反射回來時(shí),三極管導(dǎo)通輸出低電平。此光電對(duì)管調(diào)理電路簡單,工作性能穩(wěn)定。</p><p>  因此本設(shè)

25、計(jì)采用了方案三。</p><p>  1.3.6火源檢測(cè)設(shè)計(jì)與比較</p><p>  火焰檢測(cè)有溫度傳感器、煙霧傳感器、紅外傳感器、紫外傳感器以及CCD圖像傳感器。綜合論證了這幾種傳感器,制定了如下幾種方案。</p><p>  方案一:用溫度傳感器如熱電偶,熱電偶在工業(yè)應(yīng)用上十分廣泛。但是熱電偶感應(yīng)的范圍太廣,而且由于火焰只是周圍溫度稍高且范圍較窄。實(shí)驗(yàn)驗(yàn)證用熱

26、電偶檢測(cè)火焰精度不高,故放棄了此方案。</p><p>  方案二:用煙霧傳感器。煙霧傳感器廣泛應(yīng)用與火警檢測(cè)。但是由于此題目的火源是用蠟燭模擬的,沒有太大的煙霧,因此用煙霧傳感器作為此小型電動(dòng)車的火焰?zhèn)鞲衅饕膊粔驅(qū)嵱茫虼朔艞壛舜朔桨浮?lt;/p><p>  方案三:用紫外傳感器檢測(cè)火焰。紫外火焰?zhèn)鞲衅髦饕獞?yīng)用于火災(zāi)消防系統(tǒng),尤其是一些易燃易爆場(chǎng)所,用來監(jiān)測(cè)火焰的產(chǎn)生。紫外線火焰?zhèn)鞲衅鞯撵`

27、敏度高,相應(yīng)速度快,抗干擾能力強(qiáng),對(duì)明火特別敏感,能對(duì)火災(zāi)立即作出反應(yīng)。但是紫外傳感器檢測(cè)的范圍太大,不適用于本系統(tǒng)。</p><p>  方案四:用CCD圖像傳感器。用CCD圖像傳感器可以檢測(cè)各種被檢測(cè)量,適用于各種量的檢測(cè)。但是用CCD圖像傳感器需要處理的信號(hào)量太大,且體積較大,不使用與本系統(tǒng)。</p><p>  方案五:用遠(yuǎn)紅外傳感器。經(jīng)試驗(yàn)驗(yàn)證,遠(yuǎn)紅外火焰?zhèn)鞲衅鳈z測(cè)距離遠(yuǎn),線性度

28、好,檢測(cè)準(zhǔn)確,且體積較小。很適用于本題目的要求。</p><p>  因此本設(shè)計(jì)采用了方案五。</p><p><b>  1.3.7電源模塊</b></p><p>  由于本系統(tǒng)需要電池供電,我們考慮了如下集中方案為系統(tǒng)供電。</p><p>  方案一:采用12V蓄電池為系統(tǒng)供電。蓄電池具有較強(qiáng)的電流驅(qū)動(dòng)能力以及穩(wěn)

29、定的電壓輸出性能。</p><p>  方案二:采用6節(jié)1.5V鋰電池分別3節(jié)串聯(lián),分別供單片機(jī)和電機(jī)驅(qū)動(dòng)使用,單片機(jī)和傳感器工作穩(wěn)定,電機(jī)工作互不影響,且電池體積較小,能夠滿足系統(tǒng)要求。</p><p>  綜上考慮,采用了方案二。</p><p>  1.3.8避障模塊設(shè)計(jì)與分析</p><p>  方案一:用超聲波傳感器進(jìn)行避障。超聲波

30、傳感器的原理是:超聲波由壓電陶瓷超聲波傳感器發(fā)出后,遇到障礙物便反射回來,再被超聲波傳感器接收。然后將這信號(hào)放大后送入單片機(jī)。超聲波傳感器在避障的設(shè)計(jì)中被廣泛應(yīng)用。但是超聲波傳感器需要40KHz的方波信號(hào)來工作,因?yàn)槌暡▊鞲衅鲗?duì)工作頻率要求較高,偏差在1%內(nèi),所以用模擬電路來做方波發(fā)生器比較難以實(shí)現(xiàn)。而用單片機(jī)來作方波發(fā)生器未免有些浪費(fèi)資源。因此考慮其他的方案。</p><p>  方案二:用紅外光電開關(guān)進(jìn)行避

31、障。光電開關(guān)的工作原理是根據(jù)投光器發(fā)出的光束,被物體阻斷或部分反射,受光器最終據(jù)此作出判斷反應(yīng),是利用被檢測(cè)物體對(duì)紅外光束的遮光或反射,由同步回路選通而檢測(cè)物體的有無,其物體不限于金屬,對(duì)所有能反射光線的物體均能檢測(cè)。光電開關(guān)E3F-DS10C4操作簡單,使用方便。當(dāng)有光線反射回來時(shí),輸出低電平。當(dāng)沒有光線反射回來時(shí),輸出高電平。</p><p>  考慮到本系統(tǒng)只需要檢測(cè)簡單障礙物,沒有十分復(fù)雜的環(huán)境。為了使用

32、方便,便于操作和調(diào)試,最終選擇了方案二。</p><p><b>  1.3.9滅火模塊</b></p><p>  方案一:用風(fēng)扇將蠟燭吹滅,檢測(cè)并確定火源在課吹滅的范圍內(nèi)后由單片機(jī)控制風(fēng)扇開啟,吹滅蠟燭。經(jīng)實(shí)驗(yàn)確定當(dāng)采用5V電源給風(fēng)扇電機(jī)供電時(shí),火源在20cm以內(nèi)都可被吹滅。能達(dá)到要求,并且簡單方便各方面的實(shí)現(xiàn)都比較簡單,工作也比較穩(wěn)定,調(diào)試快捷。適合應(yīng)用。<

33、;/p><p>  方案二:用水管噴滅,由于整個(gè)系統(tǒng)是電子系統(tǒng),如用水則有可能發(fā)生斷路或出現(xiàn)危險(xiǎn),并且小車還要承載水的重量,對(duì)小車電機(jī)驅(qū)動(dòng)要求比較高,故排除這種方案,選擇方案一。</p><p><b>  1.4最終方案</b></p><p>  經(jīng)過反復(fù)論證,最終確定了如下方案:</p><p> ?。?)手工制作車體

34、。</p><p> ?。?)采用STC89C52單片機(jī)作為主控制器。</p><p>  (3)用直流電機(jī)實(shí)現(xiàn)小車行駛與滅火。</p><p> ?。?)用6節(jié)鋰電池分別給單片機(jī)和電機(jī)供電。</p><p>  (5)用RPR220型光電對(duì)管進(jìn)行尋跡。</p><p>  (6)遠(yuǎn)紅外火焰?zhèn)鞲衅髯鳛楸鞠到y(tǒng)的火焰?zhèn)鞲衅?/p>

35、。</p><p> ?。?)L298N作為直流電機(jī)的驅(qū)動(dòng)芯片。</p><p>  (7)用紅外光電開關(guān)進(jìn)行避障。</p><p>  2硬件實(shí)現(xiàn)及單元電路設(shè)計(jì)</p><p>  2.1 STC89C52單片機(jī)系統(tǒng)概述及其引腳功能介紹</p><p>  2.1.1 STC89C52單片機(jī)系統(tǒng)概述</p>

36、;<p>  STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,三個(gè)16 位 定時(shí)器/計(jì)數(shù)器

37、,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口。另外 STC89X52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻率35MHz,6T/12T可選。</p><p><b>  參數(shù):</b></p

38、><p>  (1)增強(qiáng)型8051 單片機(jī),6 時(shí)鐘/機(jī)器周期和12 時(shí)鐘/機(jī)器周期可以任意 選擇,指令代碼完全兼容傳統(tǒng)8051.[1]</p><p>  (2)工作電壓:5.5V~3.3V(5V 單片機(jī))/3.8V~2.0V(3V 單片機(jī))</p><p>  (3)工作頻率范圍:0~40MHz,相當(dāng)于普通8051 的0~80MHz,實(shí)際工作 頻率可達(dá)48MHz&l

39、t;/p><p>  (4)用戶應(yīng)用程序空間為8K 字節(jié)</p><p>  (5)片上集成512 字節(jié)RAM</p><p>  (6)通用I/O 口(32 個(gè)),復(fù)位后為:P0/P1/P2/P3 是準(zhǔn)雙向口/弱上拉, P0 口是漏極開路輸出,作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為 I/O 口用時(shí),需加上拉電阻。</p><p>  (7)IS

40、P(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無 需專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程 序,數(shù)秒即可完成一片</p><p>  (8)具有EEPROM 功能</p><p>  (9)具有看門狗功能</p><p>  (10)共3 個(gè)16 位定時(shí)器/計(jì)數(shù)器。即定時(shí)器T0、T1、T2</p>&l

41、t;p>  (11)外部中斷4 路,下降沿中斷或低電平觸發(fā)電路,Power Down 模式可 由外部中斷低電平觸發(fā)中斷方式喚醒</p><p>  (12)通用異步串行口(UART),還可用定時(shí)器軟件實(shí)現(xiàn)多個(gè)UART</p><p>  (13)工作溫度范圍:-40~+85℃(工業(yè)級(jí))/0~75℃(商業(yè)級(jí))</p><p>  (14) PDIP 封裝<

42、/p><p>  2.1.2 單片機(jī)引腳功能</p><p>  STC89C52是一個(gè)有40個(gè)引腳的芯片,引腳配置如圖2-1所示:</p><p>  圖2-1 STC89C52引腳配置</p><p>  STC89C52單片機(jī)各個(gè)引腳功能如表2-2所示。</p><p>  表2-2 STC89C51RC/RD+引腳

43、示意圖</p><p>  2.2光電對(duì)管電路的設(shè)計(jì)</p><p>  實(shí)驗(yàn)中設(shè)計(jì)并論證了兩種光電對(duì)管檢測(cè)及調(diào)理電路,電路原理圖分別如圖2-3和圖2-4所示。</p><p>  圖 2-3 采用三極管檢測(cè)電路原理圖</p><p>  圖2-3所示電路中,R1起限流電阻的作用,當(dāng)有光反射回來時(shí),光電對(duì)管中的三極管導(dǎo)通,R2的上端變?yōu)楦唠娖?/p>

44、,此時(shí)VT1飽和導(dǎo)通,三極管集電極輸出低電平。</p><p>  當(dāng)沒有光反射回來時(shí),光電對(duì)管中的三極管不導(dǎo)通,VT1截至,其集電極輸出高電平。</p><p>  VT1在該電路中起到濾波整形的作用。</p><p>  經(jīng)實(shí)驗(yàn)和示波器驗(yàn)證,該電路工作性能一般,輸出還有雜散干擾波的成分。如果輸出加施密特觸發(fā)器就可以實(shí)現(xiàn)良好的輸出波形。</p>&l

45、t;p>  但是這種電路用電量比較大,給此種傳感器調(diào)理電路供電的電池壓降較快。究其原因,是因?yàn)楣饷羧龢O管和三極管VT1導(dǎo)通時(shí)的導(dǎo)通電流較大。</p><p>  因此考慮用比較器的方案。</p><p>  圖2-4 采用電壓比較器檢測(cè)電路原理圖</p><p>  在圖2-4中,可調(diào)電阻R3可以調(diào)節(jié)比較器的門限電壓,經(jīng)示波器觀察,輸出波形相當(dāng)規(guī)則,可以直接夠

46、單片機(jī)查詢使用。</p><p>  而且經(jīng)實(shí)驗(yàn)驗(yàn)證給此電路供電的電池的壓降較小。因此我們選擇此電路作為我們的傳感器檢測(cè)與調(diào)理電路。</p><p>  在尋跡傳感器的設(shè)計(jì)中,我們?cè)谲圀w底盤的前端裝有四個(gè)傳感器,用來起到尋跡的作用。</p><p>  安裝在前端的四個(gè)傳感器直接將信號(hào)送給單片機(jī),當(dāng)中間兩個(gè)傳感器中一個(gè)傳回低電平,則為踩線,既調(diào)整車頭方向,當(dāng)四個(gè)傳感

47、器均為高點(diǎn)平時(shí)認(rèn)定為一個(gè)交點(diǎn),并且2個(gè)交點(diǎn)間距離約為25cm。</p><p>  因?yàn)榈貓D為方格,所當(dāng)小車轉(zhuǎn)向時(shí)會(huì)出現(xiàn)四個(gè)傳感器中不定時(shí)離開黑線,為保證能準(zhǔn)確轉(zhuǎn)彎。再因RPR220檢測(cè)到黑線返回高電平,否則為低電平,利用這一原理。當(dāng)小車右轉(zhuǎn)時(shí),位于小車最右端傳感器會(huì)由黑線轉(zhuǎn)到白色區(qū)域,這時(shí)會(huì)產(chǎn)生一個(gè)下降沿,將下降沿接至單片機(jī)外部中斷用于判斷是否已經(jīng)完成轉(zhuǎn)向,左轉(zhuǎn)原理同上。經(jīng)實(shí)驗(yàn)證實(shí)此方法能使小車穩(wěn)定轉(zhuǎn)向。<

48、;/p><p>  2.3火焰?zhèn)鞲衅骷皯?yīng)用</p><p>  火焰?zhèn)鞲衅鞯暮脡膶?duì)于該系統(tǒng)的功能能否實(shí)現(xiàn)十分重要,火焰?zhèn)鞲衅骷捌湔{(diào)理電路如圖2-3-1所示。</p><p>  圖2-5 火焰?zhèn)鞲衅髟韴D</p><p>  圖2-5中,可調(diào)電阻RV1可以調(diào)節(jié)比較器的門限電壓,本電路還能輸出模擬和數(shù)字兩種信號(hào),非常適合本次系統(tǒng)的條件。</p

49、><p>  火焰?zhèn)鞲衅髂軌蛱綔y(cè)到波長在700納米~1000納米范圍內(nèi)的紅外光,探測(cè)角度為60,其中紅外光波長在880納米附近時(shí)候的靈敏度達(dá)到最大。遠(yuǎn)紅外火焰探頭將外界紅外光的強(qiáng)弱變化轉(zhuǎn)化為電流的變化,通過A/D轉(zhuǎn)換器反映為0~255范圍內(nèi)數(shù)值的變化。外界紅外光越強(qiáng),數(shù)值越??;反之則越大。</p><p>  利用四個(gè)火焰?zhèn)鞲衅?,調(diào)節(jié)其中兩個(gè)傳感器門限電壓,使得傳感器能檢測(cè)到整張地圖距離的火焰

50、,再調(diào)節(jié)另兩個(gè)傳感器使得只能檢測(cè)一個(gè)方格距離的火焰。這四個(gè)傳感器分別兩兩置于小車兩側(cè)距離地面約10cm(相當(dāng)于火焰的高度),一遠(yuǎn)一近配合使用。</p><p>  我們將能檢測(cè)整張地圖的傳感器稱為“遠(yuǎn)視”,只能檢測(cè)一格的稱為“近視”。當(dāng)遠(yuǎn)視傳感器檢測(cè)到火焰信號(hào),執(zhí)行滅火程序,小車向檢測(cè)到火源的方向前行。當(dāng)“近視”傳感器檢測(cè)到信號(hào),說明火焰處于當(dāng)前所在方格,觸發(fā)轉(zhuǎn)向開啟風(fēng)扇。</p><p>

51、;  2.4電機(jī)驅(qū)動(dòng)電路的設(shè)計(jì)</p><p>  直流電機(jī)里邊固定有環(huán)狀永磁體,電流通過轉(zhuǎn)子上的線圈產(chǎn)生安培力,當(dāng)轉(zhuǎn)子上的線圈與磁場(chǎng)平行時(shí),再繼續(xù)轉(zhuǎn)受到的磁場(chǎng)方向?qū)⒏淖?,因此此時(shí)轉(zhuǎn)子末端的電刷跟轉(zhuǎn)換片交替接觸,從而線圈上的電流方向也改變,產(chǎn)生的洛倫茲力方向不變,所以電機(jī)能保持一個(gè)方向轉(zhuǎn)動(dòng)。</p><p>  采用電機(jī)驅(qū)動(dòng)芯片L298N作為電機(jī)驅(qū)動(dòng),管腳圖如圖2-6所示,原理圖如圖2-7

52、所示。</p><p>  L298N是SGS公司的產(chǎn)品,內(nèi)部包含4通道邏輯驅(qū)動(dòng)電路。是一種二相和四相電機(jī)的專用驅(qū)動(dòng)器,即內(nèi)含二個(gè)H橋的高電壓大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn)TTL邏輯電平信號(hào),可驅(qū)動(dòng)46V、2A以下的電機(jī)。</p><p>  圖2-6 L298N管腳</p><p>  圖2-7 電機(jī)驅(qū)動(dòng)原理圖</p><p>  L298

53、有兩路電源分別為邏輯電源和動(dòng)力電源,上圖中6V為邏輯電源,12V為動(dòng)力電源。J4接入邏輯電源,J6接入動(dòng)力電源,J1與J2分別為單片機(jī)控制兩個(gè)電機(jī)的輸入端,J3與J5分別與兩個(gè)電極的正負(fù)極相連。</p><p>  ENA與ENB直接接入6V邏輯電源也就是說兩個(gè)電機(jī)時(shí)刻都工作在使能狀態(tài),控制電機(jī)的運(yùn)行狀態(tài)只有通過J1與J2兩個(gè)接口。</p><p>  由于我們使用的電機(jī)是線圈式的,在從運(yùn)

54、行狀態(tài)突然轉(zhuǎn)換到停止?fàn)顟B(tài)和從順時(shí)針狀態(tài)突然轉(zhuǎn)換到逆時(shí)針狀態(tài)時(shí)會(huì)形成很大的反向電流,在電路中加入二極管的作用就是在產(chǎn)生反向電流的時(shí)候進(jìn)行泄流,保護(hù)芯片的安全。</p><p><b>  2.5滅火模塊設(shè)計(jì)</b></p><p>  如圖2-8所示,滅火風(fēng)扇的驅(qū)動(dòng)由5v電源供電。利用三級(jí)管的開關(guān)應(yīng)用,實(shí)現(xiàn)單片機(jī)控制風(fēng)扇轉(zhuǎn)停。當(dāng)單片機(jī)給低電平時(shí),風(fēng)扇開始轉(zhuǎn)動(dòng)吹滅火焰,否

55、則不轉(zhuǎn)。</p><p>  圖2-8 滅火風(fēng)扇原理圖</p><p>  2.6避障功能的實(shí)現(xiàn)方法</p><p>  由于火源為不確定位置,所以小車還屬于前進(jìn)并還未檢測(cè)到火焰而遇到障礙物,首先讓小車先后退,在遇到黑線交點(diǎn)時(shí)先右轉(zhuǎn),因?yàn)榈貓D是有限的,所以如果轉(zhuǎn)的方向不是正確的火焰方向,則當(dāng)小車行駛到地圖邊緣時(shí)就180度轉(zhuǎn),就能正確的判斷出火源的具體位置。</

56、p><p><b>  3軟件系統(tǒng)設(shè)計(jì)</b></p><p>  3.1編譯語言及編譯環(huán)境</p><p>  3.1.1匯編語言的概述</p><p>  為了克服機(jī)器語言的缺點(diǎn),用英文字條來代替機(jī)器語言,這些英文字符被稱為助記符,用助記符表示的指令稱為符號(hào)語言或匯編語言。</p><p>  匯

57、編語言是面向機(jī)器的語言,程序設(shè)計(jì)人員必須對(duì)單片機(jī)的硬件有相當(dāng)深入的了解。助記符指令和機(jī)器指令一一對(duì)應(yīng),所以用匯編語言編寫的程序效率高,占用的存儲(chǔ)空間小,運(yùn)行速度快,因此用匯編語言能編寫出最優(yōu)化的程序。匯編語言程序能直接管理和控制硬件設(shè)備(功能部件),它能處理中斷,也能直接訪問存儲(chǔ)器及I/O接口電路。但是,匯編語言和機(jī)器語言一樣,都脫離不開具體機(jī)器的硬件,因此,這兩種語言均是面向機(jī)器的語言,缺乏通用性。</p><p&

58、gt;  3.1.2 C語言概述</p><p>  C語言是國際上廣泛流行的計(jì)算機(jī)高級(jí)語言,既可用來寫系統(tǒng)軟件,也可用來寫應(yīng)用軟件。C語言功能豐富,表達(dá)能力強(qiáng),使用靈活方便,應(yīng)用面廣,目標(biāo)程序效率高,可移植性好,既具有高級(jí)語言的優(yōu)點(diǎn),又具有低級(jí)語言的許多特點(diǎn)。因此,C語言特別適合于編寫系統(tǒng)軟件。它的特點(diǎn)如下:</p><p>  (1)語言簡潔、緊湊,使用方便、靈活。</p>

59、<p>  (2)運(yùn)算符豐富,數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語言的各種數(shù)據(jù)結(jié)構(gòu)。</p><p>  (4)具有結(jié)構(gòu)化的控制語句用函數(shù)作為程序的模塊單位,便于實(shí)現(xiàn)程序的模塊化。</p><p>  (5)語法限制不大嚴(yán)格,程序設(shè)計(jì)自由度大。</p><p>  (6)C語言允許直接訪問物理地址。</p><p>  (7)生成目標(biāo)代碼

60、質(zhì)量高,程序執(zhí)行效率高,用C語言寫的程序可移植性好。</p><p>  3.1.3 編譯語言及編譯環(huán)境綜述</p><p>  兼于以上兩種編譯語言的優(yōu)缺點(diǎn),我選擇了Keil軟件。Keil軟件是目前最流行開發(fā)MCS-51系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案

61、,通過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。如果使用C語言編程,那么Keil幾乎就是不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令事情變得事半功倍。</p><p><b>  3.2程序解析</b></p><p>  3.2.1各函數(shù)功能</p><p><b>

62、  電機(jī)的正反轉(zhuǎn):</b></p><p>  void DC_LEFT(void)</p><p><b>  {</b></p><p>  DC1_1 = 1;</p><p>  DC1_2 = 0;</p><p><b>  }</b><

63、/p><p>  void DC_RIGHT(void) </p><p><b>  {</b></p><p>  DC2_1 = 1;</p><p>  DC2_2 = 0;</p><p><b>  }</b></p><p>  voi

64、d DC_CLOSE_LEFT(void)</p><p><b>  {</b></p><p>  DC1_1 = DC1_2 = 0;</p><p><b>  }</b></p><p>  void DC_CLOSE_RIGHT(void)</p><p>&l

65、t;b>  {</b></p><p>  DC2_1 = DC2_2 = 0;</p><p><b>  }</b></p><p>  void DC_LEFT_BACK(void)</p><p><b>  {</b></p><p>  D

66、C1_1 = 0;</p><p>  DC1_2 = 1;</p><p><b>  }</b></p><p>  void DC_RIGHT_BACK(void) </p><p><b>  {</b></p><p>  DC2_1 = 0;</p&g

67、t;<p>  DC2_2 = 1;</p><p><b>  }</b></p><p>  其中DC1為左輪,DC2為右輪。此函數(shù)分別控制兩個(gè)電機(jī)正反轉(zhuǎn),通過左右兩輪正反轉(zhuǎn)的配合能實(shí)現(xiàn)各個(gè)方向的轉(zhuǎn)彎。</p><p><b>  尋跡功能:</b></p><p>  if(!N

68、EAR_LEFT_F && !STOP && !NEAR_RIGHT_F)</p><p><b>  {</b></p><p>  if(!Back_Flag && !BACK)</p><p><b>  {</b></p><p>  if(l

69、eft !=0 && right != 0)</p><p><b>  {</b></p><p>  DC_LEFT();</p><p>  DC_RIGHT();</p><p><b>  }</b></p><p>  if(left == 0 &

70、amp;& right != 0)</p><p><b>  {</b></p><p>  DC_LEFT();</p><p>  DC_CLOSE_RIGHT();</p><p><b>  }</b></p><p>  if(right ==0 &

71、;& left != 0)</p><p><b>  {</b></p><p>  DC_RIGHT();</p><p>  DC_CLOSE_LEFT();</p><p><b>  }</b></p><p><b>  }</b>&

72、lt;/p><p>  else if(!NEAR_LEFT_F && !NEAR_RIGHT_F)</p><p><b>  BACK = 1;</b></p><p>  根據(jù)尋跡模塊傳回的信號(hào),判斷小車是否超出黑線,左右都沒有超出,則執(zhí)行前進(jìn)函數(shù);當(dāng)左輪超出,執(zhí)行右轉(zhuǎn)函數(shù);當(dāng)右輪超出,執(zhí)行左轉(zhuǎn)函數(shù);當(dāng)小車回到黑線上,繼續(xù)前進(jìn)

73、。通過不斷的查詢實(shí)現(xiàn)尋跡功能。</p><p><b>  火焰位置判斷:</b></p><p>  if(first && last)</p><p><b>  {</b></p><p>  if(!IR_RIGHT)</p><p>  CORNER

74、_RIGHT = 1;</p><p><b>  else </b></p><p>  CORNER_RIGHT = 0;</p><p>  if(!IR_LEFT)</p><p>  CORNER_LEFT = 1;</p><p><b>  else</b>&l

75、t;/p><p>  CORNER_LEFT = 0;</p><p>  if(!IR_RIGHT || !IR_LEFT)</p><p><b>  BACK = 0;</b></p><p><b>  }</b></p><p>  if(CORNER_RIGHT)&l

76、t;/p><p><b>  {</b></p><p>  DC_CLOSE_RIGHT();</p><p>  DC_LEFT();</p><p><b>  if(BACK)</b></p><p>  PASS = last;</p><p>

77、<b>  else</b></p><p>  PASS = left;</p><p><b>  }</b></p><p>  if(CORNER_LEFT)</p><p><b>  {</b></p><p>  DC_RIGHT();&l

78、t;/p><p>  DC_CLOSE_LEFT();</p><p><b>  if(BACK)</b></p><p>  PASS = first;</p><p><b>  else</b></p><p>  PASS = right;</p><

79、;p><b>  }</b></p><p>  void EX1_ISR (void) interrupt 0</p><p><b>  {</b></p><p>  CORNER_RIGHT = 0;</p><p>  CORNER_LEFT = 0;</p><

80、p>  if(!IR_RIGHT || !IR_LEFT)</p><p><b>  {</b></p><p>  if(first && last)</p><p><b>  BACK = 0;</b></p><p><b>  }</b><

81、;/p><p><b>  }</b></p><p>  根據(jù)小車兩側(cè)火焰?zhèn)鞲衅餍盘?hào)判斷火焰位置,當(dāng)火焰出現(xiàn)在小車右側(cè),將右轉(zhuǎn)變量置1,當(dāng)火焰出現(xiàn)在小車左側(cè),將左轉(zhuǎn)變量置1;再通過判斷兩個(gè)變量的值來實(shí)現(xiàn)不同的轉(zhuǎn)向。因?yàn)檫@里為90度轉(zhuǎn)彎,所以配合尋跡模塊的黑線傳回高電平,超出黑線低電平特點(diǎn),當(dāng)小車轉(zhuǎn)過90度后,尋跡模塊邊緣兩側(cè)的傳感器必將由黑線到白色區(qū)域。利用這個(gè)下降沿觸

82、發(fā)外部中斷,在中斷中將轉(zhuǎn)向信號(hào)清零,使其能繼續(xù)前進(jìn)。其中PASS為外部中斷端口。</p><p><b>  滅火功能:</b></p><p>  if(!NEAR_LEFT)</p><p>  NEAR_LEFT_F = 1;</p><p>  if(NEAR_LEFT_F)</p><p&g

83、t;<b>  {</b></p><p>  DC_LEFT_BACK();</p><p>  DC_RIGHT();</p><p><b>  }</b></p><p>  if(!NEAR_RIGHT)</p><p>  NEAR_RIGHT_F = 1;<

84、;/p><p>  if(NEAR_RIGHT_F)</p><p><b>  {</b></p><p>  DC_RIGHT_BACK();</p><p>  DC_LEFT();</p><p><b>  }</b></p><p><b

85、>  if(!IR_S)</b></p><p><b>  {</b></p><p>  NEAR_RIGHT_F = 0;</p><p>  NEAR_LEFT_F = 0;</p><p>  STOP = 1; </p><p><b>  DC_S =

86、1;</b></p><p>  DC_CLOSE_RIGHT();</p><p>  DC_CLOSE_LEFT();</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  DC_S = 0

87、;</b></p><p>  當(dāng)小車兩側(cè)的近火焰?zhèn)鞲衅鱾骰氐碗娖?,則說明火焰處于小車當(dāng)前所在的方格內(nèi)。當(dāng)火焰在小車左側(cè),則讓小車左輪反轉(zhuǎn)右輪正轉(zhuǎn),實(shí)現(xiàn)小車原地左方向打轉(zhuǎn);右側(cè)則讓左輪正轉(zhuǎn)右輪反轉(zhuǎn),讓小車右方向打轉(zhuǎn)。再當(dāng)置于小車前端的火焰?zhèn)鞲衅鱾骰氐碗娖剑f明小車車頭正對(duì)著火焰,開啟風(fēng)扇,當(dāng)火焰吹滅后,風(fēng)扇停止轉(zhuǎn)動(dòng)。</p><p><b>  完整程序見附錄A。&l

88、t;/b></p><p>  3.2.2程序流程圖</p><p><b>  圖3-1程序流程圖</b></p><p><b>  4測(cè)試結(jié)果</b></p><p><b>  1.測(cè)試儀器</b></p><p>  模擬跑道、計(jì)算機(jī)、開

89、關(guān)電源、示波器、數(shù)字萬用表等。</p><p><b>  2.測(cè)試方法</b></p><p>  完全按照要求模擬實(shí)驗(yàn)環(huán)境,用地板革(150cmX150cm)制作模擬場(chǎng)地,在地板革上用黑膠帶做成網(wǎng)格,黑膠帶寬1.5cm,跑道長度寬度均為150cm,反復(fù)使小車在模擬環(huán)境中進(jìn)行實(shí)驗(yàn),并記錄各項(xiàng)數(shù)據(jù)。</p><p>  3.測(cè)試數(shù)據(jù)及測(cè)試結(jié)果分

90、析</p><p>  測(cè)試顯示,當(dāng)蠟燭位置不是位于方格中間時(shí),小車不能穩(wěn)定的實(shí)現(xiàn)轉(zhuǎn)向。</p><p>  問題分析:由于轉(zhuǎn)向的觸發(fā)必須是在小車在黑線交點(diǎn)的同時(shí)檢測(cè)到火焰,由于傳感器位置不合理,使當(dāng)小車到黑色交點(diǎn)的時(shí)候不能準(zhǔn)確的檢測(cè)到火焰,而不能穩(wěn)定的發(fā)出轉(zhuǎn)向信號(hào)。</p><p>  問題解決:調(diào)整火焰?zhèn)鞲衅鞯奈恢谩?lt;/p><p>&l

91、t;b>  結(jié)束語</b></p><p>  小車的特點(diǎn)能實(shí)現(xiàn)自動(dòng)尋路找到火源,但由于火焰?zhèn)鞲衅鞯臋z測(cè)角度為60度,并不能在安全區(qū)檢測(cè)到整張地圖,所以對(duì)于火源的位置有一定的局限。解決這一問題可以使用多個(gè)遠(yuǎn)紅外火焰?zhèn)鞲衅髋帕谐梢欢ń嵌?,?shí)現(xiàn)對(duì)全地圖的檢測(cè)。</p><p>  滅火全程均為自動(dòng),不需要人員干擾、遙控。</p><p>  出現(xiàn)的一些

92、問題,由于尋跡模塊安裝位置不是很合理,所以偶爾會(huì)出現(xiàn)在黑線交點(diǎn)處越出軌道的現(xiàn)象,后經(jīng)過對(duì)模塊的調(diào)整和程序上配合這一現(xiàn)象有所好轉(zhuǎn)。這一問題給了我一個(gè)深刻的教訓(xùn),在設(shè)計(jì)系統(tǒng)前就應(yīng)考慮到可能會(huì)出現(xiàn)的問題,而不能只一味的追求美觀。</p><p>  通過這幾天的設(shè)計(jì),我們不但增強(qiáng)了實(shí)踐能力和協(xié)作精神,而且懂得了聯(lián)系實(shí)際的重要性,這對(duì)我們以后的學(xué)習(xí)和工作不無裨益。當(dāng)然,我們的設(shè)計(jì)還存在著一些缺陷,有待于在將來的設(shè)計(jì)中進(jìn)一

93、步提高,在此懇請(qǐng)各位老師批評(píng)指正。</p><p><b>  致謝</b></p><p>  在此,我首先要衷心地感謝我的指導(dǎo)老師,在這次設(shè)計(jì)中遇到的每個(gè)問題都是老師給予解答,詳細(xì)設(shè)計(jì)等整個(gè)過程中都給予了我悉心的指導(dǎo),給我提出了許多極具價(jià)值的建議。在生活上兩位老師同樣給予了我極大的支持和關(guān)心,在為人處世上也對(duì)我進(jìn)行諄諄的教導(dǎo),這些都將對(duì)我今后的學(xué)習(xí)和工作產(chǎn)生深刻的

94、影響,使我獲益匪淺。除了敬佩老師的專業(yè)水平和綜合素養(yǎng)外,嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和科學(xué)的研究精神也是我永遠(yuǎn)學(xué)習(xí)的榜樣,必將對(duì)我今后的學(xué)習(xí)和工作產(chǎn)生深遠(yuǎn)的影響,老師傳授給我的知識(shí)也必然會(huì)在我人生的學(xué)習(xí)階段乃至各個(gè)階段發(fā)揮重要的作用。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]何玲.蔡莉莎.曾維鵬.單片機(jī)最小系統(tǒng)的設(shè)計(jì)與制作.北京:電子工業(yè)出版社,20

95、12.1</p><p>  [2]譚浩強(qiáng).C程序設(shè)計(jì).北京:清華大學(xué)初版社,2005.</p><p>  [3]翟玉文.梁偉.艾學(xué)忠.電子設(shè)計(jì)與實(shí)踐[M].北京:中國電力出版社,2005.256-257.</p><p>  [4]張景元.基于單片機(jī)的多用途定時(shí)器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子工程師,2000年第8期22-31.</p><p>

96、;  [5]張專成.趙懷勛.單片機(jī)測(cè)控系統(tǒng)中的監(jiān)視定時(shí)器[J].武警技術(shù)學(xué)院學(xué)報(bào),Mar 1997.</p><p>  [6]馮成龍.傳感器應(yīng)用技術(shù)項(xiàng)目化教程.北京:清華大學(xué)出版社;北京交通大學(xué)出版社,2009.7</p><p><b>  附錄A:程序清單</b></p><p>  #include <reg52.h><

97、;/p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  void DC_LEFT(void);</p><p>  void DC_RIGHT(void);</p><p>  void DC_CLOSE_LEF

98、T(void);</p><p>  void DC_CLOSE_RIGHT(void);</p><p>  void DC_LEFT_BACK(void);</p><p>  void DC_RIGHT_BACK(void);</p><p>  void EX0init(void);</p><p>  voi

99、d RUN_DC(void);</p><p>  void IR_Rev (void);</p><p>  sbit DC1_1 = P1^4;</p><p>  sbit DC1_2 = P1^5;</p><p>  sbit DC2_1 = P1^6;</p><p>  sbit DC2_2 = P1^7

100、;</p><p>  sbit IR = P1^2;</p><p>  sbit first = P2^3;</p><p>  sbit left = P2^2;</p><p>  sbit right = P2^1; </p><p>  sbit last = P2^0;</p>&l

101、t;p>  sbit PASS = P3^2;</p><p>  sbit IR_RIGHT = P1^1;</p><p>  sbit IR_LEFT = P1^0;</p><p>  sbit NEAR_LEFT = P3^0;</p><p>  sbit NEAR_RIGHT = P3^1;</p><

102、p>  sbit IR_S = P1^3;</p><p>  sbit DC_S = P0^0;</p><p>  bit NEAR_LEFT_F = 0;</p><p>  bit NEAR_RIGHT_F = 0;</p><p>  bit BACK = 0;</p><p>  bit CORNER

103、_RIGHT = 0;</p><p>  bit CORNER_LEFT = 0;</p><p>  bit STOP = 0;</p><p>  bit Back_Flag;</p><p>  void main(void)</p><p><b>  {</b></p>

104、<p>  EX0init();</p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  IR_Rev();</b></p><p>  RUN_DC();</p><p>&

105、lt;b>  }</b></p><p><b>  }</b></p><p>  /*------------------------------------------------</p><p><b>  左輪前進(jìn)驅(qū)動(dòng)</b></p><p>  ------------

106、------------------------------------*/</p><p>  void DC_LEFT(void)</p><p><b>  {</b></p><p>  DC1_1 = 1;</p><p>  DC1_2 = 0;</p><p><b&g

107、t;  }</b></p><p>  /*------------------------------------------------</p><p><b>  右輪前進(jìn)驅(qū)動(dòng)</b></p><p>  ------------------------------------------------*/</p>

108、<p>  void DC_RIGHT(void) </p><p><b>  {</b></p><p>  DC2_1 = 1;</p><p>  DC2_2 = 0;</p><p><b>  }</b></p><p>  /*--------

109、----------------------------------------</p><p><b>  左輪停止</b></p><p>  ------------------------------------------------*/</p><p>  void DC_CLOSE_LEFT(void)</p>&l

110、t;p><b>  {</b></p><p>  DC1_1 = DC1_2 = 0;</p><p><b>  }</b></p><p>  /*------------------------------------------------</p><p><b>  右

111、輪停止</b></p><p>  ------------------------------------------------*/</p><p>  void DC_CLOSE_RIGHT(void)</p><p><b>  {</b></p><p>  DC2_1 = DC2_2 = 0;&l

112、t;/p><p><b>  }</b></p><p>  /*------------------------------------------------</p><p><b>  左輪后退驅(qū)動(dòng)</b></p><p>  -----------------------------------

113、-------------*/</p><p>  void DC_LEFT_BACK(void)</p><p><b>  {</b></p><p>  DC1_1 = 0;</p><p>  DC1_2 = 1;</p><p><b>  }</b><

114、;/p><p>  /*------------------------------------------------</p><p><b>  右輪后退驅(qū)動(dòng)</b></p><p>  ------------------------------------------------*/</p><p>  void D

115、C_RIGHT_BACK(void) </p><p><b>  {</b></p><p>  DC2_1 = 0;</p><p>  DC2_2 = 1;</p><p><b>  }</b></p><p>  /*----------------------

116、--------------------------</p><p>  避障紅外發(fā)射接收函數(shù)</p><p>  ------------------------------------------------*/</p><p>  void IR_Rev (void)</p><p><b>  {</b><

117、/p><p><b>  if(!IR)</b></p><p>  Back_Flag = 1;</p><p><b>  else</b></p><p>  Back_Flag = 0;</p><p><b>  }</b></p>

118、<p>  /*------------------------------------------------</p><p><b>  外部中斷0初始化</b></p><p>  ------------------------------------------------*/</p><p>  void EX0init(

119、void)</p><p><b>  {</b></p><p>  IT0 = 1; //指定外部中斷0下降沿觸發(fā),INT0 (P3.2)</p><p>  EX0 = 1; //使能外部中斷</p><p><b>  IT1=1;</b></p><p>&

120、lt;b>  EX1=1;</b></p><p>  EA = 1; //開總中斷</p><p><b>  }</b></p><p>  void RUN_DC(void)</p><p><b>  {</b></p><p>  if(!N

121、EAR_LEFT_F && !STOP && !NEAR_RIGHT_F)</p><p><b>  {</b></p><p>  if(!Back_Flag && !BACK)</p><p><b>  {</b></p><p>  if(l

122、eft !=0 && right != 0)</p><p><b>  {</b></p><p>  DC_LEFT();</p><p>  DC_RIGHT();</p><p><b>  }</b></p><p>  if(left == 0 &

123、amp;& right != 0)</p><p><b>  {</b></p><p>  DC_LEFT();</p><p>  DC_CLOSE_RIGHT();</p><p><b>  }</b></p><p>  if(right ==0 &

124、;& left != 0)</p><p><b>  {</b></p><p>  DC_RIGHT();</p><p>  DC_CLOSE_LEFT();</p><p><b>  }</b></p><p><b>  }</b>&

125、lt;/p><p>  else if(!NEAR_LEFT_F && !NEAR_RIGHT_F)</p><p><b>  BACK = 1;</b></p><p>  if(first && last)</p><p><b>  {</b></p>

126、<p>  if(!IR_RIGHT)</p><p>  CORNER_RIGHT = 1;</p><p><b>  else </b></p><p>  CORNER_RIGHT = 0;</p><p>  if(!IR_LEFT)</p><p>  CORNER_LE

127、FT = 1;</p><p><b>  else</b></p><p>  CORNER_LEFT = 0;</p><p>  if(!IR_RIGHT || !IR_LEFT)</p><p><b>  BACK = 0;</b></p><p><b>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論