基于nRF2401无线传输的集温湿度与光照监测系统
write_dat('C'); qqq=rx_buf[1]; delay1ms(5);
write_cmd(0x8b);
write_dat(rx_buf[2]/10+0x30); write_dat(rx_buf[2]+0x30); write_dat(' '); write_dat('%'); www=rx_buf[2]; delay1ms(5);
write_cmd(0x9b);
write_dat(rx_buf[3]/10+48); write_dat(rx_buf[3]+48); write_dat(rx_buf[4]/10+48); write_dat(rx_buf[4]+48); write_dat(rx_buf[5]); write_dat(' '); write_dat('L'); write_dat('x'); eee=rx_buf[3]; rrr=rx_buf[4];
ttt=rx_buf[5]-48; //变为数值 }
SPI_RW_Reg(WRITE_REG+STATUS,sta); //接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标志 return revale; }
/***********************************************************************************************************
/*函数:void nRF24L01_TxPacket(unsigned char * tx_buf) /*功能:发送 tx_buf中数据
/**********************************************************************************************************/
void nRF24L01_TxPacket(uchar *tx_buf) {
CE=0; //StandBy I模式
SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);
SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // 发射端地址 SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); // 装载数据
SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); // IRQ收发完成中断响应,16位CRC,主发送
CE=1; //置高CE,激发数据发送 inerDelay_us(20);
32
}
//************************************主
************************************************************ void StartUART( void )
{ //波特率9600 TR1=1; REN=1; SM0=0;
SM1=1; // 方式1 TMOD = 0x20; TH1 = 0xFD; TL1 = 0xFD;
PCON = 0x00; //单倍 }
void R_S_Byte(uchar R_Byte) {
SBUF = R_Byte;
while( TI == 0 ); //查询法 TI = 0; } // //
void main(void) { uchar i;
uchar bb[10]; uchar RxBuf[8]={0};
init_12864();
zifu(0x80,tab0,8); zifu(0x90,tab1,3); zifu(0x88,tab2,3); zifu(0x98,tab3,3);
StartUART(); init_NRF24L01() ; Delay(100); while(1) {
bb[0]=qqq/10; //上位机 传送 i=bb[0];
R_S_Byte(table[i]);
bb[1]=qqq;
函数
33
基于nRF2401无线传输的集温湿度与光照监测系统
}
//
i=bb[1];
R_S_Byte(table[i]); bb[2]=www/10; i=bb[2];
R_S_Byte(table[i]); bb[3]=www; i=bb[3];
R_S_Byte(table[i]); bb[4]=eee/10; i=bb[4];
R_S_Byte(table[i]); bb[5]=eee; i=bb[5];
R_S_Byte(table[i]); bb[6]=rrr/10; i=bb[6];
R_S_Byte(table[i]); bb[7]=rrr; i=bb[7];
R_S_Byte(table[i]); bb[8]=ttt; i=bb[8];
R_S_Byte(table[i]); SetRX_Mode();
nRF24L01_RxPacket(RxBuf); SPI_RW(FLUSH_RX); RxBuf[1] = 0x00; RxBuf[2] = 0x00; RxBuf[3] = 0x00; RxBuf[4] = 0x00; RxBuf[5] = 0x00; Delay(100);
}
Delay(1000);
34