[51单片机] SPI nRF24L01无线 [可以放在2个单片机里实现通信]-阿里云开发者社区

开发者社区> 云计算> 正文
登录阅读全文

[51单片机] SPI nRF24L01无线 [可以放在2个单片机里实现通信]

简介:


 

main.c

复制代码
 1 #include<reg51.h>
 2 #include"2401.h"
 3 
 4 #define uint unsigned int
 5 #define uchar unsigned char
 6 
 7 sbit KEY8=P3^7;     //发送按键 
 8 sbit beep=P2^3;//喇叭 
 9 sbit LED6=P1^6;     ////接收到数据后的功能实现灯  
10 
11 void delay_ms(uint z)     //延时函数 
12 {
13     uint x,y;
14     for(x=z;x>0;x--)
15         for(y=110;y>0;y--);
16 }
17 void delayms(unsigned int x)
18 {
19     unsigned int i;
20     while(x--)
21         for(i=125;i>0;i--);
22 }
23 void main()
24 {
25      uchar Tx_Buf1[]={1};//发送的信息1 
26      uchar Rx_Buf[32];  //接收到的数据暂存器,最多32字节数据  
27      init_NRF24L01();
28      LED6=1;//初始灯6熄灭   
29 
30 
31     while(NRF24L01_Check())        //检查不到24l01则报警 
32     {
33         beep=0;
34         delayms(200);
35         beep=1;
36         delayms(200);
37     }
38     while(1)
39     {    
40         RX_Mode();//接收模式  
41         while(!nRF24L01_RxPacket(Rx_Buf)) //等待接收数据 ,返回1则接收到数据 ,在等待接收数据期间,可以随时变成发送模式  
42         {
43             if(KEY8==0)     //按了按键8   则变成发送模式,发送对应数据,发送完后变成接收模式 
44             {    
45                 delay_ms(5);//消抖动 
46                 if(KEY8==0)
47                 {
48                      while(!KEY8);
49                     TX_Mode();     //发送模式 
50                     nRF24L01_TxPacket(Tx_Buf1);    // 发送命令数据
51                       LED6=0;
52                     delay_ms(300);
53                     LED6=1;
54                     delay_ms(300);            //发送后LED6闪一下 
55                     break;    //退出最近的循环,从而变回接收模式,这句关键
56                  }
57                 
58              }
59          }
60          if(Rx_Buf[0]==1)       //若接收到对应的数据则实现对应功能 
61          {
62              Rx_Buf[0]=0;//清空数据 
63                LED6=0;
64              delay_ms(300);
65              LED6=1;
66              delay_ms(300);//接收到数据 后闪烁      
67          }         
68     }
69 }
复制代码



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

其他文章