您的位置 首页 产品

用nRF905和DS18B20制造的51单片机温度数据无线传输体系

我用DS18B20和两套由nRF905组成的无线数传模块制作了一套温度数据的无线传输采集系统,已经调试通过,效果良好。其硬件电路框图如下:(AM,C

我用DS18B20和两套由nRF905组成的无线数传模块制作了一套温度数据的无线传输收集体系,现已调试经过,作用杰出。其硬件电路框图如下:

(AM,CD与单片机的P1.3,P1.4的衔接未画出)

DS18B20是MAXIM公司推出的数字温度传感器,将它丈量的温度数据直接送到单片机,再由单片机传给nRF905,数据经调制后被发送出去。nRF905作业于433/868/915MHz三个ISM(工业、科学和医学)频道,这儿运用的是433MHz的载频。别的一套nRF905无线数传模块收到信号后,经解调得到的原始温度数据传给单片机,单片机经过串口把数据再传给上位电脑,最终经过处理的温度数据连同日期、时刻、收集点等相关信息能够被主动录入电脑保存并实时显现在电脑屏幕上。简略的电脑数据显现界面如下图:

本体系什物相片如下:

相片中左面为带有DS18B20数字温度传感器的用作发射数据的nRF905无线数传模块,右边为用作接纳数据的nRF905数传模块,其间的单片机能够经过串口和电脑相连,上传数据。

/

#include 
#include 
#define uchar unsigned char
#define uintunsigned int
#define WC0x00// Write configuration register command
#define RC0x10// Readconfiguration register command
#define WTP0x20// Write TX Payloadcommand
#define RTP0x21// ReadTX Payloadcommand
#define WTA0x22// Write TX Addresscommand
#define RTA0x23// ReadTX Addresscommand
#define RRP0x24// ReadRX Payloadcommand

typedef struct RFConfig
{
uchar n;
uchar buf[10];
}RFConfig;
code RFConfig RxTxConf =
{
10,
0x01, 0x0c, 0x44, 0x20, 0x20, 0xcc, 0xcc, 0xcc,0xcc, 0x58
};
// The content of this struct is nRF905s initialize data.初始化数据
// CH_NO=1;433MHZ;Normal Opration,No Retrans;RX,TX Address is 4 Bytes
// RX TX Payload Width is 32 Bytes;Disable Extern Clock;Fosc=16MHZ
// 8 Bits CRC And enable

uchar data TxBuf[32];
uchar data RxBuf[32];
uchar key,rsbrf,delayf,tf;

uchar bdata DATA_BUF;
sbit flag =DATA_BUF^7;
sbit flag1 =DATA_BUF^0;

sbit TX_EN =P1^7;
sbit TRX_CE =P1^6;
sbit PWR_UP =P1^5;
sbit MISO =P1^1;
sbit MOSI =P1^0;
sbit SCK=P3^7;
sbit CSN=P3^3;
sbit AM=P1^3;
sbit DR=P3^2;
sbit CD=P1^4;
sbitLED1=P3^4;
sbitLED2=P3^5;
sbitKEY1=P3^0;
sbitKEY2=P3^1;

void InitIO(void);// Initialize IO port
void Inituart(void);// initialize 232 uart
void Config905(void);// Config nRF905 module装备NRF905形式
void SetTxMode(void);// Set nRF905 in Tx mode
void SetRxMode(void);// Set nRF905 in Rx mode
void TxPacket(void);// Send data by nRF905
void RxPacket(void);// Recive data by nRF905
void SpiWrite(uchar);// Write data to nRF905
uchar SpiRead(void);// Read data to nRF905
void Delay(uchar n);// Delay 100us
void Scankey(void);// Scan key
void TxData (uchar x);// Send key_value to CRT display
void comdebug(void);

void Delay(uchar n)
{
uint i;
while(n--)
for(i=0;i<80;i++);
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/chanpin/256285.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部