版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 基于單片機(jī)的智能小車控制</p><p> 專 業(yè): 測(cè)控技術(shù)與儀器 </p><p> 姓 名: 咸蛋小超人 </p><p><b> 2013年 6 月</b></p><p> 基于單片機(jī)的智能小車控制</p>
2、<p> 摘要:智能化作為現(xiàn)代電子產(chǎn)品的新趨勢(shì),是今后的電子產(chǎn)業(yè)的發(fā)展方向。智能化設(shè)計(jì)的電子產(chǎn)品可以按照預(yù)先設(shè)定的模式在一個(gè)環(huán)境里自動(dòng)運(yùn)作,不需要人為的管理,可應(yīng)用于科學(xué)勘探、環(huán)境監(jiān)測(cè)、智能家居等方面?;趩纹瑱C(jī)的智能小車控制就是其中的一個(gè)體現(xiàn)。本設(shè)計(jì)實(shí)現(xiàn)了一種基于51單片機(jī)的自動(dòng)避障智能模型車系統(tǒng),通過(guò)紅外傳感器采集路況信息,通過(guò)對(duì)檢測(cè)信息的分析,自動(dòng)控制轉(zhuǎn)向電機(jī)轉(zhuǎn)向,改變行駛路徑,繞過(guò)障礙物,從而實(shí)現(xiàn)車穩(wěn)定避障。<
3、/p><p> 本課題設(shè)計(jì)的智能小車,具有自動(dòng)避障功能,超聲波測(cè)距報(bào)警,無(wú)線電遙控等功能。</p><p> 關(guān)鍵詞:智能車;51單片機(jī);避障;紅外線</p><p> Smart car based on SCM control</p><p> Abstract:As a new trend of modern electronic
4、products, intelligent is the developmental direction of electronic industry after then. Electronic products, which are intelligently designed, can automatically operate following the mode that is pre-set. Without the man
5、agement of human beings, it can be used for scientific exploring, environmental monitoring, intelligent home furnishing, etc. One of the embodiments is the intelligent control car which is based on single chip microcompu
6、ter. In the des</p><p> In this paper, a car with the ability of intelligent judgment has been designed and made. It functions as the device which can dodge obstacles automatically, alarm with ultrasonic di
7、stance examination, and remote control by radio.</p><p> Key words: Smart Cart;Single-chip 51;Obstacle Avoidance;Infrared</p><p><b> 目 錄</b></p><p><b> 序 言3&l
8、t;/b></p><p> 第1章 總體設(shè)計(jì)方案4</p><p> 1.1課題任務(wù)分析4</p><p> 1.2 方案論證4</p><p> 1.2.1小車遙控部分5</p><p> 1.2.2小車驅(qū)動(dòng)部分6</p><p> 第2章 系統(tǒng)硬件構(gòu)成7<
9、;/p><p> 2.1系統(tǒng)設(shè)計(jì)原理7</p><p> 2.2主要元器件簡(jiǎn)介7</p><p> 2.2.1 STC89C52RC簡(jiǎn)介7</p><p> 2.2.2 NRF24L01無(wú)線收發(fā)芯片簡(jiǎn)介8</p><p> 2.2.3 L298N芯片直流電機(jī)驅(qū)動(dòng)模塊9</p><
10、;p> 2.2.4 紅外避障模塊9</p><p> 2.2.5 HC-SR04超聲波測(cè)距模塊11</p><p> 2.2.6 蜂鳴器驅(qū)動(dòng)電路13</p><p> 2.2.7 液晶顯示電路13</p><p> 2.2.8遙控部分獨(dú)立按鍵電路14</p><p> 第3章 軟件的設(shè)計(jì)與說(shuō)
11、明15</p><p> 3.1軟件設(shè)計(jì)15</p><p> 3.2軟件的說(shuō)明16</p><p> 3.2.1 遙控部分主程序流程16</p><p> 3.2.2 24L01子程序流程圖17</p><p> 3.2.3 小車部分主程序流程圖18</p><p>
12、第4章 調(diào)試與總結(jié)20</p><p> 4.1硬件部分20</p><p> 4.1.1硬件的焊接20</p><p> 4.1.2 24L01無(wú)線電模塊20</p><p> 4.1.3 外接電源模塊20</p><p> 4.2 軟件部分21</p><p> 4.
13、2.1 超聲波模塊21</p><p> 4.3 小車聯(lián)調(diào)21</p><p> 4.4 調(diào)試的總結(jié)23</p><p><b> 參考文獻(xiàn)24</b></p><p><b> 致 謝26</b></p><p><b> 附錄27</
14、b></p><p> 附件1 L298N電機(jī)驅(qū)動(dòng)模塊27</p><p> 附件2 小車側(cè)視圖28</p><p> 附件3 小車俯視圖29</p><p> 附件4 小車的遙控部分30</p><p> 附件5 小車最終硬件圖31</p><p> 附件6 程序
15、清單32</p><p> 1.遙控部分程序32</p><p> 2.小車部分程序41</p><p> 附件7 元器件清單50</p><p> 附件8 英文資料及中文翻譯51</p><p><b> 序 言</b></p><p> 隨著我國(guó)科
16、學(xué)技術(shù)的進(jìn)步,智能化和自動(dòng)化技術(shù)越來(lái)越普及,各種高科技也廣泛應(yīng)用于智能小車和機(jī)器人玩具制造領(lǐng)域,使智能機(jī)器人越來(lái)越多樣化。智能小車是一個(gè)多種高新技術(shù)的集成體,它融合了機(jī)械、電子、傳感器、計(jì)算機(jī)硬件、軟件、人工智能等許多學(xué)科的知識(shí),涉及到當(dāng)今許多前沿領(lǐng)域的技術(shù)[1]。而智能電動(dòng)車正是智能機(jī)器人的一種,具有不可估量的實(shí)際意義。智能車輛是一個(gè)運(yùn)用計(jì)算機(jī)、傳感、信息、通信、導(dǎo)航、人工智能及自動(dòng)控制等技術(shù)來(lái)實(shí)現(xiàn)環(huán)境感知、規(guī)劃決策和自動(dòng)行駛為一體的
17、高新技術(shù)綜合體。它在軍事、民用和科學(xué)研究等方面已獲得了應(yīng)用,對(duì)解決道路交通安全提供了一種新的途徑。隨著汽車工業(yè)的迅速發(fā)展,關(guān)于汽車的研究也就越來(lái)越受人關(guān)注。全國(guó)電子大賽和省內(nèi)電子大賽幾乎每次都有智能小車這方面的題目,全國(guó)各高校也都很重視該題目的研究,許多國(guó)家已經(jīng)把電子設(shè)計(jì)比賽作為創(chuàng)新教育的戰(zhàn)略性手段。電子設(shè)計(jì)涉及到多個(gè)學(xué)科,機(jī)械電子、傳感器技術(shù)、自動(dòng)控制技術(shù)、人工智能控制、計(jì)算機(jī)與通信技術(shù)等等,是眾多領(lǐng)域的高科技[2]。電子設(shè)計(jì)技術(shù),它
18、是一個(gè)國(guó)家高科技實(shí)例的一個(gè)重要標(biāo)準(zhǔn),可見其研究意義很大。</p><p> 第1章 總體設(shè)計(jì)方案</p><p><b> 1.1課題任務(wù)分析</b></p><p> 當(dāng)前的電動(dòng)小汽車基本上采取的是基于純硬件電路的一種開環(huán)控制方法, 或者是直線行使, 或者是在遙控下作出前進(jìn)、后退、轉(zhuǎn)彎、停車等基本功能。但是這不能滿足某些特殊場(chǎng)合下的要求
19、?;诖耍疚脑O(shè)計(jì)了智能小車控制系統(tǒng)。</p><p> 智能小車是一個(gè)運(yùn)用傳感器、單片機(jī)、信號(hào)處理、電機(jī)驅(qū)動(dòng)及自動(dòng)控制等技術(shù)來(lái)實(shí)現(xiàn)環(huán)境感和自動(dòng)行駛為一體的高新技術(shù)綜合體,它在軍事、民用和科學(xué)研究等方面已獲得了應(yīng)用。</p><p> 通過(guò)各種選題之后,我們發(fā)現(xiàn)制作智能小車非常有意思,它喚起我們對(duì)玩具的革新思想,智能小車制作的興趣。自己遇到過(guò)的汽車的功能是怎樣的,想通過(guò)自己的手創(chuàng)作出屬
20、于自己的智能汽車。也夾雜一種童年時(shí)對(duì)玩具智能化的假想。所以我選定制作單片機(jī)智能小車。</p><p> 通過(guò)這次設(shè)計(jì),掌握51單片機(jī)的原理,了解簡(jiǎn)單傳感器組成原理,初步掌握傳感器的調(diào)整及測(cè)試方法,提高動(dòng)手能力和排除故障的能力。同時(shí)通過(guò)本課題設(shè)計(jì)與裝配、調(diào)試,提高自己的動(dòng)手能力,鞏固已學(xué)的理論知識(shí),建立單片機(jī)理論和實(shí)踐的結(jié)合,了解傳感器各單元電路之間的關(guān)系及相互影響,從而能正確設(shè)計(jì)、計(jì)算定時(shí)計(jì)數(shù)的各個(gè)單元電路。初
21、步掌握傳感器的調(diào)整及測(cè)試方法。提高動(dòng)手能力和排除故障的能力。</p><p> 本設(shè)計(jì)采用直流減速電機(jī),電機(jī)專用驅(qū)動(dòng)芯片L298N進(jìn)行電機(jī)驅(qū)動(dòng)控制,主控芯片為STC89C52,測(cè)距部分采用超聲波模塊,控制器采用24L01無(wú)線電通信模塊,自動(dòng)避障部分采用紅外收發(fā)模塊。</p><p> 本次設(shè)計(jì)雖然只是一個(gè)演示模型,但是具有充分的科學(xué)性和實(shí)用性。首先我們根據(jù)交通路面的復(fù)雜情況,按照適當(dāng)?shù)?/p>
22、比例制作出一個(gè)路況模型,包括彎道、直道以及路面上設(shè)置的障礙物等。在彎、直道上,小車沿著預(yù)定軌道自由行使,當(dāng)小車遇到障礙物時(shí),脈沖調(diào)制的紅外線傳感器將檢測(cè)到的信號(hào)發(fā)送給單片機(jī),單片機(jī)根據(jù)程序發(fā)出相應(yīng)的控制信號(hào)控制小車自動(dòng)避開障礙物。由無(wú)線模塊控制小車進(jìn)行倒車、前進(jìn)、左轉(zhuǎn)、右轉(zhuǎn)等動(dòng)作。</p><p><b> 1.2 方案論證</b></p><p> 1.2.1小
23、車遙控部分</p><p> 方案一:小車的無(wú)線通信模塊采用紅外遙控,紅外收發(fā)遙控是目前大部份遙控小車采用的遙控手段,紅外遙控具有代碼簡(jiǎn)單,操作性強(qiáng)的特點(diǎn)。如圖1-1為紅外遙控模塊實(shí)物圖。</p><p> 圖1-1 紅外遙控模塊實(shí)物圖</p><p> 方案二:小車的通信模塊采用無(wú)線電NRF24L01模塊,NRF24L01是一款工作在2.4~2.5GHz,世
24、界通用ISM頻段的單片無(wú)線收發(fā)器芯片。無(wú)線收發(fā)器包括:頻率發(fā)生器、增強(qiáng)型SchockburstTM模式控制器、功率放大器、晶體振蕩器、調(diào)制器、解調(diào)器。輸出功率、頻道選擇和協(xié)議的設(shè)置可以通過(guò)SPI接口進(jìn)行設(shè)置。如1-2為NRF24L01無(wú)線模塊實(shí)物圖。</p><p> 圖1-2 NRF24L01無(wú)線模塊實(shí)物圖</p><p> 方案論證:方案一中的紅外遙控模塊的信號(hào)傳送距離有限,并且發(fā)
25、送和接收的紅外信號(hào)容易受到干擾。NRF20L01發(fā)射頻率高,所受到的干擾影響較小,無(wú)線通信的距離比紅外的要長(zhǎng)許多。小車的遙控是小車的最主要的部分之一,所以選擇NRF24L01無(wú)線通信模塊,故選擇方案一。</p><p> 1.2.2小車驅(qū)動(dòng)部分</p><p> 方案一:小車的電機(jī)驅(qū)動(dòng)部分采用自己搭建的9012三極管電路來(lái)實(shí)行小車的驅(qū)動(dòng),9012三極管電路具有電路簡(jiǎn)單,操作方便的等特點(diǎn)
26、。</p><p> 方案二:小車的電機(jī)驅(qū)動(dòng)部分采用L298N芯片直流電機(jī)驅(qū)動(dòng)模塊,該模塊具有較大的驅(qū)動(dòng)帶載能力,驅(qū)動(dòng)部分端子供電范圍Vs:+5V~+35V,并且另外自帶了5V、3V的輸出端口。</p><p> 方案論證:本設(shè)計(jì)為4輪驅(qū)動(dòng)的小車,對(duì)于小車驅(qū)動(dòng)部分要求能夠有較大的帯載能力,并且在小車的實(shí)際設(shè)計(jì)過(guò)程中,需要不同的輸出電壓來(lái)提供給小車的各個(gè)模塊。因此綜上所述采用方案二,小車
27、的電機(jī)驅(qū)動(dòng)部分使用L298N芯片直流電機(jī)驅(qū)動(dòng)模塊。</p><p> 第2章 系統(tǒng)硬件構(gòu)成</p><p><b> 2.1系統(tǒng)設(shè)計(jì)原理</b></p><p> 本設(shè)計(jì)主要分為兩部分:遙控部分和小車部分。遙控部分主要由電源電路,單片機(jī)最小系統(tǒng),無(wú)線電模塊組成,遙控部分的系統(tǒng)框圖如圖2-1所示。</p><p>
28、 圖2-1 遙控系統(tǒng)框圖</p><p> 小車部分由電源電路,單片機(jī)最小系統(tǒng),顯示電路,無(wú)線電木塊,報(bào)警電路,超聲波電路等電路模塊組成,小車部分的系統(tǒng)框圖如圖2-2所示。</p><p> 圖2-2 小車的系統(tǒng)框圖</p><p> 2.2主要元器件簡(jiǎn)介</p><p> 2.2.1 STC89C52RC簡(jiǎn)介 </p>
29、<p> 常用的單片機(jī)有很多種:Intel8051系列、Motorola和M68HC系列、Atmel的AT89系列、臺(tái)灣華邦(Winbond)W78系列、荷蘭PiliPs的PCF80C51系列、MicrochiP公司系列4位單片機(jī)、臺(tái)灣義隆的EM-78系列等[1]。本次設(shè)計(jì)最終選用了STC89C52單片機(jī)。</p><p> 本系統(tǒng)采用最常用的STC89C52單片機(jī),它是一種帶4K字節(jié)閃爍可編程
30、可擦除只讀存儲(chǔ)器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的STC89C52是一種高效微控制器。STC89C52單片機(jī)為很多嵌入式系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。
31、[6]引腳排列如圖2-3所示。</p><p> 圖2-3 STC89系列引腳排列</p><p> 2.2.2 NRF24L01無(wú)線收發(fā)芯片簡(jiǎn)介</p><p> NRF24L01是一款工作在2.4-2.5GHz,世界通用ISM頻段的單片無(wú)線收發(fā)器芯片。無(wú)線收發(fā)器包括:頻率發(fā)生器、增強(qiáng)型SchockburstTM模式控制器、功率放大器、晶體振蕩器、調(diào)制器、
32、解調(diào)器。輸出功率、頻道選擇和協(xié)議的設(shè)置可通過(guò)SPI接口進(jìn)行設(shè)置。極低的電流消耗:當(dāng)工作在發(fā)射模式下發(fā)射功率為-6dBm時(shí)電流消耗為9mA,接收模式時(shí)為12.3mA。掉電模式和待機(jī)模式下電流消耗更低。NRF24L01引腳排列如圖2-4所示。</p><p> 圖2-4 NRF24L01引腳排列</p><p> 2.2.3 L298N芯片直流電機(jī)驅(qū)動(dòng)模塊</p><
33、p> 該模塊由L298N作為雙H橋直流電機(jī)驅(qū)動(dòng)芯片,驅(qū)動(dòng)部分端子供電范圍Vs:+5V~+35V。如果在模塊上取電壓供電,則模塊供電范圍為Vs:+7V~+35V。模塊的驅(qū)動(dòng)不封峰值電流Io為2A。其他相關(guān)參數(shù)見表2-1。模塊的實(shí)物圖見附錄附件1(注:紅色線框部分為電源接口)。</p><p> 表2-1 L298N芯片直流電機(jī)驅(qū)動(dòng)模塊產(chǎn)品參數(shù)</p><p> 2.2.4 紅外
34、避障模塊</p><p> 紅外避障的原理:用紅外線傳感器進(jìn)行避障。紅外線發(fā)射頭與接收頭于一體的檢測(cè)開關(guān),其工作原理是根據(jù)發(fā)射頭發(fā)出的光束,被物體反射,接收頭據(jù)此做出判斷是否有障礙物。當(dāng)有光線反射回來(lái)時(shí),輸出低電平。當(dāng)沒(méi)有光線反射回來(lái)時(shí),輸出高電平。單片機(jī)根據(jù)接收頭電平的高低做出相應(yīng)控制,避免小車碰到障礙物。由于接收管輸出TTL電平,有利于單片機(jī)對(duì)信號(hào)的處理。紅外接收二極管又叫紅外光電二極管,也可稱紅外光敏二極
35、管。它廣泛用于各種家用電器的遙控接收器中,如音響、彩色電視機(jī)、空調(diào)器、VCD視盤機(jī)、DVD視盤機(jī)以及錄像機(jī)等。紅外接收二極管能很好地接收紅外發(fā)光二極管發(fā)射的波長(zhǎng)為94Onm的紅外光信號(hào),而對(duì)于其他波長(zhǎng)的光線則不能接收。因而保證了接收的準(zhǔn)確性和靈敏度。 </p><p> 小車采用紅外線傳感器進(jìn)行避障的電路原理圖如下圖2-5所示,實(shí)物圖如圖2-6所示。紅外模塊的功能指標(biāo)如表2-2所示。</p>&l
36、t;p> 表2-2 紅外模塊的功能指標(biāo)</p><p> 圖2-5 紅外線傳感器進(jìn)行避障的電路原理圖</p><p> 圖2-6 紅外線傳感器進(jìn)行避障的實(shí)物圖</p><p> 2.2.5 HC-SR04超聲波測(cè)距模塊</p><p> HC-SR04 超聲波測(cè)距模塊可提供 2cm-400cm 的非接觸式距離感測(cè)功能,測(cè)距精度
37、可達(dá)高到 3mm;模塊包括超聲波發(fā)射器、接收器與控制電路。</p><p><b> 基本工作原理:</b></p><p> (1)采用IO口TRIG觸發(fā)測(cè)距,給至少10us的高電平信號(hào);</p><p> (2)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;</p><p> (3)有信號(hào)返回,通
38、過(guò)IO口ECHO 輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。測(cè)試距離=(高電平時(shí)間*聲速(340M/S))/2。</p><p> HC-SR04超聲波測(cè)距模塊的時(shí)序圖如圖2-7所示。</p><p> 圖2-7 超聲波模塊時(shí)序圖</p><p> 以上時(shí)序圖表明你只需要提供一個(gè) 10uS 以上脈沖觸發(fā)信號(hào),該模塊內(nèi)部將</p>
39、<p> 發(fā)出 8 個(gè) 40kHz 周期電平并檢測(cè)回波。一旦檢測(cè)到有回波信號(hào)則輸出回響信號(hào)?;仨懶盘?hào)的脈沖寬度與所測(cè)的距離成正比。由此通過(guò)發(fā)射信號(hào)到收到的回響信號(hào)時(shí)間間隔可以計(jì)算得到距離。公式:uS/58=厘米或者 uS/148=英寸;或是:距離=高電平時(shí)間*聲速(340M/S)/2;建議測(cè)量周期為 60ms 以上,以防止發(fā)射信號(hào)對(duì)回響信號(hào)的影響。</p><p> HC-SR04超聲波測(cè)距模塊
40、的電路圖如圖2-8所示,實(shí)物圖如圖2-9所示。</p><p> 圖2-8 超聲波模塊的電路圖</p><p> 圖2-9 超聲波模塊實(shí)物圖</p><p> 2.2.6 蜂鳴器驅(qū)動(dòng)電路</p><p> 蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定
41、時(shí)器等電子產(chǎn)品中作發(fā)聲器件。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在電路中用字母“H”或“HA”(舊標(biāo)準(zhǔn)用“FM”、“LB”、“JD”等)表示。</p><p> 由于自激蜂鳴器是直流電壓驅(qū)動(dòng)的,不需要利用交流信號(hào)進(jìn)行驅(qū)動(dòng),只需對(duì)驅(qū)動(dòng)口輸出驅(qū)動(dòng)電平并通過(guò)三極管放大驅(qū)動(dòng)電流就能使蜂鳴器發(fā)出聲音(其驅(qū)動(dòng)電路如圖2-10所示),利用定時(shí)器來(lái)做定時(shí),通過(guò)定時(shí)翻轉(zhuǎn)電平產(chǎn)生符合蜂鳴器要求的頻率的波形,這個(gè)
42、波形就可以用來(lái)驅(qū)動(dòng)蜂鳴器了。</p><p> 圖2-10 蜂鳴器驅(qū)動(dòng)電路</p><p> 2.2.7 液晶顯示電路</p><p> 該設(shè)計(jì)的顯示部分采用LCD1602來(lái)顯示超聲波測(cè)距模塊測(cè)得的距離。對(duì)于現(xiàn)實(shí)電路我們可以采用數(shù)碼管,也可以采用液晶顯示。液晶顯示相對(duì)于數(shù)碼管顯示電路更簡(jiǎn)潔,顯示更明了,故我們采用液晶顯示電路。液晶又分字符型和點(diǎn)陣型,我們使用的
43、液晶是字符型液晶。LCD1602自帶字符庫(kù),不需要查找代碼,英文字符可直接使用。液晶電路使用時(shí),如果發(fā)現(xiàn)液晶不亮可以調(diào)節(jié)連接液晶的電位器,調(diào)節(jié)液晶的亮度。液晶顯示電路如圖2-11所示。</p><p> 圖2-11 液晶顯示電路</p><p> 2.2.8遙控部分獨(dú)立按鍵電路</p><p> 遙控部分的獨(dú)立按鍵與單片機(jī)的接口設(shè)置為P2.0、P2.1、P2.
44、2、P2.3、P2.4,分別控制小車的前進(jìn)、后退、左轉(zhuǎn)彎、右轉(zhuǎn)彎、以及功能切換。獨(dú)立按鍵采用低電平觸發(fā),即當(dāng)按下按鍵時(shí)給單片機(jī)一個(gè)低電平信號(hào),單片機(jī)隨后做出相應(yīng)的處理,當(dāng)按鍵松開時(shí),單片機(jī)接收到一個(gè)高電平信號(hào),單片機(jī)隨后繼續(xù)做出相應(yīng)處理。遙控部分的獨(dú)立按鍵電路如圖2-12所示。</p><p> 圖2-12 遙控部分獨(dú)立按鍵電路</p><p> 第3章 軟件的設(shè)計(jì)與說(shuō)明</p&
45、gt;<p><b> 3.1軟件設(shè)計(jì)</b></p><p> 系統(tǒng)功能的實(shí)現(xiàn)依賴于軟、硬件的協(xié)同工作。主控芯片為STC89C52RC單片機(jī)。單片機(jī)控制軟件實(shí)現(xiàn)遙控和小車的各項(xiàng)功能。程序編譯采用Keil uVision4編程軟件,Keil uVision4程序編譯界面如圖3-1所示。程序部分采用目前單片機(jī)最通用的C語(yǔ)言進(jìn)行編程。程序的燒錄軟件采用STC_ISP_V479軟
46、件燒寫編譯好的HEX文件,STC_ISP_V479軟件程序燒寫界面如圖3-2所示。</p><p> 圖3-1 Keil uVision4編程軟件界面</p><p> 圖3-2 STC_ISP_V479軟件程序燒寫界面</p><p><b> 3.2軟件的說(shuō)明</b></p><p> 3.2.1 遙控部分主
47、程序流程</p><p> 遙控部分主程序流程圖如圖3-3所示。程序從主函數(shù)開始執(zhí)行,24L01無(wú)線模塊初始化,同時(shí)在主函數(shù)中定義單片機(jī)口對(duì)應(yīng)的按鍵按下時(shí)所發(fā)出的函數(shù)值。接下來(lái)判斷是否有按鍵按下,如果有按鍵按下,則發(fā)送相應(yīng)的按鍵對(duì)應(yīng)的函數(shù)值,接著判斷是否又有按鍵按下。如果未發(fā)現(xiàn)按鍵按下則在主函數(shù)中循環(huán)判斷是否有按鍵按下。</p><p> 圖3-3 遙控主程序流程圖</p>
48、<p> 3.2.2 24L01子程序流程圖</p><p> 24L01子程序流程圖如圖3-4所示,本模塊子程序采用收發(fā)一體的驅(qū)動(dòng)程序,即使該模塊既可以在需要時(shí)發(fā)送信號(hào),又可以在需要時(shí)接收信號(hào)。24L01子程序模塊先初始化,初始化的同時(shí)在設(shè)置的寫入reg函數(shù)中寫入本地地址,寫入接收端地址,并且設(shè)置頻道0自動(dòng)ACK應(yīng)答允許。設(shè)置24L01的允許接收地址只有頻道0,并且是信道工作在2.4GHz,以
49、及設(shè)置數(shù)據(jù)長(zhǎng)度為32字節(jié),發(fā)射速率為1MHz。</p><p> 圖3-4 24L01子程序流程圖</p><p> 3.2.3 小車部分主程序流程圖</p><p> 小車部分主程序流程圖如圖3-5所示。程序從主函數(shù)開始執(zhí)行,24L01無(wú)線模塊初始化,液晶顯示模塊初始化,24L01無(wú)線電模塊初始化,超聲波模塊初始化。各個(gè)模塊初始化完畢后,單片機(jī)判斷是否接受到
50、了信號(hào),如果接收到信號(hào),則判斷相應(yīng)的按鍵值,如果沒(méi)有接收到按鍵值則返回繼續(xù)判斷是否接受到信號(hào)。接收到信號(hào)后,小車開始執(zhí)行鍵值對(duì)應(yīng)的相應(yīng)的命令。而超聲波測(cè)距,并在液晶上顯示相應(yīng)距離,危險(xiǎn)距離報(bào)警都是貫穿在整個(gè)while(1)的語(yǔ)句中的。</p><p> 圖3-5 小車部分主程序流程圖</p><p><b> 調(diào)試與總結(jié)</b></p><p&
51、gt; 基于單片機(jī)的智能小車控制有許多的模塊,在做整體設(shè)計(jì)之前首先是對(duì)每個(gè)模塊的調(diào)試。只有在確保每個(gè)模塊都正常的情況下才能進(jìn)行總體的設(shè)計(jì)和總體的調(diào)試。每個(gè)模塊都需要軟硬件的調(diào)試才能確保模塊的正常。</p><p><b> 4.1硬件部分</b></p><p> 4.1.1硬件的焊接</p><p> 單片機(jī)的電路系統(tǒng)相對(duì)于簡(jiǎn)單一些,
52、對(duì)于焊接只要多練習(xí)就不會(huì)出現(xiàn)問(wèn)題,但是,單片機(jī)的電路系統(tǒng)中只要出于一處的錯(cuò)誤,則會(huì)對(duì)檢測(cè)造成很大的不便,而且電路的交叉線較多,對(duì)于各種鋒利的引腳都要注意處理,否則會(huì)刺破帶有包皮的導(dǎo)線,則會(huì)對(duì)電路造成短路現(xiàn)象。</p><p> 在本次單片機(jī)的設(shè)計(jì)調(diào)試中遇到了很多的問(wèn)題。回想這些問(wèn)題只要認(rèn)真多思考都是可以避免的,主要問(wèn)題在于單片機(jī)上的測(cè)試用燈不亮,原因出于焊接時(shí)間過(guò)長(zhǎng)導(dǎo)致電路板上的金屬片脫落,造成斷路。</
53、p><p> 解決方案:重新引線使電路重新導(dǎo)通。</p><p> 4.1.2 24L01無(wú)線電模塊</p><p> 24L01模塊是直接購(gòu)買的模塊,在調(diào)試的時(shí)候按照商家提供的時(shí)序圖,編寫程序后卻一直無(wú)法通信,既不接受信號(hào)也不發(fā)送信號(hào)。</p><p> 首先排除了程序上的錯(cuò)誤,然后對(duì)硬件各部分電壓進(jìn)行測(cè)量并無(wú)發(fā)現(xiàn)異常,最后詳細(xì)的閱讀了
54、說(shuō)明書,發(fā)現(xiàn)24L01是3.3V~3.6V電壓供電,而自己設(shè)計(jì)的電源部分缺少了去耦電容導(dǎo)致了硬件的無(wú)法正常工作。</p><p> 解決方案:在3.3V電源處并入1個(gè)104瓷片電容,1個(gè)100uF電解電容,減少電源的波動(dòng)對(duì)模塊帶來(lái)的影響。</p><p> 4.1.3 外接電源模塊</p><p> 在剛剛接觸小車的時(shí)候,本設(shè)計(jì)的小車應(yīng)為是4輪驅(qū)動(dòng)的,所以比一
55、般的小車更加吃電流,剛剛開始使用的普通的電池僅僅調(diào)試幾次就沒(méi)電了,而使用的兩節(jié)3.7V的充電電池串聯(lián)效果也不盡理想,該小車使用的減速電機(jī)對(duì)電流的要求非常大,故購(gòu)買了SONY的電腦適配器,該適配器可以提供19.5V的輸出電壓,以及高達(dá)4.5A的直流電流。所以設(shè)計(jì)了采用7805,與7809并聯(lián)的方式作為SONY適配器下級(jí)穩(wěn)壓輸出,成為了小車的外部供電電源。由于小車的電流需求非常大,小車在該電源的供電下只能維持10s的行駛時(shí)間。</p&
56、gt;<p> 在接下來(lái)的檢查中發(fā)現(xiàn),由于夏天天氣熱,7809散熱比較慢,而單個(gè)7809的最高輸出電流在1.5A。7809由于溫度過(guò)高進(jìn)入了掉電保護(hù)模式。</p><p> 解決方案:在7809旁邊并入一個(gè)7809,相當(dāng)于加大了7809的輸出電流。在此同時(shí),在7809的片子上加上散熱片,使7809及時(shí)散熱。該方案的實(shí)施使得小車的續(xù)航能力大大提高。</p><p><
57、b> 4.2 軟件部分</b></p><p> 4.2.1 超聲波模塊</p><p> 超聲波模塊是直接購(gòu)買的模塊,在調(diào)試的時(shí)候按照商家提供的時(shí)序圖,編寫程序。但是編寫后超聲波測(cè)量時(shí)值測(cè)量一次,不能一直保持測(cè)量狀態(tài)。經(jīng)檢查后發(fā)現(xiàn),電路焊接正常,接口正常,所以排除了硬件問(wèn)題的可能性。在接下來(lái)程序的檢查中發(fā)現(xiàn)了超聲波中count()計(jì)算函數(shù)放在了while(1)函數(shù)
58、外面。</p><p> 解決方案:超聲波中count()計(jì)算函數(shù)放在while(1)函數(shù)的循環(huán)內(nèi),并且根據(jù)時(shí)序圖加上1ms的延時(shí)。該方案的實(shí)施,使得小車能夠一直保持測(cè)距的狀態(tài),并且在LCM1602上一直持續(xù)顯示正確的數(shù)值。</p><p><b> 4.3 小車聯(lián)調(diào) </b></p><p> 小車的聯(lián)調(diào)是一個(gè)非常復(fù)雜的過(guò)程,在此過(guò)程中
59、,不僅僅是對(duì)平時(shí)的專業(yè)知識(shí)的考驗(yàn),更是對(duì)自己的耐心的考驗(yàn)。</p><p> 小車聯(lián)調(diào)的時(shí)候遇到了很多問(wèn)題:</p><p> 在無(wú)線電模塊調(diào)試的時(shí)候,小車執(zhí)行的動(dòng)作與發(fā)射的信號(hào)的所需要執(zhí)行的動(dòng)作不一致,要求小車往左的時(shí)候小車并沒(méi)有往左轉(zhuǎn)彎,要求小車前進(jìn)的時(shí)候小車也并沒(méi)有前進(jìn)。</p><p> 解決方案:對(duì)小車的控制電機(jī)轉(zhuǎn)動(dòng)的IO口進(jìn)行逐一排查,找出問(wèn)題為小
60、車的IO口與程序定義的有所不同。重新再程序中定義IO口后,小車就能按照無(wú)線信號(hào)發(fā)射的要求做出相應(yīng)的動(dòng)作。</p><p> 當(dāng)無(wú)線電模塊發(fā)射了相應(yīng)的信號(hào)后,小車執(zhí)行的動(dòng)作正確,但是有時(shí)候并沒(méi)有執(zhí)行相應(yīng)的動(dòng)作,如同“聾啞”一般不接收信號(hào)。當(dāng)按鍵多次按下后,小車才執(zhí)行相應(yīng)的動(dòng)作。</p><p> 解決方案:小車的“聾啞”并不是真正的“聾啞”,無(wú)線電模塊在發(fā)射信號(hào)的時(shí)候并不是每次都能發(fā)射出
61、去,發(fā)射出去的信號(hào)小車的接收部分的無(wú)線模塊不一定能夠接收。而且,按鍵的抖動(dòng)也會(huì)對(duì)無(wú)線的發(fā)射信號(hào)產(chǎn)生影響。故在程序中有按鍵按下時(shí),發(fā)射5次信號(hào)信號(hào),提高無(wú)線模塊的信號(hào)發(fā)射次數(shù),并且在按鍵程序中加入10ms的去抖程序。實(shí)施該方案后小車對(duì)信號(hào)的接受靈敏度大幅度提高,能夠準(zhǔn)確快速的做出相應(yīng)的信號(hào)所要求的動(dòng)作。</p><p><b> 4.4 調(diào)試的總結(jié)</b></p><p&
62、gt; 通過(guò)這次設(shè)計(jì),掌握51單片機(jī)的原理,了解簡(jiǎn)單傳感器組成原理,初步掌握傳感器的調(diào)整及測(cè)試方法,提高動(dòng)手能力和排除故障的能力。同時(shí)通過(guò)本課題設(shè)計(jì)與裝配、調(diào)試,提高自己的動(dòng)手能力,鞏固已學(xué)的理論知識(shí),建立單片機(jī)理論和實(shí)踐的結(jié)合,了解傳感器各單元電路之間的關(guān)系及相互影響,從而能正確設(shè)計(jì)、計(jì)算定時(shí)計(jì)數(shù)的各個(gè)單元電路。初步掌握傳感器的調(diào)整及測(cè)試方法。提高動(dòng)手能力和排除故障的能力。調(diào)試期間要多向同學(xué)老師請(qǐng)教,有問(wèn)題就該虛心請(qǐng)教。</p
63、><p> 經(jīng)過(guò)多次的反復(fù)測(cè)試與分析,可以對(duì)電路的原理及功能更加熟悉,同時(shí)提高了設(shè)計(jì)能力與對(duì)電路的分析能力,同時(shí)在軟件的編程方面得到更高的提高,對(duì)編程能力得到加強(qiáng),同時(shí)對(duì)所學(xué)的知識(shí)得到很大的提高與鞏固。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 徐國(guó)華.移動(dòng)機(jī)器人的發(fā)展現(xiàn)狀及其趨勢(shì)[J].機(jī)器人技術(shù)與應(yīng)用,2001
64、,(03):1102-1103,1150.</p><p> [2] 彭宏業(yè),段哲民編著.小型舞蹈機(jī)器人的驅(qū)動(dòng)系統(tǒng)設(shè)計(jì)[J].國(guó)外電子元器件.2005,(04):56-65.</p><p> [3] 陳南主編.定位控制器的設(shè)計(jì)與實(shí)現(xiàn)[J].西安科技大學(xué)學(xué)報(bào). 2003.</p><p> [4]譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,1998.&
65、lt;/p><p> [5]蘇衛(wèi)東,任思聰?shù)龋疁乜叵鋽?shù)學(xué)模型的建立及其自適應(yīng)PID控制[J].中國(guó)慣性技術(shù)學(xué)報(bào),1995年,(3):4.</p><p> [6]萬(wàn)福君. MCS-51單片機(jī)原理、系統(tǒng)設(shè)計(jì)與應(yīng)用[M]. 北京:清華大學(xué)出版社,2008.</p><p> [7] 彭宏業(yè),段哲民編著.小型舞蹈機(jī)器人的驅(qū)動(dòng)系統(tǒng)設(shè)計(jì)[J].國(guó)外電子元器件.2005,(4
66、).</p><p> [8] 劉甘娜等編著.IBM-PC微機(jī)原理及接口技術(shù)[J].西安:西安電子科技大學(xué)出版社,1998.</p><p> [9]孫廣清.便攜式溫度傳感標(biāo)定裝置[D].西北工業(yè)大學(xué)碩士學(xué)位論文,2007.</p><p> [10] 鮑麗星,陳曉爭(zhēng).一種高精度信號(hào)源的設(shè)計(jì)[J].南京航空航天大學(xué),2008,16(4):588-590.<
67、;/p><p> [11] 黨宏社.智能車輛系統(tǒng)發(fā)展及其關(guān)鍵技術(shù)概述[J].公路交通科技,2002.(4)</p><p> [12] 林敏.簡(jiǎn)易數(shù)字化語(yǔ)音存儲(chǔ)與回放系統(tǒng)[J].儀表技術(shù),2008,28(9):13-18.</p><p> [13] 余祖俊.微機(jī)監(jiān)測(cè)與控制應(yīng)用系統(tǒng)設(shè)計(jì), 北方交通大學(xué)出版社,2001.12</p><p>
68、 [14] 溫志明.運(yùn)動(dòng)控制系統(tǒng)分析與應(yīng)用[J],國(guó)防工業(yè)出版社,2008.2</p><p> [15] WANG SH X,WU G N,JIANG W,et al.The principle and illumination</p><p> applies of light emitting diode[J].Light and Lighting, 2006,14(5):21
69、-23.</p><p> [16]I.M Filanvsky,H.Baltes.CMOS Schmit Trigger Design[J].IEEE Transactioms on Circuits and System-Fundamental Theory andApplications.1994,41(1):46-49.</p><p><b> 致 謝</b&g
70、t;</p><p> 在作品完成之際,我們要特別感謝XXX老師的熱情關(guān)懷和悉心指導(dǎo)。在我們作品制作的過(guò)程中,老師們給了我們很多耐心的指導(dǎo)和啟發(fā),不僅讓我學(xué)到了專業(yè)知識(shí),還讓我學(xué)到了很多做人的道理。特別是他們廣博的學(xué)識(shí)、深厚的學(xué)術(shù)素養(yǎng)、嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和一絲不茍的工作作風(fēng)使我們終生受益,在此表示真誠(chéng)地感謝。</p><p> 在作品的制作過(guò)程中,也得到了許多同學(xué)的寶貴建議,在此一并致以誠(chéng)
71、摯的謝意。感謝所有關(guān)心、支持、幫助過(guò)我們的朋友。</p><p> 最后,向在百忙中抽出時(shí)間對(duì)本文進(jìn)行評(píng)審并提出寶貴意見的各位領(lǐng)導(dǎo)老師表示衷心地感謝!由于自身水平有限,設(shè)計(jì)中一定存在很多不足之處,敬請(qǐng)各位老師批評(píng)指正。</p><p><b> 附錄</b></p><p> 附件1 L298N電機(jī)驅(qū)動(dòng)模塊</p><
72、;p><b> 附件2 小車側(cè)視圖</b></p><p><b> 附件3 小車俯視圖</b></p><p> 附件4 小車的遙控部分</p><p> 附件5 小車最終硬件圖</p><p><b> 附件6 程序清單</b></p><
73、;p><b> 1.遙控部分程序</b></p><p> #include <reg52.h></p><p> #include <intrins.h></p><p> typedef unsigned char uchar;</p><p> typedef unsigne
74、d char uint;</p><p> //****************************************NRF24L01端口定義***************************************</p><p> sbit MISO=P1^0;</p><p> sbit MOSI=P1^1;</p>
75、<p> sbitSCK =P1^2;</p><p> sbitCE =P1^3;</p><p> sbitCSN=P1^4;</p><p> sbitIRQ=P1^5;</p><p> //************************************按鍵********
76、*******************************************</p><p> sbitKEY1=P2^0;</p><p> sbitKEY2=P2^1;</p><p> sbitKEY3=P2^2;</p><p> sbitKEY4=P2^3;</p><p> sb
77、itKEY5=P2^4;</p><p> //*********************************************NRF24L01*************************************</p><p> #define TX_ADR_WIDTH 5 // 5 uints TX address width</p>&
78、lt;p> #define RX_ADR_WIDTH 5 // 5 uints RX address width</p><p> #define TX_PLOAD_WIDTH 20 // 20 uints TX payload</p><p> #define RX_PLOAD_WIDTH 20 // 20 uints TX payload</p
79、><p> uint const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};//本地地址</p><p> uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};//接收地址</p><p> uchar TxBuf[20]
80、; // </p><p> //***************************************NRF24L01寄存器指令*******************************************************</p><p> #define READ_REG 0x00 // 讀寄存器指令</p><p&g
81、t; #define WRITE_REG 0x20 // 寫寄存器指令</p><p> #define RD_RX_PLOAD 0x61 // 讀取接收數(shù)據(jù)指令</p><p> #define WR_TX_PLOAD 0xA0 // 寫待發(fā)數(shù)據(jù)指令</p><p> #define FLUSH_TX 0
82、xE1 // 沖洗發(fā)送 FIFO指令</p><p> #define FLUSH_RX 0xE2 // 沖洗接收 FIFO指令</p><p> #define REUSE_TX_PL 0xE3 // 定義重復(fù)裝載數(shù)據(jù)指令</p><p> #define NOP 0xFF // 保留</p&
83、gt;<p> //*************************************SPI(nRF24L01)寄存器地址****************************************************</p><p> #define CONFIG 0x00 // 配置收發(fā)狀態(tài),CRC校驗(yàn)?zāi)J揭约笆瞻l(fā)狀態(tài)響應(yīng)方式</p><
84、;p> #define EN_AA 0x01 // 自動(dòng)應(yīng)答功能設(shè)置</p><p> #define EN_RXADDR 0x02 // 可用信道設(shè)置</p><p> #define SETUP_AW 0x03 // 收發(fā)地址寬度設(shè)置</p><p> #define SETUP_RETR
85、 0x04 // 自動(dòng)重發(fā)功能設(shè)置</p><p> #define RF_CH 0x05 // 工作頻率設(shè)置</p><p> #define RF_SETUP 0x06 // 發(fā)射速率、功耗功能設(shè)置</p><p> #define STATUS 0x07 // 狀態(tài)寄存器</p>
86、<p> #define OBSERVE_TX 0x08 // 發(fā)送監(jiān)測(cè)功能</p><p> #define CD 0x09 // 地址檢測(cè) </p><p> #define RX_ADDR_P0 0x0A // 頻道0接收數(shù)據(jù)地址</p><p> #define RX
87、_ADDR_P1 0x0B // 頻道1接收數(shù)據(jù)地址</p><p> #define RX_ADDR_P2 0x0C // 頻道2接收數(shù)據(jù)地址</p><p> #define RX_ADDR_P3 0x0D // 頻道3接收數(shù)據(jù)地址</p><p> #define RX_ADDR_P4 0x0E // 頻道
88、4接收數(shù)據(jù)地址</p><p> #define RX_ADDR_P5 0x0F // 頻道5接收數(shù)據(jù)地址</p><p> #define TX_ADDR 0x10 // 發(fā)送地址寄存器</p><p> #define RX_PW_P0 0x11 // 接收頻道0接收數(shù)據(jù)長(zhǎng)度</p><p&
89、gt; #define RX_PW_P1 0x12 // 接收頻道0接收數(shù)據(jù)長(zhǎng)度</p><p> #define RX_PW_P2 0x13 // 接收頻道0接收數(shù)據(jù)長(zhǎng)度</p><p> #define RX_PW_P3 0x14 // 接收頻道0接收數(shù)據(jù)長(zhǎng)度</p><p> #define RX_PW_
90、P4 0x15 // 接收頻道0接收數(shù)據(jù)長(zhǎng)度</p><p> #define RX_PW_P5 0x16 // 接收頻道0接收數(shù)據(jù)長(zhǎng)度</p><p> #define FIFO_STATUS 0x17 // FIFO棧入棧出狀態(tài)寄存器設(shè)置</p><p> //***************************
91、***********************************************************</p><p> void Delay(unsigned int s);</p><p> void inerDelay_us(unsigned char n);</p><p> void init_NRF24L01(void);</
92、p><p> uint SPI_RW(uint uchar);</p><p> uchar SPI_Read(uchar reg);</p><p> void SetRX_Mode(void);</p><p> uint SPI_RW_Reg(uchar reg, uchar value);</p><p>
93、 uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars);</p><p> uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars);</p><p> unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);<
94、/p><p> void nRF24L01_TxPacket(unsigned char * tx_buf);</p><p> //*****************************************長(zhǎng)延時(shí)*****************************************</p><p> void Delay(unsigned i
95、nt s)</p><p><b> {</b></p><p> unsigned int i;</p><p> for(i=0; i<s; i++);</p><p> for(i=0; i<s; i++);</p><p><b> }</b>&
96、lt;/p><p> //******************************************************************************************</p><p> uint bdata sta; //狀態(tài)標(biāo)志</p><p> sbitRX_DR=sta^6;</p><p
97、> sbitTX_DS=sta^5;</p><p> sbitMAX_RT=sta^4;</p><p> /******************************************************************************************</p><p><b> /*延時(shí)函數(shù)&l
98、t;/b></p><p> /******************************************************************************************/</p><p> void inerDelay_us(unsigned char n)</p><p><b> {</b&
99、gt;</p><p> for(;n>0;n--)</p><p><b> _nop_();</b></p><p><b> }</b></p><p> //************************************************************
100、****************************</p><p> /*NRF24L01初始化</p><p> //***************************************************************************************/</p><p> void init_NRF24L01(v
101、oid)</p><p><b> {</b></p><p> inerDelay_us(100);</p><p> CE=0; // chip enable</p><p> CSN=1; // Spi disable </p><p> SCK=0; // Spi
102、clock line init high</p><p> SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // 寫本地地址</p><p> SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); // 寫接收端地址</p
103、><p> SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); // 頻道0自動(dòng)ACK應(yīng)答允許</p><p> SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // 允許接收地址只有頻道0,如果需要多頻道可以參考Page21 </p><p> SPI_RW_Reg(WRITE_REG
104、 + RF_CH, 0); // 設(shè)置信道工作為2.4GHZ,收發(fā)必須一致</p><p> SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //設(shè)置接收數(shù)據(jù)長(zhǎng)度,本次設(shè)置為32字節(jié)</p><p> SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); //設(shè)置發(fā)射速率為1MHZ,
105、發(fā)射功率為最大值0dB</p><p><b> }</b></p><p> /****************************************************************************************************</p><p> /*函數(shù):uint SPI_RW(ui
106、nt uchar)</p><p> /*功能:NRF24L01的SPI寫時(shí)序</p><p> /****************************************************************************************************/</p><p> uint SPI_RW(uint uch
107、ar)</p><p><b> {</b></p><p> uint bit_ctr;</p><p> for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit</p><p><b> {</b></p><p&g
108、t; MOSI = (uchar & 0x80); // output 'uchar', MSB to MOSI</p><p> uchar = (uchar << 1); // shift next bit into MSB..</p><p> SCK = 1; /
109、/ Set SCK high..</p><p> uchar |= MISO; // capture current MISO bit</p><p> SCK = 0; // ..then set SCK low again</p><p><b> }</b></p>
110、<p> return(uchar); // return read uchar</p><p><b> }</b></p><p> /*********************************************************************************************
111、*******</p><p> /*函數(shù):uchar SPI_Read(uchar reg)</p><p> /*功能:NRF24L01的SPI時(shí)序</p><p> /**********************************************************************************************
112、******/</p><p> uchar SPI_Read(uchar reg)</p><p><b> {</b></p><p> uchar reg_val;</p><p> CSN = 0; // CSN low, initialize SPI communicati
113、on...</p><p> SPI_RW(reg); // Select register to read from..</p><p> reg_val = SPI_RW(0); // ..then read registervalue</p><p> CSN = 1; // CSN high,
114、terminate SPI communication</p><p> return(reg_val); // return register value</p><p><b> }</b></p><p> /*******************************************************
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的wifi智能小車畢業(yè)論文
- 基于51單片機(jī)的智能小車畢業(yè)論文
- 基于單片機(jī)的智能小車設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文(說(shuō)明書)基于單片機(jī)的智能小車控制
- 基于單片機(jī)的智能小車的設(shè)計(jì) 畢業(yè)論文
- 基于單片機(jī)的智能小車的設(shè)計(jì)-畢業(yè)論文
- 基于單片機(jī)的智能循跡小車設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的智能小車設(shè)計(jì)-畢業(yè)論文.doc
- 基于單片機(jī)的智能小車設(shè)計(jì)-畢業(yè)論文.doc
- 基于單片機(jī)的多功能智能小車設(shè)計(jì)-畢業(yè)論文
- 基于單片機(jī)的智能避障小車設(shè)計(jì)【畢業(yè)論文】
- 基于單片機(jī)的多功能智能小車設(shè)計(jì)-畢業(yè)論文
- 基于單片機(jī)的智能小車控制
- 基于單片機(jī)的智能小車控制系統(tǒng)(論文)
- 基于單片機(jī)的智能循跡小車的控制畢業(yè)設(shè)計(jì)論文
- 基于單片機(jī)的智能循跡小車的控制畢業(yè)設(shè)計(jì)論文
- 【畢業(yè)論文】基于單片機(jī)控制智能窗簾設(shè)計(jì)
- 基于單片機(jī)的智能循跡小車的控制畢業(yè)設(shè)計(jì)論文
- 【畢業(yè)論文】基于單片機(jī)控制智能窗簾設(shè)計(jì)
- 基于單片機(jī)的智能小車設(shè)計(jì)【畢業(yè)論文說(shuō)明書】
評(píng)論
0/150
提交評(píng)論