




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、合肥學院第七屆電子設計競賽報告作品名稱:無 線 溫 度 遙 測 系 統 學校全稱: 合 肥 學 院 系別班級: 08級電子信息與電氣工程系 隊員姓名:08電子<3>班 胡光 0805070240 08電子<3>班 劉揚 080507024408電子<3>班 程坤 0805070263 無線溫度遙感系統摘要:本系統是基于80C52單片機和無線傳輸模塊設計的無線溫度遙測系統。溫度測量采用的是DS18B20溫度傳感器;無線數據傳輸是基于FSK調制解調,抗干擾能力強的NRF24L01無線收發芯片;系統為低功耗設計。關鍵字: 無線通信 DS18B20 單片機一、引言在
2、許多場合需要將傳感器節點直接放置在目標地點進行現場的數據采集,這就要求傳感器節點具有無線通信的能力。同時,由于無線傳感器通常使用電池作為能源,所以,它對能耗要求也比較高。無線溫度遙感系統可以實現主機端與傳感器節點之間的通信,并且通過選用低功耗的芯片和對軟件的低功耗設計,也可以實現低功耗的目標。1.1基本要求(1)測溫范圍1065,誤差<0.5;(2)顯示位數3位,分辨率0.1;(3)測溫點到接收點距離>2米;(4)可設置溫度上限報警;(5)接收點顯示測溫點數據及聲光上限報警信號;1.2.發揮部分(1)遙測距離>5米;(2)誤差<0.2;具有溫度補償功能;(3)具有特色與
3、創新;(4)測量溫度速率小于1秒;(5)多路測量;二、系統設計2.1系統方案選擇方案一:用ATmega8單片機作處理器和相關溫度檢測、無線收發、液晶顯示和上限報警電路組成無線溫度遙測系統。其中ATmega8單片機性能穩定,處理速度較快。方案二:用STC89C52單片機作處理器和相關溫度檢測、無線收發、液晶顯示和上限報警電路組成無線溫度遙測系統。STC89C52單片機8k片內程序存儲器(ROM),對于無線溫度遙測系統足夠,而且性能相對也比較穩定。ATmega8單片機較之STC89C52單片機性能較為優越,針對所做無線溫度遙測系統兩者都夠用,不過考慮到經濟方面因素,STC89C52單片機相比之下比
4、較便宜,經濟適用。所以最終系統方案選擇方案二。2.2系統總體設計LCD顯示及上限報警STC89C52單片機2STC89C52單片機1溫度傳感器DS18B20 無線收發芯片2 NRF24L01無線收發芯片1 NRF24L01系統總設計結構圖所設計的無線溫度遙測系統主要由以下幾部分組成:溫度測量部分、無線發射部分、無線接收部分、LCD顯示部分以及操控部分。2.3器件選擇方案2.3.1溫度傳感器方案一:可以采用熱敏電阻之類的器件利用其感溫效應,再將隨被測溫度變化的電壓或電流采集過來,進行A/D轉換后,用單片機進行數據的處理,在顯示電路上就可以將被測溫度顯示出來,這種設計需要用到A/D轉換電路,電路比
5、較麻煩。方案二:進而考慮到溫度傳感器,在單片機電路設計中,大多都是使用傳感器,所以這比較容易想到,可以采用一只比較常用的溫度傳感器DS81B20,其工作電壓范圍:3.05.5V,測溫范圍:55125,測溫分辨率最高可達0.062 5,此傳感器可以很容易的直接讀取被測溫度值,進行轉換,并且其價格比較便宜,符合設計要求。從以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設計也比較簡單,價格低廉,要求功能可完全實現,故采用方案二。溫度檢測電路圖2.3.2無線收發芯片方案一:采用PTR2000,它的優點是工作頻率穩定可靠、外圍元件少、功耗低。不過它的價格較為昂貴,相比不適用于實驗的選用。方案二
6、:選用NRF24L01,它采用FSK調制解調技術,抗干擾能力強,,頻率穩定性好,工作電壓在+3V5 V之間。所需外圍元件較少,并可直接接單片機串口。而且價格較為便宜,符合要求。相比較之下,NRF24L01可以實現要求,加之經濟,所以選擇NRF24L01更為適合。無線收發電路圖 NRF24L01收發模塊2.3.3 LCD顯示屏方案一:采用12864液晶顯示屏,其價格不高,適用于各類儀器,小型設備的顯示領域。方案二:采用1602液晶顯示屏,其價格便宜,是比較常用的工業字符型液晶。方案三:采用四位一體數碼管,其價格便宜,較為常用。考慮到我們需要的用途是溫度的顯示,三者皆可以達到顯示要求,12864相
7、對而言貴,排除。而數碼管和1602顯示屏兩者相比基本相當,價格相差也不大,考慮到顯示效果和價格,我們選用了一塊1602顯示屏作為接受端的溫度數據顯示;采用了一塊四位共陰數碼管作為發送端的溫度顯示。1602液晶顯示電路圖與四位數碼管(LED1、LED2、LED3、LED4) 2.3.4電源設計電源需供給STC89C52單片機、1602液晶顯示器、NRF24L01發射電路模塊、NRF24L01接收電路模塊所需的不同電壓。電源電路原理圖如下所示,三端穩壓芯片L7805CV、ASM111173.3起穩壓作用,10uf電解電容和30pf瓷片電容起濾除紋波作用,輸出分別為+5V,+3.3V的電壓供給各所需
8、單元電路。電源設計原理圖三、系統軟件設計3.1單片機軟件設計單片機軟件部分主要包括主程序、中斷子程序、測溫子程序、LCD的轉換顯示,蜂鳴器報警子程序,按鍵子程序以及SPI子程序等。為了降低功耗,使用中斷來喚醒單片機進行測溫等工作,因此主程序部分比較簡單,主要負責系統各部分初始化和中斷的調用,在系統初始化完成后就直接進入睡眠模式,當中斷到來時單片機退出睡眠模式,調用中斷子程序實現測溫、轉換顯示、溫度數據的傳輸等功能。 單片機控制程序流程圖如下圖所示開始溫度采集系統初始化NRF24L01發射采集的數據顯示數據并繼續采集是否發送成功?YNNRF24L01接收數據是否超過上限溫度?顯示數據并繼續采集N
9、Y報警四、系統測試第1次檢測:選擇檢測晚上的室內溫度。第2次檢測:選擇檢測中午的室內溫度。第3次檢測:用鐵制茶杯盛一杯開水,放在實驗桌上,將溫度計和系統采集溫度芯片置于距離茶杯一厘米的同一位置,檢測溫度。 實驗數據如下表:溫度計測量溫度()系統測量溫度()上限報警溫度()是否報警測量誤差()第1次測量23.223.522是+0.3第2次測量24.024.225否+0.2第3次測量30.430.630是-0.2第4次測量38.037.838否-0.2第5次測量由于條件限制,采用量程范圍為0250的水銀溫度計作為測量比較儀器,本身測量誤差較大,結果并不精確。在誤差允許范圍內,本系統符合設計要求。其
10、中,遙測距離可達五米,達到發揮部分遙測距離>5米的要求。五、總結心得經過我們的團結協作、不懈努力,終于我們的無線溫度遙測系統完成了,這次電子設計競賽讓我們在付出的道路上收獲了很多。從選題開始一直到現在,我們感受著比賽帶來的興奮與快樂的同時,也體味到了付出的不易。經過這些天的努力,我們也終于將這份艱苦卻又充滿樂趣的事情完成了。本無線溫度遙測系統中,溫度傳感器采用的是DS18B20,開始我們考慮的是PT100這種溫度傳感器件,但是由于DS18B20能夠達到要求,相對又經濟方便,最終選用了DS18B20。不過對于無線收發芯片的選用,相比之下就沒有這樣順利了,我們起初的考慮忽視了經濟這一個重要方
11、面,經過查閱資料,開始考慮的是PRT2000,它的性能很不錯,不過后來才想到沒有考慮它的價格,當了解到一塊PRT2000無線收發模塊價格在一百元左右的時候,我們意識到這是不可行的,應該選用其它的性能接近并且經濟的芯片,經過了一番周折,最終確定了NRF401無線收發模塊。當最終完成的時候,大家很開心的松了一口氣,甚至在實物測試看到溫度發送接收成功時,我們興奮地歡呼相擁。作為大三的學生,第一次參加學校的電子設計競賽,在為比賽努力付出的過程中,我們也有很多收獲。為了把作品做成功,我們查閱資料,檢索文獻,其間豐富了我們的知識,增加了些許經驗。我們常常是三個人在一起,通過分工協作和互相幫助,也讓我們又一
12、次體味了團隊合作的重要。在將實物做出來的過程中,我們感受到原來所有的一切都是那么的不易,都需要我們認真的思考,研究。對于電路板的焊接,需要事先進行排版布線,然后將相應的元件連接起來,焊接中,我們仿佛回到了曾經,回到了那個為了心中的象牙塔拼搏奮斗的日子,靜靜地專注于你的目標,雙手在萬能板上忙忙碌碌,電烙鐵在焊錫絲和元件之間反反復復。偶爾會因某一個元件焊接的不夠理想而眉頭緊蹙,然后錫槍除去焊錫,再重新焊接,只是為了讓電路焊接的更理想;時而也會因感覺到焊接的電路很不錯而不由自主地嘖嘖贊嘆。就這樣我們的實物電路焊接完成了,接著是程序的編寫,查閱了大量的資料,參考了一些相關書籍,最終編寫完成后,燒錄到S
13、TC89C52單片機中,連接電路測試。起初的測試,沒有達到要求,接下來便是對程序的再編寫,再調試,就這樣反反復復,最終實現了。盡管其間是枯燥的難熬的,不過,在測試成功,數據顯示出來的那一瞬,心中的快樂難以言表,那種感覺多么的讓人享受。當我們聚在一起專心為之而戰斗的時候,專心的投入進去后,終于在你迫切地需要緩一下勁而暫停了一下的時候,你會恍然驚嘆:大家居然忙了這么久!是的,這是專心,這是態度,人們說態度決定高度!興奮著便又埋首于當前的工作之中了。最終,我們終于可以開心地笑著說我們可以稍事休息一會兒了,此次的任務完成了。我們默契的在心中共銘:不能放棄!這不僅僅是因為執著,也許還因為我們已騎虎難下,
14、畢竟付出了很多,付出了好久。為著它到了幾近癡狂的程度,不只是對它所擁有著的濃厚興趣,更是為了求得一個交待。我們心中有著一個堅定的信念:我們要彼此并肩齊首,走更遠的路。參考文獻:郭天祥 新概念51單片機C語言教程 譚浩強 C程序設計(第三版)李歲勞 楊鵬翔 朱新穎 基于C8051單片機的多路溫度無線遙測系統 儀器儀表: 儀器儀表名稱型號生產公司名稱三位半數字萬用表MY61蘇山儀器儀表公司溫度計MC不詳(從電子系實驗室借用)附錄總電路設計原理圖 基于單片機的溫度采集與無線發送電路 基于單片機的無線接收及1602液晶顯示電路程序代碼清單:發射Allhead.h/*/#ifndef _ALLHEAD_
15、H_#define _ALLHEAD_H_/*/#include"pubile.h"#include"Delay.h"#include"NRF24L01.h"#include"DS18N02.h"/*/#endifDelay.h/*/#ifndef _DELAY_H_#define _DELAY_H_/*/void Delay(unint t);void DDelay(unint t);/*/#endifDS18B20.h/*/#ifndef _DS18B20_H_#define _DS18B20_H_/*/ext
16、ern void Reset();extern void WriteChar(unchar dat);extern unint ReadChar();extern unint ReadTemperature();/*/#endifNRF24L01.h/*/#ifndef _NRF24L01_H_#define _NRF24L01_H_/*/#define TX_ADDR_WITDH 5/發送地址寬度設置為5個字節#define RX_ADDR_WITDH 5/接收地址寬度設置為5個字節#define TX_DATA_WITDH 10/發送數據寬度1個字節#define RX_DATA_WITD
17、H 10/接收數據寬度1個字節/*命令寄存器*/#define R_REGISTER 0x00/讀取配置寄存器#define W_REGISTER 0x20/寫配置寄存器#define R_RX_PAYLOAD 0x61/讀取RX有效數據#define W_TX_PAYLOAD 0xa0/寫TX有效數據#define FLUSH_TX 0xe1/清除TXFIFO寄存器#define FLUSH_RX 0xe2/清除RXFIFO寄存器#define REUSE_TX_PL 0xe3/重新使用上一包有效數據#define NOP 0xff/空操作/*寄存器地址*/#define CONFIG 0x
18、00/配置寄存器#define EN_AA 0x01/使能自動應答#define EN_RXADDR 0x02/接收通道使能0-5個通道#define SETUP_AW 0x03/設置數據通道地址寬度3-5#define SETUP_RETR 0x04/建立自動重發#define RF_CH 0x05/射頻通道設置#define RF_SETUP 0x06/射頻寄存器#define STATUS 0x07/狀態寄存器#define OBSERVE_TX 0x08/發送檢測寄存器#define CD 0x09/載波#define RX_ADDR_P0 0x0a/數據通道0接收地址#define
19、RX_ADDR_P1 0x0b/數據通道1接收地址#define RX_ADDR_P2 0x0c/數據通道2接收地址#define RX_ADDR_P3 0x0d/數據通道3接收地址#define RX_ADDR_P4 0x0e/數據通道4接收地址#define RX_ADDR_P5 0x0f/數據通道5接收地址#define TX_ADDR 0x10/發送地址#define RX_PW_P0 0x11/P0通道數據寬度設置#define RX_PW_P1 0x12/P1通道數據寬度設置#define RX_PW_P2 0x13/P2通道數據寬度設置#define RX_PW_P3 0x14/
20、P3通道數據寬度設置#define RX_PW_P4 0x15/P4通道數據寬度設置#define RX_PW_P5 0x16/P5通道數據寬度設置#define FIFO_STATUS 0x17/FIFO狀態寄存器/*相關函數聲明*/unchar NRFACK();unchar NRFSPI(unchar date);unchar NRFReadReg(unchar RegAddr);unchar NRFWriteReg(unchar RegAddr,unchar date);unchar NRFReadRxDate(unchar RegAddr,unchar *RxDate,unchar
21、DateLen);unchar NRFWriteTxDate(unchar RegAddr,unchar *TxDate,unchar DateLen);unchar NRFRevDate(unchar *RevDate);void NRFSetTxMode(unchar *TxDate);void NRF24L01Int();void NRFSetRXMode();unchar CheckACK();extern unchar bdata sta;/*/#endifPubile.h/*/#ifndef _PUBILE_H_#define _PUBILE_H_/*/#define unchar
22、 unsigned char#define unint unsigned int/*/#endifDelay.c/*/#include"reg52.h"#include"Allhead.h"/*延時函數*/void Delay(unint t) unint x,y; for(x=t;x>0;x-) for(y=110;y>0;y-);/* DS18B20專用延時子函數*/void DDelay(unint t) unint n;n=0; while(n<t) n+; DS18B20.c/*/#include"reg52.h&q
23、uot;#include"allhead.h"sbit DQ=P22;/數據端unint tempL,tempH;/* DS18B20復位函數*/void Reset() DQ=1;DDelay(8); DQ=0; DDelay(85); DQ=1;DDelay(14); /* DS18B20寫一個字節函數*/void WriteChar(unchar dat) unint i; for(i=8;i>0;i-) DQ=0; DQ=dat&0x01;DDelay(5);DQ=1;dat>>=1; DDelay(4); /* DS18B20讀一個字節函
24、數*/unint ReadChar() unchar i,dat=0;for (i=8;i>0;i-) DQ=1; DDelay(1);DQ=0; dat>>=1;DQ=1; if(DQ) dat=dat|0x80; DDelay(4); return(dat); /* /*SPI時序函數*/unchar NRFSPI(unchar date) unchar i; for(i=0;i<8;i+) / 循環8次 if(date&0x80) MOSI=1; else MOSI=0; / byte最高位輸出到MOSI date<<=1; / 低一位移位到最
25、高位 SCLK=1; if(MISO) / 拉高SCK,nRF24L01從MOSI讀入1位數據,同時從MISO輸出1位數據 date|=0x01; / 讀MISO到byte最低位 SCLK=0; / SCK置低 return(date); / 返回讀出的一字節/*NRF24L01初始化函數*/void NRF24L01Int()Delay(2);/讓系統什么都不干CE=0; /待機模式1 CSN=1; SCLK=0;IRQ=1; /*SPI讀寄存器一字節函數*/unchar NRFReadReg(unchar RegAddr) unchar BackDate; CSN=0;/啟動時序 NRFS
26、PI(RegAddr);/寫寄存器地址 BackDate=NRFSPI(0x00);/寫入讀寄存器指令 CSN=1; return(BackDate); /返回狀態/*SPI寫寄存器一字節函數*/unchar NRFWriteReg(unchar RegAddr,unchar date) unchar BackDate; CSN=0;/啟動時序 BackDate=NRFSPI(RegAddr);/寫入地址 NRFSPI(date);/寫入值 CSN=1; return(BackDate);/*SPI讀取RXFIFO寄存器的值*/unchar NRFReadRxDate(unchar RegAd
27、dr,unchar *RxDate,unchar DateLen) /寄存器地址/讀取數據存放變量/讀取數據長度/用于接收 unchar BackDate,i;CSN=0;/啟動時序BackDate=NRFSPI(RegAddr);/寫入要讀取的寄存器地址for(i=0;i<DateLen;i+) /讀取數據 RxDatei=NRFSPI(0); CSN=1; return(BackDate); /*SPI寫入TXFIFO寄存器的值*/unchar NRFWriteTxDate(unchar RegAddr,unchar *TxDate,unchar DateLen) /寄存器地址/寫入
28、數據存放變量/讀取數據長度/用于發送 unchar BackDate,i; CSN=0; BackDate=NRFSPI(RegAddr);/寫入要寫入寄存器的地址 for(i=0;i<DateLen;i+)/寫入數據 NRFSPI(*TxDate+); CSN=1; return(BackDate);/*NRF設置為發送模式并發送數據*/void NRFSetTxMode(unchar *TxDate)/發送模式 CE=0; NRFWriteTxDate(W_REGISTER+TX_ADDR,TxAddr,TX_ADDR_WITDH);/寫寄存器指令+接收地址使能指令+接收地址+地址寬
29、度NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);/為了應答接收設備,接收通道0地址和發送地址相同NRFWriteTxDate(W_TX_PAYLOAD,TxDate,TX_DATA_WITDH);/寫入數據 /*下面有關寄存器配置*/ NRFWriteReg(W_REGISTER+EN_AA,0x01); / 使能接收通道0自動應答 NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); / 使能接收通道0 NRFWriteReg(W_REGISTER+SETUP_RETR,0x0a); / 自動重
30、發延時等待250us+86us,自動重發10次 NRFWriteReg(W_REGISTER+RF_CH,0x40); / 選擇射頻通道0x40 NRFWriteReg(W_REGISTER+RF_SETUP,0x07); / 數據傳輸率1Mbps,發射功率0dBm,低噪聲放大器增益NRFWriteReg(W_REGISTER+CONFIG,0x0e); / CRC使能,16位CRC校驗,上電 CE=1;Delay(5);/保持10us秒以上/*NRF設置為接收模式并接收數據*/主要接收模式void NRFSetRXMode()CE=0; NRFWriteTxDate(W_REGISTER+R
31、X_ADDR_P0,TxAddr,TX_ADDR_WITDH); / 接收設備接收通道0使用和發送設備相同的發送地址 NRFWriteReg(W_REGISTER+EN_AA,0x01); / 使能接收通道0自動應答 NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); / 使能接收通道0 NRFWriteReg(W_REGISTER+RF_CH,0x40); / 選擇射頻通道0x40 NRFWriteReg(W_REGISTER+RX_PW_P0,TX_DATA_WITDH); / 接收通道0選擇和發送通道相同有效數據寬度 NRFWriteReg(W_REGISTE
32、R+RF_SETUP,0x07); / 數據傳輸率1Mbps,發射功率0dBm,低噪聲放大器增益*/ NRFWriteReg(W_REGISTER+CONFIG,0x0f); / CRC使能,16位CRC校驗,上電,接收模式 CE = 1;Delay(5);/保持10us秒以上 /*檢測應答信號*/unchar CheckACK() /用于發射sta=NRFReadReg(R_REGISTER+STATUS); / 返回狀態寄存器if(TX_DS|MAX_RT) /發送完畢中斷 NRFWriteReg(W_REGISTER+STATUS,0xff); / 清除TX_DS或MAX_RT中斷標志
33、CSN=0; NRFSPI(FLUSH_TX);/用于清空FIFO !關鍵!不然會出現意想不到的后果!大家記住! CSN=1; return(0);else return(1);/*判斷是否接收收到數據,接到就從RX取出*/用于接收模式unchar NRFRevDate(unchar *RevDate) unchar RevFlags=0; sta=NRFReadReg(R_REGISTER+STATUS);/發送數據后讀取狀態寄存器 if(RX_DR)/ 判斷是否接收到數據 CE=0; /SPI使能NRFReadRxDate(R_RX_PAYLOAD,RevDate,RX_DATA_WITD
34、H);/ 從RXFIFO讀取數據RevFlags=1; /讀取數據完成標志 NRFWriteReg(W_REGISTER+STATUS,0xff); /接收到數據后RX_DR,TX_DS,MAX_PT都置高為1,通過寫1來清楚中斷標 return(RevFlags);void main()unint i; unint ReadTempDate;/讀取溫度 char TxDate6; NRF24L01Int(); while(1) ReadTempDate=ReadTemperature(); TxDate0=ReadTempDate/100+'0' TxDate1=ReadTe
35、mpDate%100/10+'0' TxDate2='.' TxDate3=ReadTempDate%100%10+'0' TxDate4=ReadTempDate/100; TxDate5=ReadTempDate%100/10; NRFSetTxMode(TxDate);/發送溫度 while(CheckACK();/檢測是否發送完畢 for(i=70;i>0;i-) dis_temp(ReadTemperature();接收Allhead.h/*/#ifndef _ALLHEAD_H_#define _ALLHEAD_H_/*/#in
36、clude"pubile.h"#include"DELAY.h"#include"LCD1602.h"#include"NRF24L01.h" /*/#endifLCD1602.h/*/#ifndef _LCD1602_H_#define _LCD1602_H_/*/extern void LCDWriteCmd(unchar cmd);void LCDWriteDate(unchar date);void LcdShow(unchar x,unchar y,unchar *str);void SetXY(unch
37、ar x,unchar y);extern void LCD1602Int();void xianshi(unchar add,unint date);/*/#endifNRF24L01.h/*/#ifndef _NRF24L01_H_#define _NRF24L01_H_/*/#define TX_ADDR_WITDH 5/發送地址寬度設置為5個字節#define RX_ADDR_WITDH 5/接收地址寬度設置為5個字節#define TX_DATA_WITDH 10/發送數據寬度1個字節#define RX_DATA_WITDH 10/接收數據寬度1個字節/*命令寄存器*/#defin
38、e R_REGISTER 0x00/讀取配置寄存器#define W_REGISTER 0x20/寫配置寄存器#define R_RX_PAYLOAD 0x61/讀取RX有效數據#define W_TX_PAYLOAD 0xa0/寫TX有效數據#define FLUSH_TX 0xe1/清除TXFIFO寄存器#define FLUSH_RX 0xe2/清除RXFIFO寄存器#define REUSE_TX_PL 0xe3/重新使用上一包有效數據#define NOP 0xff/空操作/*寄存器地址*/#define CONFIG 0x00/配置寄存器#define EN_AA 0x01/使能自
39、動應答#define EN_RXADDR 0x02/接收通道使能0-5個通道#define SETUP_AW 0x03/設置數據通道地址寬度3-5#define SETUP_RETR 0x04/建立自動重發#define RF_CH 0x05/射頻通道設置#define RF_SETUP 0x06/射頻寄存器#define STATUS 0x07/狀態寄存器#define OBSERVE_TX 0x08/發送檢測寄存器#define CD 0x09/載波#define RX_ADDR_P0 0x0a/數據通道0接收地址#define RX_ADDR_P1 0x0b/數據通道1接收地址#defi
40、ne RX_ADDR_P2 0x0c/數據通道2接收地址#define RX_ADDR_P3 0x0d/數據通道3接收地址#define RX_ADDR_P4 0x0e/數據通道4接收地址#define RX_ADDR_P5 0x0f/數據通道5接收地址#define TX_ADDR 0x10/發送地址#define RX_PW_P0 0x11/P0通道數據寬度設置#define RX_PW_P1 0x12/P1通道數據寬度設置#define RX_PW_P2 0x13/P2通道數據寬度設置#define RX_PW_P3 0x14/P3通道數據寬度設置#define RX_PW_P4 0x1
41、5/P4通道數據寬度設置#define RX_PW_P5 0x16/P5通道數據寬度設置#define FIFO_STATUS 0x17/FIFO狀態寄存器/*相關函數聲明*/unchar NRFACK();unchar NRFSPI(unchar date);unchar NRFReadReg(unchar RegAddr);unchar NRFWriteReg(unchar RegAddr,unchar date);unchar NRFReadRxDate(unchar RegAddr,unchar *RxDate,unchar DateLen);unchar NRFWriteTxDate
42、(unchar RegAddr,unchar *TxDate,unchar DateLen);void NRFSetTxMode(unchar *TxDate);void NRF24L01Int();void NRFSetRXMode();void CheckACK();void keyscan();extern void GetDate();extern unchar RevTempDate7;/*/#endifPubile.h/*/#ifndef _PUBILE_H_#define _PUBILE_H_/*/#define unchar unsigned char#define unint unsigned int/*/#endifDelay.c/*/#include"reg52.h"#include"Allhead.h"/*延時函數*/void LCDDelay(unchar t) unchar x,y; for(x=t;x>0;x-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 ISO 80369-6:2025 EN Small bore connectors for liquids and gases in healthcare applications - Part 6: Connectors for neural applications
- 【正版授權】 IEC 60654-1:1993 EN-D Industrial-process measurement and control equipment - Operating conditions - Part 1: Climatic conditions
- 【正版授權】 IEC TS 63224:2025 EN Management of network assets in power systems - Management aspects
- 城市交通智能化升級項目協議
- 旅游服務行業從業及表現證明(5篇)
- 機械工程原理及設備維護案例分析
- 農業領域產品種類表
- 藝德家政考試試題及答案
- 六一助殘活動方案
- 六一商場品牌活動方案
- 人力資源管理2025年考試試卷及答案
- 安徽省合肥市廬江縣2023-2024學年七年級下學期6月期末數學試題
- 2025年氯硝西泮項目市場調查研究報告
- T/DZJN 136-2023家用燃氣快速熱水器全程節能分級評價規范
- 鄭州中原綠色產業生態發展公司招聘筆試真題2024
- 深圳市非承重墻體與飾面工程施工及驗收標準SJG 14-2018
- 2025至2030中國芳綸纖維行業需求預測及發展前景趨勢研究報告
- 十一學校小升初入學測試數學真題及詳細解答
- 婚內賭博欠債協議書范本
- 造價咨詢項目管理制度
- XX公司事故隱患內部報告獎勵制度1
評論
0/150
提交評論