当前位置:文档之家› NRF24L01全双工调试程序 自动切换收发模式 可用于实现对讲机

NRF24L01全双工调试程序 自动切换收发模式 可用于实现对讲机

基于nRF24L01的无线信息传输设计

摘要 当今,通过信息的采集、传输、处理和控制器作出相应的决策,进而实现对一定对象的监控和控制,是一个无论在民用、工业,还是军事领域,都被人们乐此不疲地研究着的热门技术。而信息传输的可靠性无疑是控制器作出正确决策的重要前提。 无线传输以其成本廉价、占用空间小、环境适应性好、扩展性好和设备维护上更容易实现等优点正在逐步越来越受到人们的青睐。RF24L01SE微功率无线通讯模块,采用Nordic公司的NRF24L01芯片,2.4G全球开发ISM频段免许可证使用,最高工作速率达2Mbps,125频道满足多点通信和跳频通信需要,体积小巧约31mm*17mm,尤其方便嵌入式开发与应用,高效GFSK调制,抗干扰能力强,特别适合无线音视频传输、工业控制领域等需要较大传输速率的无线通讯需求。 此外,采集到的信息和数据应能够使工作人员直观方便地读出,为此,配备质优价廉的显示设备成为必要。常用的显示设备有LED点阵和LCD液晶显示,而LCD液晶显示由于具有低功耗、显示功能强大和编程简单而很好地符合了人们节约能源的要求,LCD1602和LCD12864是LCD系列中比较常见的模块化产品,它们含有齐全的字库,亦可根据自己的要求取模显示特殊的符号,这两种产品分别只引出16和20个插针,使用方便。 关键词:无线传输监控NRF24L01 工业控制LCD1602 LCD12864 目录 一.系统简介 (3)

二.STC89C54RD+单片机 (3) 三.4*4矩阵输入键盘 (4) 四.无线nRF24L01模块 (4) 1.模块性能及特点: (5) 2. 工作方式: (5) 2.1 收发模式 (5) 2.2 空闲模式 (6) 2.3 关机模式 (6) 3.配置RF24L01模块 (7) 四.LCD1602 (8) 五.LCD12864(带字库) (8) 六.系统原理图 (10) 七.实物效果图 (11) 八.部分程序代码 (12) 九.课程设计心得体会 (20) 十.参考文献 (20)

NRF24L01全双工调试程序 自动切换收发模式 可用于实现对讲机

//NRF24L01调试程序,全双工双向通信,即两个模块兼具收发功能,自动高速切换收发模式。 //使用本程序的前提条件是:硬件没问题。如果能正确运行本程序,也能说明你的硬件电路没问题。 //大家根据实际情况,更改NRF24L01 各引脚、LED 和KEY 的宏定义。 //LED灯的状态由RxBuf[0]来决定,RxBuf[0] == 0,LED输出0;RxBuf[0] == 1,LED输出1;你也可以自行更改规则。 //KEY可以改变TxBuf[0]的值,从而改变另一起模块RxBuf[0]的值,进而改变LED的状态。//此程序未用到外部中断,即不响应IRQ 因此IRQ引脚可以接任意I/O口,不必接到外部中断引脚,不过建议接到外部中断引脚。 //若注释部分为乱码:设置keil:Edit>Configuration>Editor>Encoding 选择chinese2312。 //以下程序经过多次复制,粘贴到keil,没有错误,如出现错误,请下载文档后再复制。 //粘贴到word后排布可能会变得不整齐,请自行排布。 //全双工应用实例:https://www.doczj.com/doc/3a19229847.html,/v_show/id_XNzM4MDYwNzY0.html #include #include #define uchar unsigned char #define uint unsigned int sbit P00 = P0^0; sbit P01 = P0^1; sbit P02 = P0^2; sbit P03 = P0^3; sbit P04 = P0^4; sbit P05 = P0^5; sbit P06 = P0^6; sbit P07 = P0^7; sbit P10 = P1^0; sbit P11 = P1^1; sbit P12 = P1^2; sbit P13 = P1^3; sbit P14 = P1^4; sbit P15 = P1^5; sbit P16 = P1^6; sbit P17 = P1^7; sbit P20 = P2^0; sbit P21 = P2^1; sbit P22 = P2^2; sbit P23 = P2^3;

STC89C52+NRF24L01+232通信无线模块收发c程序

下面有Nrf24l01无线模块的收发c程序 收发一体; /*----------------------------------------------- 名称:NRF24L01 2.4G无线收发 编写:Ruin 日期:2014.1 修改:无 内容:收发一体,通过修改MODE 值来切换接收和发送模式 请注意以下几点: 1、24L01模块的电源电压是否为3V-3.6V之间; 2、如果您用的单片机是5V的话,请在IO口与模块接口之间串一个1K电阻; 并检测nrf24l01电压,若电压过低则相应的减小电阻值 3、检查模块的GND是否与单片机的GND相连接 4、先用程序进行调试,如果IO口不同,请更改IO口或相关时序; 5、如果是51系列单片机,晶振请选用11.0592M Hz; 6、模块供电最好用asm1117 5v转3.3v 稳压 ------------------------------------------------*/ #include #include #define MODE 0 //MODE=1时为发送代码MODE=0时为接收代码 typedef unsigned char uchar; typedef unsigned char uint; //****************************************IO端口定义*************************************** sbit MISO =P2^3; sbit MOSI =P2^2;

sbit SCK =P2^1; sbit CE =P2^5; sbit CSN =P2^0; sbit IRQ =P3^2; sbit led =P0^0;// 指示灯,用来显示发送和接收 //***************************************************************************** ************* uchar bdata sta; //状态标志 sbit RX_DR =sta^6; sbit TX_DS =sta^5; sbit MAX_RT =sta^4; //*********************************************NRF24L01*********************** ************** #define TX_ADR_WIDTH 5 // 5 uints TX address width #define RX_ADR_WIDTH 5 // 5 uints RX address width #define TX_PLOAD_WIDTH 32 // 32 uints TX payload #define RX_PLOAD_WIDTH 32 // 32 uints TX payload uchar const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //本地地址uchar const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //接收地址 uchar TxBuf[TX_PLOAD_WIDTH]={ 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08, 0x09,0x10,0x11,0x12,0x13,0x14,0x15,0x16, 0x17,0x18,0x19,0x20,0x21,0x22,0x23,0x24, 0x25,0x26,0x27,0x28,0x29,0x30,0x31,0x32,};//发送数据 uchar RxBuf[RX_PLOAD_WIDTH];//接收数据 //***************************************NRF24L01寄存器指令******************************************************* #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 // 保留 //*************************************SPI(nRF24L01)寄存器地址**************************************************** #define CONFIG 0x00 // 配置收发状态,CRC校验模式以及收发状态响应方式#define EN_AA 0x01 // 自动应答功能设置 #define EN_RXADDR 0x02 // 可用信道设置 #define SETUP_AW 0x03 // 收发地址宽度设置 #define SETUP_RETR 0x04 // 自动重发功能设置 #define RF_CH 0x05 // 工作频率设置

相关主题
文本预览
相关文档 最新文档