收藏 分享(赏)

温度数据无线传输系统的设计毕业论文.doc

上传人:精品资料 文档编号:11020834 上传时间:2020-01-31 格式:DOC 页数:30 大小:7.79MB
下载 相关 举报
温度数据无线传输系统的设计毕业论文.doc_第1页
第1页 / 共30页
温度数据无线传输系统的设计毕业论文.doc_第2页
第2页 / 共30页
温度数据无线传输系统的设计毕业论文.doc_第3页
第3页 / 共30页
温度数据无线传输系统的设计毕业论文.doc_第4页
第4页 / 共30页
温度数据无线传输系统的设计毕业论文.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、苏州大学本科生毕业设计(论文)- 1 -温度数据无线传输系统的设计苏州大学 应用技术学院 通信工程班级(学号 1016428046) 郭磊目 录第 1 章 绪论 1第 1.1 节 无线温度采集传输的意义及背景 1第 1.2 节 数据传输系统简单介绍 1第 1.3 节 论文结构的介绍 1第 2 章 系统分析 2第 2.1 节 温度传感器的选择 2第 2.2 节 无线模块的选择 5第 2.3 节 单片机的选择 7第 2.4 节 显示器的选择 .10第 3 章 系统设计 .11第 3.1 节 系统的总体方案 .11第 3.2 节 温度数据无线传输系统的硬件设计 .11第 3.3 节 温度数据无线传输

2、系统的软件设计 .13第 4 章 系统测试 .15第 4.1 节 系统调试 .15第 4.2 节 抗干扰措施 .15结论 17参考文献 18致谢 19附录 20附录 1:实物照片说明 .20附录 2:部分源程序 .21苏州大学本科生毕业设计(论文)- 2 -基于 51 单片机温度无线传输系统的设计苏州大学 应用技术学院 通信工程班级(学号 1016428046) 郭磊中文摘要:随着微电子技术和数字信号处理技术的发展,数据采集系统得到了广泛的应用。目前,数据采集几乎无孔不入,它已渗透到了地质、医药器械、雷达、通讯、遥感遥测等各个领域。本课题采用单片机为核心利用 DS18B20 温度传感器,LCD

3、1602,基于 nRF24L01 的无线收发电路完成了对温度数据的采集,传输和显示。本论文首先介绍了温度数据采集和无线传输的意义,背景和发展现状。并对系统进行了设计,主要包括各个部分电路的设计,各个芯片的选择介绍,简单的软件设计,并制成目标板。根据系统的特点,将系统分为采集发送端和接受端。系统设计完成后在实验室进行了调试和测试。测试结果表明:系统硬件设计完全符合温度数据采集和无线传输的要求,可以投入使用,为我们更好的获取信息提供了良好的基础。中文关键词:单片机;温度采集;NFR24L01;数据传输。Abstract:With the development of microelectronic

4、s technology and digital signal processing technology , data acquisition system has been widely used. Currently , data collection is almost all-pervasive , it has penetrated into all areas of geology, medical equipment , radar , communications, remote sensing , etc.。The issue at the core advantage o

5、f using SCM DS18B20 temperature sensor , LCD1602, based on the nRF24L01 radio transceiver circuit completed the temperature data acquisition, display , and transmission. First introduced the background and status of the temperature data acquisition and wireless transmission. And system design , incl

6、uding the design of each part of the circuit , each chip select introduction, simple software design , and made the target board. According to the characteristics of the system, the system is divided into collecting sending and the receiving end . Upon completion of the system design in the lab debu

7、gging and testing. Test results showed that: the system hardware design in full compliance with the temperature data acquisition and wireless transmission requirements, you can put to use,provides a good foundation for us to better access to information.Key words: MCU ;Temperature collection; NFR24L

8、01 ;Data transmission苏州大学本科生毕业设计(论文)- 0 -第 1 章 绪论第 1.1 节 无线温度采集传输的意义及背景在工业生产和控制中,应用无线数据采集数据系统可以采集工业现场的温度、湿度、电压、电流、压力等很多工艺参数,在将这些模拟信号转变成数字量并进行相应的计算处理后,所得的结果可以反馈给用户或者控制系统,为提高产品质量、降低成本提供信息和手段;在科学研究上,数据采集系统可以为我们提供大量的动态信息,成为探索科学奥秘的重要手段。无线数据采集特别适用于复杂地形条件、高腐蚀性、建筑群、爆炸等场合,或者被采集对象是运动、旋转等情况。随着数字电路和射频电路制作工艺、低功耗

9、电路、高能电池、微电子技术及集成电路技术的进步,无线通信技术取得了飞速的发展,无线通信的实现越来越容易,传输速度越来越快,可靠性越来越高,并且逐渐达到可以和有线网络相媲美的水平。无线传输越来越多的被应用在工业及民用的数据采集上,解决了一些布线复杂、甚至无法布线的情况。无线方式具有如下几个显著的特点:传输介质采用的是电磁波,节省了架设电缆的所需的占地和各种花费及其给其他建筑的建设带来的不便,应用起来更加方便;在应用单片机编解码接口技术的无线通信系统中,采用多字节地址编码,收发器的数量不受限制;具有电路简单、功耗小、体积小、成本低等优点,非常便于使用;设计设施都很简便适合更换场合反复利用。温度作为

10、一个重要的物理量,是工业生产过程中最普遍、最重要的工艺参数之一。随着工业的不断发展,对温度测量的要求越来越高,而且测量的范围也越来越广,对温度的检测技术的要求也越来越高。因此,温度测量的研究也是一个重要的研究课题。第 1.2 节 数据传输系统简单介绍本课题采用 51 单片机为核心利用 DS18B20 温度传感器,LCD1602 液晶屏,基于nRF24L01 的无线收发电路完成了对温度数据的采集,传输和显示。第 1.3 节 论文结构的介绍本论文首先介绍了温度数据采集和无线传输的意义,背景。并对系统进行了设计,主要包括各个芯片的选择介绍,各个部分电路的设计,简单的软件设计,并制成目标板。根据系统的

11、特点,将系统分为采集发送端和接受端。系统设计完成后在实验室进行了调试和测试。总之,本课题将数据采集与无线传输相结合,发挥无线传输的优势,并且解决硬件、苏州大学本科生毕业设计(论文)- 1 -软件及通信协议优化等问题。苏州大学本科生毕业设计(论文)- 2 -第 2 章 系统分析第 2.1 节 温度传感器的选择测量温度的关键是温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、从集成化向智能化和网络化的方向飞速发展。数字式温度传感器DS18B20 正是朝着高精度、多功能、总线标准化、高可性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。因此,智能温度传感器DS1

12、8B20 作为温度测量装置己广泛应用于人民的日常生活和工农业生产中。2.1.1. DS18B20 的引脚图及引脚排列(1)、 DS18B20 采用脚封装。其管脚排列见图 2-1。图2- 1 DS18B20 管脚排列I/0 为数据输入输出端(即单线总线),它属于漏极开路输出,外接上拉电阻后,常态下呈高电平。UDD 是可供选用的外部电源端,不用时接地,GND 为地,NC 空脚。苏州大学本科生毕业设计(论文)- 3 -图 2- 2 DS18B20 内部结构图高8 位是CRC 校验码,接着是每个器件的惟一的序号,共有48位,低8位是产品类型的编号,前56位的这也是多个DS18B20可以采用一线进行通信

13、的原因。(2)、 非易失性温度报警触发器 TH 和 TL,可通过软件写入用户报警上下限。(3)、 高速暂存存储器DS18B20 温度传感器的内部存储器包括一个高速暂存RAM 和一个非易失性的可电擦除的的E2RAM。后者用于存储TH,TL 值。数据先写入RAM,经校验后再传给E2RAM。而配置寄存器为高速暂存器中的第5个字节,它的内容用于确定温度值的数字转换分辨率,DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义见表2-1。表 2- 1 字节定义低5 位一直都是1,TM 是测试模式位,用于设置 DS18B20 在工作模式还是在测试模式。在DS18B20 出厂时

14、该位被设置为 0,用户不要去改动,R1 和R0 决定温度转换的精度位数,即用来设置分辨率,见表2-2 (DS18B20 出厂时被设置为12 位)。表2- 2 R1 和R0 模式表由表2-2 可见,设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要在分辨率和转换时间两者中权衡考虑。高速暂存存储器除了配置寄存器外,还有其他8 个字节组成,其分配见表2-3。苏州大学本科生毕业设计(论文)- 4 -表2- 3 字节定义其中第1、2 字节是温度信息,第3、4 字节是TH 和TL 值,第68 字节未用,表现为全逻辑1;第9 字节读出的是前面所有 8 个字节的 CRC 码,可用来保证通信

15、正确。当DS18B20 接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2 字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。温度值格式见表2-4。表2- 4 温度格式表以12 位转化为例说明温度高低字节存放形式及计算;12 位转化后得到的12 位数据,存储在DS18B20 的两个高低8 位的RAM 中,二进制中的前面5 位是符号位。如果测得的温度大于0,这5 位为0,即符号位S=0,这时只要直接将测到的数值二进制位转换为十进制,再乘以0.0625 即可得到实际温度;如果温度小于0,这5 位为1,即符号位S=

16、1,这时先将补码变换为原码,也就是测到的数值需要取反加1 再计算十进制值,最后乘以0.0625才能得到实际温度。对应的一部分温度值见表2-5。表 2- 5 部分温度表实际温度值 数字输出(二进制) 数字输出(十六进制)+125 0000 0111 1101 0000 07D0H+85 0000 0101 0101 0000 0550H+25.0625 0000 0001 1001 0001 0191H+10.125 0000 0000 1010 0010 00A2H+0.5 0000 0000 0000 1000 0008H0 0000 0000 0000 0000 0000H-0.5 111

17、1 1111 1111 1000 FFF8H-10.125 1111 1111 0101 1110 FF5EH-25.0625 1111 1110 0110 1111 FE6EH苏州大学本科生毕业设计(论文)- 5 -55 1111 1100 1001 0000 FC90HDS18B20 完成温度转换后,就把测得的温度值T 与TH、TL 作比较,若TTH 或T0;i-) DQ=0; DQ=datDDelay(5);DQ=1;dat=1; DDelay(4); /* DS18B20 读一个字节函数*/unint ReadChar() unchar i,dat=0;for (i=8;i0;i-)

18、DQ=1; DDelay(1);DQ=0; dat=1;DQ=1; if(DQ)dat=dat|0x80;DDelay(4); return(dat); /* DS18B20 读温度程序*/ unint ReadTemperature() unint temperature;Reset(); WriteChar(0xcc); WriteChar(0x44); DDelay(125); Reset();WriteChar(0xcc);WriteChar(0xbe);tempL=ReadChar(); tempH=ReadChar();temperature=(tempH*256)+tempL)*

19、0.0625*10; 苏州大学本科生毕业设计(论文)- 24 -DDelay(200);return(temperature); /返回的是 0123 格式nRF24L01 程序 :#include“reg52.h“#include“Allhead.h“sbit CE=P22; /RX/TX 模式选择端sbit IRQ=P25; /可屏蔽中断端sbit CSN=P23; /SPI 片选端/ 就是 SSsbit MOSI=P24; /SPI 主机输出从机输入端sbit MISO=P20; /SPI 主机输出从机输出端sbit SCLK=P21; /SPI 时钟端unchar code TxAdd

20、r=0x34,0x43,0x10,0x10,0x01;/发送地址/*状态标志*/unchar bdata sta; /状态标志sbit RX_DR=sta6;sbit TX_DS=sta5;sbit MAX_RT=sta4;/*SPI 时序函数*/unchar NRFSPI(unchar date)unchar i;for(i=0;i8;i+) / 循环 8 次if(dateelseMOSI=0; / byte 最高位输出到 MOSIdate=1; / 低一位移位到最高位SCLK=1; if(MISO) / 拉高 SCK,nRF24L01 从 MOSI 读入 1 位数据,同时从MISO 输出

21、1 位数据date|=0x01; / 读 MISO 到 byte 最低位SCLK=0; / SCK 置低return(date); / 返回读出的一字节/*NRF24L01 初始化函数*/void NRF24L01Int()Delay(2);/让系统什么都不干CE=0; /待机模式 1 CSN=1; SCLK=0;IRQ=1; 苏州大学本科生毕业设计(论文)- 25 -/*SPI 读寄存器一字节函数*/unchar NRFReadReg(unchar RegAddr)unchar BackDate;CSN=0;/启动时序NRFSPI(RegAddr);/写寄存器地址BackDate=NRFSP

22、I(0x00);/写入读寄存器指令 CSN=1;return(BackDate); /返回状态/*SPI 写寄存器一字节函数*/unchar NRFWriteReg(unchar RegAddr,unchar date)unchar BackDate;CSN=0;/启动时序BackDate=NRFSPI(RegAddr);/写入地址NRFSPI(date);/写入值CSN=1;return(BackDate);/*SPI 读取 RXFIFO 寄存器的值*/unchar NRFReadRxDate(unchar RegAddr,unchar *RxDate,unchar DateLen) /寄存

23、器地址/读取数据存放变量/ 读取数据长度/ 用于接收unchar BackDate,i;CSN=0;/启动时序BackDate=NRFSPI(RegAddr);/写入要读取的寄存器地址for(i=0;iDateLen;i+) /读取数据RxDatei=NRFSPI(0); CSN=1;return(BackDate); /*SPI 写入 TXFIFO 寄存器的值*/unchar NRFWriteTxDate(unchar RegAddr,unchar *TxDate,unchar DateLen) /寄存器地址/写入数据存放变量/读取数据长度/用于发送unchar BackDate,i;CSN

24、=0;BackDate=NRFSPI(RegAddr);/写入要写入寄存器的地址for(i=0;iDateLen;i+)/写入数据NRFSPI(*TxDate+); CSN=1;return(BackDate);苏州大学本科生毕业设计(论文)- 26 -/*NRF 设置为发送模式并发送数据 */void NRFSetTxMode(unchar *TxDate)/发送模式CE=0; NRFWriteTxDate(W_REGISTER+TX_ADDR,TxAddr,TX_ADDR_WITDH);/写寄存器指令+接收地址使能指令+ 接收地址 +地址宽度NRFWriteTxDate(W_REGISTE

25、R+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);/为了应答接收设备,接收通道 0 地址和发送地址相同NRFWriteTxDate(W_TX_PAYLOAD,TxDate,TX_DATA_WITDH);/写入数据 /*下面有关寄存器配置*/NRFWriteReg(W_REGISTER+EN_AA,0x01); / 使能接收通道 0 自动应答NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); / 使能接收通道 0NRFWriteReg(W_REGISTER+SETUP_RETR,0x0a); / 自动重发延时等待250us+86us,自动重发 10

26、 次NRFWriteReg(W_REGISTER+RF_CH,0x40); / 选择射频通道 0x40NRFWriteReg(W_REGISTER+RF_SETUP,0x07); / 数据传输率 1Mbps,发射功率0dBm,低噪声放大器增益NRFWriteReg(W_REGISTER+CONFIG,0x0e); / CRC 使能,16 位 CRC 校验,上电 CE=1;Delay(5);/保持 10us 秒以上/*NRF 设置为接收模式并接收数据 */主要接收模式void NRFSetRXMode()CE=0; NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxA

27、ddr,TX_ADDR_WITDH); / 接收设备接收通道 0 使用和发送设备相同的发送地址NRFWriteReg(W_REGISTER+EN_AA,0x01); / 使能接收通道 0 自动应答NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); / 使能接收通道 0NRFWriteReg(W_REGISTER+RF_CH,0x40); / 选择射频通道 0x40NRFWriteReg(W_REGISTER+RX_PW_P0,TX_DATA_WITDH); / 接收通道 0 选择和发送通道相同有效数据宽度NRFWriteReg(W_REGISTER+RF_SETUP

28、,0x07); / 数据传输率 1Mbps,发射功率 0dBm,低噪声放大器增益*/NRFWriteReg(W_REGISTER+CONFIG,0x0f); / CRC 使能,16 位 CRC校验,上电,接收模式CE = 1;Delay(5);/保持 10us 秒以上 /*检测应答信号*/unchar CheckACK() /用于发射苏州大学本科生毕业设计(论文)- 27 -sta=NRFReadReg(R_REGISTER+STATUS); / 返回状态寄存器if(TX_DS|MAX_RT) /发送完毕中断NRFWriteReg(W_REGISTER+STATUS,0xff); / 清除 T

29、X_DS 或 MAX_RT 中断标志CSN=0;NRFSPI(FLUSH_TX);/用于清空 FIFO !关键!不然会出现意想不到的后果!大家记住! CSN=1; return(0);elsereturn(1);/*判断是否接收收到数据,接到就从 RX 取出*/用于接收模式unchar NRFRevDate(unchar *RevDate)unchar RevFlags=0;sta=NRFReadReg(R_REGISTER+STATUS);/发送数据后读取状态寄存器if(RX_DR) / 判断是否接收到数据CE=0; /SPI 使能NRFReadRxDate(R_RX_PAYLOAD,RevDate,RX_DATA_WITDH);/ 从 RXFIFO读取数据RevFlags=1; /读取数据完成标志NRFWriteReg(W_REGISTER+STATUS,0xff); /接收到数据后RX_DR,TX_DS,MAX_PT 都置高为 1,通过写 1 来清楚中断标return(RevFlags);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报