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 }
本文转自beautifulzzzz博客园博客,原文链接:http://www.cnblogs.com/zjutlitao/p/3753984.html,如需转载请自行联系原作者

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

  1. 基于Arduino单片机的nRF24L01+无线遥控装置设计(爆肝制作)

    目录 前言 一.总体思路 二.硬件介绍 (一)主机 (二)从机 三.电路设计 (一)主机 (二)从机 四.程序代码 (一)主机 (二)从机 五.总结及改进 六.所用到的文献链接 前言 此文章只涉及单片 ...

  2. 12、基于51单片机多机 NRF24L01 无线温湿度 DHT11报警设计

    毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.PCB图 六.程序源码 七.资料包括 摘要 温度湿度在工农业生产中占有很重要的地位,是 ...

  3. nrf24l01无线通信模块与51单片机工作原理

    资源获取码:aaaa . 实物测试成功 . . 功能描述: 1 本无线用了NRF24l01作为无线模块,进行发射与接收. 2 当左边板的一个按键按下不放,右边板一盏灯点亮. 3 当左边板的一个按键松开 ...

  4. 111、基于51单片机的电磁感应无线充电系统 手机无线充电器设计(程序+原理图+Proteus仿真+程序流程图+论文参考资料等)

    方案选择 单片机的选择 方案一:AT89C52是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度.非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通 ...

  5. STM32CubeMX系列08——SPI通信(W25Q64、NRF24L01无线模块)

    文章目录 1. 准备工作 1.1. 所用硬件 1.2. SPI 简介 1.3. 生成工程 1.3.1. 创建工程选择主控 1.3.2. 系统配置 1.3.3. 配置工程目录 2. 读写EEPROM实验 ...

  6. 51单片机——SPI

    单片机--SPI总线 宗旨:技术的学习是有限的,分享的精神是无限的. UART. I2C 和 SPI 是单片机系统中最常用的三种通信协议. 1.初步介绍 SPI 是一种高速的.全双工.同步通信总线,标 ...

  7. SPI存储器c语言51程序,AVR单片机SPI通讯实例程序 (C语言源代码)

    AVR单片机SPI通讯实例程序 (C语言源代码) 来源:-- 作者:-- 浏览:213 时间:2016-08-10 14:18 标签: 摘要: AVR单片机SPI通讯实例程序 (C语言源代码) 一个S ...

  8. 外设驱动库开发笔记26:nRF24L01无线通讯驱动

    现在无线在我们的生活中无处不在.而我们开发的物联网产品也大量使用无线通讯.在这一篇文章中,我们将讨论nRF24L01无线通讯模块驱动程序的开发与实现. 1.功能概述 nRF24L01是一款工作在2.4 ...

  9. STM32控制NRF24L01无线模块进行通信

    一.NRF2401无线模块 1.模块介绍 功能介绍 (1)2.4Ghz 全球开放ISM 频段免许可证使 2) 最高工作速率2Mbps,高效GFSK调制,抗干扰能力强,特别适合工业控制场合 (3)126 ...

最新文章

  1. 什么是SAP FR?
  2. python 统计文件top IP
  3. 硬核!手写一个优先队列
  4. 如何查看一个现有的keil工程之前由什么版本的keil IDE编译
  5. linux卸载es,Ubuntu卸载elasticsearch
  6. JS 与Flex交互:html中的js 与flex中的actionScript通信
  7. 如何在验证集加噪声_如何使用Python构建机器学习模型
  8. HDU 3480 Division(斜率DP裸题)
  9. oracle 字段带数字,Oracle字符串中包含数字、特殊符号的排序
  10. 谷歌800多款开源字体
  11. 底层驱动 【One Day】gec6818开发板刷屏+secureCRT+tftpd32.334安装教程+SD启动卡教程
  12. html让方块往下移动,CSS3 方块上下交换和旋转动画
  13. Dreamweaver CS6安装教程
  14. python最小二乘法线性回归_python 分别用梯度下降法和最小二乘法求线性回归 | 学步园...
  15. python基础之布尔运算
  16. 误传了数千年的几个名句
  17. iPhone装Android版,在iPhone里装了真·Android系统 这事情已经很神奇了
  18. NRF51822裸机TIMER学习笔记
  19. 数据增强系列(2)如何使用Augly库进行数据增强
  20. 读取太阳紫外辐照谱数据

热门文章

  1. UIWebView捕获内部web点击事件
  2. Boost高性能网络编程
  3. 安装/卸载.deb文件
  4. (转载)tomcat5下jsp出现getOutputStream() has already been called for this
  5. 【截至2006.12.31】毒霸反间谍可清除的部分流氓软件清单
  6. 【cl】本地安装maven的jar包报错Artifact is already in the local repository
  7. java字符串的替换replace、replaceAll、replaceFirst的区别详解
  8. VS实用的几个快捷键
  9. 直接从Windows7RC版升级安装RTM版本的小窍门
  10. IDEA常用提升开发效率的插件及快捷键(持续更新)