NRF24L01无线模块收发程序(实测成功 多图)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

NRF24L01无线模块收发程序(实测成功多图)

本模块是NRF24L01无线传输模块,用于无线传输数据,距离不远,一般只是能够满足小距离的传输,目测是4-5m,价格一般是4元左右,可以方便的买到。

51最小系统学习板就可以,当时是用了两块学习板,一块用于发送,一块用于接收。

小车也是比较容易购到的,四个端口控制两个电机,两个控制一个电机,当两个端口高低电平不同时电机就会转动,即为赋值1和0是电机转动,赋值可以用单片机作用,当然这是小车启动部分,前进后退左转右转就是你赋值0和1的顺序问题了。

整体思路是用发射端的按键控制小车,即为按键按下就前进,再按其他按键实现其他功能,本次程序是在用NRF24L01发射数据在接收端用1602显示的基础上改变。

下面是程序源码(有好几个文件,分别创建)

////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////

#include

#include

#include'1602.h'

#include'delay.h'

#include 'nrf24l01.h'

#define uint unsigned int

#define uchar unsigned char

uint Weight_Shiwu=1234;

unsigned char KeyScan(void);//键盘扫描

// unsigned char KeyScan(void);//键盘扫描

//#define KeyPort P0

sbit KEY1 = P0^0;

sbit KEY2 = P0^1;

sbit KEY3 = P0^2;

sbit KEY4 = P0^3;

sbit KEY5 = P0^4;

void main()

{

// char TxDate[4];

// LCD_Init(); //初始化液晶屏

// LCD_Clear(); //清屏

// NRF24L01Int(); //初始化LCD1602

// LCD_Write_String(4,0,'welcome');

while(1)

{

KeyScan();

}

}

unsigned char KeyScan(void)

{

/********************************************************/ char TxDate[4];

{

if(!KEY1) //如果检测到低电平,说明按键按下

{

DelayMs(10); //延时去抖,一般10-20ms

if(!KEY1) //再次确认按键是否按下,没有按下则退出

{

while(!KEY1);//如果确认按下按键等待按键释放,没有则退出

{

TxDate[0] = 1;//向左转

TxDate[1] = 0;

TxDate[2] = 1;

TxDate[3] = 1;

NRFSetTxMode(TxDate);//发送数据·

while(CheckACK()); //检测是否发送完毕

}

}

}

/********************************************************/ else if(!KEY2) //如果检测到低电平,说明按键按下

{

DelayMs(10); //延时去抖,一般10-20ms

if(!KEY2) //再次确认按键是否按下,没有按下则退出

{

while(!KEY2);//如果确认按下按键等待按键释放,没有则退出

{

TxDate[0] = 1;//向右转

TxDate[1] = 1;

TxDate[2] = 1;

TxDate[3] = 0;

NRFSetTxMode(TxDate);//发送数据

while(CheckACK()); //检测是否发送完毕

}

}

}

/********************************************************/ else if(!KEY3) //如果检测到低电平,说明按键按下

{

DelayMs(10); //延时去抖,一般10-20ms

if(!KEY3) //再次确认按键是否按下,没有按下则退出

{

while(!KEY3);//如果确认按下按键等待按键释放,没有则退出

{

TxDate[0] = 1;//前进

TxDate[1] = 0;

TxDate[2] = 1;

TxDate[3] = 0;

NRFSetTxMode(TxDate);//发送数据

while(CheckACK()); //检测是否发送完毕

}

}

}

/********************************************************/ else if(!KEY4) //如果检测到低电平,说明按键按下

{

相关文档
最新文档