51单片机应用之无线通讯模块.docx

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
30、 51单片机应用之 ............ 无线通讯模块 NRF24L01+(一)基础知识篇 今天刚调试好,先看图吧!这张是 AT89C2051控制 NRF24L01+做发射调试。 NRF24L01细节吧! 这是 LCD屏显示: AT89S52做接收测试: 正在接收时的显示: 接收到数据后显示 32 个数据值: 无线模块 NRF24L01+应用上篇结束,敬请期待 NRF24L01+下篇的调试部分。。。。 31、 51 单片机应用之 ............ 无线通讯模块 NRF24L01+(二)模块调试篇 32、 51 单片机应用之 ............ 无线通讯模块 NRF24L01+(三)发送与接收模块的联调 33、 51 单片机应用之 ............ 无线通讯模块 NRF24L01+(四)举例应用 34、补充 NRF24L01+之 ———— LED调试篇 写了前面四篇关于 NRF24L01通讯调试的文章,看来大家还是很喜欢,有帮助的。有很多大学生朋友问我说,我们没 有两个 LCD来显示调试状态, 连一个也没有, 能不能用几个 LED来显示调试状态呢因此我就写这篇补充调试的文章, 口的 8 个 LED来显示调试 NRF24L01到成功进行数据通讯。  就用  P0 先把  51 单片机的最小系统准备好,还有  8 个  LED的小电路板,如果你的  LED 就在系统板上那省了这一步。 个 LED的小板子电路很简单,但你焊接要可靠,不然电路本身都不稳定,后面对判断故障会产生很大影响。 NRF24L01+模块电路还是前面说过的那样: 相同的两个模块的板子。 好!假设我们用  P0 口来作  LED显示、用  P1 口来作模块接口,下面我们先写一段最简单的程序,来确认  LED电路,和  P0、P1 口的完好! #include <> #include <> #define uint unsigned int typedef unsigned char uchar; //********************************* // 延时函数 在晶振为 12MHz 时,延时 count 毫秒 //********************************* void Delayms(uint count) { uint i; while(count--) { for(i=0;i<80;i++){} } _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } //********************************* // 主函数 //********************************* void main() { P0=0x00; //P0 口 LED点亮 P1=0x00; //P1 口 LED点亮 P2=0x00; P3=0x00; Delayms(2000); // 延时 2 秒 while(1) { P0=~P0;// 将 P0 口数据取反,原来亮的就熄灭 P1=~P1;// 将 P1 口数据取反,原来亮的就熄灭 P2=~P2; P3=~P3; Delayms(500); // 延时半秒 } } 这是段极简单的程序,用来检测单片机电路连接的正确性,和IO口的工作状态是否正常,为后面调试NRF24L01做好准备。 它的工作状态如下: 同样的,把LED的接口再接到P1口,看看它是否一样的在全部闪烁。做好了这步,准备工作就算完成了。 接下来我们把NRF24L01 +的模块插上,要注意,接口要对清楚,电源要连接正确: 接下来我们写发送程序: //********************************** NRF24L01+模块发射程序 用 8 个 LED调试 Txz001 //********************************** #include <> typedef unsigned char uchar; // 将无符号字节类型重定义为 uchar typedef unsigned int uint; // 将无符号整数类型重定义为 Uint //*********************NRF24L01 函数定义 **************************** void delayms(uint t);// 毫秒延时 void init_NRF24L01(void); // 模块初始化函数 uchar SPI_RW(uchar reg); // 基本 SPI 读写时序 uchar SPI_Read(uchar reg); // 从寄存器 reg 读一个

文档评论(0)

150****5607 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档