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

下载本文档

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

文档简介

防灾科技学院毕业设计题目基于STC单片机的温湿度控制器的设计与实现学生姓名学号系别COMMENTSCOMMENTSCOMMENTS专业电气工程及其自动化班级开题时间辩论时间指导教师职称副教授基于STC单片机的温湿度控制器的设计与实现作者指导老师摘要电力柜内的电气设备需要一个枯燥、凉爽的环境,一些电力设备本身存在较大电阻,一些电磁线圈也在长时间工作之后产生较多的热量,而潮湿的环境容易腐蚀电气设备线路,大大降低了其使用寿命,所以就需要一种能够控制电力柜内温湿度的设备,让电力柜内环境温湿度保持在一个适宜电气设备工作的范围,而电力柜内的温度和湿度监测,通过人工监测电力柜内温湿度误差大,随机性大,无法连续监控也不平安。通过51单片机来监测温湿度并控制继电器通断,除湿器和散热器工作,到达电力柜内降温除湿的目的。使用单片机系统进行电力柜内温湿度监测控制,可以实时监测控制,误差相比照拟小,而且直观易懂,通过设置还可以调节温湿度的监测控制范围。降低了电力设备维护本钱,也保障人身平安。关键词:单片机STC89C52、DHT11传感器、温湿度监测控制BasedonthedesignandimplementationofdigitaltemperaturecontrollersandhumiditycontrollersonSTCmicrocontrollerASapersonCheWenliangTheinstructorXin-gangwangAbstractInelectriccabinetelectricalequipmentareinneedofadry,coolenvironment,someelectricpowerequipmentitselfthereisabigresistance,theelectromagneticcoilalsoafterworkforalongtimetoproducemoreheatandhumidenvironmentcorrosiontoelectricalequipment,greatlyreduceitsservicelife,sotheyneedawaytocontroldevicesinelectriccabinettemperatureandhumidity,environmentaltemperatureandhumidityinsidearkpowertokeepthescopeoftheworkinasuitableelectricalequipmentandpowerincaseoftemperatureandhumiditymonitoring,throughthegreaterrorinmanualmonitoringinelectricalcabinettemperatureandhumidity,randomness,unabletocontinuousmonitoringnorsafe.Throughthe51single-chipmicrocomputertomonitortemperatureandhumidityandcontrolrelayon-off,dehumidifierandradiator,achievethegoalofpowerrackcoolingdehumidification.Usingsinglechipmicrocomputersystemforelectricalcabinettemperatureandhumiditymonitoringandcontrol,canbereal-timemonitoringcontrol,theerrorisrelativelysmall,andstraightforward,bysettingthealsocanadjusttemperatureandhumiditymonitoringandcontrol.Reducesthepowerequipmentmaintenancecosts,andsafeguardthepersonalsafety.Keywords:MicrocontrollerSTC89C51;DHT11sensor;temperatureandhumiditymonitoringandcontrol目录1引言11.1课题研究的背景 11.2课题研究的意义 12方案设计22.1功能要求 22.2设计思路 2传感器选择 2显示器选择2单片机主芯片选择 32.3总体设计框图 33系统硬件设计43.1概述 43.2主控模块设计 43.2.1STC89C52芯片的简介 43.2.2STC89C52单片机最小系统 53.2.3主控模块电路原理图 63.3DHT11传感器模块设计 63.3.1DHT11传感器简介 63.3.2DHT11传感器模块电路设计 103.41602液晶显示模块设计 111602液晶显示屏简介 113.5降温除湿模块的设计 143.6电源局部的设计 143.7按键模块的设计 154系统软件设计154.1LCD1602液晶软件设计 164.2DHT11温湿度传感器软件设计 185系统分析与调试195.1PROTUES和KEIL编译器软件简介175.2使用PROTUES绘制电路原理图175.3使用KEIL编译器写程序185.4使用PROTUES电路仿真195.5使用STCISP下载程序196结论与展望19致谢20附录A元器件清单21附录B硬件原理图22附录C程序清单2625224附录d开发板仿真3225224附录e电路实物焊接测试3225224附录fPCB板打样3325224附录g最终成品331引言1.1课题研究的背景电力柜内的温湿度在适宜范围内时,不仅平安可靠,而且可大大延长电气设备的使用寿命,节省大量本钱。电力柜内温湿度的监测和控制,在智能化设备开展迅速的今天,它已经取代了人工检查,而且人工检查费时、不准确、某些电力设备不适合靠近测量等,所以就需要一种能够监测并控制电力柜内温湿度的设备或者系统以替代电力设备维护人员的人工检查,提高效率而且平安可靠,防止许多不必要的麻烦。温度、湿度和人类的生产、生活有着密切的关系,同时也是工业生产中最常见最根本的工艺参数,例如机械、电子、石油、化工等各类工业中广泛需要对温度湿度的检测与控制。并且随着人们生活水平的提高,人们对自己的生存环境越来越关注。而空气中温湿度的变化与人体的舒适度和情绪都有直接的影响,所以对温度湿度的检测及控制就非常有必要了。1.2课题研究的意义类似的控制在许多方面都有应用。无论是日常生活电器中还是工业设备中都有,在不同场合,系统设计也不同。但根本原理都是一样的。我们可以用这个系统举一反三,研究类似的系统,比方日常生活中的空调温湿度自动监测控制,农业中的大棚内的温湿度监测控制,同样,也可以在飞机,潜水艇,航天器上甚至是生命探测器上进行温湿度的监测控制,该课题应用十分广泛,涉及范围广,特别在智能化设备开展较快的今天,它已经渗透到了我们生活的方方面面,在电力柜内使用该系统,降低运营本钱,平安可靠。[1]随着科技的飞速开展和普及,高性能设备越来越多,各行各业对温湿度的要求也越来越高。传统的温湿度检测模式是以人为根底,依靠人工轮流值班,人工巡回查看等方式来测量和记录环境状况信息。在这种模式下,不仅效率低不利于人才资源的充分利用,而且缺乏科学性,许多重大事故都是由人为因素造成的,人工维护缺乏完整的管理系统。而问世监控系统就可以解决这样人才资源浪费,管理不及时的问题,这是由于它的智能化设计所决定的。2方案设计2.1功能要求1、温湿传感器采集数据;2、单片机处理数据;3、温湿度用液晶显示屏显示;4、设定温度湿度控制范围,其范围可通过按键进行设置;5、超过设定值时,蜂鸣器报警2.2设计思路基于51单片机的电力柜内温湿度监测控制系统由51单片机、传感器DHT11、按键、LCD1602液晶显示器、散热风扇、除湿器、报警蜂鸣器、继电器电路、和电源局部组成。以单片机为温湿度的控制核心,用DHT11温湿度传感器检测电力柜内温度和湿度,LCD1602液晶显示温湿度。当超过温度的上限值时启动降温继电器控制散热风扇进行降温,一直降温到下限值时停止降温。当超过湿度的上限值时启动除湿继电器控制除湿器对电力柜内进行除湿,一直除湿到设置的下限值时停止除湿。温度和湿度的控制设置参数可以通过按键进行设置。设置还包蜂鸣器的开和关。[2]2.2.1传感器选择温湿度传感器为DHT11,相比拟于DS18B20温度传感器和电阻式氯化锂湿度计或者碳湿敏元件,DHT11传感器集成了温度和湿度的监测模块,可直接可替代两个传感器,简化了电路,编程也方便快捷,所以选用DHT11。2.2.2显示器选择采用LCD1602液晶显示,可以显示多种字符,还带背光二极管,界面简洁,接口简单,相比拟于使用7段数码管,编程简单,接线也简单,显示内容丰富,可根据需要显示,随着半导体技术的开展,LCD1602液晶显示在许多电子设备上都有其身影。2.2.3单片机主芯片选择采用STC89C52单片机作为监测温度和输出控制的核心,功能强大,用其在整个控制系统中,满足了最初的设计需求,功耗低,内部储存足够存储一些程序,而且STC单片机功能丰富,也适合在后期改良或者增加功能时候使用,市面上出售的单片机STC系列很多,价格低廉,4块钱一个吗,而且好多电子爱好者都使用其对应的开发板,使用这些开发板让我们最大限度的学习了其功能,让初学者很快上手,所以选择了STC系类单片机。2.3总体设计框图STC89C52主控模块P0.7电源局部按键模块降温控制温湿度DHT11LCD液晶显示模块除湿控制图2.1系统总设计框架3系统硬件设计3.1概述电路总体上分为51单片机、温湿度传感器DHT11、组合按键、LCD1602液晶显示器、散热风扇、除湿器、报警蜂鸣器、继电器电路、和电源局部。以STC89C52作为核心控制器,继电器控制散热风扇和除湿器,按键设置温湿度范围。3.2主控模块设计STC89C52芯片的简介STC89C52低功耗、高性能,有8KFlash存储器。制造技术先进,兼容性强。系统程序用keil编程,并用开发板下载,或者ISP下载器下载。电脑软件编程支持,方便快捷,可对相应的接口进行灵活设置,对电路控制,信号的输入输出提供高效而且灵活控制。STC89C52单片机最小系统单片机系统电路如下列图所示:图3.1单片机系统图STC89C52单片机的工作电压范围:本次设计使用3节干电池为单片机供电。单片机供电接口为VCC和GND。开关的通断或者使用复位电路可以让单片机重启。复位按钮可使程序重头开始执行。晶振频率的大小控制着单片机的工作快慢。晶振和电容组成的振荡电路。[3]3.2.3主控模块电路原理图电力柜内DHT11传感器的信号通过单片机读取和处理,并将温湿度数据发给LCD1602液晶显示。完成信息的接收与发送。具体电路如图3-2所示。图3.2主控模块原理图3.3DHT11传感器模块设计DHT11传感器简介DHT11是复合传感器,可同时测定温度和湿度,直接取代了单独的温度和湿度传感器。技术先进,运行可靠、稳定。该产品价格低廉。每个DHT11传感器都经过严格校准,并将数据封装入内部芯片中,传感器工作时以这个校准数据为参考标准,再把数据输出。单线制串行接口,连接简单,只有一颗数据线,另外是电源和接地,简化了电路。体积很小、功耗也低,信号传输距离远,其本身的性质及其特点满足了成千上万的产品设计需求,封装形式多式多样,消费者可根据需求选择所要封装形式的传感器。DHT11传感器实物图如下3-3所示:图3.3DHT11传感器实物图〔1〕引脚介绍:Pin1:(VDD),电源引脚,供电电压为3~5.5V。Pin2:〔DATA〕,串行数据,单总线。Pin3:〔NC〕,空脚,请悬浮。Pin4〔VDD〕,接地端,电源负极。〔2〕接口说明:图3.4DHT11典型应用电路〔3〕数据帧的描述:操作流程如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit温湿度的整数和小数数据〔4〕电气特性:VDD=5V,T=25℃,除非特殊标注表3.2DHT11的电气特性参数条件Mintypmax单位供电DC355.5V供电电流测量0.52.5mA平均0.21mA待机100150uA采样周期秒1次注:采样周期间隔不得低于1秒钟。〔5〕时序描述:单片机发送测量命令后,传感器从低功耗转换到高速模式,命令结束后,传感器响应,传感器采集一次信号,然后我们可以根据需要选择数据,假设没有收到单片机的检测命令,传感器不会采集数据,此时,传感器低功耗待机,等待下次数据检测命令。通讯过程如下列图3-5所示:图3.5传感器时序图3.6传感器时序数字0信号表示方法如下列图3-7所示:图3.7传感器时序数字1信号表示方法如下列图3-8所示图3.8传感器信号表示DHT11传感器模块电路设计DHT11传感器连接STC89C52收发数据,即数据口。连接传感器的Pin2〔单总线,串行数据〕。测量距离短,在传感器的Pin2口与电源之间连接一个5K电阻。而传感器的电源端口Pin1和Pin4分别接单片机的VDD和GND端。传感器的第三脚不接。DHT11传感器原件的电路原理图如下3-9所示:图3.9DHT11电路原理图3.41602液晶显示模块设计1602液晶显示屏简介液晶显示在日常生活的电子设备中都比拟常见,最简单的计算器上都有液晶,显示的信息全面而且直观。LCD1602液晶显示优点:①显示质量高:恒定发光,无需要不断刷新且不会闪烁;②数字式接口:可直接与单片机P口连接;③体积小、重量轻;④功耗低:整体功耗都比拟低为到达省电和交互方便,我们采用LCD1602液晶显示,其接口电路如下列图所示:图3.10LCD1602液晶接口电路LCD1602主要技术参数:显示容量:16×2个字符芯片工作电压:4.5—5.5V工作电流:2.0mA(5.0V)模块最正确工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm1602LCD各引脚接口说明如表1.1所示:表1.1LCD1602引脚功能编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极LCD1602液晶控制指令如表1.2所示:表1.2控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L**6置功能00001DLNF**7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM〕10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容图3.11写操作时序图3.121602LCD内部显示地址3.5降温除湿模块的设计本设计降温模块电路采用NPN型S8550三极管驱动继电器通断控制风扇和除湿器工作,风扇电源为5V开关电源供电,除湿器电源220V市电,蜂鸣器与单片机共用电源。具体电路图如下图:图3.13继电器工作原理图3.6电源局部的设计单片机、传感器、继电器等功耗低的元件采用干电池供电,输出电流稳定,换电池也方便,而散热风扇采用5v开关电源供电,除湿器由于包含发热元件,直接用220v市电。这样使用不同的供电接口,平安可靠。图3.14电源接口电路3.7按键模块的设计系统设置4个按键,分别为S2,S3,S4,S5组成。通过这个四个按键可以设置温湿度上下限,长按可以实现温度和湿度连加和连减的功能,菜单第三项还可设置蜂鸣器开关,可以更快的完成参数的设置。具体电路图如图3-7所示:图3.15按键模块电路图4系统软件设计建立程序流程图,流程图如图4.1所示:图4.1主程序流程图4.1LCD1602液晶软件设计软件流程图如图4-2所示:图4.21602液晶显示模块程序流程图4.2DHT11温湿度传感器软件设计DHT11传感器模块的软件流程图如下列图所示:图4.3DHT11传感器模块程序流程图5系统分析与调试5.1protues电路仿真和Keil编译器软件Protues软件是我们常用电路图绘制软件,里面元器件种类丰富,从各种集成芯片到每个小电阻等等,元件库的元件可以让我们随性所欲的选择,其仿真功能可代替一些实物连接,极大的节省了实物测试时间。[6]Keil是单片机学习者必备的编程软件,其使用的c语言,极大的降低了学习者的门槛,c语言相比拟于汇编语言,更容易让初学者上手,短短几个月便可学到许多根本语句,而keil软件编译单片机程序必不可少。当然也可以使用其他c语言编写程序编写,再用keil编译。[7]5.2使用protues绘制电路原理图首先我我们翻开软件,做单片机系统,首先我们就从选择元件开始,翻开软件的元件库,上面输入关键字,便可查找所需元件,我们选择好了元件后,便可以在绘制区域进行电路图绘制,元件可旋转或者颠倒方向,为了使电路图画出来美观而且布线不乱,我们优先选择线比拟多的元件连接,并减少连接距离,首先把单片机系统连接完成,再向外扩展元器件,根据设计要求和单片机IO口的功能,我们选择不同的接口连接线路,给需要供电的元器件接上电源和接地,至此,整个电路绘制完成。[8]图5.1Protues软件绘制电路5.3使用Keil编译器写程序首先,建立一个工程,翻开工程,选择新建,也可以翻开已经建立好的,一般我们先新建一个文件夹,然后再在软件中选择保存路径,这样在以后的查找和使用时候就方便了,之后我们选择AT89C52,软件可能没有STC系列芯片,我们可以上网下载相应的元件库,然后就可以选择了,建立完工程之后,我们需要再新建一个c文件。然后添加到工程中,然后,我们就可以在软件上进行编写程序,编写完成后,进行编译,编译如果有错,我们可以查看和更改,然后再编译,编译成功后,在输出那里找到一个生成hex文件的对话框,勾选之后再编译一遍程序,hex文件生成。[9]编写对话框如下列图所示:图5.2Keil编译程序5.4使用protues电路仿真再次翻开protues,直接双击单片机,在跳出的对话框中选择工程文件路径,并加载,整个电路就可以模拟实际效果运行了,我们可以用这种方法来不断的优化程序和改良电路。[10]图5.3protues仿真5.5使用STCISP下载程序仿真没有错误之后,我们可用单片机开发板下载程序到单片机,也可以使用ISP下载器下载程序,有单片机开发板的课直接使用开发板用跳线或者排线进行实物连接仿真,或者可以使用面包板或者万用板焊接一个简单的电路,测试电路。[11]使用开发板下载程序界面如下列图所示:图5.4STC下载程序6结论与展望本系统经过自己长时间的探索和改良,根本到达目标要求。虽然温湿度测量结果不够精确,尝试了各种改良方法,有一定改观。到达了设计最初的目的和要求。与预期的结果相差不多。经过从选题到完成毕设的这段时间,首先确定课题,然后查找资料,学习一些元器件知识,用protues进行电路设计,确定元器件,用keil软件编程,再进行电路仿真,PCB板的印制,电路焊接,期间遇到了很多困难,向老师和同学求助,也向很多网友进行求助,学到了以前没学到的知识,增强了动手能力,特别是用万用板子进行电路实物仿真时候,由于电路图跟实物图有差异,花费看不少时间和经历,一遍又一遍查错和检查电路,有时候单片机晶振没有起振,或者是焊接触点接触不良,整个系统都不稳定,每次失败到解决问题,都是一些很珍贵的学习经验,温湿度的监测控制是当今热门话题。无论是从生产还是生活,与我们人类都是息息相关的,特别是智能化设备开展迅速的今天,人们更是迫切需要一些简单、方便、快速的能替代人工的设备,智能控制的各种系统应运而生,满足了人们的各种要求。参考文献[1]李华.MCS一51系列单片机实用接口技术.北京航空航天大学出版社.[2]张毅坤等.单片微型计算机原理及应用.西安电子科技大学出版社.2006.[3]陈伟.MCS一51系列单片机实用子程序集锦.清华大学出版社.1993.[4]马忠梅籍顺心张凯马岩、单片机的C语言应用程序设计〔第3版〕北京:北京航空航天大学出版社2003[5]谭浩强著.C程序设计.北京:清华大学出版社,2007;[6]张毅刚.MCS-51单片机应用设计[M].哈尔滨工业大学出版社,2004.[7]张淑清姜万录等.单片微型计算机接口技术及应用[M].国防工业出版社,2003.[8]吴金戌沈庆阳郭庭吉.8051单片机实践与应用[M].北京:清华大学出版社,2001.[9]冯博琴.微型计算机原理与接口技术[M].清华大学出版社,2004.[10]张毅刚.MCS-51单片机应用设计[M].哈尔滨工业大学出版社,2004.[11]赵亮,侯国锐.单片机C语言编程与实例[M].北京:人民邮电出版社,2003.致谢转眼间,大学生涯快结束了,时光飞逝,在大学4年里,有时过得很充实,有时会觉得很无聊,不管如何,我觉得在最后的毕业设计和毕业论文阶段,是过得最充实和匆忙的,每天早上醒来都想着今天的毕设该如完善,每天都有目标,每天都在努力,就像做一个艺术品一样,慢慢的,一点一点的完成,无论好坏,都是我用心制作的劳动成果,尽管有缺陷,不美观,但这是大学四年里我最专注做的一个成果,在这期间遇到的困难和挫折,都是我以后工作和学习的珍贵经验。至此,感谢给我帮助的老师和同学们,谢谢你们的一路的鼓励和支持!附录附录A元器件清单名称元件号规格参数数量蜂鸣器B1BELL1电解电容C110uF1瓷片电容C2,C330PF2发光二极管D1,D2,D53mm3排针J1Header44P排母座LCD1Header1616P继电器K1,K2SRD-05VDC2液晶LCD1LCD16021接线柱P1,P2Header23三极管Q1,Q2,Q585503电阻R1,R2,R3,R5,R6,R12,R132K11电阻R44.7K1电阻R1110K1触点开关S1,S2,S3,S4,S5SW-PB5自锁开关SW1sw-灰色1温湿度传感器U1DTT111单片机U1STC89C521单片机座U2DIP-401晶振Y112M1风扇FAN5V1除湿器无220V1附录B硬件原理图附录C程序清单#include<reg52.h> //调用单片机头文件#defineucharunsignedchar//无符号字符型宏定义变量范围0~255#defineuintunsignedint //无符号整型宏定义变量范围0~65535#include<intrins.h>#include"dht11.h"#include"eepom52.h"sbitbeep=P2^5;//蜂鸣器IO口定义uchara_a;bitflag_300ms;bitflag_50ms;ucharkey_can; //按键值的变量ucharzd_break_en,zd_break_value;//自动退出设置界面ucharmenu_shudu=20;//用来控制连加的速度ucharmenu_1;//菜单设计的变量uintt_high=30,t_low=10; //温度报警参数uints_high=30,s_low=10; //湿度报警参数ucharflag_w_bj_en,flag_s_bj_en;bitflag_lj_en; //按键连加使能bitflag_lj_3_en; //按键连3次连加后使能加的数就越大了ucharkey_time,flag_value;//用做连加的中间变量bitkey_500ms;ucharflag_clock; //温度报警变量ucharflag_fuzi;//用做菜单内的初始化的bitflag_key_b_en,flag_key_set_en;//按键蜂鸣器使能//voiddelay_1ms(uintq)//{// uinti,j;// for(i=0;i<q;i++)// for(j=0;j<120;j++);//}//sbitdht11=P2^4;uchartable_dht11[5]={1,2,3,4,5};voidwrite_eepom_wendu(){ SectorErase(0x2000); byte_write(0x2000,t_high); byte_write(0x2002,t_low); byte_write(0x2055,a_a); }voidwrite_eepom_shidu(){ SectorErase(0x2200); byte_write(0x2200,s_high); byte_write(0x2202,s_low); byte_write(0x2255,a_a); }voidwrite_eepom_key(){ SectorErase(0x2400); byte_write(0x2400,flag_key_set_en); byte_write(0x2455,a_a); }voidread_eepom12(){ t_high=byte_read(0x2000); t_low=byte_read(0x2002); s_high=byte_read(0x2200); s_low=byte_read(0x2202); flag_key_set_en=byte_read(0x2400); a_a=byte_read(0x2255);}voidinit_eepom(){ read_eepom12(); //先读 if(a_a!=1) //新的单片机初始单片机内问EEPOM { t_high=30,t_low=10; s_high=60,s_low=10; a_a=1; write_eepom_wendu(); write_eepom_shidu(); } }#include"lcd1602.h"#include"menu.h"voidtime_init() { EA=1; //开总中断 TMOD=0X01; //定时器0、定时器1工作方式1 ET0=1; //开定时器0中断 TR0=1; //允许定时器0定时}voidkey(){ staticucharkey_new=0,key_old=0,key_value=0; P2|=0x0f; if(key_new==0) { //按键松开的时候做松手检测 if((P2&0x0f)==0x0f) key_value++; else key_value=0; if(key_value>=5) { key_value=0; key_new=1; flag_lj_en=0; //关闭连加使能 flag_lj_3_en=0; //关闭3秒后使能 flag_value=0; //清零 key_time=0; } } else { if((P2&0x0f)!=0x0f) key_value++;//按键按下的时候 else key_value=0; if(key_value>=5) { key_value=0; key_new=0; flag_lj_en=1; //连加使能 zd_break_en=1;//自动退出设置界使能 zd_break_value=0;//自动退出设置界变量清零 flag_key_b_en=1;//按键蜂鸣器使能 } } key_can=20; if(key_500ms==1) //连加 { key_500ms=0; key_new=0; key_old=1; zd_break_value=0;// flag_key_b_en=1;//按键蜂鸣器使能 } if((key_new==0)&&(key_old==1)) { switch(P2&0x0f) { case0x0e:key_can=4;break; //得到k1键值 case0x0d:key_can=3;break; //得到k2键值 case0x0b:key_can=2;break; //得到k3键值 case0x07:key_can=1;break; //得到k4键值 }// write_sfm2(1,14,key_can); } key_old=key_new; }voiddst11(){ RH(); table_dht11[2]=U8T_data_H; table_dht11[0]=U8RH_data_H;}voidmenu_dis(){ dst11(); //先读出温湿度的值 if(menu_1==0) //开始界面显示的内容 { write_sfm2(2,10,table_dht11[0]);//显示湿度 write_sfm2(2,4,table_dht11[2]); //显示温度 } if((menu_1==1)&&(menu_2!=0)) //显示的设置温度 { write_sfm2(1,7,table_dht11[2]);//显示温度 } if((menu_1==2)&&(menu_2!=0)) //显示的设置温度 { write_sfm2(1,7,table_dht11[0]);//显示湿度 } if(((menu_1>0)&&(menu_1<3))&&(menu_2==1)) { write_com(0x80+0x44);//将光标移动到 write_com(0x0f);//显示光标并且闪烁 }elseif(((menu_1>0)&&(menu_1<3))&&(menu_2==2)) { write_com(0x80+0x4b);//将光标移动到 write_com(0x0f); //显示光标并且闪烁 }}voidclock_h_l(){ staticucharvalue,value1,value2; if((table_dht11[0]<=s_low)||(table_dht11[0]>=s_high)) { value1++; //消除湿度在边界时的干扰 if(value1>10) flag_s_bj_en=1; //湿度报警标志位 } elseif((table_dht11[0]>(s_low+1))||(table_dht11[0]<(s_high-1))) { value1++; //消除湿度在边界时的干扰 if(value1>10) flag_s_bj_en=0; //温度取消报警时回差1% } else value1=0; if((table_dht11[2]<=t_low)||(table_dht11[2]>=t_high)) { value2++; //消除温度在边界时的干扰 if(value2>10) { flag_w_bj_en=1; //温度报警标志位 } } elseif((table_dht11[2]>(t_low+1))||(table_dht11[2]>(t_high-1))) { value2++; //消除温度在边界时的干扰 if(value2>10) { flag_w_bj_en=0; //温度取消报警时回差1度 } }else value2=0; if(menu_1==0) { value++; //用做报警的 if(value>5) value=0; if((flag_s_bj_en==1)&&(flag_w_bj_en==1)) { if(value<3) write_string(1,0,"wenshiduarlam"); else write_string(1,0,""); }elseif(flag_w_bj_en==1) { if(value<3) write_string(1,0,"wendu

温馨提示

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

评论

0/150

提交评论