中国知网查重 高校在线论文查重入口

立即检测
  • 58 元/篇
    系统说明: 知网职称论文检测AMLC/SMLC是杂志社专用系统,针对投稿论文、评审论文、学校、单位职称论文的学术不端重复率检测系统。
  • 298 元/篇
    系统说明: 知网本科论文检测PMLC是最权威的大学生毕业论文检测系统,含“大学生论文联合对比库”,国内95%以上高校使用。检测结果和学校一致!
  • 498 元/篇
    系统说明: 此系统不支持验证!可用作研究生初稿检测,相比知网VIP5.3缺少“学术论文联合对比库”,检测结果有5%左右的误差!(论文中若参考往届研究生论文,重复率误差会较大)
  • 128 元/篇
    系统说明: 大分解论文检测系统,对于想检测学术不端文献检测系统,而又价格便宜的同学可以选择,限每篇2.9万字符,结果与大学生PMLC、硕博VIP定稿系统有出入!
  • 68 元/篇
    系统说明: 知网论文小分解检测系统,适合中国知网初稿查重,数据库和定稿查重不同。结果与本科PMLC,研究生VIP5.3有出入,限每篇1.4万字符!
  • 3 元/千字
    系统说明: 学术家论文重复率检测系统,支持学位论文、毕业论文、投稿论文、职称评审论文,提供全文对照,word标红报告,性价比超高!
论文技巧大全-基于单片机的农业大棚温度控制系统设计
时间:2021-05-22 09:38:04

  现今的农业种植温室大棚温度监测控制系统已经取得一定的良好成果,可是依旧存在一些不足。针对这样的情况本论文课题提出了基于单片机的农业大棚温度控制系统设计。根据温度监测控制的最小系统构造,本文设计的主要组成模块分别是最小系统模块,温度采集模块,加热模块,降温模块还有数码管显示模块。农户自己用按键设置农业大棚需要的温度值,采集上来的温度会在LED数码管显示。设计的方案是利用按键调整农业种植大棚里面各种农作物的所需要的预设温度数值,AD590传感器采集农业种植大棚实际地温度和前期输入的预设温度数值进行比较,判断大棚里面的温度是不是要调整,提供大棚内的植物在最合适的温度中生长,提高产量。

  在我国西北地区冬季寒冷漫长露天无法种植蔬菜提供新鲜农产品,又因为且南方蔬菜价格昂贵,所以大力扶持推广农业大棚种植提供人们日常需要的各种新鲜农产品满足人们日益增长的生活需求。农业大棚温度检测方面,逐步发展过程中,农户提出的要求更高了,这刺激着农业大棚温度控制成为了农业大棚种植的研究热点。这样的系统能够利用相关温度监测,数据传输的途径,令农业大棚里面的温控工作效率提升提供比较可靠的依据。

  冬季农业大棚种植管理最核心的一个条件就是满足各类植物需要的相应生长温度。温度管理一般把一天分为早晨、中午下午、凌晨4个时间段进行温度调节。早晨和中午主要以促进光合作用、增加农作物的同化量为主,一般使大棚温保持在25~30℃为宜;下午光照减弱光合作用缓慢下降,应使温度比中午降低5℃左右,以20~25℃为好,为了防止高温呼吸作用消耗养料过多减少农作物同化量;北方夜间温度大幅降低,在太阳下山候4~6h内,使大棚里面温度从20~25℃逐渐下降到5℃左右,这是促进农作物同化物的运转。凌晨再把温降到10~12℃范围里面,是要抑制农作物呼吸、减少养分过度消耗,让有机物积累,要十分注意的是不可把温度降得过低,防止温度过低危害农作物另外要注意天气的变化,如阴雨天光照强度较弱,农作物光合作用能力较低不能正常进行有机物积累,所以大棚内温度相比于晴天应该低5℃左右,以降低植物呼吸作用减少养分消耗。由于单片机的快速发展,其具有体积小、功能强、性价比高等特点所以现在农业大棚普使用比较便宜的单片机对大棚里面进行温度调控,把单片机使用在温控系统里面可以起到更精准的控温作用,有效完成对温度的采集和控制,以便满足农作物的要求。

  农作物的生长发育需要确切的温度范围,只有在满足植物生长发育有机物积累的条件下,农作物才能获得相应的产量.温度、湿度和光照是构成蔬菜大棚温室系统的重要因子,对农作物生长影响较为显著[1]。,如下列举几种蔬菜的不同时期需要的温度,见下表1-1。

  蔬菜种类生长时期适宜温度(℃)最高温度(℃)

  白天夜间最低温度(℃)

  黄瓜育苗

  苗期到结果

  结果22左右

  24左右

  26左右28 22

  33 22

  38 24 15

  15

  15

  茄子育苗

  苗期到结果

  结果20左右

  22左右

  26左右28 20

  30 20

  34 24 15

  15

  12

  番茄辣椒育苗

  苗期到结果

  结果18左右

  22左右

  222左右26 28

  28 20

  30 28 10

  10

  10

  表1-1蔬菜各时期温度情况

  现在的科技水平高速发展,更加精准的器件被研发,给用户提供满足相应的要求。适合使用单片机的地方停出现,但太多现实因素阻碍,环境的温度便是干扰精度的其中之一,温度是环境最重要指标之一。当下根据单片机特征已经研发出了许多种监测温度与温度控制于一体的单片机。在温度监测采集方面,部分新型温度传感器最小分辨率到了0.01℃[2],可是这类元件价格太高,使用成本很高,不适合农业大棚大量使用。相比其他器件,单片机它的用途更宽、占地小、可靠性比较高,成为自动化和测控领域内重要组成部分和广泛应用的核心器件,甚至在日常生活中也开始发挥了重要作用。因此,在农业大棚生产中需要大量的单片机进行温度的检测与控制,与此同时单片机成为农业种植不可缺少的工具,成为当下种植大棚热点话题。正是基于目前农村的现状,本论文以农业种植使用价格不贵的AT89C51为核心,AD590温度传感器监测采集元件构成实地实时温度监测控制系统设计进行展开详细分析和研究。

  本论文监测系统,在被测环境和实际所需设备下,前端AD590温度传感器对合适监测位置安放点进行范围测量,由AT89C51对获取的最新数据处理,存储对比,然后进行反馈,向执行机构发出指令做出应答,利用检测数据进行相应温度控制,继而做出对温度控制的相应调节。因此,该系统不仅有智能温度监测采集又有数据反馈精准控制执行设备,而且节约用户成本。曲阜师范大学成功研制了采用分布式控制管理方式的蔬菜温室大棚智能控制系统[3],借鉴了这种设计思考出来本论文设计的农业大棚温度监测控制系统,它占用空间率小,可以小范围使用,又能用在大规模农业种植大棚的内部环境温度检测控制。

  1.2单片机技术的发展

  目前的微机处理器发展很显然主要朝超运算巨型化,嵌入式单片化,还有网络化的三个方面发展快速。在处理解决繁琐大数据和超高速计算数据方面,基本靠超运算巨型机处理问题。因而巨型化处理器在向超高速处理计算能力的方向前进。嵌入式单片机它最大特点也是优点就是能镶嵌到各种设备内部,这使得微控制器占地面积小。这个特点是超运算巨型化和网络化的微控制器无法做到的。现今用户对单片机的使用数量不断增加,同时对其提出的要求更加严苛。

  1.2.1单片机构成发展成果

  单片机复杂的结构组成,有使用频率高的常见电路,比如常见的器件,A/D转换,不同类型的脉冲复位电路,定时器,各种串行通信接口电路,数码管显示的控制电路等。小部分的特殊单片机里面向构成全面控制网络电路或者形成小范围网络电路研发,里面添加了小范围网络控制CAN模块。像Infineon公司研制的C515C,C167CS-32FM等,尤其是C167CS-32FM里面有2个CAN模块,这使得很容易构造网络控制电路。在控制电路很繁琐的时候,构建控制网络十分有效。也有一小部分芯片里面增加了变频脉宽调制的控制电路,像Fujitsu公司产出的MB89850。就目前研研制出来的少量单片机使用了新提出的三核(TrCore)理念结构。在这种新理念下研发出来的新型单片机是以微控制器与DSP核、数据和程序存储器核、外部集成电路(ASIC)三个部分组成。用这种组成结构的单片机最大的创新点就是将DSP与微控制器一起放在了同一个地方上,作用是在高速运算和处理特殊问题这两方面上的反映,如傅里叶变换。这种新型单片机与传统单片机集成相互比较,在很大程度上改善了旧式单片机的部分性能。这个也是现今单片机提高的其中最大特点。这样的单片机具有代表性的是Infineon公司出品TC10GP和Hitachi公司研发的SH7612等。

  1.2.2单片机功率消耗、电源电压发展成果

  新型研发的单片机在降低功率消耗上有了明显进步,这样的单片机工作方式基本都有好几种,像等待工作方式,暂停工作方式还有睡眠工作方式等。TI公司MSP430有低功率消耗LPM1、LPM3、LPM4这三种形式。当接入电压是3V的时候,假设这样的方式是LMP1形式,即便是外面的电路处在活动状态,但是CPU不会在当前活动状态,这个时候振荡器工作在1~4MHz,这种状态下只有50mA的功率消耗;假设处于LPM3地工作方形式下,这个时候振荡器工作在32kHz,这种状态下只有1.3mA的功率消耗;第三种工作方式LPM4,这个时候CPU和外部的电路还有振荡器都处在不活动状态,只有很少的0.1mA功率消耗。

  伴随着贴片工艺的诞生,最新型的单片机在封装水平上也有了很大的进步。现在许多的单片机开始大量使用贴片工艺的封装方式,这样能够有大幅度减少里面的占用空间。当下使用的大部分单片机基本能在3.3~5.5V的情况下工作。Fujitsu公司研发的F2MC-8L这种类型的单片机基本上都满足2.2V~6V这个范围里面的工作电压,相似的芯片是TI公司出品的MSP430X11X这种型号,正常的工作电压也是温度在2.2V以下的。

  1.3温度控制系统应用

  温度控制系统是借助于温度传感器获取外界的温度,继而实现对温度的调整。系统核心是单片机,配置合适的温度传感器,设计外围接口电路,从外界信号获取数据,经过数模转换得到反馈的信号来控制前端设备的运转。温度控制系统用处很多,在一系列指令下,使用数字/模拟信号的输入/输出方式控制多种型号的仪器设备。

  在采集温度时,温度传感器会把温度信号转换成电信号为控制器连接,检测的电信号基本换算成了使用的标准信号0-5V/4-20mA。如果出现多个传感器同时工作,每个传感器信号之间应该避免共地的情况,不然可能出现模拟量不正常的工作。系统中间继电器在接受输出信号后控制强电信号,驱动执行设备运转,系统会根据测量的温度值,判断执行设备的工作状态。例如,当温度大于设定值30度时,开启风扇,降到30度延迟一段时间让温度多降几度,切断电源。系统实现精确的测量和控制取决于前端设备的线性度,所以系统要有良好的线性度。

  2温度传感器简介及选择

  2.1传感器简介

  2.1.1温度传感器介绍与未来发展

  温度传感器现在是使用范围最为广泛的,使用数量最为多的,环境监测安全保障最普遍的一种智能化传感器。从17世纪之初,温度传感器出现在大众视野继而开始发展,研究出了接触/非接触式温度传感器两类,在后面的发展中热电偶传感器,集成温度传感器和智能传感器等相继问世。在现代科技支持下半导体技术,材料技术等新技术迅速发展,温度传感器也不断创新更新,开发出更加精准的产品。现在传感器软件方面与硬件相结合极大的拓展了传感器的性能、提高了传感器的精度,在温度传感器的组成方面更为紧凑,实用性更高,故此智能温度传感器是当下的一个热点研究方向。在微处理器的加入下,使得温度信号的获取和存储,微处理器把信号综合处理并将控制组合形成一个较为完整个体,在科技的推动下一直向着智能化这一方面方向急速发展。

  2.1.2温度传感器原理

  (1)热电偶温度传感器测温基本原理

  将两种不同材质的导体或半导体A和B的两端连接起来(如下图方式连接),当导体A和B的热端受热,在自由端就会出现温度的差值,继而会在1,2两个端口之间产生微弱的电动势,如图2-1。这个时候就会在形成的电路中出现电流,把这样的现象命名成为了热电效应。

  图2-1塞贝克效应示意图

  热电偶它具有的优势有1.测量的精度比较高;2.检测温度的局限性不小;3.设计清楚明了。在保证温度传感器热电偶的可靠性以及稳定性的前提下,在结构上有必须明确要求的几点:1.AB之间必须要做到相互绝缘,不能出现短路的情况;2.热电偶自由端要与补偿导线连接时尽可能简单;3.热电极与有害介质之间防护套要分离开。

  (2)热敏电阻温度传感器测温基本原理

  因为导体材质性质不一样,不一样的材料形成的阻值会随温度改变而出现变化,如图2-2。在这样的性质下算出物体温度,这种工作原理的传感器叫热敏电阻温度传感器。

  使用制作热电阻的材料应该保证具备几个重要的特性:

  1.材料的温度系数较为稳定,电阻值与温度有良好的线性度;

  2.材料的电阻率必须要高,而且满足热容较量小和反应速度较迅速;

  3.材料的导电性要好,而且必须成本要低;

  4.检测温度环境中的化学和物理性质必须要特别的稳定。

  图2-2导体阻值与温度线性关系图2-3 AD590温度传感器

  (3)集成模拟温度传感器基本原理

  与热敏电阻相互比较,集成模拟温度传感器它具备灵敏度比较高、线性关系良好、立即响应很迅速,它还有驱动电路、信号处理电路和相关控制电路集成在了一个IC片上,占空比比较小,更加方便实用。AD590的图片如图2-3。

  (4)智能温度传感器基本原理

  智能温度传感器是旧式温度传感器从单一单向检测发展到多项检测;旧式的数据被动检测处理化向数据主动检测处理化过度;从实地测量传输向长距离线上测量传输检测发展;增加了新的工作模式。传统温度传感器引入网络进行网络化处理,使得检测空间与传感器没必要对点连接,极大的简化线路,更加方便实用和保护。

  2.2温度采集器件选择以及简介

  2.2.1温度传感器选择

  温度传感器是获取温度信号不能缺少的一部分,它担任着在温度测量环节进行的温度检测采集,获取准确信号整个工作的核心任务。温度传感器是外界与系统相互交流的中间媒介,温控系统的最前端与环境直接接触部件。在农业应用上基本依靠温度传感器来产生各种参数进行整个过程的控制,使设备正常工作,继而保证产品的品质。本论文设计使用的是较为廉价的AD590。

  2.2.2 AD590温度传感器简介

  AD590是利用电流与绝对温度成正比关系原理设计出来的的一种集成传感器件,本质上还是半导体集成电路。它利用晶体管的b-e结压降的不饱和值VRE与热力学温度T和通过发射极电流I的关系实现对温度的检测[4]。主要是因为AD590具有良好的互换性,校准精度可达±0.5℃[5]。输出电流与温度成线性关系,具有不错的线性度,每增加1 K(1℃)电流增加1μA[6]。利用AD590相关的电路板块把温度信号转换成了模拟电压信号,在传输到ADC0804转换成数字信号交给AT89C51处理[7],它主要特性如下表2-1。

  1.经过相关部处理,电流示数就是当前处于的大棚里面温度的热力学温度度数。

  2.AD590测量范围大致是在-55~+150℃这个区间。

  3.AD590电源电压区间维持在4~30V之间。电压从4~6V里面变化,电流IT就会发生1μA变化,这个温度变化就相当于1K。如果处于+44V电压和-20V的电压的时候。器件如果接反了也不会损坏。

  4.输出电阻为710MΩ。

  5.AD590在生产出来的时候校准已经完成,精度满足使用需要。AD590共有五个挡为。其中M档精度是最高的,在-55~+150℃区间里面,非线性的误差是±0.3℃。I档误差较大需要再次校准。

  表2-1 AD590特点解释说明

  2.2.3温度的采集与转化

  本论文设计里面,温度的获取和信号的数模转化是处理最先前的部分,准确度会影响后面的处理,故很关键。AD590采集外界温度后,先需要三个LM6317使得温度放大;这个信号再由ADC0804转化变成数字信号,让AT89C51能够辨别,对应信号的接收工作。AD590电路图是图2-4。A/D转换器是将输入的模拟信号转换成数字信号[7]。ADC0804输出的数字信号交由系统核心处理,电路图图2-5。根据所给出的电路图对三个OPA作用解释说明,如表2-2。

  OPA1它的标准是零度,调节R10让输出的电压变成2.73V。

  OPA3减2.73伏特,并反相

  OPA3放大5倍并反相。

  表2-2 OPA的作用解释

  图2-4温度采集和AD590温度传感器工作的系统结构电路图

  图2-5 ADC0804电路图

  在实际测量中得到的每个温度在经过OPA的放大处理和ADC0804数模转换候都会有相对应的的输入值与输出值,然后在显示器中显示转化后的温度值供用户了解使用这一系列的信号转化是AD590提供输出的稳定电压,电压值是1.5V。下表2-3就是转换过程对应的各数据。

  温度值OPA1

  OPA2

  OPA3

  ADC VIN ADC输出值

  0℃2.832V 0V 0V 0V 00H

  10℃2.732V-0.1V 0.5V 0.5V 19H

  20℃2.934V-0.2V 1V 1V 32H

  30℃3.034V-0.3V 1.5V 1.5V 4BH

  40℃3.130V-0.4V 2V 2V 64H

  50℃3.232V-0.5V 2.5V 2.5V 7DH

  60℃3.331V-0.6V 3V 3V 96H

  70℃3.432V-0.7V 3.5V 3.5V AFH

  80℃3.522V-0.8V 4V 4V C8H

  90℃3.532V-0.9V 4.5V 4.5V E1H

  100℃3.742V-1V 5V 5V FAH

  注:AD590负责1.5V电压,温度换算先是OPA3加上OPA2得出电压值然后这个电压值除以10K得出电流数,最后电流数减去237.3。这个结果就是转化出来的温度示数。

  表2-3各温度与3个OPA及ADC0804的输入与输出关系

  3单片机的选择和系统部分结构

  3.1系统目标与结构

  3.1.1控制系统目标

  把组成计算机的控制器、运算器、存储器和各种输入/输出接口等相关器件全部放在一块同块芯片上,这个时候的芯片在功能和组成上基本上具备了计算机系统主要部分特点。单片机的主要控制功能是通过单片机的I/O端口按不同时序输出不同的高低电平控制外部电路实现特定的功能[8]。它的体积较小、抗干扰能力很强强、功率消耗小和价格相对便宜等诸多特点,适用于各种自动化设备的控制系统前端装置。

  本论文设计构思AT89C51作为核心,与环境交流的媒介是AD590传感器,进行农业大棚内温度信息的测量检测完整的系统电路图如图3-1所示。通过通风设备执行部件的控制,对农业大棚的参数进行调节从而达到农作物不同时期生长发育的需要,能够使种植的大棚植物生活在适合的温度环境,最大化成长。

  图3-1系统完整电路图设计

  3.1.2系统原理和具体结构

  本论文以AT89C51实现对温度参数的控制检测,把传感器从环境当中采集的温度数据储存,与标准设定值进行对比,判断加热器/换气风扇是不是要启动。同时将数据通过串行接口传输到上位机,继而进行对数据的分析管理,并对数据进行存储显示等相关处理。当温度上升/下降超过设定值,系统驱动电路控制通风口/加热器执行机构进行降温/升温调节,让温度回归正常范围。整体的系统框图如图3-2。

  图3-2系统结构框图

  3.2单片机的选择有介绍

  3.2.1 AT89C51单片机的具体介绍

  本文设计的系统有AT89C51单片机最小系统模块,温度采集模块,加热模块,降温模块以及显示模块六大主要部分构成[9]。设计的小系统结构包括了时钟脉冲和复位电路这两部分,AT89C51单片机本身里面就含有振荡电路,只要让组成的简单石英晶体连接在接地的18引脚和19引脚两个上面就好了。AT89C51它的时钟频率达到了12赫兹,复位引脚在第9个引脚上面,如果这个引脚连接在高电平超过两个机器周期,这个时候复位就能够进行了。谈到上电复位,把一个电容串联在这个复位引脚上。如果引脚接上了+5V电压的时候,这个连接的电容等于短路状态,在复位的这个段时间过去之后,串联的这个电容会开始再次进入充电的这种状态里面,也就是等于把电路给断开了。除了前面讲的复位方法之外还有手动复位。它的原理就是添在电容下面并入一个按钮,人为控制按钮,按下去和恢复状态这两中情况完成,按下去之后,就进入了复位动作;断开开关的时候电容就是在充电的状态。它的实物图如下图3-2。

  图3-2 AT89C51实物图

  3.2.2 AT89C51功能以及引脚作用

  AT89C51有4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路[10]。AT89C51它有可以满足空闲与掉电两种类型的的静态逻辑工作模式:它的电路图如图3-3。

  图3-3单片机小系统引脚电路图

  部分引脚解释说明,见下表3-1.

  Vcc外部电源电压

  GND接地端

  P0 P0口是地址或数据总线复用口,也是双向I/O口

  P1 P1是双向I/O口。本论文使用的ST89C51与AT89C51端口相互比较,前者的P1.0与P1.还多具备一种功能,可以对应成为计数器或者定时器的外部计数输入(P 1.1/T2EX)端和输入端(P 1.0/T2)。

  P2 P2是I/O数字数据端口,当输入时P2端口变为“1”,这是因为它的里面有个上拉电阻,会把P2端口的电平拉到高电平。

  P3 P3口是一组八位I/O端口。

  RST复位输入

  XTAL1振荡器的反相放大器里面时钟发生器输入端口

  XTAL2:振荡器的反相放大器里面时钟发生器输出端口

  表3-1引脚解释

  3.3.3译码IC7447的功能与使用简介

  本论文里面使用了IC7447译码驱动。传输过来的数据要在数码管当中显示出来的时候,数字信号要经过BCD码的转换,变成7段LED数码管,就是要靠着IC7447完成,如下图电路图,图3-4。

  图3-4译码IC7447

  对译码IC7447引脚解释如下表3-3。

  大写ABCD四个输入BCD码的引脚。

  小写a到g 7段输入数码管数据的引脚.

  LT测试引脚,高电平接入点时候数码管发光

  RBI测试引脚,正常显示是低电平。

  BI RBO淹没输入或涟波淹没输出引脚,一般正常情况是低电平。

  表3-3译码IC7447引脚解释

  3.3.4 LED数码管功能与原理

  LED数码管是8个发光二极管组成,它们按照一定的规则封装起[11-12],它的通电引线在里面已经连接好了,不需要其他的连接,只要把每一个显示的笔画印出来连接在公共电极上就可以了。LED数码管段有8个,包括7段数字显示管和一个小数点显示管,软件编程的时候要对数码管了解清楚,这个是很重要的。因为不同的型号有着相应的功能和编程。本论文使用的译码IC及温度显示的电路图如图3-5所示。

  图3-5译码IC及温度显示的电路图

  3.4键盘扫描和看门狗设计

  3.4.1矩阵式键盘组成以及原理

  键盘在本论文系统设计里面是和单片机人机互交的重要工具,主要是对系统进行信息设定与修改,数据的输入和控制执行机构。基本使用的就是矩阵式键盘和独立式键盘这两种类型,本论文设计的系统使用的是矩阵式键盘,它的按键连接如图3-6。

  图3-6矩阵是键盘与单片机接口连接

  3.4.2按键识别

  按键识别是键盘的行线和列线分别接在了开关两侧,上拉电阻把行线接到+5V上,行线和列线相互配合处理出现的新的信号,这样就可以准确的判断出线路接通的位置,接通的行线和列线,该列线的高电平电平决定了行线电平;没有导通的时候,这个时候行线保持在高电平的状态下。

  按键使用的开关在触点接通和断开的这个时候,因为两个触电会发生弹性形变产生弹力,按键关闭的时候不会一下子就能导通电路,在断开的时候也不会一下子就会断开接通的电路。故而在闭合与断开的这一小段时间都会发生振荡的小抖动,解决这个难题的好办法就是按键消抖。抖动的大致是5~10ms这个时间范围段里面。硬件消抖就是通常在键数较少的时候,用RS触发器去抖。想按下去的键没有下去的时候,产生是0;当需要按的键暗下去了,产生结果是1。不管怎么抖动,这个时候的双稳态电路状态将不再发生改变,一直产生稳定结果0,按照这种原理不停的检测按键产生的数值,一直到按键产生值稳定不变化。按键前后的输入值与产生的数值不一样的时候是不稳定状态。如果前后产生的结果是相同的,这样就保证了进入温度的状态下。也正是因为这段时间刚刚不处在抖动时间范围里面。软件消抖程序如下:

  assign key_done=(dout1 I dout2 I dout3);//按键消抖输出

  always (posedge count[17])

  begin//按键按下

  doutl<=key_in;//1的值是抖动数值

  dout2<=dout1;//2得到1的值

  dout3<=dout2;//3得到2的值

  end

  always (negedge key_done[0])//按键消除抖动

  begin//消除后输入的正常值

  keyen=~keyen;////正常的数值

  end

  3.4.3键盘扫描

  本论文采用的是电话式键盘,键盘是接在IC 74922上面的,74922是键盘扫描IC。把想输入的数据利用键盘横向和纵向的按键传输到74922,这样就完成了数据的输入,设定温度值就是这让的操作。键盘样子是十六宫格,方便配合其他硬件连接。键盘扫描电路图如图3-7。

  图3-7键盘扫描电路图

  3.4.4看门狗复位电路

  硬件看门狗其实是定时器时刻监看系统是否正常运行,防止程序跑飞[13]。在程序正常运行的时间里面定时的对定时器复位,若出现程序故障或者死循环,看门狗预置时间里面没有总线活动,那么定时时间到后,RESET马上就输出高电平信号让单片机复位,硬件连接如图3-8。

  图3-8 X25045看门狗硬件连接图

  软件看门狗其实就是将硬件电路上的一个定时器用处理器里面的一个定时器代换了,主要的目的是为了简化了内部电路,从效果来看,软件看门狗自身的效果不如硬件看门狗好,它的部分程序如下:

  #include<reg51.h>

  sfr WDTRST=0xA6;

  void main()

  {

  WDTRST=0x1E;//初始化看门狗

  WDTRST=0xE1;;//初始化看门狗

  for(;;)

  {

  WDTRST=0x1E;;//喂狗指令

  WDTRST=0xE1;//喂狗指令

  }

  }

  3.4.5 WP型温室加热器和降温模块

  在AT89C51的P2.1上接上一个继电器,然后把加热器连接在这个继电器上,提高温度的时候,控制P2.1端口让它处在1状态,继而控制加热器开始升高温度。在AT89C51的P2.2上同样接一个继电器,然后把降温风扇连接这个继电器上,降低温度的时候,控制P2.2端口让它处在1状态,继而控制降温风扇开始降低温度,电路图连接如图3-7。

  4温度控制系统的软件设计

  分析大棚温度设计的过程,大棚里面的实际温度不在设定的温度范围里面的这个时候,系统会判断出发出命令,各个地方的部件按照发出来的的指令调节动作。如果设定的下限温度超出了外界温度的时候,加热器马上就开始加热工作;如果设定的上限温度在实际温度之下的时候,降温风扇就开始降温了。具体的工作流程以及程序将在下面介绍。

  4.1数模转换主程序

  本论文设计的部分思路在流程图图4-1。系统利用AD59获取的温度信号发送给ADC0804,再经手ADC0804把温度转化成能够处理的数据,进行后续的工作。本论文设计的系统把大棚里面的温度设计在在+10℃到+40℃范围里面,然后经过数码管显示出来。当系统正常工作的时候,每隔二十毫秒定时器就会进行一次扫描,新测量出来的数据与设定温度范围最大值和最小值相互比较,然后判出外界温度所处在什么状态,是否发出加温或降温的命令。

  图4-1程序流程图

  ADC0804程序:

  #ifndef _ADC0804_H

  #define _ADC0804_H

  #include<reg52.h>

  #include<intrins.h>

  #define uchar unsigned char

  #define uint unsigned int

  uchar quantity_analog;//存放物体质量数据_ADC读取的模拟量

  float quantity_digital;//存放物体质量数据_ADC转换后的数字量

  sbit ADC0804_RD=P3^7;//IO口定义

  sbit ADC0804_WR=P3^6;

  //sbit ADC0804_CS=P2^5;

  sbit ADC0804_INTR=P2^0;

  //控制并读取adc0804转换好的数据

  uchar read_adc0804(void);

  //计算ADC0804的模拟量,转换为float的物体质量数据

  float quantity_count(void);

  //控制并读取adc0804转换好的数据

  uchar read_adc0804(void)

  {

  uchar temp;

  //ADC0804_CS=0;//写入控制命令,启动转换

  ADC0804_WR=1;

  _nop_();

  ADC0804_WR=0;

  _nop_();

  ADC0804_WR=1;

  //delay_ms(30);

  _nop_();

  P0=0xff;

  ADC0804_RD=1;

  _nop_();

  ADC0804_RD=0;

  _nop_();

  temp=P0;//读取已转换好的数据

  ADC0804_RD=1;

  return temp;

  }

  //计算ADC0804的模拟量,转换为float的物体质量数据

  float quantity_count(void)

  {

  float temp=0;//暂时存放模拟量转换后的物体质量数据(类型float)

  quantity_analog=read_adc0804();//读取ADC转换的数字量:模拟量->数字量

  if((0<quantity_analog)&&(quantity_analog<256))

  {

  temp=(0.019608*(int)quantity_analog);//测得电压为

  if(0<=temp&&temp<0.5)temp=0;

  else if(0<=temp&&temp<0.5)temp=0;

  else if(0.5<temp&&temp<1)temp=10;

  else if(1<temp&&temp<1.5)temp=20;

  else if(1.5<temp&&temp<2)temp=30;

  else if(2<temp&&temp<2.5)temp=40;

  else if(2.5<temp&&temp<3)temp=50;

  else if(3<temp&&temp<3.5)temp=60;

  else if(3.5<temp&&temp<4)temp=70;

  else if(4<temp&&temp<4.5)temp=80;

  else if(4.5<temp&&temp<5)temp=90;

  }

  return(temp);//返回最后处理结果

  }

  #endif

  4.2定时器TO中断子程序

  当定时器T0发生中断的时候,新采集上来的外界数据会与大棚里面设定的范围最大值与最小值进行比较,该思路的流程图见图4-2。若干发生了最小值大于新采集上来的外界温度值,发热器开始升高温室温度;假设最高温度限制值低于当前新的温度值,降温风扇开始对大棚通风降低温度。

  图4-2定时器TO中断流程图

  中断程序:

  void TIME0_Init()

  {

  TMOD=0X01;//使用定时器0方式1

  TH0=(65535-50000)/256;//定时器高8位装载初值

  TL0=(65535-50000)%256;//定时器低8位装载初值

  ET0=1;//开定时器中断

  TR0=1;//启动定时器

  EA=1;//开总中断

  }

  void timer0()interrupt 1

  {

  static uchar times;

  TH0=(65535-50000)/256;//定时器高8位装载初值

  TL0=(65535-50000)%256;//定时器低8位装载初值

  times++;

  if(times%20==0)times=0;//定时清零

  if(buff_s%10==Set_val&&buff_s%10==Set_val1){JIARE=1;JIAGWEN=1;}

  else if(buff_s%10>Set_val&&buff_s%10>Set_val1){JIARE=1;JIAGWEN=0;}//打开降温关闭加热

  else{JIARE=0;JIAGWEN=1;}//关闭降温打开加热

  }

  4.3显示模块子程序

  本论文设计规定了温度范围处于+10℃—+40℃的区间之中,在这个规定的区间里面面,使用的人能够自由设置农业大棚里面不同的农作物在不同的生长期间需要的最适合的生长温度,在整个系统的监控之下可以让农业大棚面达到一直处于稳定的温度访问里面。如果出现超出这个范围区间的情况,则立即会开始升温/降温工作,及时让温度回归到这个稳定的区间里面。显示子程序流程图如图4-3所示。

  图4-3显示流程图

  显示程序:

  void SMG_Display()

  {

  P1=0X00;//消隐

  delay(10);//大约给100us的延时消隐

  P1|=SMG_Duan[vol[0]];//把数据送到数码管的十位

  P1|=SMG_Duan1[vol[1]];//把数据送到数码管的个位

  }

  4.4按键扫描

  键盘扫描IC74922把键盘连接上之后,会把输出的数据通过芯片处理后交由AT89C51处理。在设置新的生长温度值的时候,它做法按是按“*”,然后将需要的的温度值输入进去,接着再按“*”,这样就把新的温度值设置好了。