图4-2 温度检测软件流程图
4.1.3无线发射模块软件设计
首先进行初始化,然后通过SPI总线配置使nRF24L01进入发射模式。然后把发射端准备发射的数据的目标地址和数据写入无线通信模块的缓冲区,进行一定延时后发射数据[7]。其流程图如图4-3所示。
17
图4-3无线发射软件流程图
4.1.4无线接收模块软件设计
接收数据时,首先将无线通信模块配置为接收模式。然后等待数据,当接收方检测到有效地址和CRC时,就将数据包储存在接收堆栈中,同时状态寄存器中的中断标志位RX—DR置高,产生中断使IRQ引脚变为低电平,以便通知单片机去取数据[7] 。其流程图如图4-4所示。
18
图4-4 无线接收软件流程图
4.2总体的软件设计
4.2.1 发送部分
发送部分的总体思路:初始化温度传感器,DS18B20测得温度,接着把温度值写入待发射数据,然后初始化nRF24L01无线模块,将温度发送给主机,其流程图如图4-5所示。
图4-5 发射部分总体流程图
19
4.2.2接收部分
接收部分首先是初始化nRF24L01无线模块,接着判断是否出现接收中断。如果有读入数据并经过处理在LCD1602上显示,其流程图如图4-6所示。
图4-6 接收部分总体流程图
4.3 本章小结
本章主要是对系统程序和程序的设计思想作了说明,并介绍了每个模块的程序流程和最终流程,系统软件采用模块化编程思想,因此,在软件调试时,总是可以调用子模块程序,有利于子模块调试。
第五章 系统的调试及实验结果
5.1 调试步骤
步骤一 完成硬件电路的焊接。
步骤二 首先烧写入简单测试程序,检验LCD1602显示没有问题。 步骤三 将接受部分的单片机连接上一块数码管上,写入测量温度的程序。测试DS18B20相关硬件及软件。
步骤四 搭建简单的无线通信硬件,写入简单的测试测序,检测收发硬件模块。
20
步骤五 将所用测序写在一起,搭建完成一个主机2个从机的完整硬件,检测系统是否能把2个从机测得的温度值通过无线模块通信从而在LCD1602上显示出来。
5.2实验结果
经过简单的实验得到一些实验数据,具体结果如表5-1所示:
表5-1 数据测试表 测试数据 发送端电流 接收端电流 收发端电压 发送端功率 接收端功率 收发距离 值 2.7mA 10mA 3.0V 8.10mW 30.0mW >5m
从表中可以看出整个系统得到功耗都很低,并且收发距离也达到了设计的原始要求。
如图5-1就是无线测温系统的主机,接通电源立即对LCD1602初始化,并等待发射端传来数据进行接收并在LCD1602上实时显示出来。
21