




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上1前言 本次我們?nèi)诵〗M設(shè)計(jì)的是無線通信模塊,根據(jù)設(shè)計(jì)要求我們選擇了無線收發(fā)模塊nRF24L01、單片機(jī)STC89C52、LCD1602和鍵盤模塊等作為本次設(shè)計(jì)的硬件需求。首先我們與老師一起討論了一些設(shè)計(jì)的相關(guān)事宜和設(shè)計(jì)思路。接下來我們一起畫好了模擬電路圖,在老師的幫助下我們對(duì)電路圖進(jìn)行了補(bǔ)充和完善。完成這些基本工作后,在老師和同學(xué)的幫助下我們買回了自己所需的元器件。接著我們變分工完成了元器件的焊接連接和程序的編寫,然后便是模塊的上電調(diào)試,設(shè)計(jì)的答辯和設(shè)計(jì)報(bào)告的完善。我們本次之所以會(huì)選擇無線通信模塊的設(shè)計(jì),是我們覺得無線通信技術(shù)是現(xiàn)代社會(huì)中一門很重要的技術(shù),我們掌握好
2、了這門技術(shù)對(duì)以后我們的工作生活都有很大的幫助。我們本次設(shè)計(jì)的無線通信模塊雖然只是我們的一次小小的體驗(yàn),但我們都知道無線通信在我們現(xiàn)在所處的信息時(shí)代是多么的重要,如今我們生活的方方面面無不與無線通信息息相關(guān)。我們所熟悉的手機(jī)、電腦、電視等等都與無線通信有著直接的聯(lián)系。甚至在某些高端領(lǐng)域方面無線通信技術(shù)能反映一個(gè)國(guó)家的科技水平和綜合國(guó)力。我們國(guó)家的無線通信技術(shù)雖然在世界上排在了前面的位置,但與一些發(fā)達(dá)國(guó)家相比我們?nèi)稳挥泻艽蟛罹?,如太空中有差不?0%的通信衛(wèi)星是美國(guó)的。當(dāng)然我們本次設(shè)計(jì)的無線通信模塊只是很基礎(chǔ)的無線通信模塊,我們所達(dá)到的效果就是兩個(gè)模塊間能相互發(fā)送一些簡(jiǎn)單的字符和數(shù)字。2總體方案設(shè)
3、計(jì) 本次設(shè)計(jì)我們考慮用C語言和匯編去實(shí)現(xiàn)模塊的無線通信功能,但我們編寫程序時(shí)發(fā)現(xiàn)匯編語言較難寫且可讀性差,因此我們選擇了用C語言作為本次的軟件實(shí)現(xiàn)。要實(shí)現(xiàn)無線通信功能,我們選擇了小巧輕便的無線收發(fā)模塊nRF24L01。在單片機(jī)方面考慮到52系列優(yōu)于51系列且很好購(gòu)買,我們選擇了STC89C52單片機(jī)。在液晶顯示上,我們只要求能顯示一些簡(jiǎn)單的數(shù)字和字母,我們選擇了LCD1602。鍵盤輸入方面我們選擇的是44矩陣鍵盤。以上各模塊的功能信息在后面都有更為具體的介紹。圖2.1無線通信模塊框圖3單元模塊設(shè)計(jì)3.1 nRF24L01的簡(jiǎn)單介紹 nRF24L01 是 NORDIC 公司最近生產(chǎn)的一款無線通信
4、通信芯片,采用 FSK 調(diào)制,內(nèi)部集成 NORDIC 自己的 Enhanced Short Burst 協(xié)議。可以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)或是 1對(duì) 6 的無線通信。無線通信速度可以達(dá)到 2M(bps)。NORDIC 公司提供通信模塊的 GERBER 文件,可以直接加工生產(chǎn)。嵌入式工程師或是單片機(jī)愛好者只需要為單片機(jī)系統(tǒng)預(yù)留 5 個(gè) GPIO,1 個(gè)中斷輸入引腳,就可以很容易實(shí)現(xiàn)無線通信的功能,非常適合用來為 MCU系統(tǒng)構(gòu)建無線通信功能。2.4GHz 全球開放ISM頻段,最大0dBm發(fā)射功率,免許可證使用支持六路通道的數(shù)據(jù)接收低工作電壓:1.9V 3.6V 低電壓工作高速率:2Mbps,由于空中傳輸時(shí)間很短
5、,極大的降低了無線傳輸中的碰撞現(xiàn)象(軟件設(shè)置1Mbps或者2Mbps的空中傳輸速率)多頻點(diǎn):125頻點(diǎn),滿足多點(diǎn)通信和跳頻通信需要超小型:內(nèi)置2.4GHz天線,體積小巧,1529mm(包括天線)低功耗:當(dāng)工作在應(yīng)答模式通信時(shí),快速的空中傳輸及啟動(dòng)時(shí)間,極大的降低了電流消耗。低應(yīng)用成本:nRF24L01集成了所有與RF協(xié)議相關(guān)的高速信號(hào)處理部分,比如:自動(dòng)重發(fā)丟失數(shù)據(jù)包和自動(dòng)產(chǎn)生應(yīng)答信號(hào)等,nRF24L01的SPI接口可以利用單片機(jī)的硬件SPI口連接或用單片機(jī)I/O口進(jìn)行模擬,內(nèi)部有FIFO可以與各種高低速微處理器接口,便于使用低成本單片機(jī)。便于開發(fā):由于鏈路層完全集成在模塊上,非常便于開發(fā)。自
6、動(dòng)重發(fā)功能,自動(dòng)檢測(cè)和重發(fā)丟失的數(shù)據(jù)包,重發(fā)時(shí)間及自動(dòng)存儲(chǔ)未收到應(yīng)答信號(hào)的數(shù)據(jù)包自動(dòng)應(yīng)答功能,在收到有效數(shù)據(jù)后,模塊自動(dòng)發(fā)送應(yīng)答信號(hào),無須另行編程載波檢測(cè)固定頻率檢測(cè)內(nèi)置硬件CRC檢錯(cuò)和點(diǎn)對(duì)多點(diǎn)通信地址控制數(shù)據(jù)包傳輸錯(cuò)誤計(jì)數(shù)器及載波檢測(cè)功能可用于跳頻設(shè)置可同時(shí)設(shè)置六路接收通道地址,可有選擇性的打開接收通道標(biāo)準(zhǔn)插針Dip2.54MM間距接口,便于嵌入式應(yīng)用。 nRF24L01 功能框圖圖3.1nRF24L01 功能框圖 Fig.1 nRF24L01 BLOCK DIAGRAM nRF24L01 的框圖如 Fig.1所示,從單片機(jī)控制的角度來看,我們只需要關(guān)注 Fig.1 右面的六個(gè)控制和數(shù)據(jù)信號(hào)
7、,分別為 CSN、SCK、MISO、MOSI、IRQ、CE。 CSN:芯片的片選線,CSN為低電平芯片工作。 SCK:芯片控制的時(shí)鐘線(SPI 時(shí)鐘) MISO:芯片控制數(shù)據(jù)線(Master input slave output) MOSI:芯片控制數(shù)據(jù)線(Master output slave input) IRQ:中斷信號(hào)。無線通信過程中 MCU主要是通過 IRQ與 nRF24L01 進(jìn)行通信。 CE: 芯片的模式控制線。 在 CSN 為低的情況下,CE 協(xié)同 nRF24L01 的 CONFIG 寄存器共同決定 nRF24L01 的狀態(tài)(參照 nRF24L01 的狀態(tài)機(jī))。圖3.2 nRF
8、24L01實(shí)物圖nRF24L01的引腳級(jí)說明 圖3.3nRF24L01的引腳級(jí)說明 說明:(1)VCC腳接電壓范圍為1.9V 3.6V之間,不能在這個(gè)區(qū)間之外,超過3.6V將會(huì)燒毀模塊。推薦電壓3.3V左右。 (2)除電源VCC和接地端,其余腳都可以直接和普通的5V單片機(jī)IO口直接相連,無需電平轉(zhuǎn)換。當(dāng)然對(duì)3V左右的單片機(jī)更加適用了。 (3)硬件上面沒有SPI的單片機(jī)也可以控制本模塊,用普通單片機(jī)IO口模擬SPI不需要單片機(jī)真正的串口介入,只需要普通的單片機(jī)IO口 就可以了,當(dāng)然用串口也可以了3.2 STC89C52的簡(jiǎn)單介紹 STC89C52是一個(gè)低電壓,高性能cmos8位單片機(jī),片內(nèi)含8k
9、 bytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,STC89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。 其主要特性功能: 1、兼容MCS51指令系統(tǒng) 2、8k可反復(fù)擦寫(大于1000次)Flash ROM; 3、32個(gè)雙向I/O口; 4、2568bit內(nèi)部RAM; 5、3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷; 6、時(shí)鐘頻率0-24MHz; 7、2個(gè)串行中斷,可編程UART串行通道; 8、2個(gè)外部中斷源,共8個(gè)中斷源; 9、
10、2個(gè)讀寫中斷口線,3級(jí)加密位; 10、低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能; 11、有PDIP、PQFP、TQFP及PLCC等幾種封裝形式,以適應(yīng)不同產(chǎn)品的需求。STC89C52的引腳圖 圖3.4 STC89C52的引腳圖3.3 LCD1602的簡(jiǎn)單介紹 LCD1602是工業(yè)字符型液晶,能夠同時(shí)顯示1602即32個(gè)字符。(16列2行)1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊它有若干個(gè)57或者511等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。每位之間有一個(gè)點(diǎn)距的間隔每行之間也有間隔起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒茱@
11、示圖形 。圖3.5LCD1602實(shí)物圖LCD1602的引腳圖圖3.6LCD1602的引腳圖3.4 其它的器件 當(dāng)然我們本次設(shè)計(jì)還用到了一些其他的元器件,包括鍵盤、連接導(dǎo)線、排針、發(fā)光二極管、電阻、電容等等。3.5 各單元模塊的聯(lián)系 鍵盤輸入是人機(jī)交換的接口其主要功能是設(shè)置nRF24L01的工作模式和實(shí)現(xiàn)鍵盤輸入字符、數(shù)字等。單片機(jī)是主控模塊實(shí)現(xiàn)數(shù)據(jù)的儲(chǔ)存、處理,將各模塊聯(lián)系起來協(xié)調(diào)各模塊的工作。LCD1602主要功能就是顯示作用,將鍵盤輸入或接收到的信息顯示出來。4軟件設(shè)計(jì)我們搭建好硬件電路并確認(rèn)無誤后,進(jìn)行了軟件設(shè)計(jì)。本次無線通信模塊設(shè)計(jì)我們選擇了用C語言實(shí)現(xiàn)其功能,我們?cè)赑C機(jī)Keil u
12、Vision 4下編寫調(diào)試了C程序并將C程序下載到STC89C52單片機(jī)里進(jìn)行了運(yùn)行調(diào)試。圖5.1軟件實(shí)現(xiàn)的流程圖5系統(tǒng)調(diào)試 在調(diào)試環(huán)境中我們首先檢查了我們焊接的硬件電路是否有問題,如有無短路,有無虛焊等。確認(rèn)硬件電路完善無誤后。我們?cè)俅螌?duì)程序進(jìn)行了檢查與調(diào)試,都發(fā)現(xiàn)沒有問題后,我們對(duì)模塊進(jìn)行了上電并將程序下載進(jìn)去運(yùn)行調(diào)試。一開始我們發(fā)現(xiàn)并沒有達(dá)到預(yù)期的效果,發(fā)現(xiàn)鍵盤輸入與發(fā)送的字符數(shù)字不匹配,接搜端也無法搜到相應(yīng)的信號(hào)。經(jīng)過我們的仔細(xì)檢查和思考后,我們發(fā)現(xiàn)程序中定義的端口與硬件電路的端口沒有意義對(duì)應(yīng),程序的一些其他地方也并不是很完善,我們又對(duì)程序進(jìn)行了改進(jìn),對(duì)程序的改進(jìn)過程中,有時(shí)會(huì)遇到修改
13、程序后會(huì)出現(xiàn)錯(cuò)誤,這是若去一行一行的運(yùn)行調(diào)試程序就會(huì)很麻煩和花去大量的時(shí)間。這時(shí)就要認(rèn)真檢查思考程序出錯(cuò)在哪里,幾個(gè)人一起檢查就加快了效率,節(jié)約了大量時(shí)間,直到調(diào)試達(dá)到了我們所預(yù)期的效果。5.1主要問題及分析開始時(shí)我們想到的是在ISIS里畫好原理圖并仿真,但在ISIS上面我們沒有找到我們想要的元器件,因此我們只能直接去調(diào)試硬件電路。首先我們?cè)O(shè)計(jì)好程序并確認(rèn)無誤后再將程序下載到單片機(jī)里進(jìn)行硬件調(diào)試,結(jié)果我們發(fā)現(xiàn)LCD1602無顯示,經(jīng)過仔細(xì)的檢查思考后,我們發(fā)現(xiàn)我們所寫的程序與單片機(jī)和液晶屏的引腳并不是一一對(duì)應(yīng)的,經(jīng)過對(duì)程序和硬件電路的修改后液晶屏終于有了顯示。雖然液晶屏有了顯示,但我們的鍵盤輸
14、入,發(fā)送與接收還是存在問題。考慮到時(shí)間有限我們將原來的矩陣鍵盤輸入改為了較簡(jiǎn)單的單一鍵盤輸入,這樣我們解決的鍵盤輸入問題。經(jīng)過反復(fù)的調(diào)試修改后,我們的無線通信模塊終于達(dá)到的預(yù)期的效果。5.2調(diào)試工具 此次調(diào)試過程中,我們主要用到了Keil uVision 4、STC-ISP.exe、AltiumDesigner。Keil uVision 4是用來編寫程序,并編譯成HEX文件,以便下載到單片機(jī)中。當(dāng)有了HEX文件之后,要將此文件下載到單片機(jī)中,不可缺少的工具就是STC-ISP.exe。通過它,可以對(duì)單片機(jī)內(nèi)部的程序進(jìn)行反復(fù)修改。AltiumDesigner是用來查看電路原理圖,并有繪制原理圖的功
15、能,在實(shí)際調(diào)試過程中,應(yīng)當(dāng)將軟件與硬件相結(jié)合,所以電路圖的研究不可缺少。6系統(tǒng)功能、指標(biāo)參數(shù)6.1系統(tǒng)能實(shí)現(xiàn)的功能本次我們?nèi)诵〗M所做的無線通信模塊主要能實(shí)現(xiàn)兩個(gè)模塊間的一些簡(jiǎn)單通信,實(shí)現(xiàn)兩個(gè)模塊間一些簡(jiǎn)單字符、數(shù)字的發(fā)送與接收。我們先對(duì)鍵盤輸入進(jìn)行一些定義,如定義鍵盤輸入為一些字符或數(shù)字,但我們按相應(yīng)的建后就輸入相應(yīng)的字符或數(shù)字,輸入完成后,我們?cè)诎窗l(fā)送鍵,預(yù)先輸入的信息便發(fā)送了出去,接送的也會(huì)收到相應(yīng)的信息。6.2系統(tǒng)指標(biāo)參數(shù)測(cè)試在系統(tǒng)指標(biāo)參數(shù)的測(cè)試中,我們首先測(cè)試了兩個(gè)無線收發(fā)模塊間能傳輸?shù)姆秶?,?jīng)過我們多次的改變兩個(gè)模塊的距離后,我們發(fā)現(xiàn)兩個(gè)模塊能傳輸?shù)淖畲缶嚯x約為10米,在穿透效果的
16、測(cè)試中,我們發(fā)現(xiàn)兩個(gè)模塊間可以穿過一壁普通的墻,當(dāng)兩個(gè)模塊間隔有兩面及兩面以上的普通墻時(shí),兩個(gè)模塊間就很難傳輸信號(hào)了。我們?cè)噲D測(cè)試模塊的抗電磁干擾能力的測(cè)試是,我們發(fā)現(xiàn)很找到一個(gè)精確的量來描述,我們大致得出在較弱和頻率與我們用的nRF24L01的頻率相差較大時(shí)的干擾不明顯,但當(dāng)電磁干擾較強(qiáng)很干擾波頻率接近nRF24L01的頻率時(shí)的干擾較為強(qiáng)烈。6.3系統(tǒng)的指標(biāo)功能及參數(shù)分析nRF24L01的無線速率達(dá)到2 Mbit/s,SPI接口速率為08 Mbit/s,具自動(dòng)應(yīng)答機(jī)制,極大地降低丟包率,完全滿足了我們本次設(shè)計(jì)的需求。將nRF24L01配置成增強(qiáng)型ShockBurst模式,使得雙向鏈接協(xié)議執(zhí)行
17、更為簡(jiǎn)易有效。發(fā)送方要求終端設(shè)備在接收數(shù)據(jù)后有應(yīng)答信號(hào),以便發(fā)送方檢測(cè)有無數(shù)據(jù)丟失。一旦數(shù)據(jù)丟失則通過重新發(fā)送功能將丟失的數(shù)據(jù)恢復(fù)。單片機(jī)內(nèi)部EEPROM應(yīng)用子程序進(jìn)行扇區(qū)的擦除、寫入以及讀出功能,實(shí)現(xiàn)系統(tǒng)信息的讀取保存。nRF24L01在外置天線時(shí)傳輸距離可以到達(dá)25m,我們本次沒有使用外置天線,傳輸?shù)木嚯x約為10m,一切都滿足我們本次設(shè)計(jì)的需求。 7結(jié)論 本次智能測(cè)控應(yīng)用系統(tǒng)設(shè)計(jì),我們?nèi)诵〗M成功的的完成了無線通信模塊的設(shè)計(jì)與制作。雖然我們?cè)谀K的設(shè)計(jì)、制作、調(diào)試過程中也遇到了不少困難,但在老師和同學(xué)的細(xì)心指導(dǎo)幫助之下和我們自己的努力,最終還是達(dá)到了預(yù)期的效果,完成了本次的智能化測(cè)控應(yīng)用系
18、統(tǒng)設(shè)計(jì)。我們本次所設(shè)計(jì)的無線通信模塊在無線通信領(lǐng)域有著很大的發(fā)展空間,nRF24L01是一種高效率低成本的無線收發(fā)模塊,125頻點(diǎn),滿足多點(diǎn)通信和跳頻通信需要超小型:內(nèi)置2.4GHz天線,體積小巧,15x29mm(包括天線)低功耗:當(dāng)工作在應(yīng)答模式通信時(shí),快速的空中傳輸及啟動(dòng)時(shí)間,極大的降低了電流消耗。低應(yīng)用成本:nRF24L01集成了所有與RF協(xié)議相關(guān)的高速信號(hào)處理部分,比如:自動(dòng)重發(fā)丟失數(shù)據(jù)包和自動(dòng)產(chǎn)生應(yīng)答信號(hào)等,nRF24L01的SPI接口可以利用單片機(jī)的硬件SPI口連接或用單片機(jī)I/O口進(jìn)行模擬,內(nèi)部有FIFO可以與各種高低速微處理器接口,便于使用低成本單片機(jī)。便于開發(fā):由于鏈路層完全
19、集成在模塊上,非常便于開發(fā)。自動(dòng)重發(fā)功能,自動(dòng)檢測(cè)和重發(fā)丟失的數(shù)據(jù)包,重發(fā)時(shí)間及自動(dòng)存儲(chǔ)未收到應(yīng)答信號(hào)的數(shù)據(jù)包自動(dòng)應(yīng)答功能,在收到有效數(shù)據(jù)后,模塊自動(dòng)發(fā)送應(yīng)答信號(hào),無須另行編程載波檢測(cè)固定頻率檢測(cè)內(nèi)置硬件CRC檢錯(cuò)和點(diǎn)對(duì)多點(diǎn)通信地址控制數(shù)據(jù)包傳輸錯(cuò)誤計(jì)數(shù)器及載波檢測(cè)功能可用于跳頻設(shè)置可同時(shí)設(shè)置六路接收通道地址,可有選擇性的打開接收通道標(biāo)準(zhǔn)插針Dip2.54MM間距接口,便于嵌入式應(yīng)用。因此基于nRF24L01的無線通信在當(dāng)今我們的生活中有著極大的發(fā)展空間。8總結(jié)與體會(huì) 在本次智能化測(cè)控應(yīng)用系統(tǒng)設(shè)計(jì)中我們收獲了不少。在之前我們都是學(xué)習(xí)了書本上的東西,而很少將其應(yīng)用到實(shí)際中去,雖然之前我們也做過一
20、些課程設(shè)計(jì)、工藝實(shí)習(xí)之類的,但這次的課程設(shè)計(jì)更加從實(shí)。我們從選取題目,畫原理圖到購(gòu)買元器件再到焊接電路還有后面的調(diào)試測(cè)試工作我們都一一的親身經(jīng)歷并學(xué)到了不少課本上學(xué)不到的東西。以前我們學(xué)習(xí)課本上的知識(shí),覺得要將其應(yīng)用到實(shí)際中會(huì)是一件較為輕松的事,也看其他人做的東西很有意義,但我們自己實(shí)際去設(shè)計(jì)制作時(shí),才發(fā)現(xiàn)了要做好一個(gè)作品是那么的不容易,自己去做時(shí),才發(fā)現(xiàn)自己的種種不足,動(dòng)起手來是那么的笨拙。老師常常給我們講動(dòng)手能力對(duì)我們自動(dòng)化的同學(xué)有多么種要,因此我們也都一直想著要提高我們的動(dòng)手能力,這次實(shí)習(xí)對(duì)我們來說是一次難的機(jī)會(huì),對(duì)于我們提高自己的動(dòng)手能力有很大的幫助。我們不僅學(xué)到了怎樣去改進(jìn)、優(yōu)化、美
21、化電路布局,也掌握更多調(diào)試、測(cè)試電路的方法,也學(xué)到了不少怎樣去選取合適的元器件的方法。在以后的學(xué)習(xí)工作做,我們要不斷的提高自己的動(dòng)手能力,就要不斷親身去設(shè)計(jì)、自作實(shí)際的東西,這樣才不會(huì)被時(shí)代所淘汰成為對(duì)社會(huì)有用的人。9參考文獻(xiàn)1趙亮、候國(guó)銳.單片機(jī)C語言編程與實(shí)例M.北京:人民郵電出版社,2003年9月2海創(chuàng).無線收發(fā)模塊nRF24L01開發(fā)包資料J.海創(chuàng)電子科技,2010年3張毅剛.單片機(jī)原理及應(yīng)用M.北京:高等教育出版社,2010年11月4康華光.電子技術(shù)基礎(chǔ)模擬部分(第五版)M.北京:高等教育出版社,2010年5月5康華光.電子技術(shù)基礎(chǔ)數(shù)字部分(第五版)M.北京:高等教育出版社,2010
22、年11月6謝自美.電子線路設(shè)計(jì).實(shí)驗(yàn).測(cè)試M.武漢:華中科技大學(xué)出版社,2009年7月 10附錄10.1相關(guān)設(shè)計(jì)圖圖10.1無線收發(fā)模塊PCB圖圖10.2無線收發(fā)模塊電路原理總圖圖10.3正5V電源模塊圖圖10.3復(fù)位電路模塊圖圖10.4程序下載模塊接口圖圖10.5正3V電源模塊圖圖10.6單片機(jī)接口圖圖10.3顯示仿真圖圖10.4無線收發(fā)模塊實(shí)物圖10.2相關(guān)的程序無線收發(fā)模塊發(fā)送程序#include #include /*IO端口定義sbit MISO=P15;sbit MOSI=P12;sbit SCK=P13;sbit CE=P11;sbit CSN=P10;sbit IRQ=P14;
23、sbit lcdrs =P20;sbit lcden =P21;sbit key1 =P24;/發(fā)送數(shù)據(jù)鍵sbit key2 =P25;/接收數(shù)據(jù)鍵sbit key3 =P26;/清空鍵unsigned char num1,num2;unsigned char tx_Buf=0,0,0; /待發(fā)送數(shù)據(jù)unsigned char rx_Buf=0,0; /待接受數(shù)據(jù)賦0,以便接受數(shù)據(jù)/*nRF24L01*#define TX_ADR_WIDTH 5 / 5 uints TX address width /發(fā)送地址寬度#define RX_ADR_WIDTH 5 / 5 uints RX addr
24、ess width /接收地址寬度#define TX_PLOAD_WIDTH 3 / 20 uints TX payload /發(fā)送數(shù)據(jù)寬度#define RX_PLOAD_WIDTH 2 / 20 uints TX payload /接受數(shù)據(jù)寬度unsigned char const TX_ADDRESSTX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01; /本地地址unsigned char const RX_ADDRESSRX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01; /接收地址/*nRF24L01寄存器指令#define RE
25、AD_REG 0x00 / 讀寄存器指令#define WRITE_REG 0x20 / 寫寄存器指令#define RD_RX_PLOAD 0x61 / 讀取接收數(shù)據(jù)指令#define WR_TX_PLOAD 0xA0 / 寫待發(fā)數(shù)據(jù)指令#define FLUSH_TX 0xE1 / 沖洗發(fā)送 FIFO指令#define FLUSH_RX 0xE2 / 沖洗接收 FIFO指令#define REUSE_TX_PL 0xE3 / 定義重復(fù)裝載數(shù)據(jù)指令#define NOP 0xFF / 保留/*SPI(nRF24L01)寄存器地址#define CONFIG 0x00 / 配置收發(fā)狀態(tài),CRC
26、校驗(yàn)?zāi)J揭约笆瞻l(fā)狀態(tài)響應(yīng)方式#define EN_AA 0x01 / 自動(dòng)應(yīng)答功能設(shè)置#define EN_RXADDR 0x02 / 可用信道設(shè)置#define SETUP_AW 0x03 / 收發(fā)地址寬度設(shè)置#define SETUP_RETR 0x04 / 自動(dòng)重發(fā)功能設(shè)置#define RF_CH 0x05 / 工作頻率設(shè)置#define RF_SETUP 0x06 / 發(fā)射速率、功耗功能設(shè)置#define STATUS 0x07 / 狀態(tài)寄存器#define OBSERVE_TX 0x08 / 發(fā)送監(jiān)測(cè)功能#define CD 0x09 / 地址檢測(cè) #define RX_ADDR_
27、P0 0x0A / 頻道0接收數(shù)據(jù)地址#define RX_ADDR_P1 0x0B / 頻道1接收數(shù)據(jù)地址#define RX_ADDR_P2 0x0C / 頻道2接收數(shù)據(jù)地址#define RX_ADDR_P3 0x0D / 頻道3接收數(shù)據(jù)地址#define RX_ADDR_P4 0x0E / 頻道4接收數(shù)據(jù)地址#define RX_ADDR_P5 0x0F / 頻道5接收數(shù)據(jù)地址#define TX_ADDR 0x10 / 發(fā)送地址寄存器#define RX_PW_P0 0x11 / 接收頻道0接收數(shù)據(jù)長(zhǎng)度#define RX_PW_P1 0x12 / 接收頻道0接收數(shù)據(jù)長(zhǎng)度#defin
28、e RX_PW_P2 0x13 / 接收頻道0接收數(shù)據(jù)長(zhǎng)度#define RX_PW_P3 0x14 / 接收頻道0接收數(shù)據(jù)長(zhǎng)度#define RX_PW_P4 0x15 / 接收頻道0接收數(shù)據(jù)長(zhǎng)度#define RX_PW_P5 0x16 / 接收頻道0接收數(shù)據(jù)長(zhǎng)度#define FIFO_STATUS 0x17 / FIFO棧入棧出狀態(tài)寄存器設(shè)置/*/函數(shù)聲明*/*/void write_com(unsigned char com); void write_date(unsigned char date);void Delay(unsigned int s);void inerDelay_
29、us(unsigned char n);void init_nRF24L01(void);unsigned int SPI_RW(unsigned int uuchar);unsigned char SPI_Read(unsigned char reg);void SetRX_Mode(void);void tetRX_Mode(void);unsigned int SPI_RW_Reg(unsigned char reg, unsigned char value);unsigned int SPI_Read_Buf(unsigned char reg, unsigned char *pBuf
30、, unsigned char uchars);unsigned char nRF24L01_RxPacket(unsigned char*rx_buf);void nRF24L01_TxPacket(unsigned char *tx_buf);/*長(zhǎng)延時(shí)void Delay(unsigned int s) unsigned int i; for(i=0; is; i+); for(i=0; i0;n-) _nop_();/*/*lcd1602寫命令/*/void write_com(unsigned char com) lcdrs=0;P0=com;Delay(5);lcden=1;Del
31、ay(5);lcden=0;/*/*lcd1602初始化/*/void init() lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01);/*/*lcd1602寫數(shù)據(jù)/*/void write_date(unsigned char date) lcdrs=0;P0=date;Delay(5);lcden=1;Delay(5);lcden=0;/*/*nRF24L01初始化/*/void init_nRF24L01(void) inerDelay_us(100); CE=0; / chip ena
32、ble CSN=1; / Spi disable SCK=0; / Spi clock line init high/*/*函數(shù):uint SPI_RW(uint uchar)/*功能:nRF24L01的SPI寫時(shí)序/*/unsigned int SPI_RW(unsigned int uuchar) unsigned int bit_ctr; for(bit_ctr=0;bit_ctr8;bit_ctr+) / output 8-bit MOSI = (uuchar & 0x80); / output uchar, MSB to MOSI uuchar = (uuchar 1); / shi
33、ft next bit into MSB. SCK = 1; / Set SCK high. uuchar |= MISO; / capture current MISO bit SCK = 0; / .then set SCK low again return(uuchar); / return read uchar/*/*函數(shù):uchar SPI_Read(uchar reg)/*功能:nRF24L01的SPI時(shí)序/*/unsigned char SPI_Read(unsigned char reg) unsigned char reg_val; CSN = 0; / CSN low, i
34、nitialize SPI communication. SPI_RW(reg); / Select register to read from. reg_val = SPI_RW(0); / .then read registervalue CSN = 1; / CSN high, terminate SPI communication return(reg_val); / return register value/*/*功能:nRF24L01讀寫寄存器函數(shù)/*/unsigned int SPI_RW_Reg(unsigned char reg, unsigned char value)
35、unsigned int status; CSN = 0; / CSN low, init SPI transaction status = SPI_RW(reg); / select register SPI_RW(value); / .and write value to it. CSN = 1; / CSN high again return(status); / return nRF24L01 status uchar/*/*函數(shù):uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars)/*功能: 用于讀數(shù)據(jù),reg:為寄存器地址,
36、pBuf:為待讀出數(shù)據(jù)地址,uchars:讀出數(shù)據(jù)的個(gè)數(shù)/*/unsigned int SPI_Read_Buf(unsigned char reg, unsigned char *pBuf, unsigned char uchars) unsigned int status,uchar_ctr; CSN = 0; / Set CSN low, init SPI tranaction status = SPI_RW(reg); / Select register to write to and read status uchar for(uchar_ctr=0;uchar_ctruchars;
37、uchar_ctr+) pBufuchar_ctr = SPI_RW(0); / CSN = 1; return(status); / return nRF24L01 status uchar/*/*函數(shù):uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)/*功能: 用于寫數(shù)據(jù):為寄存器地址,pBuf:為待寫入數(shù)據(jù)地址,uchars:寫入數(shù)據(jù)的個(gè)數(shù)/*/unsigned int SPI_Write_Buf(unsigned char reg, unsigned char *pBuf, unsigned char uchars) un
38、signed int status,uchar_ctr; CSN = 0; /SPI使能 status = SPI_RW(reg); for(uchar_ctr=0; uchar_ctruchars; uchar_ctr+) / SPI_RW(*pBuf+); CSN = 1; /關(guān)閉SPI return(status); / /*/*函數(shù):void SetTX_Mode(void)/*功能:數(shù)據(jù)發(fā)送設(shè)置 /*/void SetTX_Mode(void) CE=0; SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); /
39、寫本地地址 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); / 寫接收端地址 SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); / 頻道0自動(dòng) ACK應(yīng)答允許 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); / 允許接收地址只有頻道0,如果需要多頻道可以參考Page21 SPI_RW_Reg(WRITE_REG + RF_CH, 40); / 設(shè)置信道工作為2.4GHZ,收發(fā)必須一致 SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_
40、PLOAD_WIDTH); /設(shè)置接收數(shù)據(jù)長(zhǎng)度,本次設(shè)置為8字節(jié) SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); /設(shè)置發(fā)射速率為1MHZ,發(fā)射功率為最大值0dB SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); / IRQ收發(fā)完成中斷響應(yīng),16位CRC,主發(fā)送 CE = 1; inerDelay_us(130);/*/*函數(shù):void SetRX_Mode(void)/*功能:數(shù)據(jù)接收設(shè)置*/ void SetRX_Mode(void)CE=0;SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDR
41、ESS, TX_ADR_WIDTH); SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); / 頻道0自動(dòng) ACK應(yīng)答允許 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); / 允許接收地址只有頻道0,如果需要多頻道可以參考Page21 SPI_RW_Reg(WRITE_REG + RF_CH, 40); / 設(shè)置信道工作為2.4GHZ,收發(fā)必須一致 SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /設(shè)置接收數(shù)據(jù)長(zhǎng)度,本次設(shè)置為8字節(jié) SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); /設(shè)置發(fā)射速率為1MHZ,發(fā)射功率為最大值0dB SPI_RW_Reg(WRITE_REG + CONFIG, 0x0F);CE=1;/*/*函數(shù):unsigned char nRF24L01_RxPacket(unsigned char*
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 春雪消融活動(dòng)方案
- 隱患排查機(jī)制建設(shè)方案
- 基于人工智能的教育考試體系改革研究
- 江西省四校協(xié)作體2025年高一化學(xué)第二學(xué)期期末教學(xué)質(zhì)量檢測(cè)模擬試題含解析
- 2025屆山東省濟(jì)南市長(zhǎng)清第一中學(xué)大學(xué)科技園校區(qū)高二下化學(xué)期末綜合測(cè)試試題含解析
- 2025-2030自動(dòng)軌道拋光機(jī)行業(yè)市場(chǎng)現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究報(bào)告
- 高考語文第二輪復(fù)習(xí)教案之作文模塊
- 2025至2030GABA(γ氨基丁酸)行業(yè)市場(chǎng)占有率及投資前景評(píng)估規(guī)劃報(bào)告
- 2025至2030CMOS高速相機(jī)行業(yè)市場(chǎng)占有率及投資前景評(píng)估規(guī)劃報(bào)告
- 2025至2030苯甲酸鹽行業(yè)市場(chǎng)深度研究與戰(zhàn)略咨詢分析報(bào)告
- 卓越績(jī)效評(píng)價(jià)準(zhǔn)則概述(專業(yè)性權(quán)威性實(shí)用性)
- GB/T 30142-2013平面型電磁屏蔽材料屏蔽效能測(cè)量方法
- GB/T 29894-2013木材鑒別方法通則
- 國(guó)資進(jìn)場(chǎng)交易工作流程講座
- 當(dāng)代法律英語翻譯全
- 制冷操作證培訓(xùn)教材制冷與空調(diào)設(shè)備運(yùn)行操作作業(yè)培訓(xùn)教程課件
- 湖南省長(zhǎng)沙市望城區(qū)2020-2021學(xué)年八年級(jí)下學(xué)期期末考試歷史試卷
- 煙葉烘烤調(diào)制理論考試試題
- DB23-T 3336-2022懸掛式單軌交通技術(shù)標(biāo)準(zhǔn)-(高清最新)
- 服刑人員心理健康教育課件
- 湖南省長(zhǎng)郡中學(xué)“澄池”杯數(shù)學(xué)競(jìng)賽初賽試題(掃描版含答案)
評(píng)論
0/150
提交評(píng)論