微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机 nRF24L01 无线模块 测试 按键灯远程控制

51单片机 nRF24L01 无线模块 测试 按键灯远程控制

时间:11-19 来源:互联网 点击:
入正题,这个实验的功能就是一个发送模块(大的那个板)连接4个按键,通过按动这4个不同的按键来发送4种不同的命令,来控制接收端(小的板)点亮4个不同的灯。

>_

1 void main()2 {3      uchar Tx_Buf1[]={1};    //发送的信息1 4      uchar Rx_Buf[32];      //接收到的数据暂存器,最多32字节数据  5      init_NRF24L01();6      LED6=1;                //初始灯6熄灭   7 8     while(NRF24L01_Check())                    //检查不到24l01则报警 9     {10         beep=0;11         delay_ms(200);12         beep=1;13         delay_ms(200);14     }15     while(1)16     {    17         RX_Mode();                            //接收模式  18         while(!nRF24L01_RxPacket(Rx_Buf))     //等待接收数据,返回1则接收到数据,在等待接收数据期间,可以随时变成发送模式  19         {20             if(KEY1==0)                         //按了按键1,则变成发送模式,发送对应数据,发送完后变成接收模式 21             {    22                 delay_ms(5);//消抖动 23                 if(KEY1==0)24                 {25                      while(!KEY1);26                     TX_Mode();                         //发送模式 27                     Tx_Buf1[0]=1;                    //将1发送过去28                     nRF24L01_TxPacket(Tx_Buf1);        //发送命令数据29                     LED6=0;30                     delay_ms(300);31                     LED6=1;32                     delay_ms(300);                    //发送后LED1闪一下 33                     break;                            //退出最近的循环,从而变回接收模式,这句关键34                  }    35              }36              else if(KEY2==0)                     37              {    38                 delay_ms(5);//消抖动 39                 if(KEY2==0)40                 {41                      while(!KEY2);42                     TX_Mode();                         //发送模式 43                     Tx_Buf1[0]=2;                    //将2发送过去44                     nRF24L01_TxPacket(Tx_Buf1);        //发送命令数据45                     LED6=0;46                     delay_ms(300);47                     LED6=1;48                     delay_ms(300);                    49                     break;                            //退出最近的循环,从而变回接收模式,这句关键50                  }    51               }52               else if(KEY3==0)                         53               {    54                 delay_ms(5);//消抖动 55                 if(KEY3==0)56                 {57                      while(!KEY3);58                     TX_Mode();                         //发送模式 59                     Tx_Buf1[0]=3;                    //将

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top