版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的大棚温度控制系统设计与实现目录TOC\o"1-3"\h\u20430第1章引言 366751.背景 3172682.国内外现状 3236673.研究内容与过程 42306第2章系统硬件组成与工作原理 4143032.1系统的硬件选择与总体结构框图 4317722.2系统的工作原理 5126932.3主要硬件设备简介 5277872.3.1AT89C51单片机结构和基本电路组成 5173352.3.2DS18B20温度传感器 1060112.3.3LCD1602液晶显示器 1231751第3章系统硬件电路设计 14112043.1单片机电源电路 14198683.2声光报警电路 14146813.3保安电路 1553783.4显示电路 15116043.5温度检测电路 1627303.6温度控制电路 16182293.7按键电路 1732153第4章系统的软件设计 1864834.1主程序 18165534.2温度数据采集与处理 21300894.3人机信号反馈 22181554.3.1温度值显示程序 22288464.3.2按键设置子程序 2240644.4温度控制驱动 2314928第5章系统仿真调试与总结 24191015.1系统仿真过程 24132605.2总结 273881参考文献 2718628附录 29摘要:本文简要描述了应用AT89C51单片机的微控制系统设计,用于温室大棚温度自动控制处理。使用编译软件将工程文件上传到微机主控,然后温度传感器DS18B20同步收集并处理温度数据,测量值以数字量的形式传输存储在微处理器中,最终传送到LCD1602顺利完成显示过程。当温度值在所设置的上限值以上或低于所设置的下限值,系统会打开相应的警示LED照明,控制蜂鸣器发出警报音。同时,继电器动作控制加热或冷却装置。本设计实现了温度的检测和控制,可以大大提高农作物生产管理的效率。在AT89C51温度控制系统的设计基础上,简单介绍了温度采集显示与控制执行电路的基本原理,仿真调试分析了控制系统可行性。文中提供了大棚温度控制系统的硬件设计电路图和软件程序设计流程图,具象化表征了系统的主要工作原理。关键词:AT89C51单片机;DS18B20温度传感器;LCD1602显示;控制系统第1章引言1.背景现在对特殊环境温度的要求越来越高,在相当多领域内比如工业、农业等,绝大部分要对环境温度的变化进行监测控制。许多行业对温度的要求很高,需要实现温度精确控制,在食品、药品、服装等产业中,温度监测是否精确是非常重要的。温度的监测控制复杂多变,会因为很多自然因素的变化而变化,比如大气压、光照等。所以,使用常规方法检测温度的精准度并不高。在设施农业自动化发展中使用简便的单片机系统控制温室温度显得尤为必要。原来的温控系统基本是手动控制,后面才发展成机械设备。一直到20世纪70年代,计算机的发展逐渐代替了机械控制,控制系统迎来了新时期。国外工厂已经达到了先进管理水平,能够集中控制各种环境因素。同世界发达国家相比较而言,我国的总体生产水平存在着较大差距,国内高端大棚基本依靠进口且价格昂贵。目前温室大棚智能化的发展趋势是利用各种传感器检测环境参数,自动调整各设备的工作状态,实现自动化控制。2.国内外现状温室大棚是一种封闭的空间环境,可提供适合蔬菜,水果,绿色植物,草药和其他农作物的生长环境。使用遮盖采集日光的材料,可以在有足够光线的情况下有效地保持温室温度的稳定。在恶劣的环境条件下,可以采取特定措施种植农作物,以实现多季作物的生产。温室大棚技术正变得更加智能和自动化,以促进作物生长和增加单产。国内大多数关于温室大棚的研究都是采用国外技术,这些温室大棚生产的蔬菜满足了大多数城市和农村居民的基本要求。随着国民经济的飞速发展,先进农业技术的应用推广越来越受到国家的重视。温室大棚已成为现代化农业设施的重要枢纽环节。在当今现代化农业中,温室环境的优劣直接影响农作物的生长发育,环境监测技术是农业生产自动化的基础保障REF_Ref18283\w\h[1]。通过监视和分析环境参数并收集它们以进行实时调整,可以提高农作物的产量,这将为我们带来更多的经济利益。海外温室大棚技术的发展还处于1980年代左右的初期。在当今世界,温度控制技术发展非常迅速,许多国家也正在朝着完全自动化的方向发展。当前,发达国家已经开发出了高度自动化的温室,该温室通过计算机自动控制环境参数,并建立了相关的大型工厂。但是,我国的温室技术仍需改进,许多温室仍依靠人工经验管理。另外,家庭的温度控制系统相对落后,温室环境控制水平较低,难以保证农作物的质量和产量。国外的温室设施比较先进,但是价格很高,但是有些监测系统不能完全适应国内环境的复杂变化。当前,家用温室温度监测设备普遍依靠人工操作,不可避免的缺点是测控性能差,劳动强度大,造成不必要的损失。当前,农村土地份额非常低,并且温室控制技术的推广受到限制。但是,随着科学和社会的发展,上述问题将逐步得到解决,现代化和自动化的发展将逐步为人们提供更丰富,更安全,更高品质的产品。因此,为了有效地生产现代农业,有必要积极发展可以控制温室环境的农业设施和技术。根据科学标准对温度,湿度和光线等环境因素进行了微调,以使温室的环境条件适合种植农作物。3.研究内容与过程一般把一天分作好几个时间段,不同时间段农作物生长发育的程度受温度影响各不相同。在8∶00-14∶00这一时期,太阳光越来越充足,可以控制25-30温度范围内的温度,从而促进完成绿色植物的光合作用。14:00-18:00阳光渐渐减弱,将温度调节到18~24℃防止温度较高的农业作物损失REF_Ref18633\w\h[2]。晚上将温室的温度逐渐降低到14℃左右,有效促进农作物的同化物转化率提高。凌晨开始把温度控制10℃左右为了抑制农作物自身的呼吸作用消耗。本设计研究基于单机片的大棚温度控制系统,该设计主要控制温室大棚中的气温便于根据作物生长需要自动调节温度。该系统可以独立完成温度检测和显示,并在温度异常超过设定温度范围时实现自动控制温度变化回归正常。选择AT89C51微控制器以完成主要设计。第一部分是建立系统的总体框架,并完成系统组成和操作原理的初步设计。第二部分是完成系统的所有硬件电路的设计并完成相应的电路连接。第三部分是对硬件部分进行软件设计,编制流程图,利用程序设计工具编写程序。第四部分对整个系统的设计进行模拟仿真调整,优化系统的软硬件功能,改进软件程序,最后完成温室大棚的温度控制系统的设计总结工作。系统硬件组成与工作原理2.1系统的硬件选择与总体结构框图硬件选择:AT89C51微处理器、LCD1602、DS18B20、蜂鸣器和LED灯、MAX706P芯片、备用元件(电阻电容电磁继电器三极管二极管按钮)。该系统由以下部分组成:AT89C51单片机主控制器、保安电路、温度检测与显示电路、声光报警电路、按键设置电路及控制继电器驱动电路组成一个有机整体REF_Ref18855\w\h[3]。大棚温度控制系统结构组成如图2-1所示。图2-1系统硬件总体结构框图2.2系统的工作原理对微机系统进行程序设计编程,将温度传感器DS18B20采集温度数据经过主机处理,在液晶显示器LCD1602上实时显示温度数值REF_Ref19064\w\h[4]。由按键设置修改温度上下限值,若采集温度数值超过系统预设上下限,则单片机控制电路触发声光报警电路进行报警,并自动控制电磁继电器衔铁吸合进行相应的加热或降温操作。温度恢复正常值后停止报警和控制相应继电器断开,系统返回温度检测和显示电路。系统时钟振荡频率设置为12MHz,驱动电源选择稳压直流+5V输出,外部控制执行元件选择晶体三极管接入电源驱动。2.3主要硬件设备简介2.3.1AT89C51单片机结构和基本电路组成单片机是什么?单片机就是把一些部件集成到一个硅片当中并且做成封装形式的产品,也叫做单片微型计算机。集成了CPU中央控制处理单元、只读程序存储器、随机数据存储器、I/O接口电路、中断系统、串行端口、定时/计数器等REF_Ref19247\w\h[5]。AT89C51微处理器包括作为微计算机所需的基本功能部件,每个功能部件通过片内的单个总线耦合集成在一个芯片中。AT89C5单片机兼容MCS-51系列。主要功能特性包括4K字节可编程FLASH存储器、1000次写入/删除循环数据保持周期、8位内部RAM32条可编程I/O端口线、16位定时/计数器2个、5个中断处理源、可编程串行端口、低功耗保护模式、内部振荡器和时钟电路REF_Ref19466\w\h[6]。1、CPU的结构CPU是微处理器的核心部分,通过命令和执行机构,决定了微处理器的主要功能和特征。CPU主要是由计算器、控制器、寄存器阵列构成的8位二进制数的中央处理单元。计算器进行算术和逻辑运算处理各种信息,主要包括算术逻辑单元(ALU)、累加器(ACC)、临时存储寄存器(TMP1、TMP2)和状态寄存器(PSW)REF_Ref19802\w\h[7]。控制器是微处理器的控制核心,它由程序计数器PC,命令寄存器IR,命令解码器ID和时序控制逻辑电路组成。2、单片机引脚分布引脚图如图2-2所示:图2-2AT89C51单片机引脚图AT89C51微处理器具有40个端口引脚,与其他51系列的MCU基本相兼容。这个40个引脚端口可以分成4个部分。I/O端口线、电源线、控制线以及外部端口晶振。P3口具备第二功能如图2-3所示:图2-3P3口引脚第二功能3、I/O口结构AT89C51微处理器控制外部电路并经由I/O端口交换反馈信息。I/O端口分为并行I/O端口和串行I/O端口并且构造和功能不一样。AT89C51分别具有四个8位准双向I/O端口,称为P0、P1、P2和P3端口,一共有32条单元引脚REF_Ref20008\w\h[8]。各I/O端口线可以单独作为输入或者输出,功能各有差异。4、存储器AT89C51微控制器具有256字节的RAM数据存储器和4KB闪存。内部存储器主要分为程序存储器和数据存储器。程序存储器不可写入,用于存储编译后的程序和常数量。数据存储器可以读写并存储中间结果用于计算,临时存储数据和缓冲数据。5、定时/计时器AT89C51微处理器具有两个16位可编程定时器/计数器(T0和(T1)。T0和T1分别由两个8位数据寄存器组成。T0由TH0(高8位)、TL0(低8位)构成,T1由TH1(高8位)和TL1(低8位)构成REF_Ref20158\w\h[9]。定时/计数器操作因模式而异,主要有四种工作模式。超过计数或定时发生中断过程。中断系统所谓中断系统是指CPU暂停执行中的原程序,转移到中断服务程序执行,执行中断服务程序后返回原程序继续执行REF_Ref20351\w\h[10]。在AT89C51单片机内,中断源、中断使能控制器IE、中断优先控制器IP、计时器控制器TCON等组成一个完整的中断系统。AT89C51微控制器一个共有五个中断处理源。7、时钟电路振荡器组成和时钟控制电路。AT89C51微控制器中有用于形成振荡器的反相数据放大器。XTAL1端口是放大器输入端子,XTAL2端口是放大器输出端子,晶体(或陶瓷振荡器)和反馈元件电容器构成的并行谐振电路连接到放大器的两个端口引脚,可以形成自激励振荡装置REF_Ref20615\w\h[11]。微处理器可以使用外部振荡器将固定频率的时钟源信号输入到内部时钟电路。时钟电路是微机系统的典型外部电路,在XTAL1和XTAL2的两端连接着由石英晶体和两个电容器构成的振荡装置,电容器C1和C2设定为约30PF,振荡频率的范围通常为1~12MHZ。本电路设计选择内部时钟模式,石英晶体振荡频率为12MHz,ALE信号频率为2MHz。时钟电路如图2-4。图2-4时钟电路8、复位电路微处理器在启动时或工作中受到干扰导致程序失控处于死循环状态时需要复位。本设计使用自动通电复位,微处理器的复位时间约为5ms。这种设计采用了简单可靠的按钮复位电路。可以设置单片机的运行状态并立即将其复位。AT89C51的复位端口引脚是第9个。如果端口连接2个以上的时钟周期,则会发生复位。若是每个时钟脉冲具有两个12us时钟周期,将12us以上的高电平脉冲连接到端口引脚9,能够完成复位过程REF_Ref20860\w\h[12]。在此期间自动复位,电容器与复位端口引脚串联相互连接。复位端口引脚与+5V电压连通时,电容器相当于短路。一段时间(在此期间重置)后,电容器被充电。这与断开连接相同。另一种是手动方法控制复位。即,按钮控制开关与AT89C51的复位端口引脚串联连接的电容器并联连接。不移动按钮的话电容器会被充电。按下按钮后电容器放电,复位端口引脚变为高电平,复位完成。硬件电路如图2-5所示。图2-5复位电路时钟电路与复位电路一起构成单片机最小系统,如图2-6所示。图2-6单片机最小系统2.3.2DS18B20温度传感器DS18B20内部集成A/D转换装置直接输出数字信号,是一种被广泛使用的单总线式温度采集传感器。传感器本身占用空间小方便简洁且几乎不受外接扰动,元件采购价格便宜温度数值准确。DS18B20适用于锅炉、计算机房、农业温室大棚、无尘车间、仓库和其他非限制性场所温度的检测。另外各种小型空间设备的数字温度检测和控制系统设计领域也常态化使用集成单总线DS18B20。DS18B20数字温度传感器具有独特的优点:(1)具有较好的效益、稳固的防干扰能力,适宜在严酷生存环境下对现场温度进行精确测量。(2)量度温度区间大精度高。测量范围是-55℃到+125℃。(3)简单实现多测点点温度测量。灵活的电源管理模式,可以通过内部寄生电路获得供电。(4)温度数值分辨率9~12位可控。(5)当微处理器经由单个总线接口连接DS18B2O时可以双向通信。DS18B20具有较小的体积强大的实用性能。所使用的温度测量元件数字温度传感器DS18B20是3脚PR35的形式。内部结构如图2-7所示。图2-7DSl8B20的内部结构图DS18B20的温度测量原理如图2-8所示。图2-8所示的低温系数晶体振荡器的振荡频率产生固定频率的脉冲信号发送到低温计数器。高温系数晶体振荡器所产生的信号用作高温计数器的脉冲输入。低温计数器和温度寄存器预先设置为对应于-55℃的基值。低温计数器降低了由低温系数的晶体谐振器产生的脉冲信号。当低温计数器的预设值为0时,温度寄存器的值增加1,低温计数器的预设值被重新加载,并且低温计数器被重新启动。对从高温度系数晶体产生的脉冲信号进行计数,循环直到高温计数器被计数为0,停止温度寄存器值的累积。测量温度等于温度数据寄存器的累积值。斜率累加器的作用是补偿和校正温度测量数据的非线性输出校正低温计数器的预设值REF_Ref21226\w\h[13]。图2-8传感器测温原理框图DS18B20的外部形状如图2-9所示。图2-9DS18B20的形状DQ(I/O)是位数据输入/输出端子,VDD是可选的外部+5V电源端子,GND是接地端子。2.3.3LCD1602液晶显示器LCD1202液晶显示是一种比较常见的字符型的液晶显示,也是很多学生入门级的一个液晶显示屏,因为LCD1202相对来说比较简单。LCD1202是一个专门用来显示字母数字或者是符号的一个点针形的一个液晶显示屏。需要注意的是它是一个字符型的液晶显示屏,并且是内部已经含了这个字符型的一个字库。从它的名字也能够知道它能够显示的是两行每行16个字符,也就是他最多只能显示在一个屏幕当中的是32个字符。一般来说,市面上常见的LCD1202都是选用HD44708的液晶驱动芯片来设计的。它的内部结构实际上已经包括了驱动器,还有控制器以及内部包含的一个显示屏。它的硬件电路比较简单,驱动程序相对来说也并不是特别的复杂。技术参数:(1)显示容量:16×两个字。(2)芯片正常工作电压:4.5~5.5V。(3)工作电流:2.0mA(5.0V)。(4)显示字大小:2.95毫米×4.35毫米(宽×高)。每个引脚的功能如图2-10所示。图2-10LCD模块“LCD602”有11种控制器控制命令。该命令集如图2-11所示。LCD602的LCD模块的读写、显示、光标控制是通过命令编程的(1为高,0为低)。图2-11有两种方法连接LCD602和微处理器。一种是直接控制方法,另一种是间接控制方法。区别在于所用数据线的数量,其他部分相同的8条数据线和第3条控制线E、RS和R/LCD602W可以连接到单芯片微计算机正常工作。一般应用程序只需要在LCD602上写入命令和数据。因此,LCD602的R/W读取/写入选择控制端子可以直接接地,并且可以节省数据线。VO引脚是LCD对比度调节端子。通常可以连接一个10kΩ的电位器来调节对比度。也可以通过将该引脚接地适当大小的电阻器来进行调整,但是该电阻器的大小应通过调试确定。LCD1602实物如图2-12所示图2-12系统硬件电路设计3.1单片机电源电路设计一个稳定输出电源用作单片机工作电源。220V/50Hz交流电经过电压转换器T输出(AC),接下来通过4个二极管桥接组成的整流电路变成(DC)。由滤波电容处理得到9V(DC)经LM7805转换稳压输出+5V(DC)。电路原理如图3-1所示:图3-1单片机电源电路3.2声光报警电路如果温度测量值超过系统预设的上下限值,系统会触发声光报警提醒农户。电路如图3-2所示。图3-2声光报警电路在电路中,晶体三极管连接电源用作开关。单片机引脚输出低电流正常。引脚电流通过部分限流电阻后输出电压。电压到达晶体管基极、晶体管发射极的正向偏压、集电极的反向偏压,晶体管导通连接电蜂鸣器,产生连续蜂鸣声报警。与此同时AT89C51通过P1.5和P1.6接口分别控制相应上限和下限报警指示灯亮,完成整个声光报警动作。3.3保安电路本设计选择MAX706P检查系统程序运行。I/0连接输入正向脉冲,双脉冲输入时间1.6S内,输出信号高电平说明微机系统正常工作。若间隔大于1.6S处于低电平状态。将和连接,此时即可完成微机系统重置复位。保安电路如图3-3所示。图3-3保安电路3.4显示电路LCD1602液晶显示器接通电源后,屏幕显示两行16位字符。其具备特殊指令格式,通过相应编程可以显示字母、数字等。LCD功耗体积小,显示信息量大,方便连接使用。本系统采用LCD1602液晶显示器作为显示部分,通过显示器外接一个上拉电阻,连接电源和微机系统构成显示电路如图3-4。图3-4显示电路3.5温度检测电路选择DS18B20以完成温度测量功能。DS18B2051和单片机连接时,为使高电平输入/输出有效,DQ引脚可外接一个4.7K-10K的上拉电阻。DS18B20使用1个总线输出数字量的温度值,采用到电路构造设计中更方便。同时该温度传感器抗干扰能力比较强精确度高,是个不错的选择。传感器参数条件简述:检测温度范围一般为-55℃~125℃,在-10℃~+85℃范围内进行温度测量时的精度如下。±0.5℃分辨率为9~12位,精度分别达到0.5℃、0.25℃、0.065℃的几个等级。大棚温度采集检测电路如图3-5所示。图3-5温度检测电路3.6温度控制电路该设计采用继电器连接加热或者制冷设备来控制温度变化。一般的电热炉、电风扇都可以驱动。微机系统利用DS18B20取得温度信息,判断是否控制继电器动作。微机IO端口输出电流很小,不足以驱动继电器动作。所以选用晶体三极管接入外部电源来驱动继电器。电路原理图如下图3-6所示。其中外接电源VCC电压为+5V。在实际电路中使用一个续流二极管与继电器并联保护电路。继电器可以外接LED灯,通过灯是否亮来判断继电器是否动作,安全可靠。图3-6温度控制电路电路3.7按键电路本部分设计使用三个独立按钮连接微机系统状态扫描端口。微机系统检测读取I/O口状态是否为低电平判断按键动作,并修改相应系统参数。主要包括温度显示器中上限值和下限值的选择设置修改,按键电路如图3-7所示。3-7按键电路第4章系统的软件设计本设计软件系统基于C语言程序,选用keilc51软件工具来完成程序设计编译工作,比较方便简洁。软件系统的总体设计包括五个主要程序模块:初始化主程序、温度数据采集与处理、温度控制驱动、人机信号反馈。主要完成系统功能如软件初始化、按键扫描、温度检测、控制LCD显示、报警控制、加热与制冷设备控制等。主程序的作用是完成初始化工作,通过微机系统状态扫描来判断是否需要基本参数的设定和控制操作。软件系统实时进行温度测量,当判断温度值异常时进行温度控制,控制报警电路发出警报信号。4.1主程序主程序主要将各个子板块组织成完整的系统。主程序主要功能就是首先完成单片机系统的初始化过程,然后根据按键设定好的参数开始采集温度数据传输至主机处理,处理完的数据送LCD1602显示。同时分析温度数据是否超过限定值,执行温度控制程序。采集处理完一次温度数据,系统返回继续执行主程序。系统主程序设计流程图如图4-1所示。图4-1系统主程序流程图C语言程序如下/***************主程序函数命令*****************/voidmain(){uinta,b;beep=0; //开机叫一声tempDown=-45;tempUp=85;delay_1ms(150);P0=P1=P2=0xff; //单片机IO口初始化为1 time_init(); //初始化定时器init_1602();LEDUP=1;LEDDOWN=1;//K=1;while(1){key(); //独立按键程序if(key_can<10){key_with(); //按键按下要执行的程序}if(flag_300ms==1){ flag_300ms=0;ReadTemperature(); //测温程序fuhao();clock_h_l();}if(tempUp>=0){write_string(1,2,"");write_sfm2(1,3,tempUp); //显示温度上限报警值}else{write_string(1,2,"-");a=abs(tempUp); write_sfm2(1,3,a); }if(tempDown>=0){write_string(1,13,"");write_sfm2(1,14,tempDown); //显示温度上限报警值}else{write_string(1,13,"-");b=abs(tempDown); write_sfm2(1,14,b); }// control(); }}4.2温度数据采集与处理温度值采集子程序流程图如图4-2所示。图4-2温度值采集子程序流程图温度的读取微机系统连接获得温度数据为16位二进制数。前五位是符号位,读数乘以设置精确度即为实际温度。如果前5位是1则温度为负数,读数必须取相反数加1相乘。DS18B20完成温度信号的采集和模数转换,并将数据传递给微机系统保存处理。经过数据处理,16位的二进制数据被转换为十进制数据。温度值计算程序流程图如图4-3所示。图4-3温度值计算程序流程图4.3人机信号反馈本部分主要介绍用于信号反馈的温度值显示子程序和按键设置子程序设计。4.3.1温度值显示程序该显示器直接与单片机I/O端口相连,接收低电平指令有效。首先对显示器进行初始化设置。通过编程指令输入显示字符相应地址代码,完成温度值显示。温度值显示子程序流程图如图4-4所示。LCD1602显示流程图如图4-5所示。图4-4温度值显示子程序流程图图4-5LCD显示流程图4.3.2按键设置子程序在该系统中按下按钮,I/O端口输出低电平;反之,I/O端口口输出高电平。按键扫描程序通过读取I/O口的电平输出状态就能获得对应按钮的状态。软件的编译中系统使用的检测查询方式运行。使用按键设置温度上下限值流程图如图4-6所示。图4-6温度限定值设置子程序流程图4.4温度控制驱动微机系统I/O端口的输出高电平和低电平,控制继电器接收电平状态实现衔铁吸合动作控制加热或者制冷设备。控制单片机I/O端口电平状态由C语言程序定时器中断服务程序和延时函数实现。温度控制驱动程序流程图如图4-7所示。图4-7温度控制驱动子程序流程图第5章系统仿真调试与总结5.1系统仿真过程 仿真软件使用的是Proteus7.8版本。启动仿真软件,新建工程文件画出各硬件电路原理图然后有序连接子电路和相关元件,效果如图5-1所示。图5-1系统仿真电路图检查并设定好电路元件合适参数条件。双击单片机AT89C51,然后把提前编译好的程序工程文件上传到单片机系统。点击界面左下角启动按钮开始仿真过程。检查单片机是否正常工作,电路元件状态显示是否异常。若所有电路反馈均正常,开始仿真会听到短暂蜂鸣声表示微机系统复位成功,温度传感器DS18B20、LCD1602显示器亮显示预设温度值。通过设置按钮可以调节相应温度值显示。仿真成功效果如图5-2所示。图5-2系统仿真结果图调节传感器温度让其超过设定温度上下限值,此时蜂鸣器和报警指示灯工作发出报警,单片机控制相应继电器动作,负载发光二极管亮表示驱动正常。5.2总结通过实践和理论相结合,我们才能真正的去深入的学习单片机控制系统,而不是仅仅入门。经过很长一段时间设计工作,“基于单片机的大棚温度控制系统设计”已经顺利完成。本设计系统选择了方便、高效、低成本的控制元件完成,设计简洁通俗易懂。特别是先进的“单总线式”温度测量设备体现了速度快、精度高、、测线少等诸多优点。通过对硬件电路和软件系统的仿真调试,该电路能实现普通温室大棚温度的测量和显示,对不正常的温度进行准确及时的报警和自动调节,大大提高了大棚农作物成活率,从而减轻了管理人员的工作量。系统不足之处分析:(1)首先硬件方面,选用的AT89C51单片机自身数据存储容量有限,在大型温室大棚密集化温度采集中使用多个温度传感器组合测温的应用显得比较吃力,需要拓展外部存储。在后续学习工作中,可以选择集成大容量存储器的单片机和多个温度传感器设计温度控制系统。(2)软件方面,系统程序设计比较单一,缺乏必要的控制算法完善温度数据的处理。因此可以在温度控制处理程序中加入数字滤波程序,应用积分分离PID算法计算采样数据偏差优化软件功能。参考文献王敏.温室大棚温湿度、二氧化碳测控系统的研究[D].西安理工大学,2007.常莉,张清涛.基于单片机的草莓大棚温度控制系统设计[J].农业工程,2017,7(06):46-48.闫红来.温度检测及显示系统[J].网络财富,2010(12):263-264.王冉,高凯,孟磊.基于单片机绿植养护系统温度控制的研究[J].自动化与仪器仪表,2016(10):14-15.李东.基于单片机的信号发生系统设计[J].中山大学研究生学刊(自然科学.医学版),2015(01):83-99.申屠南瑛.基于微机测控技术的智能伺服操作系统研究[D].重庆大学,2003.董晓红.同步粉尘测试仪的设计与实现[D].四川大学,2004.宋建峰.单片机是什么?[J].电子制作,2012(04):64-69.杜彬.基于单片机的红外数据采集电路原理[J].中国传媒科技,2014(02):119-120.袁芬,余成路.浅谈MCS-51单片机中断系统逻辑控制图[J].科技创新与应用,2015(17):30.陈帅,廖志林,周建军.基于物联网远程监测机房温湿度系统设计[J].电声技术,2015,39(02):29-31.张义和,陈敌北.轻松认识8051(下)[J].无线电,2007(6):9-10.江太辉,邓展威.DS18B20数字式温度传感器的特性与应用[J].电子技术,2003(12):46-49.李红刚,方佳,王强,钱双艳.基于At89C51的八路温度巡回检测系统设计[D].热带农业工程,2010.翟呈祥.基于FPGA的8051单片机IP核设计及应用[D].太原理工大学,2007.谢波.超低频数据采集系统接收机的开发研究[D].华中科技大学,2008.王可宁.基于单片机的烘炉温度自动检测系统的研究与设计[D].东北林业大学,2004.孙小广.超声波水箱[D].华南理工大学,2010.潘俊臣.基于单片机的音乐播放器的设计[D].成都理工大学信息科学与技术学院,2016.胡敏,谌海云,侯阳,邱志勇.数字温度计的设计[D].现代电子技术,2012.邓世建,胡媛媛,管城.基于DS18B20的MOA温度远程监控系统设计[D].电子器件,2011.谭金平.基于单片机电锅炉恒温控制系统的电路设计[D].南昌大学,2012.邹伟.温室大棚自动化控制系统的设计与实现[D].西安电子科技大学,2013.
附录附录一电路原理图附录二程序清单程序如下:#include<reg52.h> //调用单片机头文件#include<stdio.h>#include<math.h>#defineucharunsignedchar//无符号字符型宏定义 变量范围0~255#defineuintunsignedint //无符号整型宏定义 变量范围0~65535#include<intrins.h>//#include"lcd1602.h"sbitcontrolUp=P3^3;sbitcontrolDown=P3^4;sbitLEDUP=P1^6;sbitLEDDOWN=P1^5;sbitDQ=P3^7; //定义DS18B20总线I/OsignedchartempWd=15; //温度值全局变量温度值整数ucharn; //温度值全局变量温度值小数sbitbeep=P3^2;//蜂鸣器IO口定义inttempUp=25;//温度上限inttempDown=17;//温度下限bitf=1;//正负温度标志位unsignedcharm=1,y=0,o=0;//寄存器signedintsdata;//存放整数温度unsignedcharxiaoshu1; //存放小数后第一位温度数值unsignedcharxiaoshu2; //存放小数后第二位温度数值bitflag_300ms;//300毫秒计时bitflag=0;ucharkey_can; //按键值的变量ucharmenu_1;//菜单标记ucharflag_clock;#include"lcd1602.h"/***********************1ms延时函数*****************************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);}/*************定时器0初始化程序***************/voidtime_init() { EA=1; //开总中断 TMOD=0X01; //定时器0、定时器1工作方式1 ET0=1; //开定时器0中断 TR0=1; //允许定时器0定时}/****************按键处理显示函数***************/voidkey_with(){ if(key_can==1) { if(flag==0) { tempUp++; //温度上限设置数加1 if(tempUp>99) tempUp=99; } else { tempDown++; if(tempDown>tempUp) tempDown=tempUp; } } if(key_can==2) { if(flag==0) { tempUp-=1; //温度上限设置数减1 if(tempUp<=tempDown) tempUp=tempDown; } else { tempDown-=1; if(tempDown<=-54) tempDown=-54; } } if(key_can==3)//选择要设置的参数 { flag=!flag; if(flag==0) { write_com(0x80+6); write_data('<'); //设置温度上限报警值 write_com(0x80+10); write_data(''); } else { write_com(0x80+6); write_data(''); //设置温度下限报警值 write_com(0x80+10); write_data('>'); } } }/********************独立按键程序*****************/ucharkey_can; //按键值voidkey() //独立按键程序{ staticucharkey_new; key_can=20;//按键值还原 P1|=0x1f; if((P1&0x1f)!=0x1f) //按键按下 { delay_1ms(1); //按键消抖动 if(((P1&0x1f)!=0x1f)&&(key_new==1)) { //确认是按键按下 key_new=0; switch(P1&0x1f) { case0x1b:key_can=2;break; //得到减键值 case0x17:key_can=1;break; //得到加键值 case0x1d:key_can=3;break; //得到设置键值 } } } else key_new=1; }/****************报警函数***************/voidclock_h_l(){ staticucharvalue; if(sdata>tempUp||sdata<tempDown) //报警 { value++; if(value>=2) { value=10; beep=~beep; //蜂鸣器报警 } }else { value=0; beep=1; LEDUP=1; LEDDOWN=1; controlUp=1; controlDown=1; write_string(1,8,"Z"); } if(sdata>tempUp) //报警 { LEDUP=0; controlUp=0; write_string(1,8,"S"); } elseif(sdata<tempDown) { LEDDOWN=0; controlDown=0; write_string(1,8,"X"); }}voiddelay_18B20(unsignedinti) //18b20全局延时{while(i--);}///////////////////////////////////18b20////////////////////////////////////////////////////初始化传感器函数Init_DS18B20(void){unsignedcharx=0;DQ=1;//DQ复位delay_18B20(10);//稍做延时DQ=0;//单片机将DQ拉低delay_18B20(80);//精确延时大于480usDQ=1;//拉高总线delay_18B20(20);x=DQ;//稍做延时后如果x=0则初始化成功x=1则初始化失败delay_18B20(30);returnx;}//读一个字节ReadOneChar(void){unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--){DQ=0;//给脉冲信号dat>>=1;DQ=1;//给脉冲信号if(DQ)dat|=0x80;delay_18B20(4);}return(dat);}//写一个字节WriteOneChar(unsignedchardat){unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;delay_18B20(5);DQ=1;dat>>=1;}return(dat);}voidReadTemperature(void){unsignedcharL=0;unsignedcharH=0;Init_DS18B20();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0x44)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理文件书写的常见错误
- 支气管哮喘患者的自我监测与管理
- 船舶轮机员诚信竞赛考核试卷含答案
- 钽铌分离工操作安全竞赛考核试卷含答案
- 塑料模具工岗前技术综合考核试卷含答案
- 紫胶蒸发工安全生产知识测试考核试卷含答案
- 石英玻璃制品加工工岗前核心管理考核试卷含答案
- 基础护理学(新编第三版)课件
- 表面活性剂制造工安全宣教考核试卷含答案
- 熟料烧结工安全技能竞赛考核试卷含答案
- 变电站工程强制条文执行计划(最终版)(一)
- 申报专业答辩
- 2024年高考真题江苏卷化学试题(解析版)
- 安宁疗护获奖课件
- PEP四年级下册英语第五单元试卷及答案
- (正式版)QBT 2570-2024 贴标机
- RTK道路放样培训
- 2024中煤绿能科技(北京)有限公司招聘笔试参考题库附带答案详解
- 不予行政赔偿决定书
- 核磁共振(NMR)波谱学原理与应用课件
- 2023年医疗考试结构化面试试题
评论
0/150
提交评论