版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
武漢理工大學(xué)《學(xué)科基礎(chǔ)課群綜合訓(xùn)練》報(bào)告《單片機(jī)應(yīng)用設(shè)計(jì)》任務(wù)書學(xué)生姓名:男神專業(yè)班級(jí):指導(dǎo)教師:龍毅宏工作單位:信息工程學(xué)院題目:基于單片機(jī)的2.4G無(wú)線通信系統(tǒng)課程設(shè)計(jì)目的:1、熟悉單片機(jī)應(yīng)用系統(tǒng)的硬件設(shè)計(jì)及軟件設(shè)計(jì)的基本方法;將《單片機(jī)原理與應(yīng)用》理論課的理論知識(shí)應(yīng)用于實(shí)際的應(yīng)用系統(tǒng)中;訓(xùn)練單片機(jī)應(yīng)用技術(shù),鍛煉實(shí)際動(dòng)手能力提高正確地撰寫論文的基本能力。課程設(shè)計(jì)內(nèi)容和要求完成硬件電路的設(shè)計(jì),其中包括單片機(jī)和NRF24L01芯片模塊的設(shè)計(jì);完成無(wú)線通信模塊的程序設(shè)計(jì)與實(shí)現(xiàn),上機(jī)運(yùn)行調(diào)試程序,記錄實(shí)驗(yàn)結(jié)果(如圖表等),并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析和總結(jié);
課程設(shè)計(jì)報(bào)告書按學(xué)校統(tǒng)一規(guī)范來(lái)撰寫,報(bào)告主要包括以下內(nèi)容:目錄、摘要、關(guān)鍵詞、基本原理、方案論證、硬件設(shè)計(jì)、軟件設(shè)計(jì)(帶流程圖、程序清單)、仿真結(jié)果、實(shí)物運(yùn)行結(jié)果照片、結(jié)論、參考文獻(xiàn)等;查閱不少于6篇參考文獻(xiàn)。初始條件:STC89C52和NRF24L01模塊;先修課程:?jiǎn)纹瑱C(jī)原理與應(yīng)用。時(shí)間安排:第19周,安排設(shè)計(jì)任務(wù),完成硬件設(shè)計(jì);第20周,完成軟件設(shè)計(jì)、撰寫報(bào)告,答辯。指導(dǎo)教師簽名:年月日系主任(或責(zé)任教師)簽名:年月日
目錄摘要 摘要隨著現(xiàn)代信息技術(shù)的飛速發(fā)展,數(shù)據(jù)的無(wú)線傳輸在工業(yè)、農(nóng)業(yè)及人們的日常生活中扮演著一個(gè)越來(lái)越重要的角色,它對(duì)人們的生活具有很大的影響,所以數(shù)據(jù)的無(wú)線傳輸應(yīng)用的設(shè)計(jì)與研究有十分重要的意義。本文給出了一種基于單片機(jī)的2.4G無(wú)線通信系統(tǒng),主要采用STC89C52單片機(jī)與NRF24L01無(wú)線通信模塊進(jìn)行半雙工通信,通過(guò)按鍵輸入數(shù)據(jù),LCD1602顯示發(fā)送和接收到的信息。文中主要介紹了單片機(jī)、無(wú)線通信模塊的工作原理,系統(tǒng)的各模塊設(shè)計(jì),以及程序設(shè)計(jì),硬件電路設(shè)計(jì)。結(jié)果表明該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,可靠,功耗較低,成本低,能夠滿足設(shè)計(jì)要求。關(guān)鍵詞:STC89C52NRF24L01通信
AbstractWiththerapiddevelopmentofmoderninformationtechnology,wirelessdatatransmissioninindustry,agricultureandPeople'sDailylifeplayanincreasinglyimportantrole,ithasagreatinfluenceonpeople'slives,sothedesignofthewirelesstransmissionofdataapplicationandtheresearchhastheveryvitalsignificance.Thispaperpresentsa2.4Gwirelesscommunicationsystembasedonsinglechipmicrocomputer,mainlyadoptsSTC89C52MCUNRF24L01wirelesscommunicationmodulewithhalfduplexcommunication,throughthepressedkeyinputdata,LCD1602displaytosendandreceiveinformation.Thispapermainlyintroducestheworkingprincipleofsingle-chipcomputer,wirelesscommunicationmodule,themoduledesignofthesystem,aswellasprogramdesign,hardwarecircuitdesign.Theresultsshowthatthesystemhassimplestructure,reliable,lowpowerconsumption,lowcost.Tomeetthedesignrequirements
Keywords:STC89C52NRF24L01communication
1緒論隨著現(xiàn)代信息技術(shù)的飛速發(fā)展,數(shù)據(jù)的無(wú)線傳輸在工業(yè)、農(nóng)業(yè)及人們的日常生活中扮演著一個(gè)越來(lái)越重要的角色,并且已滲透到社會(huì)的各個(gè)角落,有著廣闊的市場(chǎng)和業(yè)務(wù)需要。它對(duì)人們的生活具有很大的影響,所以數(shù)據(jù)的無(wú)線傳輸應(yīng)用的設(shè)計(jì)與研究有十分重要的意義。目前主要的無(wú)線技術(shù)有:藍(lán)牙(Bluetooth),紅外數(shù)據(jù)傳輸(IrDA),無(wú)線局域網(wǎng)(Wi—Fi)、ZigBee等。Bluetooth是無(wú)線數(shù)據(jù)和語(yǔ)音傳輸?shù)拈_(kāi)放式標(biāo)準(zhǔn),它將各種通信設(shè)備、計(jì)算機(jī)及其終端設(shè)備、各種數(shù)字?jǐn)?shù)據(jù)系統(tǒng)、甚至家用電器采用無(wú)線方式聯(lián)接起來(lái)。由于藍(lán)牙采用無(wú)線接口來(lái)代替有線電纜連接,具有很強(qiáng)的移植性,并且適用于多種場(chǎng)合,加上該技術(shù)功耗低、對(duì)人體危害小,而且應(yīng)用簡(jiǎn)單、容易實(shí)現(xiàn),所以易于推廣。但同時(shí)其應(yīng)用成本升高,普及難度增大,且通信速率較慢;IrDA是一種利用紅外線進(jìn)行點(diǎn)對(duì)點(diǎn)通信的技術(shù),是第一個(gè)實(shí)現(xiàn)無(wú)線個(gè)人局域網(wǎng)(PAN)的技術(shù),但它對(duì)于點(diǎn)對(duì)多點(diǎn)的通信顯得無(wú)能為力,且紅外技術(shù)只能在視線可以達(dá)到的范圍內(nèi)定向傳輸,中間不能有任何阻擋,同時(shí)要求通信設(shè)備的位置相對(duì)固定,這樣就無(wú)法應(yīng)用于移動(dòng)設(shè)備;Wi—Fi是以太網(wǎng)的一種無(wú)線擴(kuò)展,主要目的是提供WLAN接人,但由于其硬件實(shí)現(xiàn)需要很大的容納空間,且往往在商用計(jì)算機(jī)系統(tǒng)中實(shí)現(xiàn),這就限制了其在工業(yè)領(lǐng)域,尤其是在某些不依賴通用計(jì)算機(jī)的特殊工業(yè)場(chǎng)合的應(yīng)用。ZigBee技術(shù)是一種短距離、低功耗的無(wú)線通信技術(shù),主要用于距離短、功耗低且傳輸速率不高的各種電子設(shè)備之間進(jìn)行數(shù)據(jù)傳輸以及典型的有周期性數(shù)據(jù)、間歇性數(shù)據(jù)和低反應(yīng)時(shí)間數(shù)據(jù)傳輸?shù)膽?yīng)用。針對(duì)這些問(wèn)題提出了一種功耗低、成本低且利于在嵌入式系統(tǒng)中實(shí)現(xiàn)的基于單片機(jī)的無(wú)線通信系統(tǒng),它基于無(wú)需申請(qǐng)就可使用的2.4GISM頻段,可廣泛適用于消費(fèi)類電子、無(wú)線遙控玩具、汽車用自動(dòng)化、家庭自動(dòng)化控制及建筑安全裝置等領(lǐng)域。
2系統(tǒng)整體方案設(shè)計(jì)設(shè)計(jì)要求以STC89C52單片機(jī)為主控,NRF24L01模塊作為無(wú)線通信模塊,剩余需要設(shè)計(jì)的主要有輸入和輸出顯示設(shè)備。輸入設(shè)備常用的主要有按鍵和串口,按鍵硬件簡(jiǎn)單,能夠輸出的1、0兩種電平,傳遞的信息速度較慢,程序時(shí)間簡(jiǎn)單;串口通過(guò)電腦能夠一次性發(fā)送大量數(shù)據(jù),數(shù)據(jù)傳輸速率快,程序?qū)崿F(xiàn)相對(duì)較復(fù)雜,并且需要電腦來(lái)傳遞數(shù)據(jù)不利于系統(tǒng)的獨(dú)立工作。考慮到目前學(xué)習(xí)的深度以及實(shí)現(xiàn)的便捷性,采用按鍵實(shí)現(xiàn)1、0兩種信號(hào)的輸入,根據(jù)數(shù)字電路的知識(shí),僅通過(guò)1、0兩種信號(hào)就能傳遞出目前計(jì)算機(jī)所有的信息,能夠?qū)崿F(xiàn)要求的無(wú)線通信系統(tǒng)。輸出顯示設(shè)備主要有小燈、液晶、串口等設(shè)備。小燈通過(guò)亮滅來(lái)代表高低電平,硬件電路簡(jiǎn)單控制程序簡(jiǎn)單。液晶主要有LCD1602和LCD12864兩種,具有字符顯示功能,硬件接口使用較多,程序控制較復(fù)雜但現(xiàn)實(shí)的信息豐富,能夠靈活的顯示各種調(diào)試的信息,大大加快代碼的調(diào)試進(jìn)度。串口通過(guò)電腦能夠一次性發(fā)送大量數(shù)據(jù),數(shù)據(jù)傳輸速率快,程序?qū)崿F(xiàn)相對(duì)較復(fù)雜,并且需要電腦來(lái)傳遞數(shù)據(jù)不利于系統(tǒng)的獨(dú)立工作??紤]到系統(tǒng)程序的調(diào)試,采用液晶作為顯示設(shè)備,根據(jù)實(shí)際需要以及元件價(jià)格采用LCD1602作為輸出顯示設(shè)備。系統(tǒng)框圖如圖1所示。圖1系統(tǒng)框圖
3基本原理3.1STC89C52微處理器STC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有8K字節(jié)系統(tǒng)可編程Flash存儲(chǔ)器。STC89C52使用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進(jìn)使得芯片具有傳統(tǒng)51單片機(jī)不具備的功能。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。STC89C52具有如下基本功能:8k字節(jié)Flash,512字節(jié)RAM,32位I/O口線,看門狗定時(shí)器,內(nèi)置4KBEEPROM,復(fù)位電路,3個(gè)16位定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷,一個(gè)7向量4級(jí)中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級(jí)中斷結(jié)構(gòu)),全雙工串行口。另外STC89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻率35MHz,6T/12T可選。因此其基本特性表現(xiàn)為:8K字節(jié)程序存儲(chǔ)空間,512字節(jié)數(shù)據(jù)存儲(chǔ)空間,內(nèi)帶4K字節(jié)EEPROM存儲(chǔ)空間,可直接使用串口下載。STC89C52器件參數(shù)如下:1、增強(qiáng)型8051單片機(jī),6時(shí)鐘/機(jī)器周期和12時(shí)鐘/機(jī)器周期可以任意選擇,指令代碼完全兼容傳統(tǒng)8051。2、工作電壓:5.5V~3.3V(5V單片機(jī))/3.8V~2.0V(3V單片機(jī))。3、工作頻率范圍:0~40MHz,相當(dāng)于普通8051的0~80MHz,實(shí)際工作頻率可達(dá)48MHz。4、用戶應(yīng)用程序空間為8K字節(jié)。5、片上集成512字節(jié)RAM。6、通用I/O口(32個(gè)),復(fù)位后為:P1/P2/P3是準(zhǔn)雙向口/弱上拉,P0口是漏極開(kāi)路輸出,作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為I/O口用時(shí),需加上拉電阻。7、ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無(wú)需專用編程器,無(wú)需專用仿真器,可通過(guò)串口(RXD/P3.0,TXD/P3.1)直接下載用戶程序,數(shù)秒即可完成一片。8、具有EEPROM功能。9、共3個(gè)16位定時(shí)器/計(jì)數(shù)器,即定時(shí)器T0、T1、T210、外部中斷4路,下降沿中斷或低電平觸發(fā)電路,PowerDown模式可由外部中斷低電平觸發(fā)中斷方式喚醒。11、通用異步串行口(UART),還可用定時(shí)器軟件實(shí)現(xiàn)多個(gè)UART。12、工作溫度范圍:-40~+85℃(工業(yè)級(jí))/0~75℃(商業(yè)級(jí))。13、PDIP封裝。STC89C52管腳圖如圖2所示。圖2STC89C52管腳圖3.2NRF24L01無(wú)線通信模塊3.2.1NRF24L01芯片概述NRF24L01是由NORDIC生產(chǎn)的工作在2.4GHz~2.5GHz的ISM頻段的單片無(wú)線收發(fā)器芯片。無(wú)線收發(fā)器包括:頻率發(fā)生器、增強(qiáng)型“SchockBurst”模式控制器、功率放大器、晶體振蕩器、調(diào)制器和解調(diào)器。輸出功率頻道選擇和協(xié)議的設(shè)置可以通過(guò)SPI接口進(jìn)行設(shè)置。幾乎可以連接到各種單片機(jī)芯片,并完成無(wú)線數(shù)據(jù)傳送工作。其電流消耗極低:當(dāng)工作在發(fā)射模式下發(fā)射功率為0dBm時(shí)電流消耗為11.3mA,接收模式時(shí)為12.3mA,掉電模式和待機(jī)模式下電流消耗更低。其主要應(yīng)用領(lǐng)域包括:無(wú)線鼠標(biāo)、鍵盤、游戲機(jī)操縱桿、無(wú)線門禁、無(wú)線數(shù)據(jù)通訊、安防系統(tǒng)、遙控裝置、遙感勘測(cè)和玩具等領(lǐng)域,因此應(yīng)用十分廣泛。NRF24L01器件參數(shù)如下所示:1、小體積,QFN204x4mm封裝。2、寬電壓工作范圍,1.9V~3.6V,輸入引腳可承受5V電壓輸入。3、工作溫度范圍,-40℃~+80℃。4、工作頻率范圍,2.400GHz~2.525GHz。5、發(fā)射功率可選擇為0dBm、-6dBm、-12dBm和-18dBm。6、數(shù)據(jù)傳輸速率支持1Mbps、2Mbps。7、低功耗設(shè)計(jì),接收時(shí)工作電流12.3mA,0dBm功率發(fā)射時(shí)11.3mA,掉電模式時(shí)僅為900nA。8、126個(gè)通訊通道,6個(gè)數(shù)據(jù)通道,滿足多點(diǎn)通訊和調(diào)頻需要9、增強(qiáng)型“ShockBurst”工作模式,硬件的CRC校驗(yàn)和點(diǎn)對(duì)多點(diǎn)的地址控制。10、數(shù)據(jù)包每次可傳輸1~32Byte的數(shù)據(jù)11、4線SPI通訊端口,通訊速率最高可達(dá)8Mbps,適合與各種MCU連接。12、可通過(guò)軟件設(shè)置工作頻率、通訊地址、傳輸速率和數(shù)據(jù)包長(zhǎng)度。13、MCU可通過(guò)IRQ引腳快判斷是否完成數(shù)據(jù)接收和數(shù)據(jù)發(fā)送。NRF24L01芯片共有20個(gè)引腳,其管腳圖如圖3所示:圖3NRF24L01管腳圖各引腳功能如下:CE:使能發(fā)射或接收;CSN、SCK、MOSI、MISO:SPI引腳端,微處理器可通過(guò)此引腳配置NRF24L01;IRQ:中斷標(biāo)志位;VDD:電源輸入端,+1.8~+3.9V;VSS:電源地;XC1,XC2:晶體振蕩器引腳;VDD_PA:為功率放大器供電,輸出為1.8V;ANT1,ANT2:天線接口;IREF:參考電流輸入。3.2.3工作模式工作模式由CE引腳與PWR_UP、PRIM_RX兩寄存器共同控制,可以配置為發(fā)送模式、接收模式、待機(jī)模式、掉電模式。其中發(fā)送模式分為發(fā)送模式一和發(fā)送模式二。發(fā)送模式一:在進(jìn)入此模式后,只要CSN置高,在FIFO中的數(shù)據(jù)就會(huì)立即發(fā)射出去,直到所有數(shù)據(jù)發(fā)射完畢,之后進(jìn)入待機(jī)模式二。發(fā)送模式二:正常的發(fā)射模式,CE端的高電平應(yīng)至少保持10us,NRF24L01將發(fā)射一個(gè)數(shù)據(jù)包,之后進(jìn)入待機(jī)模式一。待機(jī)模式分為待機(jī)模式一和待機(jī)模式二。待機(jī)模式一:用于降低電流損耗,在該模式下晶體振蕩器仍然是工作的。待機(jī)模式二:在當(dāng)FIFO寄存器為空且CE=1時(shí)進(jìn)入此模式。待機(jī)模式下,所有配置字仍然保留。在掉電模式下電流損耗最小,同時(shí)NRF24L01也不工作,但其所有配置寄存器的值仍然保留。具體工作模式轉(zhuǎn)變見(jiàn)圖4。圖4工作模式3.2.4工作原理發(fā)射數(shù)據(jù)時(shí),首先將NRF24L01配置為發(fā)射模式:接著把接收節(jié)點(diǎn)地址TX_ADDR和有效數(shù)據(jù)TX_PLD按照時(shí)序由SPI口寫入NRF24L01緩存區(qū),TX_PLD必須在CSN為低時(shí)連續(xù)寫入,而TX_ADDR在發(fā)射時(shí)寫入一次即可,然后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從TXFIFO中清除;若未收到應(yīng)答,則自動(dòng)重新發(fā)射該數(shù)據(jù)(自動(dòng)重發(fā)已開(kāi)啟),若重發(fā)次數(shù)(ARC)達(dá)到上限,MAX_RT置高,TXFIFO中數(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ǔ)在RXFIFO中,同時(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。在寫寄存器之前一定要進(jìn)入待機(jī)模式或掉電模式。3.3SPI串行外設(shè)接口SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時(shí)為PCB的布局上節(jié)省空間,提供方便。SPI的通信原理很簡(jiǎn)單,它以主從方式工作,這種模式通常有一個(gè)主設(shè)備和一個(gè)或多個(gè)從設(shè)備,需要至少4根線,事實(shí)上3根也可以(單向傳輸時(shí))。也是所有基于SPI的設(shè)備共有的,它們是MISO(數(shù)據(jù)輸入)、MOSI(數(shù)據(jù)輸出)、SCK(時(shí)鐘)、CSN(片選)。SPI時(shí)序較簡(jiǎn)單,主要是在SCK時(shí)鐘的控制下,兩個(gè)雙向移位寄存器進(jìn)行數(shù)據(jù)交換,上升沿發(fā)送、下降沿接收、高位先發(fā)送。上升沿到來(lái)的時(shí)候,MOSI上的電平將被發(fā)送到從設(shè)備的寄存器中,下降沿到來(lái)的時(shí)候,MISO上的電平將被接收到主設(shè)備的寄存器中。具體時(shí)序圖如圖5、圖6所示。圖5SPI讀操作時(shí)序圖6SPI寫操作時(shí)序NRF24L01與STC89C52單片機(jī)采用4線SPI通信協(xié)議進(jìn)行通信,由于STC89C52單片機(jī)并沒(méi)有SPI通信接口,故采用4個(gè)IO口進(jìn)行模擬SPI通信,最大數(shù)據(jù)傳輸速度能達(dá)到10Mbps。采用特殊的SPI指令快速訪問(wèn)最頻繁使用的功能,其指令為8bit,有簡(jiǎn)單的寄存器配置映射圖。其指令如圖7所示。圖7SPI指令格式3.4LCD1602液晶顯示LCD1602也叫1602字符型液晶,它是一種專門用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形。1602是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個(gè)字符液晶模塊。1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:GND為電源地。第2腳:VCC接5V電源正極。第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高(對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度)。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。第5腳:RW為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。第6腳:EN端為使能端,高電平時(shí)讀取信息,負(fù)跳變時(shí)執(zhí)行指令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。LCD1602采用3.3V或5V供電電壓,對(duì)比度可調(diào),內(nèi)含復(fù)位電路,能夠提供各種控制命令如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能。其有80字節(jié)顯示數(shù)據(jù)存儲(chǔ)器DDRAM,內(nèi)建有192個(gè)5X7點(diǎn)陣的字型的字符發(fā)生器CGROM,8個(gè)可由用戶自定義的5X7的字符發(fā)生器CGRAM。由于其功耗低、體積小、顯示內(nèi)容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中。實(shí)物圖如圖8所示。圖8LCD1602實(shí)物圖
4硬件電路設(shè)計(jì)4.1STC89C52最小系統(tǒng)設(shè)計(jì)對(duì)于STC89C52單片機(jī)電路,主要設(shè)計(jì)出其最小系統(tǒng),包括:電源濾波電路,晶體振蕩電路,復(fù)位電路。單片機(jī)采用+5V電源進(jìn)行供電,由于空氣中存在電磁干擾,不利于電壓的穩(wěn)定,需要添加濾波電路。電源濾波電路包括一個(gè)100μF電容和幾個(gè)0.1μF電容進(jìn)行去耦。復(fù)位電路采用按鍵加電容組合,具備上電復(fù)位和手動(dòng)按鍵復(fù)位的功能。上電復(fù)位:RC在通電瞬間的充電過(guò)程中,RST引腳會(huì)出現(xiàn)一定寬度的正脈沖,只要該正脈沖保持10ms以上,就能保證單片機(jī)自動(dòng)復(fù)位。晶振電路加入2個(gè)20pF的電容,主要是幫組晶振起振,并維持震蕩信號(hào)的穩(wěn)定。電路圖如圖9所示。圖9單片機(jī)最小系統(tǒng)電路4.2外設(shè)電路設(shè)計(jì)NRF24L01無(wú)線通信模塊,由于該模塊制作比較復(fù)雜,電感等原件不利于焊接等,因此此設(shè)計(jì)中采用現(xiàn)有的模塊,其電路如圖10所示。圖10NRF24L01通信模塊電路采用3個(gè)按鍵加上拉電阻構(gòu)成輸入設(shè)備,電路圖如圖11所示。圖11按鍵輸入設(shè)備電路由于NRF24L01無(wú)線通信模塊采用1.9~3.9V電壓進(jìn)行供電,一旦超出3.9V電壓極可能出現(xiàn)燒毀現(xiàn)象,而STC89C52單片機(jī)采用+5V電壓供電,因此需要一個(gè)電壓轉(zhuǎn)換電路。采用ASM1117芯片進(jìn)行5V轉(zhuǎn)3.3V對(duì)無(wú)線通信模塊進(jìn)行供電,根據(jù)ASM1117芯片數(shù)據(jù)手冊(cè),在輸入和輸出之間均需要加入濾波電容。其電路如圖12所示。圖12ASM1117電壓轉(zhuǎn)換電路采用LCD1602進(jìn)行接收和發(fā)送數(shù)據(jù)的顯示,由于STC89C52單片機(jī)P0口無(wú)上拉電阻,不能輸出高電平,故在與P0口連接的DB0~DB7接入上拉電阻,使P0口能夠正常輸出高電平。V0引腳為背光對(duì)比度調(diào)節(jié)電阻,接一個(gè)10K的可調(diào)電阻以保證液晶能夠正常顯示。電路如圖13所示。圖13LCD1602原理圖4.3系統(tǒng)整體電路系統(tǒng)整體電路如下所示,各引腳之間沒(méi)有采用線直接連接,而是通過(guò)net進(jìn)行連接。圖14系統(tǒng)整體電路圖
5軟件程序設(shè)計(jì)5.1編程軟件KEIL簡(jiǎn)介KeilC51是美國(guó)KeilSoftware公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、鏈接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(μVision)將這些部分組合在一起。運(yùn)行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。在使用C語(yǔ)言編程時(shí),那么Keil幾乎就是不二之選,即使不使用C語(yǔ)言而僅用匯編語(yǔ)言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)事半功倍。KeilC51單片機(jī)軟件開(kāi)發(fā)系統(tǒng)工具包的整體結(jié)構(gòu),μVision與Ishell分別是C51forWindows和forDos的集成開(kāi)發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標(biāo)文件(.obj)。目標(biāo)文件可由LIB51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.abs)。abs文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。使用獨(dú)立的Keil仿真器時(shí),注意事項(xiàng):1、仿真器標(biāo)配11.0592MHz的晶振,但用戶可以在仿真器上的晶振插孔中換插其他頻率的晶振。2、仿真器上的復(fù)位按鈕只復(fù)位仿真芯片,不復(fù)位目標(biāo)系統(tǒng)。3、仿真芯片的31腳(/EA)已接至高電平,所以仿真時(shí)只能使用片內(nèi)ROM,不能使用片外ROM;但仿真器外引插針中的31腳并不與仿真芯片的31腳相連,故該仿真器仍可插入到擴(kuò)展有外部ROM(其CPU的/EA引腳接至低電平)的目標(biāo)系統(tǒng)中使用。采用Keil具有眾多優(yōu)點(diǎn):KeilC51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用C來(lái)開(kāi)發(fā),體會(huì)更加深刻。5.1主程序設(shè)計(jì)主程序main.c運(yùn)行時(shí),先進(jìn)入main();函數(shù)進(jìn)行運(yùn)行。首先,開(kāi)總中斷,初始化LCD1602,初始化NRF24L01無(wú)線通信模塊,設(shè)置相應(yīng)的通信參數(shù)。接著配置定時(shí)器0為工作方式1定時(shí)2ms。進(jìn)入while(1)主循環(huán),使用KeyDriver()函數(shù)判斷按鍵是否按下,如果按下則調(diào)用KeyAction()函數(shù)執(zhí)行相應(yīng)的操作(包括無(wú)線發(fā)射模塊的發(fā)送,液晶清屏)。接著設(shè)置進(jìn)入接收模式,如果接收到數(shù)據(jù),判斷數(shù)據(jù)并在液晶上顯示。同時(shí)每2ms進(jìn)入中斷對(duì)按鍵狀態(tài)進(jìn)行掃描,將狀態(tài)值寫入KeySta[]數(shù)組當(dāng)中,在主循環(huán)中判定按鍵是否按下和彈起。程序流程框圖如圖15所示。圖15程序流程圖5.2外設(shè)程序設(shè)計(jì)外設(shè)驅(qū)動(dòng)程序主要包括LCD1602.c、SPI.c、NRF24L01.c。LCD1602.c文件當(dāng)中包括初始化函數(shù)InitLcd1602();設(shè)置顯示起始RAM地址函數(shù)LcdSetCursor(uint8x,uint8y);清屏函數(shù)LcdClearScreen();向LCD1602寫一字節(jié)數(shù)據(jù)函數(shù)LcdWriteDat(uint8dat);LCD1602寫命令函數(shù)LcdWriteCmd(uint8cmd);以及查詢LCD1602是否就緒的LcdWaitReady()函數(shù);最后在主函數(shù)或其他需要的地方調(diào)用LcdShowChar(uint8x,uint8y,uint8chr)函數(shù)來(lái)顯示單個(gè)字符;調(diào)用LcdShowStr(uint8x,uint8y,uint8*str)函數(shù)來(lái)顯示字符串。LCD1602初始化程序如下。voidInitLcd1602(){LcdWriteCmd(0x38);//16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口LcdWriteCmd(0x0C);//顯示器開(kāi),光標(biāo)關(guān)閉LcdWriteCmd(0x06);//文字不動(dòng),地址自動(dòng)+1LcdWriteCmd(0x01);//清屏}SPI.c文件當(dāng)中主要包含讀寫函數(shù)。SPI_RW(uint8num)函數(shù)、SPI_Read(uint8reg)函數(shù)、SPI_RW_Reg(uint8reg,uint8value)函數(shù)、SPI_Read_Buf(uint8reg,uint8*pBuf,uint8nBytes)函數(shù)、SPI_Write_Buf(uint8reg,uint8*pBuf,uint8nBytes)函數(shù)。通過(guò)spi這些函數(shù)完成單片機(jī)與NRF24L01無(wú)線通信模塊之間的通信。NRF24L01.c文件主要包括:模塊初始化函數(shù)Init_NRF24L01(void);數(shù)據(jù)發(fā)送函數(shù)NRF24L01_TxBuffer(uint8*tx_buf);接收模式設(shè)置函數(shù)SetRX_Mode(void);數(shù)據(jù)接收函數(shù)NRF24L01_RxBuffer(uint8*rx_buf);其中初始化函數(shù)如下所示。voidInit_NRF24L01(void){Delay_us(100); CE=0;//chipenable CSN=1;//SPIdisable SCK=0;// SPI_Write_Buf(WRITE_REG+TX_ADDR,TX_ADDRESS,TX_ADR_WIDTH);//寫發(fā)送地址 SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,RX_ADDRESS,RX_ADR_WIDTH);//寫接收端地址,數(shù)據(jù)通道0 SPI_RW_Reg(WRITE_REG+EN_AA,0x01);//數(shù)據(jù)通道0自動(dòng)應(yīng)答 SPI_RW_Reg(WRITE_REG+EN_RXADDR,0x01);//允許接收地址頻道0 SPI_RW_Reg(WRITE_REG+RF_CH,0);//設(shè)置信道工作頻率為2.4GHz,收發(fā)必須一致 SPI_RW_Reg(WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);//設(shè)置接收數(shù)據(jù)長(zhǎng)度,本次設(shè)置為32字節(jié) SPI_RW_Reg(WRITE_REG+RF_SETUP,0x07); //設(shè)置發(fā)射速率為1MHz,發(fā)射功率最大值為0dB}按鍵驅(qū)動(dòng)掃描在中斷中完成,通過(guò)定時(shí)器0定時(shí)2ms,將連續(xù)5次的掃描值記錄在KeySta[]數(shù)組中,在主程序中判斷是否按下彈起。其中按鍵0按下發(fā)送數(shù)據(jù)1并在液晶顯示1,;按鍵1按下發(fā)送數(shù)據(jù)2,并在液晶顯示0;按鍵2按下發(fā)送數(shù)據(jù)3,并且液晶清屏。當(dāng)接收端接收到數(shù)據(jù)1時(shí)液晶顯示數(shù)據(jù)1,接收端接收到數(shù)據(jù)2時(shí)液晶顯示數(shù)據(jù)0;當(dāng)接收端接收到數(shù)據(jù)3時(shí)清除液晶屏幕。KeyScan()函數(shù)如下所示。voidKeyScan(){ staticuint8keybuf[3]={0xFF,0xFF,0xFF}; uint8i; keybuf[0]=(keybuf[0]<<1)|KEY1; keybuf[1]=(keybuf[1]<<1)|KEY2; keybuf[2]=(keybuf[2]<<1)|KEY3; for(i=0;i<3;i++) { if((keybuf[i]&0x1F)==0x00) //按下10ms消抖 { KeySta[i]=0; } elseif((keybuf[i]&0x1F)==0x1F)//彈起 { KeySta[i]=1; } }}
6實(shí)物制作電路板正面如圖16所示,電路板反面如圖17所示。圖16電路板正面圖圖17電路板反面圖通信設(shè)備1發(fā)送數(shù)據(jù)10101111001并顯示在LCD1602第一行t:之后,接收端顯示接收的數(shù)據(jù)在r:之后,如圖18所示??梢钥匆?jiàn)通信正常。圖18設(shè)備1發(fā)送設(shè)備2接收通信設(shè)備2發(fā)送數(shù)據(jù)100111101并顯示在LCD1602第一行t:之后,接收端顯示接收的數(shù)據(jù)在r:之后,如圖19所示??梢钥匆?jiàn)通信正常。圖19設(shè)備2發(fā)送設(shè)備1接收
7總結(jié)分析本次課程設(shè)計(jì)設(shè)計(jì)了一個(gè)基于單片機(jī)的2.4GHz無(wú)線通信系統(tǒng),采用STC89C52單片機(jī)作為主控制器,采用低功耗的NRF24L01無(wú)線通信模塊作為通信設(shè)備進(jìn)行無(wú)線通信,以按鍵作為輸入設(shè)備,LCD1602作為輸出設(shè)備,成功的實(shí)現(xiàn)了信號(hào)的輸出,數(shù)據(jù)傳輸以及信息的顯示,系統(tǒng)運(yùn)行穩(wěn)定,取得了預(yù)期的效果。基于51系列單片機(jī)的無(wú)線收發(fā)系統(tǒng)對(duì)低成本、低功耗、功能強(qiáng)等特點(diǎn)的要求得以充分體現(xiàn),從而使得高性價(jià)比的無(wú)線收發(fā)系統(tǒng)能夠?qū)崿F(xiàn)向日常應(yīng)用和工業(yè)檢測(cè)等更廣領(lǐng)域的快速推廣成為可能。在電路設(shè)計(jì)中查閱了大量資料,確保電路設(shè)計(jì)的正確性,并通過(guò)硬件的焊接以及檢測(cè)并結(jié)合簡(jiǎn)單的軟件測(cè)試將硬件成功的制作出來(lái)。在進(jìn)行軟件程序編寫時(shí),采用了模塊化編寫方式,首先對(duì)簡(jiǎn)單的按鍵程序進(jìn)行編寫與調(diào)試,接著對(duì)LCD1602顯示設(shè)備進(jìn)行調(diào)試,以方便接下來(lái)的程序調(diào)試。最后,對(duì)無(wú)線通信模塊進(jìn)行編寫,先根據(jù)數(shù)據(jù)手冊(cè)寫出SPI程序,再編寫NRF24L01的發(fā)送接收程序,逐步測(cè)試。測(cè)試過(guò)程中出現(xiàn)接收方接收狀態(tài)標(biāo)志位RX_DR一直為1的情況,經(jīng)過(guò)長(zhǎng)時(shí)間的調(diào)試以及相應(yīng)資料的查詢,終于解決的此問(wèn)題。在硬件設(shè)計(jì)的過(guò)程中,使我感到標(biāo)準(zhǔn)的52系列的單片機(jī)的數(shù)據(jù)通信能力開(kāi)始顯得捉襟見(jiàn)肘,并難以與許多新型數(shù)據(jù)接口直接連接。這主要是因?yàn)闃?biāo)準(zhǔn)52系列單片機(jī)本身提供的數(shù)據(jù)傳輸接口只有8位并行數(shù)據(jù)和全雙工串行數(shù)據(jù)接口兩種,而沒(méi)有以硬件的形式提供其他各類新型數(shù)據(jù)傳輸接口。采用標(biāo)準(zhǔn)52系列單片機(jī)的應(yīng)用系統(tǒng)必需通過(guò)軟件或硬件方式對(duì)數(shù)據(jù)傳輸接口進(jìn)行擴(kuò)展,才能滿足數(shù)據(jù)通信速率和各種新型數(shù)據(jù)接口的需要。例如在本設(shè)計(jì)中單片機(jī)與NRF24L01之間的通信采用的是SPI通信接口協(xié)議,而STC89C52并沒(méi)有提供相應(yīng)的接口,只能通過(guò)IO口模擬的方式模擬SPI通信。通過(guò)本次課程設(shè)計(jì),使我對(duì)單片機(jī)和無(wú)線通信模塊又了更深的理解,對(duì)KEIL和AD等軟件進(jìn)一步熟悉了。同時(shí)通過(guò)自己編寫程序,對(duì)C51的編程風(fēng)格有了進(jìn)一步的理解,在編寫程序的時(shí)候通過(guò)查閱數(shù)據(jù)手冊(cè)以及相應(yīng)的資料鍛煉了相應(yīng)的能力。本系統(tǒng)是從硬件和軟件兩方面來(lái)設(shè)的,目的性強(qiáng),對(duì)自己所學(xué)知識(shí)的一個(gè)綜合能力的很好的考驗(yàn),也是發(fā)揮自我創(chuàng)新能力的挑戰(zhàn)。
8參考文獻(xiàn)[1]劉嵐尹勇等,單片計(jì)算機(jī)基礎(chǔ)及應(yīng)用(第1版),武漢理工大學(xué)出版社,2016年[2]尹勇撒繼銘等,單片計(jì)算機(jī)原理及應(yīng)用(第1版),科學(xué)出版社,2013年[3]謝自美.電子線路設(shè)計(jì)·實(shí)驗(yàn)·測(cè)試(第3版),華中科技大學(xué)出版社,2014年[4]劉教瑜.單片機(jī)原理及應(yīng)用.武漢理工大學(xué)出版社,2011年[5]陳小中,黃寧,趙小俠編著.單片機(jī)接口技術(shù)使用子程序.人民郵政出版社,2005年[6]常敏,王涵,范江波等編著.51單片機(jī)應(yīng)用程序開(kāi)發(fā)與實(shí)踐.電子工業(yè)出版社,2009年[7]白延敏編著.51單片機(jī)典型系統(tǒng)開(kāi)發(fā)實(shí)例精講.電子工業(yè)出版社,2009年
9附錄9.1附錄1元件清單表見(jiàn)表1。表1元件清單表元件清單表元件板一板二合計(jì)單片機(jī)最小系統(tǒng)112LCD1602112按鍵336AMS111711210μF電容11222μF電容1124.7k排阻1124.7k電阻331排10k滑阻112NRF24L01模塊112排針225排杜邦線224排電源線112排針對(duì)應(yīng)的插孔112排萬(wàn)用板1129.2附錄2主要代碼如下:*****************************************************************************************************main.c********************************************************************************************************#include<reg52.h>#include"config.h"#include"Lcd1602.h"#include"main.h"#include"Nrf24l01.h"#include"spi.h"uint8KeySta[3]={1,1,1};//按鍵狀態(tài)標(biāo)志uint8T0RH=0; //T0重載值的高字節(jié)uint8T0RL=0; //T0重載值的低字節(jié)uint8x1=2,x2=2; //液晶顯示位置bitRx_flag=0; //接收數(shù)據(jù)標(biāo)志位externuint8bdatanrf_sta;externuint8idataRxBuf[2]; //接收緩存存入idata區(qū)externuint8idataTxBuf[2]; //發(fā)送緩存voidmain(){EA=1;//開(kāi)總中斷InitLcd1602();//初始化液晶Init_NRF24L01(); //初始化NRF24L01ConfigTimer0(2); //配置定時(shí)器0LcdShowStr(0,0,"t:");LcdShowStr(0,1,"r:");while(1){ KeyDriver(); SetRX_Mode(); Rx_flag=NRF24L01_RxBuffer(RxBuf);//接收數(shù)據(jù) if(Rx_flag)//判定接收到數(shù)據(jù) { Rx_flag=0; if(RxBuf[1]) { if(RxBuf[1]==1) { LcdShowChar(x2,1,'1'); x2++; } elseif(RxBuf[1]==2) { LcdShowChar(x2,1,'0'); x2++; } elseif(RxBuf[1]==3) { LcdClearScreen(); LcdShowStr(0,0,"t:"); LcdShowStr(0,1,"r:"); x1=2; x2=2; } } }}}/*按鍵動(dòng)作函數(shù),執(zhí)行相應(yīng)的按鍵動(dòng)作*/voidKeyAction(uint8i){ if(i==0) //按鍵0按下,發(fā)送1 { LcdShowChar(x1,0,'1'); x1++; TxBuf[1]=1; NRF24L01_TxBuffer(TxBuf); TxBuf[1]=0x00; Delay(2000); } elseif(i==1) //按鍵1按下,發(fā)送0 { LcdShowChar(x1,0,'0'); x1++; TxBuf[1]=2; NRF24L01_TxBuffer(TxBuf); TxBuf[1]=0x00; Delay(2000); } elseif(i==2) //按鍵2按下,清屏 { LcdClearScreen(); LcdShowStr(0,0,"t:"); LcdShowStr(0,1,"r:"); x1=2; x2=2; TxBuf[1]=3; NRF24L01_TxBuffer(TxBuf); TxBuf[1]=0; Delay(2000); }}/*按鍵驅(qū)動(dòng)函數(shù),判定那個(gè)按鍵按下*/voidKeyDriver(){ uint8i; staticuint8pdatabackup[3]={1,1,1}; for(i=0;i<3;i++) { if(backup[i]!=KeySta[i])//檢測(cè)按鍵動(dòng)作{if(backup[i]!=0)//按鍵按下時(shí)執(zhí)行動(dòng)作{KeyAction(i);//調(diào)用按鍵動(dòng)作函數(shù)} backup[i]=KeySta[i];//刷新前一次的備份值 } }}/*按鍵掃描函數(shù)*/voidKeyScan(){ staticuint8keybuf[3]={0xFF,0xFF,0xFF}; uint8i; keybuf[0]=(keybuf[0]<<1)|KEY1; keybuf[1]=(keybuf[1]<<1)|KEY2; keybuf[2]=(keybuf[2]<<1)|KEY3; for(i=0;i<3;i++) { if((keybuf[i]&0x1F)==0x00) //按下10ms消抖 { KeySta[i]=0; } elseif((keybuf[i]&0x1F)==0x1F)//彈起 { KeySta[i]=1; } }}/*延時(shí)函數(shù)*/voidDelay(uint16s){ uint16i; for(i=0;i<s;i++); for(i=0;i<s;i++);}/*配置并啟動(dòng)T0,ms-T0定時(shí)時(shí)間*/voidConfigTimer0(uint16ms){uint32tmp;tmp=(SYS_MCLK*ms)/1000;//計(jì)算所需的計(jì)數(shù)值tmp=65536-tmp;//計(jì)算定時(shí)器重載值tmp=tmp+34;//補(bǔ)償中斷響應(yīng)延時(shí)造成的誤差T0RH=(uint8)(tmp>>8);//定時(shí)器重載值拆分為高低字節(jié)T0RL=(uint8)tmp;TMOD&=0xF0;//清零T0的控制位TMOD|=0x01;//配置T0為模式1TH0=T0RH;//加載T0重載值TL0=T0RL;ET0=1;//使能T0中斷TR0=1;//啟動(dòng)T0}/*T0中斷服務(wù)函數(shù),實(shí)現(xiàn)系統(tǒng)定時(shí)和按鍵掃描*/voidInterruptTimer0()interrupt1{TH0=T0RH;//重新加載重載值TL0=T0RL;KeyScan();//執(zhí)行按鍵掃描 }*********************************************************************************************************NRF24L01.c**************************************************************************************************************#include"NRF24L01.H"uint8bdatanrf_sta;sbitRX_DR=nrf_sta^6;sbitTX_DS=nrf_sta^5;sbitMAX_DS=nrf_sta^4; uint8idataRxBuf[2]={0}; //接收緩存存入idata區(qū)uint8idataTxBuf[2]={0}; //發(fā)送緩存uint8constTX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //本地地址uint8constRX_ADDRESS[RX_ADR_WIDTH]={
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 金融行業(yè)前臺(tái)咨詢工作總結(jié)
- 營(yíng)銷行業(yè)創(chuàng)新實(shí)踐總結(jié)
- 無(wú)人駕駛技術(shù)的前景展望
- IT行業(yè)銷售員工作總結(jié)
- 電力行業(yè)可再生能源發(fā)展顧問(wèn)工作總結(jié)
- 書店美容院保安工作經(jīng)驗(yàn)
- 金融行業(yè)中理財(cái)咨詢顧問(wèn)的工作要求
- 旅游行業(yè)導(dǎo)游培訓(xùn)總結(jié)
- 【八年級(jí)下冊(cè)地理湘教版】專項(xiàng)04 時(shí)政地理
- 2024年稅務(wù)師題庫(kù)附參考答案【輕巧奪冠】
- 衛(wèi)生化學(xué)期末考試習(xí)題2
- 瓣周漏護(hù)理查房
- 歷代反腐完整
- 《現(xiàn)代控制理論》(劉豹-唐萬(wàn)生)
- 廣東省佛山市南海區(qū)三水區(qū)2022-2023學(xué)年七年級(jí)上學(xué)期期末歷史試題(無(wú)答案)
- 重視心血管-腎臟-代謝綜合征(CKM)
- 譯林版小學(xué)英語(yǔ)六年級(jí)上冊(cè)英文作文范文
- 學(xué)術(shù)英語(yǔ)(理工類)
- 淺談“五育并舉”背景下中小學(xué)勞動(dòng)教育的探索與研究 論文
- 大樹(shù)的故事 單元作業(yè)設(shè)計(jì)
- 六年級(jí)道德與法治學(xué)情分析
評(píng)論
0/150
提交評(píng)論