关键词不能为空

当前您在: 主页 > 英语 >

免费英文翻译NRF24L01无线串口开发板程序详解

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-01-28 00:52
tags:

免费英文翻译-现代教育理论

2021年1月28日发(作者:harper)


1.


源程序开发环境建立



1.1


程序编译软件



编译软件用


keil C51


,打开安装文件,一路点击下一步即可完成。



1.2


程序下载软件



使用


STC ISP


下载软件。



2.


源程序文件整体结构


< p>
工程中,只有一个


main.c


文件,所有程序都 写在这个文件里面。


Reg51.h


是包含的头文件。是


不是非常简单!




3.


源程序执行流程




无线


数据处理


程序:




串口

数据处理


程序:




4.


串口配置函数



void serial_open(void)


{





SCON = 0X50;





AUXR |= 0X04;





TL2 = 0Xc0; // 9600





TH2 = 0Xfd;





AUXR|=0X10;


} < /p>


此串口配置函数,


利用


单片机

< p>
内部的


定时器


2


作为


波特率发生器



共用到

4


个寄存器:


SCON


AUXR TL2 TH2




SM0

< p>


SM1


的位决定串口工作的

4


种方式:



< br>程序中,


SCON=0X50


,即


SM0=0 SM1=1


,即串口工作在


< br>方式


1”



REN=1


,允许串口接收数


据。



TL2



TH2


< br>定时器


2


的高位和低位寄存器。






程序中 ,首先


AUXR|=0X40


,最后


A UXR|=0X10


。即首先把


T2x12


1


,然后把


T2R



1


。即


首先把

< p>
定时器


2


设置为


1T


模式,然后把


定时器


打开。



5.


串口发送数据函数



void senddata(uchar data_buf)


{





SBUF = data_buf;





while(!TI);





TI = 0;


}


用到了寄存器


SBUF


和寄存器


SCON


中的


TI


位。



SBUF


寄存器是串口收发数据缓存寄存器,放到这个寄存器中的数据,会通过串口发送出去,接


收到的串口数据,也会放到这个寄存器中。也就是串口接收和发送都是使用这个寄存器。



程序中,


SBUF=data_buf


,就是把


data_buf


给了


SBUF



单片机


自动把< /p>


SBUF


里面的数据发送


到串口。


TI


是串口发送数据完成标志位,当串口发送完一个数据,此位置


1


,置位后,需要通过软件



0


。所以通过


while(!TI)


,来检测


TI


位,达到检测串口是否发送完数据的目的 。当


TI



0


,程序会


停留在


while(!TI)


,不断检测;当


TI=1



while


括号里面的条件


=0


,退出

< p>
while


,程序向下执行。


TI=0

< p>



TI



0




6.


串口接收数据函数



bit WaitComm()


{








unsigned int i=0;





unsigned char j=0;












if(RI==1)



{








rece_buf[++j]=SBUF;











RI=0;








while(i<1000)








{









if(RI)











{












rece_buf[++j]=SBUF;














RI = 0;














i=0;














}











i++;








}








rece_buf[0] = j;














return 0;











}





else





{








return 1;












}


}


程序中,用到了


SBUF


寄存器和


SCON


寄存器中的


RI


位。



串口接收到数据,


RI


位置


1


,所以,通过判断


RI


位,就可以判断 是否接收到串口数据:


if(RI)



就是


if(RI==1)


的省略形式,因为

if


括号里面要的是逻辑真假,即


0



1


,所以可以省略。


< p>
程序中


i



j

< p>
用作计数器。


i


用来规定此次串口接收数据所用的 时间,这个时间就是个大概值;


j


用来计数此次串口一共接收到 了多少个字节。



程序中,通过


rec e_buf[0]=j


把一共接收到多少个字节存储到


rece _buf


中的第一个字节,通过


rece_buf[++i]= SBUF


把接收到的数据从


rece_buf

< br>数据的第二个字节依次放进去。



程序有返回值,如果返 回


0


,表示接收到数据,如果返回


1< /p>


,表示没有接收到数据。




初始化配置函数



void SPI_Init(void)


{





SPSTAT |= 0XC0;





SPCTL = 0XD0;


}


我们用的这款


51


单片机


STC15W404AS


内部有


SPI


通信模块。



引脚配置如下图所示:(红色方框中的引脚)




SS


是片选引脚,也可以叫做使能引 脚,也可以叫做从机选择引脚;



MOSI


是主机输出从机输入引脚;



MISO


是主机输入从机输出引脚;



SCLK


是通信


时钟

< br>引脚。



在我们的应用中,


单片 机


是主机,从机是


NRF24L01


芯 片。



程序中,用到了


2


个寄存器:


SPSTAT



SPCTL




这个寄存器的


bit6



bit7


是有效位,具体定义看上图。程序中,


SPSTAT|=0XC 0


,即向寄存器



bit6

< p>


bit7



1


,由上图定义知,我们在清这两个位,目的是不要让这两个位影响


SPI


通信。




程 序中,


SPCTL=0xD0


,即


SS IG=1 SPEN=1 MSTR=1


,剩下的位


=0





因为程序中,


SPR1 SPR0


位为


0


,所以选择了


CPU_CLK/4< /p>



时钟


,因为我们源程序规定的主


频是


22.1184MHz


主频,所以


SPI


速率就是


22.1184/4=5.5 296MHz



NRF24L01


芯片 规定的


SPI



信速率最大是


10MHz


,所以符合通信的要求。




这两个位的值是由


NRF24L01


的通信时序决定的。


NRF24L01



时序图


如下所示:





NRF24L01



时序图


得知,


SCK


时钟


引脚在空闲时应该是低电平,所以


CPO L=0




还可以看出来,数据是由前


时钟


沿采样,所以


CPHA=0





时序图


放大,看其中一部分,如下图:






NRF24L01



时序图



RORD


位的定义可知,数据的高位先发送,低位后发送,所以


RORD=0





我们选择的


SPI


口为主机模式,把


P1.2/S S


引脚当做普通


IO


口使用,通过拉低


P1.2


引脚来选


< br>NRF24L01





数据收发函数



uchar SPI_RW(uchar tr_data)


{


uchar i=0;



SPSTAT |= 0Xc0;


SPDAT=tr_data;


while(((SPSTAT&0X80)!=0X80)&&(i<20))


{


i++;


delay_ms(1);


}


return SPDAT;


}


SPI



双工通信


,接收一个数据的同时,就要发送一个数据,发送一个数据的同时,就要接收< /p>


一个数据。



SPDAT



SPI


数据寄存器,接收和发送的数据都放到这里面 。



程序里面,先把


状态寄存器


的位清


0


,然后把要发送的数据给了


SPDAT


,然后通过观察


SPI


状态寄存器


看是否发送完数据,最后把接收到的


SP I


数据返回。


免费英文翻译-现代教育理论


免费英文翻译-现代教育理论


免费英文翻译-现代教育理论


免费英文翻译-现代教育理论


免费英文翻译-现代教育理论


免费英文翻译-现代教育理论


免费英文翻译-现代教育理论


免费英文翻译-现代教育理论



本文更新与2021-01-28 00:52,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/575693.html

NRF24L01无线串口开发板程序详解的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文