基于单片机的温度湿度采集显示控制系统毕业论文内容摘要:

条件:温度 10℃ ~ 40℃ 湿度 60%RH 以下。 18 NRF905 无线模块 NRF905 简介 NRF905单片无线收发器是 挪威 Nordic公司推出的单片射频发射器芯片,工作电压为 , 32引脚 QFN封装( 5mm5mm ),工作于 433/868/915MHz3个 ISM频道。 NRF905可以自动完成处理字头和 CRC(循环冗余码校验)的工作,可由片内硬件自动完成 曼彻斯特编码 /解码,使用 SPI接口与微控制器通信,配置非常方便,其功耗 非常低,以 10dBm的输出功率发射时电流只有 11mA,在接收模式时电流为。 nRF905单片无线收发器工作由一个完全集成的频率调制器,一个带解调器的接收器,一个功率放大器,一个晶体震荡器和一个调节器组成。 ShockBurst工作模式的特点是自动产生前导码和CRC,可以很容易通过 SPI接口进行编程配置。 NRF905的实物如图 13所示 : 图 13 NRF905 模块 工作模式 NRF905采用 Nordic公司的 VLSI ShockBurst技术。 ShockBurst技术 使nRF905能够提供高速的数据传输,而不需要昂贵的高速 MCU来进行数据处理/时钟覆盖。 通过将与 RF协议有关的高速信号处理放到芯片内, nRF905提供给应用的微控制器一个 SPI接口,速率由微控制器自己设定的接口速度决 19 定。 NRF905通过 ShockBurst工作模式在 RF以最大速率进行连接时降低数字应用部分的速度来降低在应用中的平均电流消耗。 在 ShockBurst RX模式中,地址匹配 AM和数据准备就绪 DR信号通知 MCU一个有效的地址和数据包已经各自接收完成。 在 ShockBurst TX模式中, nRF905自 动产生前导码和 CRC校验码,数据准备就绪 DR信号通知 MCU数据传输已经完成。 总之,这意味着降低 MCU的存储器需求也就是说降低 MCU成本,又同时缩短软件开发时间。 基本特点 NRF905 无线收发模块体积 小、精度高、工作稳定、抗干扰性强、通信稳定。 芯片结构如图 14 所示: 图 14 NRF905 芯片结构 芯片各部分功能及性能介绍: (1) 433Mhz 开放 ISM 频段免许可证使用 ; (2) 接收发送功能合一,收发完成中断标志 ; (3) 170个频道,可满足多点通讯和跳频通讯需求 ,实现组网通讯 TDMACDMAFDMA (4) 内置硬件 8/16 位 CRC 校验,开发更简单,数据传输可靠稳定 ; (5) 工作电压 ,低功耗,待机模式仅 ; (6) 接收灵敏度达 100dBm; (7) 收发模式切换时间 650us; 20 (8) 每次最多可发送接收 32字节,并可软件设置发送 /接收缓冲区大 小2/4/8/16/32 字节 ; (9) 模块可软件设地址,只有收到本机地址时才会输出数据(提供中断指示 ),可直接接各种单片机使用,软件编程非常方便 ; (10) 最大发射功率 10 毫瓦,发 射模式:最大电流 30mA;接收模式:电流 (12) 标准 DIP 间距接口,便于嵌入式应用 ; (11) 内置 SPI 接口,也可通过 I/O 口模拟 SPI 实现 , 最高 SPI 时钟可达 10M (13) 采用高精度贴片晶振及品牌阻容元件,性能更优,工作更稳定。 (14) 尺寸小巧,不含天线 25mm*19mm; (15) 发射速率 5 0 Kbps,外置 433MHz 天线,空旷通讯距离可达 200300 米。 NRF905引脚图如图 15所示: VCC1TX_EN2TRX_CE3PWR_UP4UCLK5CD6AM7DR8MISO9MOSI10SCK11CSN12GND13GND14U3NRF905P31P30P17P16P10P11P12P13P14P15GNDGND 图 15 NRF905引脚图 管脚及功能如表 2所示: 表 2 NRF905管脚功能 管脚 名称 管脚功能 说明 1 VCC 电源 电源 +~ DC 2 TX_EN 数字输入 TX_EN= 1 TX 模式 TX_EN= 0 RX 模式 3 TRX_CE 数字输入 使能芯片发射或接收 4 PWR_UP 数字输入 芯片上电 21 5 uCLK 时钟输出 本模块该脚废弃不用,向后兼容 6 CD 数字输出 载波检测 7 AM 数字输出 地址匹配 8 DR 数字输出 接收或发射数据完成 9 MISO SPI 接口 SPI 输出 10 MOSI SPI 接口 SPI 输入 11 SCK SPI 时钟 SPI 时钟 12 CSN SPI 使能 SPI 使能 13 GND 地 接地 14 GND 地 接地 说明 :(1) VCC 脚接电压范围为 ~ 之间,不能在这个区间之外,超过 将会烧毁模块。 推荐电压 左右 (2) 除电源 VCC 和接地端,其余脚都可以直接和普通的 5V 单片机 IO 口直接相连,无需电平转换。 当 然对 3V 左右的单片机更加适用 (3) 硬件上没有 SPI 的单片机,可以用普通单片机 IO 口模拟 SPI,不需要单片机 SPI 模块介入,只需添加代码模拟 SPI 时序即可 (4) 13 脚、 14 脚为接地脚 ,需要和母板的逻辑地连接起来 (5) 排针间距为 100mil,标准 DIP 插针,如果需要其他封装接口,比如密脚插针,或者其他形式的接口,可以联系我们定做 (6) 与 51系列单片机 P0口连接时候,需要加 10K 的上拉电阻 ,与其余口连接不需要 (7) 其他系列的单片机,如果是 5V 的,请参考该系列单片机 IO 口输出电流大小,如果超过 10mA,需要串联电阻分压,否则容易烧毁模块 ! 如果是 的,可以直接和 RF905 模块的 IO口线连接。 模块引脚和电气参数说明 : RF905 单片无线收发器工作在 433/868/915MHZ 的 ISM 频段由一个完全集成的频率调制 22 器一个带解调器的接收器一个功率放大器一个晶体震荡器和一个调节器组成ShockBurst 工作模式的特点是自动产生前导码 和 CRC 可以很容易通过 SPI 接口进行编程配置电流消耗很低在发射功率为+ 10dBm 时发射电流为 30mA 接收电流为 . 进入 POWERDOWN 模式可以很容易实现节电。 RF905 模块性能参考数据如表 3 所示: 表 3 NRF905 性能参数 参数 数值 单位 最低工作电压 V 最大发射功率 10 dBm 最大数据传输率曼切斯特编码 50 kbps 输出功率为 10 dBm 时工作电流 9 mA 接收模式时工作电流 mA 温度范围 40 to +85 ℃ 典型灵敏度 100 dBm POWERDOWN 模式时工作电流 uA RF905 模块工作电压与最大发射增益参考数据如表 4 所示: 表 4 NRF905 工作电压与发射增益 工作电压 (模块 VCC 供电电压 ) 模块最大发射增益 (dBm) 23 + + + +10dBm 控制模块 为了实现对温湿度的控制功能,设计一个继电器控制电路模块。 这个模块主要是通过对继电器的控制来实现的。 继电器采用的是 5v 驱动的五脚继电器。 控制电路图如图 16 所示: D151N4007Q5S8550P21GNDVCCVCC123P5接线端子45123J5GNDD111N4007Q1S8550P25GNDVCCVCC123P1接线端子45123J1GNDD121N4007Q2S8550P24GNDVCCVCC123P2接线端子45123J2GNDD141N4007Q4S8550P22GNDVCCVCC123P4接线端子45123J4GND470R11470470R12470470R14470470R15470 图 16 继电器控制电路 从原理图可以看到,我们设计中包含了 4个继电器。 控制原理是:在无任何控制信号的时候三极 管截止,继电器未吸和,对应的发光二极管亮。 当单片机给一个低电平信号时三极管导通,继电器吸和,对应的发光二极管灭。 发光二极管的限流电阻选用的是常用的 470欧姆的电阻,三极管选用的是 9012( PNP) ,为了达到合适的驱动电流,三极管基极电阻选用的是 1k的电阻。 24 4 软件设计 总体程序流程图设计 采集板程序流程如图 17 所示: 图 17 采集板程序设计流程图 接受控制板程序流程如图 18所示: 图 18 接受控制板程序设 计流程图 温度采集 湿度采集 ADC0809转化 NRF905 初始化 NRF905 LCD 显示 继电器 开始 结束 初始化 STC89C52 开始 结束 STC89C52 25 分模块程序设计 对于相应的硬件模块,主要要设计的模块程序分别是:数据采集接受的程序设计, 128*64 液晶屏幕显示驱动程序的设计,继电器控制程序设计。 蜂鸣器的控制也只需控制相应的单片机 I/O 口输出高 /低电平即可。 下面我们将分别给出各个主要模块程序设计的思路。 从硬件的设计和总体程序流程图,我们可以看出,数据采集是一个很重要的步骤。 对于数据采集我们主要是采集温度、湿度等环境因素的数据,采用的传感器分别是 DS18B20, HR31。 下面分别给出它们的程序设计思路。 DS18B20 的程序设计 从上文给出的 DS18B20 的资料,在硬件连接正确且上电的情况下,要读出温度数据,我们设计了以下几个函数: 18b20 读字节函数 uchar ReadOneChar(void)。 函数功能 :向 DS18B20 读一字节数据,入口参数 :无,出口参数 :dat。 18b20 写字节函数 void WriteOneChar(unsigned char dat)。 函数功能 :向DS18B20 写一字节数据,入口参数 :dat ,出口参数 : 无。 18b20 初始化函数 void Init_DS18B20(void)。 函数功能 :DS18B20 初始化子程序,入口参数 : 无,出口参数 :无。 18b20 读温度值函数 ReadTemperature(void)。 函数功能 :向 DS18B20 读温度值,并将温度值存入字符数组。 入口参数 :无,出口参数 :temperature。 DS18B20读一次温度数据的程序流程图如图 19 所示: 26 图 19 温度数据采集流程图 ADC0809 以及适度数据采集的程序设计 湿度数据的采集我们采用的是湿敏电阻 HR31 采集,因为 湿敏电阻是电压型的传感器,所以单片机需要通过 AD 转换才能识别并处理采集到的数据。 对于ADC0809 和湿度数据的采集我们设计了以下一些函数: ADC0809 初始化函数 uchar adc( )。 函数功能: ADC0809 初始化,入口参数:无,出口参数: getdata。 读取湿度值函数 void readguangzhao( )。 函数功能:读取光照值数据,并将湿度值数据存入字符数组,入口参数:无,出口参数:无。 具体的代码的编写已经完成,这里为节约篇幅,不再附上。 ADC0809 读一次数据的流程图如图 20所示: 图 20 ADC0809 数据转换流程图 初始化ds18b20 高低位转换为实际温度 读温度寄存器值(高8低 8位) 再初始化ds18b20 温度转换 选择输入通道 初始化ADC0809 并读取数据 将数据存入字符数组 开始 结束 开始 结束 27 28*64 液晶屏幕显示模块驱动程序设计 128*64 液晶屏幕主要用于数据和信息的显示,为驱动它正常工作,设计了以下一些函数: 128。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。