毕业设计(论文)-室内花草自动浇水系统设计.doc_第1页
毕业设计(论文)-室内花草自动浇水系统设计.doc_第2页
毕业设计(论文)-室内花草自动浇水系统设计.doc_第3页
毕业设计(论文)-室内花草自动浇水系统设计.doc_第4页
毕业设计(论文)-室内花草自动浇水系统设计.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

单位代码 01 学号 100102057 分 类 号 TN92 密 级 毕业设计说明书室内花草自动浇水系统设计 院(系)名称信息工程学院 专业名称电子信息工程 学生姓名 指导教师 2014年4月30日第 页黄河科技学院毕业设计说明书室内花草自动浇水系统设计 摘 要科学技术不断发展,自动控制在人们的日常生活中起着越来越重要的作用,自动浇花系统也在不断的更新和改善,本设计利用AT89S52单片机通过湿度传感器获取土壤湿度,并采用汇编语言进行编程,实现了土壤湿度的LCD显示。当检测的湿度低于设定的湿度,就开始浇花,到了设定的湿度就停止浇花。本文首先阐述了浇花系统的目的和意义,并且比较了其它浇水器的优势和局限性,通过比较展现出本设计的优势所在。然后,详细阐述了自动浇花系统各个模块的工作原理,并且给出了各模块的选择依据,完成的电路总图的设计和仿真,仿真成功后生成PCB电路板焊接电路输入程序经过调试做出实物,最后对国内自动浇花系统的发展和应用做出展望。关键词:AT89S52,湿度传感器,DS1302,LCD第 II 页黄河科技学院毕业设计说明书Indoor Plants and Automatic Watering System DesignAuthor:Li YongfeiTutor:Zhang JuqinAbstractWith the development of science and technology, automatic control is playing a more and more important role in peoples daily life. This design use AT89S52 single chip and get the soil moisture through the humidity sensor ,and the use of system of watering the flowers realize the LCD system of soil moisture.When the testing humidity is lower than setting humidity,it will begin to water the flowers.When the humidity comes to the setting one ,it will stop . Firstly,this text tells the purpose and the meaning of watering system, and knows well the advantages and the limitations,and we can know its advantages through the comparison . Then, the article state the working principle of automatic watering system modules, and lists the reason of using it , and complete the circuit design of general layout and simulation, and make it real. Finally, it has a good hope of the domestic automatic watering system .Key words:AT89S52, Humidity sensor, DS1302, LCD目 录1 绪论11.1 选题的目的和意义11.2 不同浇花器的比较11.3 毕业设计所用的研究方法和手段22 智能浇花器的系统框图33 浇花系统硬件模块设计43.1 显示器模块设计43.2 时钟模块设计53.3 传感器模块设计73.4 继电器驱动模块设计83.5 报警模块设计104 总电路设计124.1 总电路图124.2 电路图仿真135 软件设计14结论15致谢16参考文献17附录18第 14 页黄河科技学院毕业设计说明书1 绪 论1.1 选题的目的和意义许多人喜欢在家里或者办公室摆上花盆,这样不仅可以陶冶情操而且盆花可以通过光合作用吸收二氧化碳从而达到净化室内空气的功效。在有花木的地方空气中阴离子大量聚集,所以空气会特别清新,而且花草的叶子可以吸收和吸附有害气体,所以盆养花受到了众人的喜爱。为了解决按时为花草浇水的问题,人们会采取在手机中存备忘录以及做各种备忘录等方法,但这些方法始终存在很多缺陷,市场上的智能浇花系统仪器功能繁多但是价格过于昂贵,而且对于普通家庭而言,过于复杂的应用和多功能是不必要的。能否适时适量的浇水是盆栽生长好坏的关键。但是,在生活中很多时候人们太忙没有时间顾及这些花草就会对花草造成不好的影响,室内花草由于受不到雨水的滋润很容易死亡。人们这个时候就会很困扰,自己好不容易买的花草因为自己无暇照顾而死亡,心情也受到了不好的影响。很多人对花草有着天生的喜爱,看到这些花死去是很不乐意的。虽然市场上有卖盆花自动浇水器,但价格很贵,并且多数是设定一个定时浇水的时间,很难做到给对盆花自动适时适量浇水。也有盆花缺水报警器,可以提醒人们及时的给盆花浇水,虽然这种设备比较经济,可是这种报警器只是报警,浇水还需要人们亲自动手。家中无人时,即使报警也不会有人浇水,设备就成了摆设了。因此,我要设计一种集盆花土壤湿度检测,自动浇水以及蓄水箱自动供水于一体的盆花自动浇水系统,对花卉适时适量的浇水,当人们无暇顾及时花草也能得到及时的浇灌。1.2 不同浇花器的比较1、玻璃、陶瓷类自动浇水器玻璃,陶瓷类自动浇水器也叫自动渗水装置,它由物理结构构成,根据物理渗水原理完成自动浇灌,当自动浇水器内部存有水,便会形成形成一定的压力,当土壤干燥时,由于毛细作用,水就会自上而下的渗出,当土壤被水渗透以后就会堵塞器具,形成压力,从而导致水流速度变慢或者停止。器具工艺不同,效果也不一样,土壤的疏松情况决定器具内水流的速度。2、电子类自动浇水器电子类浇水器也叫时控浇水器,能够每天规定的时间开始浇花,设置浇花时长,比如 2 分钟,2分钟后立即停止浇花。具体硬件:安装了2个三位共阳数码管和1个两位共阳数码管,用以显示时间和浇花时间的长短。按键控制时间调整和时间设置调整,并有一个按钮根据不同花卉调节所需要的水量,设置浇花时间长短,在数码管上显示出来,1302 芯片实现时间保持,断电时不影响时间。系统构成为:主机、主管、分水接头、副管、喷淋管。电子类自动浇水器根据电源的不同可分为交流电自动浇水器和直流自动浇水器两种。控制器的一般性能有:电磁阀控制;智能时控电路、微电脑芯片控制;但是自动类浇水器最大的缺点只是定时定量的浇水,不能准确的把握植物的需水量,所以也是要改进的。当前传感器技术与单片机技术发展迅速,其应用逐步由工业、军事等领域向其它领域渗透,已经和我们的日常生活息息相关。而且智能家居概念也越来越受到人们的推崇,因此,微电脑控制的电子类自动浇水系统有很好的发展前景。1.3 毕业设计所用的研究方法和手段本次设计是设计一种单片机控制的自动浇水系统,实现室内盆花浇水的自动系统。该系统可对土壤的湿度进行检测,并对作物进行适时适量的浇水。其核心是单片机同湿度采集、显示电路以及浇水驱动电路构成的检测控制部分。主要研究土壤湿度与浇水量之间的关系、浇灌控制技术及设备系统的硬件、软件编程各个部分。检测部分,单片机选用AT89S52单片机,软件选用C51语言编程1。土壤湿度采集与显示电路可将检测到的土壤湿度输出高低电平通过单片机内程序控制精确的将湿度显示在LCD显示屏上,同时通过单片机内的中断服务程序判断是否要给盆花浇水,若需浇水,则单片机系统发出浇水信号,开始浇水,若不需要浇水,则进行下一次循环检测2。在浇水系统中也同时设计一个定时浇水部分,通过按键开关设置不同的浇水时间段,在时间段以内时,单片机驱动浇水系统,开始浇水,如不在时间段内,则不浇水。2 智能浇花器的系统框图智能浇花控制系统的设计,系统主要是由单片机、电源、按键、显示、指示灯、复位电路、电磁阀模块等组成。其主要执行装置是一个电磁阀门,其一端连接水管,另外一端连接外置的水管作为浇水口,浇水的水量主要由单片机控制。设备主要是通过控制浇水的时间间隔和浇水的持续时间来控制浇水量的。整个自动浇花设备的结构可以分为5大部分:中央处理单元(CPU),LCD显示部分,电磁阀部分,报警电路,时钟电路。框图如图2.1所示。图2.1智能浇花器系统框图3 浇花系统硬件模块设计3.1 显示器模块设计液晶显示器是一种低功能耗液晶显示器件。工作电流小,适合于仪表和低功耗系统。常用的有笔画型液晶显示器、点阵字符型液晶显示器和图形点阵式液晶显示器。LCD液晶显示器的原理是利用液晶的物理特性,通过电压对其显示区域进行控制3。有电就显示黑色,这样就显示出图形。液晶显示器适应于大规模电路直接驱动,易于实现全彩色显示的特点。目前被广泛应用于计算机,数字摄像机等众多领域。LCD1602已很普遍了,市面上字符液晶绝大多数是基于 HD44780液晶芯片的,控制原理是完全相同的,因此 HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。字符型 LCD通常有 14条引脚线或 16条引脚线的 LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与 14脚的 LCD完全一样4。LCD1602的管脚连接图如图2.1所示。图2.1 LCD1602的管脚连接图1602采用标准的16脚接口,其中:第1脚:GND为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极5。结合AT89C52可以画出如原理图2.2。图2.2 LCD1602与AT89S52连接图3.2 时钟模块设计DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。在DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段6。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。图3示出DS1302与89C2051的连接图,其中,时钟的显示用LCD。实际上,在调试程序时可以不加电容器,只加一个32.768kHz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。只要占用CPU一个口线即可。 LCD还可以换成LED,还可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有34线串行接口,可与任何单片机、IC接口。功耗低,显示状态时电流为2A (典型值),省电模式时小于1A,工作电压为2.4V3.3V,显示清晰7。DS1302 与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入), D0=1,指定读操作(输出)。在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节。要特别说明的是备用电源B1,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100 F就可以保证1小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间8。图2.3 1302时钟模块DS1302 存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。但是,如果在系统中采用时钟芯片DS1302,则能很好地解决这个问题9。3.3 传感器模块设计这里选用的湿度传感器是DHT11湿度传感器。DHT11是一款专门为用户设计自身产品而提供的数字化温湿度探头,其湿度测量量程为199RH分辨率为0.5RH,测量精度为3.0RH(典型值);温度测量范围为-25+60,分辨率为0.0625,测量精度0.5,响应时间:5S(典型值),供电电源 +8 18V DC,300mA。DHT11采用一线总线, 因其具备能与计算机进行数字通讯、总线负载量大、布线简炼、精度高、性能稳定、价格便宜等多方面优点, 是工业现场系统设计的高级境界。一线总线的真正优势在于: 作为信号源, 无须考虑如何解决通讯协议问题; 在绝大多数场合, 不用考虑总线上连接的传感器数量; 在大多数场合甚至不需另外提供电源,传输距离远。一线总线的发展对于目前各种总线之间的通讯协议壁垒已构成强烈的冲击。DHT11是温湿一体型ITU模块, 具有分辨率高、工作温度范围范围带、稳定性高、编程简单、传输距离远等优点, 广泛应用于工业现场10。本设计利用湿度传感器检测花盆土壤的湿度,将采集到的湿度传送到单片机芯片,单片机根据湿度控制是否浇水。如果需要浇水,单片机的一个引脚p2.0置高电平。使继电器线圈通电敞开触点闭合,打开电磁阀,实现定时定量的自动浇水,设定时间到,电磁阀自动闭合,并且水流时间可调,上面安装了数码管并有一个按钮根据不同花卉所需水量不同。设置浇花时问长短,在数码管上可以显示浇水时间的长短;如果检测湿度足够,p2.0仍保持为低电平,不打开电磁阀。该技术所采用的技术方案是:利用单片机实现自动控制。首先检测采用何种方式浇花,如果定时定量浇花,就在规定的时间开始浇花。按照设置浇花时间的长短进行浇花;如果是根据湿度控制是否浇水就设置单片机1个引脚为低电平湿度传感器检测湿度。传送给单片机芯片,当检测到湿度不够时单片机这个引脚就变为高电乎,把继电器吸合,常开触点闭合,使得电磁阀线圈得电,此时电磁阀门有闭合变成断开,水流经过,给花卉浇水11。结构图如图2.4所示。图2.4 湿度浇花结构图3.4 继电器驱动模块设计单片机是一个弱电器件,一般情况下它们大都工作在 5V 甚至更低.驱动电流在mA 级以下.而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的“功率驱动”。继电器驱动就是一个典型的、简单的功率驱动环节.在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件;还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器。所以,继电器驱动就是单片机与其他大功率负载接口。这个很重要,因为一个小小的芯片,怎么会有如此强大的威力来控制像电动机这样强大的东西。原理如图2.5所示,里面的三极管很重要。三极管是电子电路里很重要的一个元件。简单的来说三极管有两个作用一个是放大作用,一个是开关作用。在这里,我们只了解它跟本电路有关的开关作用.图上还有一个东西,是保护二极管,如果不需要深入理解的话,你大可不必追就为什么有它存在,但是一定得记住,只要是用三极管驱动继电器的场合,一般都有它的存在.需要特别注意的是它的接法:并联在继电器两端 阴极一定是接vcc12。继电器这个东西很常见,在电子设备以及电力系统中的应用都很广泛,简单的来就是一种用小电流来控制大电流的开关。小电流通过线圈,产生磁场,这个磁场使得控制大电流的开关吸合。从而使得人们能够安全的超控大电流大电压设备。它具有控制系统和被控制系统通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与常开触点吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的常闭触点吸合。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。如图2.5当控制端电压为0时,Q1基极电压为(12-0.7=11.3V),改变 R1的大小便可改变基极电流,当基极电流足够大时,三极管饱合。为了验证以上的分析,我们搭了一个电路,R1取4.7K,此时基极电流为2.4mA,测得 Q1 ec电压为0.2V,继电器两端电压为11.8V。R1的取值不能太小,要保证基极电流在安全范围,也不能太大,要保证三极管图2.5继电器模块图能完全饱合,这个可以通过电压和电阻算出来。继电器串联 RC 电路:这种形式主要应用于继电器的额定工作电压低于电源电压的电路中。当电路闭合时,继电器线圈由于自感现象会产生电动势阻碍线圈中电流的增大,从而延长了吸合时间,串联上 RC 电路后则可以缩短吸合时间。原理是电路闭合的瞬间,电容C两端电压不能突变可视为短路,这样就将比继电器线圈额定工作电压高的电源电压加到线圈上,从而加快了线圈中电流增大的速度,使继电器迅速吸合。电源稳定之后电容C不起作用,电阻R起限流作用。基极和发射极的电阻的作用是:在没有正向偏置电压的情况下,保证基极的电压为零,防止三极管的受外部的干扰而误导通,其实就是为了保证可靠性。具体的阻值的大小不绝对,10K、100K 都可以的,只是起到下拉的作用,电流非常很小的13。3.5 报警模块设计当湿度低于设定的湿度的时候系统会自动浇花,同时有蜂鸣器报警提示,报警模块的原理图如图所示,当浇花的时候蜂鸣器会得到一个高电平蜂鸣器工作,当不浇花时蜂鸣器得到一个低电平蜂鸣器停止工作14。图2.6 报警模块原理图4 总电路设计4.1 总电路图电路图是人们为了研究和工程的需要,用约定的符号绘制的一种表示电路结构的图形。通过电路图可以知道实际电路的情况。这样,我们在分析电路时,就不必把实物翻来覆去地琢磨,而只要拿着一张图纸就可以了;在设计电路时,也可以从容地在纸上或电脑上进行,确认完善后再进行实际安装,通过调试、改进,直至成功;而现在,我们更可以应用先进的计算机软件来进行电路的辅助设计,甚至进行虚拟的电路实验,大大提高了工作效率。常遇到的电路图有原理图、方框图、装配图和印板图等。根据所学的知识将各个模块组合在一起便画出了电路总图。图3.1 室内浇花系统原理图4.2 电路图仿真电路仿真,顾名思义就是设计好的电路图通过仿真软件进行实时模拟,模拟出实际功能,然后通过其分析改进,从而实现电路的优化设计。是EDA(电子设计自动化)的一部分。Proteus软件对常用的主流单片机仿真都有很好的支持,把电路调试和单片机仿真结合在一起,单片机的软件可以直接加载到Proteus电路图中的单片机中运行和仿真。Proteus电路仿真软件功能非常强大,在电路设计中,能够直观有效的观察电路的运行状态,工作点和电路参数,利用仿真来调整电路参数达到设计目的,有事半功倍的效果,尤其在单片机程序调试过程中,无需搭建实验电路板,能够跟KeilC单片机程序开发软件直接联调,方便快捷的调试单片机的程序。如图是对电路总图的仿真。图4.1 室内浇花系统仿真图5 软件设计NY浇水土壤是否低于浇水上限值检测土壤湿度初始化开始汇编程序输入的是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序。汇编语言是为特定计算机或计算机系列设计的一种面向机器的语言,由汇编执行指令和汇编伪指令组成,流程图如图5.1所示。具体程序见附录。图5.1 室内浇花系统流程图结 论本次设计的盆花自动浇水系统以电子类的自动浇花器的工作原理为参考,运用温湿度采集电路及单片机控制技术构成一个土壤温湿度采集与控制系统,并且进行了硬件设计与程序分析,完成的电路总图的设计和仿真,仿真成功后生成PCB电路板焊接电路输入程序经过调试做出实物,并且使用效果很好。本设计的创新之处就是可以满足不同植物的需求来浇水,实现了科学种植,适量浇水,符合资源创建节约型社会的理念。本设计在做成实物的时候要注意为防止电磁阀吸合时使单片机复位,加入电容和电阻加以缓冲或者调整它们之间的距离,这里采用的是加入电阻电容的方法。这样方便把元器件集中,所做控制器也比较小。过本次毕业设计,让我进一步熟悉了一些元器件的功能和属性。也使我真正接触到了控制系统的设计,虽然是一个人们日常生活的小系统,但也让我明白了很多设计上应该注意的问题。比如实用性。经济性以及安装条件等。室内自定浇花系统的原理可以应用于许多控制工程,随着科技不断进步,更多的自动控制系统走进人们的世界,这样使我们的世界更加的丰富多彩,自动浇花系统将随着许多自动化产品有一个美好的前景。第 15 页黄河科技学院毕业设计说明书致 谢本论文是在我的老师张具琴的亲切关怀和悉心指导下完成的。她严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。张老师不仅在学业上给我以精心指导,同时还在思想、生活上给我以无微不至的关怀,在此谨向张老师致以诚挚的谢意和崇高的敬意。我还要感谢在一起完成论文的同学们,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。感谢这篇论文所涉及到的各位学者。感谢我的同学和朋友,在我写论文的过程中给予我了很多素材,还在论文的撰写和排版过程中提供热情的帮助。最后感谢我的母校-黄河科技学院对我的栽培。第 39 页黄河科技学院毕业设计说明书参考文献1王守中,聂元铭51单片机开发入门与典型实侧(2版)M北京:人民邮电出版社,20092王子洋,秦琳琳,吴刚,等基于切换控制的温室温湿度控制系统建模与预测控制J农业工程学报,2008,24(7):1881923薛玲,孙曼,张志会,等基于单片机AT89S51的温湿度控制仪J化工自动化及仪表,2010,37(7):66694邹应全51系列单片机原理与实验教程M.西安:西安电子科技大学出版社,20075张天鹏,翟亚芳,张修太,等基于LTM8901的温湿度控制系统设计J电子产品世界,2009(11):4144,476关文强,陶晓彦,张娜,等高湿度冰箱对青菜和西芹的保鲜效果J农业工程学报,2009,25(4):2652697王贵恩,洪添胜.屋顶隔热层生态环境多路数据自动采集系统J.华南农业大学学报,2006,27(02):108-1l0.8马俊,陈学煌.基于 DSP 的多路数据采集系设计J.电子技术应用,2007,(12):79-859何鹏.温室环境控制技术发展与应用传感器世J.温室控制,2008,(09):55-58.10孙荣高,吕昂.微控制器温室环境温湿度程序控制系统的研究与设计J.微计算机信息,2005,(10):22-24.11李敏,孟臣.数字式温 /湿度传感器及其应用技术J.电子元器件应用,2004,(11):11-14.12李泉溪.单片机原理与应用实例仿真M.北京:北京航天大学出版社,2009.8.13李敏.孟臣.数字式温湿度传感器及其应用技术J.电子元器件应用,2004,11.14 周功海,刘晓刚,何翠萍. 单片机控电子时钟的设计J. 煤矿现代化,2007,01(12):56-58.附录:*/*includes-*/ #include #include #include #include #include #include #include #include /*defines-*/#define Time0_TH0 0xc6 /定义计数器0计数寄存器装载的高8位值,可自行修改#define Time0_TL0 0x0d /定义计数器0计数寄存器装载的低8位值,可自行修改#define State_Clock 0 /定义空闲状态#define State_AdjustYear 1 /定义年份调整状态#define State_AdjustMonth 2 /定义月份调整状态#define State_AdjustDay 3 /定义日份调整状态#define State_AdjustHour 4 /定义时调整状态#define State_AdjustMinute 5 /定义分调整状态#define State_AdjustSecond 6 /定义秒调整状态#define State_Monitoring 7 /定义湿度监控状态#define State_AdjustTimeDuration 8 /定义浇水时长整状态#define State_AdjustWateringHour 9 /定义浇水时调整状态#define State_AdjustWateringMinute 10 /定义浇水分调整状态#define State_AdjustHumidity 11 /定义湿度调整状态 #define Model_Timing 12 /定义定时模式状态#define Model_Automatic 13 /定义自动模式状态/*variable-*/unsigned char data SetTime = 9,9,9,9,3,1,12;unsigned char data CurrentTime7;unsigned char Button_Value; /定义按键状态值变量unsigned char Automatic_State; /定义自动状态变量unsigned char Timing_State; /定义定时状态变量unsigned char Model_State; /定义模式状态变量unsigned char Value_AdjustWeek; /定义星期调整变量unsigned char Value_AdjustYear; /定义年份调整变量unsigned char Value_AdjustMonth; /定义月份调整变量unsigned char Value_AdjustDay; /定义日份调整变量unsigned int Value_Timing; /定义浇水定时长度变量unsigned char Value_AdjustWateringHour; /定义闹钟时调整变量unsigned char Value_AdjustWateringMinute; /定义闹钟分调整变量unsigned char Value_AdjustHour; /定义时调整变量unsigned char Value_AdjustMinute; /定义分调整变量unsigned char Value_AdjustSecond; /定义秒调整变量 unsigned char HumidityValue; /定义湿度值变量unsigned int Value_Measured; /定义传感器测量值变量unsigned char HumidityValueLimit; /定义湿度极限值变量unsigned char WateringHour; /定义闹钟时钟变量unsigned char WateringMinute; /定义闹钟分钟变量unsigned char CloseHour; /定义闹钟时钟变量unsigned char CloseMinute; /定义闹钟分钟变量unsigned char SweepInterval_ShowTime; /定义时间显示扫描时间变量/定义湿度显示扫描时间变量unsigned char SweepInterval_Humidity; unsigned char SweepInterval_Button; /定义按键扫描时间变量unsigned char SweepInterval_Watering; /定义按键扫描时间变量unsigned char State_RealtimeClock; /定义警告扫描时间变量bit Flag_ShowTime = 0; /定义时间显示标志变量bit Flag_ShowHumidity = 0; /定义湿度显示标志变量bit Flag_Watering = 0; /定义警报扫描标志变量bit Flag_Button = 0; /定义按键扫描标志变量 bit Value_Effective = 0; /定义测量有效标志变量/* 函数名称:Time0_Initialization(void)函数功能:定时器0初始化函数备 注:定时器工作于方式1,定时器计数寄存器16位全部用于计数 */ void Time0_Initialization(void)TMOD=0x21; /T0,工作方式1TH0=Time0_TH0; /装载定时器0寄存器高8位值TL0=Time0_TL0; /装载定时器0寄存器低8位值TR0=1; /开启T0定时器ET0=1; /允许T0定时器中断EA=1; /开启总中断允许/* 函数名称:RealtimeClock_ShowCurrentTime(void)入口参数:void 出口参数:void 函数功能:实时时钟显示当前时间 */void RealtimeClock_ShowCurrentTime(void)DS1302_ReadTime(CurrentTime);LCD1602_DisplayTwoNumber( 8,0,CurrentTime6);/显示年份LCD1602_DisplayTwoNumber(11,0,CurrentTime4);/显示月份LCD1602_DisplayTwoNumber(14,0,CurrentTime3);/显示日份LCD1602_DisplayTwoNumber( 8,1,CurrentTime2);/显示时钟LCD1602_DisplayTwoNumber(11,1,CurrentTime1);/显示分钟LCD1602_DisplayTwoNumber(14,1,CurrentTime0);/显示秒钟LCD1602_SetCursorPosition(16,1);/* 函数名称: LCD1602_ShowTemperatureAndHumidity(void) * 输入参数: void* 输出参数: void* 功能书名: LCD1602显示湿度和温度值*/void LCD1602_ShowTemperatureAndHumidity(void)Value_Measured = SHT1X_MeasuredData(HUM_TEST,55);HumidityValue = SHT11_ConvertFor12BitHumidity(Value_Measured);LCD1602_DisplayTwoNumber(10,1,HumidityValue);LCD1602_SetCursorPosition(16,0);/* 函数名称:RealtimeClock_ShowCurrentTime(void)入口参数:void 出口参数:void 函数功能:实时时钟显示当前时间 */void IntelligentWater_ModelInitialization(unsigned char Model)switch(Model)case Model_Timing:/*-LCD第一行显示-*/LCD1602_DisplayOneCharacterString(0x00,0,T:*-20 / / );/*-LCD第二行显示-*/LCD1602_DisplayOneCharacterString(0x00,1,S: : - : : );/*-闹钟显示初始化-*/DS1302_ReadTime(CurrentTime);LCD1602_DisplayTwoNumber( 2,0,Value_Timing); /显示定时长度LCD1602_DisplayTwoNumber( 8,0,CurrentTime6);/显示年份LCD1602_DisplayTwoNumber(11,0,CurrentTime4);/显示月份LCD1602_DisplayTwoNumber(14,0,CurrentTime3);/显示日份LCD1602_DisplayTwoNumber( 8,1,CurrentTime2);/显示时钟LCD1602_DisplayTwoNumber(11,1,CurrentTime1);/显示分钟LCD1602_DisplayTwoNumber(14,1,CurrentTime0);/显示秒钟LCD1602_DisplayTwoNumber(2,1,Water

温馨提示

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

评论

0/150

提交评论