畢業(yè)設(shè)計(jì)---基于at89c52單片機(jī)智能循跡小車的設(shè)計(jì)_第1頁
已閱讀1頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  報(bào)告編碼:</b></p><p><b>  畢業(yè)論文</b></p><p>  基于單片機(jī)AT89C52智能循跡小車的設(shè)計(jì)</p><p>  作 者 </p><p>  系 (院) 物理與電氣工

2、程學(xué)院 </p><p>  專 業(yè) 電子信息工程 </p><p>  基于AT89C52單片機(jī)智能循跡小車的設(shè)計(jì)</p><p>  摘 要:本系統(tǒng)采用AT89C52為核心進(jìn)行設(shè)計(jì),合理利用了該芯片上豐富的資源,實(shí)現(xiàn)小車檢測,尋跡,控制等功能,同時,系統(tǒng)對獲取的信息進(jìn)行實(shí)時顯示。本系統(tǒng)針對現(xiàn)實(shí)中出現(xiàn)的對于工業(yè)機(jī)器

3、人智能循跡的需求,適當(dāng)進(jìn)行了簡化。本次設(shè)計(jì)的智能小車,會自動沿著黑線行走,所行走的距離實(shí)時地顯示出來 ,同時可以通過PWM信號控制小車的速度。為了使小車的信息能夠?qū)崟r傳輸主控制系統(tǒng),并很好的完成行走和轉(zhuǎn)向等功能,就需要設(shè)計(jì)一套較為實(shí)用和可靠的算法,程序。</p><p>  關(guān)鍵詞:循跡;PWM;算法;數(shù)碼顯示 </p><p><b>  1引言</b></p

4、><p>  當(dāng)今社會,科學(xué)技術(shù)日新月異,時代前進(jìn)的步伐越邁越快,應(yīng)用自動化設(shè)備,計(jì)算機(jī)處理,現(xiàn)代化通訊,數(shù)字化信息,現(xiàn)代化顯示設(shè)備等高新技術(shù)而建立的現(xiàn)代化智能,監(jiān)控等系統(tǒng)已經(jīng)得到充分的發(fā)展與應(yīng)用,智能機(jī)器人也就應(yīng)運(yùn)而生。同時,在建設(shè)以人為本的和諧社會的過程中,智能服務(wù)機(jī)器人能夠完成考古發(fā)掘,海底探密,宇宙探索等危險(xiǎn)作業(yè),以保證人身安全。《國家中長期科學(xué)和技術(shù)發(fā)展規(guī)劃綱要》一文指出:智能服務(wù)機(jī)器人是在非結(jié)構(gòu)環(huán)境下為人

5、類提供必要服務(wù)的多種高技術(shù)集成的智能化裝備。以服務(wù)機(jī)器人和危險(xiǎn)作業(yè)機(jī)器人應(yīng)用需求為重點(diǎn),研究設(shè)計(jì)方法、制造工藝、智能控制和應(yīng)用系統(tǒng)集成等共性基礎(chǔ)技術(shù)。重點(diǎn)研究低成本的自組織網(wǎng)絡(luò),個性化的智能機(jī)器人和人機(jī)交互系統(tǒng)、高柔性免受攻擊的數(shù)據(jù)網(wǎng)絡(luò)和先進(jìn)的信息安全系統(tǒng)。</p><p>  本次設(shè)計(jì)系統(tǒng)主要分為紅外檢測模塊,小車控制模塊,狀態(tài)顯示模塊。單片機(jī)通過紅外檢測模塊等采集到的信息控制小車轉(zhuǎn)向,行駛速度和顯示。<

6、/p><p>  2 設(shè)計(jì)任務(wù)、要求和技術(shù)指標(biāo)</p><p><b>  2.1 任務(wù)</b></p><p> ?。?) 設(shè)計(jì)并制作一個智能小車,實(shí)現(xiàn)沿黑線行走而且不出線。</p><p> ?。?) 小車從起跑線出發(fā)(車體不得超過起跑線),沿引導(dǎo)線到達(dá)終點(diǎn)(與車體垂直的黑線)。</p><p>

7、<b>  2.2 要求</b></p><p>  利用檢測電路實(shí)現(xiàn)對黑線的檢測功能,要求檢測電路檢測盡可能的簡單</p><p>  機(jī)器車一旦啟動,便由程序控制完成靈活的行走方式。即在黑線的指引下前進(jìn),實(shí)現(xiàn)急停,轉(zhuǎn)向和轉(zhuǎn)向燈的控制。</p><p>  機(jī)器車開始行走的同時,開始顯示行走距離。</p><p>  

8、車體尺寸以一般玩具小車為限。</p><p>  無競爭-冒險(xiǎn),無抖動。</p><p><b>  2.3 技術(shù)指標(biāo)</b></p><p>  紅外檢測電路能夠檢測到0.5-2cm左右的黑線。</p><p>  機(jī)器車偏離黑線,要求迅速做出調(diào)整,能夠重新回到黑線。</p><p>  距離顯

9、示為行走時間的實(shí)時顯示,顯示距離的長度范圍為0~999.9米。</p><p>  車身長度為20.5cm,寬度為9.5cm,高度為7.5cm。</p><p>  檢測信號為電壓信號。</p><p><b>  3 方案分析與論證</b></p><p>  3.1 主控系統(tǒng)的分析與論證</p><

10、;p>  根據(jù)設(shè)計(jì)要求,我們認(rèn)為此設(shè)計(jì)屬于輸入量的復(fù)雜程序控制問題。據(jù)此,我們擬定了以下兩種方案并進(jìn)行了綜合的比較論證,具體如下:</p><p>  方案一:采用組合數(shù)字電路實(shí)現(xiàn)核心控制的方案</p><p>  采用組合電路實(shí)現(xiàn)控制和處理功能,具有速度快,資源豐富的優(yōu)點(diǎn),但是實(shí)現(xiàn)多路控制和附加功能上受到限制,且功能越多電路越復(fù)雜。因此該方案不被采用</p><

11、p>  方案二:采用單片機(jī)為核心控制的方案</p><p>  采用單片機(jī)作為控制和處理的核心,可使電路的復(fù)雜程度大大降低,尤其是實(shí)現(xiàn)小車的自動控制上顯現(xiàn)出獨(dú)特的優(yōu)勢。由于單片機(jī)AT89C52是一種低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含有8K的可反復(fù)擦寫的只讀程序存儲器和256B的隨機(jī)存取數(shù)據(jù)存儲器,器件采用ATMEL公司的高密度,非易失性存儲技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,

12、片內(nèi)置通用8位中央處理器和FLASH存儲單元,32個可編程I/O口線,3個16位定時/計(jì)數(shù)器,8個中斷源,低功耗空閑和掉電模式,完全符合設(shè)計(jì)的要求,所以采用AT89C52作為核心部件的方案較為理想。</p><p>  3.2顯示系統(tǒng)分析與論證</p><p>  顯示模塊主要用于顯示行走路程,由于顯示范圍為0~999.9米,因此可采用四位一體共陽的數(shù)碼管作為顯示元件。在顯示驅(qū)動電路中我們

13、擬定了二種設(shè)計(jì)方案:</p><p>  方案一:采用靜態(tài)現(xiàn)實(shí)的方案</p><p>  采用四片移位寄存器74LS164作為顯示電路,其優(yōu)點(diǎn)在于占用主控系統(tǒng)的I/O口少,且靜態(tài)現(xiàn)實(shí)的內(nèi)容無閃爍,但電路消耗的電流較大,占用I/O口較多,而本設(shè)計(jì)的電機(jī)消耗電流已經(jīng)很大,應(yīng)盡量在其他電路中節(jié)約電流的消耗,因此該方案不被采用。</p><p>  方案二:采用動態(tài)現(xiàn)實(shí)的方

14、案</p><p>  采用專用數(shù)碼管譯碼器BC7281B(以下簡稱7281)和74LS164共同協(xié)作來作為驅(qū)動的動態(tài)顯示電路,它只占用主控系統(tǒng)的兩個I/O口,大大節(jié)約了I/O口,且動態(tài)掃描7281單獨(dú)控制,不需單片機(jī)定時掃描,這樣就節(jié)約了單片機(jī)的定時單元用于做驅(qū)動和車速檢測,故采用本方案。</p><p>  3.3檢測系統(tǒng)分析與論證</p><p>  由于本設(shè)

15、計(jì)中的技術(shù)指標(biāo)要求識別精確范圍0.5~2 cm,因此本定方案中采用的是反射式的未經(jīng)調(diào)制的紅外收發(fā)管ST168作為檢測黑線的傳感器。考慮到該傳感器要檢測的距離比較短,所以采用的加套管的方法避免外界自然光線的影響,沒有加入補(bǔ)償電路,這樣大大簡化了電路的設(shè)計(jì),為了使小車更好的沿循跡線行走,我們加入了四路檢測黑線,且讓他們獨(dú)立工作,由主控系統(tǒng)循環(huán)檢測。</p><p>  3.4電機(jī)控制系統(tǒng)分析與論證</p>

16、<p>  方案一:采用繼電器對電機(jī)的開和關(guān)進(jìn)行開關(guān)的切換調(diào)整。這個方案簡單,但是響應(yīng)慢,機(jī)械結(jié)構(gòu)易損壞并且壽命不長。</p><p>  方案二:利用電阻分壓原理,采用數(shù)字電位器調(diào)整電機(jī)的分壓從而達(dá)到調(diào)速的目的,缺點(diǎn)是無法大電流驅(qū)動,降低工作效率而且不易實(shí)現(xiàn)。</p><p>  方案三:采用復(fù)合觀組成的H型PWM電路,這種電路的優(yōu)點(diǎn)是使管子工作在占空比可調(diào)的開關(guān)狀態(tài),提高

17、使用效率實(shí)現(xiàn)電機(jī)轉(zhuǎn)速的微調(diào),并且H型的驅(qū)動電路可以簡單的方式實(shí)現(xiàn)的方向控制。</p><p>  電機(jī)的控制系統(tǒng)主要是由控制行走電機(jī)和方向調(diào)整電機(jī)的電路所組成,該電路要求驅(qū)動電流足夠大且在控制中不會發(fā)生競爭-冒險(xiǎn)現(xiàn)象,因此在設(shè)計(jì)中我們采用方案三即圖一的設(shè)計(jì)方案,圖一中的二極管有效地實(shí)現(xiàn)了電路保護(hù)和正反向電流的控制,也避免了競爭-冒險(xiǎn),采用差分放大電路可提供足夠大的電流,實(shí)驗(yàn)證明該方案三很好,電壓控制安全可靠,可被

18、采用。</p><p>  4 功能概述及系統(tǒng)原理框圖</p><p>  4.1 功能概述和技術(shù)指標(biāo)分析</p><p>  本次設(shè)計(jì)系統(tǒng)主要是讓小車自主的沿著預(yù)先設(shè)計(jì)好的黑線行駛,從出發(fā)到結(jié)束都不會脫離黑線,同時顯示小車所行走的距離,行駛中的各種轉(zhuǎn)向都伴有相應(yīng)轉(zhuǎn)向燈的點(diǎn)亮,直到小車檢測到結(jié)束黑線,點(diǎn)亮結(jié)束指示燈。本設(shè)計(jì)的小車采用市場上常見的具有前導(dǎo)向輪的玩具車車

19、體,該車體有雙電機(jī),前電機(jī)控制小車的轉(zhuǎn)向,后電機(jī)控制小車的前進(jìn)后退及速度。這種小車的設(shè)計(jì)大大簡化了小車的控制過程,使得控制程序簡化,但是也有個不足之處即有最小轉(zhuǎn)向半徑的要求,這就要求循跡線的彎道設(shè)計(jì)必須大于小車的最小轉(zhuǎn)向半徑。</p><p>  系統(tǒng)技術(shù)指標(biāo)主要偏重于功能性。小車行走功能依靠對電機(jī)的驅(qū)動及調(diào)速,我們采用H橋式驅(qū)動電路實(shí)現(xiàn)直流電機(jī)的正反轉(zhuǎn)及轉(zhuǎn)速控制;循跡采取的方法是紅外探測法,由四組紅外光電探測器

20、對行走地面的顏色識別從而判斷行走路線;路程檢測采用霍爾元件對磁性物質(zhì)的檢測來實(shí)現(xiàn),當(dāng)霍爾元件檢測到小車車輪上的磁性物質(zhì)時,霍爾元件輸出低電平,將此低電平輸入到計(jì)數(shù)器中斷中,每當(dāng)計(jì)數(shù)值滿,就顯示出來小車的所行走的距離。</p><p>  4.2 系統(tǒng)原理框圖</p><p>  硬件組成框圖如圖1所示:主要有AT89C52單片機(jī)、紅外檢測電路、路程檢測電路、顯示電路、驅(qū)動控制電路、方向控制

21、電路。</p><p><b>  圖 1</b></p><p><b>  5 硬件電路及介紹</b></p><p>  5.1 電機(jī)驅(qū)動控制電路</p><p>  電機(jī)驅(qū)動控制模塊采用的是分立元件制作,具體電路見下圖2所示。電機(jī)驅(qū)動電路由I/O口輸出信號送RUNF和RUNB,VCC是給電機(jī)

22、供電的電源。電機(jī)的控制原理為:通過RUNF和RUNB的不同電平輸入,在M處得到正反向控制電壓實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn),例如:當(dāng)RUNB為高RUNF為低時,三極管T4,T6,T9導(dǎo)通;T5,T7,T8截止,此時二極管D1導(dǎo)通,從而驅(qū)動電機(jī)正向轉(zhuǎn)動。當(dāng)需要電機(jī)反轉(zhuǎn)時,同理只需要輸入端RUNF和RUNB的電平反向即可。輸入端由AT89C52的 I/O控制。</p><p>  兩路輸入信號的均為 30Hz 占空比為

23、 30% </p><p>  控制電路的控制方式如表1所示:</p><p><b>  圖2</b></p><p>  表 1 電機(jī)驅(qū)動方式列表</p><p>  注:小車轉(zhuǎn)向模塊的電路與驅(qū)動模塊電路相同</p><p><b>  5.2 電源模塊</b>&l

24、t;/p><p>  采用9V蓄電池為直流電機(jī)供電,將9V電壓降壓、穩(wěn)壓到5V,為外圍芯片供電。我們利用LM7805芯片將9V的鋰電池降壓到5V,由5V電壓來給單片機(jī)和其它控制模塊供電。具體電路圖如下</p><p><b>  圖2</b></p><p>  5.3 距離檢測模塊</p><p>  距離檢測模塊是采用霍

25、爾元件進(jìn)行感應(yīng)檢測,這樣可以很好提高檢測的準(zhǔn)確性,檢測原理是利用計(jì)數(shù)器中斷1,計(jì)算小車車輪的直徑,在小車的車輪上裝上一個小鐵片,當(dāng)霍爾元件檢測到一次低電平,計(jì)數(shù)器中斷加一,達(dá)到預(yù)先設(shè)置的數(shù)值時,顯示距離,這是一種最為簡單,實(shí)用的方法,算法少,占用單片機(jī)運(yùn)行時間短,可以更好的使單片機(jī)一直工作在主程序循跡程序中。具體硬件原理圖如下:</p><p><b>  圖4</b></p>

26、<p><b>  5.4 顯示模塊</b></p><p>  顯示部分有兩部分組成,一部分由六個發(fā)光二極管組成以指示各部分工作狀態(tài),單片機(jī)開始工作時D1燈亮,小車在行走過程中,左轉(zhuǎn)時D2、D3亮,右轉(zhuǎn)時D4、D5亮,停止時D6點(diǎn)亮。電路原理圖如圖5 所示。</p><p>  另一部分由一個四位一體的共陽數(shù)碼管組成顯示機(jī)車運(yùn)行的路程,該部分的主要芯片

27、為BC7281B,該芯片的驅(qū)動能力強(qiáng),占用I/O口少,且不用單片機(jī)進(jìn)行動態(tài)掃描,不需要譯碼,大大的節(jié)省了單片機(jī)有限的資源和顯示所占用的時間。</p><p><b>  圖5</b></p><p><b>  圖6</b></p><p>  5.5 紅外檢測模塊設(shè)計(jì)</p><p>  紅外檢測

28、模塊主要是由ST168組成。ST168采用高發(fā)射功率紅外光電管和高靈敏光電晶體管組成,其測試距離為5-10mm,ST168的外形及內(nèi)部結(jié)構(gòu)如下圖: </p><p><b>  圖7</b></p><p>  紅外檢測模塊電路原理圖如上圖 所示此電路的工作原理:當(dāng)ST168檢測到白線時,自身所發(fā)射的紅外光線被白色反射接收到,使得自身的光電三極管導(dǎo)通,在LM319的

29、4號引腳將檢測到低電平,低于5號引腳的比較電平2.5V,在12號引腳上將輸出低點(diǎn)平,相反,當(dāng)檢測到黑線時,自身所發(fā)出的紅外被黑色吸收,光電三極管截止,4號引腳為高電平,12號引腳輸出高電平,單片機(jī)根據(jù)這個開關(guān)量做出反應(yīng),來控制小車的左右轉(zhuǎn)向。</p><p>  該檢測系統(tǒng)共有四個這樣的模塊,分別為左一,左二,右一,右二,具體分配如下圖:</p><p><b>  圖8<

30、/b></p><p>  左一,右一,作為循跡主要檢測部分,左二右二作為輔助檢測,其控制原理如下:</p><p>  當(dāng)檢測到左一,或者右一有高電平信號時,說明小車已經(jīng)偏離了黑線,調(diào)整,但是由于車速,小車自身反映時間或者彎道太大的緣故,使得小車在還沒有調(diào)整過來之前,已經(jīng)超出了左一,或者右一得檢測范圍,這樣可以由左二右二做出補(bǔ)償調(diào)整,使得小車重新回到軌道上來。</p>

31、<p>  5.6 主控系統(tǒng)電路</p><p>  該系統(tǒng)由單片機(jī)AT89C52實(shí)現(xiàn)。AT89C52的主要性能有:①與MCS-51產(chǎn)品兼容;②8KB的在線可重復(fù)編程快閃存儲器;③寬工作電壓范圍為2.7V~6V;④256×8位SRAM;⑤15條可編程I/O線;⑥2個16位定時器/計(jì)數(shù)器;⑦全靜態(tài)工作方式:0Hz~24Hz等。</p><p>  設(shè)計(jì)采用了12M晶振,

32、5V電源供電,把P1、P2、P4口作為普通I/O線用,P3口為中斷等的接入口。另外,P0口的驅(qū)動能力最強(qiáng),可用于直接驅(qū)動LED燈。輸入口都可以吸收20mA的灌入電流,當(dāng)向端口寫入電平“1”時,可作為輸出引腳。</p><p>  主控系統(tǒng)電路主要承擔(dān)計(jì)時,數(shù)據(jù)采集和送出控制信號的功能,對目標(biāo)識別與控制起著核心作用,各功能通過軟件實(shí)現(xiàn)。單片機(jī)AT89C52主控電路圖如下圖9 所示:</p><p

33、><b>  圖9</b></p><p><b>  6 軟件設(shè)計(jì)</b></p><p>  6.1智能小車程序流程說明</p><p>  程序主要通過程序主模塊通過調(diào)用各個子模塊來實(shí)現(xiàn),主模塊的任務(wù)包括:對I/O口的循環(huán)檢測,調(diào)用相關(guān)子程序?qū)斎腠憫?yīng)進(jìn)行相應(yīng)的處理。由于AT89C52有三個定時器,在本設(shè)計(jì)中可

34、將T0用于計(jì)數(shù)器和數(shù)碼管顯示距離的控制;將T1用于脈沖編碼調(diào)制(PWM)和頻率的調(diào)節(jié)。兩個定時器均采用中斷工作方式,且默認(rèn)其優(yōu)先級,即計(jì)數(shù)器的優(yōu)先級高于定時器優(yōu)先級。T1工作在定時方式模式1中,T0工作再計(jì)數(shù)方式模式2中。對工作模式寄存器(TMOD),中斷允許控制(IE)的設(shè)置如表2所示,程序的主流程圖如圖(10)所示</p><p><b>  表2</b></p><

35、p>  程序初始化,I/O口檢測與調(diào)整,控制端和定時器的軟件設(shè)置清單如下:</p><p>  RUNF EQU P0.1</p><p>  RUNB EQU P0.0 ;驅(qū)動口設(shè)置</p><p>  Y1 EQU P2.7 </p><p>  Y2 EQU P2.6</p><p>

36、;  Z1 EQU P2.5</p><p>  Z2 EQU P2.4 ;調(diào)整信號</p><p>  TL EQU P0.2 ;左轉(zhuǎn)調(diào)整口</p><p>  TR EQU P0.3 ;右轉(zhuǎn)調(diào)整口</p><p>  ZS EQU P3.6 ;停止指示燈</p><p>  

37、CLK BIT P1.1</p><p>  DAT BIT P1.0</p><p>  PWMH DATA 30H </p><p>  PWML DATA 31H ;脈寬調(diào)制設(shè)置</p><p>  JS DATA 32H ;計(jì)數(shù)</p><p>  YS DATA 33H

38、 ;延時外層嵌套</p><p>  TIMER DATA 34H ;延時用寄存器</p><p>  TIMER1 DATA 35H</p><p>  TEMP DATA 36H</p><p>  TH1_D EQU 0FEH ;定時器初始化設(shè)定值</p><p>  TL1_D EQU

39、 18H</p><p><b>  …</b></p><p>  MOV TMOD,#16H ;T0工作于模式2,T1工作于模式1</p><p>  MOV TH1,#0FcH</p><p>  MOV TL1,#18H</p><p>  MOV TH0,#0FFH&l

40、t;/p><p>  MOV TL0,#0FFH ;設(shè)置T0,T1初值</p><p>  SETB ET1 </p><p><b>  SETB ET0</b></p><p>  SETB TR0 ;T0開始計(jì)數(shù)</p><p>  SETB EA

41、 :開中斷</p><p><b>  ….</b></p><p>  XJ: MOV A,P2 ;讀入調(diào)整信號</p><p>  ANL A,#0F0H ;p2低4位至零,高4位不變</p><p>  MOV B,A ;B=P2</p><p> 

42、 ANL A,#0A0H ;P2的5和7位不變</p><p>  CJNE A,#0A0H,NEXT_XJ ;5和7位都為1則跳轉(zhuǎn),否則停止</p><p>  SJMP STOP</p><p>  NEXT_XJ: </p><p><b>  MOV A,B</b></p>&

43、lt;p>  ANL A,#50H ;p2的第4、6位不變</p><p>  CJNE A,#50H,ZZ_1;判斷是否停止 ;p2的4、6全為 1 停止,否則跳轉(zhuǎn)</p><p>  SJMP STOP</p><p>  ZZ_1: </p><p>  JB Z1,ZZ ;是否左轉(zhuǎn)<

44、/p><p>  JB Z2,DTL </p><p>  JB Y1,YZ ;是否右轉(zhuǎn)</p><p>  JB Y2,DTR</p><p><b>  AJMP XJ</b></p><p><b>  圖10主程序流程圖</b></p&g

45、t;<p>  6.2 各功能子模塊及流程說明</p><p> ?。?)顯示模塊:主要功能是顯示小車行走的距離,由程序控制,T0計(jì)數(shù)器每計(jì)數(shù)滿,代表小車以行走完10cm的距離,這時使得存放距離的最低位數(shù)據(jù)(4位數(shù)據(jù)存放地址由低到高依次為37H,38H,39H,40H)加一,并由單片機(jī)控制BC7281B顯示,具體流程圖如下:</p><p>  START_DELAY:<

46、;/p><p>  MOV TIMER1,#225</p><p>  DJNZ TIMER1,$</p><p>  DJNZ TIMER,START_DELAY</p><p>  MOV R7,#12H</p><p><b>  … …</b></p><p>  

47、LCALL SEND_BYTE</p><p>  MOV R7,#15H ;顯示第四位</p><p>  LCALL SEND_BYTE</p><p>  MOV A,DISP_3</p><p>  ANL A,#0FH</p><p>  ADD A,#30H</p>&l

48、t;p>  MOV R7,A</p><p>  LCALL SEND_BYTE</p><p>  ;BC7281初始化結(jié)束</p><p>  **********計(jì)數(shù)中斷顯示**********</p><p><b>  COUNT: </b></p><p><b>

49、;  PUSH ACC</b></p><p>  MOV A,DISP_0</p><p>  MOV R7,#15H ;顯示第一位</p><p>  LCALL SEND_BYTE</p><p>  MOV A,DISP_0</p><p>  ANL A,#0FH</p&

50、gt;<p>  ADD A,#0</p><p>  MOV R7,A</p><p>  LCALL SEND_BYTE</p><p>  MOV A,DISP_0</p><p><b>  INC A</b></p><p>  MOV DISP_0,A &l

51、t;/p><p>  CJNE A,#0AH,COUNT_BACK</p><p>  MOV DISP_0,#0</p><p><b>  … …</b></p><p>  MOV R7,#15H;顯示第三位</p><p>  LCALL SEND_BYTE</p><

52、;p>  MOV A,DISP_2</p><p>  ANL A,#0FH</p><p>  ADD A,#20H</p><p>  MOV R7,A</p><p>  LCALL SEND_BYTE </p><p>  COUNT_BACK:</p><p>

53、<b>  POP ACC</b></p><p><b>  RETI</b></p><p>  (2)電機(jī)控制及PWM脈沖模塊:主要任務(wù)是實(shí)現(xiàn)電機(jī)的快慢速,正反轉(zhuǎn)控制??刂齐姍C(jī)為直流電機(jī),通過PWM信號控制,PWM控制信號由軟件產(chǎn)生,PWM信號的占空比由軟件來設(shè)定。當(dāng)小車偏離軌跡時通過軟件改變前輪電機(jī)控制標(biāo)志RUNF和RUNB的電平控制小車

54、的左右轉(zhuǎn)向,同理控制小車后輪的前進(jìn)和倒退,并有PWM信號控制小車的速度快慢。該控制程序有定時器中斷1完成。</p><p>  電機(jī)控制程序清單如下:</p><p>  PUSH ACC ;保護(hù)現(xiàn)場</p><p>  MOV TH1,#TH1_D</p><p>  MOV TL1,#TL1_D ;定時器重新裝

55、入初值</p><p>  MOV A,JS</p><p><b>  INC A</b></p><p>  MOV JS,A</p><p>  CJNE A,PWMH,CS</p><p>  CLR RUNF</p><p>  CS:

56、 CJNE A,PWML,FH</p><p>  SETB RUNF</p><p>  MOV JS,#00H</p><p>  FH: POP ACC ;恢復(fù)現(xiàn)場,返回</p><p><b>  RETI</b></p><p><b>  

57、7 系統(tǒng)調(diào)試與測試</b></p><p>  測量儀器:卷尺,萬用表,雙蹤示波器,WYJ-30V/10A晶體管直流穩(wěn)壓電源。</p><p>  7.1 測試電路的調(diào)試與測試</p><p>  該電路的調(diào)試主要是調(diào)節(jié)紅外檢測傳感器電路的R11(圖7)的阻值,由于這個電阻可以調(diào)節(jié)ST168的發(fā)射管的發(fā)射功率,提高其發(fā)射功率就能調(diào)節(jié)其有效距離,但是由于沒

58、有補(bǔ)償電路,在調(diào)節(jié)過程遇到了很多的麻煩,即外界的干擾強(qiáng),如果電阻調(diào)的過小,那么ST168的發(fā)射功率過大,從而使得有效距離太遠(yuǎn),檢測距離太近造成對黑線也反射,失去了檢測黑線的意義,但是如果電阻太高,使得發(fā)射功率過小,使得對白線也是低電平,同樣失去了檢測的意義,在接近需要電阻時,自然光的影響較大,甚至外界光線稍微變化,就會出現(xiàn)ST168輸出電平的變化,為了解決這個影響,我們將ST168在稍微弱的光線下有效距離調(diào)到0.5-1cm,然后加入套管

59、,屏蔽到大部分的自然光的影響,最后的調(diào)試電阻R11的阻值為1.2k,獲得了極大的成功,即使在黑暗和強(qiáng)光的照射下,依然能能夠很好的使用,經(jīng)測試,左一,左二,右一,右二檢測成功。</p><p>  7.2顯示電路的調(diào)試與檢測</p><p>  顯示電路由于以前的制作多次用到BC7281,所以,硬件上沒有出現(xiàn)問題,但是在調(diào)試中出現(xiàn)因送顯示占用較多的時間,使得循跡過程出現(xiàn)偏差,我們做了如下調(diào)整

60、:第一位時,只點(diǎn)亮第一位數(shù)據(jù),這樣在顯示的過程就減少了因?yàn)樗推渌麤]有變化的數(shù)據(jù),而不占用多余的時間,最后結(jié)果:智能小車在開動時,小車顯示距離初始化為零,每當(dāng)小車行走10cm,小車都能準(zhǔn)確的進(jìn)行加一顯示,并且顯示清晰,實(shí)驗(yàn)結(jié)果表明功能完全實(shí)現(xiàn),測試成功。</p><p>  7.3電機(jī)控制電路的調(diào)試與測試</p><p>  在電機(jī)開啟后小車能夠準(zhǔn)確的沿著預(yù)先設(shè)置的黑線前進(jìn),在轉(zhuǎn)向過程中能夠

61、準(zhǔn)確的給出轉(zhuǎn)向燈,當(dāng)檢測到前方有橫置黑線即默認(rèn)結(jié)束線時,遇到了一些麻煩,當(dāng)小車走到結(jié)束黑線時,由于小車的速度和車身角度,使得檢測模塊沒有完全對準(zhǔn)黑線,而程序控制中最初以紅外檢測全高電平即為停止(全部檢測到黑線),這時即使有三個紅外檢測口已經(jīng)檢測到黑線,那個小車依然進(jìn)行循跡程序,最后我們做出了調(diào)整,即考慮到黑線寬度使得四個紅外檢測的左邊和右邊在循跡過程中不可能同時檢測到黑線,如果檢測到,即為停止線,所以在停止控制中,將停止的程序控制寫為左

62、一左二的任意一個檢測到黑線的同時右一右二的任意一個也檢測到黑線,即為停止,在執(zhí)行停止程序時考慮到慣性的影響我們將小車的停止程序改為令小車迅速開啟反向電機(jī),利用倒退來緩沖慣性,使得小車能夠急停。最后測試,完全符合要求,測試成功。</p><p>  7.4方向調(diào)整電路的調(diào)試與測試</p><p>  小車在行進(jìn)的過程中,最初容易出現(xiàn)小車偏離黑線雖然已經(jīng)做出了調(diào)整,但是調(diào)整的時間長,又重新走偏

63、,甚至走出線,我們調(diào)整了轉(zhuǎn)向的延時時間,經(jīng)測試,在做小調(diào)整時,延時時間為1ms,大調(diào)整為直到回到線上才停止轉(zhuǎn)向。這樣即使在急轉(zhuǎn)外上即彎道的半徑小于小車的最小轉(zhuǎn)動半徑,小車即使出線,也能夠準(zhǔn)確的從新回到黑線上去,最后測試成功。</p><p><b>  8 結(jié)論</b></p><p>  充分分析我們的系統(tǒng),其關(guān)鍵在于實(shí)現(xiàn)小車對黑線的識別與系統(tǒng)控制,而在這一點(diǎn)上,單

64、片機(jī)就顯示出來它的優(yōu)勢——識別控制簡單,方便,快捷。這樣一來,單片機(jī)就可以充分發(fā)揮其速度快,有較為強(qiáng)大的控制功能及可位尋址操作的功能,且價格低廉,可用附加電路實(shí)現(xiàn)電路的擴(kuò)展。因此可看出電子領(lǐng)域的智能化發(fā)展,必將向著更加靈活,更加方便的軌道發(fā)展,智能化把人類帶進(jìn)夢幻般的世界是完全可能的,我們的生活也將更加的璀璨多彩。</p><p><b>  9 致謝</b></p><

65、p>  衷心地感謝院、系領(lǐng)導(dǎo)的大力支持,特別感謝李建法老師,感謝他在畢業(yè)設(shè)計(jì)過程中對我們的畢業(yè)設(shè)計(jì)給予的基礎(chǔ)知識、專業(yè)知識以及應(yīng)用實(shí)踐等諸多方面指導(dǎo)與幫助,讓我們得以順利完成畢業(yè)設(shè)計(jì),使我的大學(xué)生活能夠順利地畫上圓滿的句號。最后請?jiān)试S我向所有關(guān)心支持我們畢業(yè)設(shè)計(jì)的領(lǐng)導(dǎo)、老師、同學(xué)表示我最誠摯的感謝!</p><p><b>  參考文獻(xiàn)</b></p><p>

66、  [1] 李朝青.單片機(jī)原理及接口技術(shù) [M].北京:北京航空航天大學(xué)出版社,2005.9</p><p>  [2] 謝自美.電子線路綜合設(shè)計(jì)[M].武漢:華中科技大學(xué)出版設(shè),2006.6</p><p>  [3] 郁有文,常建,程繼紅.傳感器原理及工程應(yīng)用.[M].西安:西安電子科技大學(xué)出版社,第2 版,2000.8</p><p>  [4] Timoth

67、y J.Maloney, Moden Industrial Electronics[M].北京:科學(xué)出版社,2002</p><p>  [5] 童詩白,華成英.模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2001</p><p>  [6] 閆石.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,1998</p><p>  [7] 陳尚松,雷加,郭慶.電子測量與儀

68、器[M].北京:電子工業(yè)出版社,1998 </p><p>  A Traction-Control System Based On MCU</p><p><b>  Li Weili</b></p><p> ?。⊿chool of Physics and Electrical Engineering, Anyang Normal Univ

69、ersity, Anyang, Henan 455002)</p><p>  Abstract:This system uses AT89C52 chip as a core and its rich resources to achieve a smart car with functions of detection,motion,control and others, meanwhile system w

70、ill obtain the information for real-time display. In view of the reality of the system for working of the industry of robot along the line demand, we make a proper conduct of a simplified, Among them, they have a smart

71、car. In the process, the smart car will automatically run along the black route and the distance of road line wi</p><p>  Keywords: Traction-Control ; PWM; algorithm; display</p><p>  附錄一 電路原理

72、圖</p><p>  附錄二 電路PCB圖</p><p><b>  附錄三 程序清單</b></p><p>  RUNF EQU P0.1</p><p>  RUNB EQU P0.0 ;驅(qū)動口設(shè)置</p><p>  Y1   EQU P2.7 </p><p

73、>  Y2 EQU P2.6</p><p>  Z2 EQU P2.4 ;調(diào)整信號</p><p>  TL EQU P0.2 ;左轉(zhuǎn)調(diào)整口</p><p>  TR EQU P0.3 ;右轉(zhuǎn)調(diào)整口</p><p>  ZS EQU P3.6 ;停止指示燈</p><

74、;p>  TLF EQU P0.5</p><p>  TRF EQU P0.6</p><p>  TRB EQU P0.7</p><p>  CLK BIT P1.1</p><p>  DAT BIT P1.0</p><p>  PWMH DATA 30H

75、</p><p>  PWML DATA 31H ;脈寬調(diào)制設(shè)置</p><p>  JS DATA 32H ;計(jì)數(shù)</p><p>  YS DATA 33H ;延時外層嵌套</p><p>  TIMER DATA 35H</p><p>  TEMP

76、 DATA 36H</p><p>  DISP_0 DATA 37H</p><p>  DISP_1 DATA 38H</p><p>  DISP_2 DATA 39H</p><p>  DISP_3 DATA 40H</p><p>  TH1_D

77、EQU 0FEH ;定時器初始化設(shè)定值</p><p>  TL1_D EQU 18H</p><p>  PWMH_D EQU 5 ;脈寬調(diào)整占空比</p><p>  PWML_D EQU 14</p><p>  PWMH_DD EQU 4</p><p>  ;*************

78、*******************************</p><p>  ;*****************主程序*********************</p><p>  ;********************************************</p><p>  ORG 0000H</p><p> 

79、 AJMP START</p><p>  ORG 000BH</p><p>  LJMP COUNT</p><p>  ORG 001BH </p><p>  LJMP DRIVING ;驅(qū)動中斷</p><p>  ORG 0030H</p><p

80、>  START: MOV TMOD,#16H ;T0工作于模式2,T1工作于模式1</p><p>  MOV TH1,#0FcH</p><p>  MOV TL1,#18H</p><p>  MOV TH0,#0FFH</p><p>  MOV TL0,#0FFH ;設(shè)置T0,T1初值</p>

81、<p>  SETB ET1 ;開中斷</p><p>  SETB ET0</p><p><b>  SETB EA</b></p><p>  SETB TR0 ;T0開始計(jì)數(shù)</p><p>  ;初始化BC7281</p><p>

82、  MOV TIMER,#50</p><p>  START_DELAY:</p><p>  MOV TIMER1,#225</p><p>  DJNZ TIMER1,$</p><p>  DJNZ IMER,START_DELAY</p><p>  MOV R7,#12H<

83、/p><p>  LCALL SEND_BYTE</p><p>  MOV R7,#0C8H</p><p>  LCALL SEND_BYTE</p><p>  MOV DISP_0,#0</p><p>  MOV DISP_1,#0</p><p>  MOV

84、DISP_2,#0</p><p>  MOV DISP_3,#0</p><p>  LCALL DISP</p><p>  MOV R7,#15H;顯示第三位</p><p>  LCALL SEND_BYTE</p><p>  MOV A,DISP_2</p><p

85、>  ANL A,#0FH</p><p>  ADD A,#20H</p><p>  MOV R7,A</p><p>  LCALL END_BYTE</p><p>  MOV R7,#15H;顯示第四位</p><p>  LCALL SEND_BYTE</p&g

86、t;<p>  MOV A,DISP_3</p><p>  ANL A,#0FH</p><p>  ADD A,#30H</p><p>  MOV R7,A</p><p>  LCALL SEND_BYTE</p><p>  ;BC7281初始化結(jié)束</p&g

87、t;<p>  SETB RUNF</p><p>  CLR RUNB ;初始化驅(qū)動端口</p><p>  MOV YS,#1</p><p>  ACALL DELAY</p><p>  MOV PWMH,#PWMH_D</p><p>  MOV PW

88、ML,#PWML_D ;設(shè)置脈寬值</p><p>  MOV JS,#00H ;設(shè)置計(jì)數(shù)值</p><p>  SETB TR1 ;T1開始走時</p><p>  ;****************************************************</p><p>  ;*********

89、********循跡模塊的程序*********************</p><p>  ;****************************************************</p><p>  XJ: ;初始化,清轉(zhuǎn)向標(biāo)志</p><p>  MOV A,P2 ;讀入調(diào)整信號&

90、lt;/p><p>  ANL A,#0F0H </p><p>  MOV B,A</p><p>  ANL A,#0A0H</p><p>  CJNE A,#0A0H,NEXT_XJ</p><p>  SJMP STOP </p><p><b>

91、;  NEXT_XJ:</b></p><p>  MOV A,B</p><p>  ANL A,#50H</p><p>  CJNE A,#50H,ZZ_1;判斷是否停止</p><p>  SJMP STOP</p><p>  ZZ_1: JB Z1,ZZ

92、 ;是否左轉(zhuǎn)</p><p>  JB Z2,DTL </p><p>  JB Y1,YZ ;是否右轉(zhuǎn)</p><p>  JB Y2,DTR</p><p><b>  AJMP XJ</b></p><p><b>  ;左轉(zhuǎn)程序&

93、lt;/b></p><p><b>  ZZ: </b></p><p>  MOV PWMH,#PWMH_D</p><p>  CLR TR</p><p>  SETB TL ;判斷是否調(diào)用大調(diào)整程序</p><p>  CLR

94、 TLF</p><p>  CLR TL_BACK_LED</p><p>  SETB TRF</p><p>  SETB TRB</p><p>  MOV YS,#01H</p><p>  LCALL DELAY ;小調(diào)整程序</p><

95、;p>  CLR TL</p><p>  LJMP XJ</p><p>  DTL: </p><p>  MOV PWMH,#PWMH_DD</p><p>  CLR TR</p><p>  SETB TL</p><p>  CLR

96、 TLF</p><p>  CLR TL_BACK_LED</p><p>  SETB TRF</p><p>  SETB TRB</p><p>  LJMP XJ</p><p><b>  ;右轉(zhuǎn)程序</b></p><p><

97、;b>  YZ: </b></p><p>  MOV PWMH,#PWMH_D </p><p>  CLR TL</p><p>  SETB TR ;判斷是否調(diào)用大調(diào)整程序</p><p>  CLR TRF</p><p>  CLR

98、 TRB</p><p>  SETB TLF</p><p>  SETB TL_BACK_LED</p><p>  MOV YS,#01H ;設(shè)置延時子程序外層嵌套</p><p>  LCALL DELAY </p><p>  CLR TR

99、 ;小調(diào)整程序</p><p>  LJMP XJ</p><p><b>  DTR: </b></p><p>  MOV PWMH,#PWMH_DD</p><p>  CLR TL</p><p>  SETB TR</p><p>

100、;  CLR TRF</p><p>  CLR TLF</p><p>  SETB TL_BACK_LED</p><p>  LJMP XJ</p><p><b>  ;停止程序</b></p><p>  STOP: CLR ET1</p&

101、gt;<p>  CLR ET0</p><p>  CLR TR</p><p>  CLR TL</p><p>  SETB TLF</p><p>  SETB TL_BACK_LED</p><p>  SETB TRF</p>

102、<p>  SETB TRB</p><p>  SETB RUNB</p><p>  CLR RUNF</p><p>  MOV YS,#01H ;設(shè)置延時子程序外層嵌套</p><p>  LCALL DELAY </p><p>  CLR RUNB</p&

103、gt;<p>  CLR RUNF</p><p>  MOV R5,#09H</p><p>  ZS_2: SETB ZS</p><p>  MOV YS,#01H</p><p>  LCALL DELAY</p><p><b>  CLR ZS</b&g

104、t;</p><p><b>  CLR ZS</b></p><p><b>  CLR ZS</b></p><p><b>  CLR ZS</b></p><p>  MOV R4,#03H</p><p>  ZS_1:

105、MOV YS,#0FFH</p><p>  LCALL DELAY</p><p>  DJNZ R4,ZS_1</p><p>  DJNZ R5,ZS_2</p><p><b>  SJMP $</b></p><p><b>  ;驅(qū)動程序</b><

106、/p><p><b>  DRIVING:</b></p><p>  PUSH ACC ;保護(hù)現(xiàn)場</p><p>  MOV TH1,#TH1_D</p><p>  MOV TL1,#TL1_D ;定時器重新裝入初值</p><p>  MOV A,JS</p&

107、gt;<p><b>  INC A</b></p><p>  MOV JS,A</p><p>  CJNE A,PWMH,CS</p><p>  CLR RUNF</p><p>  CS: CJNE A,PWML,FH</p><p>  SETB

108、 RUNF</p><p>  MOV JS,#00H</p><p>  FH: POP ACC ;恢復(fù)現(xiàn)場,返回</p><p><b>  RETI</b></p><p>  ;延時1毫秒的子程序</p><p>  DELAY: MOV R2,Y

109、S</p><p>  D3: MOV R1,#0C4H</p><p>  D2: MOV R0,#0FFH</p><p>  D1: DJNZ R0,D1</p><p>  DJNZ R1,D2</p><p>  DJNZ R2,D3</p><

110、p><b>  RET </b></p><p>  ;*******************************************</p><p>  ;*******T0中斷子程序************************</p><p>  ;************************************

111、*******</p><p><b>  COUNT: </b></p><p>  PUSH ACC</p><p>  MOV A,DISP_0</p><p>  MOV R7,#15H;顯示第一位</p><p>  LCALL SEND_BYTE</p>&

112、lt;p>  MOV A,DISP_0</p><p>  ANL A,#0FH</p><p>  ADD A,#0</p><p>  MOV R7,A</p><p>  LCALL SEND_BYTE</p><p>  MOV A,DISP_0</p><p>

113、;<b>  INC A</b></p><p>  MOV DISP_0,A </p><p>  CJNE A,#0AH,COUNT_BACK</p><p>  MOV DISP_0,#0</p><p>  MOV A,DISP_1</p><p><b>  INC A<

114、;/b></p><p>  MOV DISP_1,A</p><p>  MOV R7,#15H;顯示第二位</p><p>  LCALL SEND_BYTE</p><p>  MOV A,DISP_1</p><p>  ANL A,#0FH</p><p>  AD

115、D A,#10H</p><p>  MOV R7,A</p><p>  LCALL SEND_BYTE </p><p>  MOV A,DISP_1</p><p>  CJNE A,#0AH,COUNT_BACK</p><p>  MOV DISP_1,#0</p><p&

116、gt;  MOV R7,#15H;顯示第二位</p><p>  LCALL SEND_BYTE</p><p>  MOV A,DISP_1</p><p>  ANL A,#0FH</p><p>  ADD A,#10H</p><p>  MOV R7,A</p><p

117、>  LCALL SEND_BYTE </p><p>  MOV A,DISP_2</p><p><b>  INC A</b></p><p>  MOV DISP_2,A</p><p>  MOV R7,#15H;顯示第三位</p><p>  LCALL SEND_BYTE

118、</p><p>  MOV A,DISP_2</p><p>  ANL A,#0FH</p><p>  ADD A,#20H</p><p>  MOV R7,A</p><p>  LCALL SEND_BYTE </p><p>  MOV A,DISP_2<

119、/p><p>  CJNE A,#0AH,COUNT_BACK</p><p>  MOV DISP_2,#0</p><p>  MOV R7,#15H;顯示第三位</p><p>  LCALL SEND_BYTE</p><p>  MOV A,DISP_2</p><p>  AN

120、L A,#0FH</p><p>  ADD A,#20H</p><p>  MOV R7,A</p><p>  LCALL SEND_BYTE </p><p>  COUNT_BACK:</p><p><b>  POP ACC</b></p><p&g

121、t;<b>  RETI</b></p><p>  ;************************************************</p><p>  ;**********************DISP**********************</p><p><b>  DISP:</b>&l

122、t;/p><p>  MOV R7,#15H;顯示第一位</p><p>  LCALL SEND_BYTE</p><p>  MOV A,DISP_0</p><p>  ANL A,#0FH</p><p>  ADD A,#0</p><p>  MOV R7,A<

123、;/p><p>  LCALL SEND_BYTE</p><p>  MOV R7,#15H;顯示第二位</p><p>  LCALL SEND_BYTE</p><p>  MOV A,DISP_1</p><p>  ANL A,#0FH</p><p>  ADD A,#

124、10H</p><p>  MOV R7,A</p><p>  LCALL SEND_BYTE</p><p>  MOV R7,#15H;顯示第二位</p><p>  LCALL SEND_BYTE</p><p>  MOV A,DISP_2</p><p>  ANL

125、 A,#0FH</p><p>  ADD A,#20H</p><p>  MOV R7,A</p><p>  LCALL SEND_BYTE</p><p>  MOV R7,#15H;顯示第二位</p><p>  LCALL SEND_BYTE</p><p>  MOV

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論