基于单片机的盆花自动浇水控制系统设计_第1页
基于单片机的盆花自动浇水控制系统设计_第2页
基于单片机的盆花自动浇水控制系统设计_第3页
基于单片机的盆花自动浇水控制系统设计_第4页
基于单片机的盆花自动浇水控制系统设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

目录摘要……………………1关键词…………………11前言…………………21.1选题的目的和意义………………21.2自动浇花器的诞生背景及国内外开展现状……21.3毕业设计采用的研究方法和手段………………42AT89C51单片机………………………42.1AT89C51单片机的根本组成………42.2AT89C51主要特性…………………52.3管脚说明…………62.4AT89C51单片机的存储器…………82.4.1程序存储器……………………82.4.2数据存储器……………………82.5振荡电路和时钟…………………92.6AT89C51的中断系统………………102.6.1中断系统结构和中断控制……………………102.6.2中断响应过程…………………112.7定时器/计数器…………………122.7.1定时器/计数器0和1的简介…………………132.7.2定时器/计数器0和1相关的特殊功能存放器………………133温湿度传感器………………………143.1数字温湿度传感器SHT-11………143.2SHT-11的特性……………………153.2.1SHT-11的特点…………………153.2.2SHT的详规格……………………163.3SHT-11的引脚……………………163.4SHT-11的内部命令与接口时序…………………173.4.1SHT-11的命令顺序及命令时序………………173.4.2SHT-11的内部命令……………………183.4.3SHT-11的状态存放器…………183.5硬件接口…………193.6恢复处理…………204DS1302时钟芯片……………………204.1DS1302时钟芯片的简介…………204.2引脚………………214.3命令字节…………215液晶显示器LCD……………………245.1液晶显示器的分类………………245.2ATMPIRE128×64………………255.2.1LCD128×64引脚功能……………………265.2.2KSO108控制器指令功能……………………265.2.3应用说明……………………286盆花自动浇水系统的设计………286.1土壤温湿度检测与控制………286.2硬件电路的设计………………296.3系统软件的设计………………337结论………………36参考文献………………36致谢……………………37附录…………………38基于单片机的盆花自动浇水控制系统设计摘要:本次设计的盆花自动浇水系统包括土壤温湿度的检测与控制和蓄水箱自动上水及水位报警两大局部。土壤温湿度的检测与控制局部又包括了土壤温湿度的检测和显示、自动浇水系统。土壤温湿度的检测和显示以温湿度传感器SHT-11为感应部件,将检测到的土壤温湿度值送入AT89C51单片机,再由其输出到LCD屏进行显示。自动浇水系统设计为智能和手动两个局部:智能浇水局部是通过单片机程序设定浇水的上下限值与SHT-11送入单片机的土壤湿度值相比拟,当低于下限值时,单片机输出一个信号控制电磁阀翻开,开始浇水,高于上限值时再由单片机输出一个信号控制电磁阀关闭,停止浇水;手动局部是由单片机从时钟芯片DS1302读入月份与每天的实时时刻,通过软件程序设定定时浇水的时间与浇水的量。关键词:AT89C51单片机SHT-11温湿度传感器LCDDS1302时钟芯片C51程序数字电路PottedplantwateringcontrolsystembasedonPLCAbstract:Thedesignoftheautomaticwateringsystemincludessoilpothumiditydetectionanddisplay,automaticwateringandstorageboxautomaticwaterandwaterlevelalarmthreeparts.S-oiltestinganddisplayoftemperatureandhumiditysystemtakesTemperatureandhumiditysen-sorSHT-11asinductivecomponents,itwilldetectthesoiltemperatureandhumidityvalueandinputthevaluetotheAT89C51microcontroller,thenthetemperatureandhumidityvaluewillbeoutputtoLCDscreendisplayed.Automaticwateringsystemdesignforintelligenceandmanualtwoparts.Intelligentwateringpartthroughthemicrocontrollerprogramsettingtheupperandlo-werwaterattained,thencomparingthisupperandlowerwaterattainedwiththevalethatthroug-hingSHT-11inputtingtothemicrocontroller.WhenbelowthelimitSCMoutputsasignaltoo-peningtheElectromagneticvalve,andStartwatering.ifAbovetheupperlimitvalue,theSCMwilloutputanothersignaltoTurnningofftheElectromagneticvalve,andStopwatering.ManualpartreadthetimefromtheclockchipDS1302bymicrocomputer.Throughsoftwareprogramtosettingtheregularwatering'timeandWateringamount.StorageboxWaterlevelcontrolsystemu-sesPurehardwarecontrol.Keywords:AT89C51microcontroller;SHT-11temperatureandhumiditysensor;LCD;clockchipDS1302;C51program;Digitalcircuit1前言1.1选题的目的和意义随着社会生活的进步,人们的生活质量越来越高。在家里养盆花可以陶冶情操、丰富生活。同时,盆花通过光合作用可吸收二氧化碳,净化室内空气,在有花木的地方空气中阴离子聚积较多,所以空气也特别清新,而且有许多花木还可吸收空气中的有害气体,因此,养盆花如今被许多的人所喜爱。盆花浇水量是否能做到适时适量,是养花成败的关键。但是,在生活中人们总是会有无暇顾及的时候,比方工作太忙或者出差、旅游等。花草生长问题80%以上是由花儿浇灌问题引起;好不容易种植几个月的花草,因为浇水不及时,长势不好,用来美化家园的花草几乎成了“鸡肋〞;不种植了吧,家中没有绿色衬托感觉没有生机;保存吧,花草长得不够旺盛,还影响家庭装饰效果。虽然目前市面上有卖盆花自动浇水器的,但价格十分的昂贵,并且大多只能设定一个定时浇水的时间,很难做到给盆花适时适量浇水。也有较经济的盆花缺水报警器,可以提醒人们及时的给盆花浇水。可是这种报警器只能报警,浇水还是需要人们亲自动手。当家里无人时,即使报警也无人浇水,就起不到应有的作用了。因此,我想通过设计一种集盆花土壤湿度检测,自动浇水以及蓄水箱自动供水于一体的盆花自动浇水系统。让盆花在人们无暇照顾时也能得到及时的浇灌。1.2自动浇花器的诞生背景及国内外开展现状微喷系统是近几年利用国内外先进技术组装的新型灌溉设施,主要是利用水流通过低压管道系统以一定速度从特制的喷头喷出,在空气中分散成细小的水滴,着落在花草植物、作物及周围的地面上,从而到达及时补充水分的目的。该系统具有用水量少、冲击力小的灌溉特性,适用于栽培密度大、植株柔软细嫩的植物。自动浇花器的诞生是随着人们生活水平的提高和生活节奏的加快而诞生的一种懒人园艺用品。它把微喷的概念应用于家庭盆花浇灌中,通过相应的改良,到达合理给盆花自动浇水的目的。早在很多年前,国外就已经开始普及,国内使用的电子类自动浇花器多数从国外进口的,价格昂贵,但质量比拟可靠。不过这并不太适用于国内,目前国内外比拟流行的是玻璃制作的自动浇花器。这种类型的浇花器多数在我国山西和浙江一带加工生产的,价格比拟低廉,实用性没有电子类自动浇花器好。随着国内居民消费水平和生活质量的提高,居家园艺市场异常火爆,但是由于生活节奏加快,种花容易养花难的问题暴露出来,而养花最重要的问题就是浇水问题,研究说明花草80%以上的死亡由于浇水不及时引起,因此国内商家已经看到了这种需求潜力。目前这类小居家用品的厂家主要集中在广东,上海,浙江一带。现在市面上所出售的自动浇花器主要有以下几类:⑴电子类自动浇花器电子类自动浇花器又叫时控喷淋装置,系统构成为:主机〔或者控制器〕、主管〔可以是花园管也可以是4/7mm的微喷淋管〕、分水接头(3通、4通、5通、6通、分水器〕、副管(3/5mm)喷淋管〔雾化喷头、旋转喷头、折射雾化喷头等〕。电子类自动浇花器根据电源的不同分为交流电自动浇花器和电池自动浇花器两种。控制器的一般性能有:电磁阀控制;智能时控电路•微电脑芯片控制;适用电源为AC220V/50HZ;最适宜水压0.3-0.6Mpa;待机功率〔4VA,浇水时<12VA〕;可控制连续作业时间是1分钟至168个小时;可每天自动完成十次以上浇水作业,可每天、隔天、隔多天自动循环进行浇水,手动自动两用;每天计时误差小于正负3秒;电器适应环境温度为-10~50℃;相对湿度<90%RH。⑵玻璃、陶瓷类自动浇花器玻璃、陶瓷类自动浇花器又叫自动渗水装置,它由本身材质的物理结构构成,根据器具的物理渗水原理完成自动浇灌,当自动浇水器内部存水,自身形成一定的压力,当遇到枯燥的土壤,水就会自上而下的流出,当土壤湿润以后,会形成一个堵塞压力,从而导致水流速度变慢或者停止。器具工艺不同,效果也不一样,当然也因土壤的疏松情况决定器具内水流的速度。当前传感器技术与单片机技术开展迅速,其应用逐步由工业、军事等领域向其他领域渗透,已经和我们的日常生活息息相关。而且智能家居概念也越来越受人们的推崇,因此,微电脑控制的电子类自动浇花系统有很好的开展前景。1.3毕业设计所采用的研究方法和手段本次毕业设计是设计一种单片机控制的自动浇水系统,实现室内盆花浇水的自动化系统。该系统可对土壤的温湿度进行监控,并对作物进行适时、适量的浇水。其核心是单片机和温湿度传感器以及浇水驱动电路构成的检测控制局部。主要研究土壤湿度与浇水量之间的关系、浇灌控制技术及设备系统的硬件、软件编程各个局部。检测局部,单片机选用AT89C51单片机,温湿度传感器选用SHT11温湿度传感器。SHT-11采用COMSens专利传感器技术将温度湿度传感器、A/D转换器、数字接口、校准数据存储器、标准I2C总线等电路全部集成在一个芯片内。软件选用C51语言编程。土壤温湿度传感器可将检测到的土壤温湿度模拟量放大转换成数字量通过单片机内程序控制精确的将温度与湿度分别显示在LCD显示屏上,同时通过单片机内的中断效劳程序判断是否要给盆花浇水,假设需浇水,那么单片机系统发出浇水信号,并经放大驱动设备,开启电磁阀进行浇水,假设不需浇水,那么进行下一次循环检测。在浇水系统中也同时设计一个手动浇水局部,系统工作时通过设置键的按下与否来选择浇水系统的工作方式。土壤浇水驱动电路采用继电器开关电路,蓄水箱水位报警以及自动上水局部采用纯硬件控制。2AT89C51单片机AT89C51是一种带4K字节闪烁可编程可擦除只读存储器〔FPEROM—FalshProgrammableandErasableReadOnlyMemory〕的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。2.1AT89C51单片机的根本组成AT89C51由一个8位的微处理器,128KB片内数据存储器RAM,21个特殊功能存放器SFR,4KB片内程序存储器FlashROM,64KB可寻址片内外统一编址的ROM,64KB可寻址片外的RAM,4个8位并行I/O接口〔P0—P3〕,一个全双工通用异步串行接口UART,两个16位的定时器/计数器,具有位操作功能的布尔处理机及位寻址功能的五个中断源、两个优先级的中断控制系统以及片内振荡器和时钟产生电路。其根本组成框图如图2-1所示。图2-1AT89C51的根本组成2.2AT89C51主要特性AT89C51主要特性有:·与MCS-51兼容·4K字节可编程闪烁存储器

·寿命:1000写/擦循环

·数据保存时间:10年

·全静态工作:0Hz-24Hz

·三级程序存储器锁定

·128*8位内部RAM

·32可编程I/O线

·两个16位定时器/计数器

·5个中断源

·可编程串行通道

·低功耗的闲置和掉电模式

·片内振荡器和时钟电路2.3管脚说明此处省略

NNNNNNNNNNNN字。如需要完整说明书和设计图纸等.请联系

扣扣:九七一九二零八零零另提供全套机械毕业设计下载!该论文已经通过辩论2.4AT89C51单片机的存储器在单片机中,存储器分为程序存储器ROM和数据存储器RAM,并且两个存储器是独立编址的。AT89C51单片机芯片内配置有8KB〔0000H~1FFFH〕的Flash程序存储器和256字节〔00H~FFH〕的数据存储器RAM,根据需要可外扩到最大64KB的程序存储器和64KB的数据存储器,因此AT89C51的存储器结构可分为4局部:片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。如果以最小系统使用单片机,即不扩展,那么AT89C51的存储器结构就较简单:只有单片机自身提供的8KBFlash程序存储器和256字节数据存储器RAM。图2-3给出了AT89C51单片机的存储器分布空间。左侧线框中为单片机自身提供的8KBFlash程序存储器和256字节数据存储器RAM。右侧为可扩展的64KB的程序存储器ROM和64KB的数据存储器RAM。2.4.1程序存储器AT89C51单片机出厂时片内已带有8KB的Flash程序存储器,使用时,引脚要按高电平〔5V〕,这时,复位后CPU从片内ROM区的0000H单元开始读取指令代码,一直运行到1FFFH单元,如果外部扩展有程序存储器ROM,那么CPU会自动转移到片外ROM空间2000H~FFFFH读取指令代码。图2-3存储器空间分布图2.4.2数据存储器AT89C51单片机出厂时片内已带有256字节的数据存储器RAM,如果不够用,可以在片外扩展,最多可扩展64KBRAM。图2-4片内数据存储器的结构单片机自带的数据存储器RAM结构如图2-4所示,此256字节单元〔00H~FFH〕的低128字节〔00H~7FH〕单元为用户使用区,高128字节〔80H~FFH〕单元为特殊功能存放器SFR区。片内数据存储器的00H~7FH单元又划分为3块:00H~1FH块是工作存放器所用;20H~2FH块是位寻址功能的单元区;30H~3FH是普通RAM区。工作存放器又分为4组,在当前的运行程序中只有一组是被激活的,谁被激活有程序状态存放器PSW的RS1,RS0两位决定。2.5振荡电路和时钟在AT89C51芯片内部,有一个振荡电路和时钟发生器,引脚XTAL1和XTAL2之间接入晶体振荡器和电容后构成内部时钟方式。也可以使用外部振荡器,由外部振荡器产生的信号直接加载到振荡器的输入端,作为CPU的时钟源,称为外部时钟方式。采用外部时钟方式时,外部振荡器的输出信号接至XTAL1,XTAL2悬空。两种方式的电路连接如图2-5所示。大多数的单片机采用内部时钟方式,本次设计亦然。〔a〕使用片内振荡器接法〔b〕使用片外振荡器接法图2-5AT89C51振荡器的连接方式在AT89C51单片机内部,引脚XTAL2和引脚XTAL1连接着一个高增益反相放大器,XTAL1引脚是反相放大器的输入端,XTAL2引脚是反相放大器的输出端。芯片内部的时钟发生器是一个二分频触发器,振荡器的输出为其输入,输出为两相的时钟信号〔状态时钟信号〕,频率为振荡器输出信号频率的1/2。状态时钟经三分频后为低字节地址锁存信号ALE,频率为振荡器输出信号频率的1/6,经六分频后为机器周期信号,频率为/12。、一般取20~30pF的陶瓷电容器。2.6AT89C51的中断系统为了提高系统的工作效率,AT89C51单片机设置了中断系统,采用中断方式与外设进行数据传送。所谓“中断〞,是指单片机在执行某一段程序的过程中,由于某种原因〔如异常情况或特殊请求〕,单片机暂时中止正在执行的程序,而去执行相应的处理程序,待处理结束后,再返回到被打断的程序处,继续执行原程序的过程。2.6.1中断系统结构和中断控制AT89C51有六个固定的可屏蔽中断源,分别是三个片内定时器/计数器溢出中断TF0、TF1和TF2,两个外部中断(P3.2)和(P3.3),一个片内串行口中断TI或RI。6个中断源有两级中断优先级,可形成中断嵌套。它们在程序存储器中各有固定的中断入口地址,由此进入相应的中断效劳程序。引起6个中断源的符号、名称及产生的条件如下::外部中断0,由P3.2端口线引入,低电平或下降沿引起;:外部中断1,由P3.3端口线引入,低电平或下降沿引起;T0:定时器/计数器0中断,由T0记满回零引起;T1:定时器/计数器1中断,由T1记满回零引起;TI/RI:串行口I/O中断,串行端口完成一帧字符发送/接收后引起中断;T2:定时器/计数器2中断,由T2记满回零引起。在本次设计中采用了定时器/计数器0中断,它的中断控制存放器包括定时器/计数器0、1控制存放器TCON和中断允许控制存放器IE。①定时器控制存放器TCONTCON是定时器/计数器和外部中断两者合用的一个可位寻址的特殊功能存放器,它的格式如下:D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0各控制位定义如下:TF1:定时器/计数器1溢出中断请求标志位。当定时器/计数器1计数产生溢出时,由内部硬件置位TF1,向CPU响应中断并转向该中断效劳程序执行时,由硬件内部自动TF1清0。TR1:定时器/计数器1启动/停止位。由软件置位/复位控制定时器/计数器1的启动或停止计数。TF0:定时器/计数器0溢出中断请求标志位。当定时器/计数器0计数产生溢出时,由内部硬件置位TF0,向CPU响应中断并转向该中断效劳程序执行时,由硬件内部自动TF1清0。TR0:定时器/计数器0启动/停止位。由软件置位/复位控制定时器/计数器0的启动或停止计数。IE1:外部中断请求标志位。当CPU检测到INT0低电平或下降沿且IT1=1时,由内部硬件置位IE1标志位〔IE1=1〕向CPU请求中断,当CPU响应中断并转向该中断效劳程序执行时,由硬件内部将IE1清0。IE0:外部中断请求标志位。当CPU检测到INT0低电平或下降沿且IT0=1时,由内部硬件置位IE0标志位〔IE0=1〕向CPU请求中断,当CPU响应中断并转向该中断效劳程序执行时,由硬件内部将IE0清0。IT1:用软件置位/复位IT1来选择外部中断INT1是下降沿触发还是电平触发中断请求。当IT1置1时,那么外部中断INT1为下降沿触发中断请求,即INT1端口由前一个机器周期的高电平跳变为下一个机器周期的低电平,那么触发中断请求;当IT1复位清0,那么INT1的低电平触发中断请求。IT0:由软件置位/复位IT0来选择外部中断INT0是下降沿触发还是低电平触发中断请求,其控制原理同IT1。②中断允许控制存放器中断允许控制存放器IE的格式如下:D7D6D5D4D3D2D1D0EAET2ESET1EX1ET0EX0各控制位定义如下:EA:中断总控制为。EA=1,CPU开中断,它是CPU是否响应中断的前提,在此前提下,如果某中断源的中断允许位置1,才能响应该中断源的中断请求。如果EA=0,无论哪个中断源有请求,CPU都不予回应。ET2:定时器/计数器T2中断控制位,ET2=1,允许T2计数溢出中断;ET2=0,禁止T2中断。ES:串行口中断控制位,ES=1,允许串行口发送/接收中断;ES=0禁止串行口中断。ET1:定时器/计数器T1中断控制位,ET1=1,允许T1计数溢出中断;ET1=0,禁止T1中断。EX1:外部中断1控制位,EX1=1,允许中断;EX1=0,禁止外部中断1中断。ET0:定时器/计数器T0中断控制位,ET0=1,允许T0计数溢出中断;ET0=0,禁止T0中断。EX0:外部中断0控制位,EX0=1,允许中断;EX0=0,禁止外部中断0中断[1]。2.6.2中断响应过程CPU中断处理从响应中断、控制程序转向对应的中断矢量地址入口处执行中断效劳程序,到执行返回〔RETI〕指令为止。中断响应可分为以下几个步骤:①保护断点,即保存下一个将要执行的指令的地址,把这个地址送入堆栈。②寻找中断入口,根据6个不同的中断源所产生的中断,中断系统必须能够正确地识别中断源,查找6个不同的入口地址。以上工作是由单片机自动完成的,与编程者无关。在6个入口地址处存放有中断处理程序。③执行中断处理程序。④中断返回:执行完中断指令后,从中断处返回到主程序,继续执行[2]。2.6.2中断响应过程CPU中断处理从响应中断、控制程序转向对应的中断矢量地址入口处执行中断效劳程序,到执行返回〔RETI〕指令为止。中断响应可分为以下几个步骤:①保护断点,即保存下一个将要执行的指令的地址,把这个地址送入堆栈。②寻找中断入口,根据6个不同的中断源所产生的中断,中断系统必须能够正确地识别中断源,查找6个不同的入口地址。以上工作是由单片机自动完成的,与编程者无关。在6个入口地址处存放有中断处理程序。③执行中断处理程序。④中断返回:执行完中断指令后,从中断处返回到主程序,继续执行[2]。2.7定时器/计数器AT89C51单片机内部设有两个16位可编程定时器/计数器,即定时器/计数器0和定时器/计数器1。除此之外还有一个可编程定时器/计数器2。2.7.1定时器/计数器0和1简介定时器/计数器0和1内部有一个计数存放器〔和〕,它实际上是一个累加存放器进行加1计数。定时器和计数器共用这个存放器,但定时器/计数器同一时刻只能工作在其中一种方式下,不可能既工作在定时器方式,同时又工作在计数器方式。这两个工作方式的根本区别是在于计数脉冲的来源不同。工作在定时器方式时,对振荡源12分频的脉冲计数,即每过一个机器周期〔1个机器周期在时间上和12个振荡周期的时间相等〕,计数存放器中的值就加1。工作在计数器方式时,计数脉冲不是来自内部的机器周期,而是来自外部输入。对定时器/计数器0、定时器/计数器1,计数脉冲分别来自T0、T1引脚。当这些引脚上输入的信号产生高电平至低电平的负跳变时,计数存放器的值就加1。单片机每个机器周期都要对对外部输入进行采样,如果在第一个周期采得的外部信号为高电平,在下一个周期采得的信号为低电平,那么在再下一个机器周期,即第三个机器周期计数存放器的值才增加1[1]。2.7.2与定时器/计数器0和1相关的特殊功能存放器①计数存放器TH0、TL0和TH1、TL1计数存放器是16位的,再启动定时器时需要对它设定初始值。是计数存放器的高8位,是计数存放器的低8位。TH0、TL0对应T/C0,TH1、TL1对应T/C1。②定时器/计数器控制存放器TCON定时器/计数器控制存放器TCON的格式如下:TF1TR1TF0TR1IE1IT1IE0IT0TF1为T/C1的溢出标志,溢出时由硬件置1,进入中断后又由硬件自动清0。TR1为T/C1的启动和停止位,由软件控制。置1时启动T/C1;清0时停止T/C1。TF0和TR0的功能和使用方法以TF1、TR1类似,只是它们针对的是T/C0。③定时器/计数器方式控制存放器TMOD定时器/计数器方式控制存放器TMOD的格式如下所示。它的控制位都是由软件控制的,其中高4位是针对T/C1的,低4位是针对T/C0的,其功能和使用方法相似。GATEM1M0GATEM1M0现在以T/C0来说明各控制位的使用方法:GATE是一个选通位,当GATE位置1时,T/C0受到双重控制,只有为高电平且TR0位置1是T/C0才开始工作,当GATE位清0时,T/C0仅受到TR0的控制。用来选择工作在定时器方式还是计数器方式。当该位置1时工作在计数器方式,清0时工作在定时器方式。M1和M0联合起来用于选择操作模式,一共有四种操作模式,如表2-2所示。表2-2操作模式M1M0操作模式计数器配置00模式013位计数器10模式2自动重转载的8位计数器10模式2自动重转载的8位计数器11模式3T0分为两个8位计数器,T1停止计数3温湿度传感器传统的模拟式湿度传感器需设计信号调理电路并要经过复杂的校准、标定过程,测量精度难以得到保证,且在线性度、重复性、互换性、一致性等方面往往不尽人意。为解决这些问题,瑞士Sensirion公司推出了新一代基于CMOSensTM技术的数字式温湿度传感器。它很好地解决了温湿度传感器存在的上述问题,实现了数字式输出、免调试、免标定、免外围电路及全互换功能[3]。3.1数字温湿度传感器SHT-11数字温湿度传感器SHT—11采用COMSens专利传感器技术将温度湿度传感器、A/D转换器、数字接口、校准数据存储器、标准I2C总线等电路全部集成在一个芯片内〔其内部结构如图3-1所示〕[4]。图3-1数字温湿度传感器SHT—11的内部结构图由它的内部结构可看出SHT-11具有不同保护的“微型结构〞检测电极系统与聚合物覆盖层组成了传感器芯片的电容,这样除保持了电容式湿敏器件的原有特性外还可抵御来自其它方面的影响。将温度传感器与湿度传感器结合在一起构成了一个单一的个体,这就使得测量精度提高并且可以精确得出露点,而不会产生由于温度与湿度传感器之间随温度梯度变化而引起的误差。而且将传感器元件、信号放大器、模/数转换器、OTP校准数据存储器、I2C工业标准串行总线等,电路功能部件全部采用CMOS技术与温湿度传感器一起放置在一个芯片内。这不仅使信号强度增加,更重要的是长期稳定性也得到增强,这对传感器系统是极为重要的。同时,模/数转换也在一个芯片内同时完成,这可使信号对噪声不敏感,尤其重要的是,在传感器芯片数据存储器内装载的针对每一只传感器的校准数据保证了每一只传感器都有相同的功能,可以实现100%的互换。此外,。该传感器还具有I2C二线串行总线接口,这可使传感器方便的与任何类型的微处理器、微控制器接口相连,为温湿度的微机化测试带来极大的方便,这不仅能减少温湿度测试系统的开发时间,还可节约数字化接口的软硬件本钱。该传感器还有反响迅速、高精度、低功耗等优点。3.2SHT-11的传感器输出SHT-11的相对湿度绝对精度、温度精度和25℃露点精度如图3-2(a)~(c)所示[4]。〔a〕湿度绝对精度〔b〕温度精度〔C〕25℃露点精度图3-2相对湿度、温度和露点的精度曲线3.2.1湿度值输出SHT-11可通过I2C总线直接输出数字量湿度值,其相对湿度输出特性曲线如图3-2所示。从中可以看出,SHT11的输出特性呈一定的非线性,为了补偿湿度传感器的非线性以获取准确数据,可按式〔3-1〕修正湿度值:=式中,SORH表示传感器相对湿度测量值,系数取值分别如下:12位时:;8位时:。3.2.2温度值输出SHT-11温度传感器的线性非常好,可用以下公式〔3-2〕将温度数字输出转换成实际温度值T:式中,表示传感器温度测量值。当电源电压为5V,温度传感器的分辨率为14位时,,;当温度传感器的分辨率为12位时,,。图3-3相对湿度输出特性曲线3.2.3露点计算空气的露点值可根据相对湿度和温度值由下面公式计算:式中,——饱和水蒸气压强〔mmHg〕3.2.4非线性校正及温度补偿式〔3-1〕为相对湿度的非线性补偿计算公式,对于单片机系统而言,计算量大而过复杂,下面给出简化的计算方法。〔1〕线性当系统对湿度测量精度要求不高时,可采用以下的线性计算公式。式中,。〔2〕2×线性当系统对湿度测量精度要求较高时,可采用以下的2×线性计算公式,即用最小的计算复杂性来提高精确度。式中,为8位湿度传感器输出湿度值。当时,,;当时,,。〔3〕温度补偿上述湿度计算公式是按环境温度为25℃进行计算的,而实际的测量温度值那么在一定的范围内变化,所以应考虑湿度传感器的温度系数,可按式对环境温度进行补偿。当为12位时,,;当为8位时,,3.3SHT-11的特性3.3.1SHT-11的特点SHT-11传感器的特点如下:1〕相对湿度和温度一体测量;2〕精确露点测量;3〕全量程标定,无需重新标定即可互换使用;4〕超快响应时间;5〕两线制数字接口〔最简单的系统集成,较低的价格〕;6〕超小尺寸〔7.5×5×2.5mm〕;7〕高可靠性〔工业CMOS工业〕;8〕优化的长期稳定性;9〕可完全浸没水中;10〕基于请求式测量,因此低能耗;11〕具有湿度传感器元件的自检测能力;12〕传感器元件加热应用,亦可获得极高的精度和稳定性。3.3.2SHT的详细规格1.相对湿度传感器〔RH〕的性能参数如下:范围:0—100%RH;精度:±3%RH〔20—80%RH〕;响应时间:≤4s;复现性:±0.1%RH;分辨率:0.03%RH;工作温度:-40℃—+120℃。2.温度传感器〔T〕的性能参数如下:范围:-40℃—+120℃;精度:±0.5℃〔在25℃时〕,±0.9℃〔在0—40℃时〕;响应时间:≤20s;复现性:±0.1℃;分辨率:0.01℃。3.电器数据能耗:典型30uW〔@5V,12-bit,测量周期2秒〕典型1uW〔@2.4V,8-bit,测量周期2分〕;供电范围:2.4V—5.5V;检测电流:0.5mA;待机电流:0.3uV。3.4SHT-11的引脚SHT-11的引脚图如图3-4所示。图3-4SHT-11的引脚图引脚简介引脚1—GND接地端;SHT-11的供电电压为0.4~5.5V,传感器上电后要等待11ms以越过“休眠〞状态。在此期间无需发送任何指令,电源引脚〔VDD,GND〕之间可增加一个100uF的电容,用以去耦滤波。引脚2—DATA双向串行数据线;SHT-11的串行接口,在传感器的读取及电源损耗方面都做了优化处理。DATA三态门用于数据的读取。引脚3—SCK串行时钟输入;用于微处理器与SHT-11之间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小SCK频率。引脚4—VDD电源端,0.4—5.5V电源引脚5—8—NC空管脚3.5SHT-11的的内部命令与接口时序3.5.1SHT-11的内部命令SHT-11传感器共有5条用户命令,具体命令格式见表3-1。在程序编程时根据命令编号来设定SHT-11的工作状态。例如:0x03设置SHT-11为温度测量,0x05是设置SHT-11为湿度测量[5]。表3-1SHT-11传感器命令列表命令编号说明测量温度00011温度测量测量湿度00101湿度测量读存放器00111“读〞状态存放器写存放器00110“写〞状态存放器软启动11110重启芯片,去除状态记录器的错误记录11毫秒后进入下一个命令3.5.2SHT-11的命令顺序及命令时序1)传输开始初始化传输时,应发出“传输开始〞命令,具体为SCK是高电平时,DATA高电平变为低电平,并在下一个SCK为高时将DATA升高。接着传输开始下一个命令,包含3个地址位(目前只支持“000〞)和5个命令位,通过DATA脚的ack位处于低电位表示SHT11正确收到命令。2)连接复位顺序如果与SHT11传感器的通讯中断,以下信号顺序会使串口复位:当使DATA线处于高电平时,触发SCK9次以上(含9次),并发一个前述的“传输开始〞命令。3)温湿度测量时序当发出了温(湿)度测量命令后,控制器就要等到测量完成后才开始动作。使用8/12/14位的分辨率测量分别需要大约11/55/210ms。为说明测量完成,SHT11会使DATA为低电平,此时控制器必须重新启动SCK,然后SHT11传送两字节测量数据与1字节CRC校验和到控制器,控制器必须通过使DATA为低来确认每一字节,通讯在确认CRC数据位后停止。如果没有用CRC28校验和,那么控制器就会在测量数据LSB后,保持ack为高时停止通讯,SHT11在测量和通讯完成之后会自动返回睡眠模式。需要注意的是,为使SHT11温升上下于0.1℃,那么此时工作频率不能大15%(如:12位精确度时,每秒最多进行3次测量)。测量温度和测量湿度命令所对应的时序如图3-4所示。图3-4测量温湿度时序图4)加热控制将传感器芯片中的加热开关接通,传感器温度大约增加5℃,加热用途如下:其一,通过对启动加热器前后的温、湿度进行比拟,可以正确地区别传感器的功能;其二,在相对湿度较高的环境下,传感器可通过加热来防止冷凝。5)低电压检测SHT11的工作极限功能可以检测VDD电压是否低于2.45V,准确度为±0.1V。3.5.3SHT-11的状态存放器SHT-11的状态存放器的类型及其说明见表3-2。表3-2SHT-11状态存放器及说明位类型说明缺省说明7保存06读工检限X5保存04保存0续表位类型说明缺省说明3只用于试验,不可以使用02读/写加热0关1读/写不从OTP重下载0重下载0读/写‘1’—8位相对湿度,12位温度分辨率;‘0’—12位相对湿度,14位温分辨率012位相对湿度,14温度3.6硬件接口SHT-11与单片机接口构成的温湿度测量电路,如图3-5所示。因SHT-11内部集成了A/D转换器、数字接口等,在与单片机连接时就不需要再外接转换部件[6]。图3.2DS1302与单片机连接图3.2DS1302与单片机连接3.7恢复处理置于极限工作条件下或化学蒸汽中的传感器,经过在80~90℃〔176~194F〕和<5%RH的湿度条件下保持24小时〔烘干〕,随后在20~30℃〔70~90F〕和>74%RH的湿度条件下保持48小时以上〔重新水和〕的处理后可使其恢复到刚校准时的状态[7]。通过上面的论述可见SHT-11数字式温湿度传感器完全符合对土壤温湿度检测的要求。4DS1302时钟芯片DS1302是Dallas公司推出的高性能低功耗涓流充电时钟芯片。可通过简单的串行接口与单片机进行通信,光感应用于智能仪器、单片机系统和家用时钟电路等领域。4.1DS1302时钟芯片的简介DS1302涓流充电计时芯片包含一个实时时钟/日历和31字节的静态RAM。它通过一个简单的串行接口与微处理器进行通信[8]。实时时钟/日历提供秒,分钟,小时,周,日期,月份和年的有关信息。对于少于31天的月份,每月月底的日期是自动调整的,包括对瑞年进行更正,时钟运行可采用24小时制或带AM/PM指示的12小时制。同步串行通信简化了DS1302与微处理的接口。与时钟/RAM通信只需三根线:、I/O(数据线)及SCLK〔串行时钟〕。时钟/RAM数据的读/写以每次一个字节或多达31个字节的多字节模式传输。DS1302设计为低功耗工作,保持数据和时钟信息的功耗小于1uF。4.2引脚DS1302的引脚〔引脚图如图4-1所示〕及功能简介如下:图4-1DS1302引脚图第1、2脚:Vcc1、Vcc2电源。第3脚:复位输入端。第4脚:串行时钟输入端。第5脚:数据输入/输出端。第6、7脚:X1、X2是32.768kHz晶振输入/输出端。4.3命令字节表4-1所示为命令字节格式。命令字节启动每个字节的数据传输。该MSB〔第7位〕必须为逻辑1.如果是0,写入DS1302操作将被禁用。第6位是逻辑1时指定RAM数据。第1至第5位规定特定存放器作为输入还是输出。LSB〔第0位〕如果是逻辑0,指定一个写操作〔输入〕;如果是逻辑1,执行一个读操作。命令字节总是从LSB〔第0位〕输入。表4-1DS1302命令字节765432101RAMSCLKA4A3A2A1A0RD〔1〕及时钟控制驱动输入高电平可启动所有的数据传输。输入起到两种功能:第一,启动控制逻辑,允许地址/字节序列访问移位存放器。第二,信号提供了一种终止单字节或多字节数据传输的方法。一个时钟周期是一个上升沿序列,紧跟着下降沿。对于数据输入,在时钟周期的上升沿时间,数据必须正确;在时钟周期的下降沿,数据位输出。如果输入低电平所有数据传输中止。I/O引脚变成高阻状态。数据的传输如图4-2所示。在上电时,必须是逻辑0,直到Vcc>2.0V.此外,当被驱动到逻辑1状态时,SCLK必须为逻辑0。a)单字节传送b)多字节传送图4-2数据传送时序〔2〕数据输入继输入写命令字节的8个SCLK周期后,在接下来的8个SCLK周期的上升沿输入数据字节。如果有额外的SCLK周期,将被忽略。数据输入从位0开始。〔3〕数据输出继输入写命令的8个SCLK周期后,在接下来的8个SCLK周期的下降沿输出数据字节。请注意,将被传输的第一个数据位出现在命令字节最后一位被写入后的第一个下降沿。只要维持高电平,如有附加的SCLK的周期,将重新转发数据字节。此操作允许连续多字节模式读取能力。此外,I/O引脚在每个SCLK的上升沿都是三态的。数据输出开始于第0位。〔4〕多字节模式时钟/日历或由十进制存储单元31〔地址/命令1至5=逻辑1〕寻址的RAM存放器可以为多字节模式。如上所述,第6位指定时钟或RAM和第0位指定读或写。在日历/时钟存放器的地址9至31或RAM存放器中的地址31不能存储数据。在多字节模式中,读或写开始于地址0的第0位。当在多字节模式下写时钟存放器时,必须按数据传输的次序写入首八个存放器。然而,当在多字节模式写入RAM时,为了数据的传输,没有必要写入所有的31个字节。每个被写入的字节都将被传输到RAM,无论31个字节是否都被写入。〔5〕DS1302内部存放器DS1302内部存放器地址及数据分配情况如表4-2所示。1〕时钟/日历:时钟/日历包含在7个写/读存放器中。数据以BCD码形式包含在时钟/日历存放器中。2〕时钟暂停标志:秒存放器的第7位定义为时钟暂停标志。当此位置1时,时钟振荡器停止,DS1302进入低功耗备用模式,电源消耗小于100nA。当此位置0时,时钟将启动。初始上电状态未定义。3〕AM-PM/12-24模式:DS1302能运行于12小时制或24小时制模式下。小时存放器的第7位被定义为12或24小时模式选择位。当其处于高电平时,选择12小时模式。在12小时模式下,第5位是AM/PM位,其为逻辑高电平表示PM。在24小时模式下,第5位是第二个10小时位元〔20-23〕小时。当12/24位被改变时,小时数据一定要被重新初始化。表4-2DS1302的日历、时钟存放器及控制字存放器名命令字格式取值范围位内容写操作读操作76543210秒存放器80H81H00-59CH10SECSEC分存放器82H83H00-59010MINMIN小时存放器84H85H01-1200-2312/24010HRHRA/P日期存放器86H87H01-28/29/30/310010DATEDATE月份存放器88H89H01-1200010MMONTH星期存放器8AH8BH01-0700000DAY年份存放器8CH8DH00-9910YEARYEAR写保护存放器8EH8FH—WP0涓流充电存放器90H91H—TCSDSRS时钟多字节存放器BEHBFH——RAM多字节存放器FEHFFH——4〕写保护位:控制存放器的第7位是写保护位。首7位〔第0至第6位〕必须为0,读取时始终读0。对时钟或RAM进行任何操作前,第7位必须为0。当写保护位为高电平时,该位阻止对任何其他存放器的写操作。初始的上电状态没有定义。因此,在写入该器件之前,应去除WP位。5〕涓流充电存放器:该存放器控制DS1302的涓流特性。涓流充电选择(TCS)位〔第4至第7位〕控制涓流充电器的选择。为了阻止意外使能,只有1010模式使能涓流充电器。所有其他模式都禁用涓流充电器。DS1302上电时,涓流充电器被禁用。DS为二极管选择位,RS为电阻选择位。6〕时钟/日历多字节模式:该时钟/日历命令字节指定多字节触发模式操作。在此模式下,首8个时钟/日历存放器可以从地址0的第0位开始被连续地读取或写入。当指定写时钟/日历多字节模式时,如果写保护位被设置为高电平,将没有数据传送到8个时钟/日历存放器〔包括控制存放器〕的任意一个。在多字节模式下,涓流充电器不可用。7〕RAM:静态RAM是RAM地址空间中连续编址的31×8字节。8〕RAM多字节模式:RAM命令字节指定多字节模式操作。在此模式下,31个RAM存放器从地址0的第0位开始被连续读取或写入。〔6〕晶振的选择32.768kHz的晶振可通过引脚2和3〔X1、X2〕直接连接至DS1302。所选定的晶振应该加一个6pF的负载电容。〔7〕电源控制Vcc1在单电源与电池供电的系统中提供低电源的电池备份。Vcc2在双电源系统中提供主电源,此时Vcc1连接到备份电源,以便在没有主电源,以便在没有主电源的情况下能保存时间信息以及数据。DS1302由Vcc1或Vcc2两者中较大者供电。它与单片机连接后,单片机便可读出其实时时间。连接示意图如图4-3所示[9]。图4-3DS1302与AT89C51连接图5液晶显示器LCD液晶显示器是一种低功耗液晶显示器件。工作电流小,适合于仪表和低功耗系统。常用的有笔画型液晶显示器、点阵字符型液晶显示器和图形点阵式液晶显示器。LCD液晶显示器的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,。有电就显示黑色,这样就显示出图形。液晶显示器适应于大规模电路直接驱动,易于实现全彩色显示的特点。目前被广泛应用于计算机,数字摄像机等众多领域。5.1液晶显示器的分类液晶显示器按显示图案的不同可分笔段型LCD、字符型LCD和点阵图型LCD三种[1]。笔段型笔段型是以长条状作为根本单位显示。该类型主要用于数字显示,也可用于显示西文字符或某些字符。这种段型显示通常有6段、7段、8段、9段、14段和16段等,在形状上与数码管类似,总是围绕数字“8〞的结构变化。其中以7段显示器常用,常用于数字仪表、电子仪器中。字符型字符型液晶显示器是专门用来显示英文和其他拉丁文字母、数字、符号等点阵型液晶显示模块。它一般由假设干个5×8或5×11点阵组成,每个点阵显示一个字符。这类模块一般应用于数字寻呼机、数字仪表等电子设备中。点阵图形型点阵图形型是在一平板上排列多行多列的矩阵式的晶格点,点的大小可根据显示清晰度来设计,可显示数字、字母、汉字、图像,甚至动画。这液晶显示器广泛应用于、笔记本电脑等需要显示大量信息的设备中。5.2AMPIRE128×64带中文字库的128×64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字.也可完成图形显示。低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不管硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。在本次设计中要求显示温度值,湿度值的同时显示起说明作用的“温度〞与“湿度〞两组汉字。因此选用点阵图形型的AMPIRE128×64。它的根本特性如下:•低电源电压〔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℃。5.2.1LCD128×64引脚功能AMPIRE128×64内置KS0108型图形液晶模块驱动,它的引脚功能表如表5-1所示。逻辑工作电压:4.5V~5.5V;电源地〔GND〕:0V;工作温度:0~60℃〔常温〕/-20~70℃〔宽温〕。表5-1LCD128×64引脚功能表引脚号引脚名称电平引脚功能描述1CS1/CS2H/L片选信号,芯片1/芯片2控制液晶左半屏/右半屏2GND0V电源地3VCC+5V电源正4V0—比照度〔亮度〕调整续表引脚号引脚名称电平引脚功能描述5RSH/LRS=“H〞,表示DB7~DB0为显示数据RS=“L〞,表示DB7~DB0为显示指令数据6R/WH/LR/W=“H〞,E=“H〞,数据被读到DB7~DB0R/W=“L〞,E=“L〞,DB7~DB0的数据被写到IR或DR7EH/L使能信号8DB0~DB7H/L三态数据线9H/L复位端,低电平有效10VOUT—LCD驱动电压输出端5.2.2KS0108控制器指令功能KS0108控制器指令功能如表4-2所示。具体分析如下:读状态字〔readstatus〕格式:BUSY0ON/OFFRESETO000BUSY=1:表示KS0108正在处理计算机发来的指令或数据。此时接口电路被封锁,不能接受除状态字以外的任何操作。BUSY=0表示KS0108接口控制电路已处于“准备好〞状态,等待计算机的访问。ON/OFF:表示当前的显示状态。ON/OFF=1表示关显示状态;ON/OFF=0表示开显示状态。RESSET:表示当前KS1008的工作状态,即反映RET端得电平状态。当RST为低电平状态时,KS0108处于复位工作状态,RESET=1;当RST为高电平状态时,KS0108为正常工作状态,RESET=0。在占领设置和数据读写时要注意状态字中的BUSY标志。只有在BUSSY=0时,计算机对KS0108的操作才有效。因此计算机在每次对KS0108操作之前,都要读出状态字判断BUSY是否为“0〞。假设不为“0〞,那么计算机需要等待,直至BUSY=0为止。显示开关〔displayon/off〕格式:0011111D该指令设置显示开关/触发器的状态,由此控制显示数据锁存器的工作方式,从而控制显示状态。D位为显示开/关的控制位。当D=1为显示设置,显示数据锁存器正常工作,显示屏上呈现所需的效果。此时在状态字中ON/OFF=0。当D=0为关显示设置,显示数据锁存器被清0,显示屏呈不显示状态,但显示存储器并没有被破坏,在状态组中ON/OFF=1。显示起始行设置〔displaystartline〕格式:11L5L4L3L2L1L0该指令设置了显示起始行存放器的内容。KS0108有64行显示的管理能力,该指令中L5~L0为显示起始行的地址,取值在0~3FH〔1~64〕范围内,它规定了显示屏上最顶一行所对的显示存储器的行地址。如果定时间间隔地,等间距地修改〔如加一或减一〕显示起始行存放器的内容,那么显示屏将呈现显示内容向上或向下平滑滚动的显示效果。页面地址设置〔setpage(Xaddress)〕格式:10111P2P1P0该指令设置了页面地址→X地址存放器的内容。KS0108将显示存储器分成了8页,指令代码中P2~P0就是要确定当前所要的选择的页面地址,取值范围为0~7H,代表第1~8页。该指令规定了以后的读/写操作将在哪一个页面上进行。⑤列地址设置〔setYaddress〕格式:01C5C4C3C2C1C0该指令设置了Y地址计数器的内容,C5~C0=0~3FH(1~64)代表某一页面上的某一单元地址,随后的一次读或写数据将在这个单元上进行。Y地址计数器具有自动加一功能,在每一次读/写数据后它将自动加一,所以在连续进行读/写数据时,Y地址计数器不必每次都设置一次。页面地址的设置和列地址的设置将显示存储器单元唯一确定下来,为后来的显示数据的读/写作了地址的选通。⑥写显示数据〔writedisplaydata〕该操作将8位数据写入先前已经确定的显示存储器的单元内,操作完成后列地址计数器自动加一。⑦读显示数据〔readdisplaydata〕该操作将KS0108接口部的输出存放器内容读出,然后列地址自动加一。5.2.3应用说明用带中文字库的128×64显示模块时应注意以下几点:①欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。②显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否那么,显示的字符中将会有一个空ASCII字符位置。③当字符编码为2字节时,应先写入高位字节,再写入低位字节。④模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0〞,方可接受新的指令。如果在送出一个指令前不检查BF标志,那么在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。指令执行的时间请参考指令表中的指令执行时间说明。⑤“RE〞为根本指令集与扩充指令集的选择控制位。当变更“RE〞后,以后的指令集将维持在最后的状态,除非再次变更“RE〞位,否那么使用相同指令集时,无需每次均重设“RE〞位。6盆花自动浇水系统的设计该系统包括土壤温湿度检测与控制系统和蓄水箱自动上水系统两个系统。6.1土壤温湿度检测与控制土壤温湿度检测与控制系统以单片机AT89C51为控制核心,通过软件设置到达具体动作实现。土壤的温湿度是由SHT-11数字温湿度传感器检测并送入单片机,通过单片机的I/O口把检测到的土壤温湿度值用LCD显示出来。同时,如果系统在智能浇水设置情况下,那么该值与设定的浇水上下限值相比拟,假设低于下限值,那么单片机发出一个控制信号控制电磁阀翻开,开始浇水。假设高于上限值时,单片机再发出一个控制信号控制电磁阀关闭,停止浇水。假设果系统设置在手动浇水情况下,那么按照设定好的定时浇水时间以及浇水的量进行浇水,SHT-11把检测到的土壤温湿度值显示在LCD上,以到达对土壤温湿度实时监测的目的。具体系统设计框图如图6-1所示。图6-1自动浇水系统设计框图6.2硬件电路设计土壤温湿度检测与控制系统由AT89C51单片机、SHT-11数字温湿度传感器、LCD显示屏、输入按键、二极管、三极管与电磁阀等组成。在第三章中已经介绍过数字温湿度传感器SHT—11采用COMSens专利传感器技术将温度湿度传感器、A/D转换器、数字接口、校准数据存储器、标准I2C总线等电路全部集成在一个芯片内,因此在与单片机连接时不需要模/数转换器,只需要将DATA与SCK两个引脚连接到单片机的I/O口上即可。对于LCD显示屏将DB0~DB7通过排阻RESPACK8连接到单片机的P0.0~P0.7上,E、R/W、RS与P2.0、P2.1、P2.2,片选CS1、CS2与P2.3、P2.4连接。(1)键盘在单片机控制系统中可以通过键盘输入数据或命令。键盘是由一组常开的按键组成,每个按键都被赋予一个代码,称为键码。键码分为编码键盘和非编码键盘。编码键盘是通过一个编码电路识别闭合键的键码,非编码键盘是通过软件来识别键码。由于非编码键盘的硬件电路简单,用户可以方便的改变键的数量,因此在单片机系统中应用广泛。非编码键盘可以分为独立式键盘和行列式键盘两种结构形式。行列式键盘是将I/O线的一局部作为行线,另一局部作为列线,按键设置在行线和列线的交叉点上,这种结构形式的键盘适用于键数较多的场合,但硬件电路结构较复杂。独立式非编码键盘中每一按键都独立地占用一条数据线,当一按键闭合时,相应的I/O线变为低电平。如图6-2所示为处于常开状态的独立式键盘,当按键闭合时I/O线为低电平,当按键为常态时I/O线为高电平。由于机械触点的弹性作用,触点在闭合和弹开瞬间的电接触情况不稳定,造成电压信号的抖动,如图6-3所示。键的抖动时间一般为5~10ms。为了防止一次闭合引起的CPU屡次处理,就要采用措施消除抖动。去抖动的方法有硬件去抖和软件去抖两种方法。硬件去抖一般采用双稳态去抖电路〔如图6-4所示〕。软件消抖方法是在CPU检测到有键按下是,延时10~20ms,再次检测该键电平是否仍保持闭合状态,如果保持闭合状态,那么确认有键按下,否那么从头检测。图6-2按键输入电路图6-3电压抖动图6-4单稳态去抖电路在本次设计中用到的键数较少,为了简化硬件电路,选用独立式非编码键盘,并采用软件消抖的方法来消除按键抖动。(2)电磁阀电磁阀〔solenoidvalve〕使用电磁铁操纵阀芯移动的阀,用在工业控制系统中调整介子的方向、流向、速度和其他的参数。电磁阀是用电磁效应进行控制的,主要的控制方式由继电器控制。这样,电磁阀可以配合不同的电路来实现预期的控制。控制的精度和灵活性都能够保证。它的工作原理是:电磁阀里有密闭的腔,在不同的位置开有通孔,每个通孔都可以通向介质流通的通道,腔中间是阀,两面是两块电磁铁,哪面的磁铁线圈通电阀体就会被吸到哪边,通过控制阀体的移动来挡住或漏出不同的介质流通通道。电磁阀从原理上分为三大类:1〕直动式电磁阀直动式电磁阀在通电时,电磁线圈产生电磁力把关闭件从阀座上提起,阀门翻开;断电时,电磁力消失,弹簧把关闭件压在阀座上,阀门关闭。它的特点是在真空、负压、零压是能正常工作,通径一般不超过25mm。2〕先导式电磁阀先导式电磁阀在通电时,电磁力把先导孔翻开,上腔室压力迅速下降,在关闭件周围形成上低下高的压差,流体压力推动关闭件向上移动,阀门翻开;断电时,弹簧力把先导孔关闭,入口压力通过旁通孔迅速在腔室关闭件周围形成下地上高的压差,流体压力推动关闭件向下移动,关闭阀门。它的特点是流体压力范围上限较高,可任意安装〔需定制〕但必须满足流体压差条件。3〕分布直动式电磁阀分布直动式电磁阀是一种直动和先导式相结合的原理结构,当入口与出口没有压差时,通电后,电磁力直接把先导小阀和主阀关闭件依次向上提起,阀门翻开。当入口与出口到达启动压差时,通电后,电磁力先导小阀,主阀下腔压力上升,上腔压力下降,从而利用压差把主阀向上推开;断电时,先导阀利用弹簧力或介质压力推动关闭件向下移动,使阀门关闭。它的特点是在零压差、真空或高压时亦能动作,只是功率较大,要求必须水平安装。本次设计的是盆花的自动浇水系统,根据盆花每次的需水量并不大,通径选取20mm左右就能满足要求,而且浇水的时间远比不交水的时间长,所以应选用常闭型,即通电翻开,断电关闭。综上所述,在本次设计中采用常闭型的直动式电磁阀,不仅控制电路简单而且经济适用。(4)电路连接具体的土壤温湿度检测控制系统硬件电路连接如图6-5所示。〔a〕土壤温湿度检测显示电路(b)浇水驱动电路图6-5土壤温湿度检测控制电路在浇水控制电路中,当P1.0口输出高电平时,三极管的发射结正偏,集电结反偏,处于放大状态。由单片机输出的电压经三极管放大后驱动电磁阀动作。在电路中二极管作保护,用以防止过电压。6.3系统软件设计土壤温湿度检测与控制系统有自动和手动两种浇水方法。通过设置键来选择浇水方式,假设设置键按下那么为手动浇水方式,否那么为智能浇水方式。手动浇水时,由单片机向时钟芯片DS1302读取实时时间,假设与设定的定时浇水的时间相符,那么单片机执行定时器/计数器0中断程序,完成定量浇水。智能浇水时,传感器起感应作用,当传感器把感应到的土壤温湿度信号传给单片机,由控制程序判断是否需要进行浇水,假设需要浇水,单片机输出高电平翻开电磁阀,给植物浇水。当浇了足量的水,传感器感应到后,把信号传给单片机判断,单片机再发出信号让电磁阀闭合。由此,实现了智能浇水,浇水的上下限由程序编程时设定。土壤温湿度的检测后在LCD液晶屏上显示由定时器/计数器1中断实现。在本次设计中定时器/计数器0、1均工作在计数器方式的模式1。为方便时间计算设定中断一次为50ms,这样计数20次就是一秒。可以以此类推计算出所要设定的时间。计数初值为;。主程序和智能浇水与手动浇水子程序如下:main(){inti,j;if(button==0)//检测P3^0口按键是否按下{for(i=5;i>0;i--)for(j=248;j>0;j--);if(button==0){hand_out();else(button==1)auto();}}}〔1〕智能浇水子程序对于一般花卉来讲,四季的供水量是:每年开春后气温逐渐升高,花卉进入生长旺期,浇水量是逐渐加多。早春浇水宜在午前进行。夏季气温高,花卉生长旺盛,蒸腾作用强,浇水量应充足。夏季浇水宜在晨、夕进行。立秋后气温渐低,花卉生长缓慢,适当少浇水。冬季气温低,许多花卉进入休眠或半休眠期,要控制浇水,盆土不太干就不要浇水,以免因浇水过多而烂根、落叶,影响明年生长开花。冬季浇水宜在午后1-2时进行。voidauto(){ dat=SHT11_Measure(TEM_TEST,210);//14位 tempeture1=SHT11_Convert_Tempeture14bit(dat); dat=SHT11_Measure(HUM_TEST,55);//12位 RHtrue=SHT11_Convert_Humidity12bit(dat,tempeture1); temp1=tempeture1; temp2=RHtrue; TMOD=0x10; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1; ET1=1; TR1=1; selectscreen(2); display(0,0,2); display(0,16,3); display(2,0,0); display(2,16,1); while(1) {temp1=tempeture1;temp2=RHtrue;displaynum(0,40,temp1%10);displaynum(0,32,temp1/10);displaynum(2,40,temp2%10);displaynum(2,32,temp2/10);if(temp2<=60){b=1;P10=b;}elseif(temp2>=95){b=0;P10=b;} }}voidtime1()interrupt1{ TH1=(65536-50000)/256; TL1=(65536-50000)%256; count++; if(count==20) //1s检测一次 { count=0; dat=SHT11_Measure(TEM_TEST,210);//14位 tempeture1=SHT11_Convert_Tempeture14bit(dat); dat=SHT11_Measure(HUM_TEST,55);//12位 RHtrue=SHT11_Convert_Humidity12bit(dat,tempeture1); }}〔2〕手动浇水子程序在于单片机中,定时中断0的优先级高于定时中断1的优先级。当这两个中断同时发出中断请求时,单片机先响应定时中断0,当ET0=0后再开始执行定时中断1效劳子程序。手动浇水就是由这两个中断程序嵌套完成的。voidhand_out(void){intn;voidWATER1(void);voidWATER2(void);voidWATER3(void);voidWATER4(void);dat=SHT11_Measure(TEM_TEST,210);//14位tempeture1=SHT11_Convert_Tempeture14bit(dat);dat=SHT11_Measure(HUM_TEST,55);//12位RHtrue=SHT11_Convert_Humidity12bit(dat,tempeture1);temp1=tempeture1;temp2=RHtrue;TMOD=0x01;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET1=1;TR1=1;selectscreen(2);display(0,0,2);display(0,16,3);display(2,0,0);display(2,16,1);while(1) { temp1=tempeture1; temp2=RHtrue; displaynum(0,40,temp1%10); displaynum(0,32,temp1/10); displaynum(2,40,temp2%10); displaynum(2,32,temp2/10);n=read(0x89);//读取DS1302的月份数据if(3<=n<=5)WATER1();els

温馨提示

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

评论

0/150

提交评论