- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[信息与通信]51单片机应用之无线通讯模块NRF24L01
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来显示调试状态呢?因此我就写这篇补充调试的文章,就用P0口的8个LED来显示调试NRF24L01到成功进行数据通讯。
先把51单片机的最小系统准备好,还有8个LED的小电路板,如果你的LED就在系统板上那省了这一步。
8个LED的小板子电路很简单,但你焊接要可靠,不然电路本身都不稳定,后面对判断故障会产生很大影响。
NRF24L01+模块电路还是前面说过的那样:
相同的两个模块的板子。
好!假设我们用P0口来作LED显示、用P1口来作模块接口,下面我们先写一段最简单的程序,来确认LED电路,和P0、P1口的完好!#include reg52.h#include intrins.h#define uint unsigned inttypedef unsigned char uchar;
//*********************************// 延时函数// 在晶振为12MHz时,延时count毫秒//*********************************void Delayms(uint count){ uint i; while(count--) { for(i=0;i80;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 2012.05.16//**********************************#include reg52.h typedef unsigned char uchar; //将无符号字节类型重定义为uchartypedef unsigned int uint; //将无符号整数类型重定义为Uint
//*********************NRF24L01函数定义**************************** void delayms(uint t);//毫秒延时void init_NRF24L01(void); //模块初始化函数uchar SPI_R
文档评论(0)