无线传感(期末考查论文) - 杨岗、余国朗、洪聪、朱校立(7)

2020-04-14 01:54

基于nRF2401无线传输的集温湿度与光照监测系统

if(wendu==40) {

BELL=0; } else {

BELL=1; }

if(shidu==57) {

BELL=0; } else {

BELL=1; } } }

//************************************串口********************************************************* void main() {

uchar TxBuf[8]={0};

wendu=0; shidu=0;

init();

init_NRF24L01();

delay_nms(200); //延时200ms delay_nms(1000); //延时200ms

Init_BH1750(); //初始化BH1750

while(1) //循环 {

/*光电传感器*/

Single_Write_BH1750(0x01); // power on

Single_Write_BH1750(0x10); // H- resolution mode

delay_nms(180); //延时180ms

Multiple_Read_BH1750(); //连续读出数据,存储在BUF中

dis_data=BUF[0];

初始化

22

dis_data=(dis_data<<8)+BUF[1];//合成数据

temp1=(float)dis_data/1.2;

conversion(temp1); //计算数据和显示

a=wan*10000+qian*1000+bai*100+shi*10+ge; if(a>=500) t=0; //

DTH11_DUSHU(); //

write_com(0x80); write_date('T'); write_date('E'); write_date('M'); write_date(':');

write_date(wendu/10+48); write_date(wendu+48); write_date(0xdf); write_date('C');

write_com(0x88); write_date('H'); write_date('U'); write_date('M'); write_date(':');

write_date(shidu/10+48); write_date(shidu+48); write_date('%');

write_com(0xc0); write_date('L'); write_date('I'); write_date('T'); write_date(':'); write_date(wan); write_date(qian); write_date(bai); write_date(shi); write_date(ge);

zzz= (wan-48)*10+qian-48 ; //将光强万位千位合成一个数 xxx= (bai-48)*10+shi-48; TxBuf[1] = wendu; TxBuf[2] = shidu;

23

基于nRF2401无线传输的集温湿度与光照监测系统

} }

TxBuf[3] = zzz; TxBuf[4] = xxx; TxBuf[5] = ge;

nRF24L01_TxPacket(TxBuf); // Transmit Tx buffer data TxBuf[1] = 0x00; TxBuf[2] = 0x00; TxBuf[3] = 0x00; TxBuf[4] = 0x00; TxBuf[5] = 0x00;

delay1ms(1000);

sta=SPI_Read(STATUS); if(TX_DS==0) { } else {

}

SPI_RW_Reg(WRITE_REG+STATUS,sta); delay1ms(1000);

接收端程序:

#include #include

typedef unsigned char uchar; typedef unsigned int uint; #define ulong unsigned long uchar qqq,www,eee,rrr,ttt,yyy; uchar table[]=\

sbit RS=P3^4; sbit RW=P3^6; sbit E=P3^7;

uchar code tab0[]={\温室环境参数测试\

24

uchar code tab1[]={\温度:%uchar code tab2[]={\湿度:%uchar code tab3[]={\光强:\

//****************************************NRF24L01端口定义*************************************** sbit MISO =P1^4; sbit MOSI =P1^3; sbit SCK =P1^2; sbit CE =P1^0; sbit CSN =P1^1;

sbit IRQ =P1^5; //0~~9段码 //*********************************************NRF24L01*************************************

#define TX_ADR_WIDTH 5 // 5 uints TX address width #define RX_ADR_WIDTH 5 // 5 uints RX address width #define TX_PLOAD_WIDTH 8 // 20 uints TX payload #define RX_PLOAD_WIDTH 8 // 20 uints TX payload

uchar const TX_ADDRESS[TX_ADR_WIDTH] = {0x35,0x43,0x10,0x10,0x03} ;//本地地址

uchar const RX_ADDRESS[RX_ADR_WIDTH]= {0x35,0x43,0x10,0x10,0x03}; //接收地址 P1 实际地址为:03-10-10-43-35

//***************************************NRF24L01寄存器指令******************************************************* #define READ_REG 0x00 // 读寄存器指令 #define WRITE_REG 0x20 // 写寄存器指令 #define RD_RX_PLOAD 0x61 // 读取接收数据指令 #define WR_TX_PLOAD 0xA0 // 写待发数据指令 #define FLUSH_TX 0xE1 // 冲洗发送 FIFO指令 #define FLUSH_RX 0xE2 // 冲洗接收 FIFO指令 #define REUSE_TX_PL 0xE3 // 定义重复装载数据指令 #define NOP 0xFF // 保留

//*************************************SPI(nRF24L01)寄存器地址****************************************************

#define CONFIG 0x00 // 配置收发状态,CRC校验模式以及收发状态响应方式 #define EN_AA 0x01 // 自动应答功能设置 #define EN_RXADDR 0x02 // 可用信道设置 #define SETUP_AW 0x03 // 收发地址宽度设置 #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接收数据地址 #define RX_ADDR_P2 0x0C // 频道2接收数据地址

25

基于nRF2401无线传输的集温湿度与光照监测系统

#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 // 接收频道0接收数据长度 #define RX_PW_P1 0x12 // 接收频道1接收数据长度 #define RX_PW_P2 0x13 // 接收频道2接收数据长度 #define RX_PW_P3 0x14 // 接收频道3接收数据长度 #define RX_PW_P4 0x15 // 接收频道4接收数据长度 #define RX_PW_P5 0x16 // 接收频道5接收数据长度

#define FIFO_STATUS 0x17 // FIFO栈入栈出状态寄存器设置

//************************************************************************************** void Delay(uint s);

void inerDelay_us(uchar n); void init_NRF24L01(void); uchar SPI_RW(uchar byte); uchar SPI_Read(uchar reg); //void SetRX_Mode(void);

uchar SPI_RW_Reg(uchar reg, uchar value);

uchar SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars); uchar SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars); uchar nRF24L01_RxPacket(uchar* rx_buf); void nRF24L01_TxPacket(uchar * tx_buf);

void delay1ms(uint z) {

uint x,y;

for(x=z;x>0;x--)

for(y=114;y>0;y--); }

void delay_50us(uint t) {

uint j;

for(;t>0;t--); for(j=19;j>0;j--); }

void delay_50ms(uint t) {

uint j;

for(;t>0;t--);

for(j=6245;j>0;j--); }

void write_cmd(uchar cmd) {

RS=0; RW=0;

26


无线传感(期末考查论文) - 杨岗、余国朗、洪聪、朱校立(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:统计学试题库计算题部分

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: