1、基于单片机的大棚温湿度设计摘 要以ATMEL S52单片机为核心,并通过DHT11温湿度传感器的工作原理,实现了对当前环境中温度与湿度的测量,并且通过设置好的温度与湿度的上限、下限的值对当前环境下的温度和湿度实施监控,超过预警值则实施自动报警。该系统由温度传感器模块、湿度传感模块和液晶显示模块组成,应用温湿度传感器的工作原理对当前环境实施监控,定时采集数据传送给单片机,单片机根据温湿度传感器采集到的数据进行处理,再将接收的数据显示到12864液晶显示屏上,若是超过预期设置的上限和下限,采用二极管模拟报警,由于制作和组合上的精细,使得本设计显得智能化、实用化。关键词:51单片机;温度传感;湿度传
2、感;12864液晶显示AbstractThe design STC52 microcontroller core, and through DHT11 temperature and humidity sensor works to achieve in the current environment, temperature and humidity measurements, and a good temperature and humidity by setting the upper limit, lower limit value of the temperature on the
3、current environment implementation of monitoring and humidity, more than the value of implementing an early warning alarm. The system consists of temperature sensor module, humidity sensing module and liquid crystal display module, the application of temperature and humidity sensor works by monitori
4、ng the implementation of the current environment, regularly collected data to the microcontroller, microcontroller based temperature and humidity sensor for processing the data collected, and then will receive the data to the LCD screen on the 12864, if more than expected to set the upper and lower
5、limits, the use of diode analog alarm, due to a combination of production and fine, making the design is intelligent, practical.Keywords:51single-chip; temperature sensor;humidity sensor;12864 LCD目 录摘要 IAbstract II第1章 绪论 11.1设计目的 11.2设计背景 1第2 章 设计方案简述 22.1方案设计 22.2方案设计 3第3 章 设计部分 43.1 硬件设计 43.1.1 AT
6、89S52外围电路简述 43.1.2液晶显示模块电路设计 53.1.3 DHT11温度湿度传感器电路设计 83.2软件设计 103.2.1系统软件设计说明 103.2.2编程语言的选择 103.2.3主程序流程图 113.2.3系统的软硬件的调试 12第4 章 设计结果及分析 13总结 14参考文献 15附录1 16附录2 17第1章 绪论1.1设计目的 近年来,我国的设施农业得到了较大发展,温室大棚钟植技术已突破了传统的农 作物种植受地域自然环境等诸多因素的限制,对农业生产有重大意义。但目前我 国温室大棚的温湿度测量和设备的操作大多还是由人工来完成,当温室较大时,操作人员的劳动强度很大本温湿
7、度控制系统是 以单片机控制为核心, 以瑞士生产的SHT11单片集成温湿度传感器作为温湿度检测元件,初步实现了温室大棚的自动化管理,大大降低了工人的劳动强度。1.2设计背景系统的一大特点是用户可以通过下位机中的键盘输入温湿度的上下限值和预置值,也可以通过上位机对温湿度的上下限值和预置值进行输入,从而实现上位机对大棚内作物生长的远程控制。系统下位机设在种植植物的大棚内,下位机中的温湿度传感器可以将环境中的温湿度非电量参数转化成电量信号,再将这些信号进行处理后送至下位机中的单片机,单片机读取数据后将数据送到缓冲区内,通过LED数码管进行实时显示。同时与原先内部设定的参数值进行比较处理;单片机可以根据
8、比较的结果对执行机构发出相应的信号,并通过继电器的控制对相应的设备如喷水器、吹风机、加热器、降温泵等进行操作,调节大棚内温湿度状态。用户直接通过键盘对温湿度的上下限值和预置值进行设置后,如果环境的实时参数超越上下限值,系统自动启动执行机构调节大棚内湿度和温度状态,直到温湿度状态处于上下限值以内为止。如果有预置初值且与当前状态不相等时,系统也会启动执行机构动态调节温湿度状态,直到所处的平衡状态与预置值相等为止。第2 章 设计方案简述2.1方案设计1、温湿度的测量模块 经过温湿度传感器DHT11采集数据,再通过51单片机对其内部数字进行分析后,将其数值送到12864液晶模块上进行显示,本系统可以设
9、定温度范围050摄氏度,最小区分度为一度,设定湿度范围为20%-90%RH,最小区分度为1%RH。其优点在于DHT111.湿温度传感器的一体化结构能相对的同时对相对湿度和温度进行测量 。 2.数字信号输出,从而减少用户信号的预处理负担。 3.单总线结构输出有效的节省用户控制器的I/O口资源。并且,不需要额外电器元件。 4.独特的单总数据传输线协议使得读取传感器的数据更加便捷。 5.全部校准。编码方式为8位二进制数。 6.40bit 二进制数据输出。其中湿度整数部分占1Byte,小数部分1Byte;温度整数部分1Byte,小数部分1Byte。其中,湿度为高16位。最后1Byte为校验和。 7.卓
10、越的长期稳定性,超低功耗。 8.4引脚安装,超小尺寸。 9.各型号管脚完全可以互换。 2、温湿度型号的采集模块传感器是温湿度控制系统中的关键部件,它的精度直接影响到整个测试控制系统的性能。温度传感器选择了DS18B20;DS18B20数字温度计是DALLAS公司生产的单总线器件。该芯片具有线路简单,体积小的特点。因此,用它组成的测温系统线路简单。它只用一根通信线就可以连接多个DS18B20数字温度计,因此十分方便。芯片还具有以下一些特点:(1)仅需一个端口即可完成数据的读取和写入;(2)每个DS12B20芯片都有一个独一无二的序列号(3)测量温度范围在-55到125之间;(4)数字温度计的分辨
11、率可以选择9到12位;(5)可以设置告警温度的上下限。温度传感器对温度进行测量,测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。 图2-1 DS18B20温度传感电路2.2方案设计根据设计要求确定了系统的总体方案,整个系统由单片机、温湿度传感器、显示模块、报警器、温湿度调节系统以及键盘等6部分组成。系统功能原理图如图1所示。用户预先输入温湿度报警值到程序中,该值作为系统阈值。温湿度传感器监测值传输给单片机,当单片机比较监测到的数值超出所设定阈值时,驱动蜂鸣器报警,并为温湿度调节系统提供控制信号,实现自动控制。温湿度调节系统包括加湿模块、除湿模块、加
12、温模块和制冷模块。图 2-2 DHT11电路连接图单片机发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,如果没有接收到单片机发送来的信号,DHT11不会主动进行温度采集,采集数据后转换到低速模式。湿度测量范围1%99%;最小进步为1%;第3 章 设计部分3.1 硬件设计单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能。硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起。这种设计方法可以降低系统设计的复杂性。系统电路原理图如图2所示。本系统主要硬
13、件设计包括电源电路、晶振电路、复位电路、LCD 显示电路以及温湿度传感器电路。控制电路的核心器件是由美国Atmel公司生产的AT89S52单片机,属于MCS-51系列。AT89S52是一种低功耗、高性能的CMOS8位微控制器,具有8K在系统可编程Flash存储器,采用的工艺是Atmel公司的高密度非易失存储器技术;片上Flash允许程序存储器在系统可编程,亦适于常规编程器;在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案;价格低廉、性能可靠、抗干扰能力强。因此广泛应用于工业控制和嵌入式系统中。3.1.1 AT89S
14、52外围电路简述单片机AT89S52作为主控芯片,控制整个电路的运行。单片机外围需要一个复位电路,复位电路的功能是:系统上电时提供复位信号,直至系统电源稳定后,撤消复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。该设计在电源电压瞬间下降时可以使电容迅速放电,可令系统可靠复位。 图3-1 复位电路图 图3-2 时钟电路AT89S52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为该反向放大器的输入端和输出端。这个反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。外接石英晶体(
15、或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性。如果使用石英晶体,电容应该使用30pF。还可以使用外部时钟。这种情况下,外部时钟脉冲接XTAL1端,即内部时钟发生器的输入端, XTAL2应悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大低电平持续时间应符合产品技术条件的要求。3.1.2液晶显示模块电路设计这部分设计液晶屏显示,包括显示温度、显示湿度以及设置温湿
16、度上下限值。LCD12864内部提供1282字节的字符显示RAM缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符显示RAM实现的。根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。三种不同字符/字型的选择编码范围为:00000006H(其代码分别是0000、0002、0004、0006共4个)显示自定义字型,02H7FH显示半宽ASCII码字符,A1A0HF7FFH显示8192种GB2312中文字库字形。字符显示RAM在液晶模块中的地址80H9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应
17、的关系,其对应关系如下表3所示。表3:80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FHLCD通过RS、R/W、E构成的时序图实现数据的读与写,时序图如图5-4、图5-5所示。 图3-3 MPU写资料到ST7920(8位数据线模式) 图3-4 MPU 从ST7920读资料(8位数据线模式)模块控制芯片提供两套控制命令,基本指令和扩充指令如下表4、表5:指令表4:(RE=0:基本指令)指 指 令 码功 能令RSR/WD7D6D5D4D3D2D1D0清除显示
18、0000000001将DDRAM填满20H,并且设定DDRAM的地址计数器(AC)到00H地址归位000000001X设定DDRAM的地址计数器(AC)到00H,并且将游标移到开头原点位置;这个指令不改变DDRAM 的内容显示状态开/关0000001DCBD=1: 整体显示 ONC=1: 游标ON B=1:游标位置反白允许进入点设定00000001I/DS指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位游标或显示移位控制000001S/CR/LXX设定游标的移动与显示的移位控制位;这个指令不改变DDRAM 的内容 功能 设定00001DLXREXXDL=0/1:4/8位数据RE=1
19、: 扩充指令操作RE=0: 基本指令操作 设定CGRAM 地址0001AC5AC4AC3AC2AC1AC0设定CGRAM 地址 设定DDRAM 地址0010AC5AC4AC3AC2AC1AC0设定DDRAM 地址(显示位址)第一行:80H87H第二行:90H97H读取忙标志和地址01BFAC6AC5AC4AC3AC2AC1AC0读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值写数据到RAM10数据将数据D7D0写入到内部的RAM (DDRAM/CGRAM/IRAM/GRAM)读出RAM的值11数据从内部RAM读取数据D7D0(DDRAM/CGRAM/IRAM/GR
20、AM)指令表5:(RE=1:扩充指令)指 指 令 码功 能令RSR/WD7D6D5D4D3D2D1D0 待命模式0000000001进入待命模式,执行其他指令都棵终止待命模式卷动地址开关开启000000001SRSR=1:允许输入垂直卷动地址SR=0:允许输入IRAM和CGRAM地址 反白 选择00000001R1R0选择2行中的任一行作反白显示,并可决定反白与否。初始值R1R000,第一次设定为反白显示,再次设定变回正常 睡眠 模式0000001SLXXSL=0:进入睡眠模式SL=1:脱离睡眠模式 扩充 功能 设定00001CLXREG0CL=0/1:4/8位数据RE=1: 扩充指令操作RE
21、=0: 基本指令操作G=1/0:绘图开关 设定绘图RAM 地址0010AC60AC50AC4AC3AC3AC2AC2AC1AC1AC0AC0设定绘图RAM先设定垂直(列)地址AC6AC5AC0再设定水平(行)地址AC3AC2AC1AC0将以上16位地址连续写入即可备注:当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF标志时,BF需为零,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。3.1.3 DHT11温度湿度传感器电路设计图3-5 DHT11电路连接图 图3-6 DHT11
22、实物图1、 电源引脚DHT11的供电电压为 35.5V。传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。2、串行接口 (单线双向)DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据 +8bit校验和数据传送正确时校验和数据
23、等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。 图3-7 DHT11内部通讯过程总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT1
24、1接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。图3-8 DHT11数据准备传送过程总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us
25、,随后总线由上拉电阻拉高进入空闲状态。 图3-9 数字0信号表示方法.图3-10 数字1信号表示方法.3.2软件设计3.2.1系统软件设计说明进行测量控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个测量对象的实际需要设计应用程序。因此,软件设计在微机测量控制系统设计中占重要地位。对于本系统,软件设计更为重要。在单片机测量控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便达到测量控制目的。本软件设计主要是对距离进行测量、显示。因此,整个软件可分为按照硬件电路对单片机
26、位定义;温湿度设置子程序;温湿度接收子程序;显示子程序;延时子程序等。3.2.2编程语言的选择本设计是硬件电路和软件编程相结合的设计方案,选择合适的编程语言是一个重要的环节。在单片机的应用系统程序设计时,常用的是汇编语言和C语言。汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高,而且执行速度快。但是不同的CPU,其汇编语言可能有所差异,即依赖于计算机硬件,程序可读性和可移植性比较差。C语言是编译型程序设计语言,兼顾高级语言的特点,并具备汇编语言的功能。C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化
27、程序设计技术。此外,C语言程序具有完善的模块程序结构。C语言执行效率没有汇编语言高,但语言简洁,使用方便,灵活,运算丰富,表达化类型多样化,数据结构类型丰富,具有结构化的控制语句,程序设计自由度大,有很好的可重用性,可移植性等特点。基于C语言的众多优点本设计选择此语言来编程。3.2.3主程序流程图软件分为两部分,主程序和中断服务程序。主程序完成初始化工作、温湿度数据接收处理控制。外部中断服务子程序主要完成时间值的读取、距离计算、结果的输出等工作。YN图3-11 主程序流程图 图 3-12 设置温湿度内部流程 图 3-13 显示温湿度内部流程 3.2.3系统的软硬件的调试 硬件电路制作完成并调试
28、好后,便可将程序编译好下载到单片机试运行。根据实际情况可以修改温度和湿度的上限值和下限值,以达到监控的作用。根据所设计的电路参数和程序,温湿度测量仪的温度测量范围为0-50摄氏度,温度测量的最大误差不超过2摄氏度;湿度的测量范围为20%-90%RH,湿度测量的最大误差不超过5%RH。系统调试完后应对测量误差和重复一致性进行多次实验分析,不断优化系统使其达到实际使用的测量要求。第4 章 设计结果及分析设计的最终结果是使温湿度测量仪测量并且显示温度,实现温湿度数据的发送与接收,从而实现利用温湿度传感器进行测量,以数字的形式显示测量数据。它的硬件电路的设计主要包括单片机系统及显示电路、系统电源、温度
29、与湿度传感器电路四部分。单片机采用AT89S52,采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用P0口和P2口用来驱动液晶显示屏目显示和设置温湿度的相关数据。显示电路采用简单实用的12864液晶显示屏,单片机的数据口直接驱动。实现测量,并且在液晶上显示温度和湿度。温湿度测量仪的软件设计主要由主程序、温度和湿度的传送程序以及显示子程序组成。测量仪通过温湿度传感器采集到数据,送到单片机中进行数据处理,然后送到液晶显示屏中显示。用户还可以通过液晶屏自行设置温湿度的上下限的值,待设置完之后按下确定按键后,送往单片机中处理,超过上限或者低于下限给予相应的报警。经过实验表明,这套系统软硬件设计合理、抗干扰能力强、实时性良好,实验结果完全符合预期要求。总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1