紅外遙控賽車軟件算法設(shè)計(jì)畢業(yè)論文_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(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 引 言2</b></p><p>  1.1紅外遙控技術(shù)背景2</p><p>  2 總體設(shè)計(jì)方案4</p><p>  2.1 方案:紅外遙控控制小車4</p><p>  3 N

2、ECUpd6121G紅外遙控系統(tǒng)5</p><p>  3.1 NECUpd6121G5</p><p>  3.2 簡單發(fā)射電路5</p><p>  3.3 發(fā)射編碼及信號(hào)波形6</p><p>  4 AT89S52單片機(jī)11</p><p>  4.1 AT89S52單片機(jī)11</p>

3、<p>  5 L298N驅(qū)動(dòng)模塊16</p><p>  5.11 L298N驅(qū)動(dòng)模塊說明16</p><p>  5.2 L298芯片驅(qū)動(dòng)參數(shù)16</p><p>  5.3 功能簡圖16</p><p>  6 遙控賽車系統(tǒng)框圖及電路設(shè)計(jì)19</p><p>  6.1系統(tǒng)框圖及電路設(shè)計(jì)

4、19</p><p>  7紅外遙控賽車程序設(shè)計(jì)20</p><p>  7.1紅外信號(hào)解碼設(shè)計(jì)框圖20</p><p>  7.2 紅外接收軟件設(shè)計(jì)22</p><p><b>  結(jié) 束 語24</b></p><p><b>  參考文獻(xiàn)25</b></

5、p><p>  附錄一:電路原理圖26</p><p>  附錄二:賽車實(shí)物圖27</p><p>  附錄三:程序清單28</p><p>  紅外遙控賽車軟件算法設(shè)計(jì)</p><p>  摘要:通過對(duì)設(shè)計(jì)要求的認(rèn)真分析和研究,拿出了幾種可行方案,最終選定一個(gè)最佳方案。該方案是采用先進(jìn)的單片機(jī)技術(shù)實(shí)現(xiàn)遙控,采用模塊

6、化設(shè)計(jì),主要分為兩個(gè)模塊:紅外遙控模塊和L298電機(jī)驅(qū)動(dòng)模塊。紅外發(fā)射模塊中通過Upd6121G紅外遙控器發(fā)射管對(duì)單片機(jī)發(fā)射信號(hào),紅外接收模塊中的單片機(jī)受紅外接收管接收的信號(hào)控制。文章詳細(xì)的討論了實(shí)現(xiàn)上述紅外遙控過程其工作原理和軟件設(shè)計(jì)。</p><p>  關(guān)鍵詞:遙控器 紅外發(fā)射 紅外接收 單片機(jī)</p><p><b>  1 引 言</b></p>

7、;<p>  1.1紅外遙控技術(shù)背景</p><p>  紅外遙控是一種無線、非接觸控制技術(shù),具有抗干擾能力強(qiáng),信息傳輸可靠,功耗低,成本低,易實(shí)現(xiàn)等顯著優(yōu)點(diǎn),被諸多電子設(shè)備特別是家用電器廣泛采用,并越來越多的應(yīng)用到計(jì)算機(jī)系統(tǒng)中。</p><p>  60年代初,一些發(fā)達(dá)國家開始研究民用產(chǎn)品的遙控技術(shù),單由于受當(dāng)時(shí)技術(shù)條件限制,遙控技術(shù)發(fā)展很緩慢,70年代末,隨著大規(guī)模集成電

8、路和計(jì)算機(jī)技術(shù)的發(fā)展,遙控技術(shù)得到快速發(fā)展。在遙控方式上大體經(jīng)理了從有線到無限的超聲波,從振動(dòng)子到紅外線,再到使用總線的微機(jī)紅外遙控這樣幾個(gè)階段。無論采用何種方式,準(zhǔn)確無誤傳輸新信號(hào),最終達(dá)到滿意的控制效果是非常重要的。最初的無線遙控裝置采用的是電磁波傳輸信號(hào),由于電磁波容易產(chǎn)生干擾,也易受干擾,因此逐漸采用超聲波和紅外線媒介來傳輸信號(hào)。與紅外線相比,超聲傳感器頻帶窄,所能攜帶的信息量少,易受干擾而引起誤動(dòng)作。較為理想的是光控方式,逐漸

9、采用紅外線的遙控方式取代了超聲波遙控方式,出現(xiàn)了紅外線多功能遙控器,成為當(dāng)今時(shí)代的主流。</p><p>  由于紅外線在頻譜上居于可見光之外,所以抗干擾性強(qiáng),具有光波的直線傳播特性,不易產(chǎn)生相互間的干擾,是很好的信息傳輸媒體。信息可以直接對(duì)紅外光進(jìn)行調(diào)制傳輸,例如,信息直接調(diào)制紅外光的強(qiáng)弱進(jìn)行傳輸,也可以用紅外線產(chǎn)生一定頻率的載波,再用信息對(duì)載波進(jìn)調(diào)制,接收端再去掉載波,取到信息。從信息的可靠傳輸說,后一種方法

10、更好,這就是我們今天看到的大多數(shù)紅外遙控所采用的方法。由于紅外線的波長遠(yuǎn)小于無線電波的波長,因此在采用紅外遙控方式時(shí),不會(huì)干擾其他電器的正常工作,也不會(huì)影響臨近的無線電設(shè)備。</p><p>  紅外遙控的發(fā)射電路是采用紅外發(fā)光二極管來發(fā)出經(jīng)過調(diào)制的紅外光波;紅外接收電路由紅外接收二極管、三極管或硅光電池組成,它們將紅外發(fā)射器發(fā)射的紅外光轉(zhuǎn)換為相應(yīng)的電信號(hào),再送后置放大器。</p><p>

11、;<b>  圖1 紅外發(fā)射框圖</b></p><p>  發(fā)射器一般由指令鍵(或操作桿)、指令編碼系統(tǒng)、調(diào)制電路、驅(qū)動(dòng)電路、發(fā)射電路等幾部分組成。當(dāng)按下指令鍵或推動(dòng)操作桿時(shí),指令編碼電路產(chǎn)生所需的指令編碼信號(hào),指令編碼信號(hào)對(duì)載波進(jìn)行調(diào)制,再由驅(qū)動(dòng)電路進(jìn)行功率放大后由發(fā)射電路向外發(fā)射經(jīng)調(diào)制定的指令編碼信號(hào)。</p><p><b>  圖2紅外接收框圖&l

12、t;/b></p><p>  接收器一般由接收電路、放大電路、調(diào)制電路、指令譯碼電路、驅(qū)動(dòng)電路、執(zhí)行電路(機(jī)構(gòu))等幾部分組成。接收電路將發(fā)射器發(fā)出的已調(diào)制的編碼指令信號(hào)接收下來,并進(jìn)行放大后送解調(diào)電路,解調(diào)電路將已調(diào)制的指令編碼信號(hào)解調(diào)出來,即還原為編碼信號(hào)。指令譯碼器將編碼指令信號(hào)進(jìn)行譯碼,最后由驅(qū)動(dòng)電路來驅(qū)動(dòng)執(zhí)行電路實(shí)現(xiàn)各種指令的操作控制。 1.2單片機(jī)</p><p>

13、  單片微型計(jì)算機(jī)簡稱單片機(jī),是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的縮寫MCU表示單片機(jī),它最早是被用在工業(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來。最早的設(shè)計(jì)理念是通過將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對(duì)體積要求嚴(yán)格的控制設(shè)備當(dāng)中。</p><p>  以單片機(jī)為核心的控制系統(tǒng),因?yàn)槠鋵?shí)時(shí)控制功能強(qiáng),可靠性高,

14、實(shí)用性強(qiáng),應(yīng)用范圍廣等優(yōu)點(diǎn),得到了極為廣泛的應(yīng)用。隨著人們生活水平的不斷提高,單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中紅外遙控就是一個(gè)典型的例子,但人們對(duì)它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。因此了解單片機(jī)知識(shí),掌握單片機(jī)的應(yīng)用技術(shù)具有重大的意義。它的理論性和實(shí)踐性都很強(qiáng),我們?cè)诶碚撜n學(xué)習(xí)中主要學(xué)習(xí)單片機(jī)的基本

15、構(gòu)造,各部分的工作原理以及指令系統(tǒng),然而,光是理論的學(xué)習(xí)是遠(yuǎn)遠(yuǎn)不夠的,最重要的是把理論和實(shí)踐相結(jié)合。</p><p>  所以此次實(shí)習(xí),通過設(shè)計(jì)一個(gè)基于AT89S52單片機(jī)的遙控器設(shè)計(jì),以增進(jìn)對(duì)單片機(jī)電路的感性認(rèn)識(shí),加深對(duì)理論方面的理解和鞏固,了解和掌握軟硬件設(shè)計(jì)過程、方法及實(shí)現(xiàn),增強(qiáng)自己的動(dòng)手和實(shí)踐能力,為以后在工作和學(xué)習(xí)中,設(shè)計(jì)和實(shí)現(xiàn)應(yīng)用系統(tǒng)打下良好基礎(chǔ)。</p><p><b&

16、gt;  2 總體設(shè)計(jì)方案</b></p><p>  根據(jù)任務(wù)書的要求,利用無線發(fā)射無線接收遠(yuǎn)程控制單片機(jī)從而控制小車運(yùn)行,可以擬定以下方案。</p><p>  2.1 方案:紅外遙控控制小車</p><p>  在不需要多電路的應(yīng)用場合,可以使用由常規(guī)集成電路組成的單通道紅外遙控電路。這種遙控電路不需要使用昂貴的專用編譯碼器,因此成本低。以NEC的

17、Upd6121G遙控器為例小巧便攜成本低廉且功耗小,一顆銀鋅紐扣電池可使用半年之久。故實(shí)用性強(qiáng)。</p><p><b>  紅外發(fā)射部分</b></p><p><b>  圖3紅外發(fā)射框圖</b></p><p>  可以直接產(chǎn)生一個(gè)控制功能的震蕩電路頻率,再通過紅外發(fā)光二極管發(fā)射出去。由SM0038紅外接收芯片進(jìn)行解

18、碼輸出TTL電平信號(hào),單片機(jī)接收到紅外指令根據(jù)程序控制L298N電機(jī)驅(qū)動(dòng)模塊進(jìn)而控制小車運(yùn)行。</p><p><b>  紅外接收部分</b></p><p><b>  圖4 紅外接收框圖</b></p><p>  3 NECUpd6121G紅外遙控系統(tǒng)</p><p>  3.1 NECUp

19、d6121G</p><p>  日本電氣股份有限公司(日文:日本電気株式會(huì)社,英文:NEC Corporation,Nippon Electric Company, Limited的簡稱)簡稱日本電氣或日電或NEC,是一家跨國信息技術(shù)公司,總部位于日本東京港區(qū)。NEC為商業(yè)企業(yè)、通信服務(wù)以及政府提供信息技術(shù)(IT)和網(wǎng)絡(luò)產(chǎn)品。它的經(jīng)營范圍主要分成三個(gè)部分:IT解決方案、網(wǎng)絡(luò)解決方案和電子設(shè)備。</p>

20、;<p>  采用Upd6121G編碼協(xié)議的紅外線遙控是目前使用最廣泛的一種通信和遙控手段。由于紅外線遙控裝置具有體積小、功耗低、功能強(qiáng)、成本低等特點(diǎn),因而,繼彩電、錄像機(jī)之后,在錄音機(jī)、音響設(shè)備、空凋機(jī)以及玩具等其它小型電器裝置上也紛紛采用紅外線遙控。工業(yè)設(shè)備中,在高壓、輻射、有毒氣體、粉塵等環(huán)境下,采用紅外線遙控不僅完全可靠而且能有效地隔離電氣干擾。</p><p>  通用紅外遙控系統(tǒng)由發(fā)射和

21、接收兩大部分組成,應(yīng)用編/解碼專用集成電路芯片來進(jìn)行控制操作,發(fā)射部分包括鍵盤矩陣、編碼調(diào)制、LED紅外發(fā)送器;接收部分包括光、電轉(zhuǎn)換放大器、解調(diào)、解碼電路,如圖5所示。</p><p>  L 發(fā)射端 接收端 </p><p>  圖5 紅外遙控系統(tǒng)框圖</p><p>  3.2

22、 簡單發(fā)射電路</p><p>  紅外線屬于一種電磁射線,其特性等同于無線電或X射線。人眼可見的光波是380nm-780nm,發(fā)射波長為780nm-1mm的長射線稱為紅外線.盡管肉眼看不到這種光線,但利用紅外線發(fā)送和接收裝置卻可以發(fā)送和接收紅外線信號(hào),實(shí)施紅外線通訊。利用紅外線通訊無需連線,只需將兩設(shè)備的紅外線裝置對(duì)正即可傳輸數(shù)據(jù)。紅外線通訊方向性很強(qiáng),適用于近距離的無線傳輸。完整的紅外遙控器電路主要由:集成發(fā)

23、射芯片、晶體振蕩器、紅外線發(fā)射管、推動(dòng)晶體三極管、導(dǎo)電橡膠等組成,如圖6所示。</p><p>  圖6 最簡單的紅外發(fā)射接收電路</p><p>  3.3 發(fā)射編碼及信號(hào)波形</p><p>  遙控發(fā)射器專用芯片很多,根據(jù)編碼格式可以分成兩大類,這里我們以運(yùn)用比較廣泛,解碼比較容易的一類來加以說明,現(xiàn)以日本NEC的uPD6121G組成發(fā)射電路為例說明編碼原理。

24、當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:</p><p>  采用脈寬調(diào)制的串行碼,以脈寬為 0.565ms、間隔 0.56ms、周期為 1.125ms的組合表示二進(jìn)制的“0”;以脈寬為 0.565ms、間隔 1.685ms、周期為 2.25ms的組合表示二進(jìn)制的“1”,如圖7所示。</p><p>  圖7 遙控碼的0和1波形圖</p

25、><p>  上述“0”和“1”組成的 32 位二進(jìn)制碼經(jīng) 38kHz的載頻進(jìn)行二次調(diào)制以提高發(fā)射效率,達(dá)到降低電源功耗的目的。然后再通過紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射。</p><p>  UPD6121G產(chǎn)生的遙控編碼是連續(xù)的 32 位二進(jìn)制碼組,其中前 16 位為用戶識(shí)別碼,能區(qū)別不同的電器設(shè)備,防止不同機(jī)種遙控碼互相干擾。該芯片的用戶識(shí)別碼固定為十六進(jìn)制 01H;后 16 位為 8

26、 位操作碼(功能碼)及其反碼,如圖8所示。</p><p>  圖8 遙控信號(hào)發(fā)射編碼</p><p>  遙控器在按鍵按下后,周期性地發(fā)出同一種 32 位二進(jìn)制碼,周期約為 108ms。一組碼本身的持續(xù)時(shí)間隨它包含的二進(jìn)制“0”和“1”的個(gè)數(shù)不同而不同,大約在 58.5~76.5ms之間,圖9為發(fā)射波形圖。</p><p>  圖9 一幀完整波形圖</p&g

27、t;<p>  當(dāng)按鍵按下超過36ms,振蕩器使芯片激活,如圖06所示將發(fā)射一組108ms的編碼脈沖,這108ms發(fā)射代碼由一個(gè)起始碼(9ms),一個(gè)結(jié)果碼(4.5ms),低8位地址碼(9ms~18ms)高8位地址碼(9ms~18ms),8位數(shù)據(jù)碼(9ms~18ms)和這8位數(shù)據(jù)的反碼(9ms~18ms)組成。</p><p><b>  圖10 紅外編碼圖</b></p

28、><p>  如果鍵按下超過108ms仍未松開時(shí),如圖07所示每隔108ms輸出一幀9ms載波+2.25ms關(guān)斷+0.56ms載波的信號(hào),直至釋放接下來發(fā)射的代碼(連發(fā)代碼)代碼格式,這種連發(fā)代碼常用于電視遙控器長按連續(xù)增加音量等功能。</p><p>  圖11 長按按鍵的紅外波形圖</p><p>  注:代碼寬度算法: </p><p> 

29、 16 位地址碼的最短寬度:1.12×16=18ms 16 位地址碼的最長寬度:2.24ms×16=36ms易知 8 位數(shù)據(jù)代碼及其 8 位反代碼的寬度和不變:(1.12ms+2.24ms)×8=27ms ∴32 位代碼的寬度為(18ms+27ms)~(36ms+27ms) </p><p>  1. 解碼的關(guān)鍵是如何識(shí)別“0”和“1”,從位的定義我們可以發(fā)現(xiàn)“0”、“1”均以

30、 0.56ms 的低電平開始,不同的是高電平的寬度不同,“0”為 0.56ms,“1”為 1.68ms,所以必須根據(jù)高電平的寬度區(qū)別“0”和“1”。如果從 0.56ms 低電平過后,開始延時(shí),0.56ms 以后,若讀到的電平為低,說明該位為“0”,反之則為“1”,為了可靠起見,延時(shí)必須比 0.56ms 長些,但又不能超過 1.12ms,否則如果該位為“0”,讀到的已是下一位的高電平,因此?。?.12ms+0.56ms)/2=0.84ms

31、 最為可靠,一般取 0.84ms 左右均可。 </p><p>  2. 根據(jù)碼的格式,應(yīng)該等待 9ms 的起始碼和 4.5ms 的結(jié)果碼完成后才能讀碼。 </p><p>  3.4 紅外接收解碼系統(tǒng)</p><p>  紅外接收電路一體化的紅外接收裝置將遙控信號(hào)的接收、放大、檢波、整形集于一身,并輸出可以讓單片機(jī)識(shí)別的TTL 信號(hào),這樣大大簡化了接收電路的復(fù)雜程

32、度和電路的設(shè)計(jì)工作。在本系統(tǒng)中我們采用紅外一體化接收頭SM0038,外觀及紅外接收電路如圖08所示。SM0038 黑色環(huán)氧樹脂封裝,不受日光、熒光燈等光源干擾,內(nèi)附磁屏蔽,功耗低,靈敏度高。在用小功率發(fā)射管發(fā)射信號(hào)情況下,其接收距離可達(dá)35m。它能與TTL、COMS 電路兼容。SM0038 為直立側(cè)面收光型。三個(gè)管腳分別是地、+5 V 電源、解調(diào)信號(hào)輸出端。</p><p>  圖12 SM0038引腳圖和原理圖

33、</p><p>  SM0038接收紅外信號(hào)頻率為38 kHz,周期約26 μs,同時(shí)能對(duì)信號(hào)進(jìn)行放大、檢波、整形,得到TTL 電平的編碼信號(hào)?!TL電平信號(hào)被利用的最多是因?yàn)橥ǔ?shù)據(jù)表示采用二進(jìn)制規(guī)定,+5V等價(jià)于邏輯“1”,0V等價(jià)于邏輯“0”,這被稱做TTL(晶體管-晶體管邏輯電平)信號(hào)系統(tǒng),這是計(jì)算機(jī)處理器控制的設(shè)備內(nèi)部各部分之間通信的標(biāo)準(zhǔn)技術(shù)。經(jīng)過SM0038調(diào)解后的波形由OUT輸入單片機(jī)的P33口

34、,單片機(jī)識(shí)別后得到TTL 電平的編碼信號(hào),對(duì)其信號(hào)進(jìn)行解碼翻譯,以脈寬為 0.565ms、間隔 0.56ms、周期為 1.125ms的組合表示二進(jìn)制的“0”;以脈寬為 0.565ms、間隔 1.685ms、周期為 2.25ms的組合表示二進(jìn)制的“1”。這樣就得出了一連串的數(shù)據(jù),再根據(jù)編碼程序?qū)?shù)據(jù)賦予的含義,就可以完整的接收和翻譯出所要實(shí)現(xiàn)的功能,如圖13所示。</p><p><b>  a</

35、b></p><p><b>  b</b></p><p>  圖13 一幀SM0038調(diào)解后的波形</p><p>  4 AT89S52單片機(jī)</p><p>  4.1 AT89S52單片機(jī)</p><p>  本次設(shè)計(jì)所使用的單片機(jī)是Atmel公司的AT89S52芯片,AT89S

36、52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM

37、,32位I/O 口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。</p><p>  AT89S52

38、的引腳圖如圖14所示:</p><p>  圖14 AT89S52引腳圖</p><p>  AT89S52單片機(jī)引腳注釋:</p><p>  VCC : 電源 GND: 地</p><p>  P0 口:P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問外

39、部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在 flash編程時(shí),P0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。</p><p>  P1 口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用

40、時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。</p><p>  P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @D

41、PTR)時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。</p><p>  P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高

42、,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。</p><p>  RST: 復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2 個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計(jì)時(shí)完成后,RST 腳輸出96 個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DI

43、SRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。</p><p>  ALE/PROG:地址鎖存控制信號(hào)(ALE)是訪問外部程序存儲(chǔ)器時(shí),鎖存低8 位地址的輸出脈沖。在flash編程時(shí),此引腳(PROG)也用作編程輸入脈沖。</p><p>  在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲(chǔ)

44、器時(shí),ALE脈沖將會(huì)跳過。如果需要,通過將地址為8EH的SFR的第0位置“1”,ALE操作將無效。這一位置“1”,ALE 僅在執(zhí)行MOVX 或MOVC指令時(shí)有效。否則,ALE 將被微弱拉高。這個(gè)ALE 使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無效。</p><p>  PSEN:外部程序存儲(chǔ)器選通信號(hào)(PSEN)是外部程序存儲(chǔ)器選通信號(hào)。當(dāng) AT89S52從外部程序存儲(chǔ)器執(zhí)行外

45、部代碼時(shí),PSEN在每個(gè)機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。EA/VPP:訪問外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H 到FFFFH的外部程序存儲(chǔ)器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP電壓。</p><p>  XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。</p><p>

46、;  XTAL2:振蕩器反相放大器的輸出端。</p><p><b>  4.2 時(shí)鐘電路</b></p><p>  單片機(jī)的時(shí)鐘電路由振蕩電路和分頻電路組成,其振蕩電路由反相器以及并聯(lián)外接的石英晶體和電容組成,用于產(chǎn)生振蕩脈沖。分頻電路用于把振蕩脈沖分頻,以的到所需要的時(shí)鐘信號(hào)。</p><p><b>  圖15 晶振電路<

47、;/b></p><p>  振蕩電路如圖11所示:其輸入端為引腳XTAL1,輸出端為引腳XTAL2。通過這兩個(gè)引腳在芯片外并接石英晶體振蕩器和兩只電容,石英晶體為一感性原件,與電容構(gòu)成振蕩回路,為片內(nèi)放大器提供正反饋和振蕩的相移條件,從而構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。振蕩器的頻率主要取決于晶體的振蕩頻率, 一般晶體可在1.2~12 MHz之間任選, 電容C1、 C2可在5~30 pF之間選擇, 電容的大小對(duì)振

48、蕩頻率有微小的影響, 可起頻率微調(diào)作用。 </p><p>  振蕩脈沖經(jīng)二分頻后作為系統(tǒng)的時(shí)鐘信號(hào),時(shí)鐘信號(hào)經(jīng)過三分頻產(chǎn)生ALE信號(hào),ALE信號(hào)用于控制把P0口的低8位地址送入鎖存器鎖起來,以實(shí)現(xiàn)低地址和數(shù)據(jù)的分時(shí)傳送,ALE還可作為外部時(shí)鐘或外部脈沖使用。時(shí)鐘信號(hào)經(jīng)六分頻得到機(jī)器周期信號(hào)。</p><p><b>  4.3 中斷系統(tǒng)</b></p>

49、<p><b>  A 中斷的概念</b></p><p>  當(dāng)CPU與外設(shè)交換信息時(shí),由于外設(shè)的速度比較慢,若用查詢的方式,則CPU就要浪費(fèi)很多時(shí)間去等待外設(shè)。這樣就存在一個(gè)快速的CPU與慢速的外設(shè)之間的矛盾。為了解決這個(gè)問題,就發(fā)展了中斷的概念。</p><p>  CPU正在處理某一程序時(shí),發(fā)生了另一突發(fā)事件請(qǐng)求CPU迅速去處理(中斷發(fā)生);CPU

50、暫時(shí)停止當(dāng)前的工作,轉(zhuǎn)到需要處理的中斷源的服務(wù)程序的入口(中斷響應(yīng)),一般在入口處執(zhí)行一跳轉(zhuǎn)指令轉(zhuǎn)去處理中斷事件(中斷服務(wù));待CPU將中斷事件處理完畢后,再回到原來程序被中斷的地方繼續(xù)處理執(zhí)行程序(中斷返回),這一處理過程稱為中斷。</p><p>  51單片機(jī)的中斷系統(tǒng)提供5個(gè)中斷源:外部中斷0和外部中斷1,定時(shí)/計(jì)數(shù)器(T0)和(T1)的溢出中斷,串行接口的接收和發(fā)送中斷。本程序中只用到了外部中斷1。&l

51、t;/p><p><b>  B 中斷控制</b></p><p>  1 中斷允許寄存器IE(A8H)</p><p>  CPU對(duì)中斷系統(tǒng)所有中斷以及某個(gè)中斷源的開放和屏蔽是由中斷允許寄存器(IE)控制的。IE各位的定義如表1所示:</p><p>  表1中斷允許寄存器IE:</p><p>

52、  EA——中斷允許總控制位</p><p>  EA=0——中斷總禁止,禁止所有中斷</p><p>  EA=1——中斷總允許,總允許后中斷的禁止或允許由各中斷源的中斷允許控制位設(shè)置。</p><p>  EX0和EX1——外部中斷允許控制位</p><p>  EX0(EX1)=0——禁止外部中斷</p><p>

53、;  ET0和ET1——定時(shí)器/計(jì)數(shù)器中斷允許控制位</p><p>  ET0(ET1)=0——禁止定時(shí)器/計(jì)數(shù)器中斷</p><p>  ET0(ET1)=1——允許定時(shí)器/計(jì)數(shù)器中斷</p><p>  ES——串行中斷允許控制位</p><p>  ES=0——禁止串行中斷</p><p>  ES=1——允許

54、串行中斷</p><p>  2中斷優(yōu)先級(jí)控制寄存器(IP)</p><p>  各中斷的優(yōu)先級(jí)通過中斷優(yōu)先級(jí)控制寄存器IP來設(shè)定,其未定義及位地址如表2所示: </p><p>  表2中斷優(yōu)先級(jí)控制寄存器:</p><p>  PX0——外部中斷0優(yōu)先級(jí)設(shè)定位;</p><p>  P

55、T0——定時(shí)中斷0優(yōu)先級(jí)設(shè)定位;</p><p>  PX1——外部中斷1優(yōu)先級(jí)設(shè)定位;</p><p>  PT1——定時(shí)中斷1優(yōu)先級(jí)設(shè)定位; </p><p>  PS——串行中斷優(yōu)先級(jí)設(shè)定位。</p><p>  3定時(shí)器控制寄存器(TCON)</p><p>  該寄存器用于保存外部中斷請(qǐng)求以及定時(shí)器的計(jì)數(shù)溢出

56、。進(jìn)行字節(jié)操作時(shí),寄存器地址為88H。按位操作時(shí),各位的地址為88H~8FH。寄存器的內(nèi)容及位地址表示如表3所示:</p><p>  表3定時(shí)器控制寄存器:</p><p>  IE0和IE1——外中斷請(qǐng)求標(biāo)志位。當(dāng)CPU采樣到 INT0(或INT1)端出現(xiàn)有效中斷請(qǐng)求時(shí),IE0(IE1)位由硬件置“1”。 當(dāng)中斷響應(yīng)完成轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件把IE0(或IE1)清零。</p&

57、gt;<p>  TR0 和TR1——定時(shí)器運(yùn)行控制位:</p><p>  TR0 (TR1 )=0——定時(shí)器/計(jì)數(shù)器不工作</p><p>  TR0 (TR1 )=1——定時(shí)器/計(jì)數(shù)器開始工作</p><p>  TF0和TF1——計(jì)數(shù)溢出標(biāo)志位。當(dāng)計(jì)數(shù)器產(chǎn)生計(jì)數(shù)溢出時(shí),相應(yīng)的溢出標(biāo)位</p><p>  硬件置“1”。

58、并自動(dòng)產(chǎn)生定時(shí)中斷請(qǐng)求。</p><p>  5 L298N驅(qū)動(dòng)模塊</p><p>  5.11 L298N驅(qū)動(dòng)模塊說明</p><p>  L298是SGS公司的產(chǎn)品,比較常見的是15腳Multiwatt封裝的L298N,內(nèi)部同樣包含4通道邏輯驅(qū)動(dòng)電路??梢苑奖愕尿?qū)動(dòng)兩個(gè)直流電機(jī),可以直接驅(qū)動(dòng)兩路3-30V直流電機(jī),并提供了5V輸出接口,可以給5V單片機(jī)電路系統(tǒng)

59、供電,支持3.3VMCU控制,可以方便的控制直流電機(jī)速度和方向,也可以控制2相步進(jìn)電機(jī)如圖16所示。</p><p><b>  圖12</b></p><p>  圖16 L298控制電路</p><p>  5.2 L298芯片驅(qū)動(dòng)參數(shù)</p><p>  1.驅(qū)動(dòng)芯片:全新原裝L298N雙H橋驅(qū)動(dòng)芯片</p&

60、gt;<p>  2.驅(qū)動(dòng)部分端子供電范圍VMS:+5V~+30 V</p><p>  3.驅(qū)動(dòng)部分峰值電流Io:2 A</p><p>  4.邏輯部分端子供電范圍Vss:3.3-5.5 V</p><p>  5.邏輯部分工作電流范圍:0~47 mA</p><p>  6.控制信號(hào)輸入電壓范圍:高電平4.5-5.5V 低

61、電平0 V</p><p>  7.最大功耗:20 W</p><p>  8.存儲(chǔ)溫度:-25℃~+130℃</p><p>  9.驅(qū)動(dòng)板尺寸:55 mm*49mm*33mm</p><p>  10.驅(qū)動(dòng)板重量:46 g</p><p>  11.其他功能:控制方向指示燈、電源指示,電流檢測,邏輯部分板內(nèi)取電接口

62、。</p><p><b>  5.3 功能簡圖</b></p><p>  模塊提供4輸入或者6輸入單片機(jī)信號(hào),用跳線帽靈活選擇,支持PWM調(diào)速,支持3.3V單片機(jī),板載上拉電阻,完美解決51單片機(jī)IO口驅(qū)動(dòng)能力不夠的問題。</p><p>  模塊接線方法:IN1-IN4接單片機(jī), ENA,ENB可以用跳線帽選擇直接接高電平或者用單片機(jī)控制

63、,IN1-IN4提供4個(gè)跳線帽選擇是否接上10K的上拉電阻,OUT1-OUT2接直流電機(jī)1,OUT3-OUT4接電機(jī)2,VCC,GND分別接電池盒正負(fù)極,當(dāng)VCC電壓大于6V時(shí),+5為輸出,可以方便給5V的單片機(jī)供電,當(dāng)VCC電壓小于6V時(shí),需拔掉5V_EN跳線帽,外部給+5提供一個(gè)5V電壓保證298N芯片的正常工作。</p><p>  VCC:理論上可以最高輸入46V,但是理論上L298N芯片的最高功率只有2

64、5W,在50V最高工作電壓時(shí),電流不應(yīng)超過 0.5A,實(shí)際模塊上有7805芯片給單片機(jī)提供5V,7805的正向工作電壓不應(yīng)超過28V,所以模塊VCC理論最大工作電壓不應(yīng)超過28V,實(shí)際建議不應(yīng)該超過24V,在24V工作電壓下,單個(gè)電機(jī)的電流不應(yīng)超過1A,2個(gè)電機(jī)同時(shí)使用單個(gè)電機(jī)的電流不應(yīng)超過0.5 A;</p><p>  VCC輸入多少V,完全取決于電機(jī)的額定電壓,OUT的高電平電壓等于VCC,低電平電壓等于0

65、V,本公司的減速電機(jī)額定電壓一般6V,建議VCC用6V的電源,履帶車額定電壓為5-9V,建議7.2V供電。</p><p>  GND:接地,這個(gè)要注意的是,如果和單片機(jī)板以及其他系統(tǒng)連一起的時(shí)候,整個(gè)系統(tǒng)的GND要連一起,如果不連一起,電壓就沒有一個(gè)參考電平,無法進(jìn)行正??刂?。</p><p>  +5:5V輸出,模塊板載7805,可以方便給單片機(jī)以及其他需要5V的系統(tǒng)供電,前提是VCC

66、接大于6V電壓的時(shí)候,+5 端才有5V輸出,如果VCC小于6V,需要拔掉5V_EN跳線帽, +5端輸入一個(gè)3.3V-5V的電壓,因?yàn)長298N邏輯部分需要供電。</p><p>  IN1-IN4:接單片機(jī)IO口,高低電平分別對(duì)應(yīng)OUT1-OUT4的高低電平;</p><p>  OUT1-OUT4:OUT1、OUT2接電機(jī)1,OUT3、OUT4接電機(jī)2,OUT1和OUT2有電壓差即一個(gè)為

67、高一個(gè)為低電機(jī)才轉(zhuǎn);</p><p>  ENA:OUT1-OUT2的使能端,高電平有效,低電平禁止,跳線帽接上默認(rèn)ENA為高電平,一般不用管,如果需要PWM調(diào)速,就需要拔掉跳線帽,ENA接單片機(jī)IO口;</p><p>  ENB:OUT3-OUT4的使能端,高電平有效,跳線帽接上默認(rèn) ENA為高電平,一般不用管,如果需要PWM調(diào)速,就需要拔掉跳線帽,ENB接單片機(jī)IO口;</p&

68、gt;<p>  R1-R4:跳線帽接上,IN1-IN4端加了10K的上拉電阻,跳線帽拔掉,無上拉電阻;</p><p>  OUT1,OUT2和OUT3,OUT4之間可分別接電動(dòng)機(jī)5,7,10,12腳接輸入控制電平,控制電機(jī)的正反轉(zhuǎn)。EnA,EnB接控制使能端,控制電機(jī)的停轉(zhuǎn)。表1是L298N功能邏輯圖。由表1可知EnA為低電平時(shí),輸入電平對(duì)電機(jī)控制起作用,當(dāng)EnA為高電平,輸入電平為一高一低,電

69、機(jī)正或反轉(zhuǎn)。同為低電平電機(jī)停止,同為高電平電機(jī)剎停。下圖為L298N控制邏輯表</p><p>  表4 L298N控制邏輯表:</p><p>  6 遙控賽車系統(tǒng)框圖及電路設(shè)計(jì)</p><p>  6.1系統(tǒng)框圖及電路設(shè)計(jì)</p><p>  遙控接收單元由單片機(jī)最小系統(tǒng)和紅外接收器、控制對(duì)象電路等組成,接收控制器由一個(gè)AT89S52芯片

70、作為控制中心,與接收電路和各自的控制電路共同構(gòu)成。其中接收電路使用一體化紅外接收頭SM0038, SM0038工作頻率為38 kHz,能對(duì)收到遙控信號(hào)進(jìn)行放大、檢波、整形、解調(diào),得到TTL 電平的編碼信號(hào),再送給單片機(jī),經(jīng)單片機(jī)解碼并執(zhí)行相關(guān)控制程序</p><p>  圖18 紅外遙控賽車系統(tǒng)框圖</p><p>  圖19 遙控賽車控制電路圖</p><p> 

71、 7紅外遙控賽車程序設(shè)計(jì) </p><p>  7.1紅外信號(hào)解碼設(shè)計(jì)框圖</p><p>  程序開始是對(duì)單片機(jī)進(jìn)行初始化設(shè)置,循環(huán)掃描判斷是否有鍵按下,對(duì)SM0038所發(fā)出的TTL電平進(jìn)行解碼,遙控信號(hào)解碼程序流程圖如圖20所示。</p><p><b>  圖20 程序框圖</b></p><p>  7.

72、2 紅外接收軟件設(shè)計(jì)</p><p>  //==中斷讀取紅外鍵值程序=========================</p><p>  voidint0(void) interrupt 2</p><p><b>  {</b></p><p>  unsigned char j,k,N=0;</p>

73、<p>  IRdelay(15);</p><p>  if (IRIN==1) </p><p><b>  { </b></p><p><b>  return;</b></p><p><b>  } </b></p><p>

74、  //確認(rèn)IR信號(hào)出現(xiàn)</p><p>  while (!IRIN) //等IR變?yōu)楦唠娖?,跳過導(dǎo)9ms的前低電平信號(hào)。</p><p>  {IRdelay(1);}</p><p>  for (j=0;j<4;j++) //收集四組數(shù)據(jù)</p><p><b>  { </

75、b></p><p>  for (k=0;k<8;k++) //每組數(shù)據(jù)有8位</p><p><b>  {</b></p><p>  while (IRIN) //等 IR 變?yōu)榈碗娖?,跳過4.5ms的前導(dǎo)高電平信號(hào)。</p><p>  {IRdelay(1);}

76、</p><p>  while (!IRIN) //等 IR 變?yōu)楦唠娖?lt;/p><p>  {IRdelay(1);}</p><p>  while (IRIN) //計(jì)算IR高電平時(shí)長</p><p><b>  {</b></p><p>  IRd

77、elay(1);</p><p>  N++; </p><p>  if (N>=30)</p><p>  { return;} //0.14ms計(jì)數(shù)過長自動(dòng)離開。</p><p>  } //高電平計(jì)數(shù)完畢

78、 </p><p>  IRCOM[j]=IRCOM[j] >> 1; //數(shù)據(jù)最高位補(bǔ)“0”</p><p>  if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;} //數(shù)據(jù)最高位補(bǔ)“1”</p><p><b>  N=0;</b></p>

79、<p>  } </p><p><b>  }</b></p><p><b>  }</b></p><p><b>  結(jié) 束 語</b></p><p>  這是一個(gè)磨練意志的

80、過程。從課題的選擇開始,到硬件和軟件系統(tǒng)的設(shè)計(jì),這其中經(jīng)歷了很多困難,但是更重要的是在這個(gè)過程中我得到了很大的鍛煉。一方面通過S52單片機(jī)等一些器件的設(shè)計(jì)讓我學(xué)習(xí)和掌握了單片機(jī)技術(shù)的基礎(chǔ)知識(shí)和技術(shù)要點(diǎn),也使以前學(xué)的很多知識(shí)都得到了運(yùn)用;另一方面在用Protel 99 SE軟件畫電路圖,這個(gè)過程中讓我掌握了計(jì)算機(jī)輔助的設(shè)計(jì)技術(shù)。當(dāng)然,這是一個(gè)需要不斷的嘗試,不斷的校核,不斷的修改,最后完成一個(gè)合理的設(shè)計(jì)的過程。需要的是細(xì)心和耐心。在很大程

81、度上培養(yǎng)了我拼搏的工作精神。使我受益匪淺,更加明確了自己專業(yè)的方向。這次時(shí)間是短暫的,但這我想我們學(xué)到的應(yīng)該不僅僅是專業(yè)技術(shù)等表面上的東西,更深一層的是對(duì)人生的感悟,對(duì)未來的想法,年輕人的桀驁不馴在此時(shí)已經(jīng)不在有意義,取而代之的是理性的思維。我們應(yīng)該具備什么樣的能力,我們適合什么樣的人生,我們應(yīng)該在怎樣的崗位上實(shí)現(xiàn)自己的人生價(jià)值。</p><p>  實(shí)習(xí)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí)、發(fā)現(xiàn)、提出、分析和解決實(shí)際問題

82、,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程,通過課程設(shè)計(jì)我們能夠比較系統(tǒng)的了解理論知識(shí),把理論和實(shí)踐相結(jié)合,并且用到生活當(dāng)中。在做設(shè)計(jì)的過程中總會(huì)出現(xiàn)各種問題,在這種情況下我們都會(huì)努力尋求最佳路徑解決問題,無形間提高了我們的動(dòng)手,動(dòng)腦能力,并且同學(xué)之間還能相互探討問題,研究解決方案,增進(jìn)大家的團(tuán)隊(duì)意識(shí)。</p><p>  實(shí)習(xí)是短暫的,影響卻是長遠(yuǎn)的。通過實(shí)習(xí)讓我體會(huì)了團(tuán)隊(duì)合作的益處,在

83、團(tuán)隊(duì)中一起發(fā)現(xiàn)問題、討論問題,共同進(jìn)步、共同提高。硬件實(shí)習(xí)主要是我們理論知識(shí)的延伸,它的目的主要是要在設(shè)計(jì)中發(fā)現(xiàn)問題,并且自己要能找到解決問題的方案,形成一種獨(dú)立的意識(shí)。我們還能從設(shè)計(jì)中檢驗(yàn)我們所學(xué)的理論知識(shí)到底有多少,鞏固我們已經(jīng)學(xué)會(huì)的,不斷學(xué)習(xí)我們所遺漏的新知識(shí),把所學(xué)的知識(shí)學(xué)的更加扎實(shí)。</p><p>  在本文的撰寫過程中,導(dǎo)師夏雨果給予了悉心的指導(dǎo)和關(guān)心,使我克服了眾多困難終于完成了畢業(yè)設(shè)計(jì)的撰寫工作

84、。導(dǎo)師淵博的知識(shí)、嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度及敬業(yè)精神,給我留下了深刻的印象,并將在我今后的人生道路上產(chǎn)生深遠(yuǎn)的影響,在此論文完成之際,謹(jǐn)向?qū)熤乱猿绺叩木匆夂椭孕牡母兄x!再一次感謝所有關(guān)心我、幫助我的人!</p><p><b>  參考文獻(xiàn)</b></p><p>  【1】 呂國泰,白朋友主編。電子技術(shù)(第3版)。高等教育出版社出版社。2010年1月。</p>

85、;<p>  【2】 杜剛主編,王啟寧、戎華洪、張東霞等編著。電路設(shè)計(jì)與制板——Protel99se應(yīng)用教程,清華大學(xué)出版社,2009年6月。</p><p>  【3】 賴萬欽,嚴(yán)桂蘭編著。C語言程序設(shè)計(jì)基礎(chǔ)。夏門大學(xué)出版社,2006年7月。</p><p>  【4】 李春彪編著。電路電工基礎(chǔ)與實(shí)訓(xùn)(第2版)。北京大學(xué)出版社,2008.8月。</p>&

86、lt;p>  【5】 單承贛,單玉峰,姚磊等編著。射頻識(shí)別(RFID)原理與應(yīng)用。電子工業(yè)出版社,2008.3月。</p><p>  【6】 ATMEL公司AT89S52的技術(shù)手冊(cè)。</p><p><b>  附錄一:電路原理圖</b></p><p>  圖21 遙控賽車控制電路圖</p><p><b

87、>  附錄二:賽車實(shí)物圖</b></p><p>  圖22 紅外遙控賽車作品</p><p><b>  附錄三:程序清單</b></p><p>  #include<reg51.h></p><p>  #definec(x)(x*110592/120000)</p>

88、<p>  unsignedcharIr_Buf[4];</p><p>  sbit IRIN = P3^3; </p><p>  unsigned char IRCOM[7];</p><p>  void IRdelay(unsigned char x); </p><p>  sbitmotor=P2^0;&l

89、t;/p><p>  sbitzheng=P2^1 ;</p><p>  sbitfan=P2^2;</p><p>  sbitleft=P2^3;</p><p>  sbitright=P2^4;</p><p>  voiddelay1ms(int);</p><p>  voi

90、dinc();</p><p>  voiddec();</p><p>  voidgo();</p><p>  voidback();</p><p>  voidturn_lef();</p><p>  voidturn_rig();</p><p>  voidstop

91、();</p><p>  charon=0;</p><p>  chara,b,c,d;</p><p>  //==主程序===================================</p><p><b>  main()</b></p><p><b>  {&l

92、t;/b></p><p><b>  IE=0x84;</b></p><p>  TCON=0x01;</p><p><b>  motor=0;</b></p><p><b>  while(1) </b></p><p><b&g

93、t;  {</b></p><p>  switch(keys)</p><p><b>  {</b></p><p>  case 0x08:go();break;//左轉(zhuǎn)</p><p>  case 0x5A:back();break;//右轉(zhuǎn)</p><p>  case

94、 0x52:turn_lef();break;//后退</p><p>  case 0x18:turn_rig();break;//前進(jìn)</p><p>  case 0x15:inc();break;</p><p>  case 0x07:dec();break;</p><p>  case 0x1C:stop();brea

95、k;</p><p>  default:break;</p><p><b>  }</b></p><p><b>  motor=0;</b></p><p>  delay1ms(100-on);</p><p><b>  motor=1;</b&

96、gt;</p><p>  delay1ms(on);</p><p><b>  }</b></p><p><b>  } </b></p><p>  //==中斷讀取紅外鍵值程序=========================</p><p>  voidint

97、0(void) interrupt 2</p><p><b>  {</b></p><p>  unsigned char j,k,N=0;</p><p>  IRdelay(15);</p><p>  if (IRIN==1) // 1為高說明沒有接收到nec紅外信號(hào),等待</p><

98、p><b>  { </b></p><p><b>  return;</b></p><p><b>  } </b></p><p>  //確認(rèn)IR信號(hào)出現(xiàn)</p><p>  while (!IRIN) //等IR變?yōu)楦唠娖?,跳過9ms的

99、前導(dǎo)低電平信號(hào)。</p><p>  {IRdelay(1);}</p><p>  for (j=0;j<4;j++) //收集四組數(shù)據(jù)</p><p><b>  { </b></p><p>  for (k=0;k<8;k++) //每組數(shù)據(jù)有8位</p>

100、<p><b>  {</b></p><p>  while (IRIN) //等 IR 變?yōu)榈碗娖剑^4.5ms的前導(dǎo)高電平信號(hào)。</p><p>  {IRdelay(1);}</p><p>  while (!IRIN) //等 IR 變?yōu)楦唠娖?lt;/p><p&g

101、t;  {IRdelay(1);}</p><p>  while (IRIN) //計(jì)算IR高電平時(shí)長</p><p><b>  {</b></p><p>  IRdelay(1);</p><p>  N++; </p><p>  if (N>

102、;=30)</p><p>  { return;} //0.14ms計(jì)數(shù)過長自動(dòng)離開。</p><p>  } //高電平計(jì)數(shù)完畢 </p><p>  IRCOM[j]=IRCOM[j] >> 1; //數(shù)據(jù)

103、最高位補(bǔ)“0”</p><p>  if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;} //數(shù)據(jù)最高位補(bǔ)“1”</p><p><b>  N=0;</b></p><p>  }//end for k</p><p>  }//end for j</p><p&g

104、t;<b>  }</b></p><p>  //==0.14ms延時(shí)===============================</p><p>  void IRdelay(unsigned char x) //x*0.14MS</p><p><b>  {</b></p><p>

105、  unsigned char i;</p><p>  while(x--)</p><p><b>  {</b></p><p>  for (i = 0; i<13; i++) {}</p><p><b>  }</b></p><p><b>  

106、}</b></p><p>  //==加速程序=================================</p><p>  voidinc()</p><p><b>  {</b></p><p>  if(on!=100)on+=10;</p><p><b&

107、gt;  keys=0;</b></p><p><b>  }</b></p><p>  //==延遲程序==================================</p><p>  voiddelay1ms(intx)</p><p>  {inti,j;</p>&l

108、t;p>  for(i=0;i<x;i++)</p><p>  for(j=0;j<120;j++);</p><p><b>  }</b></p><p>  //==方向向前==================================</p><p><b>  voidg

109、o()</b></p><p><b>  {</b></p><p><b>  zheng=1;</b></p><p><b>  fan=0;</b></p><p><b>  left=1;</b></p><p

110、><b>  right=0;</b></p><p><b>  }</b></p><p>  //==方向向后==================================</p><p>  voidback()</p><p><b>  {</b>&l

111、t;/p><p><b>  zheng=0;</b></p><p><b>  fan=1;</b></p><p><b>  left=0;</b></p><p><b>  right=1;</b></p><p><

112、b>  }</b></p><p>  //==左轉(zhuǎn)======================================</p><p>  voidturn_lef()</p><p><b>  {</b></p><p><b>  zheng=0;</b><

113、/p><p><b>  fan=1;</b></p><p><b>  left=1;</b></p><p><b>  right=0;</b></p><p><b>  }</b></p><p>  //==右轉(zhuǎn)=====

114、=================================</p><p>  voidturn_rig()</p><p><b>  {</b></p><p><b>  zheng=1;</b></p><p><b>  fan=0;</b></p&

115、gt;<p><b>  left=0;</b></p><p><b>  right=1;</b></p><p><b>  }</b></p><p>  //==停止程序==================================</p><p>

116、;  voidstop()</p><p><b>  {</b></p><p><b>  zheng=1;</b></p><p><b>  fan=1;</b></p><p><b>  left=1;</b></p><

溫馨提示

  • 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)論