基于單片機(jī)和NRF905的數(shù)據(jù)采集系統(tǒng)_第1頁(yè)
基于單片機(jī)和NRF905的數(shù)據(jù)采集系統(tǒng)_第2頁(yè)
基于單片機(jī)和NRF905的數(shù)據(jù)采集系統(tǒng)_第3頁(yè)
基于單片機(jī)和NRF905的數(shù)據(jù)采集系統(tǒng)_第4頁(yè)
基于單片機(jī)和NRF905的數(shù)據(jù)采集系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、本科生畢業(yè)論文本科生畢業(yè)論文( (設(shè)計(jì)設(shè)計(jì)) )題 目: 基于單片機(jī)和 nRF905 的 數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì) 完成時(shí)間: 2013 年 5 月 10 日 目 錄引言 .21 系統(tǒng)介紹 .32 系統(tǒng)硬件和軟件設(shè)計(jì) .32.1 溫度采集電路設(shè)計(jì)與程序設(shè)計(jì).32.1.1 DS18B20 數(shù)字溫度傳感器介紹:.32.1.2 DS18B20 的外形及管腳排列:.42.1.3 溫度采集電路連接圖.42.1.4 溫度采集程序流程圖.52.1.5 溫度采集核心程序: .52.2 NRF905 無線傳輸電路和程序設(shè)計(jì) .82.2.1 nRF905 介紹:.82.2.2 nRF905 外形及管腳排列.92.2.3

2、 單片機(jī)與 nRF905 通過 SPI 接口通信 .102.2.4 發(fā)送流程.122.2.5 發(fā)送端核心程序 .132.2.6 接收流程 .142.2.7 接收端核心程序.152.3 LCD1602 顯示電路設(shè)計(jì)與程序設(shè)計(jì) .162.3.1 LCD1602 模塊介紹.162.3.2 LCD1602 的外形及管腳排列.162.3.3 LCD1602 顯示電路連接圖.172.3.4 LCD1602 顯示核心程序.173無線溫度采集系統(tǒng)連接圖和系統(tǒng)測(cè)試結(jié)果 .204 結(jié)論.22參考文獻(xiàn).22基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)1基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)電子信息科學(xué)與

3、技術(shù)專業(yè)學(xué)生:魏華偉指導(dǎo)老師:汪勝輝摘要:摘要:本系統(tǒng)是一套無線數(shù)據(jù)采集系統(tǒng),利用 DS18B20 數(shù)字式溫度傳感器作為溫度采集工具,利用單片機(jī) AT89C52 對(duì)它進(jìn)行控制,并通過 nRF905 對(duì)采集的數(shù)據(jù)進(jìn)行無線傳輸,接收端用 LCD1602 顯示溫度值,便于監(jiān)控。主要用于對(duì)環(huán)境溫度的采集與監(jiān)控,系統(tǒng)通過 nRF905 無線射頻模塊實(shí)現(xiàn)數(shù)據(jù)的無線傳輸,無線傳輸避免遠(yuǎn)距離布線所帶來的施工困難,成本高的缺點(diǎn)。本文的創(chuàng)新點(diǎn)在于利用 nRF905 作為無線收發(fā)模塊,利用 DS18B20 作為溫度數(shù)據(jù)采集,簡(jiǎn)化了電路設(shè)計(jì)并給出了通信協(xié)議和溫度采集的軟件設(shè)計(jì)過程。本文的系統(tǒng)不僅克服了數(shù)據(jù)采集系統(tǒng)在使

4、用空間上的局限性,而且大大簡(jiǎn)化了系統(tǒng)硬件電路。關(guān)鍵詞:關(guān)鍵詞:?jiǎn)纹瑱C(jī),溫度傳感器,無線收發(fā),數(shù)據(jù)采集Design of data acquisition system based on single-chip microcomputer and nRF905Electronis and Information Science and Technology Candidate : Huawei WeiAdvisor: Shenghui WangAbstract: This is a wireless monitoring system which is used to control tempe

5、rature condition.The system uses integrated temperature sensor DS18B20 as its collector, and single chip computer AT89C52 as its main controller. It makes a long-range conveyance by using nRF905,and LCD1602 as its displayer for monitoring temperature.The wireless communicaton can avoid the shortcomi

6、ng of remote wire transmission,such as large wastage,high cost etc. This innovation is to use nRF905 as wireless transceiver module, using the DS18B20 temperature data acquisition, simplifies the circuit design and the communication protocol and software design of temperature acquisition process. Th

7、is system not only to overcome the limitations of data acquisition system on the use of space, but also greatly simplifies the system hardware circuit.基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)2Keywords: Single-chip microcomputer, Temperature sensor ,Wireless communication ,data acquisition引言本論文以 nRF905 芯片進(jìn)行無線傳輸為設(shè)計(jì)思想

8、和實(shí)現(xiàn)方法,介紹了發(fā)射器和接收器軟硬件結(jié)構(gòu)及微控制器和無線收發(fā)芯片的通訊協(xié)議,設(shè)計(jì)了以 nRF905 無線收發(fā)模塊、AT89C52 單片機(jī)為核心的無線數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)具有低成本、易擴(kuò)展、操作簡(jiǎn)單等優(yōu)點(diǎn),不僅可以在各種復(fù)雜的工業(yè)現(xiàn)場(chǎng)高效而準(zhǔn)確地進(jìn)行無線數(shù)據(jù)傳輸,也廣泛應(yīng)用于遠(yuǎn)程控制、無線數(shù)據(jù)采集等國(guó)民經(jīng)濟(jì)的各個(gè)領(lǐng)域中:如無線數(shù)據(jù)采集與傳輸、車輛監(jiān)控、無線抄表、工業(yè)數(shù)據(jù)采集系統(tǒng)、水文氣象監(jiān)控、無線遙控、生物信號(hào)采集等, 這些應(yīng)用可為國(guó)家和企業(yè)節(jié)省大量的人力物力。傳統(tǒng)的有線定點(diǎn)采集、人工上報(bào),這種方法正逐漸被新的技術(shù)所代替。目前常用的技術(shù)是基于無線模塊的環(huán)境監(jiān)測(cè)方式,但是在一些用途精度要求不是很

9、高的場(chǎng)所,如單位或家庭火災(zāi)安全監(jiān)測(cè),這樣的產(chǎn)品價(jià)格過于昂貴,協(xié)議比較復(fù)雜,缺少靈活度1。針對(duì)這一情況,本文提出了一種基于 AT89C52 單片機(jī)和射頻芯片 nRF905 的無線數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方案,并從硬件和軟件兩個(gè)方面較詳細(xì)地介紹了系統(tǒng)的相關(guān)技術(shù)要點(diǎn)和設(shè)計(jì)開發(fā)過程,實(shí)現(xiàn)了對(duì)溫度信息進(jìn)行采集的無線數(shù)據(jù)采集系統(tǒng)。一般傳統(tǒng)的溫度傳感器的輸出信號(hào)均為模擬信號(hào),需經(jīng)過放大電路和 A/D 轉(zhuǎn)換后才能與單片機(jī)連接,系統(tǒng)結(jié)構(gòu)比較復(fù)雜。因此本論文采用 DS18B20 數(shù)字溫度傳感器在滿足系統(tǒng)要求的同時(shí)簡(jiǎn)化系統(tǒng)電路。nRF905 是 Nordic 公司推出的單片射頻發(fā)射器芯片,可以自動(dòng)完成處理字頭和 CRC,

10、配置簡(jiǎn)單方便,功耗低, nRF905 一個(gè)非常突出的優(yōu)點(diǎn)就是收發(fā)模塊電路設(shè)計(jì)簡(jiǎn)單,所需要的外圍器件少。天線的物理尺寸對(duì)其增益和工作頻率有很大影響,設(shè)計(jì)中采用的是差分 環(huán)行天線,這種天線可以直接蝕刻在PCB 板上,不會(huì)帶來其他的成本增長(zhǎng),能滿足 100 至 300 米的無線數(shù)據(jù)傳輸。因此本論文采用 nRF905 射頻模塊在滿足系統(tǒng)要求的同時(shí)簡(jiǎn)化系統(tǒng)電路。LCD1602 是常見的顯示模塊,模塊集成度高,成本較低,適用于顯示本系統(tǒng)中采集得到的數(shù)據(jù)2。本文的創(chuàng)新點(diǎn)在于利用 nRF905 作為無線收發(fā)模塊,利用 DS18B20 作為溫度數(shù)據(jù)采集,簡(jiǎn)化了電路設(shè)計(jì)并給出了通信協(xié)議和溫度采集的軟件設(shè)計(jì)過程。本

11、文的系統(tǒng)不僅克服了數(shù)據(jù)采集系統(tǒng)在使用空間上的局限性,而且大大簡(jiǎn)化了系統(tǒng)硬件電路 3。本文設(shè)計(jì)的無線節(jié)點(diǎn)溫度采集系統(tǒng)能夠用于實(shí)際多點(diǎn)溫度采集,結(jié)果也表明系統(tǒng)工作穩(wěn)定,數(shù)據(jù)可靠,可以應(yīng)用于室內(nèi)和室外的溫度監(jiān)測(cè)?;趩纹瑱C(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)3一 系統(tǒng)介紹基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)由測(cè)量裝置、無線傳輸終端、顯示模塊組成。如圖 1 為系統(tǒng)結(jié)構(gòu)框圖。利用溫度傳感器將相應(yīng)溫度值轉(zhuǎn)變?yōu)閿?shù)字信號(hào)傳給單片機(jī)進(jìn)行處理,再將自己的地址值和轉(zhuǎn)換的數(shù)據(jù)值打包送至無線發(fā)射模塊(nRF905)。無線接收模塊將接收來的地址值和采集值送至單片機(jī),對(duì)接收到的數(shù)值進(jìn)行換算轉(zhuǎn)換為相應(yīng)的溫度值。由 L

12、CD1602 將溫度值顯示出來。系統(tǒng)結(jié)構(gòu)圖見圖 1。DS18B20溫度傳感器ATC89C52微控制器NRF905射頻芯片NRF905射頻芯片ATC89C52微控制器LCD1602液晶顯示圖 1 系統(tǒng)結(jié)構(gòu)圖2 系統(tǒng)硬件和軟件設(shè)計(jì)系統(tǒng)硬件主要包含:由 DS18B20 數(shù)字溫度傳感器構(gòu)成的溫度采集電路、nRF905 芯片構(gòu)成的無線傳輸模塊與單片機(jī)的通信、LCD1602 液晶顯示模塊。2.1 溫度采集電路設(shè)計(jì)與程序設(shè)計(jì)2.1.1 DS18B20 數(shù)字溫度傳感器介紹:DS18B20 有三個(gè)主要的數(shù)據(jù)部件:1)64 位激光 ROM;2)溫度靈敏器件;3)非易失性溫度告警觸發(fā)器 TH 和 TL。DS18B2

13、0 通過一個(gè)控制命令指示 DS18B20 完成溫度測(cè)量,將測(cè)量結(jié)果放入 DS18B20 的高速暫存存儲(chǔ)器,通過發(fā)出讀暫存存儲(chǔ)器內(nèi)容的存儲(chǔ)器操作命令可以讀出此結(jié)果,實(shí)際的溫度值由將讀取的數(shù)據(jù)值乘以 0.0625 得到。DS18B20 電壓范圍:3.05.5V,在寄生電源方式下可由數(shù)據(jù)線供電,獨(dú)特的單線接口方式,DS18B20 在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與 DS18B20 的雙向通訊, DS18B20 支持基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)4多點(diǎn)組網(wǎng)功能,多個(gè) DS18B20 可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫,DS18B20 在使用中不需要任何外圍元件,

14、全部 傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi),溫范圍55+125,在-10+85時(shí)精度為0.5,可編程 的分辨率為912 位,對(duì)應(yīng)的可分辨溫度分別為 0.5、0.25、0.125和 0.0625,可實(shí)現(xiàn)高精度測(cè)溫,在 9 位分辨率時(shí)最多在 93.75ms 內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12 位分辨率時(shí)最多在750ms 內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快,測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以一 線總線串行傳送給 CPU,同時(shí)可傳送 CRC 校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力。負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀, 但不能正常工作。2.1.2 DS18B20 的外形及管腳排列:DS18B20 的

15、外形及管腳排列見圖 2。圖圖 2 2 DS18B20 的外形及管腳排列見圖DS18B20 引腳定義:(1)DQ 為數(shù)字信號(hào)輸入/輸出端;(2)GND 為電源地;(3)VDD 為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)4。2.1.3 溫度采集電路連接圖基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)5本系統(tǒng)中 Ds18B20 溫度傳感器的連接圖如圖 3。 圖 3 Ds18B20 溫度傳感器的原理圖2.1.4 溫度采集程序流程圖溫度采集程序流程如圖 4開始初始化DS18B20讀溫度計(jì)算溫度值圖 4 溫度采集程序流程圖2.1.5 溫度采集核心程序:DS18B20 初始化DS18B20 初始化時(shí)

16、序圖如圖 5。圖 5 DS18B20 初始化時(shí)序圖基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)6根據(jù)時(shí)序圖編寫初始化程序如下bit Init_DS18B20(void) bit dat=0; DQ=1; /DQ 復(fù)位 DelayUs2x(5); /稍做延時(shí) DQ=0; /單片機(jī)將 DQ 拉低 DelayUs2x(200); /精確延時(shí) 大于 480us 小于 960us DelayUs2x(200); DQ=1; /拉高總線 DelayUs2x(50); /1560us 后 接收 60-240us 的存在脈沖 dat=DQ; /如果 dat=0 則初始化成功, dat=1 則初始化失敗 D

17、elayUs2x(25); /稍作延時(shí)返回 return dat;DS18B20“寫”時(shí)序圖如圖 6。圖 6 DS18B20“寫”時(shí)序圖根據(jù)寫時(shí)序圖編寫寫一個(gè)字節(jié)程序如下。void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0 x01; DelayUs2x(25); DQ=1; dat=1;基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)7 DelayUs2x(25);DS18B20“讀”時(shí)序圖如圖 7。圖 7 DS18B20“讀”時(shí)序圖根據(jù)讀時(shí)序圖編寫寫一

18、個(gè)字節(jié)程序如下。unsigned char ReadOneChar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i0;i-) DQ=0; / 給脈沖信號(hào) dat=1; DQ=1; / 給脈沖信號(hào) if(DQ) dat|=0 x80; DelayUs2x(25); return(dat);運(yùn)用讀寫程序設(shè)置 DS18B20 并讀取溫度程序如下。unsigned int ReadTemperature(void)unsigned char a=0;基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)8unsigned int b=0;uns

19、igned int t=0;Init_DS18B20();WriteOneChar(0 xCC); / 跳過讀序號(hào)列號(hào)的操作WriteOneChar(0 x44); / 啟動(dòng)溫度轉(zhuǎn)換DelayMs(10);Init_DS18B20();WriteOneChar(0 xCC); /跳過讀序號(hào)列號(hào)的操作 WriteOneChar(0 xBE); /讀取溫度寄存器等(共可讀 9 個(gè)寄存器) 前兩個(gè)就是溫度a=ReadOneChar(); /低位b=ReadOneChar(); /高位b=8;t=a+b;return(t); /實(shí)際溫度值應(yīng)將 t0.06252.2 nRF905 無線傳輸電路和程序設(shè)計(jì)

20、2.2.1 nRF905 介紹:該芯片工作在 433/868/915MHz 的 ISM 頻段,設(shè)計(jì)中設(shè)置為 433MHz。nRF905 由一個(gè)完全集成的頻率調(diào)制器,一個(gè)帶解調(diào)器的接收器,一個(gè)功率放大器,一個(gè)晶體震蕩器和一個(gè)調(diào)節(jié)器組成。數(shù)據(jù)傳輸速率可達(dá) 100kb/s,支持點(diǎn)對(duì)點(diǎn)傳輸模式和廣播傳輸模式。nRF905 工作電壓 1.93.6V。功耗很低,該芯片處于接受模式時(shí)工作電流為 12.5mA,但在掉電模式下工作電流僅為 25A。nRF905 采用 Nordic 公司的 VLSI ShockBurst 技術(shù),該技術(shù)使得 nRF905 在沒有高速 MCU 下,也能實(shí)現(xiàn)高速數(shù)據(jù)傳輸。nRF905

21、突出的優(yōu)點(diǎn)就是收發(fā)模塊電路設(shè)計(jì)簡(jiǎn)單,所需要的外圍器件少。nRF905 在正常工作前應(yīng)由 STC89C52 先根據(jù)需要寫好配置寄存器,其后的工作主要是兩個(gè):發(fā)送數(shù)據(jù)和接收數(shù)據(jù)。通過 TRX-CE,TX-EN,PWN-UP 的設(shè)置來實(shí)現(xiàn) nRF905 不同的工作模式,模式設(shè)置如表 1 所示。表 1 nRF905 的工作模式PWR_UPTRX_CETX_EN工作模式0XX掉電和 SPI 編程10XStandby 和 SPI 編程111ShockBust TX110ShockBust RX基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)9ShockBurst 收發(fā)模式下,使用片內(nèi)的先入先出堆棧區(qū),數(shù)據(jù)

22、低速?gòu)奈纯刂破魉腿耄咚侔l(fā)射,這樣可以盡量節(jié)能,因此,使用低速的微控制器也能得到很高的射頻數(shù)據(jù)發(fā)射速率。與射頻協(xié)議相關(guān)的所有高速信號(hào)處理都在片內(nèi)進(jìn)行,這種做法有三大好處:盡量節(jié)能;低的系統(tǒng)費(fèi)用;數(shù)據(jù)在空中停留時(shí)間短,抗干擾性高。ShockBurst 收發(fā)模式下,nRF905 自動(dòng)處理字頭和 CRC 校驗(yàn)碼。在接收數(shù)據(jù)時(shí),自動(dòng)把字頭和 CRC 校驗(yàn)碼移去。在發(fā)送數(shù)據(jù)時(shí)自動(dòng)加上字頭和 CRC 校驗(yàn)碼,當(dāng)發(fā)送過程完成后,DR 引腳通知微處理器數(shù)據(jù)發(fā)射完畢。2.2.2 nRF905 外形及管腳排列nRF905 外形和管腳排列見圖 8。圖 8 NRF95 外形和管腳排列nRF905 與 STC89c5

23、2 單片機(jī)端口的連接和各個(gè)引腳的功能如表 2。表 2 nRF905 引腳說明表管腳名稱接單片機(jī)引腳管腳功能說明1Vcc無電源電源+3.3-3.6vDC2TX-ENP1.7數(shù)字輸入TX_EN=1 TX 模式 TX_EN=0 RX 模式3TRX-CEP1.6數(shù)字輸入使能芯片發(fā)射或接收4PWR-UPP1.5數(shù)字輸入芯片上電基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)105uCLK無時(shí)鐘輸出本模塊該腳廢棄不用,向后兼容6CDP1.4數(shù)字輸出載波檢測(cè)7AMP1.3數(shù)字輸出地址匹配8DRP3.2數(shù)字輸出接收或發(fā)射數(shù)據(jù)完成9MISOP1.1SPI 接口SPI 輸出10MOSIP1.0SPI 接口SPI

24、輸入11SCKP3.7SPI 時(shí)鐘SPI 時(shí)鐘12CSNP3.3SPI 使能SPI 使能13GND無地接地14GND無地接地2.2.3 單片機(jī)與 nRF905 通過 SPI 接口通信nRF905 射頻模塊的 SPI 接口由狀態(tài)寄存器、射頻配置寄存器、發(fā)送地址寄存器、發(fā)送數(shù)據(jù)寄存器和接收數(shù)據(jù)寄存器 5 個(gè)寄存器組成。狀態(tài)寄存器包含數(shù)據(jù)準(zhǔn)備好引腳狀態(tài)信息和地址匹配引腳狀態(tài)信息;射頻配置寄存器包含收發(fā)器配置信息,如頻率和輸出功能等;發(fā)送地址寄存器包含接收機(jī)的地址和數(shù)據(jù)的字節(jié)數(shù);發(fā)送數(shù)據(jù)寄存器包含帶發(fā)送的數(shù)據(jù)包信息,如字節(jié)數(shù)等;接收數(shù)據(jù)寄存器包含要接收的數(shù)據(jù)的字節(jié)數(shù)等信息。單片機(jī)與 nRF905 通過

25、 SPI 接口通信,由于 AT89C52 單片機(jī)沒有 SPI 接口,因此在設(shè)計(jì)中通過普通的 IO 口模擬 SPI,只需添加代碼模擬 SPI 時(shí)序。單片機(jī)模擬 SPI 口的寫字節(jié)時(shí)序圖如圖 10?;趩纹瑱C(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)11圖 10 單片機(jī)模擬 SPI 口的寫字節(jié)時(shí)序圖根據(jù)時(shí)序圖編寫單片機(jī)向 nRF905 寫字節(jié)的程序如下。void SpiWrite(uchar byte)uchar i;DATA_BUF=byte;/ 將要寫入的字節(jié)放入數(shù)據(jù)據(jù)變量for(i=0;i8;i+)/ 設(shè)置字節(jié)循環(huán)位if (flag)MOSI=1;elseMOSI=0;SCK=1;DATA_BU

26、F=DATA_BUF1;SCK=0;單片機(jī)模擬 SPI 口的讀字節(jié)時(shí)序圖如圖 11。基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)12圖 11 單片機(jī)模擬 SPI 口的讀字節(jié)時(shí)序圖根據(jù)時(shí)序圖編寫單片機(jī)通過 SPI 口讀取接 nRF905 字節(jié)程序如下。uchar SpiRead(void)uchar i;for (i=0;i8;i+)DATA_BUF=DATA_BUF1;SCK=1;if (MISO)flag1=1;elseflag1=0;SCK=0;return DATA_BUF;通過單片機(jī)向 nRF905 配置寄存器寫數(shù)據(jù),配置 nRF905,本設(shè)計(jì)中配置 nRF905 工作在 433M

27、Hz,輸出功率為+10dBm,正常模式,不自動(dòng)重發(fā),接收和發(fā)送地址為四個(gè)字節(jié),接收和發(fā)送的有效數(shù)據(jù)為 32 個(gè)字節(jié),允許 8 位的 CRC 校驗(yàn)。nRF905 配置寄存器配置程序如下。typedef struct RFConfiguchar n;uchar buf10;基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)13RFConfig;code RFConfig RxTxConf =10,0 x4c, 0 x0c, 0 x44, 0 x02, 0 x02, 0 xcc, 0 xcc, 0 xcc,0 xcc, 0 x58/*配置 nRF905 工作在 433MHz,輸出功率為+10dBm,正

28、常模式,不自動(dòng)重發(fā),接收和發(fā)送地址為四個(gè)字節(jié),接收和發(fā)送的有效數(shù)據(jù)為 32 個(gè)字節(jié),允許 8 位的 CRC 校驗(yàn)。*/;將 nRF905 配置參數(shù)通過 SPI 口寫入 nRF905void Config905(void)uchar i;CSN=0;/ 啟用 spi 命令SpiWrite(WC);/ 寫放配置命令for (i=0;iBuffer(3)打包數(shù)據(jù)發(fā)送進(jìn)入發(fā)送模式否是圖 9:溫度采集發(fā)送程序流程2.2.5 發(fā)送端核心程序設(shè)置 nRF905 為發(fā)射模式,當(dāng) TX_EN=1,TRX_CE=1 時(shí) nRF905 工作在發(fā)送模式,設(shè)置發(fā)送模式程序如下。void SetTxMode(void)T

29、X_EN=1;TRX_CE=1;DelayMs(1); / 延時(shí)用于模式轉(zhuǎn)換將從 DS18B20 采集的數(shù)據(jù)通過 nRF905 發(fā)送給遠(yuǎn)距離外的接收端,需要通過寫數(shù)據(jù)打包命令(WTP)將溫度數(shù)據(jù)寫入發(fā)送數(shù)據(jù)寄存器,通過寫地址命令(WTA)將發(fā)送地址寫入發(fā)送地址寄存器。將溫度值和地址值打包發(fā)送程序如下。void TxPacket(void)uchar i;CSN=0;/啟用 spi 命令SpiWrite(WTP);/ 寫數(shù)據(jù)打包命令基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)15for (i=0;i2;i+)SpiWrite(TxBufi);/ 寫 32 位 發(fā)送數(shù)據(jù)CSN=1;DelayM

30、s(1);CSN=0;/啟用 spi 命令SpiWrite(WTA);/ 寫入地址命令for (i=0;iSBUF同頻載波否是是否圖 10 接收程序流程圖2.2.7 接收端核心程序設(shè)置 nRF905 為接收模式,當(dāng) TX_EN=1,TRX_CE=0 時(shí) nRF905 工作在接收模式,設(shè)置接收模式程序如下。void SetRxMode(void)TX_EN=0;TRX_CE=1;DelayMs(1); 通過讀數(shù)據(jù)命令(RRP)讀取接收到的數(shù)據(jù)程序程序如下uint RxPacket(void)uchar temp0,temp1; uint temp;uchar i;TRX_CE=0;CSN=0;S

31、piWrite(RRP);for (i=0;i2;i+)基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)17RxBufi=SpiRead();CSN=1;while(DR|AM);TRX_CE=1; temp0= RxBuf0; temp1= RxBuf1; temp=temp18; temp=temp+temp0; return(temp);2.3 LCD1602 顯示電路設(shè)計(jì)與程序設(shè)計(jì)2.3.1 LCD1602 模塊介紹1602 液晶也叫 1602 字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。它由若干個(gè) 5X7 或者 5X11 等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以

32、顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,1602LCD 是指顯示的內(nèi)容為 16X2,即可以顯示兩行,每行 16 個(gè)字符液晶模塊。2.3.2 LCD1602 的外形及管腳排列LCD1602 的外形及管腳排列圖見圖 11。 圖 11 LCD1602 實(shí)物和引腳圖1602 采用標(biāo)準(zhǔn)的 16 腳接口,其中:第 1 腳:VSS 為電源地第 2 腳:VCC 接 5V 電源正極第 3 腳:V0 為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高。基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)18第 4 腳:RS 為寄存器選擇,高電平 1 時(shí)

33、選擇數(shù)據(jù)寄存器、低電平 0 時(shí)選擇指令寄存器。第 5 腳:RW 為讀寫信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。第 6 腳:E(或 EN)端為使能(enable)端。第 714 腳:D0D7 為 8 位雙向數(shù)據(jù)端。第 1516 腳:空腳或背燈電源。15 腳背光正極,16 腳背光負(fù)極6。2.3.3 LCD1602 顯示電路連接圖LCD1602 顯示電路連接圖見圖 12。圖 12 lcd 原理圖連接2.3.4 LCD1602 顯示核心程序 Lcd1602 的寫操作時(shí)序圖如圖 13?;趩纹瑱C(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)19圖 13 Lcd1602 的寫操作時(shí)序圖如 根據(jù)

34、時(shí)序圖編寫寫入命令和寫入數(shù)據(jù)函數(shù)如下。void LCD_Write_Com(unsigned char com) while(LCD_Check_Busy(); /忙則等待 RS_CLR; RW_CLR; EN_SET; DataPort= com; _nop_(); EN_CLR; 寫入數(shù)據(jù)函數(shù)void LCD_Write_Data(unsigned char Data) while(LCD_Check_Busy(); /忙則等待 RS_SET; RW_CLR; EN_SET; DataPort= Data; _nop_(); EN_CLR; 清屏函數(shù)就是通過寫命令函數(shù)寫入清屏指令,程序如下

35、。void LCD_Clear(void) 基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)20 LCD_Write_Com(0 x01); DelayMs(5); 顯示初始化設(shè)置程序如下。 void LCD_Init(void) LCD_Write_Com(0 x38); /*顯示模式設(shè)置*/ DelayMs(5); LCD_Write_Com(0 x38); DelayMs(5); LCD_Write_Com(0 x38); DelayMs(5); LCD_Write_Com(0 x38); LCD_Write_Com(0 x08); /*顯示關(guān)閉*/ LCD_Write_Com(0 x0

36、1); /*顯示清屏*/ LCD_Write_Com(0 x06); /*顯示光標(biāo)移動(dòng)設(shè)置*/ DelayMs(5); LCD_Write_Com(0 x0C); /*顯示開及光標(biāo)設(shè)置*/ 寫入字符串函數(shù) void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) if (y = 0) LCD_Write_Com(0 x80 + x); /表示第一行 else LCD_Write_Com(0 xC0 + x); /表示第二行 while (*s) LCD_Write_Data( *s); s +; 寫入字符函數(shù) void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) if (y = 0) 基于單片機(jī)和 nRF905 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)21

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論