智能灌溉系统的设计论文_第1页
智能灌溉系统的设计论文_第2页
智能灌溉系统的设计论文_第3页
智能灌溉系统的设计论文_第4页
智能灌溉系统的设计论文_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

Tianjin毕业设计二○一一年六月智能灌溉系统的设计DesignofIntelligentIrrigationSystem2011年6月摘要近几年来,随着全球水资源的日趋紧张,世界各国都在积极探索行之有效的节水途径和措施。自动控制节水灌溉技术的上下代表着农业现代化的开展状况,灌溉系统自动化水平较低是制约我国高效农业开展的主要原因,节水灌溉作为一项现代化的工程技术,无论是工程节水、农业节水,还是管理节水都必须建立在节水灌溉设备实现产业化生产的根底上。节水灌溉技术是为了解决水资源缺乏,提高灌溉效率而开展起来的现代灌溉技术之一。本课题设计了一个智能灌溉系统,该系统以AT89S52单片机为控制核心,采用模块化的设计方案,由温湿度采集模块、时钟模块、步进电机控制模块、键盘接口模块和液晶显示模块组成。温湿度采集模块以DHT11温湿度传感器为核心,时钟模块主要由DS1302和32.768kHz的晶体组成,步进电机控制电路模块采用了达林顿驱动芯片ULN2003,显示电路模块主要由LCD12864构成。在闭环〔自动〕模式下,该系统能自动对土壤的温湿度进行检测,当实际湿度低于警戒值时单片机自动启动步进电机进行灌溉。关键词:AT89S52;DHT11温湿度传感器;ULN2003达林顿驱动;LCD12864;DS1302ABSTRACTInrecentyears,alongwiththeglobalwaterresourcesisnervous,countriesintheworldexploreactivelyeffectivewaysandmeasuresofwater-saving.Automaticcontrolthediscretionofwater-savingirrigationtechnologiesrepresentstheagriculturalmodernization,lowlevelofthedevelopmentsituationofirrigationsystemautomationbecomethemaincauseofrestrictinghigh-efficientagriculturedevelopment,water-savingirrigationisamodernengineeringtechnology,whetherengineeringsectionwater,watersaving,ormanagementofagriculturalwatermustbebasedonthebasisofwater-savingirrigationequipmentrealizingindustrializationproduction.Water-savingirrigationtechniqueisusedtodealwiththewatershortage,improveirrigationefficiencyandbedevelopedintooneofthemodernirrigationtechniques.Thistopicdesignanintelligentirrigationsystem,thissystemselecttheAT89S52SCMascontrolcore,adoptthemodularizingdesignscheme,whichcontainthetemperatureandhumidityacquisitionmodule,PHvaluedetectionmodule,clockmodule,steppingmotorcontrolmodule,keyboardinterfacemoduleandLCDmodule.DHT11andhumiditysensorisselectedasthecoreoftemperatureandhumidityacquisitionmodule,clockmoduleismainlycomposedoftheclockDS1302andcrystalof32.768kHz,steppingmotorcontrolcircuitmoduleadoptedreachlintondrivechipULN2003,displaycircuitmoduleismainlyconsistedoftheLCD12864constitutes.Intheloop(automatically)mode,thesystemcanautomaticallydetectonsoiltemperatureandhumidity,whenactualhumidityunderalertvaluesingle-chipmicrocomputerautomaticstartsteppingmotorforirrigation.KeyWords:AT89S52;DHT11temperatureandhumiditysensor;ULN2003DarlingtonDriver;LCD12864;DS1302目录1绪论11.1引言11.2课题来源11.3国内外现状22方案设计与论证42.1总体方案论证42.2键盘电路52.3温湿度传感器的选取6湿度传感器原理6数字温湿度传感器DHT1173系统硬件电路设计93.1AT89S52单片机的硬件结构9单片机的结构及信号引脚93.1.2AT89S52最小系统123.2直流稳压电源的设计133.3湿度采集模块143.3.1温湿度传感器的原理143.4pH值检测装置173.5时钟模块19时钟模块接线图19DS1302内部存放器213.6液晶显示模块22液晶显示模块概述22模块主要硬件构成说明233.7步进电机驱动模块25步进电机简介和原理253.7.2ULN2003驱动芯片25步进电机驱动模块264系统软件设计274.1程序设计274.2主程序设计284.312864LCD显示子程序设计30结论35参考文献36致谢37附录一总体电路图38附录二源程序391绪论1.1引言水是一切生命过程中不可替代的根本要素,也是维系国民经济和社会开展的重要根底资源。过去,人们认为水是取之不竭、用之不尽的天然资源。因为在那些年代,科学技术不够兴旺,经济开展不够迅速,人口数量少,人们对水的使用总是很随意,水资源似乎总也用不完。随着科技不断进步,经济高速开展,生产力极大提高以及人口只增不减,水资源危机开始显现并日渐明显。随着中国农业现代化进程的高速开展、农业结构的调整以及我国参加世贸组织等因素,节水灌溉自动化技术的要求越来越高,灌溉控制器在我国有着巨大的市场。节水灌溉控制器近期在中国应朝着价格低、性能可靠、操作简便的方向开展。但从长远利益考虑,新的智能化技术、传感技术和农业科技的引入、应用和普及,将会有智能化程度更高、功能更强、性能更趋于稳定和可靠的灌溉控制器出现。本课题以AT89S52单片机为主要硬件模块,通过软件编程实现对土壤温度和湿度进行多点检测,当所测的实际湿度低于警戒值时,将触发灌溉控制器装置,进行自动灌溉,系统还可以实现时间控制方式,随时灌溉,从而也表达了多用途、人性化的现代智能化系统设计要求。根据本设计的功能要求,可确定此方案:以AT89S52单片机为控制电路的核心,采用模块化的设计方案。在闭环控制方式下,利用温湿度采集模块将多处不同地点检测到的温度、湿度模拟量进行模数转化后传送给单片机,单片机将采集到的数据与警戒值比拟;假设采集数据低于警戒值,那么启动步进电机驱动模块进行灌溉;假设采集数据高于警戒值,那么不启动驱动模块进行灌溉。显示模块将采集数据和灌溉信息显示在显示屏上。灌溉时间一到,驱动电路那么停止驱动步进电机,灌溉停止。在时间控制方式下,用户通过键盘输入进行灌溉的时间,时间一到,灌溉停止。1.2课题来源经过多年的开展,国外灌溉控制器已逐步趋于成熟化、系列化,但由于价格昂贵,国内虽引进一些,但多数是用于农业示范区、科研单位、高校实验室,虽然国外生产的灌溉控制器性能优越,但没有考虑我国特殊的自然、气候、土地资源、农民经济状况等因素,因而国外引进的灌溉控制器在国内应用并不普及。虽然国内也有多家研制灌溉控制器,但多数是小规模、实验和理论的探讨,应用不够普及,究其原因一那么是开发性能完善的灌溉控制系统不仅需要大量的人力、物力的投入,还需要多部门、多学科的融合,这就在一定程度上限制了性能完善、适应性强的控制器的开发;其次是现在开发出来的灌溉控制器价格相对昂贵,农民尽管知道能节省人力、灌溉用水、提高产量,但由于一次性投资太大,大多数农民承受不起,这也在一定程度上限制了灌溉控制器的普及。随着中国农业现代化进程的加快、农业结构的调整、以及我国加人世贸组织等因素,可以预计对农业灌溉自动化技术的要求会越来越高,灌溉控制器在我国将有巨大的市场。节水灌溉控制器近期在中国应朝着价格低、性能可靠、操作简便的方向开展。但从长远利益考虑,新的智能化技术、传感技术和农业科技的引入、应用和普及,将会有智能化程度更高、功能更强、性能更稳定可靠的灌溉控制器出现。西方兴旺国家在节水灌溉控制器的开发上已越来越成熟,且开展趋势是研制大型分布式控制系统和小面积单片机控制系统,并带有通信功能,能与上位机进行通信,并可由微机对其编程操作。同时随着人工智能技术的开展,模糊控制、神经网络等新技术也为节水灌溉控制器的研发开辟了广阔的应用前景。而国内在灌溉控制器的研制方面还没有形成规模大、应用范围广的成套灌溉控制产品。国内的一些高尔夫球场等大面积场地灌溉控制,一般都是采用国外现成的成套灌溉控制产品。而广阔农村可根据我国国情和各地经济和技术开展的实际情况,采取简单可行的节水灌溉控制措施及相应的排灌机械和设备,大力开展可靠、实用、本钱低、操作简便的节水灌溉控制器,它不仅具有广阔的市场,而且具有巨大的社会和经济效益。1.3国内外现状国内在开发灌溉自动控制系统方面还处于研制、试用阶段,真正能投入实际应用,且应用较广的灌溉控制器还是很少。在开发的产品中有着代表性的如中国农业机械化研究院联合多家单位研制的2000型温室自动灌溉施肥系统。该系统是国家“九五”科技攻关工程中自主研发的科技产品,它结合我国温室的环境和实际使用特点,以积木分布式系统结构原理,解决了计算机适时闭环控制、动态监测、控制显示中文、施肥泵混合比可调、电磁阀开度可调等关键技术问题。该系统具有手动控制、程序控制和自动控制等多种灌溉系统模式,可按需要灵活应用,在大连、北京等地已经投入了应用,从系统运行情况来看,该系统有很好控制效果,取的了一定的经济效益和社会效益。天津市水利科学研究所研制的温室滴灌施肥智能化控制系统主要用于现代温室,日光温室作物的灌溉营养液施肥,环境监测的智能控制,采用世界先进的可编程序控制器和触摸屏控制技术,性能可靠、功能齐全、人机界面友好、操作简单、价格低廉,此控制系统的控制流量为15,控制规模为1~2时,能控制24路阀门,系统具有人工干预灌溉施肥功能,定时、定量灌溉施肥功能,条件控制灌溉施肥功能。北京澳作生态仪器的澳作智能节水灌溉控制系统可与各种滴、喷灌系统连接,实时监测土壤墒情,根据要求自动灌溉。控制方式灵活,手动、半自动、全自动任选且可随意在计算机上更改,可同时控制多个设备,受控区位置及形状,环境参数及设备状态可同时显示在中心计算机上。北京奥特思达科技研制的WT-02型微喷灌定时自动控制器,是一种供农业、草坪、果园、温室一般场合给水的电子灌溉自动控制系统。国外一些先进国家,如美国、以色列和加拿大等,运用先进的电子技术、计算机和控制技术,在节水灌溉技术方面起步较早,并已经日趋成熟。这些国家从最早的水力控制、机械控制,到后来的机械电子混合协调式控制,到现今应用广泛的计算机控制、模糊控制和神经网络控制等,控制精度和智能化程度越来越高,可靠性越来越好,操作也越来越简便。近年来随着农业对自动化程度要求的提高,以色列出现灌溉用的可编程逻辑控制器(PLC),这种控制器通过把不同的网络连接到主机上进行数据采集和处理。随着控制技术、传感器技术的开展,以色列开发出了现代诊断式控制器,这种控制器把以前不可能采集到的信息通过不同的传感器来获得,通过因特网、远程控制、GSM等来实现数据传输,然后通过计算机中的一些模型来处理信息,作出灌溉方案。加拿大、澳大利亚和韩国等国家和地区也都有开发成功并形成系列的灌溉控制器产品,其中,比拟有代表性的如澳大利亚的HARDIEIRRGATION公司的灌溉控制器,已形成了MICRO-MASTER、RAINJET等多个系列,几十种型号的产品。其中HR6100系列本钱较低,是一种小型自动灌溉控制器,主要是面对家庭庭院和小面积的商业绿化场地的灌溉,而MICRO-MASTER,系列产品是HARDIE公司为进行大面积灌溉而开发的控制器。该系统采用分布式布置,可与上位机双向通信,用微机对其进行编程操作和对其子控制器进行控制,并能用微机随时监控灌溉系统的工作状况。2方案设计与论证2.1总体方案论证本课题以AT89S52单片机为主要硬件模块,通过软件编程实现对土壤温度、湿度、PH值、EC值〔灌溉液中肥料浓度〕进行多点检测,当所测的实际湿度、PH值和EC值低于警戒值时,将触发灌溉控制器装置,进行自动灌溉,系统还可以实现手动控制灌溉方式,随时灌溉,从而也表达了多用途、人性化的现代智能化系统设计要求。根据本设计的功能要求,由于时间和花费的种种问题,本设计的PH值和EC值局部先不考虑,现确定此方案:以AT89S52单片机为控制电路的核心,采用模块化的设计方案。所谓的模块化设计,简单地说就是将产品的某些要素组合在一起,构成一个具有特定功能的子系统,将这个子系统作为通用性的模块与其他产品要素进行多种组合,构成新的系统,产生多种不同功能或相同功能、不同性能的系列产品。模块化是在传统设计根底上开展起来的一种新的设计思想,现已成为一种新技术被广泛应用,尤其是信息时代电子产品不断推陈出新,模块化设计的产品正在不断涌现。模块化设计已被广泛应用于机床、电子产品、航天、航空等设计领域。模块化设计是绿色设计方法之一,它已经从理念转变为较成熟的设计方法[3]。本设计总分为六大模块:温湿度采集电路模块、PH值检测模块、时钟模块、键盘接口电路模块和液晶显示电路模块、步进电机控制电路模块。其中温湿度采集模块核心器件为数字式温湿度传感器DHT11,PH值检测模块有玻璃电极、玻璃电极信号处理电路和A/D转化电路,时钟模块以DS1302为核心器件,显示电路以液晶显示器LCD12864为核心构成,步进电机控制电路以达林顿驱动芯片ULN2003为核心,再配合键盘电路实现对土壤湿度进行检测。在本系统中,PH值执行装置通过单片机控制电磁阀,当所测PH值达不到土壤的PH值要求时,单片机通过PH值执行装置开启PH值电磁阀;湿度灌溉分两种控制方式:闭环控制方式和时间控制方式,用户可在两种方式之间自由选择。在闭环控制方式下,利用湿度采集模块将多处不同地点检测到的温湿度已校准数字信号数据进行综合处理,再传送给单片机。单片机将接收到的数据和单片机内存的数据进行比拟,假设收到的数据低于设定的数值,那么步进电机控制电路模块启动步进电机进行灌溉。假设收到的数据不低于设定的数值,那么不启动步进电机进行灌溉。同时单片机将采集到的数据和系统的灌溉状况在现实模块的显示屏上显示出来。灌溉进行一定的时间后自动停止,该时间由用户加载在单片机内部数据决定。用户可通过灌溉方式切换键切换到时间控制方式。在时间控制方式下,用户通过键盘输入灌溉的时间和灌溉的周期,对应的数据将在显示屏上显示出来。这种灌溉方式主要应用于特殊情况[4]。综上所述,本系统不但具有非常友好的人机交互界面,而且具有良好的实时控制功能,能及时响应用户请求。系统支持的灌溉方式灵活多样,用户可根据实际情况进行模式选择。系统结构简洁,各类功能易于实现,大大提高了系统的可靠性和实用性。系统的根本模块原理图如图2.1所示。LCD12864液晶显示PH值检测电路LCD12864液晶显示PH值检测电路AT89S52单片机PH值执行装置PH值执行装置温度湿度传感器灌溉控制电路步进电机驱动电路灌溉控制电路步进电机驱动电路键盘控制电路时间电路DS1302时间电路DS1302系统时钟器图2-1智能灌溉系统根本模块原理框图2.2键盘电路独立式按键是指直接用一根I/O口线构成的单个按键电路。每个独立式按键单独占有一根I/O口线,每根I/O口线上的按键的工作状态不会影响其他I/O口线的工作状态。独立式按键接口电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,在按键数量较多时,I/O口线浪费较大。故在按键数量不多时,常采用这种按键结构。独立式按键电路如图2.2所示。上拉电阻保证了按键断开时,I/O口线上有确定的高电平。本设计外围电路接有七个独立按键,其中两个作为电机手动启停按键,一个作为PH值演示按键,剩下四个按键作为时钟调整按键。因为本设计所用的I/O口不是很多,而且需要的按键数目不多,应选用独立式键盘。图2-2独立式按键键盘框图2.3温湿度传感器的选取湿度传感器原理湿敏元件是最简单的湿度传感器。湿敏元件主要有电阻式、电容式两大类。湿敏电阻的特点是在基片上覆盖一层用感湿材料制成的膜,当空气中的水蒸气吸附在感湿膜上时,元件的电阻率和电阻值都发生变化,利用这一特性即可测量湿度。湿敏电容一般是用高分子薄膜电容制成的,常用的高分子材料有聚苯乙烯、聚酰亚胺、酪酸醋酸纤维等。当环境湿度发生改变时,湿敏电容的介电常数发生变化,使其电容量也发生变化,其电容变化量与相对湿度成正比。下面对各种湿度传感器进行简单的介绍。1、氯化锂湿度传感器〔1〕电阻式氯化锂湿度计〔2〕露点式氯化锂湿度计2、碳湿敏元件3、氧化铝湿度计4、陶瓷湿度传感器目前市场上测量湿度和温度的方法有很多种,也有很多种传感器,它主要通过传感器采集土壤中的水分含量和室外温度,对灌溉系统实现智能控制。但由于符合应用要求的土壤湿度传感器购置麻烦、价格昂贵且在最后演示时还得需要土壤样本,故本设计选取了空气湿度温度传感器作为替代。而温度湿度传感器又分为模拟式温湿度传感器和数字式温湿度传感器,在实际温湿度采集时,模拟式温湿度传感器在与单片机之间还需加上模数转换芯片,所以本设计采用数字温湿度传感器DHT11,它是广州奥松电子新近推出的一款含有已校准数字信号输出的温湿度复合传感器。2.3.2数字温湿度传感器DHT111、DHT11产品概述DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最正确选那么。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。温湿度传感器DHT11外观图如图2-3图2-3温湿度传感器DHT11外观图2、DHT11应用领域►暖通空调►测试及检测设备►汽车►数据记录器►消费品►自动控制►气象站►家电►湿度调节器►医疗►除湿器3系统硬件电路设计3.1AT89S52单片机的硬件结构单片机的全称为微型计算机〔SingleChipMicrocomputer〕。从应用领域来看,单片机主要用于控制,所以又称微控制器〔MicroControllerUnit〕或嵌入式控制器〔EmbeddedController〕。单片机是将计算机的根本部件微型化并集成在一块芯片上的微型计算机,其根本组成和工作原理与通用微型计算机是一致的。主要由微处理器〔CPU〕、存储器、I/O接口三大功能局部通过总线有机连接而成,在外部通过I/O接口配置各种外部设备就构成微机的硬件系统[7]。单片机体积小,本钱低,运用灵活,易于产品化;面向控制,能针对性地解决从简单到复杂的各类控制任务;抗干扰能力强,适用范围广。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。单片机的结构及信号引脚1、主要特性与MCS-51单片机产品兼容8K字节在系统可编程Flash存储器1000次擦写周期全静态操作:0Hz~33Hz三级加密程序存储器32个可编程I/O口线三个16位定时器/计数器八个中断源全双工UART串行通道低功耗空闲和掉电模式掉电后中断可唤醒看门狗定时器双数据指针掉电标识符AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。2、芯片引脚封装:AT89S52引脚封装图如图3-1所示。图3-1AT89S52引脚封装图3、芯片引脚说明:VCC:电源GND:地P0端口〔P0.0-P0.7〕:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0P1端口〔P1.0-P1.7〕:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流〔IIL〕。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入〔P1.0/T2〕和时器/计数器2的触发输入〔P1.1/T2EX〕,具体如下表3-1所示。在flash编程和校验时,P1口接收低8表3-1P1口线的第二功能引脚号第二功能信号第二功能信号名称P1.0T2定时器/计数器T2的外部计数输入,时钟输出P1.1T2EX定时器/计数器T2的捕捉/重载触发信号和方向控制P1.5MOSI在系统编程用P1.6MISO在系统编程用P1.7SCK在系统编程用P2端口〔P2.0-P2.7〕:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流〔IIL〕。在访问外部程序存储器或用16位地址读取外部数据存储器〔例如执行MOVX@DPTR〕时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址〔如MOVX@RI〕访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8P3端口〔P3.0-P3.7〕:P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流〔IIL〕。P3口亦作为AT89S52特殊功能〔第二功能〕使用,如下表3-2所示。在flash编程和校验时,P3表3-2P3口线的第二功能引脚号第二功能信号第二功能信号名称P3.0RXD串行输入P3.1TXD串行输出P3.2INT0外部中断0P3.3INT0外部中断0P3.4T0定时器0外部输入P3.5T1定时器1外部输入P3.6WR外部数据存储器写选通P3.7RD外部数据存储器写选通RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊存放器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号〔ALE〕是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚〔PROG〕也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否那么,ALE将被微弱拉高。这个ALE使能标志位〔地址为8EH的SFR的第PSEN:外部程序存储器选通信号〔PSEN〕是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。3.1.2AT89S52最小系统在本设计中,AT89S52单片机的P0口用于单片机与LCD12864之间的数据传送,P1.0~P1.3用于步进电机的驱动接口,P2.0用于LCD12864显示的位驱,P2.1用于控制对LCD12864的读写控制信号,P2.2用于控制对LCD12864的指令是属于写数据还是写指令。P用作键盘电路,一共设置7个按键。P1.0-P1.3用于驱动步进电机,P1.5口用于时钟芯片DS1302的SCLK串行时钟,P1.6口用于时钟芯片DS1302的I/O数据输入和数据输出,P1.7口用于时钟芯片DS1302的RST复位脚。P3.0用于温湿度传感器DHT11数据输入通道。XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。由于输入至内部时钟信号要通过一个十二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的上下电平要求的宽度。AT89S52最小系统接线如图3-2所示,在XTAL1、XTAL2端接上11.0592MHZ晶振及两个30P谐振电容,在RESET端接上相应的电阻、电容,如需要按键复位,加上按键即可组成一个最小系统,按要求通电后,系统就可以工作了。单片机在启动运行时都需要复位,以便CPU和系统中的其他部件都处于某一确定的初始状态,并从这个状态开始工作。单片机的复位是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟振荡脉冲(2个机械周期)以上的高电位,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,在设计复位电路时,通常使RST引脚保持IOms以上稳定的高电平。只要RST保持高电平,单片机就循环复位;当RST从高电平变为低电平以后,单片机从0000H地址开始执行程序。在复位有效期间,ALE引脚输出高电平。复位后,PO口--P3口输出高电平,且皆处于输入状态,并且将07H写入栈指针SP(即设定堆栈底为O7H),同时,将程序计数器PC和其余的特殊存放器清0(不定位除外)。但复位不影响单片机内部的RAM状态。图3-2AT89S52最小系统图和复位电路3.2直流稳压电源的设计随着集成技术的开展,稳压电路也迅速实现集成化。特别是三端集成稳压器,芯片只引出三个端子,分别接输入端、输出端和公共端,根本上不需外接元件,而且内部有限流保护、过热保护和过压保护电路,使用十分平安、方便[6]。直流稳压电源一般由电源变压器、整流电路、滤波电路及稳压电路组成,电源变压器的作用是将电网220V的交流电压U1转换成整流电路所需的电压U2。整流电路的作用是将交流电压U2转换成脉动的直流电压U3。滤波电路的作用是将脉动直流电压滤除纹波,变成纹波小的直流电压U4。稳压集成块的作用就是将不稳定的直流电压转换成稳定的直流电压U5。图3-3直流稳压电流电路图本设计选择的方案是三端集成稳压器的最根本的应用电路,如图3-3所示。整流滤波后得到的直流输入电压U4接在LM7805输入端和公共端之间,在LM7805的输出端即可得到稳定的+5V输出电压U5。3.3湿度采集模块3.3.1温湿度传感器的原理1、概述新型单总线数字温湿度传感器DHT11是广州奥松电子新近推出的一款含有已校准数字信号输出的温湿度复合传感器,它具有体积小巧、接口简单、响应速度快、性价比高等特点。由于DHT11的诸多优点,使其在自动控制和家电消费品领域中拥有较高的应用价值。2、产品特性①湿温度传感器的一体化结构能相对的同时对相对湿度和温度进行测量。②数字信号输出,从而减少用户信号的预处理负担。③单总线结构输出有效的节省用户控制器的I/O口资源。并且,不需要额外电器元件。④独特的单总数据传输线协议使得读取传感器的数据更加便捷。⑤全部校准。编码方式为8位二进制数。⑥40bit二进制数据输出。其中湿度整数局部占1Byte,小数局部1Byte;温度整数局部1Byte,小数局部1Byte。其中,湿度为高16位。最后1Byte为校验和。⑦卓越的长期稳定性,超低功耗。⑧4引脚安装,超小尺寸,各型号管脚完全可以互换。⑨测量湿度范围从20%RH到90%RH;测量温度范围从0℃到50⑩适用范围包括恒湿控制,消费家电类产品,温湿度计等领域。3、外型与引脚排列图3-4DHT11外型及管脚4、连接接口说明DHT11数字湿温度传感器连接电路简单,只需要占用控制器一个I/O口即可完成上下位的连接。典型应用电路如下列图3-5所示。另外,建议连接线长度短于20时用5K上拉电阻,大于20米时根据实际情况使用适宜的上拉电阻,如图3.5图3-5DHT11典型电路连接5、串行接口(单线双向)DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数局部和整数局部,具体格式在下面说明,当前小数局部用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取局部数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。通讯过程如图3-6所示图3-6通讯过程总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。图3-7DHT11复位时序总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,那么DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。数字0信号表示方法如图3-8所示图3-8数字0信号数字1信号表示方法.如图3-9所示图3-9数字1信号3.4pH值检测装置农作物对灌溉液的pH值也有一定要求,需加pH调节液进行调节。灌溉液的pH要求值一般为5.5一6.5之间的某一值。由于肥料一般或呈碱性,或溶于水后,在作物所能承受的浓度范围内pH大于农艺要求,故施肥时,往往加酸,在本论文中,“pH调节液”一般指酸。1、PH值传感器本设计采用的是美国奥立龙868型酸度计。其主要技术参数有:(1)测量范围:0-14PH(2)分辨率:0.1(3)精度:0.001PH(4)温度补偿:自动温度补偿0-本设计PH值检测装置,土壤pH值的测试采用的那么是电位分析法。电位分析法基于两个电极上发生的电化学反响,即将两个电极插在同一土壤稀释溶液中,其中一个电极作为测量电极,其输出电位随被测溶液中的氢离子活度的变化而变化,另一电极作为参比电极,其电位固定不变,两个电极构成原电池,产生大小与pH值有关的电动势。后通过A/D转换芯片0809,将模拟信号转换成数字信号传送到单片机。2、A/D转换芯片0809图3-10A如图3-10所示,A/D0809芯片的引脚图,其信号引脚:IN1~IN7——模拟量输入通道ALE——地址锁存允许信号。对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。START——转换启动信号。START上升沿时,复位ADC0809:START下降沿时启动芯片,开始进行A/D转换;A/D转换期间,START应保持低电平。本信号有时简写为ST。A、B、C——地址线。通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。CLK——时钟信号。ADC0808的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500KHZ的时钟信号。EOC——转换结束信号。EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。D7~D0——数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。D0为最低位,D7为最高。OE——输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。Vcc——+5V电源。图3-11A由于需要检测土壤PH值的传感器市场上很少且价格相对昂贵,故在本设计中采用一个按键来替代,当按键按下后,将单片机P3.3口接低电平,表示所测土壤PH值称碱性,需要加酸液中和,在本设计中表达为,当所测PH值高于7.0,单片机就会点亮发光二极管〔翻开酸液电磁阀〕并在液晶显示屏上显示PH值异常;再按下按键会使土壤PH值呈中性时,发光二极管就会熄灭〔关闭酸液电磁阀〕,且液晶显示屏会显示PH值正常。3.5时钟模块时钟模块接线图时钟模块主要由DS1302和32.768kHz的晶体组成,假设时间有误差可用键盘设置。与单片机的连接仅需3各接口:SCLK、I/O、RST。另外,由于DS1302提供了31*8位的RAM并带有备用电源,可采用它来存储目标湿度、当前水阀状态等变量、防止主电源掉电后数据丧失。在本设计中,DS1302为本设计提供时钟源,当我们需要手动灌溉时,可以让我们控制灌溉时间。液晶屏显示初始时间为2007年7月26日0时0分0秒,我们可以通过按键来调整时间。图3-12时钟模块接线图DS1302是DALLAS公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信实时时钟/日历电路提供、秒、分、时、日、日期、月、年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM指示决定采用24或12小时格式DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1RES复位2I/O数据线3SCLK串行时钟时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信DS1302工作时功耗很低保持数据和时钟信息时功率小于1mWDS1302是由DS1202改良而来增加了以下的特性双电源管脚用于主电源和备份电源供给Vcc1为可编程涓流充电电源附加七个字节存储器它广泛应用于便携式仪器以及电池供电的仪器仪表等产品领域下面将主要的性能指标作一综合实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力还有闰年调整的能力31*8位暂存数据存储RAM串行I/O口方式使得管脚数量最少宽范围工作电压2.0--5.5V工作电流2.0V时,小于300nA读/写时钟或RAM数据时有两种传送方式单字节传送和多字节传送字符组方式8脚DIP封装或可选的8脚SOIC封装根据外表装配简单3线接口与TTL兼容Vcc=5V可选工业级温度范围-40+85与DS1202兼容在DS1202根底上增加的特性3.5.2DS1302内部存放器CH:时钟停止位存放器2的第7位12/24小时标志CH=0振荡器工作允许bit7=1,12小时模式CH=1振荡器停止bit7=0,24小时模式WP:写保护存放器2的第5位:AM/PM定义WP=0存放器数据能够写入AP=1下午模式WP=1存放器数据不能写入AP=0上午模式TCS:涓流充电选择DS:二极管选择位TCS=1010使能涓流充电DS=01选择一个二极管TCS=其它禁止涓流充电DS=10选择两个二极管DS=00或11,即使TCS=1010,充电功能也被禁止RS位电阻典型位00没有没有01R12K10R24K11R38K3.6液晶显示模块液晶显示模块概述本设计的液晶显示模块采用的是带中文字库的LCD12864,各行依次显示日期、时间、温度、湿度。液晶的电路连接比拟简单,把LCD12864与单片机的P0口进行通信。12864是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不管硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。

模块并行接口说明表3-3LCD12864液晶显示器的引脚功能管脚号管脚符号电平管脚功能描述1VSS0V逻辑电源地2VDD3.0+5V逻辑电源+5V3V0-比照度〔亮度〕调整4RS(CS)H/LRS=“H”表示DB7-DB0为显示数据RS=“L”表示DB7-DB0为显示指令数据5R/W(SID)H/LR/W=“H”,E=“H“数据被读到DB7-DB0R/W=“L”,E=“H→L”,DB7——DB0的数据被写到IR或DR6E(SCLK)H/L使能信号7-14DB0-DB7H/L三态数据总线15PSBH/LH:8位或4位并口方式,L:串口方式16NC-空脚17/RESETH/L系统复位,低电平有效18VOUT-LCD驱动电压输出端19LEDAVDD背光电源,LED+(+5V)20LEDKVSS背光电源,LED-(0V)3.6.2控制器接口信号说明:RS,R/W的配合选择决定控制界面的4种模式:表3-4RS、R/W选择模式RSR/W功能说明LLMPU写指令到指令暂存器〔IR〕LH读出忙标志〔BF〕及地址记数器〔AC〕的状态HLMPU写入数据到数据暂存器〔DR〕HHMPU从数据暂存器〔DR〕中读出数据(2)E信号表3-5E信号E状态执行动作结果高—>低I/O缓冲—>DR配合/W进行写数据或指令高DR—>I/O缓冲配合R进行读数据或指令低/低—>高无

无〔3〕忙标志BF:BF标志提供内部工作情况。BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据。BF=0时,模块为准备状态,随时可接受外部指令和数据。利用STATUSRD指令,可以将BF读到DB7总线,从而检验模块之工作状态。〔4〕字型产生ROM〔CGROM〕:字型产生ROM〔CGROM〕提供8192个此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示〔DISPLAYON),DDRAM的内容就显示在屏幕上,DFF=0为关显示〔DISPLAYOFF)。DFF的状态是指令DISPLAYON/OFF和RST信号控制的。〔5〕显示数据RAM〔DDRAM〕:模块内部显示数据RAM提供64×2个位元组的空间,最多可控制4行16字〔64个字〕的中文字型显示,当写入显示数据RAM时,可分别显示CGROM与CGRAM的字型;此模块可显示三种字型,分别是半角英数字型(16*8)、CGRAM字型及CGROM的中文字型,三种字型的选择,由在DDRAM中写入的编码选择,在0000H—0006H的编码中〔其代码分别是0000、0002、0004、0006共4个〕将选择CGRAM的自定义字型,02H—7FH的编码中将选择半角英数字的字型,至于A1以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字型的编码BIG5〔A140—D75F〕,GB〔A1A0-F7FFH〕。〔6〕字型产生RAM(CGRAM):字型产生RAM提供图象定义(造字)功能,可以提供四组16×16点的自定义图象空间,使用者可以将内部字型没有提供的图象字型自行定义到CGRAM中,便可和CGROM中的定义一样地通过DDRAM显示在屏幕中。〔7〕地址计数器AC:地址计数器是用来贮存DDRAM/CGRAM之一的地址,它可由设定指令暂存器来改变,之后只要读取或是写入DDRAM/CGRAM的值时,地址计数器的值就会自动加一,当RS为“0”时而R/W为“1”时,地址计数器的值会被读取到DB6-DB0中。3.7步进电机驱动模块3.7.1步进电机简介和原理步进电机是将给定的电脉冲信号转变为角位移或线位移的开环控制元件。给定一个电脉冲信号,步进电机转子就转过相应的角度,这个角度就称作该步进电机的步距角。目前常用步进电机的步距角大多为1.8度〔俗称一步〕或0.9度〔俗称半步〕。以步距角为0.9度的步进电机来说,当我们给步进电机一个电脉冲信号,步进电机就转过0.9度;给两个脉冲信号,步进电机就转过1.8度。以此类推,连续给定脉冲信号,步进电机就可以连续运转。由于电脉冲信号与步进电机转角存在的这种线性关系,使得步进电机在速度控制、位置控制等方面得到了广泛的应用【22】。步进电机的使用至少需要三个方面的配合,一是电脉冲信号发生器,它按照给定的设置重复为步进电机输送电脉冲信号,目前这种信号大多数由可编程控制器或单片机来完成;二是驱动器〔信号放大器〕,它除了对电脉冲信号进行放大、驱动步进电机转动以外,还可以通过它改善步进电机的使用性能,事实上它在步进电机系统中起着重要的作用,一般一种步进电机可以根据不同的工况具有多种驱动器;三是步进电机,它有多种控制原理和型号,现在常用的有反响式、感应子式、混合式等。

步进电机的速度控制是通过输入的脉冲频率快慢实现的。当发生脉冲的频率减小时,步进电机的速度就下降;当频率增加时,速度就加快。还可以通过频率的改变而提高步进电机的速度或位置精度。3.7.2ULN2003驱动芯片一般ULN2003是用作灌电流驱动。ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行【16】。〔1〕ULN2003引脚说明:1-7号引脚:输入端10-16号引脚:输出端8号引脚:地端9号引脚:电源+〔2〕达林顿驱动的典型应用:①用于大功率开关电路,电机调速,逆变电路,利用CMOS电路经过达林顿管驱动高灵敏度继电器的电路;②驱动LCD智能显示屏LCD智能显示屏是由微型计算机控制,以LCD矩阵板作显示的系统,可用来显示各种文字及图案。该系统中的行驱动器和列驱动器均可采用高β,高速低压降的达林顿管。应注意的是,达林顿管由于内部由多只管子及电阻组成,用万用表测试时,基极的正反向阻值与普通三极管不同。3.7.3步进电机驱动模块单片机输出波形信号脉冲的宽度可由延时子程序来确定。只要改变延时时间,就可以改变驱动脉冲的频率,也就改变了步进电机的转速。显然,使用方便、灵活。单片机向P1口输出驱动代码由程序进行。在实际编程中,单片机驱动代码存入存储器,构成控制表。只要CPU执行传送命令,数据依次取出,送P1口就可以了。每输出一个代码,步进电机旋转一步,连续循环输出,步进电机连续运行;倒序输出,步进电机反向运行;停止输出,步进电机停止运行。改变数据输出的速度,可改变输出脉冲的频率,也就改变了步进电机运行的速度【23】。图3.13步进电机驱动模块电路图由于设计灌溉控制电路所需的时间和花费太大,本设计在硬件电路方面没有做灌溉电路,原意是设计一个水阀控制电路,它有一个水阀灌溉局部和一个酸液电磁阀,最后有一个控制总阀门,当湿度低于最小值时,水阀自动翻开灌溉,假设土壤PH值呈碱性,那酸液电磁阀也会翻开。4系统软件设计4.1程序设计程序设计是指设计、编制、调试程序的方法和过程。它是目标明确的智力活动。由于程序是软件的本体,软件的质量主要通过程序的质量来表达,在软件研究中,程序设计的工作非常重要,内容涉及到有关的根本概念、工具、方法以及方法学等。程序设计通常分为问题建摸,算法设计,编写代码和编译调试四个阶段。按照结构性质,有结构化程序设计与非结构化程序设计之分。前者是指具有结构性的程序设计方法与过程。它具有由根本结构构成复杂结构的层次性,后者反之。按照用户的要求,有过程式程序设计与非过程式程序设计之分。前者是指使用过程式程序设计语言的程序设计,后者指非过程式程序设计语言的程序设计。按照程序设计的成分性质,有顺序程序设计、并发程序设计、并行程序设计、分布式程序设计之分。按照程序设计风格,有逻辑式程序设计、函数式程序设计、对象式程序设计之分。程序设计的根本概念有程序、数据、子程序、子例程、协同例程、模块以及顺序性、并发性、并行性、和分布性等。程序是程序设计中最为根本的概念,子程序和协同例程都是为了便于进行程序设计而建立的程序设计根本单位,顺序性、并发性、并行性和分布性反映程序的内在特性。在硬件系统设计好以后,就要设计相应的程序实现系统功能。把整个过程分成假设干个局部,每一局部叫做一个模块。把一个程序分成具有多个明确任务的程序模块,分别编制、调试后再把它们连接在一起形成一个完整的程序,这样的程序设计方法称为模块化程序设计。所谓“模块”,实质上就是能完成一定功能,并相对独立的程序段,这种程序设计方法称为模块程序设计法[16]。模块程序设计法的主要优点是:〔1〕单个模块比起一个完整的程序易编写、调试及修改。〔2〕程序的易读性好。〔3〕程序的修改可局部化。〔4〕模块可以共存,一个模块可以被多个任务在不同条件下调用。〔5〕模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。本系统软件采用模块化结构,由主程序﹑键盘子程序、12864LCD液晶显示子程序构成。4.2主程序设计在本系统的程序设计中,主控模块负责启动系统后显示屏上的初级显示,开外部中断,判断系统模式,以及执行相应的子程序,完成系统功能。在主程序模块中,需要完成对各模块接口的初始化工作,另外,在主程序模块中还需要检测模式标志单元的值,假设该单元的值为0,那么为手动模式,假设为1,那么为自动模式。用户选定模式后,主程序负责执行相应的子程序。假设为手动模式,阀门翻开后,那么屏幕显示倒计时,时间一到,阀门就关闭。假设为自动模式,那么单片机定时检测P3.3口的值,假设该值为高电平那么不启动阀门,假设该值为低电平,那么启动阀门。启动阀门后,单片机还要继续检测P3.3口的值,假设变高电平,那么关闭阀门。执行完一个灌溉周期后继续循环检测P3.3口的电平值。主程序流程图如图4-1所示。当接通电源时,自动灌溉控制系统启动,同时LCD液晶显示提示语,提示用户选择模式。假设选择手动模式,显示屏还会提示用户通过键盘设置灌溉时间。在运行中键盘采用中断方式,假设有键按下,那么转向相应的子程序。图4-1主程序流程图主程序如下:main(){ t=0; flag=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1;P3_0=1; init_lcd(); clrram_lcd(); Initial_DS1302();//时钟芯片初始化 up_flag=0; down_flag=0; done=0;//进入默认液晶显示 pp=2; LED=ft=1; RH(); delay1(20); while(1) {while(done==1)keydone();//进入调整模式 while(done==0) { RH(); if(pp==2) { show_time();pp=0;//初始化 while(ff==0){RH();show_time();} }show_time();//液晶显示数据 if(flag==2)//100后flag为2,进行比拟 { if(a==U8T_data_H&&b==U8RH_data_H) while(a==U8T_data_H&&b==U8RH_data_H); flag=0; } Setkey(); //扫描各功能键 if(ff<38)K1=0; //湿度小于38% jiaoshui(); P1=0x00; PH(); } }}4.312864LCD显示子程序设计12864LCD显示屏有着自己的指令集,根本指令集有11条指令。它的指令是通过选择RS的上下电平来区别所从DB0~DB7输入的是数据还是指令,RW的上下电平来选择对现实屏是读操作还是写操作。CS1、CS2不同组合代表选择左半屏或者右半屏。数据或者指令的代码从DB0~DB7输入。对12864LCD写程序的步骤如下:〔1〕开启两个半屏〔2〕清左半屏和右半屏〔3〕选择左半屏〔4〕设置页和起始行〔5〕写左半屏显示屏显示子程序流程图如图4-2所示:图4-2显示屏显示子程序流程图显示屏显示子程序:voidshow_time(){if(pp==2){gotoxy(1,0);print("");gotoxy(2,0);print("系统初始化中,");//显示时间gotoxy(3,0);print("请稍候");//显示日期gotoxy(4,0);print("");RH();delay1(3000);}else{DS1302_GetTime(&CurrentTime);//获取时钟芯片的时间数据TimeToStr(&CurrentTime);//时间数据转换液晶字符DateToStr(&CurrentTime);//日期数据转换液晶字符if(pp==0){gotoxy(2,0);print("时间:");gotoxy(2,3);print(CurrentTime.TimeString);//显示时间gotoxy(1,3);print(CurrentTime.DateString);//显示日期gotoxy(1,0);print("星期");gotoxy(1,2);print(week_value);//显示星期}if(pp==1){gotoxy(1,0);print("智能灌溉系统");gotoxy(2,0);print("电机状态:工作");}gotoxy(3,0);print("温湿度:");gotoxy(3,4);//液晶字符显示位置write_dht11(U8T_data_H); print(dht_11);gotoxy(3,5);print("℃");/*gotoxy(3,5);print("湿度:");*///gotoxy(4,2); gotoxy(3,6);write_dht11(U8RH_data_H); print(dht_11);gotoxy(3,7);print("%");if(ft==1){gotoxy(4,0);print("PH值:正常!"); }if(ft==2){gotoxy(4,0);print("PH值:异常!"); }mdelay(500);//扫描延时}}经过调试,本设计实现根本功能,本设计采用闭环控制,温湿度传感器一直采集实时数据,假设所测湿度高于警戒值时,步进电机停止,液晶显示屏会实时显示此时温度和湿度,并显示时钟,且此时土壤PH值设定为正常,液晶屏显示状态如图4-3所示。图4-3湿度大于警戒值假设所测湿度小于警戒值时,电机就会自启动,如图4-4所示,直到所测湿度高于警戒值之后,步进电机就会自动停止,且此时PH值呈碱性,显示为异常。图4-4湿度小于警戒值结论经过了两个多月的学习和工作,我终于完成了《智能灌溉系统的设计》的论文。从开始接到论文题目到系统功能的实现,再到论文文章的完成,每走一步对我来说都是新的尝试与挑战。在这段时间里,我学到了很多知识也有很多感受,开始了独立的学习和试验,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己非常稚嫩作品一步步完善起来,每一次改良都是我学习的收获,每一次试验的成功都会让我兴奋好一段时间。在本次毕业设计过程中,我学会了在网络上查找有关本设计的各硬件的资源,其中包括:灌溉的方法、传感器应用接口电路、AT89S52单片机应用、LCD12864引脚图及其引脚功能、步进电机的驱动等,为本设计提供了一定的资料。本设计在粟田禾老师的悉心指导和严格要求下业已完成,从课题选择、方案论证到具体设计和调试,无不凝聚着粟老师的心血和汗水,在此向粟田禾老师表示深深的感谢和崇高的敬意。虽然我的论文作品不是很成熟,还有很多缺乏之处,其中缺少了土壤中EC值的模块和灌溉控制电路都没有做,是一大遗憾。但我可以自豪的说,这里面的每一段代码,都有我的劳动。当看着自己的程序,自己成天相伴的系统能够成功的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。这次做论文的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那就失去毕业论文的意义了。希望这次的经历能让我在以后学习中鼓励我继续进步。参考文献[1],2003-02-011[2],1999-08-038[3]童时中.模块化设计原理方法及应用[M].北京:中国标准出版社,2000.[4]节水灌溉编委会.节水灌溉技术手册[M].北京:中国大地出版社,2003.[5]何立民.单片机初级教程[M].北京:北京航空航天大学出版社,1999.[6]徐科军.传感器与检测技术[M].北京:电子工业出版社,2007.[7]刘湘涛,江世明.单片机原理与应用[M].北京:电子工业出版社,2007.[8]王毅.单片机器件应用手册[M].北京:人民邮电出版社,1994.[9]李朝青.单片机原理及接口技术[M].北京:北京航空航天大学出版社,1999.[10]赵家贵.新编传感器电路设计手册[M].北京:中国计量出版社,2002.[11]潘新民.微型计算机控制技术实用教程[M].北京:电子工业出版社,2007.[12]周航慈.单片机程序设计根底[M].北京:北京航空航天大学出版社,2004.[13]邵敏权.单片机原理实验及应用[M].吉林:吉林科学技术出版社,1995.[14]杨振江.智能仪器与数据采集系统中的新器件及应用[M].西安:西安电子科技大学出版社,2001.[15]康华光.电子技术根底[M].北京:高等教育出版社,2005.[16]朱兵,彭宣戈.汇编语言程序设计[M].北京:北京航空航天大学出版社,2009.[17]朱清慧,张凤蕊等.PROTUES教程[M].北京:清华大学出版社,2008.[18]何希才.传感器应用接口电路[M].北京:机械工业出版社,1997.[19]冯博琴.微型计算机原理与接口技术[M].北京:清华大学出版社,2004.[20]MatthewChapman.TheUsingSkillsOfSingle-Chip[J].ElectronicDesign,1999.[21.txt/980810-2.html,1998-08-16/1998-10-04.[22]王鸿钰.步进电机控制技术入门[M].上海:同济大学出版社,1990.[23]霍迎辉,陈宇翔.步进电机的微机和单片机控制[J].电机电器技术,2003.[24]张迎新.单片机微型计算机原理、应用及接口技术[M].北京:国防工业出版社,2004.[25]赵志杰.集成电路应用识图方法[D].北京:机械工业出版社,2003.致谢我的毕业设计从开始到根本完成大概用了二个月,时间虽然不是很长,主要因为自己不断的努力和粟在这一段时间里,我努力复习单片机的相关知识,在网上不断的搜寻跟论文相关的材料。遇到不懂的硬件软件设计,我首先是自己钻研,找资料,如果还是弄不明白,就向粟老师寻求帮助。记得在写程序的过程中,我遇到了液晶显示屏12864的软件设计问题,研究了很久,但是还是没搞明白。后来我和粟老师一起研究讨论,终于弄明白了原理。粟老师是一位年轻的老师,对单片机颇有研究,他对学生要求严格,对学术态度严谨,他在忙碌中也会抽出时间来指导我的毕业设计,没有粟老师的帮助,我的论文不会这么顺利的完成。粟老师的人格和精神是我的典范,也是我人生的财富,在此对他表示深深的感谢。感谢我的每一位老师,他们对我的教导我将永远铭记在心间。感谢应教专业各位同窗好友,他们的关心和照顾让我在这个集体里倍感温暖,一起走过的日子将成为我人生的美好回忆。最后,感谢我的家人,他们的支持与鼓励,永远是支撑我前进的最大动力。在此对他们表示衷心的感谢,他们的名字我一直铭记在心!最后,衷心感谢在百忙之中抽出时间审阅本论文的专家老师们。附录一总体电路图附录二源程序#include<REG52.H>#include<intrins.h>#defineuintunsignedint#defineucharunsignedchar#definelcddataP0#defineAM(X) X#definePM(X) (X+12) //转成24小时制#defineDS1302_SECOND 0x80//时钟芯片的存放器位置,存放时间#defineDS1302_MINUTE 0x82#defineDS1302_HOUR 0x84#defineDS1302_WEEK 0x8A#defineDS1302_DAY 0x86#defineDS1302_MONTH 0x88#defineDS1302_YEAR 0x8CsbitDS1302_CLK=P1^5;//实时时钟时钟线引脚sbitDS1302_IO=P1^6;//实时时钟数据线引脚sbitDS1302_RST=P1^7;//实时时钟复位线引脚sbitSet=P3^4;//模式切换键sbitUp=P3^5;//加法按钮sbitDown=P3^6;//减法按钮sbitout=P3^7;//立刻跳出调整模式按钮sbitK1=P3^1;//正转sbitK2=P3^2;//tingsbitrs=P2^0;sbitrw=P2^1;sbite=P2^2;sbitLED=P2^7;sbitK3=P3^3;sbitbusy=P0^7;//lcdbusybitsbitACC0=ACC^0;sbitACC7=ACC^7;sbitP3_0=P3^0;intpp=0;intff,ft;typedefunsignedcharU8;typedefunsignedintU16;U8U8FLAG,k;U8U8temp;U8U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;U8U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;U8U8comdata;U16a,b,t; U8flag,i;uchartemp_value,temp1_value;//temp_value温度值正数局部temp1_value温度值小数局部uchardone,count,temp,up_flag,down_flag;ucharhide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year;//秒,分,时到日,月,年位闪的计数ucharTempBuffer[8],week_value[3],dht_11[2];ucharcodeFFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};//四相八拍正转编码voidshow_time();//液晶显示程序voidwr_d_lcd(ucharcontent);voidwr_i_lcd(ucharcontent);voidclrram_lcd(void);voidinit_lcd(void);voidbusy_lcd(void);voidrev_row_lcd(ucharrow);voidr

温馨提示

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

评论

0/150

提交评论