基于单片机的大棚温湿度控制系统_第1页
基于单片机的大棚温湿度控制系统_第2页
基于单片机的大棚温湿度控制系统_第3页
基于单片机的大棚温湿度控制系统_第4页
基于单片机的大棚温湿度控制系统_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

摘要温室大棚是设施农业的重要组成局部,大棚测控系统是实现大棚自动化、科学化的根本保证。通过对监测数据的分析,结合作物生长规律,控制环境条件,使作物到达优质、高产、高效的栽培目的。计算机应用技术的开展,也使得用计算机控制的方面也涉及到各个领域,其中在大棚内用单片机控制温度、湿度是应用于实践的主要方面之一。对于蔬菜大棚来说,最重要的一个管理因素是温度和湿度等控制。本设计是一个专门为温室大棚温湿度测量控制而设计的系统。通过对系统的硬件局部和软件局部设计来到达监控要求。硬件局部实现了对温湿度传感器模块、显示模块、控制模块的设计;软件局部主要根据系统的设计思想设计出了主程序和子程序流程图,并通过程序实现。在系统设计过程中充分考虑到性价比,选用价格低、性能稳定的元器件。通过实践证明,系统具有性能好、操作方便等优点,能实现对温湿度等的显示、调节和控制。系统在其它领域还具有一定的推广价值。关键词:大棚;温度;湿度;传感器ABSTRACTGreenhouseisanimportantcomponentofprotectedagriculture.Measuringandcontrollingsystenisthebasisofthemanagementautomationinthegreenhouse.Withthegrowthrulesanalyzingmeasurementdataandcontrollingcircumstancecondition.Itmakesgreenhousebetter,andmoreproductiveandhighquality.Withthedevelopmentofcomputerapplicationtechnology,thecomputer-controlledareasarealsoinvolved,theplastictemperatureusingSCMandhumidityisoneofthemainaspectsusedinpractice.Forvegetableshedspeaking,oneofthemostimportantmanagementfactoristhetemperatureandhumiditycontrol.The

thesisis

aboutanintelligentsystemdesignedforcontrollingthetemperatureandhumidityofagreenhouse.Itcanmeetthedemandofmonitoringthroughthedesignofhardwareandthatofsoftwareindetails.Theformerismoreimportantinthisdissertation,includingtheintroductionofsensorofmeasuringtemperatureandhumidity,demonstratingmodeofdata,themodeofcontrolandtheconnectingpartofthechangingcolumn.Andaccordingtothedesignthoughtsthelattershowstheflowchartofthemainprogramandthesubprogram,realizedbyprogram.Thisthesischoosethedecicesasfullconsiderationoftherationbetweenprformanceandcostaspossible.Thesystemadoptsquiteanewintegratedcircuit,whichmakesitfunctionbetterandrunmoreconvenientlywhenputintopractice.Furthermore,notonlycanitachievethegoalsofmanifestingandregulatingthetemperature,butalsoit

can

becontrolled.Andithasmuchofvaluetoapplyandpopularizeinotherfields.KEYWORDS:Vegetable;Temperature;Humidity;Sensor目录TOC\o"1-3"\h\u3031摘要 I478前言 158441绪论2263021.1课题的选题背景2119821.2课题研究的意义2170601.3本论文主要研究内容2186261.4系统的工作原理简介383142系统总体方案设计436582.1系统总框图431742.2方案选择420792.2.1单片机的选择432592.2.2传感器的选择5188812.3.2显示器选择方案6234353系统硬件电路的设计739103.1系统硬件概述7117103.2主控模块设计716833.2.1单片机引脚介绍819463.2.2单片机最小系统1186183.3DHT11传感器模块设计13233783.3.1DHT11传感器简介1356963.3.2DHT11传感器模块电路设计15285353.4液晶显示模块设计16165723.4.1液晶显示屏简介1613763.4.2液晶显示模块电路原理图18247163.5继电器模块1972733.6阀值设定模块20262734系统软件程序的设计2373604.1液晶显示模块设计24208634.2传感器模块设计25274275系统分析与调试27148866结论2932456致谢 30660参考文献 313592附录A3217232附录B33前言改革开放以来,我国经济的迅速增长,使得农业的研究和应用技术越来越受到重视,特别是温室大棚已经成为高效农业的一个重要组成局部。现代化农业生产中的重要一环就是对农业生产环境的一些重要参数进行监测和控制。例如:空气的温度、湿度、二氧化碳含量、土壤的含水量等。在现代化农业生产中,以蔬菜大棚为代表的现代农业设施在现代化农业生产中发挥着巨大的作用。大棚内的温度、湿度与二氧化碳含量等参数,直接关系到蔬菜和水果的生长。国外的温室设施己经开展到比拟完备的程度,并形成了一定的标准,但是价格非常昂贵,缺乏与我国气候特点相适应的测控软件。当今大多数对大棚温度、湿度、二氧化碳含量的监测与控制都采用人工管理,这样不可防止的有测控精度低、劳动强度大及测控不及时等弊端,容易造成不可弥补的损失,结果不但大大增加了本钱,浪费了人力资源,而且很难到达预期的效果。为了实现高效农业生产的科学化并提高农业研究的准确性,推动我国农业的开展,必须大力开展农业设施与相应的农业工程,科学合理地调节大棚内温度、湿度以及二氧化碳的含量,使大棚内形成有利于蔬菜、水果生长的环境。目前,随着蔬菜大棚的迅速增多,人们对其性能要求也越来越高,特别是为了提高生产效率,对大棚的自动化程度要求也越来越高。温室大棚是植物栽培生产中必不可少的设施之一,温湿度是衡量温室大棚的最重要的指标,它直接影响到栽培作物的的生长和产量,为了能给作物提供一个适宜的生长环境,首要问题是加强温室内的温湿度的监测。因此,为了实现高效农业的科学化和研究性,推动我国农业开展,解决我国农民普遍收入低的问题,缩小城乡差距,推动全面小康社会,迫切需要价格适中的、自动化程度高的农业设备。由于单片机及各种电子器件性价比的迅速提高,使得本钱低性能稳定的这种要求变为可能。本设计是针对这一问题,设计能够实现温湿度上限设定、自动监测、显示和报警等多功能的温湿度测控系统。该设计系统还可以推广到其他领域。1绪论1.1课题的选题背景温度、湿度和人类的生产、生活有着密切的关系,同时也是工业生产中最常见最根本的工艺参数,例如机械、电子、石油、化工等各类工业中广泛需要对温度湿度的检测与控制。并且随着人们生活水平的提高,人们对自己的生存环境越来越关注。而空气中温湿度的变化与人体的舒适度和情绪都有直接的影响,所以对温度湿度的检测及控制就非常有必要了。1.2课题研究的意义STC89C52单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为温湿度控制系统的实力也很多。使用STC89C52单片机能够实现温湿度全程的自动控制,而且STC89C52单片机易于学习掌握,性价比高。使用STC89C52型单片机设计温湿度控制系统,可以即时精确的反响温室内的温度以及湿度的变化。完成诸如升温到特定的温度、降温到特定的温度。在温度上下限范围内保持恒温等多种控制方式,在湿度控制方面也是如此。将此系统应用到温室当中无疑为植被生长提供了更加适宜的环境。对于大棚种植和花圃、花卉栽培,必须在某些特定环境安装温湿度装置对其进行监控。本系统可以及时、精确的反映室内的温度以及湿度的变化,能够满足温湿度的控制要求。1.3本论文主要研究内容本系统所要实现的功能是:1.温湿度实时检测及显示。通过LCD1602实时地显示传感器DHT11检测到的温湿度值,并且固定时间〔2s〕检测更新显示一次。2.报警阈值的手动设置。通过四个按键实现温湿度阈值的设置,使得系统更加人性化、智能化,具有更高的实用价值。3.当温湿度超出阈值时能自动开启相应的继电器驱动负载。通过小灯指示哪一路工作,以提醒用户。阈值可以通过AT24C02存储,实现断电保存。4.系统主要可以应用在温室大棚的智能控制,当温度超限通风降温;当湿度超限可以抽湿的改良措施。1.4系统的工作原理简介总体来说,本次设计主要涉及了温湿度的测量、显示以及实现简单控制。硬件方面有五个模块,即STC89C52单片机主控模块、传感器模块、LCD1602液晶显示模块、继电器模块以及阈值设置模块。传感器模块使用的是DHT11数字温湿度传感器。通过DHT11检测出当前环境下的温湿度,将所测数据交给STC单片机进行分析和处理,并分别存入不同数组以便显示时候用,本系统每间隔2s采集一次数据送入单片机。本系统采用的是继电器驱动负载,因此无论温度还是湿度超出范围继电器均可以驱动负载工作,及时启用降温风扇以及抽湿风扇来有效的调整大棚等应用场所内的温湿度。2系统总体方案设计2.1系统总框图硬件主要以STC89C52型单片机为核心,通过LCD1602实时地显示传感器DHT11检测到的温湿度值,阈值可以通过AT24C02存储,实现断电保存。过阈相应的报警驱动。本研究设计的温湿度控制器框图如图2-1所示。图2-1温湿度控制器方框图2.2方案选择2.2.1单片机的选择方案一:AT89C52是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。其片内的8K程序存储器是FLASH工艺的,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护我们的劳动成果。再者,AT89C52目前的售价比8031还低,市场供给也很充足。AT89C52可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的本钱。只要程序长度小于8K,四个I/O口全部提供给用户。可用5V电压编程,而且擦写时间仅需lOms。AT89C51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。PO口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。方案二:STC89C52系列单片机的指令系统和AT89C52系列的完全兼容,但实际操作起来却存在很多问题:〔1〕AT89C52不带ISP下载,要用下载器才行,STC89C52可以用你的USB转串口下载,下载软件可以到STC厂家网上去下。〔2〕STC单片机执行指令的速度很快,大约是AT的3-30倍,尽管快是好事,但这样一来,你在AT上好使的程序在STC上不一定好用,最典型的例子就是那些对时序有严格要求的模块,用STC时注意得加长延时,大约是AT的10—30倍就差不多,这一点自己调试就知道了。〔3〕STC单片机对工作环境的要求比拟低,电压低于5伏时仍然正常工作,甚至3伏到4伏之间都还可以工作,然而这样的环境下AT肯定不行了,所以当一个系统用STC单片机好用,但用AT的单片机不工作时,直接查最小系统,看单片机的供电是否正常。比拟这两种方案,由于在学校期间学过数字电路、单片机原理、C语言程序设计,综合考虑单片机的各局部资源和作为学生能够获得的资源,经过比照此次设计要求,我选择用STC系列芯片完成。而且学校也提供了相应的硬件操作平台,实际操作起来比拟方便,故STC为更合理的选择。本系统选择STC89C52单片机作为主控芯片。足够本设计运行,且价格廉价,下载程序方便。2.2.2传感器的选择方案一:选用DS18B20温度传感器作为温度检测模块。DS18B20是一线式数字温度传感器。具有独特的单线式接口方式。测量范围在—55℃~125℃,—10℃~85℃,误差范围在-\+0.5℃。最高精度可达0.0625℃。HS1101是电容式湿度传感器。可测量相对湿度范围在0%~100%RH。误差为-\+2%RH。方案二:选用DHT11作为设计的温湿度检测模块。DHT11是一款集成型的数字温湿度一体传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。测量范围20%~90%RH,0℃~50℃。测温精度为-\+2℃,测湿精度为-\+5%RH。完全符合本次毕业设计的要求。经上述分析,方案一虽然精度更精确。却稍显复杂。方案二即便不能实现方案一的高精度测量。却也能满足设计要求。且简便易行。可靠稳定。具有超高的性价比。应选择方案二。2.3.2显示器选择方案方案一:采用12864液晶显示屏。液晶显示模块是128×64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置8192个中文汉字〔16X16点阵〕、128个字符〔8X16点阵〕及64X256点阵显示RAM〔GDRAM〕。可与CPU直接接口,提供两种界面来连接微处理机:8-位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式等。方案二:采用LCD1602液晶显示屏。LCD1602A是一种工业字符型液晶,能够同时显示16x02即32个字符。〔16列2行〕。1602只能显示字母、数字和符号能显示16*2个字符,但存放器不止32个,有一些显示效果,如字符一个个显示、字符从左到右或从右到左显示等等,显示效果简单。总结:在编程使用方面,两者难度差不多,原理差不多,都是写指令、写地址、写数据等等。当然12864液晶屏显示更全面、字符更多。相比于1602液晶屏、12864能更形象具体的实现显示功能。不过1602液晶屏也能实现设计的要求。网上买比拟廉价,最低的六块钱左右。而12864液晶显示屏最廉价的也要四十块钱。从造价方面考虑,当然是价格低廉的优先。而LCD1602A就是最好的选择。3系统硬件电路的设计3.1系统硬件概述此次的毕业设计主要由五个大的模块构成,分别是主控模块、传感器模块、LCD液晶显示模块、继电器模块以及阈值设置模块。其中主控模块是此次毕业设计的核心模块,主要是指STC89C52芯片,它控制整个系统的运行,利用其各个口分别控制其他模块,使其他模块能够成为一个整体,实现功能的需要,从DHT11温湿度传感器中读入温度和湿度,在液晶屏上即时显示。液晶屏上同时显示温湿度上限值,该上限值保存外外部EEPROM存储器中,掉电不失,并且可以通过四只按键上调或下调。当温度或湿度值超过上限值时,报警信号点亮相应报警灯。该报警信号可以通过三极管驱动继电器,以控制外部风机或制冷器。3.2主控模块设计单片微型计算机是随着微型计算机的开展而产生和开展的。自从1975年美国德克萨斯仪器公司的第一台单片微型计算机〔简称单片机〕TMS-1000问世以来,迄今为止,单片机技术已成为计算机技术的一个独特分支,单片机的应用领域也越来越广泛,特别是在工业控制中经常遇到对某些物理量进行定时采样与控制的问题,在仪器仪表智能化中也扮演着极其重要的角色。如果将8位单片机的推出作为起点,那么单片机的开展历史大致可以分为以下几个阶段:第一阶段〔1976—1978〕:单片机的探索阶段。以Intel公司的MCS-48为代表。MCS-48的推出是在工控领域的探索,参与这一探索的公司还有Motorola、Zilog等。都取得了满意的效果。这就是SCM的诞生年代,“单片机〞一词即由此而来。第二阶段〔1978—1982〕:单片机的完善阶段。Intel公司在MCS-48根底上推出了完善的、典型的单片机系列MCS-51。它在以下几个方面奠定了典型的通用总线型单片机体系结构。〔1〕完善的外部总线。MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有多机通信功能的串行通信接口。〔2〕CPU外围功能单元的集中管理模式。〔3〕表达工控特性的地址空间及位操作方式。〔4〕指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。第三阶段〔1982—1990〕:8位单片机的稳固开展及16位单片机的推出阶段,也是单片机向微控制器开展的阶段。Intel公司推出的MCS-96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,表达了单片机的微控制器特征。第四阶段〔1990—〕:微控制器的全面开展阶段。随着单片机在各个领域全面、深入地开展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。单片机是在集成电路芯片上集成了各种元件的微型计算机,这些元件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时/计数器、中断系统、时钟部件的集成和I/O接口电路。由于单片机具有体积小、价格低、可靠性高、开发应用方便等特点,因此在现代电子技术和工业领域应用较为广泛,在智能仪表中单片机是应用最多、最活泼的领域之一。在控制领域中,现如今人们更注意计算机的低本钱、小体积、运行的可靠性和控制的灵活性。在各类仪器、仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,提高计算机的运算速度,简化仪器仪表的硬件结构,提高其性能价格比。3.2.1单片机引脚介绍单片机主要特点:〔1〕有优异的性能价格比。〔2〕集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性和抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。〔3〕控制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。〔4〕低功耗、低电压,便于生产便携式产品。〔5〕外部总线增加了IIC〔Inter-IntegratedCircuit〕及SPI(SerialPeripheralInterface)等串行总线方式,进一步缩小了体积,简化了结构。〔6〕单片机的系统扩展和系统配置较典型、标准,容易构成各种规模的应用系统。优异的性能价格比。1〕集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合于在恶劣环境下工作。此外,程序多采取固化形式也可以提高可靠性。2〕控制功能强。为了满足工业控制要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。单片机的系统扩展、系统配置较典型、标准,容易构成各种规模的应用系统。VCC:STC89C52电源正端输入,接+5V。GND:电源地端。XTAL1:单芯片系统时钟的反相放大器输入端。XTAL2:系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间参加一20PF的小电容,可以使系统更稳定,防止噪声干扰而死机。RESET:STC89C52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能存放器之内容均被设成状态,并且至地址0000H处开始读入程序代码而执行程序。EA/Vpp:"EA"为英文"ExternalAccess"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码〔存于外部EEPROM中〕来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用8751内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压〔Vpp〕。ALE/PROG:ALE是英文"AddressLatchEnable"的缩写,表示地址锁存器启用信号。STC89C52可以利用这支引脚来触发外部的8位锁存器〔如74LS373〕,将端口0的地址总线〔A0~A7〕锁进锁存器中,因为STC89C52是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。PSEN:此为"ProgramStoreEnable"的缩写,其意为程序储存启用,当STC89C52被设成为读取外部程序代码工作模式时〔EA=0〕,会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。STC89C52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。PORT0〔P0.0~P0.7〕:端口0是一个8位宽的开路汲极〔OpenDrain〕双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口〔P1、P2、P3〕那么不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。PORT2〔P2.0~P2.7〕:端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,假设将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,假设是在STC89C52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了。PORT1〔P1.0~P1.7〕:端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LSTTL负载,同样地假设将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。PORT3〔P3.0~P3.7〕:端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分配如下:P3.0:RXD,串行通信输入。P3.1:TXD,串行通信输出。P3.2:INT0,外部中断0输入。P3.3:INT1,外部中断1输入。P3.4:T0,计时计数器0输入。P3.5:T1,计时计数器1输入。P3.6:WR:外部数据存储器的写入信号。P3.7:RD,外部数据存储器的读取信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,那么在此期间外部程序存储器〔0000H-FFFFH〕,不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。单片机引脚图如图3-1所示:图3-1单片机引脚图3.2.2单片机最小系统单片机芯片内还有一项主要内容就是并行I/O口。STC89C51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,它们已被归入专用存放器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。单片机的4个I/O口都是8位双向口,这些口在结构和特性上是根本相同的,但又各具特点。STC89C51单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二是外部时钟方式。在单片机内部有一振荡电路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体〔简称晶振〕,就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图中电容C1和C2的作用是稳定频率和快速起振,电容值在5-30pF,典型值为30pF。晶振CYS的振荡频率范围在1.2-12MHz间选择,典型值为12MHz和11.0592MHz。当在STC89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作〔假设该引脚持续保持高电平,单片机就处于循环复位状态〕。复位电路通常采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。时钟频率用6MHZ时C取22uF,R取1KΩ。除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经过电阻与电源Vcc接通而实现的。最小系统图如图3-2所示:图3-2单片机最小系统原理图3.3DHT11传感器模块设计3.3.1DHT11传感器简介DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最正确选那么。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。DHT11传感器实物图如下列图3-3所示:图3-3DHT11传感器实物图〔1〕引脚介绍:Pin1:(VDD),电源引脚,供电电压为3~5.5V。Pin2:〔DATA〕,串行数据,单总线。Pin3:〔NC〕,空脚,请悬浮。Pin4〔VDD〕,接地端,电源负极。〔2〕接口说明:建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用适宜的上拉电阻。如下列图3-4所示:图3-4DHT11典型应用电路〔3〕数据帧的描述:DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数局部和整数局部,具体格式在下面说明,当前小数局部用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据〞所得结果的末8位。电气特性:VDD=5V,T=25℃,除非特殊标注表3-1DHT11的电气特性参数条件Mintypmax单位供电DC355.5V供电电流测量0.52.5mA平均0.21mA待机100150uA采样周期秒1次注:采样周期间隔不得低于1秒钟。〔5〕时序描述:用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取局部数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,那么DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。3.3.2DHT11传感器模块电路设计DHT11传感器连接STC89C51系列单片机相比照拟简单。单片机的P2.0口用来发收串行数据,即数据口。连接传感器的Pin2〔单总线,串行数据〕。由于测量范围电路小于20米,建议加一个5K的上拉电阻,因此在传感器的Pin2口与电源之间连接一个5K电阻。而传感器的电源端口Pin1和Pin4分别接单片机的VDD和GND端。传感器的第三脚悬浮放置。DHT11传感器原件的电路原理图如下3-5所示:图3-5DHT11电路原理图3.4液晶显示模块设计液晶显示屏简介LCD1602A是一种工业字符型液晶,能够同时显示16x02即32个字符。〔16列2行〕。在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。发光管和LED数码管比拟常用,软硬件都比拟简单。在单片机系统中应用晶液显示器作为输出器件有以下几个优点:由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器〔CRT〕那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。液晶显示器通过显示屏上的电极控制液晶分子状态来到达显示的目的,在重量上比相同显示面积的传统显示器要轻得多。相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。〔1〕引脚说明:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器比照度调整端,接正电源时比照度最弱,接地时比照度最高,比照度过高时会产生“鬼影〞,使用时可以通过一个10K的电位器调整比照度。第4脚:RS为存放器选择,高电平时选择数据存放器、低电平时选择指令存放器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。〔2〕1602LCD的RAM地址映射以及标准字库表LCD1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字符图有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比方大写的英文字母“A〞的代码是01000001B〔41H〕,显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母。它的读写操作、屏幕和光标的操作都是通过指令编程来实现的〔说明:1为高电平,0为低电平〕。指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移。S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平那么无效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示。C:控制光标的开与关,高电平表示有光标,低电平表示无光标。B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线。N:低电平时为单行显示,高电平时双行显示。F:低电平时显示5X7的点阵字符,高电平时显示5x10的点阵字符〔有些模块是DL:高电平时为8位总线,低电平时为4位总线〕。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读出忙信号和光标地址。BF为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙,模块就能接收相应的命令或者数据。指令10:写数据。指令11:读数据。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否那么此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。1602内部显示地址如图3-6所示:图3-61602内部显示地址例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1,所以实际写入的数据应该是01000000B〔40H〕+10000000B(80H)=11000000B(C0H)。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602液晶模块内部的字符发生存储器〔CGROM〕已经存储了160个不同的点阵字符图形,如下列图所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比方大写的英文字母“A〞的代码是01000001B〔41H〕,显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A〞。3.4.2液晶显示模块电路原理图液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。电路中液晶接口图如图3-7所示:图3-71602显示模块3.5继电器模块电磁继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点〔常开触点〕吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点〔常闭触点〕释放。这样吸合、释放,从而到达了在电路中的导通、切断的目的。对于继电器的“常开、常闭〞触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点〞;处于接通状态的静触点称为“常闭触点〞。继电器一般有两股电路,为低压控制电路和高压工作电路。电路中继电器室通过PNP型三极管驱动,当阀值超过设定时,单片时机由高电平跳变成低电平,三极管导通继电器吸合,继电器起开关作用,可以驱动负载。硬件电路如图3-8所示:图3-8按键控制电路图3.6阈值设定模块温湿度阈值存储在EEPROM芯片AT24C02中,并可以通过K1—K4按键调节并保存,其中K1为温度上限增加,K2为温度上限减小,K3为湿度上限增加,K4为湿度上限减小。AT24C02是IIC芯片,其电路如图3-9所示:图3-9AT24C02的芯片引脚图AT24C02提供电可擦除的串行1024位存储或可编程只读存储器(EEPROM)128字(8位/字)。芯片在低压的工业与商业应用中进行了最优化。AT24C01的封装为8脚PDIP、8脚JEDECSOIC、8脚TSSOP,通过2线制串行接口进行数据传输。另外,整个系列有2.7V(2.7V至5.5V)和1.8V(1.8V至5.5V)两个版本。设备操作:CLOCK和DATA变化:SDA管脚通常外都要拉高。SDA管脚上的数据只能在SCL低期间改变。数据在SCL高期间改变定义为一个开始或停止信号。开始状态:在任何操作之前必须有一个开始信号在SCL为高时SDA上产生一个下降沿。停止状态:SCL为高时SDA产生一个上升沿是停止信号,停止信号后将停止所有通信。在一个读的序列之后,停止信号将让EEPROM进入备用电源模式。I2C(Inter-IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在效劳器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的平安性,方便了管理。1I2C总线的硬件结构I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。为了防止总线信号的混乱,要求各设备连接到总线的输出端时必须是开漏输出或集电极开路输出。设备上的串行数据线SDA接口电路应该是双向的,输出电路用于向总线上发送数据,输入电路用于接收总线上的数据。而串行时钟线也应是双向的,作为控制总线数据传送的主机,一方面要通过SCL输出电路发送时钟信号,另一方面还要检测总线上的SCL电平,以决定什么时候发送下一个时钟脉冲电平;作为接受主机命令的从机,要按总线上的SCL信号发出或接收SDA上的信号,也可以向SCL线发出低电平信号以延长总线时钟信号周期。总线空闲时,因各设备都是开漏输出,上拉电阻RP使SDA和SCL线都保持高电平。任一设备输出的低电平都将使相应的总线信号线变低,也就是说:各设备的SDA是“与〞关系,SCL也是“与〞关系。总线的运行〔数据传输〕由主机控制。所谓主机是指启动数据的传送〔发出启动信号〕、发出时钟信号以及传送结束时发出停止信号的设备,通常主机都是微处理器。被主机寻访的设备称为从机。为了进行通讯,每个接到I2C总线的设备都有一个唯一的地址,以便于主机寻访。主机和从机的数据传送,可以由主机发送数据到从机,也可以由从机发到主机。但凡发送数据到总线的设备称为发送器,从总线上接收数据的设备被称为接受器。开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。假设未收到应答信号,由判断为受控单元出现故障。如图3-10所示:SDASDASCL开始结束图3-10开始、结束信号图目前有很多半导体集成电路上都集成了I2C接口。带有I2C接口的单片机有:CYGNAL的CSTC89C52F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外围器件如存储器、监控芯片等也提供I2C接口。总线根本操作:I2C规程运用主/从双向通讯。器件发送数据到总线上,那么定义为发送器,器件接收数据那么定义为接收器。主器件和从器件都可以工作于接收和发送状态。总线必须由主器件〔通常为微控制器〕控制,主器件产生串行时钟〔SCL〕控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。控制字节:在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符〔不同的芯片类型有不同的定义,EEPROM一般应为1010〕,接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作。写操作:写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同。读操作:读操作有三种根本操作:当前地址读、随机读和顺序读应当注意的是:最后一个读操作的第9个时钟周期不是“不关心〞。为了结束读操作,主机必须在第9个周期时发出停止条件或者在第9个时钟周期内保持SDA为高电平、然后发出停止条件。4系统软件程序的设计在对我们所要设计的课题有了整体的了解之后,需要先建立程序框架的流程图,对整个设方案分模块,逐个模块实现其功能,最终把各个子模块合理的连接起来,构成总的程序。主程序首先要对整个系统进行初始化,然后将采集到的温湿度指令传给系统,系统的主流程图如图4-1所示:开始开始初始化延时温湿度测量1602显示数据判断温湿度温湿高于设定温度高于设定湿度继电器1吸合红灯亮继电器2吸合黄灯亮结束图4-1主程序流程图4.1液晶显示模块设计液晶显示模块是一个慢显示器件,在执行每条指令之前要确认模块的忙标志为低电平,表示不忙,那么此指令失效,要显示字符时要先输入显示字符地址,告诉模块在哪里现实了字符。1602液晶显示模块可与STC89C52直接接口的。软件流程图如图4-2所示:开始开始LCD初始化延时设第一行显示位置显示第一行内容设第二行显示位置显示第二行内容图4-2液晶显示模块程序流程图4.2传感器模块设计温湿度模块DH11数字温湿传感器加湿器温湿度传感器随着科技的不断开展,汽车、空调、除湿器、烘干机等种类繁多的电器都已进入人们的日常生活,而这些电器设备很多都离不开对温度、湿度等环境因素的要求。因此,温度、湿度传感器用途越来越广泛。新一代的数字传感器不再需要外置的AD转换模块,并具有标准接口,使用方便,得到了越来越多的应用。DHT11作为一种新型的单总线温湿度数字传感器,具有更多的优点,它使系统设计更加简单,控制方便,易于实现。目前常用的微机与外设之间进行数据传输的串行总线主要有I2C总线、SPI总线和SCI总线。其中I2C总线以同步串行两线方式进行通信(1条时钟线,1条数据线),SPI总线那么以同步串行三线方式进行通信(1条时钟线,1条数据输入线,1条数据输出线),而SCI总线是以异步方式进行通信的(1条数据输入线,1条数据输出线)。这些总线至少需要两条或两条以上的信号线。DHT11传感器模块的软件流程图如下列图4-3所示:给DHT11上电延时1S保持高电平检测记录信号输出低电平给DHT11上电延时1S保持高电平检测记录信号输出低电平延时输出低电平数据输出结束信号图4-3DHT11传感器模块的软件流程图5系统分析与调试本设计是在KeilC环境下开发的,KeilC软件支持C语言的编程及调试,运用方便,是做C语言毕业设计者的首选。设计的首要任务是安装和学习使用这个软件,在简单的学习和了解KeilC后,我们便可在此环境下开始了对温室大棚的温湿度控制的设计工作。在编译完KeilC后,再运用STC_ISP_V480软件烧录到开发板上,实现实物与程序的连接。在烧录前要对STC_ISP_V480进行一些必要的设置。第一步:设置MCUType为STC89C52RC;第二步:翻开编写好并编译的程序文件,它是以.hex为后缀的文件;第三步:选择对应的COM端口,〔可在我的电脑的设备管理处查看COM选项〕;第四步:点击Download/下载,等提示请给MCU上电时,翻开开发板上的开关,它就自行烧录了。KeilC程序运行如图5-1所示,下载图如图5-2所示:图5-1keilC运行图图5-2程序烧录运行图在完成对程序的调试及烧录之后,还需要对其进行演示,把开发板与电脑连上,设置好对应的接口,完成供电及下载。开始供电后、稍带几秒等1602液晶屏能正常显示当前温湿度了之后。观察当前温湿度的变化。并且针对与自己设定的限值相比拟。假设当前温度没有超标,即没有超过限值。可以用手捂住DHT11传感器,令其温度的显示超标。测试能否到达报警。经过测试。完全可行。因而简单的实现了对温度的控制,继电器也可以控制风扇的转动。第六章结论本系统以单片机为核心部件的控制系统,利用软件编程,最终根本上实现了各项要求。虽然系统还存在一些缺乏,比方温湿度测量不够精确,特别是湿度,波动较大。尝试了各种改良方法。仍然不太理想。不过大体能反映出设计的目的和要求。与预期的结果相差不多。经过近两个月的奋斗,从确定题目,到后来查找资料,理论学习,实验编程调试,这一切都使我的理论知识和动手能力有了很大的提高。了解了单片机的硬件结构和软件编程方法,对单片机的工作方式有了很大的认知。同时,对一些外围设备比方传感器、液晶屏、键盘、继电器等有了一定的了解!学会了对一项工程如何设计:首先,要分析需要设计的系统要实现什么功能,需要什么器件;然后,针对设计购置相应的硬件,选用硬件时不仅要选用经济的,更重要的是如何能更精确更方便的完成系统的要求;再次,对各个硬件的软件实现要弄清楚,如何更好的实现各个硬件的协调,更好的通过主控制器件实现硬件的功能。最后,通过各种测试与调试,让设计更好的完成系统要求。但因为我们的水平有限,此设计中也存在一定的缺乏。就比方说对温湿度下限的设定与控制,应用就更加广泛。温湿度控制已经成为了21世纪热门研究话题之一。无论是从生产还是生活,与我们人类都是息息相关的。而智能化的控制温湿度已经开展成为一种必然。随着世界经济的开展,人们生活水平的提高以及社会的进步。我们不可能一直墨守陈规,不能在恪守以前利用人力资源来控制温湿度的方法。不仅浪费大量的人力资源、财力资源,并且控制系统也更加单一化。而采用自动控制的方法、既节省了人力资源,更表达了与时俱进的思想、世界在进步、而这种进步就该表达在各个方面。致谢时光飞逝,转眼间在河南理工大学的四年大学生活已经走到了最后的时刻。在这四年里,老师对我的谆谆教导,我将永远铭记在心,还有同学之间的深厚情谊,将会永远成为我的动力源泉。谨此向他们表示诚挚的谢意。在学士学位论文即将全部完成之际,我想向曾经给予我帮助和支持的人表示衷心的感谢!感谢我的母校河南理工大学,给我提供了这么好的学习和生活环境,在学校学习和生活的日子是我一生中一段难忘的经历!感谢我的指导老师恩德老师,本设计是在恩德老师的亲切关心和悉心指导下完成的。他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和鼓励着我。恩德老师不仅在学业上给我以精心指导,同时还在思想、生活上给我以无微不至的关心,在此谨向恩德老师致以诚挚的谢意和崇高的敬意。同时,我要感谢电子信息工程系的各位老师,正是由于他们的传道、授业、解惑,让我学到了更多的专业知识,我也从他们身上学到了如何求知治学、如何为人处事。我还要感谢给过我帮助的同学们,正是由于你们的帮助和支持,我才能克服一个又一个的困难和疑惑,直至本论文的顺利完成。感谢电信10级全体同学的帮助和勉励,同窗之谊和手足之情,我将终生难忘!路漫漫其修远兮,吾将上下而求索。我愿在未来的学习和研究过程中,以更好的成果来答谢曾经关心、帮助和支持过我的所有领导、老师、同学和朋友。学无止境,明天,将是我终身学习另一天的开始!

在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意。最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们!最后,再次对关心、帮助我的老师和同学们表示衷心地感谢!参考文献[1]夏路易电路原理图与电路板设计教程·北京希望电子出版社·2023[2]余永权单片机在控制系统中的应用·电子工业出版社·2023[3]童诗白模拟电子技术根底·第二版·高等教育出版社·2023[4]石东海单片机数据通信技术·西安电子科技大学出版社·2023[5]余永权单片机在控制系统中的应用·电子工业出版社·2006[6]朱大奇单片机原理串口及应用·南京大学出版社·2023[7]赵佩华微型计算机原理与组成·西安电子科技大学出版社·2023[8]赵继文传感器与应用电路设计·北京科学出版社·2006[9]黄继昌电子元器件应用手册·北京人民邮电出版社·2004[10]沙占友单片及外围电路设计·电子工业出版社·2003[11]谢自美电子线路设计·华中科技大学出版社·2023[12]沙占友.智能化湿度传感器原理与应用.北京:机械工业出版社,2002[13]梅丽凤,王艳秋.单片机原理及接口技术.北京:清华大学出版社,2023[14]郑锋,王巧芝.温室大棚自动控制系统的设计.北京:机械工业出版社,2023[15]李敏,孟臣.温室大棚计算机测控系统的研制.计算机与农业科技,2001[16]HashimotoY.Somespeakingplantapproachtothesynthesisofcontrolsysteminthegreenhouse.ActaHort,1985[17]G.vanStratena,etc.Towardsuseracceptedoptimalcontrolofgreenhouseclimate.computersandElectronicsinAgriculture,2000[18]W.L.Brogan.ModernControlTheory.PrenticeHallInc,1985附录A图A1系统总体电路图附录B源程序:#include<reg52.h>#include"1602.h"#include"dht.h"#include"2402.h"//定义三个LED灯sbitLed_qushi=P1^6; //去湿灯sbitLed_jiangwen=P1^5; //降温灯sbitLed_shengwen=P1^4; //升温灯sbitKey_TH1=P3^2;sbitKey_TH2=P3^3;sbitKey_HH1=P3^4;sbitKey_HH2=P3^5;//定义标识volatilebitFlagStartRH=0;//开始温湿度转换标志volatilebitFlagKeyPress=0;//有键按下//定义温湿度传感器用外部变量externU8U8FLAG,k;externU8U8count,U8temp;externU8U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;externU8U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;externU8U8comdata;externU8count,count_r;U16temp;S16temperature,humidity;S16idataTH,HH;//温度上限和湿度上限char*pSave;U8keyvalue,keyTH1,keyTH2,keyHH1,keyHH2;//定义变量U16RHCounter;//数据初始化voidData_Init(){RHCounter=0;Led_qushi=1;Led_jiangwen=1;Led_shengwen=1;TH=40;HH=85;keyvalue=0;keyTH1=1;keyTH2=1;keyHH1=1;keyHH2=1;}//定时器0初始化voidTimer0_Init(){ ET0=1;//允许定时器0中断 TMOD=1;//定时器工作方式选择 TL0=0x06; TH0=0xf8;//定时器赋予初值 TR0=1;//启动定时器}//定时器0中断voidTimer0_ISR(void)interrupt1using0{ TL0=0x06; TH0=0xf8;//定时器赋予初值 //每2秒钟启动一次温湿度转换RHCounter++;if(RHCounter>=1000){FlagStartRH=1; RHCounter=0;}}//存入设定值、voidSave_Setting(){pSave=(char*)&TH; //地址低位对应低8位,高位对应高8位wrteeprom(0,*pSave); //存温度上限值TH低8位DELAY(500);pSave++;wrteeprom(1,*pSave); //存温度上限值TH高8位DELAY(500);pSave=(char*)&HH;wrteeprom(2,*pSave); //存湿度上限值RH低8位DELAY(500);pSave++;wrteeprom(3,*pSave); //存湿度上限值RH高8位DELAY(500);}//载入设定值、voidLoad_Setting(){pSave=(char*)&TH;*pSave++=rdeeprom(0);*pSave=rdeeprom(1);pSave=(char*)&HH;*pSave++=rdeeprom(2);*pSave=rdeeprom(3);if((TH>99)||(TH<0))TH=40;if((HH>99)||(HH<0))HH=85;}voidKeyProcess(uintnum){switch(num){case1: if(TH<99)TH++; L1602_char(1,15,TH/10+48); L1602_char(1,16,TH%10+48); break; case2: if(TH>1)TH--; L1602_char(1,15,TH/10+48); L1602_char(1,16,TH%10+48); break; case3: if(HH<99)HH++; L1602_char(2,15,HH/10+48); L1602_char(2,16,HH%10+48); break; case4: if(HH>1)HH--; L1602_char(2,15,HH/10+48); L1602_char(2,16,HH%10+48); break; default: break;}Save_Setting();}/*********************************************************************名称:Main()*功能:主函数***********************************************************************/voidmain(){U16i,j,testnum;EA=0; Timer0_Init();//定时器0初始化Data_Init(); EA=1; L1602_init(); L1602_string(1,1,"WelcometoT&H"); L1602_string(2,1,"ControlSystem!"); //延时 for(i=0;i<1000;i++) for(j=0;j<1000;j++) {;}//清屏 L1602_string(1,1,""); L1602_string(2,1,"");L1602_string(1,1,"Tem:CTH:"); L1602_string(2,1,"Hum:%HH:");//载入温度上限和湿度上限设定值 Load_Setting(); L1602_char(1,15,TH/10+48); L1602_char(1,16,TH%10+48); L1602_char(2,15,HH/10+48); L1602_char(2,16,HH%10+48); while(1) {//温湿度转换标志检查 if(FlagStartRH==1) { TR0=0;testnum=RH(); FlagStartRH=0; TR0=1;//读出温湿度,只取整数局部 humidity=U8RH_data_H; temperature=U8T_data_H; //显示温湿度 L1602_int(1,5,temperature); L1602_int(2,5,humidity); } //温湿度控制 if(temperature>TH)Led_jiangwen=0; elseLed_jiangwen=1; //降温 if(humidity>HH)Led_qushi=0; elseLed_qushi=1; //去湿 //键盘查询,在弹起时响应 if((Key_TH1)&&(keyTH1==0)){FlagKeyPress=1;keyvalue=1;}elseif((Key_TH2)&&(keyTH2==0)){FlagKeyPress=1;keyvalue=2;}elseif((Key_HH1)&&(keyHH1==0)){FlagKeyPress=1;keyvalue=3;}elseif((Key_HH2)&&(keyHH2==0)){FlagKeyPress=1;keyvalue=4;} if(FlagKeyPress==1) {KeyProcess(keyvalue);FlagKeyPress=0; }if(!Key_TH1)keyTH1=0; elsekeyTH1=1;if(!Key_TH2)keyTH2=0; elsekeyTH2=1;if(!Key_HH1)keyHH1=0; elsekeyHH1=1;if(!Key_HH2)keyHH2=0; elsekeyHH2=1; } }/**************************子程序1********************************/*文件名:液晶1602显示.c*描述:该程序实现了对液晶1602的控制。***********************************************************************/#include"1602.h"#include"math.h"/*********************************************************************名称:delay()*功能:延时,延时时间大概为140US。*输入:无*输出:无***********************************************************************/voiddelay(){ inti,j; for(i=0;i<=10;i++) for(j=0;j<=2;j++);}/*********************************************************************名称:Convert(ucharIn_Date)*功能:因为电路设计时,P0.0--P0.7接法刚好了资料中的相反,所以设计该函数。*输入:1602资料上的值*输出:送到1602的值***********************************************************************/ucharConvert(ucharIn_Date){/*uchari,Out_Date=0,temp=0;for(i=0;i<8;i++){te

温馨提示

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

评论

0/150

提交评论