图4.7LCD1602管脚说明
4.4 nRF24L01无线传输模块nRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器。
主要有以下特点;
小体积,QFN20 4x4mm封装
宽电压工作范围,1.9V~3.6V,输入引脚可承受5V电压输入
工作温度范围,-40℃~ 80℃
工作频率范围,2.400GHz~2.525GHz
发射功率可选择为0dBm、-6dBm、-12dBm和-18dBm
数据传输速率支持1Mbps、2Mbps [1]
低功耗设计,接收时工作电流12.3mA,0dBm功率发射时11.3mA,掉电模式时仅为900nA
126个通讯通道,6个数据通道,满足多点通讯和调频需要
增强型“ShockBurst”工作模式,硬件的CRC校验和点对多点的地址控制
数据包每次可传输1~32Byte的数据
4线SPI通讯端口,通讯速率最高可达8Mbps,适合与各种MCU连接,编程简单
可通过软件设置工作频率、通讯地址、传输速率和数据包长度
MCU可通过IRQ引脚块判断是否完成数据接收和数据发送
图4.8nRF24L01无线模块
图4.9nRF24L01原理图
系统软件设计5.1主程序流程设计下位机程序流程如下:
图5.1下位机程序流程图
5.2.子程序设计5.2.1温湿度采集模块设计本系统DHT11的工作流程如下:
- DHT11上电后(DHT11上电后要等待 1S 以越过不稳定状态在此期间不能发送任何指令),测试环境 温湿度数据,并记录数据,同时 DHT11的 DATA 数据线由上拉电阻拉高一直保持高电平;此时 DHT11的 DATA 引脚处于输入状态,时刻检测外部信号。
- 单片机的 I/O设置为输出同时输出低电平,且低电平保持时间不能小于 18ms(最大不得超过 30ms), 然后微处理器的 I/O设置为输入状态,由于上拉电阻,单片机的 I/O即 DHT11的 DATA 数据线也随之变 高,等待 DHT11作出回答信号。
- DHT11 的 DATA引脚检测到外部信号有低电平时,等待外部信号低电平结束,延迟后 DHT11 的 DATA 引脚处于输出状态,输出 83微秒的低电平作为应答信号,紧接着输出 87 微秒的高电平通知外设准备接 收数据,微处理器的 I/O 此时处于输入状态,检测到 I/O 有低电平(DHT11回应信号)后,等待 87微秒 的高电平后的数据接收。
- 由 DHT11 的 DATA引脚输出 40 位数据,微处理器根据 I/O电平的变化接收 40 位数据,位数据“0” 的格式为: 54 微秒的低电平和 23-27 微秒的高电平,位数据“1”的格式为: 54 微秒的低电平加 68-74 微秒的高电平。
1.STC89C52RC控制 CE引脚为低电平,从而使 NRF24LO1置于待机模式,对其进行寄
存器配置。
2.当STC89C52要发送温湿度数据时,其按时序通过SPI总线把接收节点地址和有效数据写入 NRF24LO1相应寄存器中。发送端发送完数据后,将通道0设置为接收模式来接收应答信号,其接收地址与接收端地相同。
3.STC89C52RC将CE引脚设置高电平激发NRF24LO1的发送模式,CE高电平持续
时间最小为10us。
- NRF24L01发送模式:无线系统上电,射频寄存器自动开启;数据打包;发送数据包;
收发模式下,使用片内的先入先出堆栈区,数据低速从微控制器送入,但高速(1Mbps)发射,这样可以尽量节能,因此,使用低速的微控制器也能得到很高的射频数据发射速率。与射频协议相关的所有高速信号处理都在片内进行,这种做法有三大好处:尽量节能;低的系统费用(低速微处理器也能进行高速射频发射);数据在空中停留时间短,抗干扰性高。
在收发模式下,nRF2401 自动处理字头和 CRC 校验码。在接收数据时,自动把字头和CRC 校验码移去。在发送数据时,自动加上字头和 CRC 校验码,当发送过程完成后,数据准备好引脚通知微处理器数据发射完毕。
5.2.4数据接收模块设计接收机要想显示温湿度,就必须要通过NRF24L01接收两个发射机发送的温湿度数据。
NRF24L01数据的接收过程为
- 接收数据时,首先将nRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。
- 当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。
- 若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。
万用表,电烙铁,Keil uVsion5软件,STC烧录软件
6.2硬件调试我们焊接好板子以后一定不要直接上电测试,一定要先测试开发板的VCC和GND是否是断开的,如果两个短接很可能会导致开发板被烧掉。当测试VCC和GND没有短接后,我们需要进行测试芯片管脚是否焊接的有问题,是否出现虚焊、没有焊接、短路等问题,这里需要特别注意的是测试芯片管脚焊接是否有问题一定要将万用表的表笔轻轻的放在芯片管脚上面,如果用点力很可能将芯片管脚和底部的电路片给按压在一起导致测试出现问题。当测试芯片管脚没有问题以后我们可以给开发板上电测试串口电脑是否可以识别出端口号(一般没有出现问题插上电脑都会听到相应的提示音),如果出现无法识别的USB设备或者没有发现CH340串口号一般是串口芯片焊接有问题,或者电容焊接出现问题。当我们测试电脑可以识别串口后我们可以写点灯程序测试芯片是否可以控制IO口。如果测试发现对应的IO口灯不亮,很大可能是芯片管脚焊接出现问题。