标题:
NRF24L01通信的51单片机源代码 包括发送和接受两部分及相关资料
[打印本页]
作者:
miaoshanfa
时间:
2018-4-9 19:32
标题:
NRF24L01通信的51单片机源代码 包括发送和接受两部分及相关资料
基于51单片机的NRF24L01通信代码,包括发送和接受两部分,还有NRF24L01相关的资料
0.jpg
(26.43 KB, 下载次数: 37)
下载附件
2018-4-9 23:47 上传
0.jpg
(18.91 KB, 下载次数: 36)
下载附件
2018-4-9 23:47 上传
单片机源程序如下:
#include<reg51.h>
#include"2401.h"
#define uint unsigned int
#define uchar unsigned char
sbit KEY8=P3^7; //发送按键
sbit beep=P1^5;//喇叭
sbit LED6=P1^4; ////接收到数据后的功能实现灯
void delay_ms(uint z) //延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delayms(unsigned int x)
{
unsigned int i;
while(x--)
for(i=125;i>0;i--);
}
void main()
{
uchar Tx_Buf1[]={1};//发送的信息1
uchar Rx_Buf[32]; //接收到的数据暂存器,最多32字节数据
init_NRF24L01();
LED6=1;//初始灯6熄灭
while(NRF24L01_Check()) //检查不到24l01则报警
{
beep=0;
delayms(200);
beep=1;
delayms(200);
}
while(1)
{
RX_Mode();//接收模式
while(!nRF24L01_RxPacket(Rx_Buf)) //等待接收数据 ,返回1则接收到数据 ,在等待接收数据期间,可以随时变成发送模式
{
if(KEY8==0) //按了按键8 则变成发送模式,发送对应数据,发送完后变成接收模式
{
delay_ms(5);//消抖动
if(KEY8==0)
{
while(!KEY8);
TX_Mode(); //发送模式
nRF24L01_TxPacket(Tx_Buf1); // 发送命令数据
break; //退出最近的循环,从而变回接收模式,这句关键
}
}
}
if(Rx_Buf[0]=='1') //若接收到对应的数据则实现对应功能
{
Rx_Buf[0]=0;//清空数据
LED6=0;
delay_ms(300);
LED6=1;
delay_ms(300);//接收到数据 后闪烁
}
if(Rx_Buf[0]=='2') //若接收到对应的数据则实现对应功能
{
Rx_Buf[0]=0;//清空数据
beep=0;
delay_ms(300);
beep=1;
delay_ms(300);//接收到数据 后闪烁
}
if(Rx_Buf[1]=='1') //若接收到对应的数据则实现对应功能
{
Rx_Buf[0]=0;//清空数据
LED6=0;
delay_ms(300);
LED6=1;
delay_ms(300);//接收到数据 后闪烁
beep=0;
delay_ms(300);
beep=1;
delay_ms(300);//接收到数据 后闪烁
}
}
}
复制代码
所有资料51hei提供下载:
NRF24L01.zip
(3.12 MB, 下载次数: 38)
2018-4-9 19:30 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1