温室大棚温湿度测控系统设计毕业设计论文_第1页
温室大棚温湿度测控系统设计毕业设计论文_第2页
温室大棚温湿度测控系统设计毕业设计论文_第3页
温室大棚温湿度测控系统设计毕业设计论文_第4页
温室大棚温湿度测控系统设计毕业设计论文_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

页共40页1绪论1.1课题研究的背景塑料大棚即日光温室可以养花、种菜,即使是在寒冷的冬天,人们也可以吃到很多新鲜的蔬菜,植物的生长都是在一定的环境中进行的,其在生长过程中受到环境中各种因素的影响,其中对植物生长影响最大的是环境中的温度和湿度。环境中昼夜的温度和湿度变化大,其对植物生长极为不利。因此必须对环境的温度和湿度进行监测和控制,使其适合植物的生长,提高其产量和质量。现在大多数农民还是沿用人工值守的方法来看管大棚,浪费了大量的人力和物力,而且大棚的温湿度控制并不理想,往往因为温湿度控制不当造成作物的减产,从而给菜农带来了极大的损失,为此,在这里设计了一种大棚温湿度测控系统。随着经济的发展,人们生活水平的提高,对日光温室的要求越来越高,温室控制系统的应用也越来越广,需要监控的对象亦趋于多样化,所以必须使用具有统一规范、可靠性高、组建灵活、扩展性好、维护简便、性价比高的方式来组建系统。因此,作为日光温室的一个重要组成部分—温度湿度测控装置的研制具有极其重要的意义。在日光温室中,由于温度过高、过低或环境湿度过大等都会影响农作物正常生长,该测控装置能够有效地将温度控制在作物所需温度范围之内,也可以很好的改善大棚湿度,为农作物的生长提供一个良好的环境,并可以针对我国南方、北方的温度、湿度差异进行适当的调整。因此设计这样一种大棚温湿度测控系统对农业生产具有重要的意义。本系统采用现代化的科学管理方式,采用微机监控系统,微机监控系统是针对大棚现代化技术管理的新近研制成功的设备,它具有测温、测湿、控温、控湿、报警条件判定等多项功能。系统由AT89S52单片机,温度检测电路,湿度检测电路,控制系统,报警电路,采用LCD2864作为显示电路等构成,从而更好的控制温湿度,满足作物生长的最佳条件,并能大大缩短农作物的成熟期,提高效率。1.2课题研究的意义随着大棚技术的普及,温室大棚数量不断增多,温室大棚的温度控制成为一个难题。目前应用于温室大棚的温度检测系统大多采用由模拟温度传感器、多路模拟开关、A/D转换器及单片机等组成的传输系统。这种温度采集系统需要在温室大棚内布置大量的测温电缆,才能把现场传感器的信号送到采集卡上,安装和拆卸繁杂,成本也高。同时线路上传送的是模拟信号,易受干扰和损耗,测量误差也比较大,不利于控制者根据温度变化及时做出决定。在这样的形式下,开发一种实时性高、精度高,能够综合处理多点温度信息的测控系统就很有必要。本设计主要针对温室大棚内温度、湿度,研制了单片机控制的温室大棚自动控制系统,综合考虑系统的精度、效率以及经济性要求三个方面因素之后,最终确定以单片机为控制核心,选用性价比较高的温湿度传感器(可以选取分立式的温度传感器和湿度传感器,也可以选用集成的温湿度传感器),实现了对温湿度的精确测量与准确控制。当单片机检测到温湿度有任何一个参数越限时,则会进行报警。提示工作人员温湿度过限。本文完成了系统的软硬件设计。在系统设计过程中充分考虑到性价比,选用价格低、性能稳定的元器件。该温室大棚温湿度控制系统具有检测精度高、使用简单、成本较低和工作稳定可靠等特点,不仅可以应用在农业大棚,也可以用在仓库的温湿度检测,恒温湿的机械加工厂、室内环境监测等方面。应用范围广,所以具有一定的推广应用价值。2系统设计的总体思路2.1系统设计要求2.1.1设计指标1.基本功能检测温度、湿度显示温度、湿度温度湿度过限报警2.主要技术参数温度检测范围:+20℃~+40℃测量精度:±1℃湿度检测范围:80%~120%RH检测精度:±1%RH显示方式:温度:四位显示湿度:四位显示报警方式:声光报警(二极管和蜂鸣器)2.1.2设计要求本次需要设计一个大棚温湿度测控系统,这里选用单片机为执行器(核心器件),通过温度检测电路,湿度检测电路,控制系统,报警电路,显示电路等做成这样一个系统。具体方案选择在下节中介绍。2.2系统硬件的总体设计2.2.1单片机的选择方案和论证方案一:采用MCS-51系列单片机中的AT89C51芯片作为核心器件,有4K字节的内部FLASHPERAM,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二:采用AT89S52芯片作为核心器件,片内ROM全都采用FlashROM;能以3V的超低压工作;同时也与MCS-51系列单片机完全兼容。该芯片内部存储器为8KBROM存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,由此不会对芯片造成损坏。所以选择采用AT89S52作为本次设计的主控制系统。2.2.2显示模块的选择方案和论证方案一:采用LCD-1602液晶显示器,显示容量为16*2个字符,而此次设计的是一个大棚温湿度测控系统。这里我们需要将设定的温度值,湿度值,以及采集过来的外界环境里的温度值和湿度值显示出来。而显然LCD-1602的显示容量只有两行,可以显示八个汉字,这样无法直接在一屏里面显示温度值和湿度值,需要分多次页数来显示,这样不便于观察温湿度的变化,所以在本次设计中不采用LCD-1602液晶显示器。方案二:采用LCD-12864液晶显示器,可以显示四行汉字,每行为16个字符,八个汉字,这样可进行比较观察,清晰明了,易于操作,占用的单片机口线少,可以满足本系统的设计要求,因此在本次设计中的显示部分我们选用LCD-12864液晶显示器。2.2.3温度传感器的选择方案和论证方案一:使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换。此设计方案需用A/D转换电路,这样一来,就增加了硬件成本,而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。方案二:采用数字式温度传感器DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连接,由于其输出为数字量,所以不需要进行A/D转化,这样就降低了硬件成本,简化了系统电路。另外,数字式温度传感器还具有测量精度高、测量范围广等优点。方案三:采用数字式温湿度传感器DHT90,该传感器为数字式传感器,可以同时采集温度和湿度,两线制的串行接口与内部的电压调整,使外围系统集成变得快速而简单。微小的体积,极低的功耗,使其成为我们在选择温湿度传感器时的首选。2.2.4湿度传感器的选择方案与论证方案一:采用HOS-201湿敏传感器。HOS-201湿敏传感器为高湿度开关传感器,它的工作电压为交流1V以下,频率为50HZ~1KHZ,测量湿度范围为0~100%RH,工作温度范围为0~50℃,阻抗在75%RH(25℃)时为1MΩ。这种传感器原是用于开关的传感器,不能在宽频带范围内检测湿度,因此,主要用于判断规定值以上或以下的湿度电平。然而,这种传感器只限于一定范围内使用时具有良好的线性,可有效地利用其线性特性。方案二:采用HS1100/HS1101湿度传感器。HS1100/HS1101电容传感器,在电路构成中等效于一个电容器件,其电容量随着所测空气湿度的增大而增大。不需校准的完全互换性,高可靠性和长期稳定性,快速响应时间,专利设计的固态聚合物结构,由顶端接触(HS1100)和侧面接触(HS1101)两种封装产品,适用于线性电压输出和频率输出两种电路,适宜于制造流水线上的自动插件和自动装配过程等。方案三:采用数字式温湿度传感器DHT90,该传感器为数字式传感器,采集湿度的精度是14位,端口较少,只需要单片机的一个端口即可驱动,精度较高,除此之外,该传感器还可以同时采集温度和湿度,并进行相对湿度补偿,易于应用,操作简单。2.2.5系统设计方案的最终确定综合上各方案所述,对此次系统的方案选定:采用AT89S52作为主控制系统;液晶显示模块LCD12864作为本次系统的显示;DHT90温湿度传感器作为本次系统温度和湿度的信息采集;蜂鸣器作为报警电路的主要元器件。通过论证拟采用的设计方案内容包括以下几点:选择AT89S52单片机作为整个系统的核心器件,发送并时时处理系统信息。传感器是实现测量与控制的首要环节,是测控系统的关键部件,如果没有传感器对原始被测信号进行准确可靠的捕捉和转换,一切准确的测量和控制都将无法实现。工业生产过程的自动化测量和控制,几乎主要依靠各种传感器来检测和控制生产过程中的各种参量,使设备和系统正常运行在最佳状态,从而保证生产的高效率和高质量。在这个系统的设计中我们选用的集成温湿度传感器。信号采集通道的选择:本设计中用到的温湿度传感器,输出的是数字量,不需要进行模数转化在本设计系统中,温度输入信号为多路的模拟信号,这就需要多通道结构。显示电路的设计:这里采用液晶LCD-12864进行显示。报警电路的设计:在微型计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。其方法就是把计算机采集的数据通过计算机进行数据处理、数字滤波,标度变换,这些已经在软件程序里边处理过,所以显示温湿度即为外界采集的温湿度,和设定的值比较,如果高于上限值(或低于下限值)则进行报警,否则就作为采样的正常值,进行显示和控制。本设计采用声光报警电路。温度和湿度任何一个超过设定范围,蜂鸣器均报警。这里我们选用二极管的亮灭显示温度或者湿度是否过限,这样便于观察,可以更加直接的确定是要升降温还是要增减湿度,给工作人员减少了工作量。蜂鸣器报警电路是通过MCS-52的1根口线经驱动器驱动蜂鸣音发声。温度控制主程序的设计应考虑以下问题:(1)温湿度采样,数字滤波;(2)越限报警和处理;(3)温度标度转换。3硬件系统设计3.1系统电路设计框图AT89S52主控模块LCD-12864显示湿度过限电路DHT90温度采集DHT90湿度采集报警电路温度过限电路图3.1系统电路设计框图3.2系统硬件概述采用单片机对大棚或室内的温度、湿度进行自动检测和控制不仅具有控制方便、简单和灵活性大等特点,而且可以大大提高被控制温度、湿度的技术指标,从而能够大大提高产品的质量和数量。本设计利用单片机的这些特点对大棚或室内的温度、湿度进行控制,将其保持在一个合适的范围内。若温度低于20℃,加热装置工作;若温度高于40℃,通风装置工作;湿度低于80%RH,喷灌装置工作;湿度达到或超过120%RH,喷灌装置停止工作。3.3单片机主控模块的设计3.3.1单片机的功能特性描述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。3.3.2AT89S52的主要特性•与MCS-51单片机产品兼容•8K字节在系统可编程Flash存储器•1000次擦写周期•全静态操作:0Hz~33Hz•三级加密程序存储器•32个可编程I/O口线•三个16位定时器/计数器八个中断源•全双工UART串行通道•低功耗空闲和掉电模式•掉电后中断可唤醒•看门狗定时器•双数据指针•掉电标识符单片机的最小系统如图3.2所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。图3.2主控电路3.4温度和湿度采集系统设计3.4.1温湿度传感器简介1.数字温湿度传感器特点:⑴全标定;数字输出;低能耗;卓越的长期稳定型;插针封装,易于安装。2.产品概述DHT9x(包括DHT90,DHT91,DHT95)是数字温湿度传感器系列中插针型的传感器。传感器把传感元件和信号处理集成起来,输出全标定的数字信号。传感器采用专利的CMOS技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上,与14位的A/D转换器以及串行接口电路实现无缝连接。因此,该产品具有品质卓越、超快响应、抗干扰能力强、极高的性价比等优点。每个传感器芯片都在极为精确的湿度腔室中进行标定,校准系数以程序形式储存在OTP内存中,在标定的过程中使用。传感器在检测信号的处理过程中要调用这些校准系数。两线制的串行接口与内部的电压调整,使外围系统集成变得快速而简单。微小的体积、极低的功耗,使DHT9x成为各类应用的首选。DHT9x提供4针单排引脚封装,易于集成与替换。3.材质传感器采用环氧LCP(液晶高分子聚合物)帽,下层为FR4(环氧树脂玻璃纤维板)。插针采用铜/铍合金制作,外层镀有镍和金。传感器符合ROHS和WEEE标准,因此不受Cr(6+),PBB,PBDE的影响。3.4.2硬件连接图如图3.3所示。采用数字式温湿度传感器DHT90,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,另外SCK端用于微处理器与DHT90之间的通讯同步,我们这里采用AT89S52的P3.7与DHT90的SCK相连,用P3.6与DATA端相连,Vcc接电源,Vss接地。图3.3图3.3DHT90温湿度采集电路设计3.4.3DHT接口说明表3.1DHT90引脚结构PinNameComment1SCK时钟信号2VDD电源3GND地4DATA数据输出3.4.4电源引脚(VDD,GND)DHT90的供电电压为2.4-5.5V,建议供电电压为3.3V。DHT9x的串行接口,在传感器信号的读取及电源损耗方面,都做了优化处理;传感器不能按照I2C协议编址,但是,如果I2C总线上没有挂接别的元件,传感器可以连接到I2C总线上,但单片机必须按照传感器的协议工作。SCK用于微处理器与DHT90之间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小SCK频率。DATA三态门用于数据的读取。DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。为避免信号冲突,微处理器应驱动DATA在低电平。需要一个外部的上拉电阻(例如:10kΩ)将信号提拉至高电平,上拉电阻通常已包含在微处理器的I/O电路中。详细的I/O特性,参见表3.2。表3.2DHT90DC特性,Rp代表上拉电阻,Iol表示低电平输出电流参参数条件mintypmaxUnits供电DCV供电电流测量0.551mA平均11228μA休眠0.31.5μA低电平输出电压Iol<4mA0250mV高电平输出电压Rp<25kΩ%90100%VDD低电平输入电压下降沿%020%VDD高电平输入电压上升沿80%100%VDD焊盘上的输入电流1μA输出电流on4mA三态门(off)1020μA3.4.5电气特性电气特性,如能耗,低、高电平,输入、输出电压等,都取决于电源。表2详细解释了DHT90的电气特性,若没有标明,则表示供电电压为5V。若想与传感器获得最佳通讯效果,请设计时严格遵照表3.3与图3.4的条件。表3.3DHTI/O信号特性参数条件Min.Typ.Max.UnitsFSCKSCK频率VDD>4.5V00.15MHzVDD<4.5V00.11MHzTSCKxSCK高/低时间100nsTR/TFSCK升/降时间1200*nsTFODATA下降时间OL=5pF3.51020nsOL=100pF3040200nsTRODATA上升时间******nsTVDATA有效时间200250***nsTSUDATA设定时间100150***nsTHODATA保持时间1015****ns图3.4图3.4DHT90时序图3.4.6信息采集的相对误差湿度误差如图3.5所示,温度误差如图3.6所示:图3.525℃时传感器的最大相对湿度误差图3.6最大温度误差3.5显示模块的设计液晶显示模块提供两种界面来连接微处理机:8位并行及串行两种连接方式。具有多种功能:光标显示,画面移位,睡眠模式等。FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。基本特性:低电源电压(VDD:+3.0--+5.5V)显示分辨率:128×64点内置汉字字库,提供8192个16×16点阵汉字(简繁体可选)内置128个16×8点阵字符2MHZ时钟频率显示方式:STN、半透、正显驱动方式:1/32DUTY,1/5BIAS视角方向:6点背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10通讯方式:串行、并口可选内置DC-DC转换电路,无需外加负压无需片选信号,简化软件设计工作温度:0℃-+55℃,存储温度:-20℃-+60℃3.5.1LCD12864引脚说明表3.4LCD-12864引脚说明引脚号引脚名称方向功能说明1VSS-模块的电源地2VDD-模块的电源正端3V0-LCD驱动电压输入端4RS(CS)H/L并行的指令/数据选择信号;串行的片选信号5R/W(SID)H/L并行的读写选择信号;串行的数据口6E(CLK)H/L并行的使能信号;串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并/串行接口选择:H-并行;L-串行16NC空脚17/RSTH/L复位低电平有效18NC空脚LED_A - 背光源正极(LED+5V)LED_K - 背光源负极(LED-OV)3.5.2主要技术参数表3.5LCD12864的工作参数显示容量:128X64点阵点尺寸:0.48X0.48(WXH)工作电压:4.8~5.2V模块最佳工作电压:5.0V工作电流:4.0mA(5.0V)背光源颜色:白色(5.0V)背光源工作电流:<150.0mA蓝膜负显STN3.5.3显示模块硬件连接图图3.7LCD12864液晶显示电路3.6报警电路的设计在微型计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。其方法就是把计算机采集的数据或经过计算机进行数据处理、数字滤波,标度变换之后,与该参数上下限给定值进行比较,如果高于上限值(或低于下限值)则进行报警,否则就作为正常的采样值,进行显示和控制。本设计采用声光报警电路。蜂鸣音报警接口电路的设计只需购买市售的压电式蜂鸣器,然后通过单片机AT89S52的1根口线经驱动器驱动蜂鸣音发声。压电式蜂鸣器约需10mA的驱动电流,可以使用TTL系列集成电路7406或7407低电平驱动,也可以用一个晶体三极管驱动。在图3.8中,蜂鸣器的正极接电源,负极接单片机的P3.0口。报警电路中加了两个发光二极管,一个与单片机的P2.5连接,另一个与单片机的P2.6连接。温湿度传感器采集来的温度,湿度与单片机设定的温度,湿度值相比较,只要其中任何一个过限,蜂鸣器就会发出蜂鸣音报警。当温度大于设定值,其中一只二极管发光;当湿度大于设定值,另一只发光二极管亮。这样便于观测是哪一个量过限。使得工作人员的工作量减少。图3.8是一个简单的使用三极管驱动的峰鸣音报警电路:图3.8图3.8报警电路本设计是为在温湿度测量中对温湿度的上下限超出时的提示报警,接口位于单片机AT89S52的P3.0口,但温湿度过限时,P3.0口被置0,本系统开始工作。4软件系统设计4.1主程序软件设计整个系统的软件设计采用模块化编程,主要的功能子程序有:系统初始化,DHT90的初始化,LCD-12864的初始化。主程序流程图如图4.1所示DHT90DHT90通讯重启蜂鸣器报警开始初始化读取温湿度线性拟合数据否是读取成功否?LCD12864显示数据温度湿度是否过限?显示温度湿度值是否图4.1主程序流程图4.2DHT90软件系统设计4.2.1DHT90温湿度采集的主要程序//**************启动DHT90*****************//voidD_start(){D_date=1;D_sck=0;_nop_();D_sck=1;_nop_();D_date=0;_nop_();D_sck=0;_nop_();_nop_();_nop_();D_sck=1;_nop_();D_date=1;_nop_();D_sck=0;}//***************************DHT复位**********************//voids_connectionreset(){uchari;D_date=1;D_sck=0;for(i=0;i<9;i++){D_sck=1;D_sck=0;}D_start();}//*************向DHT90写命令******************//ucharwr_DHTcom(ucharcomd){uchari,error=0;D_start();for(i=8;i>0;i--){D_date=comd&0x80;_nop_();D_sck=1;_nop_();_nop_();D_sck=0;comd<<=1;}D_date=1;D_sck=1;error=D_date;_nop_();_nop_();D_sck=0;D_date=1;returnerror;}//************读DHT90值***********************//intread_DHTdat(){uchari,val=0;D_date=1;for(i=0x80;i>0;i/=2){D_sck=1;if(D_date){val|=i;}_nop_();_nop_();_nop_();D_sck=0;}_nop_();_nop_();D_date=0;D_sck=1;_nop_();_nop_();D_sck=0;_nop_();_nop_();D_date=1;returnval;}//**********************************************//intqz(){uintvalH,valL,val;valH=read_DHTdat();valL=read_DHTdat();val=valH<<8|valL;returnval;}4.2.2DHT90测量流程图发发送启动传输发送测量指令判断指令?令?读出测量值测量值线性化NY显示测量值设置传感器分辨率状发送测量指令图4.2DHT90测量时序图4.2.3启动传感器指令首先,选择供电电压后将传感器通电,上电速率不能低于1V/ms。通电后传感器需要11ms进入休眠状态,在此之前不允许对传感器发送任何命令。表4.1DHT90命令集命令代码预留0000x温度测量00011湿度测量00101读状态寄存器00111写状态寄存器00110预留软复位,复位接口、清空状态寄存器,0101x-1110x即清空为默认值,下一次命令前等待至少11ms111104.2.4发送命令用一组“启动传输”启动,来表示数据传输的初始化。它包括:当SCK时钟高电平时DATA翻转为低电平,紧接着SCK变为低电平,随后是在SCK时钟高电平时DATA翻转为高电平。图4.3发送命令时序图“启动传输”时序后续命令包含三个地址位,DHT9x会以下述方式表示已正确地接收到指令:在第8个SCK时钟的下降沿之后,将DATA下拉为低电平(ACK位)在第9个SCK时钟的下降沿之后,释放DATA(恢复高电平)。4.2.5测量时序发布一组测量命令(‘00000101’表示相对湿度RH,‘00000011’表示温度T)后,控制器要等待测量结束。这个过程需要大约20/80/320ms,分别对应8/12/14bit测量。确切的时间随内部晶振速度,最多可能有-30%的变化。DHT9x通过下拉DATA至低电平并进入空闲模式,表示测量的结束。控制器在再次触发SCK时钟前,必须等待这个“数据备妥”信号来读出数据。检测数据可以先被存储,这样控制器可以继续执行其它任务在需要时再读出数据。接着传输2个字节的测量数据和1个字节的CRC奇偶校验。Uc需要通过下拉DATA为低电平,以确认每个字节。所有的数据从MSB开始右值有效(例如:对于12bit数据,从第5个SCK时钟起算作MSB,而对于8bit数据,首字节则无意义)。用CRC数据的确认位,表明通讯结束。如果不使用CRC-8校验,控制器可以在测量值LSB后,通过保持确认位SCK高电平,来中止通讯。在测量和通讯结束后,DHT9x自动转入休眠模式。4.2.6通讯复位时序如果与DHT9x通讯中断,下列信号时序可复位串口:当DATA保持高电平时,触发SCK时钟9次或更多,参阅图4.4。在下一次指令前,发送一个“传输启动”时序。这些时序只复位串口,状态寄存器内容仍然保留。图4.4通讯复位时序4.2.7状态寄存器在读状态寄存器或写状态寄存器之后,8位状态寄存器的内容将被读出或写入。状态寄存器写和读如下图4.5,图4.6所示,测量时序如图4.7所示图4.5状态寄存器写图4.6状态寄存器读图4.7测量时序图4.8相对湿度测量时序示例图4.8中所示数值“0000’1001‘0011’0001”=2353=75.79%RH(未包含温度补偿)。4.2.8相对湿度为了补偿湿度传感器的非线性以获取准确数据,请参阅表4.2,建议使用如下公式修正读数 RH CC*SOC*SO2(%RH)linear 1 2 RH 3 RH表4.2湿度转换系数SORHC*1C*2C*312bit-4.00000.0405-2.8000E-68bit-4.00000.6480-7.2000E-4对高于99%的那些测量值则表示空气已经完全饱和,必须被处理成显示值均为100%RH。请注意湿度传感器对电压基本上没有依赖性。图4.9从SORH转化到相对湿度4.2.9相对湿度对于温度依赖性的补偿 RH (T25)*(t1t2*SO)RH true 0C RH linear表4.3温度补偿系数SORHt1t212bit0.010.000088bit0.010.001284.2.10温度转换温度转化公式:Td1d2*SOT表4.4温度转换系数VDDd1(℃)d1(℉)5V-40.1-40.24V-39.8-39.63.5V-39.7-39.53V-39.6-39.32.5V-39.4-38.9SOTd2(℃)d2(℉) 14bit 0.01 0.018 12bit 0.04 0.0724.2.11露点DHT9x不能直接测量露点,但可由温度和湿度值计算出露点。由于湿度与温度经由同一块芯片测量,DHT9x系列产品可以同时实现高质量的露点测量。可以使用多种公式进行露点Td计算,但大多数都很复杂。对于温度范围为-40-50℃,如下的近似计算可得出高精度的露点值,系数请参阅表4.5:RHm*T ln 100%TTT(RH,T)T*ndnRHm*T mln 100%TTn表4.5露点计算参数TemperatureRangeT(0C)NmAbovewater,0-500C243.1217.62Aboveice,-40-00C272.6222.464.3LCD12864软件系统设计4.3.1显示模块主要程序//*************LCD初始化*******************//voidLCD_init(){wr_LCDcom(0x30);delay(1);wr_LCDcom(0x01);delay(1);wr_LCDcom(0x0c);delay(1);}//***********显示子程序********************//voiddisplay(uchar*p){while(*p!='\0'){wr_LCDdat(*p);p++;}}//********************上电显示*****************************//voidsdxs(){wr_LCDcom(0x81);display(L11);wr_LCDcom(0x90);display(L12);wr_LCDcom(0x88);display(L13);wr_LCDcom(0x98);display(L14);}//********************上电显示*****************************//voidprocess(){wr_LCDcom(0x80);display(L21);wr_LCDcom(0x90);display(L22);wr_LCDcom(0x88);display(L23);wr_LCDcom(0x98);display(L24);}4.3.2写数据到模块图4.10LCD写数据时序4.3.3从模块读出数据图4.11LCD读数据时序4.3.4串行连接时序图图4.12LCD串行连接时序4.4计算显示的主要程序和报警程序voidDHT90_display(){L23[9]=table[T/100];//显示温度百位L23[10]=table[(T%100)/10];//显示温度十位L23[11]=table[(T%100)%10];//显示温度个位L23[13]=table[((T*10)%100)%10];//显示温度小数点后第一位L24[9]=table[H/1000];//显示湿度百位L24[10]=table[(H%1000)/100];//显示湿度十位L24[11]=table[(H%100)/10];//显示湿度个位L24[13]=table[H%10];}//显示湿度小数点后第一位//*******************报警******************//voidD_measur(){floatc1=-4.0;floatc2=+0.405;floatc3=-0.0000028;floatd1=-40.1;floatd2=+0.01;T=d1+d2*zhT;H=c1+c2*zhH-c3*zhH*zhH;if(T>100)T=100;if(H<0.1)H=0.1;if(T>=25.0){Led1=1;Speak=0;}else{Led1=0;}if(H>=1100.0){Led2=1;Speak=0;}else{Led2=0;}if((H<1100.0)&(T<25.0)){Speak=1;5系统调试5.1液晶模块调试液晶显示器是人机界面最关键的部分,能够使我们更加清楚的读取数据。5.1.1显示内容ucharcodeL11[]={"大棚温湿度控制"};ucharcodeL12[]={"韩超"};ucharcodeL13[]={"电气工程系"};ucharcodeL14[]={"自控091"};ucharcodeL21[]={"S:温度:025.0度"};ucharcodeL22[]={"湿度:110.0%"};ucharL23[]={"N:温度:000.0度"};ucharL24[]={"湿度:000.0%"};uchartable[]={'0','1','2','3','4','5','6','7','8','9'};在对显示模块进行调试的过程中发现显示不正常,汉字显示与字符显示不同,LCD-12864每行可以显示16个字符,8个汉字,汉字不能分半显示,由于软件编程时,地址分配有误,使得汉字部分无法显示。经过检查,发现问题后,将地址重新分配,显示部分正确。5.2传感器部分调试在进行温度转换时,由公式计算所得的温度与实际温度有差异,由此我们推测资料所给系数有偏差,经过多次实验,测得正确的系数。资料所给公式:RHCC*SOC*SO2(%RH)linear 1 2 RH 3 RH实验所用公式:RHCC*SOC*SO2(%RH) linear 1 2 RH 3 RH表5.1温度转换系数对照表C1C2C3d1d2资料所给数据-4.0+0.0405-0.0000028-40.1+0.01实验测得数据-4.0+0.405-0.0000028-40.1+0.015.3报警电路调试本次系统设计采用的是声光报警电路,在调试的过程中,发现当温度或者湿度其中之一过限时,二极管亮了一下又灭了。经检查发现未接限流电阻,电压过高,超过了二极管的耐压值。一般而言,忽略二极管的内阻不计,二极管的工作电流一般为10~20mA为宜,而电源电压为5V,经过计算限流电阻的范围为250Ω~500Ω。一般在此范围内的常见的电阻的标称值有470Ω和510Ω,于是,这里我们选用的限流电阻为470Ω。加上限流电阻后,发现二极管发光正常。当温度和湿度其中任何一个过限后,蜂鸣器都会发出声音。这是写在软件程序里的。但是在加上控制信号,温湿度过限后,蜂鸣器不报警。蜂鸣器的控制端口无控制信号输出。经检查发现程序里面蜂鸣器的控制端口电平设置有误,修改后,蜂鸣器工作正常。5.4本系统存在的不足与拓展5.4.1存在不足系统设计时,未能显示实时信息。在一些比较特殊的场合,有时候需要系统显示出各个时间段,比如,早、中、晚的实时信息。而这个系统没有此项功能。5.4.2系统拓展本系统可以添加时钟模块。比如DS1302(串口),DS12887(并口)时钟芯片。可以利用串口与PC机相连接,将采集来的信息在PC机上进行处理。处理方法有:(1)绘制时间—温湿度曲线(2)还可以将该信息发布到WAP上,进行远程操控。添加无线模块。可以添加中、短程无线通信模块,使得系统能够在比较恶劣、危险等不适合人到达的地方进行工作,这样就提高了系统的实用性。

总结三个月的毕业设计,在老师的指导下已经顺利结束了。通过对本课题的研究和设计,从中了解到进行一项工程设计的大体过程,了解了如何根据项目的指标要求,分析能实现的设计方案,并且优选,了解如何通过硬件、软件设计实现这一方案。在设计的过程中,我学到了好多在书本里没有的知识,知道了接手一个新项目时应该如何去考虑它,采取什么样的方法,如何去确定,如何去取舍。我不仅较好的完成了毕业设计的任务要求,而且积累了一些实践经验,具有一定的实用价值。在实践过程中,发觉自己过去所学在实际应用中还是远远不够的,且有时软件的理论设计是可行的,但在客观的仿真实践中往往会出现或是人为或是干扰等一系列不可预知的问题。但通过自己不断的查阅资料和询问老师和同学,并不断实践,这样,理论与实际就很好的联系起来,最终克服了困难。这点我感受颇深。最后,这次设计可以说是对自己在大学四年中所学知识的一次总结和检验,所学的东西基本上用到了,从而才觉得原来所学的每门功课都是有联系的,在实际设计与操作中增加了新知识。但是因此也让自己了解到自己的一些薄弱环节,这就促使我必须弥补它们。这对以后的工作学习,也是很有益处的。总之,这次设计从软件编写到硬件功能的理论分析论证,我倾注了大量的时间和心血。真是曾经为程序的编写而冥思查找过,曾经为自己的知识积累不足而郁闷苦恼过,也曾经为硬件的性能是否最优而犹豫彷徨过,但最终我走过了这一切。我明白了过程的弥足珍贵,更品味到了努力后的喜悦,因为一切的一切,只有走过才会懂。

参考文献何立民.《MCS-51系列单片机应用系统设计系统配置与接口技术》[M].北京:北京航空航天大学出版社,1990.梅丽凤,王艳秋等.《单片机原理及接口技术》[M].北京:清华大学出版社.房德君等.《一种新型单片机综合试验系统》[J].山东工程学院学报,1996(4):15-19.范海涛.《世界设施农业发展现状》[J].农村实用工程技术,2001(1):10-11.陈健,刘九庆.《温室环境工程技术》[M].哈尔滨:东北林业大学出版社,2002:50-10.杜深慧.《温湿度检测装置的设计与实现》[J].华北电力大学,2004:12-15.潘新民.《微型计算机控制技术》[M].电子工业出版社.胡寿松.《自动控制原理》第五版[M].科学出版社.

致谢在学士学位论文即将完成之际,我想向曾经给予我帮助和支持的人表示衷心的感谢!感谢我的母校陕西理工学院,给我提供了这么好的学习和生活环境,在学校学习和生活的日子是我一生中一段难忘的经历!感谢我的导师郭豫荣。本研究及学位论文是在郭豫荣老师的亲切关怀和悉心指导下完成的。她严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。郭老师不仅在学业上给我以精心指导,同时还在思想、生活上给我以无微不至的关怀,在此谨向郭老师致以诚挚的谢意和崇高的敬意。我还要感谢在一起愉快的度过毕业论文小组的同学们,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。同时,我要感谢电气工程系的各位老师,正是由于他们的传道、授业、解惑,让我学到了专业知识,并从他们身上学到了如何求知治学、如何为人处事。另外,感谢电气工程系自控专升本091全体同学的帮助和勉励,同窗之谊和手足之情,我将终生难忘!路漫漫其修远兮,吾将上下而求索。我愿在未来的学习和研究过程中,以更加丰厚的成果来答谢曾经关心、帮助和支持过我的所有领导、老师、同学、和朋友,学无止境。明天,将是我终身学习另一天的开始!在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们!最后,再次对关心、帮助我的老师和同学表示衷心地感谢!

附录A:系统电路图附录B:系统程序清单#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint//***************DHT90端口定义**************************//sbitD_sck=P3^7;sbitD_date=P3^6;//****************LCD端口定义***************0*******//sbitRS=P2^0;sbitRW=P2^1;sbitE=P2^2;sbitPSB=P2^3;sbitRST=P2^5;sbitLed1=P3^2;sbitSpeak=P3^1;sbitLed2=P3^3;//*****************DHT90函数声明************************//voidD_start();ucharwr_DHTcom(ucharcomd);intread_DHTdat();voidD_measur();voidDHT90_display();voids_connectionreset();intqz();//**************LCD函数声明************************//voiddelay(uinta);voidwr_LCDcom(ucharcomd);voidwr_LCDdat(uchardate);voidch_LCDbusy(); voidLCD_init();voiddisplay(uchar*p);voidsdxs();//*************************************//ucharcodeL11[]={"大棚温湿度控制"};ucharcodeL12[]={"韩超"};ucharcodeL13[]={"电气工程系"};ucharcodeL14[]={"自控091"};ucharcodeL21[]={"S:温度:025.0度"};ucharcodeL22[]={"湿度:110.0%"};ucharL23[]={"N:温度:000.0度"};ucharL24[]={"湿度:000.0%"};uchartable[]={'0','1','2','3','4','5','6','7','8','9'};uintT,H;uintzhT,zhH;//longintT;//********************************************************//voiddelay(uinta){uintb;for(;a>0;a--)for(b=0;b<125;b++){;}}//********写指令****RS=0,RW=0,E高脉冲******//voidwr_LCDcom(ucharcomd){ch_LCDbusy();RS=0;RW=0;P0=comd;E=1;delay(5);E=0;}//****写数据***RS=1RW=0E高脉冲***********//voidwr_LCDdat(uchardate){ch_LCDbusy();RS=1;RW=0;P0=date;E=1;delay(5);E=0;}//******************检测忙碌*************//voidch_LCDbusy(){P0=0xff;RS=0;RW=1;E=1;while(P0==0x80);E=0;}//*************LCD初始化*******************//voidLCD_init(){wr_LCDcom(0x30);delay(1);wr_LCDcom(0x01);delay(1);wr_LCDcom(0x0c);delay(1);}//***********显示子程序********************//voiddisplay(uchar*p){while(*p!='\0'){wr_LCDdat(*p); p++;}}//********************上电显示*****************************//voidsdxs(){wr_LCDcom(0x81);display(L11);wr_LCDcom(0x90);display(L12);wr_LCDcom(0x88);display(L13);wr_LCDcom(0x98);display(L14);}//********************上电显示*****************************//voidprocess(){wr_LCDcom(0x80);display(L21);wr_LCDcom(0x90);display(L22);wr_LCDcom(0x88);display(L23);wr_LCDcom(0x98);display(L24);} //**************启动DHT90*****************//voidD_start(){D_date=1;D_sck=0;_nop_();D_sck=1;_nop_();D_date=0;_nop_();D_sck=0;_nop_();_nop_();_nop_();D_sck=1;_nop_();D_date=1;_nop_();D_sck=0;}//***************************DHT复位**********************//voids_connectionreset(){uchari;D_date=1;D_sck=0;for(i=0;i<9;i++){D_sck=1;D_sck=0;}D_start();}//*************向DHT90写命令******************//ucharwr_DHTcom(ucharcomd){uchari,error=0;D_start();for(i=8;i>0;i--){ D_date=comd&0x80; _nop_(); D_sck=1; _nop_(); _nop_(); D_sck=0;comd<<=1;}D_date=1;D_sck=1;error=D_date;_nop_();_nop_();D_sck=0;D_date=1; returnerror;}//************读DHT90值***********************//intread_DHTdat(){uchari,val=0;D_date=1;for(i=0x80;i>0;i/=2){D_sck=1;if(D_date){val|=i;}_nop_();_nop_();_nop_();}_nop_();_nop_();D_date=0;D_sck=0;D_sck=1;_nop_();_nop_();D_sck=0; _nop_(); _nop_(); D_date=1;returnval;}//**********************************************//intqz(){uintvalH,valL,val;valH=read_DHTdat();valL=read_DHTdat();val=valH<<8|valL;returnval;}//*******************计算实际湿度******************//voidD_measur(){floatc1=-4.0;floatc2=+0.405;floatc3=-0.0000028;floatd1=-40.1;floatd2=+0.01;T=d1+d2*zhT;H=c1+c2*zhH-c3*zhH*zhH;if(T>100)T=100;if(H<0.1)H=0.1;if(T>=25.0){Led1=1;Speak=0;}else{Led1=0;}if(H>=1100.0){Led2=1;Speak=0;}else{Led2=0;}if((H<1100.0)&(T<25.0)){Speak=1;}}//************显示DTH90值****************************//voidDHT90_display(){L23[9]=table[T/100];//显示温度百位L23[10]=table[(T%100)/10];//显示温度十位L23[11]=table[(T%100)%10];//显示温度个位L23[13]=table[((T*10)%100)%10];//显示温度小数点后第一位L24[9]=table[H/1000];//显示湿度百位L24[10]=table[(H%1000)/100];//显示湿度十位L24[11]=table[(H%100)/10];//显示湿度个位L24[13]=table[H%10];//显示湿度小数点后第一位} //*****************************************************//voidmain(){longk;ucharjcT=0;ucharjcH=0;P3=0x00;Speak=1;RST=0;delay(10);RST=1;delay(2);PSB=1;LCD_init();wr_LCDcom(0x80);wr_LCDdat(0x02);sdxs();delay(2000);delay(50);s_connectionreset();D_start();wr_LCDcom(0x01);while(1){jcH=wr_DHTcom(0x05);if(jcH==1){jcH=wr_DHTcom(0x05);}for(k=0;k<9000000;k++)if(D_date==0)break;zhH=qz();delay(1000);jcT=wr_DHTcom(0x03);if(jcT==1){jcT=wr_DHTcom(0x03);}for(k=0;k<9000000;k++)if(D_date==0)break;zhT=qz();delay(10);D_measur();delay(10);DHT90_display();process();delay(1000);s_connectionreset();}英文文献及其翻译AT89S52英文资料DescriptionTheAT89s52isalow-power,high-performanceCMOS8-bitmicrocomputerwith8KbytesofFlashprogrammableanderasablereadonlymemory(PEROM).ThedeviceismanufacturedusingAtmel’shigh-densitynonvolatilememorytechnologyandiscompatiblewiththeindustry-standard80C51and80C52instructionsetandpinout.Theon-chipFlashallowstheprogrammemorytobereprogrammedin-systemorbyaconventionalnonvolatilememoryprogrammer.Bycombiningaversatile8-bitCPUwithFlashonamonolithicchip,theAtmelAT89s52isapowerfulmicrocomputerwhichprovidesahighly-flexibleandcost-effectivesolutiontomanyembeddedcontrolapplications.PinConfigurations-TheAT89s52providesthefollowingstandardfeatures:8KbytesofFlash,256bytesofRAM,32I/Olines,three16-bittimer/counters,asix-vectortwo-levelinterruptarchitecture,afullserialport,on-chiposcillator,andclockcircuitry.Inaddition,theAT89s52isdesignedwithlogicforoperationdowntozerofrequencyandsupportstwosoftwareselectablepowersavingmodes.TheIdleModestopstheCPUwhileallowingtheRAM,timer/counters,serialport,andinterruptsystemtocontinuefunctioning.ThePower-downmodesavestheRAMcontentsbutfreezestheoscillator,disablingallotherchipfunctionsuntilthenexthardwarereset.PinDescription-·VCCSupplyvoltage.·GNDGround.·Port0Port0isan8-bitopendrainbi-directionalI/Oport.Asanoutputport,eachpincansinkeTTLinputs.When1sarewrittentoport0pins,thepinscanbeusedashighimpedanceinputs.Port0canalsobeconfiguredtobethemultiplexedloworderaddress/databusduringaccessestoexternalprogramanddatamemory.Inthismode,P0hasinternalpullups.Port0alsoreceivesthecodebytesduringFlashprogrammingandoutputsthecodebytesduringprogramverification.Externalpullupsarerequiredduringprogramverification.·Port1Port1isan8-bitbi-directionalI/Oportwithinternalpullups.ThePort1outputbufferssink/sourcefourTTLinputs.When1sarewrittentoPort1pins,theyarepulledhighbytheinternalpullupsandcanbeusedasinputs.Asinputs,Port1pinsthatareexternallybeingpulowwillsourcecurrent(IIL)becauseoftheinternalpullups.Inaddition,P1.0andP1.1canbeconfiguredtobethetimer/counter2externalcountinpu(P1.0/T2)andthetimer/counter2triggerinput(P1.1/T2EX),respectively,asshowninthefollowingtable.Port1alsoreceivesthelow-orderaddressbytesduringFlashprogrammingandverification. PortPin AlternateFunctionP1.0 T2(externalcountinputtoTimer/Counter2),c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论