去字头、地址和CRC校验位,然后把数据备好引脚置高。准备接收下一组数据或者进入空闲模式。
接收流程图如下所示
15
无线温度湿度采集系统的设计
开始SPI配置寄存器,TRX_CE为高,TX_EN为低,进入接收状态否载波监测引起CD为高?是接收地址数据否 地址匹配引脚AM为高?是接收数据否CRC校验正确?是DR引脚置高,TRX_CE置低,进入空闲状态主单片机从SPI读取数据是读取完毕否
图12 NRF24L01接收流程图
16
4.3显示模块软件设计
开始1602初始化读取温湿度否是否读取成功是1602显示数据延时0.8s
图13 LCD1602显示数据流程图
显示模块软件设计过程为,先将LCD1602初始化,初始化程序见附录。单片机通过数据传输端口P0.0~P0.6向显示器传送温湿度数据信息。若LCD1602正确接收到数据信息,显示收到温湿度信息。延时0.8S后,重新开始读取下一个时间段温湿度数据,进入循环。若LCD1602读取数据错误,则直接返回,重新读取。
4.4 调试
软件调试主要使用Proteus软件和Keil C51软件。在软件调试中,首先在Proteusz中绘制电路图,并设置各元器件的参数。然后在Keil C51软件编写程序。
在元器件的布局方面,把相互有关的元件放得比较近,例如:晶振、单片机的时钟输入端都容易产生噪音,在放置元件时的时候把它们放的靠近些。地线应构成闭环形式,提高电路的抗干扰能力,电路提供的电源是具有稳压作用的+5V电源。
单片机选用12MHZ的晶振,因为这样有利于得到没有误差的波特率。特别是当
17
无线温度湿度采集系统的设计
与单片机进行通信的话,选用这种晶振比较好。
由于单线数字温度传感器DHT11,测温相当准确,我们主要时间要花在单片机软件程序的编辑和调试以及电路模块的制作方面。
结论
本系统能较好地完成一个半双工无线数据传输工作,在空旷地带数据传输平均有效距离为200m;在复杂环境下,由于发射接收模块属于微功率器件,一般数据传输有效距离在20m-50m 之间。基于单片机89S52、温湿度传感器DHT11和射频模块NRF24L01构成的无线温湿度数据采集系统,具有数据采集和运算处理方便简单的优点。另外由于本次设计的程序使用C语言编程,由于许多模块本身自带语言,大大减小了编程的难度。
本方案的可扩展性比较强,整个程序的程序框架已经搭建好,可以继续编写程序完成其他功能。例如:添加语音播报功能;添加超高温报警功能等。
通过这次设计,使我们更加深入的了解了温度传感器,无线传输模块,以及单片机的结构功能和具体应用,也使我们对电路PCB板有了更深的认识。
在老师和同学们的帮助下,我完成了本次设计,本设计可以实现温度的无线采集和实时显示,并且相当精确。我们的电路板虽然简单,没有运放等元件,但可以基本上完成此系统的任务,在电源的稳定等方面,我也相应的补充改进了我的设计方案。
附录A:总体原理图
18
附录B:部分程序
#include\#include\
sbit CE = P1^0; sbit CSN= P1^1; sbit SCLK= P1^2; sbit MOSI= P1^3; sbit MISO= P1^4; sbit IRQ = P1^5;
unchar RevTempDate[5];//最后一位用来存放结束标志
#include\#include\
#define uint unsigned int #define uchar unsigned char
#define DBPort P0
sbit rs = P2^5 ; sbit rw = P2^6 ; sbit ep = P2^7 ;
typedef bit BOOL ;
uchar data_byte;
void delay(uchar ms) { // 延时子程序 uchar i ; while(ms--) { for(i = 0 ; i<250;i++) ; } }
void delay1()//延时10us
19
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库无线温度湿度采集系统的设计(5)在线全文阅读。
相关推荐: