遠(yuǎn)距離超聲波測(cè)距_第1頁(yè)
遠(yuǎn)距離超聲波測(cè)距_第2頁(yè)
遠(yuǎn)距離超聲波測(cè)距_第3頁(yè)
遠(yuǎn)距離超聲波測(cè)距_第4頁(yè)
遠(yuǎn)距離超聲波測(cè)距_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

成都工業(yè)學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 第頁(yè)設(shè)計(jì)題目:基于AT89S51單片機(jī)的超聲波水位監(jiān)測(cè)系統(tǒng)摘要采用一種單片機(jī)AT89S51控制HC-SR04實(shí)現(xiàn)的無(wú)線超聲波測(cè)距系統(tǒng)。通過(guò)簡(jiǎn)單的無(wú)線通信協(xié)議,實(shí)現(xiàn)可靠性與功耗平衡,該系統(tǒng)能實(shí)現(xiàn)對(duì)水位距離的檢測(cè),是可以實(shí)現(xiàn)遠(yuǎn)程控制的無(wú)線超聲波測(cè)距系統(tǒng)。低功耗實(shí)時(shí)性的無(wú)線超聲波測(cè)距是該設(shè)計(jì)的最大特點(diǎn)。無(wú)線傳輸采用nRF24L01模塊傳輸,用4位共陽(yáng)數(shù)碼管顯示測(cè)得數(shù)據(jù)。關(guān)鍵詞:超聲波;無(wú)線模塊;顯示模塊

AbstractItusesasingle-chipAT89S51controlwirelessHC-SR04ultrasonicrangingsystemimplementation.Simplewirelesscommunicationprotocol,reliabilityandpowerconsumptiontoachieveabalance,thesystemenablesdetectionofthewaterleveldistancecanbecontrolledbyawirelessremoteultrasonicrangingsystem.Low-powerwirelessreal-timeultrasonicdistancemeasurementisthemostimportantfeatureofthedesign.WirelesstransmissionusingnRF24L01transmissionmodulewithfourcommonanodedigitaltubedisplayofthemeasureddata.Keywords:Ultrasound;wirelessmodule;displaymodule目錄第1章緒論 5第2章系統(tǒng)硬件設(shè)計(jì) 82.1主控芯片方案 82.1.1電源引腳 82.1.2時(shí)鐘電路的引腳XTAL1和XTAL2 82.1.3復(fù)位RST(9腳) 92.1.4輸入輸出口(I/O口)引腳 92.1.5其它控制或復(fù)用引腳 112.2超聲波發(fā)射 112.2.1超聲波 112.2.2HC-SR04特點(diǎn) 122.2.3電氣參數(shù) 132.2.4超聲波時(shí)序圖 142.3顯示模塊 152.3.1數(shù)碼管 152.4無(wú)線通信模塊方案 162.4.1無(wú)線通信芯片 162.4.2引腳功能及描述 172.4.3工作模式 182.4.4工作原理 192.4.5配置字 212.4.6工作原理 212.5無(wú)線模塊電源設(shè)計(jì) 222.5.1電平轉(zhuǎn)換方案 222.6系統(tǒng)方案方框圖 24第3章系統(tǒng)軟件的設(shè)計(jì) 243.1軟件部分總體設(shè)計(jì) 243.2數(shù)據(jù)發(fā)送模塊程序 253.2.1部分主程序 253.2.2中斷服務(wù)程序 273.2.3無(wú)線模塊部分子函數(shù) 283.3數(shù)據(jù)接收模塊 303.3.1主函數(shù) 303.3.2無(wú)線接收模塊程序 303.3.3數(shù)據(jù)顯示模塊 32第4章設(shè)計(jì)調(diào)試與結(jié)果 334.1發(fā)送端軟件設(shè)計(jì)與調(diào)試 334.1.1調(diào)試顯示部分 344.1.2超聲波數(shù)據(jù)采集 344.1.3無(wú)線傳輸模塊 34第5章心得體會(huì) 37第6章參考文獻(xiàn) 38參考文獻(xiàn) 38緒論近年來(lái),隨著電子技術(shù)和信號(hào)處理技術(shù)的迅速發(fā)展,液位測(cè)量?jī)x表中的測(cè)量技術(shù)也發(fā)展很快,經(jīng)歷了由機(jī)械式向機(jī)電一體化再到自動(dòng)化的發(fā)展過(guò)程。結(jié)合這兩大技術(shù),尤其是將微處理器引進(jìn)液位測(cè)量系統(tǒng)以后,使得液位計(jì)的精度越來(lái)越高,越來(lái)越向智能化、一體化、小型化的方向發(fā)展。從上世紀(jì)八十年代開(kāi)始,一些發(fā)達(dá)國(guó)家就借助微電子、計(jì)算機(jī)、光纖、超聲波、傳感器等高科技的研究成果,將各種新技術(shù)、新方法應(yīng)用到儲(chǔ)罐液位測(cè)量領(lǐng)域。電子式測(cè)量方法便是其中的重要成果之一。在電子式液位測(cè)量方法中,有許多新的測(cè)量原理,包括壓電式、應(yīng)變式、雷達(dá)式、超聲波式、浮球式、電容式、磁致伸縮式、伺服式、混合式等二十多種測(cè)量技術(shù)。由于該方法測(cè)量精度高,可靠性強(qiáng),持續(xù)時(shí)間長(zhǎng),安裝維護(hù)簡(jiǎn)單,因而正在逐步取代舊的機(jī)械式液位測(cè)量方法。用于儲(chǔ)罐液位測(cè)量的眾多電子式技術(shù)中,壓電式、超聲波式、應(yīng)變式、浮球式、電容式五種測(cè)量技術(shù)應(yīng)用最為廣泛,約占總數(shù)的

60%以上。其中,超聲波式測(cè)量技術(shù)的應(yīng)用份額最大。

超聲波液位測(cè)量有很多優(yōu)點(diǎn):它不僅能夠定點(diǎn)和連續(xù)檢測(cè)液位,而且能夠方便地提供遙控或遙控所需的信號(hào)。與放射性技術(shù)相比,超聲技術(shù)不需要防護(hù)。與目前的激光測(cè)量液位技術(shù)相比,超聲方法比較簡(jiǎn)單而且價(jià)格較低。一般說(shuō)來(lái),超聲波測(cè)位技術(shù)不需要有運(yùn)動(dòng)的部件,所以在安裝和維護(hù)上有很大的優(yōu)越性。特別是超聲測(cè)位技術(shù)可以選用氣體、液體或固體來(lái)作為傳聲媒質(zhì),因而有較大的適應(yīng)性。所以在測(cè)量要求比較特殊,一般液位測(cè)量技術(shù)無(wú)法采用時(shí),超聲測(cè)位技術(shù)往往仍能適用。

所謂超聲波就是指頻率高于20kHz的機(jī)械波,一般由壓電效應(yīng)或磁致伸縮效應(yīng)產(chǎn)生;

它沿直線傳播,頻率越高,繞射能力越弱,但反射能力越強(qiáng);它還具有強(qiáng)度大、方向性

好等特點(diǎn),為此,利用超聲波的這些性質(zhì)就可制成超聲波傳感器。超聲波傳感器是利用

超聲波在超聲場(chǎng)中的物理特性和各種效應(yīng)研制而成的傳感器。超聲波傳感器按其工作原

理可分為壓電式、磁致伸縮式、電磁式等,其中以壓電式最為常用。壓電式超聲波傳感

器常用的材料是壓電晶體和壓電陶瓷,它是利用壓電材料的壓電效應(yīng)來(lái)工作的:逆壓電

效應(yīng)將高頻電振動(dòng)轉(zhuǎn)換成高頻機(jī)械震動(dòng),從而產(chǎn)生超聲波,可作為發(fā)射探頭;而正壓電

效應(yīng)是將超聲波振動(dòng)轉(zhuǎn)換成電信號(hào),可作為接收探頭。

超聲波液位測(cè)量的方法有多種,如超聲脈沖回波法、共振法、頻差法、超聲衰減法

等。超聲脈沖回波法的基本原理是由超聲波傳感器的發(fā)射探頭發(fā)射超聲波,當(dāng)超聲波

遇到障礙物時(shí)會(huì)被反射,利用單片機(jī)記錄超聲波發(fā)射的時(shí)間和接收到回波的時(shí)間,根據(jù)

當(dāng)前環(huán)境下超聲波的傳播速度,即可通過(guò)公式

計(jì)算出超聲波傳播的距離,也就得到

了障礙物離測(cè)試系統(tǒng)的距離。共振法的基本原理是調(diào)節(jié)超聲波的頻率,使得探頭和液面之間建立駐波共振狀態(tài),

這時(shí)探頭與液面之間的距離就與超聲在介質(zhì)中的波長(zhǎng)成一定的比例關(guān)系。當(dāng)超聲波速度

己知時(shí),就可根據(jù)共振頻率計(jì)算波長(zhǎng)再換算出探頭到液面的距離因。頻差法就是讓超聲

探頭發(fā)出調(diào)頻的超聲波,超聲波的頻率隨傳播距離的不同而不同,根據(jù)接收信號(hào)和發(fā)射

信號(hào)間的頻差可得到從發(fā)射到接收的時(shí)間。超聲衰減測(cè)量顧名思義就是超聲波在被測(cè)介

質(zhì)中的衰減量隨距離變化,根據(jù)接收信號(hào)和發(fā)射信號(hào)間的衰減量變化測(cè)量液位。從以上

方法的對(duì)比中可以看出,用共振法檢測(cè)液位受到一些具體條件的限制,需要與液面建立

駐波關(guān)系,并且它屬于一種接觸式測(cè)量方法。頻差法需要調(diào)頻器產(chǎn)生調(diào)制頻率,衰減法

需測(cè)量超聲波的衰減量。相比較而言,超聲波脈沖回波法無(wú)需與液面之間建立駐波,并且可以實(shí)現(xiàn)非接觸檢測(cè)。所以脈沖回波法是其中最適合的方法,本文將采用該方法實(shí)現(xiàn)

超聲波外測(cè)液位檢測(cè)。液位測(cè)量廣泛應(yīng)用于石油、化工、氣象等部門(mén)。實(shí)現(xiàn)無(wú)接觸、智能化測(cè)量是液位計(jì)目前的發(fā)展方向。隨著工業(yè)的發(fā)展,計(jì)算機(jī)、微電子、傳感器等高新技術(shù)的應(yīng)用和研究,近年來(lái)液位儀表的研制得到了長(zhǎng)足的發(fā)展,以適應(yīng)越來(lái)越高的應(yīng)用要求。

從測(cè)量范圍來(lái)說(shuō),有的液位計(jì)只能測(cè)量幾十厘米,有的卻可達(dá)幾十米。從測(cè)量條件

和環(huán)境來(lái)說(shuō),有的非常簡(jiǎn)單,有的卻十分復(fù)雜。例如:有的是高溫高壓,有的是低溫或

真空,有的需要防腐蝕、防輻射,有的從安裝上提出苛刻的限制,有的從維護(hù)上提出嚴(yán)

格的要求等。

按測(cè)量液位的感應(yīng)元件與被測(cè)液體是否接觸,液位儀表可以分為接觸型和非接觸型兩類(lèi)。接觸型液位測(cè)量主要有:人工檢尺法、浮子測(cè)量裝置、伺服式液位計(jì)、電容式

液位計(jì)以及磁致伸縮液位計(jì)等。它們的共同點(diǎn)是測(cè)量的感應(yīng)元件與被測(cè)液體接觸,即都

存在著與被測(cè)液體相接觸的測(cè)量部件且多數(shù)帶有可動(dòng)部件。因此存在一定的磨損且容易被液體沾污或粘住,尤其是桿式結(jié)構(gòu)裝置,還需有較大的安裝空間,不方便安裝和檢修。非接觸型液位測(cè)量主要有超聲波液位計(jì)、微波雷達(dá)液位計(jì)、射線液位計(jì)以及激光液位計(jì)

等。顧名思義,這類(lèi)測(cè)量?jī)x表的共同特點(diǎn)是測(cè)量的感應(yīng)元件與被測(cè)液體不接觸。因此測(cè)量部件不受被測(cè)介質(zhì)影響,也不影響被測(cè)介質(zhì),因而其適用范圍較為廣泛,可用于接觸型測(cè)量?jī)x表不能滿足的特殊場(chǎng)合,如粘度高、腐蝕性強(qiáng)、污染性強(qiáng)、易結(jié)晶的介質(zhì)。

國(guó)外液位計(jì)量?jī)x表早期大多采用機(jī)械原理,但近年來(lái)隨著電子技術(shù)的應(yīng)用,逐步向機(jī)電一體化發(fā)展,并且發(fā)展了許多新的測(cè)量原理。在傳統(tǒng)原理中也滲透了電子技術(shù)及微

機(jī)技術(shù),結(jié)構(gòu)有了很大的改善、功能有了很大的提高。從國(guó)外液位儀表發(fā)展的技術(shù)動(dòng)向

看,當(dāng)前主要有三個(gè)熱點(diǎn):接觸測(cè)量方式的液位儀,非接觸測(cè)量方式的液位儀和新原理的小型液位開(kāi)關(guān)

。

超聲波液位計(jì)具有廣泛的適用性,可以根據(jù)不同測(cè)量場(chǎng)合的需要,采用氣體介質(zhì)、液體介質(zhì)或固體介質(zhì)導(dǎo)聲。該測(cè)量裝置結(jié)構(gòu)簡(jiǎn)單,不需要其它附加設(shè)施,且安裝、使用和維護(hù)都較方便。隨著電子技術(shù)的發(fā)展。單片機(jī)嵌入應(yīng)用,超聲波液位計(jì)的精度有了進(jìn)一步的提高,功能更加齊全。但其主要缺點(diǎn)是:音速隨溫度、儲(chǔ)存物料的化學(xué)成分和罐內(nèi)蒸汽的運(yùn)動(dòng)而變化,影響測(cè)量精度。根據(jù)測(cè)量精度的要求可以采用多種方法校正。超聲波液位測(cè)量是一種非接觸式的測(cè)量方式,它是利用超聲波在同種介質(zhì)中傳播速度相對(duì)恒定以及碰到障礙物能反射的原理研制而成的。與其它方法相比(如電磁的或光學(xué)的方法),它不受光線、被測(cè)對(duì)象顏色的影響,對(duì)于被測(cè)物處于黑暗、有灰塵、煙霧、電磁干擾、有毒等惡劣的環(huán)境下有一定的適應(yīng)能力。因此,研究超聲波在高精度測(cè)距系統(tǒng)中的應(yīng)用具有重要的現(xiàn)實(shí)意義。第2章系統(tǒng)硬件設(shè)計(jì)2.1主控芯片方案采用傳統(tǒng)的AT89S51單片機(jī)作為主控芯片。單片機(jī)最小系統(tǒng)是其他拓展系統(tǒng)的最基本的基礎(chǔ),單片機(jī)最小系統(tǒng)是指一個(gè)真正可用的單片機(jī)最小配置系統(tǒng)即單片機(jī)能工作的系統(tǒng)。對(duì)于89S51單片機(jī),由于片內(nèi)已經(jīng)自帶有了程序存儲(chǔ)器,所以只要單片機(jī)外接時(shí)鐘電路和復(fù)位電路就可以組成了單片機(jī)的最小系統(tǒng)了。單片機(jī)引腳功能:2.1.1電源引腳Vcc(40腳):正電源的引腳,工作電壓是5V。GND(20腳):接地端。2.1.2時(shí)鐘電路的引腳XTAL1和XTAL2為了產(chǎn)生時(shí)鐘信號(hào),在89S51單片機(jī)的芯片內(nèi)部已經(jīng)設(shè)置了一個(gè)反相放大器,其中XTAL1端口就是片內(nèi)反相放大器的輸入端,XTAL2端則是片內(nèi)振蕩器反相放大器的輸出端[5]。單片機(jī)使用的工作方式是自激振蕩的方式,XTAL1和XTAL2外接的是12MHz的石英晶振,使內(nèi)部振蕩器按照石英晶振的頻率頻率進(jìn)行振蕩,從而就可以產(chǎn)生時(shí)鐘信號(hào)。時(shí)鐘信號(hào)電路如圖2.1所示。圖2.1時(shí)鐘信號(hào)電路2.1.3復(fù)位RST(9腳)當(dāng)振蕩器運(yùn)行時(shí),只要有有兩個(gè)機(jī)器周期即24個(gè)振蕩周期以上的高電平在這個(gè)引腳出現(xiàn)時(shí),那么就將會(huì)使單片機(jī)復(fù)位,如果將這個(gè)引腳保持高電平,那么51單片機(jī)芯片就會(huì)循環(huán)不斷地進(jìn)行復(fù)位。復(fù)位后的P0口至P3口均置于高電平,這時(shí)程序計(jì)數(shù)器和特殊功能寄存器將全部清零。單片機(jī)復(fù)位電路如圖2.2所示。圖2.2單片機(jī)復(fù)位電路圖2.1.4輸入輸出口(I/O口)引腳P0口是一個(gè)三態(tài)的雙向口,既可以作為數(shù)據(jù)和地址的分時(shí)復(fù)用口,又可以作為通用輸入輸出口。P0口在有外部擴(kuò)展存儲(chǔ)器時(shí)將會(huì)被作為地址/數(shù)據(jù)總線口,此時(shí)P0口就是一個(gè)真正的雙向口;而在沒(méi)有外部擴(kuò)展存儲(chǔ)器時(shí),P0口也可以作為通用的I/O接口使用,但此時(shí)只是一個(gè)準(zhǔn)雙向口;另外,P0口的輸出級(jí)具有驅(qū)動(dòng)8個(gè)LSTTL負(fù)載的能力即輸出電流不小于800uA。P1口是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,而P1口只有通用I/O接口一種功能,而且P1口能驅(qū)動(dòng)4個(gè)LSTTL負(fù)載;在使用時(shí)通常不需要外接上拉電阻就能夠直接驅(qū)動(dòng)發(fā)光二極管;在端口置1時(shí),其內(nèi)部上拉電阻將端口拉到高電平,作輸入端口用。P2口是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,而且P2口具有驅(qū)動(dòng)4個(gè)LSTTL負(fù)載的能力。P2端口置1時(shí),內(nèi)部上拉電阻將端口的電位拉到高電平,作為輸入口使用;在對(duì)內(nèi)部的Flash程序存儲(chǔ)器編程時(shí),P2口接收高8位地址和控制信息,而在訪問(wèn)外部程序和16位外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口就送出高8位地址。在訪問(wèn)8位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2引腳上的內(nèi)容在此期間不會(huì)改變。P3口也是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P3口能驅(qū)動(dòng)4個(gè)LSTTL負(fù)載,這8個(gè)引腳還用于專(zhuān)門(mén)的第二功能。P3口作為通用I/O口接口時(shí),第二功能輸出線為高電平。P3口置1時(shí),內(nèi)部上拉電阻將端口電位拉到高電平,作輸入口使用;在對(duì)內(nèi)部Flash程序存儲(chǔ)器編程時(shí),此端接控制信息。P3口的第二功能,如表2.3所示。表2.3

P3口第二功能表P3引腳兼用功能P3.0串行通訊輸入口(RXD)P3.1串行通訊輸出口(TXD)P3.2外部中斷0請(qǐng)求輸入端(INT0)P3.3外部中斷1請(qǐng)求輸入端(INT1)P3.4定時(shí)器0輸入端(T0)P3.5定時(shí)器1輸入端(T1)P3.6外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通信號(hào)輸出端(/WR)P3.7外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通信號(hào)輸出端(/RD)2.1.5其它控制或復(fù)用引腳(1)ALE/PROG(30腳):地址鎖存有效信號(hào)輸出端。在訪問(wèn)片外存儲(chǔ)器時(shí),ALE(地址鎖存允許)以每機(jī)器周期兩次進(jìn)行信號(hào)輸出,其下降沿用于控制鎖存P0口輸出的低8位地址;在不訪問(wèn)片外存儲(chǔ)器的時(shí)候,ALE端仍以不變的頻率輸出脈沖信號(hào)(此頻率是振蕩器頻率的1/6),而在訪問(wèn)片外數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖會(huì)跳空一個(gè),此時(shí)是不可以做為時(shí)鐘輸出[5]。對(duì)片內(nèi)含有EPROM的機(jī)型在編程時(shí),這個(gè)引腳用于輸入編程脈沖/PROG的輸入端[5]。(2)/PSEN(29腳):片外程序存儲(chǔ)器讀選通信號(hào)輸出端,低電平時(shí)有效。當(dāng)89S51從外部程序存儲(chǔ)器取指令或常數(shù)時(shí),每個(gè)機(jī)器周期內(nèi)輸出2個(gè)脈沖即兩次有效,以通過(guò)數(shù)據(jù)總線P0口讀回指令或常數(shù)。但在訪問(wèn)片外數(shù)據(jù)存儲(chǔ)器時(shí),/PSEN將不會(huì)有脈沖輸出[5]。(3)/EA/Vpp(31腳):/EA為片外程序存儲(chǔ)器訪選用端。當(dāng)該引腳訪問(wèn)片外程序存儲(chǔ)器時(shí),應(yīng)該輸入的是低電平,要使89S51只訪問(wèn)片外程序存儲(chǔ)器,這時(shí)該引腳必須保持低電平;而在對(duì)Flash存儲(chǔ)器編程時(shí),用于施加Vpp編程電壓[5]。2.2超聲波發(fā)射2.2.1超聲波超聲波是一種振動(dòng)頻率超過(guò)20kHz的機(jī)械波,它可以沿直線方向傳播,而且傳播的方向性好,傳播的距離也較遠(yuǎn),在介質(zhì)中傳播時(shí)遇到障礙物在入射到它的反射面上就會(huì)產(chǎn)生反射波[6]。由于超聲波的以上幾個(gè)特點(diǎn),所以超聲波被廣泛地應(yīng)用于物體距離的測(cè)量、厚度等方面[6]。而且,超聲波的測(cè)量是一種比較理想的的非接觸式的測(cè)距方法[6]。當(dāng)進(jìn)行距離的測(cè)量時(shí),由安裝在同一水平線上的超聲波發(fā)射器和接收器完成超聲波的發(fā)射與接收,并且同時(shí)啟動(dòng)定時(shí)器進(jìn)行計(jì)數(shù)[7]。首先由超聲波發(fā)射探頭向倒車(chē)的方向發(fā)射超聲波并同時(shí)啟動(dòng)定時(shí)器計(jì)時(shí),超聲波在空氣中傳播的途中一旦遇到障礙物后就會(huì)被反射回來(lái),當(dāng)接收探頭收到反射波后就會(huì)給負(fù)脈沖到單片機(jī)使其立刻停止計(jì)時(shí)[6.7]。這樣,定時(shí)器就能夠準(zhǔn)確的記錄下了超聲波發(fā)射點(diǎn)至障礙物之間往返傳播所用的時(shí)間t(s)[7]。由于在常溫下超聲波在空氣中的傳播速度大約為340m/s[7],所以障礙物到發(fā)射探頭之間的距離為:S=340×t/2=170×t(2-1)因?yàn)閱纹瑱C(jī)內(nèi)部定時(shí)器的計(jì)時(shí)實(shí)際上就是對(duì)機(jī)器周期T的計(jì)數(shù),而本設(shè)計(jì)中時(shí)鐘頻率fosc取12MHz,設(shè)計(jì)數(shù)值N,則:T=12/fosc=1μs(2-2)t=N×T=N×0.000001(s)(2-3)S=170×N×T=170×N/1000000(m)(2-4)最終選擇了HC-SR04超聲波測(cè)距模塊來(lái)完成對(duì)水位距離的測(cè)量。通過(guò)從TX腳輸出40KH的方波信號(hào),即就是從單片機(jī)的IO口連續(xù)發(fā)出高低電平,產(chǎn)生方波,方波的個(gè)數(shù)一般為10個(gè)左右,發(fā)出后啟動(dòng)定時(shí)器,開(kāi)始計(jì)時(shí),此時(shí),超聲波發(fā)射頭開(kāi)始發(fā)出超聲波,當(dāng)發(fā)出的超聲波被前方的障礙物返射回來(lái),返射回來(lái)的超聲波被接收探頭接收到,此時(shí),模塊的RX引腳會(huì)產(chǎn)生一個(gè)從高電平到低電平的跳變,此時(shí),停止計(jì)時(shí),通過(guò)計(jì)時(shí)的時(shí)間,根據(jù)以下公式計(jì)算測(cè)量距離:

測(cè)量距離=(時(shí)間*聲速(340M/S))/2

(2-5)2.2.2HC-SR04特點(diǎn)HC-SR04超聲波測(cè)距模塊可提供2cm-400cm的非接觸式距離感測(cè)功能,測(cè)距精度可達(dá)高到3mm;模塊包括超聲波發(fā)射器、接收器與控制電路。基本工作原理:(1)采用IO口TRIG觸發(fā)測(cè)距,給最少10us的高電平信呈。(2)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;(3)有信號(hào)返回,通過(guò)IO口ECHO輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。測(cè)試距離=(高電平時(shí)間*聲速(340M/S))/2;實(shí)物如圖2.4圖2.4超聲波測(cè)距模塊VCC供5V電源,GND為地線,TRIG觸發(fā)控制信號(hào)輸入,ECHO回響信號(hào)輸出等四個(gè)接口端。2.2.3電氣參數(shù)電氣參數(shù)如表2.5表2.5HC-SR04超聲波模塊電氣參數(shù)電氣參數(shù)HC-SR04超聲波模塊工作電壓DC5V工作電流15mA工作頻率40kHz最遠(yuǎn)射程4m最近射程2cm測(cè)量角度15度輸入觸發(fā)信號(hào)10uS的TTL脈沖2.2.4超聲波時(shí)序圖超聲波時(shí)序圖如圖2.6圖2.6超聲波時(shí)序圖以上時(shí)序圖表明你只需要提供一個(gè)10uS以上脈沖觸發(fā)信號(hào),該模塊內(nèi)部將發(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)的影響。2.3顯示模塊2.3.1數(shù)碼管LED數(shù)碼管也稱(chēng)半導(dǎo)體數(shù)碼管,是目前數(shù)字電路中最常用的顯示器件。它是以發(fā)光二極管作筆段并按共陰極方式或共陽(yáng)極方式連接后封裝而成的。圖3-9所示是兩種LED數(shù)碼管的外形與內(nèi)部結(jié)構(gòu),+、-分別表示公共陽(yáng)極和公共陰極,a~g是7個(gè)筆段電極,DP為小數(shù)點(diǎn)。LED數(shù)碼管型號(hào)較多,規(guī)格尺寸也各異,顯示顏色有紅、綠、橙等。LED數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽(yáng)兩類(lèi),了解LED的這些特性,對(duì)編程是很重要的,因?yàn)椴煌?lèi)型的數(shù)碼管,除了它們的硬件電路有差異外,編程方法也是不同的。右圖是共陰和共陽(yáng)極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。

將多只LED的陰極連在一起即為共陰式,而將多只LED的陽(yáng)極連在一起即為共陽(yáng)式。以共陰式為例,如把陰極接地,在相應(yīng)段的陽(yáng)極接上正電源,該段即會(huì)發(fā)光。當(dāng)然,LED的電流通常較小,一般均需在回路中接上限流電阻。

LED數(shù)碼管是一款比較通用的數(shù)字顯示模塊,且價(jià)格便宜,容易控制。仿真顯示模塊如圖2.3.1實(shí)物圖如圖2.7圖2.7顯示模塊圖2.8共陽(yáng)數(shù)碼管實(shí)物圖2.4無(wú)線通信模塊方案2.4.1無(wú)線通信芯片采用nRF24L01無(wú)線射頻模塊進(jìn)行通信,nRF24L01是一款高速低功耗的無(wú)線通信模塊。而且價(jià)格較便宜,采用SPI總線通信模式電路簡(jiǎn)單,操作方便。nRF24L01芯片概述,實(shí)物如圖2.9圖2.9nRF24L01實(shí)物圖nRF24L01是一款新型單片射頻收發(fā)器件,工作于2.4GHz~2.5GHzISM頻段。內(nèi)置頻率合成器、功率放大器、晶體振蕩器、調(diào)制器等功能模塊,并融合了增強(qiáng)型ShockBurst技術(shù),其中輸出功率和通信頻道可通過(guò)程序進(jìn)行配置。nRF24L01功耗低,在以-6dBm的功率發(fā)射時(shí),工作電流也只有9mA;接收時(shí),工作電流只有12.3mA,多種低功率工作模式(掉電模式和空閑模式)使節(jié)能設(shè)計(jì)更方便[10]。nRF24L01主要特性如下:1、GFSK調(diào)制,硬件集成OSI鏈路層;2、具有自動(dòng)應(yīng)答和自動(dòng)再發(fā)射功能;3、片內(nèi)自動(dòng)生成報(bào)頭和CRC校驗(yàn)碼;4、數(shù)據(jù)傳輸率為lMb/s或2Mb/s;5、SPI速率為0Mb/s~10Mb/s;6、125個(gè)頻道與其他nRF24系列射頻器件相兼容;7、QFN20引腳4mm×4mm封裝;8、供電電壓為1.9V~3.6V;2.4.2引腳功能及描述nRF24L01的封裝及引腳排列如圖所示各引腳功能如圖2.10所示。圖2.10nRF24L01封裝圖CE:使能發(fā)射或接收;CSN,SCK,MOSI,MISO:SPI引腳端,微處理器可通過(guò)此引腳配置nRF24L01:IRQ:中斷標(biāo)志位;VDD:電源輸入端;VSS:電源地;XC2,XC1:晶體振蕩器引腳;VDD_PA:為功率放大器供電,輸出為1.8V;ANT1,ANT2:天線接口;IREF:參考電流輸入;2.4.3工作模式通過(guò)配置寄存器可將nRF24L01配置為發(fā)射、接收、空閑及掉電四種工作模式,如表2.11所示。表2.11nRF24L01工作模式模式PWR_UPPRIM_RXCEFIFO寄存器狀態(tài)接收模式111-發(fā)射模式101數(shù)據(jù)在TX

FIFO

寄存器中發(fā)射模式101→0停留在發(fā)送模式,直至數(shù)據(jù)發(fā)送完待機(jī)模式2101TX_FIFO為空待機(jī)模式11-0無(wú)數(shù)據(jù)傳輸?shù)綦?待機(jī)模式1主要用于降低電流損耗,在該模式下晶體振蕩器仍然是工作的;待機(jī)模式2則是在當(dāng)FIFO寄存器為空且CE=1時(shí)進(jìn)入此模式;待機(jī)模式下,所有配置字仍然保留。在掉電模式下電流損耗最小,同時(shí)nRF24L01也不工作,但其所有配置寄存器的值仍然保留。2.4.4工作原理發(fā)射數(shù)據(jù)時(shí),首先將nRF24L01配置為發(fā)射模式:接著把接收節(jié)點(diǎn)地址TX_ADDR和有效數(shù)據(jù)TX_PLD按照時(shí)序由SPI口寫(xiě)入nRF24L01緩存區(qū),TX_PLD必須在CSN為低時(shí)連續(xù)寫(xiě)入,而TX_ADDR在發(fā)射時(shí)寫(xiě)入一次即可,然后CE置為高電平并保持至少10μs,延遲130μs后發(fā)射數(shù)據(jù);若自動(dòng)應(yīng)答開(kāi)啟,那么nRF24L01在發(fā)射數(shù)據(jù)后立即進(jìn)入接收模式,接收應(yīng)答信號(hào)(自動(dòng)應(yīng)答接收地址應(yīng)該與接收節(jié)點(diǎn)地址TX_ADDR一致)。如果收到應(yīng)答,則認(rèn)為此次通信成功,TX_DS置高,同時(shí)TX_PLD從TX

FIFO中清除;若未收到應(yīng)答,則自動(dòng)重新發(fā)射該數(shù)據(jù)(自動(dòng)重發(fā)已開(kāi)啟),若重發(fā)次數(shù)(ARC)達(dá)到上限,MAX_RT置高,TX

FIFO中數(shù)據(jù)保留以便在次重發(fā);MAX_RT或TX_DS置高時(shí),使IRQ變低,產(chǎn)生中斷,通知MCU。最后發(fā)射成功時(shí),若CE為低則nRF24L01進(jìn)入空閑模式1;若發(fā)送堆棧中有數(shù)據(jù)且CE為高,則進(jìn)入下一次發(fā)射;若發(fā)送堆棧中無(wú)數(shù)據(jù)且CE為高,則進(jìn)入空閑模式2。接收數(shù)據(jù)時(shí),首先將nRF24L01配置為接收模式,接著延遲130μs進(jìn)入接收狀態(tài)等待數(shù)據(jù)的到來(lái)。當(dāng)接收方檢測(cè)到有效的地址和CRC時(shí),就將數(shù)據(jù)包存儲(chǔ)在RX

FIFO中,同時(shí)中斷標(biāo)志位RX_DR置高,IRQ變低,產(chǎn)生中斷,通知MCU去取數(shù)據(jù)。若此時(shí)自動(dòng)應(yīng)答開(kāi)啟,接收方則同時(shí)進(jìn)入發(fā)射狀態(tài)回傳應(yīng)答信號(hào)。最后接收成功時(shí),若CE變低,則nRF24L01進(jìn)入空閑模式1。在寫(xiě)寄存器之前一定要進(jìn)入待機(jī)模式或掉電模式。常用配置寄存器如表2.12表2.12常用配置寄存器地址(H)寄存器名稱(chēng)功能00CONFIG設(shè)置24L01工作模式01EN_AA

設(shè)置接收通道及自動(dòng)應(yīng)答02EN_RXADDR使能接收通道地址03SETUP_AW設(shè)置地址寬度04SETUP_RETR設(shè)置自動(dòng)重發(fā)數(shù)據(jù)時(shí)間和次數(shù)07STATUS狀態(tài)寄存器,用來(lái)判定工作狀態(tài)0A~0FRX_ADDR_P0~P5設(shè)置接收通道地址10TX_ADDR設(shè)置接收接點(diǎn)地址11~16RX_PW_P0~P5設(shè)置接收通道的有效數(shù)據(jù)寬2.4.5配置字SPI口為同步串行通信接口,最大傳輸速率為10Mb/s,傳輸時(shí)先傳送低位字節(jié),再傳送高位字節(jié)。但針對(duì)單個(gè)字節(jié)而言,要先送高位再送低位。與SPI相關(guān)的指令共有8個(gè),使用時(shí)這些控制指令由nRF24L01的MOSI輸入。相應(yīng)的狀態(tài)和數(shù)據(jù)信息是從MISO輸出給MCU。nRF24L0l所有的配置字都由配置寄存器定義,這些配置寄存器可通過(guò)SPI口訪問(wèn)。nRF24L01的配置寄存器共有25個(gè)。2.4.6工作原理發(fā)射數(shù)據(jù)時(shí),首先將nRF24L01配置為發(fā)射模式,接收節(jié)點(diǎn)地址TX_ADDR和有效數(shù)據(jù)TX_PLD按照時(shí)序由SPI口寫(xiě)入nRF24L01緩存區(qū),TX_PLD必須在CSN為低時(shí)連續(xù)寫(xiě)入,而TX_ADDR在發(fā)射時(shí)寫(xiě)入一次即可,然后CE置為高電平并保持至少10μs,延遲130μs后發(fā)射數(shù)據(jù);自動(dòng)應(yīng)答開(kāi)啟,那么nRF24L01在發(fā)射數(shù)據(jù)后立即進(jìn)入接收模式,接收應(yīng)答信號(hào)(自動(dòng)應(yīng)答接收地址應(yīng)該與接收節(jié)點(diǎn)地址TX_ADDR一致)。如果收到應(yīng)答,則認(rèn)為此次通信成功,TX_DS置高,同時(shí)TX_PLD從TX

FIFO中清除;未收到應(yīng)答,則自動(dòng)重新發(fā)射該數(shù)據(jù)(自動(dòng)重發(fā)已開(kāi)啟),若重發(fā)次數(shù)(ARC)達(dá)到上限,MAX_RT置高,TX

FIFO中數(shù)據(jù)保留以便在次重發(fā);AX_RT或TX_DS置高時(shí),使IRQ變低,產(chǎn)生中斷,通知MCU。最后發(fā)射成功時(shí),若CE為低則nRF24L01進(jìn)入空閑模式1;若發(fā)送堆棧中有數(shù)據(jù)且CE為高,則進(jìn)入下一次發(fā)射;若發(fā)送堆棧中無(wú)數(shù)據(jù)且CE為高,則進(jìn)入空閑模式2。接收數(shù)據(jù)時(shí),首先將nRF24L01配置為接收模式,接著延遲130μs進(jìn)入接收狀態(tài)等待數(shù)據(jù)的到來(lái)。當(dāng)接收方檢測(cè)到有效的地址和CRC時(shí),就將數(shù)據(jù)包存儲(chǔ)在RX

FIFO中,同時(shí)中斷標(biāo)志位RX_DR置高,IRQ變低,產(chǎn)生中斷,通知MCU去取數(shù)據(jù)。若此時(shí)自動(dòng)應(yīng)答開(kāi)啟,接收方則同時(shí)進(jìn)入發(fā)射狀態(tài)回傳應(yīng)答信號(hào)。最后接收成功時(shí),若CE變低,則nRF24L01進(jìn)入空閑模式1。在寫(xiě)寄存器之前一定要進(jìn)入待機(jī)模式或掉電模式。如下圖2.13和圖2.14給出SPI操作及時(shí)序圖:圖2.13SPI讀操作圖2.14SPI寫(xiě)操作2.5無(wú)線模塊電源設(shè)計(jì)2.5.1電平轉(zhuǎn)換方案由于無(wú)線模塊的電源是1.6-3.3V,因?yàn)閱纹瑱C(jī)的電源的+5V,所以采用了電平轉(zhuǎn)換芯片AMS1117,將5V的電壓轉(zhuǎn)換成3.3V左右。供電電路采用USB接口。USB已經(jīng)是一個(gè)業(yè)內(nèi)標(biāo)準(zhǔn)了。電壓是5~5.2V電流300mA~500mA接口靠?jī)啥说氖钦?fù)極,中間兩條是數(shù)據(jù)的正負(fù)極,只要你的設(shè)備不接觸“數(shù)據(jù)線”電腦不會(huì)識(shí)別為移動(dòng)設(shè)備。(業(yè)內(nèi)的標(biāo)準(zhǔn)數(shù)據(jù)線是“紅、白、綠、黑”分別是5V+、DAT-、DAT+、5V-、高檔型外加屏蔽層)如果只用提供電源,只用兩條引線,設(shè)計(jì)產(chǎn)品額定用電不超過(guò)5V,電流不超500mA即可。該型產(chǎn)品已經(jīng)很多很成熟。Msp430的電壓是3.3V,所以中間采用了穩(wěn)壓芯片AS1117。AS1117是一款低壓差的線性穩(wěn)壓器,當(dāng)輸出1A電流時(shí),輸入輸出的電壓差典型值僅為1.2V。AS1117除了能提供多種固定電壓版本外(Vout=1.8V,2.5V,2.85V,3.3V,5V),還提供可調(diào)端輸出版本,該版本能提供的輸出電壓范圍為1.25V~13.8V。能(AS1117正常工作環(huán)境溫度范圍極寬,為-50℃~140℃),確保芯片和電源系統(tǒng)的穩(wěn)定性。同時(shí)在產(chǎn)品生產(chǎn)中應(yīng)用先進(jìn)的修正技術(shù),確保輸出電壓和參考源精度在±1%的精度范圍內(nèi)。AMS1117實(shí)物如圖2.15AS1117的特點(diǎn):1、包括三端可調(diào)輸出和固定電壓輸出版本(固定電壓包括1.8V,2.5V,2.85V,3.3V,5V等,其他電壓規(guī)格可根據(jù)用戶定制);2、最大輸出電流為1A;3、輸出電壓精度高達(dá)±1%;4、穩(wěn)定工作電壓范圍為高達(dá)15V;5、電壓線性度為0.2%;6、負(fù)載線性度為0.4%;7、環(huán)境溫度:TA的范圍是-50℃~140℃;圖2.15電平轉(zhuǎn)換芯片實(shí)物2.6系統(tǒng)方案方框圖系統(tǒng)方案方框圖如圖2.16發(fā)送:HC-SRO4AT89S51NRF24L01接收:NRF24L01AT89S51-LED圖2.16系統(tǒng)方案圖第3章系統(tǒng)軟件的設(shè)計(jì)3.1軟件部分總體設(shè)計(jì)對(duì)本設(shè)計(jì)系統(tǒng)的設(shè)計(jì)方案確定之后,首先完成硬件的電路設(shè)計(jì),

畫(huà)出電路原理圖,然后根據(jù)電路原理圖,根據(jù)它要實(shí)現(xiàn)的功能和要求完成軟件部分的程

序設(shè)計(jì)。采用模塊化的程序設(shè)計(jì)方法是比較容易掌握和實(shí)現(xiàn)的。將程序化分為幾大模塊,

主要包括超聲波發(fā)射、接收及數(shù)據(jù)處理程序,無(wú)線通信程序,顯示程序等模塊。采用的是模塊化的思路來(lái)進(jìn)行設(shè)計(jì)和編寫(xiě)程序,因?yàn)楸鞠到y(tǒng)含有兩片單片機(jī),所以程序分為數(shù)據(jù)發(fā)送模塊和數(shù)據(jù)接收模塊。3.2數(shù)據(jù)發(fā)送模塊程序主要由系統(tǒng)主程序和中斷程序構(gòu)成。主程序完成單片機(jī)的初始化,超聲波的發(fā)射和接收、計(jì)算超聲波發(fā)射點(diǎn)與障礙物之間的距離、測(cè)得數(shù)據(jù)處理、nRF24L0初始化、發(fā)送數(shù)據(jù)。由中斷程序完成數(shù)碼管顯示等。系統(tǒng)程序設(shè)計(jì)的主要的功能是發(fā)射超聲波、接受超聲波、計(jì)算測(cè)量距離、數(shù)據(jù)計(jì)算、數(shù)碼管顯示。3.2.1部分主程序voidmain(){unintdistance_data,a,b;uncharCONT_1;i=0;flag=0;Tx=0;//系統(tǒng)初始化,設(shè)置定時(shí)器工作方式,中斷的初始化TMOD=0x11;TR0=1; IT1=0;ET0=1;EX1=0;EA=1; while(1)//超聲波的發(fā)射和接收、計(jì)算出距離、測(cè)得數(shù)據(jù)處理 {EA=0;Tx=1;delay_20us();Tx=0;while(Rx==0);succeed_flag=0;EX1=1;TH1=0;TL1=0;TF1=0;TR1=1;EA=1;while(TH1<30);//延時(shí)0.3msTR1=0;EX1=0; if(succeed_flag==1) { distance_data=outcomeH;//計(jì)算距離公式distance_data<<=8;// distance_data=distance_data|outcomeL;//distance_data*=12;//distance_data/=58;//}之所以要在計(jì)數(shù)器1開(kāi)始計(jì)時(shí)后0.3ms才開(kāi)啟INT0中斷,是為了防止超聲波發(fā)射

探頭所發(fā)出的超聲波信號(hào)直接進(jìn)入接收探頭產(chǎn)生中斷信號(hào)觸發(fā)中斷,引起誤差。在超聲波信號(hào)開(kāi)始發(fā)送0.3ms以后,接收探頭已經(jīng)接收不到發(fā)射探頭直接發(fā)射過(guò)來(lái)的超聲波,此時(shí)開(kāi)啟中斷,得到的中斷觸發(fā)信號(hào)才是由液面反射回來(lái)的超聲波進(jìn)入接收探頭經(jīng)過(guò)處理后得到的信號(hào),在軟件設(shè)計(jì)中經(jīng)過(guò)這樣的處理之后,減小了系統(tǒng)誤差,提高了系統(tǒng)測(cè)量的精度。但是經(jīng)過(guò)這種處理之后,對(duì)于較高的液面,由于超聲波的回波時(shí)間減少,可能會(huì)在中斷尚未開(kāi)啟之前就已經(jīng)產(chǎn)生了中斷觸發(fā)信號(hào),此時(shí)便不能準(zhǔn)確的測(cè)量液位高度,因此系統(tǒng)會(huì)產(chǎn)生一定的盲區(qū)。經(jīng)計(jì)算,在20℃時(shí)超聲波在0.3ms時(shí)間內(nèi)可以傳播10.32cm,因此只有當(dāng)超聲波探頭距離最高液面的距離大于5.17cm時(shí),系統(tǒng)才能檢測(cè)到液面反射回來(lái)的超聲波信號(hào),才不會(huì)產(chǎn)生此種誤差;又由于超聲波在不同溫度下的傳播速度不同,因此在系統(tǒng)安裝時(shí),超聲波探頭與液體液面之間的距離應(yīng)當(dāng)大于6cm。3.2.2中斷服務(wù)程序主要是用于數(shù)碼管的顯示,每個(gè)時(shí)刻距離數(shù)據(jù)都在改變,利用中斷不斷的向數(shù)碼管寫(xiě)入數(shù)據(jù)。timer0()interrupt1//{ TH0=0xfd;// TL0=0x77; switch(flag){case0x00:P0=ge;weige=0;weishi=1;weibai=1;flag++;break; case0x01:P0=shi;weige=1;weishi=0;weibai=1;flag++;break; case0x02:P0=bai;weige=1;weishi=1;weibai=0;flag=0;break;}} 采用外部中斷1監(jiān)測(cè)超聲波的回波,用定時(shí)器0測(cè)出反射回波的時(shí)間INT1_()interrupt2{outcomeH=TH1;outcomeL=TL1;succeed_flag=1;EX1=0;}2.3無(wú)線模塊部分子函數(shù) NRF24L01Int();//無(wú)線的初始化 TxDate[0]=b;NRFSetTxMode(TxDate);//在主函數(shù)中調(diào)用,設(shè)置為發(fā)送模式,并發(fā)送數(shù)據(jù)while(CheckACK()); //檢查是否發(fā)送完成NRFSetTxMode(TxDate);//發(fā)送子函數(shù)voidNRFSetTxMode(unint*TxDate){//設(shè)置為發(fā)送模式CE=0; NRFWriteTxDate(W_REGISTER+TX_ADDR,TxAddr,TX_ADDR_WITDH);//寫(xiě)寄存器指令+接收地址使能指令+接收地址+地址寬度 NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);//為了應(yīng)答接收設(shè)備,接收通道0地址和發(fā)送地址相同 NRFWriteTxDate(W_TX_PAYLOAD,TxDate,TX_DATA_WITDH);//寫(xiě)入數(shù)據(jù)/******下面有關(guān)寄存器配置**************/ NRFWriteReg(W_REGISTER+EN_AA,0x01);//使能接收通道0自動(dòng)應(yīng)答 NRFWriteReg(W_REGISTER+EN_RXADDR,0x01);//使能接收通道0 NRFWriteReg(W_REGISTER+SETUP_RETR,0x0a);//自動(dòng)重發(fā)延時(shí)等待250us+86us,自動(dòng)重發(fā)10次 NRFWriteReg(W_REGISTER+RF_CH,0x40);//選擇射頻通道0x40 NRFWriteReg(W_REGISTER+RF_SETUP,0x07);//數(shù)據(jù)傳輸率1Mbps,發(fā)射功率0dBm,低噪聲放大器增益 NRFWriteReg(W_REGISTER+CONFIG,0x0e);//CRC使能,16位CRC校驗(yàn),上電 CE=1; Delay(5);//保持10us秒以上}3.3數(shù)據(jù)接收模塊數(shù)據(jù)接收模塊主要可以分為主函數(shù)程序、無(wú)線接收數(shù)據(jù)模塊、數(shù)據(jù)顯示模塊。3.3.1主函數(shù)voidmain(){unintflag=0; TMOD=0x01;//定時(shí)器0工作方式16位定時(shí)產(chǎn)生中斷進(jìn)行數(shù)碼管顯示 TR0=1; ET0=1; EA=1;NRF24L01Int();//無(wú)線接收模塊的初始化while(1){ NRFSetRXMode();//設(shè)置為接收模式 GetDate();//開(kāi)始接受數(shù) } }3.3.2無(wú)線接收模塊程序(1)接收部分總體流程圖如圖3.2.3所示圖3.2.3接收部分總體流程圖(2)部分接收模塊程序voidNRFSetRXMode(){CE=0; NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);//接收設(shè)備接收通道0使用和發(fā)送設(shè)備相同的發(fā)送地址NRFWriteReg(W_REGISTER+EN_AA,0x01);//使能接收通道0自動(dòng)應(yīng)答NRFWriteReg(W_REGISTER+EN_RXADDR,0x01);//使能接收通道0NRFWriteReg(W_REGISTER+RF_CH,0x40);//選擇射頻通道0x40NRFWriteReg(W_REGISTER+RX_PW_P0,TX_DATA_WITDH);//接收通道0選擇和發(fā)送通道相同有效數(shù)據(jù)寬度NRFWriteReg(W_REGISTER+RF_SETUP,0x07);//數(shù)據(jù)傳輸率1Mbps,發(fā)射功率0dBm,低噪聲放大器增益NRFWriteReg(W_REGISTER+CONFIG,0x0f);//CRC使能,16位CRC校驗(yàn),上電,接收模式CE=1; NRFDelay(5);}3.3.3數(shù)據(jù)顯示模塊//定時(shí)器0中斷,用做顯示timer0()interrupt1//定時(shí)器0中斷是1號(hào){ TH0=0xfd;//寫(xiě)入定時(shí)器0初始值 TL0=0x77; switch(flag){case0x00:P2=ge;weige=0;weishi=1;weibai=1;flag++;break; case0x01:P2=shi;weige=1;weishi=0;weibai=1;flag++;break; case0x02:P2=bai;weige=1;weishi=1;weibai=0;flag=0;break;}} 第4章設(shè)計(jì)調(diào)試與結(jié)果4.1發(fā)送端軟件設(shè)計(jì)與調(diào)試發(fā)送端采用HC-SR04超聲波測(cè)距模塊采集距離參數(shù),經(jīng)AT89S51收集處理數(shù)據(jù)再由nRF24L01模塊發(fā)送到接收端。其中包括HC-SR04和nRF24L01模塊的初始化配置。在調(diào)試的過(guò)程中采用的是分成幾部分來(lái)調(diào)試沒(méi)通電之前,先用萬(wàn)用表檢查線路的正確性,并核對(duì)元器件的型號(hào)、規(guī)格是否符合要求。特別注意電源的正負(fù)極以及電源之間是否有短路,并重點(diǎn)檢查地址總線、數(shù)據(jù)總線、控制總線是否存在相互間的短路或其他信號(hào)線的短路。晶體振蕩器和電容應(yīng)盡可能靠近單片機(jī)芯片安裝,以減少寄生電容,更好是保證振蕩器穩(wěn)定和可靠地工作。在本系統(tǒng)中我們都進(jìn)行了仔細(xì)的檢杏,所以此步驟不會(huì)發(fā)生故障,這一步如果檢查不細(xì)通電后可能會(huì)造成不可想象的后果,所以這一步也至關(guān)重要。通電后檢查各器件引腳的電位,仔細(xì)測(cè)量各點(diǎn)電位是否正常,尤其應(yīng)注意單片機(jī)的插座上的各點(diǎn)電位,若有高壓,將有可能損壞單片機(jī)仿真器。同樣,如果電壓過(guò)低就沒(méi)有能力驅(qū)動(dòng)其負(fù)載。在斷電的情況下,除單片機(jī)以外,用仿真插頭將所連接電路與單片機(jī)仿真器的仿真接口相連,為軟件調(diào)試做好準(zhǔn)備。

其中遇到的問(wèn)題很多,如印制電路線不合格,中間有些許斷路,造成調(diào)試的失敗。還有USB電源供電電壓不足的問(wèn)題,電源電壓經(jīng)過(guò)供電給負(fù)載,電壓下降0.5V,致使單片機(jī)不工作的問(wèn)題4.1.1調(diào)試顯示部分先調(diào)顯示的部分是為下一步超聲波采集數(shù)據(jù)做準(zhǔn)備,先檢查反復(fù)各個(gè)接線端是否

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論