




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
./WORD格式整理版XX大学毕业设计题目:基于51单片机的多点温湿度采集和无线传输系统指导教师:职称:专业:电子信息工程院〔系:信息工程学院完成时间:.基于51单片机的多点温湿度采集和无线传输系统摘要:本系统是基于51单片机的多点温湿度采集和无线传输系统,由两个发射模块与一个接收模块组成。发射模块利用数字温湿度传感器DHT11采集环境温湿度数据并传送给STC89C52RC单片机,单片机进行数据处理后利用无线传输模块NRF24L01进行无线发送。同时,NRF24L01具有接收功能,接收模块的NRF24L01将接收到的数据传给STC89C52RC单片机,最后用数字显示屏LCD1602将经过单片机处理后的温湿度数据显示出来。本系统能够完成同时远距离采集两点温湿度并在系统终端进行显示的功能,以达到监测多点环境温湿度的目的。结果表明,本系统能够方便、高效、及时地测量出两个采集点的温湿度。关键词:STC89C52数据处理无线传输温湿度Abstract:Thisisamulti-pointtemperatureandhumidityacquisitionandwirelesstransmissionsystemwhichisbasedon51single-chipmicrocomputer.itincludestwotransmittermodulesandareceivermodule.TransmissionmoduleuseDHT11—digitaltemperatureandhumiditysensortocollecttemperatureandhumiditydataandtransmitthemtoSTC89C52RCmicro-controller.Themicro-controllerprocessthedataanduseNRF24L01—thewirelesstransmissionmoduletotransmitdatawirelessly.Atthesametime,NRF24L01havethefunctionofreception.NRF24L01ofthereceivermodulewilltransmitthereceiveddatatotheSTC89C52RCmicro-controller,andfinallyuseLCD1602—adigitaldisplayscreentodisplaytemperatureandhumiditydataafterthemicro-controllerprocessthereceiveddata.Thesystemcancompletesimultaneouslyandremotelythecollectionoftemperatureandhumidityandthedisplayofdatainterminalfeatures.Itachievedthepurposeofmonitoringmulti-pointtemperatureandhumidity.Theresultsshowthatthesystemcanmeasurethetwocollectionpointsoftemperatureandhumidityconveniently,efficiently,andtimely.Keyword:STC89C52dataprocessingwirelesstransmissiontemperatureandhumidity.目录TOC\o"1-3"\h\u61311绪论1124061.1引言1276731.2选题背景及意义1303001.3国内外现状及发展趋势 2312261.4研究内容 3148762系统架构 4169483系统硬件设计 551573.1主控模块 5216573.1.1单片机的选择 5208893.1.2主控模块的硬件设计 7153463.2温湿度采集模块 8172883.2.1温湿度传感器的选择 8227433.2.2温湿度采集模块的硬件设计 9217313.3无线传输模块 10113323.3.1无线传输模块的元器件选择 1013473.3.2无线传输模块的硬件设计 12224803.4显示模块 1358183.4.1显示屏的选择 1322313.4.2显示模块的硬件设计 14284804软件设计 16276684.1系统总体软件设计 16322474.1.1发射机的总体软件设计 16325254.1.2接收机的总体软件设计 16210664.2温湿度采集模块软件设计 17116664.3无线传输模块软件设计 18288124.3.1数据发送模块软件设计 18135934.3.2数据接收模块软件设计 20233514.4显示模块软件设计 22309755系统的实现与测试 23278845.1系统的实现 23287445.2系统的调试 2513313结论 2932223致谢329687参考文献33.1绪论1.1引言工业农业在国民经济中占据着重要地位,温度和湿度是工农业生产中一项重要的生产指标。温湿度过低过高会对工农业生产带来非常大的损失,因此,对其进行连续准确的测量就显得尤为重要。而一般的人工测量过程较为复杂繁琐,误差相对较大,效率极低。本系统为一个多点温湿度采集与无线传输系统,能够实时监测环境温湿度,极大的方便了工农业生产。此系统由两个发射模块与一个接收模块组成,可以进行多点温湿度检测。发射模块利用数字温湿度传感器DHT11采集环境温湿度数据并传送给STC89C52单片机,单片机进行数据处理后利用无线传输模块NRF24L01进行无线发送。同时,NRF24L01具有接收功能,接收模块的NRF24L01将接收到的数据传给STC89C52单片机,最后用数字显示屏LCD1602将经过单片机处理后的温湿度数据显示出来。顾名思义,多点无线温湿度测量系统的特点在于多点、无线,这也是其优势所在[1]。多点是指本系统能够同时对多个监测点的温度、湿度进行测量,无线是指不需要到达监测点,而是在远处对其进行远程的温湿度测量。多点无线使温湿度测量更加方便高效,是其受到欢迎的重要原因,本论文的重点也放在了多点无线方面上。此系统原理相对简单、成本低廉、功能多样,超高的性价比会使其在生产生活中得到广泛的应用。本论文着重介绍了多点无线温湿度测量的制作原理和过程。比如,元器件的选择、介绍、与硬件连接,系统的工作原理,软件的编程与调试。1.2选题背景及意义温湿度是我们日常生活中常常提到的词语,时时刻刻的影响着我们的生活,此外,温湿度也是工农业生产中一项重要的生产指标。但是,温度和湿度却是最不容易保障的指标,如果不能保障适当的温湿度进行工农业生产,便有可能会导致无法估量的损失。传统的人工测量耗时耗力,而且误差大,满足不了实时性,连续性,多点性。针对这一情况,研究开发可靠且实用的多点无线温度和湿度测量系统就具有很大意义了。当今,无线通信技术是科技发展的重要热点,已经成为信息交流的主要方式。我们自然而然联想到多点无线测量系统中利用无线通信进行数据传输,把多个监测点的温湿度传感器采集到的数据通过无线传输到一个接收模块进行数据处理、显示,这样,便满足了温湿度测量的多点性、无线性,使测量起来更加方便高效。而且利用无线传输系统结构简单,成本低廉,灵活性高,维护方便,必将在生产生活中得到广泛的应用。另外此系统不需要额外的A/D转换器将模拟电信号转换成数字信号,而是使用DHT11直接得到温湿度的数字量,减去了不必要的麻烦。以此为出发点,利用自己所学的专业知识,利用新型智能数字温湿度传感DHT11,无线发射模块NRF24L01,单片机STC89C52RC,数字液晶显示器件LCD1602等主要元器件设计这套多点温度湿度采集和无线传输系统。1.3国内外现状及发展趋势随着人们对生活舒适性的要求的提高和工农业生产对于高质量,高效率,高科技的追求,我们对温湿度的测量控制也越来越苛刻。传统的人工测量模式不仅效率很低,而且还浪费大量的人力资源及物力资源,还有缺乏一定的科学性,许多重大生产事故和损失大部分是人为因素造成的。人工测量缺乏完整的管理系统,而无线测量系统就可以完美解决这样的人力物力资源浪费,管理不及时的问题,这是此系统的智能化设计所拥有的过人之处。目前,无线温湿度测量系统已成为热门[2-3]。国内各行各业的飞速发展对于生产条件也提出了越来越多的要求。某些行业高效率的生产对于温湿度有更为严格的控制,而且某些行业危险系数较高,测量极为不便,无线温湿度测量系统最近几年应运而生。多点无线温湿度测量系统是微电子技术、计算机技术和自动测试技术的结晶。当今的多点无线温湿度测量产品,功能单一,价格高,导致各行业的利用率普遍不高,所以仍有很大的发展前景。现在国内外对于温湿度的测量正在由传统的人工测量向着新型的智能化测量发展,测量系统也正向着功能多样化、产品小型化、功耗极低化的方向发展。在发展过程中,以单片机为主要单元的无线温湿度测量系统有着体积小、操作简单、量程宽、性能稳定、测量精度高等诸多优点,受到了测量系统开发者的青睐并且在生产生活的各个方面起着越来越重要的作用。1.4研究内容本系统是以STC89C52RC单片机为核心的一套多点温湿度采集与无线传输系统。由温湿度采集、数据传输、数据处理三个部分组成,主要包括单片机系统,无线传输系统,电源电路,复位电路,温湿度检测,显示系统等模块。系统设计的研究内容包括元器件的选择、电路的设计、程序的构架与编写、系统的调试等。元器件的选择是一项重要内容,它决定了系统的成本、功能、性能等很多方面[4-5]。选择元器件必须仔细对比比较,选测出合适的元器件进行系统设计。电路的设计决定了系统的成败,要根据各个元器件的功能特性,设计出最佳的硬件电路,尽量做到正确无误、简单明了、性能稳定。本系统发送模块的电路主要是是单片机STC89C52RC最小系统、温湿度传感器DHT11、发射模块NRF24L01的连接。接收模块的电路是单片机STC89C52最小系统、接收模块NRF24L01,数字显示屏LCD1602的连接。单片机STC89C52是整个硬件电路的核心,它一方面控制无线传输模块NRF24L01发送、接收数据,另一方面,将接收到的数字温湿度数据送到LCD显示器显示,可以直观的看到测量点的温湿度并进行监测。整个系统的软件设计就是通过c语言程序对发射机、接收机的单片机STC89C52编程来实现其控制功能。系统结构简介,功能强大,成本低,效率高,性价比较高,能较好的满足生产生活中对于温湿度的测量监测要求。2系统架构多点温湿度采集和无线传输系统是一种基于射频技术的测量装置。本设计包括发送模块与接受模块,两块之间以无线传输方式进行通信。发送模块包括发射机A1与发射机A2,接收模块是一个接收机B。其通讯方式及总体框图如图2.1所示。图2.1系统通讯方式及总体框图3系统硬件设计系统硬件电路设计分为发射机与接收机[6]。两个发射机A1、A2的硬件电路设计完全相同,主要包括温湿度采集模块、主控模块、无线发射模块。图3.1所示为发射机各个模块的关系。图3.1发射机各个模块接收机B主要包括无线接收模块、主控模块、显示模块。图3.2所示为接收机各个模块的关系。图3.2接受机各个模块 下面,将对各个模块的硬件设计进行详细介绍。3.1主控模块单片机的选择STC89C52是Atmel公司生产的一种低功耗,高性能CMOS8位微控制器,其价格便宜,功耗较低,完全满足本系统设计的要求,其功能特性如表3.1所示。表3.1STC89C52的主要功能特性主要功能特性兼容MCS51指令系统8k可反复擦写FlashROM32个双向I/O口512x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能STC89C52的引脚图如图3.3所示。图3.3STC89C52引脚图STC89C52的功能以及引脚完全可以满足本系统对于控制核心的要求,且其成本低,应用广泛,相关技术的使用已经很成熟,开发难度相对不高,所以,选择STC89C52单片机作为发射机、接收机的主控芯片。3.1.2主控模块的硬件设计STC89C52RC主控模块主要包括供电电路,晶振电路,复位电路。1.供电电路STC89C52RC采用5v电源进行供电,本系统供电电路采用了反接保护,滤波电容,电源指示灯,使电源更加稳定安全,电路图如图3.4所示。图3.4供电电路2.晶振电路与复位电路晶振电路采用12M晶振,18,19引脚各接入2个22pf的电容与其共同组成晶振电路。复位电路即STC89C52RC的RESET引脚接入一个10k电阻并接地,单片机正常工作时,保证此引脚电平一直处于低电平。两部分电路图如图3.5所示。图3.5单片机的晶振电路与复位电路3.2温湿度采集模块3.2.1温湿度传感器的选择温度测量采用的是最基本的应用相对广泛的热电偶。其优点是价价格便宜而且相当耐用,种类较多,能够测量非常宽的温度范围,但是其缺点是非线性、响应速度慢、精度中等、灵敏度低、稳定性低、高温下容易老化和有线性漂移,并且测量需要参考量。湿度检测采用的是湿敏元件,主要分为电阻式和电容式。湿敏电阻的种类多,灵敏度高,但是其线性度和产品的互换性差。湿敏电容反应灵敏,体积小,但测量精度没有湿敏电阻精确[7-9]。数字式温湿度传感器DHT11是sensiron公司生产的一款含有已校准数字信号输出的智能化温湿度复合传感器,功能,精度完全能满足本次系统设计的要求,且成本低。它不仅能够测量温度,还能同时测量相对湿度,所以可以把DHT11作为温湿度检测的一个模块。DHT11传感器内部含有一个8位的单片机,与之相连的是一个电阻式感湿元件和一个NTC测温原件来分别采集湿度和温度数据。此传感器体积小,灵敏度高,功耗低,超高的性价比得到了很多场合的广泛应用。DHT11数字温湿度传感器实物图如图示3.6所示。图3.6DHT11数字温湿度传感器由上可知,DHT11与温湿敏元件相比,它成本低,内部集成度高,在测量过程中可以调用储存在OTP内存中的校准系数对相对温湿度进行自动校准,能够更为准确地测量温湿度。而且能够提供数字输出,不需要再进行A/D转化,简化外部电路,测量精度相对较高,可以测量较宽的温湿度范围。DHT11数字温湿度传感器有4针单排引脚封装,电路连接简单,焊接方便。因此,选择数字温湿度传感器DHT11作为本系统中的测量元件。温湿度采集模块的硬件设计发射机中含有温湿度采集模块,它是指DHT11的硬件连接,本系统所选用的DHT11为4针单排直插封装,4个引脚说明如表3.2所示表3.2DHT11的引脚说明pin名称注释1VDD供电3-5.5VDC2DATA串行数据,单总线3NC空脚,悬空4GND接地,电源负极本系统中DHT11的供电与STC89C52RC一样,采用图3.4所示的供电电路进行供电,NC脚在本系统中悬空,DATA引脚应连接STC89C52RC的P17口,用于两者通讯和同步。DATA引脚是一个单线串行接口,是数字信号的输入输出端。DHT11的硬件连接图如图3.7所示图3.7DHT11的硬件连接图3.3无线传输模块3.3.1无线传输模块的元器件选择本系统设计采用无线方式向终端传输温湿度数据。GSM、蓝牙、zigbee、WLAN等方式均可进行无线传输数据[10]。但考虑到成本及实用性,本系统无线传输模块采用单片射频收发芯片NRF24L01。实物图如图3.8所示图3.8NRF24L01实物图1.NRF24L01的管脚NRF24L01有8个引脚,各个引脚的具体说明如表3.3所示。表3.3NRF24L01各个引脚说明管脚名称管脚功能方向pin1VDD正电源输入pin2CE工作模式选择,RX或TXIPin3CSNSPI片选使能,低电平使能Ipin4SCKSPI时钟Ipin5MOSISPI输入Ipin6MISOSPI输出Opin7IRQ中断输出Opin8GND电源地2NRF24L01的工作模式NRF24L01有两种节能模式和两种工作模式。两种节能模式是关机模式和空闲模式。两种工作模式分别是接收模式和发送模式。NRF24L01的工作模式由CE、寄存器内部PWR_UP、PRIM_RX三个引脚决定。三个引脚决定其工作方式的具体方式见下表3.4。表3.4NRF24L01的工作模式工作模式PWR_UPPRIM_RXCEFIFO寄存器状态接收模式111-发射模式101数据在TXFIFO寄存器中发射模式101→0停留在发射模式,直至数据发送完掉电模式0待机模式2101TXFIFO为空待机模式11-0无正在传输的数据NRF24L01是我们开发设计小型项目的常用无线传输工具,它主要由五部分组成:频率调制器,带解调器的接收器,功率放大器,晶体震荡器,调节器。NRF24L01可以进行组网通信,正好满足多点测量的要求。模块有多种模式可以切换,用此进行无线通信功耗极低,更加节能,有利于降低成本。其ShockBurst技术可在通讯时自动生成前导码和CRC校验位。所以NRF24L01是本系统无线收发模块的最佳选择。无线传输模块的硬件设计本系统中两个发射机各有一个无线发射模块,一个接收机含有一个无线接收模块。由于NRF24L01兼备发送与接收功能,所以发射、接受模块全部采用NRF24L01,与主机STC89C52的硬件连接也全部相同。NRF24L01模块为8引脚封装,其各个引脚描述如如表3.5所示表3.5NRF24L01引脚描述引脚号名称性质描述1GND电源地电源地2VCC电源正〔+3v3CE输入信号由STC89C52RC给出信号控制NRF24L01模块内部射频电路工作与否4CSN输入信号模块的片选信号。STC89C52RC发出信号控制允许向模块读或写数据5SCK输入信号串行时钟信号。STC89C52RC发出信号控制模块读或写的运作节拍6MOSI输入信号STC89C52RC向模块发送数据7MISO输出信号模块向STC89C52RC发送数据8IRQ输出信号模块产生中断信号发送给STC89C52RCNRF24L01无线模块直接与STC89C52RC连接,电路图如图3.9所示。图3.9NRF24L01无线模块电路图3.4显示模块3.4.1显示屏的选择显示器可以选择数码管显示或者液晶显示[11-12]。由于本系统同时多点测量温湿度,所以要显示多组数据。数码管显示虽然能够实现多组温湿度数据同时显示,但是这种显示方式不能够显示字符而且占据较多的单片机I/O口,导致电路连接复杂,焊接困难甚至出现接收机单片机I/O口不够用的情况。LCD1602液晶显示也是一种常用的显示方式。LCD1602显示内容十分丰富,能够显示字母,符号和数字等192种字符,且可同时显示16x2个字符,满足了本系统对于多组数据同时显示的要求。显示屏共有16个引脚,节省了单片机的大量I/O口,且电路连接简单,容易焊接。此种显示方式响应也较快,亮度可调,成本低,是显示终端的最佳选择。考虑到以上情况,本系统显示终端选择LCD1602液晶进行温湿度显示,实物图如图3.10所示。图3.10LCD1602实物图3.4.2显示模块的硬件设计接收机收到温湿度数据后,利用LCD1602显示两个监测点A1、A2的温湿度信息。LCD1602液晶显示芯片采用标准的16脚接口,其各个引脚及说明如表3.6所示。表3.6LCD1602各个引脚的说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据I/O2VDD电源正极10D3数据I/O3VL液晶显示偏压11D4数据I/O4RS数据/命令选择12D5数据I/O5R/W读/写选择13D6数据I/O6E使能信号14D7数据I/O7D0数据I/O15BLA背光源正极8D1数据I/O16BLK背光源负极LCD1602电路连接图如图3.11所示。图3.11LCD1602模块电路图4软件设计4.1系统总体软件设计本系统由两个发射机A1、A2与一个接收机B组成,可以设计出发射机的总体程序流程图和接收机的总体程序流程图。发射机程序主要是温湿度采集处理程序,NRF24L01发送程序。接收机主要是数据接收程序,液晶显示程序。4.1.1发射机的总体软件设计发送部分的总体设计思路为:初始化温度传感器DHT11;传感器测得温湿度;把温湿度值写入待发射数据;初始化NRF24L01无线模块;将温湿度发送给接收机,其流程图如图4.1所示图4.1发射机程序流程图4.1.2接收机的总体软件设计接收部分的总体设计思路是:初始化nRF24L01无线模块和LCD1602显示模块;接收温湿度数据;在LCD1602上分组显示,其程序流程图如图4.2所示。图4.2接收机程序流程图4.2温湿度采集模块软件设计发射机利用DHT11进行温湿度采集,DATA引脚连接于STC89C52RC的P17口以进行数据传输。NRF24L01通过DATA总线发送出的温湿度数据分小数部分和整数部分,共40bit。数据格式为:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和[13-14]。本系统DHT11的工作流程如下:开机后,DHT11处于低功耗模式,当它检测到STC89C52RC发送出的开始信号后,其转换到高速模式,开始进行温湿度采集,并以以上所说的数据格式发送至STC89C52RC,然后进入低速模式。单片机可以选择读取温湿度数据。DATA总线空闲状态为高电平,DHT11接收到的开始信号必须是大于18ms的低电平,否则,DHT11便无法视其为开始信号。开始信号结束后,DHT11会发送80us的低电平响应信号。STC89C52RC发送开始信号后,需要等待20-40us,然后读取DHT11回馈的低电平响应信号。若读取总线为低电平,则说明DHT11收到了开始信号。DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短决定了数据位是0还是1。当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线再次进入空闲状态。根据DHT11与单片机的数据通信时序,可以设计出温湿度采集处理的程序流程图,如图4.3所示。图4.3温湿度采集程序流程图4.3无线传输模块软件设计发射机含有数据发射模块,接收机含有数据接收模块,两种模块都采用NRF24L01。所以在进行无线数据通信时,需要把发射机的NRF24L01配置为发射模式,把接收机的NRF24L01配置为接收模式。4.3.1数据发送模块软件设计发射机的STC89C52RC获得温湿度数据后,需要通过NRF24L01进行数据发送。NRF24L01数据的发送过程为1.当STC89C52RC有数据要发送时,通过SPI接口,按时序把接收机的地址和要发送的数据送传给NRF24L01。SPI接口的速率可以通过软件配置。2.微控制器通过置高CE,激发NRF24L01的ShockBurstTM的发送模式。3.NRF24L01的ShockBurstTM发送数据。自动开启射频寄存器,打包数据<加字头和CRC校验码>,发送数据包[15]。4.当AUTO_RETRAN被置高,NRF24L01不断重发,直到CE被置低。5.当CE被置低,NRF24L01发送过程完成,自动进入空闲模式。6.在ShockBurstTM工作模式下,一旦开始发送数据,发送过程都会被处理完。只有发送完前一个数据包的数据,NRF24L01才能接受下一个发送数据包。由此,发送模块的程序设计思路如下1.STC89C52RC控制CE引脚为低电平,从而使NRF24L01置于待机模式,对其进行寄存器配置。2.当STC89C52要发送温湿度数据时,其按时序通过SPI总线把接收节点地址<TX_ADDR>和有效数据<TX_PLD>写入NRF24L01相应寄存器中。发送端发送完数据后,将通道0设置为接收模式来接收应答信号,其接收地址<RX_ADDR_P0>与接收端地<TX_ADDR>相同;
3.STC89C52RC将CE引脚设置高电平,激发NRF24L01的ShockBurstTM发送模式,CE高电平持续时间最小为10μs。
4.nRF24L01ShockBurstTM发送模式:无线系统上电,射频寄存器自动开启;数据打包;发送数据包;5.数据发送完后,CE被置低,自动进入空闲模式
NRF24L01的发送模块程序流程图如图4.4所示。图4.4发送模块程序流程图4.3.2数据接收模块软件设计接收机要想显示温湿度,就必须要通过NRF24L01接收两个发射机发送的温湿度数据。NRF24L01数据的接收过程为1.当PWR_UP、PRIM_RX、CE全部为高电平时,NRF24L01进入ShockBurstTM接收模式;2.NRF24L01不断监测,等待接收数据,当检测到同一频段的载波时,载波检测引脚被置高;3.当接收到一个相匹配的地址时,地址匹配引脚被置高;4.当接收完一个正确的数据包后,NRF24L01自动移去字头、地址和CRC校验位,然后把数据准备好引脚置高;5.STC89C52RC将CE置低,NRF24L01进入待机模式;6.STC89C52RC通过SPI口,以一定的速率把数据传送到STC89C52RC内;7.当所有的数据接收完毕后,NRF24L01进入待机模式。由此,接收模块的程序设计思路如下1.STC89C52RC控制CE引脚为低电平,从而使NRF24L01置于待机模式,对其进行寄存器配置。2.STC89C52RC将PWR_UP、PRIM_RX、CE三个引脚置高电平,使NRF24L01进入ShockBurstTM接收模式;3.NRF24L01开始检测空中信号,接收到有效的数据包后<地址匹配、CRC校验正确>,将数据存储在RX_FIFO寄存器中,并发送确认信号;4.STC89C52RC设置CE脚为低电平,使nRF24L01进入待机模式;5.STC89C52RC通过SPI口以合适的速率将数据读出。NRF24L01的接收模块程序流程图如图4.5所示。图4.5接收模块程序流程图4.4显示模块软件设计显示模块软件设计相对简单,首先将LCD1602初始化,然后STC89C52通过数据传输端口P0.0~P0.6向LCD1602传送温湿度数据信息。若LCD1602正确接收到数据信息,则显示收到的温湿度数据。延时0.8S后,重新开始读取下一个时间段温湿度数据,进入循环。若LCD1602读取数据错误,则直接返回,重新读取。程序流程图如图4.6所示图4.6LCD1602显示模块程序流程图5系统的实现与测试5.1系统的实现系统的两个发射机A1,A2的原理图相同,如图5.1所示图5.1发射机原理图系统的接收机B的原理图如图5.2所示图5.2接收机原理图根据原理图进行焊接后,发射机A1、A2实物图如图5.3所示,接收机B实物图如图5.4所示。图5.3发射机A1、A2实物图图5.4接收机B实物图5.2系统的调试整个系统的电路焊接完成后,开始进行整个系统的调试。在整个调试的过程中主要使用KELLvision4软件和stc-isp软件。首先对程序进行设计以及编译。程序的编译是一个很重要的过程,他是这整个系统关键。在编写代码的过程中,通过设计的流程图,按照自己的思路进行定义以及调用函数,编译调试可以让我们清楚地认识到函数的调用顺序以及函数的调用情况。并且我们可以通过调试发现其中的错误,并通过调试改正过来。通过不断地对代码进行调试,从而将设计完美的实现。程序编译完成后利用stc-isp软件把三个程序分别烧录进发射机A1、A2和接收机的STC89C52RC单片机中。完成后,对系统进行功能测试,测试流程如下。1.把发射机A1、A2,接收机B分别放置于三个房间,其分布示意图如图5.5所示。图5.5发射机、接收机分布示意图2.启动发射机A1、A2和接收机B。接收机B液晶屏显示如图5.6所示。A1、A2的初始温湿度如表5.1所示。符合环境的温湿度。图5.6A1、A2采集点的初始温湿度显示表5.1A1、A2的初始温湿度采集点温度湿度A125℃32%RHA224℃36%RH3.对A1的温湿度传感器DHT11吹气,接收机的液晶屏显示如图5.7所示。A1、A2的温湿度变化如表5.2所示。对比发现,A1采集点的温度上升至30℃。湿度急剧上升至55%RH。A2采集点的温湿度没有变化。可知发射机A1工作正常,接收机能正常显示温湿度数据,达到了本设计的对于无线采集某点温湿度要求。图5.7对A1吹气后A1、A2采集点的温湿度表5.2对A1吹气后A1、A2的温湿度采集点温度湿度A130℃55%RHA224℃36%RH4.利用电吹风对准发射机A2的DHT11吹风,接收机的液晶屏显示如图5.8所示。A1、A2的温湿度变化如表5.3所示。对比发现A2采集点的温度急剧上升至46℃。湿度下降至26%RH。可知发射机A2工作正常,接收机能正常显示A2点温湿度数据。图5.8利用电吹风对A2吹风后A1、A2采集点的温湿度显示表5.3利用电吹风对A2吹风后A1、A2的温湿度采集点温度湿度A128℃58%RHA246℃26%RH5.综上可知,本系统完整的实现了预设功能,本次设计制作成功。结论本系统是基于51单片机的多点温湿度采集和无线传输系统,由两个发射模块与一个接收模块组成。两个模块电路图如图1、图2所示图1发射机A1、A2的原理图图2接收机B的原理图发射机利用数字温湿度传感器DHT11采集环境温湿度数据并传送给STC89C52RC单片机,单片机进行数据处理后利用无线传输模块NRF24L01进行无线发送。接收模块的NRF24L01将接收到的数据传给STC89C52RC单片机,最后用数字显示屏LCD1602将经过单片机处理后的温湿度数据显示出来。显示效果如图3所示。图3显示效果本设计基于51单片机,能够完成同时远距离采集两点温湿度并在系统终端进行显示的功能,以达到监测多点环境温湿度的目的。结果表明,本系统能够方便、高效、及时地测量出两个采集点的温湿度。系统成本低,性能好,制作相对简单。远程测量能达到百米左右,基本满足日常生活的测量要求。可以轻松添加多个监测点,程序移植性十分好。系统可扩展性也比较强,在此程序框架上添加其他模块程序,并加入相应的硬件,可以实现其他功能。如温湿度异常报警功能,温湿度自动调节功能。致谢本次毕业设计过程中,遇到了很多困难。虽然之前对类似系统有一些初步了解,但是当自己一个人独自完成系统时,还是产生了很多意想不到的问题。通过本次设计,我学习到了很多东西,不管是做人,还是做事儿。在我进行毕业设计的过程中接收到许许多多的人的帮助,特别是指导老师的悉心指导和帮助。在这个毕业设计的过程中,李老师对我们尽职尽责,每周固定设定一个时间,组织我们开会总结。要求我们每周汇报自己的工作进度,并对我们的问题认真解答,才使得设计过程中出现的问题及时的得到改正。这才使得毕业设计能够顺利的进展。我这次能够顺利完成毕业设计,也要感谢我们学校以及学院。为了配合完成毕业设计,我们可以借助图书馆的免费数据库以及学院给我们提供实验室,方便我们进行毕业设计,以及相关的测试。通过图书馆的资料的查询。以及学院给我们提供的良好的环境,毕业设计才会跟好的完成。毕业设计是我们对四年专业课学习的总结,也是毕业之前的最后一张答卷。这些过程让我学到了很多,当然这也离不开同学们的热心帮助,在此也向他们表示感谢。参考文献[1]周峰.Zigbee无线传感器网络节点硬件设计.电子世界杂志,2011,5:59-62[2]周远举.基于AT89S52和NRF24L01的无线温度监测系统[J].中国知网,2012,2:12-23[3]郭刚,李思敏.基于nRF24E1开发的短距离无线数据传输系统.XX电子工业学院学报.2004,24:5-11[4]李会聪.DS18B20多点测温方法探讨[J].微计算机信息,2010,26:126-153[5]英庆,王代华,张志杰.基于nRF24L01的无线数据传输系统[J].现代电子技术.2008,31:68-82.[6]丁永红,孙运强.基于nRF2401的无线数传系统设计[J].国外电子测量技术.2008,27:45-47[7]朱玉颖,蔡占辉.基于NRF24L01的远程温度检测系统设计[J].通信与信息处理.2009:68-96[8]潘勇,管学奎,赵瑞.基于NRF24L01的智能无线温度测量系统设计[J].电子测量技术2010,2:56-8984-92[10]李文仲,段朝玉.短距离无线数据通信入门与实战[M].北京航空航天大学出版社.2006.80-259[11]喻金钱,喻斌.短距离无线通信详解:基于单片机控制[M].北京航空航天大学出版社.2009,125-246[12]刘君华.智能传感器系统.XX电子科技大学出版社.1999.3:137-146[13]周月霞、孙传友.DS18B20硬件连接及软件编程.传感器世界.2001.8:13-21[14]JoyecVandeVegte.fundamentalsofdigitalsignalprocessing.电子工业出版社。2003:156-183[15]LyonsRG.UnderstandingDigitalSignalProcessing.科学出版社.2003:256-294/************************LCD模块***********************************/BOOLlcd_bz<>//测试LCD忙碌状态{ BOOLresult; rs=0; rw=1; ep=1; result=<BOOL><P0&0x80>; ep=0; returnresult;}voidwrite_cmd<ucharcmd>//写指令{ while<lcd_bz<>>; rs=0; rw=0; ep=0; P0=cmd; ep=1; ep=0;}voidwrite_addr<ucharaddr>//写地址{ write_cmd<addr|0x80>;}voidwrite_byte<uchardat>//写字节{ while<lcd_bz<>>; rs=1; rw=0; ep=0; P0=dat; ep=1; ep=0;}voidlcd_init<>//初始化{ write_cmd<0x38>; delay<1>; write_cmd<0x08>; delay<1>; write_cmd<0x01>; delay<1>; write_cmd<0x06>; delay<1>; write_cmd<0x0c>; delay<1>;}display<ucharaddr,ucharq>//在某一地址上显示一字节{ delay<1>; write_addr<addr>;write_byte<q>; longdelay<1>;}voidshow1<>{ lcd_init<>;//初始化display<0x03,'W'>;display<0x04,'e'>; display<0x05,'l'>; display<0x06,'c'>; display<0x07,'o'>; display<0x08,'m'>;display<0x09,'e'>; NRFDelay<1000>;//短暂延时 lcd_init<>;//初始化 display<0x00,'A'>;display<0x01,'1'>; display<0x02,':'>; display<0x06,0xdf>;display<0x07,'C'>; display<0x0d,'%'>;display<0x0e,'R'>;display<0x0f,'H'>; display<0x40,'A'>;display<0x41,'2'>; display<0x42,':'>; display<0x46,0xdf>;display<0x47,'C'>; display<0x4d,'%'>;display<0x4e,'R'>;display<0x4f,'H'>;}/*****************状态标志*****************************************/uncharbdatasta;sbitRX_DR=sta^6;sbitTX_DS=sta^5;sbitMAX_RT=sta^4;/*****************SPI时序函数***********************************/uncharNRFSPI<unchardate>{unchari; for<i=0;i<8;i++>//循环8次 { if<date&0x80> MOSI=1; else MOSI=0;//byte最高位输出到MOSI date<<=1;//低一位移位到最高位 SCLK=1; if<MISO>//拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据 date|=0x01; //读MISO到byte最低位 SCLK=0; //SCK置低 }return<date>; //返回读出的一字节}/**********************NRF24L01初始化函数**************************/voidNRF24L01Int<>{ NRFDelay<2>;//让系统什么都不干 CE=0; CSN=1; SCLK=0; IRQ=1; BJ=0;}/*****************SPI读寄存器一字节函数*****************************/uncharNRFReadReg<uncharRegAddr>{uncharBackDate;CSN=0;//启动时序NRFSPI<RegAddr>;//写寄存器地址BackDate=NRFSPI<0x00>;//写入读寄存器指令CSN=1;return<BackDate>;//返回状态}/*****************SPI读取RXFIFO寄存器的值**************************/uncharNRFReadRxDate<uncharRegAddr,unchar*RxDate,uncharDateLen>{//寄存器地址//读取数据存放变量//读取数据长度//用于接收uncharBackDate,i; CSN=0;//启动时序 BackDate=NRFSPI<RegAddr>;//写入要读取的寄存器地址 for<i=0;i<DateLen;i++>//读取数据 { RxDate[i]=NRFSPI<0>; }CSN=1;return<BackDate>;}/*****************NRF设置为接收模式并接收数据***********************/voidNRFSetRXMode<>{CE=0; NRFWriteTxDate<W_REGISTER+RX_ADDR_P0,RxAddr0,TX_ADDR_WITDH>;//接收设备接收通道0使用和发送设备相同的发送地址 NRFWriteTxDate<W_REGISTER+RX_ADDR_P1,RxAddr1,TX_ADDR_WITDH>;//接收设备接收通道1使用和发送设备相同的发送地址 NRFWriteReg<W_REGISTER+EN_AA,0x03>;//使能数据通道0和1自动应答 NRFWriteReg<W_REGISTER+EN_RXADDR,0x03>;//使能接收通道0和1 NRFWriteReg<W_REGISTER+RX_PW_P0,TX_DATA_WITDH>;//
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论