- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)