51单片机结合NRF24L01对舵机进行无线控制

本文通过51单片机配合NRF24L01无线模块,详细介绍了如何实现对舵机的无线控制,提供了发送端的程序实现,为单片机无线通信与控制提供了实用案例。

发送端程序如下:

#include <reg52.h>
#include <intrins.h>
#include <math.h>
typedef unsigned char uchar;
typedef unsigned char  uint;
sbit 	MISO=P1^5;
sbit 	MOSI=P1^4;
sbit	SCK=P1^3;
sbit	CE=P1^1;
sbit	CSN=P1^2;
sbit	IRQ=P3^3;
sbit	KEY1=P3^4;
sbit	KEY2=P3^5;
sbit   KEY3=P3^6;
sbit   KEY4=P3^7;
#define TX_ADR_WIDTH    5   	
#define RX_ADR_WIDTH    5   	
#define TX_PLOAD_WIDTH  20  	
#define RX_PLOAD_WIDTH  20  	
uint const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};	//本地地址
uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};	//接收地址
#define READ_REG        0x00  // 读寄存器指令
#define WRITE_REG       0x20  // 写寄存器指令
#define RD_RX_PLOAD     0x61  // 读取接收数据指令
#define WR_TX_PLOAD     0xA0  // 写待发数据指令
#define FLUSH_TX        0xE1  // 冲洗发送 FIFO指令
#define FLUSH_RX        0xE2  // 冲洗接收 FIFO指令
#define REUSE_TX_PL     0xE3  // 定义重复装载数据指令
#define NOP             0xFF  // 保留
#define CONFIG          0x00  // 配置收发状态,CRC校验模式以及收发状态响应方式
#define EN_AA           0x01  // 自动应答功能设置
#define EN_RXADDR       0x02  // 可用信道设置
#define SETUP_AW        0x03  // 收发地址宽度设置
#define SETUP_RETR      0x04  // 自动重发功能设置
#define RF_CH           0x05  // 工作频率设置
#define RF_SETUP        0x06  // 发射速率、功耗功能设置
#define STATUS          0x07  // 状态寄存器
#define OBSERVE_TX      0x08  // 发送监测功能
#define CD              0x09  // 地址检测           
#define RX_ADDR_P0      0x0A  // 频道0接收数据地址
#define RX_ADDR_P1      0x0B  // 频道1接收数据地址
#define RX_ADDR_P2      0x0C  // 频道2接收数据地址
#define RX_ADDR_P3      0x0D  // 频道3接收数据地址
#define RX_ADDR_P4      0x0E  // 频道4接收数据地址
#define RX_ADDR_P5      0x0F  // 频道5接收数据地址
#define TX_ADDR         0x10  // 发送地址寄存器
#define RX_PW_P0        0x11  // 接收频道0接收数据长度
#define RX_PW_P1        0x12  // 接收频道0接收数据长度
#define RX_PW_P2        0x13  // 接收频道0接收数据长度
#define RX_PW_P3        0x14  // 接收频道0接收数据长度
#define RX_PW_P4        0x15  // 接收频道0接收数据长度
#define RX_PW_P5        0x16  // 接收频道0接收数据长度
#define FIFO_STATUS     0x17  // FIFO栈入栈出状态寄存器设置
void Delay(unsigned int s);
void inerDelay_us(unsigned char n);
void init_NRF24L01(void);
uint SPI_RW(uint uchar);
uchar SPI_Read(uchar reg);
void SetRX_Mode(void);
uint SPI_RW_Reg(uchar reg, uchar value);
uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars);
uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars);
unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);
void nRF24L01_TxPacket(unsigned char * tx_buf);
void Delay(unsigned int s)
{
	unsigned int i;
	for(i=0
NRF24L01 2.4G无线模块功能概述:(1)2.4Ghz 全球开放ISM 频段免许可证使用 (2) 最高工作速率2Mbps,高效GFSK调制,抗干扰能力强,特别适合工业控制场合 (3) 支持串口动态地址修改,支持一对多,多对一 的多机通信,修改灵活! (4) 内置硬件CRC 检错和点对多点通信地址控制 (5) 提供5v电源,低功耗3.3V工作。 (6) 内置2.4Ghz 天线,体积小巧约40*22mm (7) 可连接支持单片机IO口控制、继电器模块控制、高低电平信号等的控制利用 (8) 内置专门稳压电路,外部提供5v电源,内部3.3V低功耗工作电压 (9) 具备26路单片机IO口,可以控制和驱动多种设备,降低开发难度和产品复杂度。 (10)采用单片机串口通讯协议,串口发送数据即可通过无线传输。 (11)兼容NRF24L01的无线设备,随意更改通信地址和串口通信波特率(可选波特率为:4800、9600、57600、115200)。 (12)全智能串口控制,发送特定指令,轻松实现各种IO高低电平、点动1s、IO口状态查询的信号控制功能! (13)如配套下载器可电脑USB操控发送接收控制IO等操作。智能家居必备! (14)官方数据测试 空旷通信距离100-200米,本店测试实际有障碍、1层穿墙距离10多米---(老实人说实际话)! 实物展示: 规格参数: 大小:40*22MM 供电电压:5V IO口输出:高电平3.3V 通信方式:串口通信(TTL电平) 使用方法简介: 下面以连接电脑测试的方式进行解说! 1、通过USBTTL 下载器,连接无线模块串口,做好串口通信准备工作。 2、打开串口调试工具,设置默认波特率为9600bps,选择正确的通信端口,打开串口。 3、现在可以在任意一个串口调试界面发送不超过31字节的数据到无线模块中,接收方只要有收到数据都会在串口调试界面中显示,发送方所发的内容。 4、如下控制IO口情况,可以发送特定的5位16进制吗。例如0XA1,0XFD,0X01,0X00,0X01 只要发送这一串字符后,接收方的IO 口1 输出低电平,对远程的IO控制操作极其方便。更具体的指令请查看使用手册。 5、可结合本店的继电器模块简单便捷的实现远程高压控制,智能家居,智能小车,远程无线等等控制方案兼容。 6、如具备单片机基础,可以完成多点、多地址数据通信操作。 IO口操作指令表:(端口1、2举例) 附件内容截图: 实物购买链接:https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-15803265497.12.trOTmk&id=24685468283
基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例 基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例 基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例 基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值