1、 毕毕 业业 设设 计计(论论 文文)信息工程学院系(院)通信工程 专业 毕业设计(论文)题目 大棚温湿度监测系统的设计 学生姓名 班 级 11 级通信工程 学 号 指导教师 完成日期 2015 年 04 月 28 日 大棚温湿度监测系统的设计大棚温湿度监测系统的设计 The design of temperature and humidity monitoring system in greenhouse I 摘 要 在大棚种植术里,温湿度是影响作物产量的关键因素,传统的温湿度测量采集方式具有精度不高,操作费时费力的问题,不能够动态监测,很容易造成由于环境因素突变而造成的减产甚至无产的惨痛损
2、失。本设计以 AT89S52 单片机为控制核心,用 SHT11 数字式温湿度传感器作为数据采集,并把数据显示在 LCD 显示屏上,能任意时刻观测到大棚内部的实时环境参量;用户可自己设定温湿度上下限,当系统检测到的温湿度在安全阀值之外立即通过报警电路报警。这样设计出来的系统具有实时性、精度高、稳定性、低能耗、低成本、操作简单等诸多优点,可广泛应用与大棚种植的环境之中。关键词:关键词:AT89S52;SHT11;大棚;温湿度;传感器 II Abstract In greenhouse cultivation technique,the temperature and humidity are th
3、e key factor to affect the yield of crops.Measurement of temperature and humidity acquisition are the traditional way which is not accurate enough.It conclude time-consuming problem,can not dynamic monitoring,and very easy to cause a painful loss even no gain due to sharply environment change.The de
4、sign use AT89S52 microcontroller as the control core,and SHT11 digital temperature and humidity sensor is used for data acquisition,the data are displayed on the LCD screen,real-time environmental parameters within the greenhouse can be observed at any time.The user can set the upper and lower limit
5、s of temperature and humidity,When the temperature and humidity are not in the safe range,the system will alarm via alarm circurt.This kind of system design with real-time,high precision,stability,low energy consumption,low cost,simple operation and many other advantages,can be widely used in greenh
6、ouse cultivation environment.Keywords:AT89S52;SHT11;temperature and humidity;monitoring;alarm IV 目录 摘要.I Abstract.II 第一章绪论.1 1.1 选题背景.1 1.2 国内外研究现状.1 1.3 系统主要设计内容.2 1.3.1 系统框图.2 1.3.2 元器件的选择.2 第二章系统硬件设计.5 2.1 系统性能概述.5 2.2 单片机模块.5 2.2.1 AT89S52 主要功能概述.5 2.2.2 AT89S52 封装结构.5 2.2.3 AT89S52 引脚功能.6 2.3 单
7、片机最小系统.7 2.3.1 单片机.7 2.3.2 晶振电路.7 2.3.4 复位电路.8 2.4 传感器模块.8 2.4.1 SHT11 简介.8 2.4.2 SHT11 端口介绍.9 2.4.3 SHT11 典型应用电路.10 2.5 显示模块.10 2.5.1 LCD1602 概述.10 V 2.5.2 LCD1602 特性.11 2.5.3 LCD1602 引脚说明.11 2.6 按键电路.15 2.7 报警电路.16 第三章系统软件设计.19 3.1 系统主程序设计方法.19 3.2 LCD1602 显示子程序.20 3.3 DHT11 温湿度采集子程序.22 第四章系统测试.25
8、 4.1 软件测试.25 4.1.1 软件测试总结.25 4.2 硬件测试.26 4.2.1 系统硬件仿真.26 4.2.2 硬件测试总结.28 4.3 实物测试.28 4.3.1 实物系统概况.28 4.3.2 实物报警测试.29 4.3.3 实物按键测试.30 4.3.4 实物测试总结.31 结语.32 参考文献.33 致谢.34 附录.35 南昌工程学院本科毕业设计(论文)1 第一章 绪 论 1.1 选题背景选题背景 近期,我国温室的总种植面积位于世界前列,产业的发展迅猛。但是,我国的温室自动控制技术远远跟不上温室数量的增长,农业生产还在使用大量的人力劳动,不仅劳累,而且因为无法对温室环
9、境进行精确监测,不仅浪费了大量的资源,还使作物产量受到了影响,降低了收入。同现代化农业发达的国家相比,我国在这一方面还是有比较大的差距,特别在是对温室生产环境的各个因素的自动监测与控制方面。本课题目的在于研究一个基于单片机为主控芯片下的大棚温湿度自动监测系统,由于单片机及相关附加部件的经济性,使得其能广泛应用于广大农民之中,从而通过对大棚温湿度的科学量化实时监测调整对作物的环境从而提高农业产量,造福广大农民,其实用性使得这个研究很有必要。1.2 国内外研究现状国内外研究现状 上个世纪 70 年代开始,国外就利用当时发展的模拟技术对温室环境因子控制开展研究,告别了之前人工测量的落后时代,随着研究
10、的深入和进步,分布式控制系统便进一步在此领域发展起来了。随着世界各国的温室自动控制技术的迅猛发展,如以色列、荷兰、日本美国等西方发达国家,都实现了根据所植入和采集到的温室生物的特点与要求,对温室所处的多方面因素进行自动控制,包括温度、湿度、光照强度、水分、气体浓度、肥料等各个方面1。在荷兰,其玻璃温室已经可以通过计算机控制,实行全自动无人化控制生产;在日本,其温室自动控制在温室生产的各项作业中都逐步实现了无人化、全自动化。通过热电技术的使用,荷兰实现了精确控制成熟期的水果和蔬菜,鲜花和其他植物的开花期,满足在各种节日的时间需求的人;在英国,伦敦大学农业学院研制出来的温室自动控制技术,可以对超过
11、 50 公里的温室内环境进行监控,包括温度和湿度,光照强度,气体浓度和水等环境因素。比国外晚大概十年,也就是在 80 年代之后,中国相关科研人员不断学习西方发达国家在温室控制领域取得的成果,并且积累总结出自身经验,内化为适应中国本土的技术,在研究初始阶段,只能对单一环境因子实现自动控制,但在随后快速发展的微第一章 绪论 2 机技术、传感技术等高新技术的驱动下,自动控制的领域有了翻天覆地的变化,通过温室生产,可利用计算机对生物生长所需的部分或者全部的环境因素进行自动控制,使农业生产方式有了巨大的改变,生产信息化、工厂化等已经成为了世界上农业广泛生产的新途径。1.3系统主要设计内容系统主要设计内容
12、 1.3.1 系统框图 图 1.1 系统框图 1.3.2 元器件的选择 利用 AT89S52 单片机控制单元的设计,传感器采用 SHT11 数字温湿度传感器,1602A 双液晶显示器实时显示温度和湿度,蜂鸣器报警电路,并用三极管驱动,LED报警信息电路。在单片机中,ATMEL 公司生产的 C51 系列单片机具有成本低廉、运行稳定、开发周期短、易操作使用等优点,但是每次写程序的时候都要进行拔插,不仅在调试的 控制单元 AT89S52 电源电路 复位电路 键盘输入 1602 显示电路 报警电路 温湿度传感器 南昌工程学院本科毕业设计(论文)3 时候比较繁琐,而且对芯片也会造成一定的损害;而 S 系
13、列的 AT89S52 单片机弥补了这一缺陷,不仅支持在线 ISP 编程,免除繁琐的编程拔插,还比 89C51 多了一倍的内存,因此可以支持更大的程序,这样有利于该系统日后的功能拓展。在数据采集模块上面,为了使得整体电路更加精简,减少繁杂的外围电路,A/D 转换电路,使用集成式的数字式温湿度传感器 SHT11。同样的道理,1602 液晶显示器可以显示双行字符,满足了设计的显示要求。第一章 绪论 4 南昌工程学院本科毕业设计(论文)5 第二章 系统硬件设计 2.1 系统性能概述系统性能概述 作为一个大棚温湿度监测系统,其核心任务是对棚内环境进行自动测量。该系统上电初始化后,通过 SHT11 感应并
14、检测大棚内的温湿度值,传送给 AT89S52 核心处理单元,此时处理器调出内部设定好的温湿度上下限,据此对比判断对应数据是否异常,然后做出报警与否的反馈;确定是否异常超过预设的时间,如果超过预定时间,异常信号从报警电路输出;然后继续确定异常处理,如果解决了,然后就会解除报警。这样一来,通过单片机的核心处理控制功能来采集实时环境信息,让用户可以实时高效地获取大棚内部的环境状态,从而能够及时实施管理。2.2 单片机模块单片机模块 单片机作为一种微型计算机,广泛应用在工业自动化、自动控制、智能仪器仪表等领域2,具有体积小、成本低的特性,功能齐全,简单方便,发展迅速,嵌入容易。本设计采用 AT89S5
15、2 单片机,单片机是一种低功耗,高性能 CMOS8 位微控制器,有 8K 的系统内可编程闪存。它兼容 MCS-51 系列的引脚,适用于所有标准 80C51 指令集。从而使该器件进行编程,因此它能够在进行程序烧录是不进行多次拔插,可避免不必要的繁琐程序以及对装置的损耗甚至损坏。2.2.1 AT89S52 主要功能概述 AT89s52 提供以下标准功能:8K 字节的 Flash 闪速存储器,256 字节内部 RAM,拥有 32 个 I/O 口线、3 个 16 位定时器/计数器、一个 6 向量两级中断结构、1 个全双工串行通信口以及片内振荡器及时钟电路。与此同时,AT89S52 可将至 0 Hz 的
16、静态逻辑操作,并支持两种软件可选的结点工作模式。空闲方式停止 CPU 工作,但允许 RAM和定时器/计数器、串行通信口及中断系统继续工作。掉电方式下会保存 RAM 中的内容,但是振荡器停止工作并且禁止其它所有部件工作,直到下一个硬件复位。2.2.2 AT89S52 封装结构 第二章 系统硬件设计 6 图 2.1 AT89S52 PDIP 封装结构 2.2.3 AT89S52 引脚功能 VCC:电源引脚 GND:逻辑地 P0 口:8 位的地址和总线复用 I/O 口。P1 口:I/O 端口,8 位,具有内部上拉电阻。P2 口:P2 口是一个带有内部上拉电阻的 8 位双向 I/O 口。P3 口:端口
17、 P3 是具有内部上拉电阻的 8 位双向 I/O 口。P3 口依然和 AT89C51 一样提供了它的第二功能。RST:复位输入端口,复位方式是当其工作是在 RST 引脚接入持续时间长达两个机器周期以上高电平。ALE/:地址锁存允许。:片外程序存储器的读选通信号。/VPP:外部访问允许端口。第二功能,即 VPP 功能,在对片内 Flash 进行编程的时候,要在这个引脚上接入 12V 的编程电压。PROGPROGPSENPSENEAEA南昌工程学院本科毕业设计(论文)7 XTAL1:片内振荡器反相放大器和内部时钟发生器的输入端。XTAL2:片内振荡器反相放大器的输出端。2.3 单片机最小系统单片机
18、最小系统 单片机最小系统就是单片机能够运行程序,正常工作最简单电路系统,是保证单片机的正常启动和开始工作的必须电路,组成这部分的东西缺一不可,单片机最小系统应该有单片机、晶振电路、复位电路。2.3.1 单片机 在上节已经作了阐述。2.3.2 晶振电路 在 Proteus 仿真环境里如图 2.2。图 2.2 单片机振荡电路 系统在执行程序的时候需要一个稳定的时钟信号,一切的指令都需要这样的时钟信号才能够有条不紊地执行。单片机系统所需的时钟信号由晶振提供,并且其运行速度与频率的高低息息相关,呈现出正比的规律,单片机产生的频率越高其运行速度就越快,反之则越慢。在一般环境下,晶体振荡器的频率五十的绝对
19、精度可以达到百万,足够一般使用,先进的水晶会更精确。STC89S52采用11.0592MHz的晶振作为振动源,单片机内部含振荡器电路,所以震荡电路的连接跟 8051 单片机一样,所连接的电容容量为 22pF 即可。第二章 系统硬件设计 8 2.3.4 复位电路 如同计算机,单片机在执行程序的时候可能会遇到各种各样的意外情况而使系统瘫痪或者软件跑飞,因此就需要一个复位机制。就好比计算机的重启部分,单片机复位电路使得其具有恢复正常运作的功能,当按下复位按键的时候,内部的程序会重新从头开始执行。图 2.3 复位电路 单片机的复位电路由两种方式,分别是上电自动复位和按键复位,本设计采用的是上电自动复位
20、电路,实现原理如图 2.3。2.4 传感器模块传感器模块 2.4.1 SHT11 简介 目前在电容式温湿度传感器的发展中,以盛世瑞恩公司制造的 SHTXX 系列的产品占主要份额,即集成的单片智能数字化温湿度传感器3。这种产品在工业 CMOS 过程中采用了微加工技术,从而使其有长期的稳定性和比较高的可靠性。它的外观和引脚如图 2.4 所示。图 2.4 SHT11 外观和引脚 南昌工程学院本科毕业设计(论文)9 这个温度和湿度传感器由一个湿度传感器探头式温度测量元件和电容器体,还包含了 A/D 转换器4,这样一来就能够免去复杂的外围电路而使该装置直接输出数字信号。对于传感器的系数校准方面,它会在对
21、外界检测到相应信号的时候自动调用存储在 OTP 内存里的校准系数程序。其湿度测量范围为 0%100%RH,测量精度为 0.1%RH;温度测量范围为-40 123.8,测量精度为0.01。2.4.2 SHT11 端口介绍 VDD:电源引脚。SHT11 的额定电压为 5V。一般在 3.3V 就可以正常工作,上电后电源引脚可以接上一个 100nF 的电容。SHT11 的串行接口优化传感器读出和有效的电力消耗。传感器可以连接到一个 I2C 总线,不干扰其他设备连接到总线,控制器必须在协议之间进行切换。GND:地。SCK:串行时钟输入。DATA:串行数据引脚。这个传感器的三态串行数据引脚用来收发数据。传
22、感器发送命令到串行数据时钟(SCK)的有效前沿,并且必须保持稳定在较高的水平时,SCK,SCK 边缘的数据值可能倒台后发生改变。为了保持安全通讯数据有效,应当延长在 TSU 上升和 THO 下降沿的 SCK 后,分别见图 2.5。图 2.5 SHT11 收发数据时序 用于读取数据传感器、数据 SCK 已经是低电平,后是有效的电平 SCK 仍然有效,第二章 系统硬件设计 10 直到下一个下降沿到来。为了避免信号争用单片机必须唯一用低电平驱动数据位,所以通常在该引脚外部接上 10k 大小的上拉电阻。2.4.3 SHT11 典型应用电路 图 2.6 SHT11 典型应用电路 2.5 显示模块显示模块
23、 2.5.1 LCD1602 概述 本系统选择的字符型显示器是一种用 5*7 点阵图形显示字符的显示器,根据可以显示的字数多少可以分为 2 行 20 字、2 行 16 字、1 行 16 字等。通常我们所用的是 2 行 16 字,也就是本系统采用的 LCD1602 模块。液晶显示器具有体积小,功耗低,微薄而轻,使用方便,显示内容丰富等优点,已应用于许多低功率器件。这个装置的引用使得这些电子设备的人机界面变的越来越形象和直观。图 2.7 是该模块的实物图。图 2.7 LCD1602 实物图 南昌工程学院本科毕业设计(论文)11 2.5.2 LCD1602 特性 该类型液晶显示模块内部有字符发生器
24、CGROM,也就是字符库。可以显示 192个 5*7 点阵字符。如图 2.8。因此,每个字母和数字都有唯一的一个代码至,而且恰好与 ASCII 码中的字母和数字相同。因此在显示字母和数字的时候,向 LCD1602 送入对应的 ASCII 码就行了。图 2.8 LCD1602ROM 字符库的内容 2.5.3 LCD1602 引脚说明 字符型 LCD 通常有 14 条引脚(无背光)线或 16 条引脚线(带背光)两种接口形式5,其中 16 条引脚的多出了背光电源线 VCC(15 脚)和地线 GND(16 脚),各引脚定义如表 2.1 所示。表 2.1 LCD1602 引脚功能定义 编号 符号 引脚说
25、明 编号 符号 引脚说明 1 VSS 电源地 9 DB2 Data 2 VDD 电源正极 1 DB3 Data 第二章 系统硬件设计 12 续表 2.3 3 VL 液晶显示偏压 11 DB4 Data 4 RS 数据/命令选择 12 DB5 Data 5 R/W 读/写选择 13 DB6 Data 6 E 使能信号 14 DB7 Data 7 DB0 数据 15 BLA 背光源正极 8 DB1 数据 16 BLK 背光源负极 2.5.4 命令格式及功能说明 (1)清屏。下面是命令格式:表 2.2 清屏命令 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0
26、 0 0 0 0 0 0 1 这条命令将屏幕显示清除,光标归位。(2)返回。表 2.3 返回命令 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 0 0 1 X 该指令将 DDRAM 和显示 RAM 的地址置 0,将显示返回到原来的位置。(3)输入方式设置。命令格式如下:表 2.4 输入方式设置命令 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 0 1 I/D S 这段指令的功能室设置光标的移动方向,并且指定是不是将整体显示移动。南昌工程学院本科毕业设计(论文)13 I/D=1 增量方
27、式 I/D=0 减量方式 S=0 移位 S=1 不移位 (4)显示开关控制指令。表 2.5 显示开关指令 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 1 D C B 功能:控制整体显示器的开/关、光标的开/关、光标所处字符闪烁与否。D=0 显示器关;D=1 显示器开;C=0 光标关;C=1 光标开;B=0 字符不闪烁;B=1 字符闪烁。(5)光标移位指令。表 2.6 光标移位指令 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 1 S/C R/L X X 功能:让光标移位或者整体显示移位
28、。S/C=0 光标移位;S/C=1 显示移位;R/L=0 向左移位;R/L=1 向右移位。(6)功能设置指令。表 2.7 功能设置指令 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 DL N F X X 功能:设置数据总线位数和显示的行数及其字型。第二章 系统硬件设计 14 DL=0 4 位数据接口;DL=1 8 位数据接口;N=0 单行显示;DL=1 双行显示;F=0 5*7 点阵;F=1 5*10 点阵。(7)CGRAM 地址设置指令。表 2.8 CGRAM 设置指令 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1
29、DB0 0 0 0 1 CGRAMD 的地址(低 6 位)设置 CGRAM(数据显示存储器)的地址,范围为 0-36。(8)DDRAM 地址设置指令。表 2.9 DDRAM 设置指令 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 1 CGRAMD 的地址(低 7 位)设置 DDRAM(数据显示存储器)的地址,范围为 0-127。(9)读忙信号及地址计数器。表 2.10 读忙信号指令 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 1 BF AC 内容(低 7 位)指令解释如下:BF=0 LCD 不忙(此时可以接收命令和数
30、据);BF=1 LCD 忙;AC 是地址计数器值,范围是 0-127。(10)向 CGRAM 或 DDRAM 写入数据指令。表 2.11 写数据指令 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 1 0 要写入的数据 D7D0 南昌工程学院本科毕业设计(论文)15 功能:向 DDRAM 写入字符码以显示对应字符。(11)从 CGRAM 或者 DDRAM 中读出数据指令。表 2.12 读数据指令 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 1 1 要读出的数据 D7D0 2.6 按键电路按键电路 按键电路要完成的任务有:判
31、别是否有按键按下,如果有就进入下一步工作;然后识别哪一个键被按下,求出相应的键值;依据键值找到相应的处理程序入口。在单片机系统中我们常用的键盘是按键式键盘,那个按键实际上就是一个开关。图 2.9 是按键按下时行线电压输出波形图。图 2.9 按键抖动现象 由图可知按键在开闭的一瞬间都有抖动期,基本上在 5-10ms 左右,在键盘被按下的稳定期内,电平状态呈现出低电平。因此判定按键是否按下实质上就是检测行线输出的电压时低电平还是高电平。若为高电平,则按键断开;若低电平,按键闭合。但是由于其机械特性导致的抖动现象,我们必须消除按键的抖动从而消除对按键闭合与否的判断障碍,提高判别的准确性。消去按键抖动
32、的方式有两种:软件延迟和采用专门的键盘接口芯片。考虑到使用系统的成本和简单消除抖动的角度,我们采用的是软件延时的设计方法。利用软件延时的方法消除按键抖动的思想:当检测到按键按下时,行线电平状态为低电平,此时执行一段延时为 10ms 的子程序,再确认电平是否为低电平,如果此时真有按键按下,第二章 系统硬件设计 16 则应仍为低电平。反之,当按键松开是,该按键所在的行线跳变为高电平,同样执行一段延时 10ms 的延时子程序后,再看是不是高电平,如果为高电平,则表示按键已经释放6。这样的操作可以达到消除两个抖动期的影响,大大提高可靠性。本设计采用四个机械按键,接在单片机的 P3 口,四个按键满足对系
33、统温湿度上下限值的设定。连接方式如图 2.10:图 2.10 键盘电路 SET 键的作用是选择调整项目,即温度上限、温度下限、湿度上限、湿度下限四个可选,OK 是确定键,UP 和 DOWN 分别是加和减的操作。通过这几个按键和对该装置设定允许的温湿度上下限,超过该设定值就会启动报警电路发出警报。2.7 报警电路报警电路 为了让电路在检测到环境温湿度超过预设值的时候做出反应,本设计采用了声光报警电路,蜂鸣器发出声音提醒大棚农户,通过 8050 晶体管来驱动蜂鸣器;四个 LED灯分别对应温度过高、温度过低、湿度过高、湿度过低的异常状态,好让用户一眼看出发生了哪一个具体的异常情况7。连接图如下:南昌
34、工程学院本科毕业设计(论文)17 图 2.11 声报警电路 图 2.12 光报警电路 第二章 系统硬件设计 18 南昌工程学院本科毕业设计(论文)19 第三章 系统软件设计 3.1 系统主程序设计方法系统主程序设计方法 本系统使用的是 Keil 软件,它是 C51 系列兼容单片机 C 语言软件开发系统,能够应用通俗易懂的高级 C 语言对单片机进行软件开发。当然,在写程序之前必须要对系统的电路有足够的了解,各个接口,还有系统各个芯片或者模块的时序,在编程过程中都要对其遵守,那样才能将你所预设的功能付诸实现。在搞清楚了硬件的特性之后,根据该特性首先要做的就是画出流程图,组织好每个模块的处理先后顺序
35、。另外,也要善于利用软件去替代部分硬件做的事情,比如在此设计里,消除键盘按键抖动现象就使用了软件除抖,使得硬件电路更简洁,也降低了系统总体成本。所有的程序,使用 C51 编程语言,在 keil 开发环境中编译和调试,整个程序利用了中断技术、数字滤波技术、系数补偿技术以及其他先进技术。程序设计都分了模块,模块化的程序结构清晰,易于修改8。由以下主要模块组成:主程序模块、温湿度采集模块,报警模块、数据显示模块、按键模块和其他的附加模块。图 3.1 是该系统的主程序流图。第三章 系统软件设计 20 否 是 否 是 图 3.1 系统主程序流图 3.2 LCD1602 显示子程序显示子程序 首先要对 L
36、CD 模块进行初始化,另外由于该器件是慢显器件,在对其进行操作前要先读忙标示,为低电平时操作才有效,这个读忙标示也可以用延时操作来替代,作用是一样的9。这些都可以放在 LCD_init(void)里面去实现。根据程序功能思路,结开始 初始化 显示欢迎界面 调用读取实时温湿度子程序值 显示 有无按下设定键 进入设定子程序 是否超出设定值 输出报警 结束 南昌工程学院本科毕业设计(论文)21 合硬件特性,得出下面程序流图:有 无 否 是 图 3.2 LCD1602 显示子程序流图 下面给出 LCD1602 初始化代码:void LCD_Initial()1602 初始化 延时 有无按键按下 按键子
37、程序 读温湿度 读取成功?DHT11 通信重启 线性拟合数据 1602 显示数据 延时 0.8s 按键程序完成 第三章 系统软件设计 22 E=0;LCD_Write(LCD_COMMAND,0 x38);/8 位数据端口,2 行显示,5*7 点阵 LCD_Write(LCD_COMMAND,0 x38);LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);/开启显示,无光标 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);/清屏 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);/AC 递增,画面不动 将字符输出
38、到液晶显示部分代码:void Print(unsigned char*str)while(*str!=0)LCD_Write(LCD_DATA,*str);str+;3.3 DHT11 温湿度采集子程序温湿度采集子程序 下面给出这部分程序的流图:南昌工程学院本科毕业设计(论文)23 跳出 否 是 图 3.3 DHT11 温度采集子程序流图 下面给出温湿度测量关键程序:char s_measure(unsigned char*p_value,unsigned char*p_checksum,unsigned char mode)/进行温度或者湿度转换,由参数 mode 决定转换内容 unsign
39、ed error=0;主机发出开始信号 主机设置为输入模式 DHT11 是否响应 等待 80us 高电平结束 接收数据 拉低总线,延时 50us 释放总线 第三章 系统软件设计 24 unsigned int i;s_transstart();/启动传输 switch(mode)/选择发送命令 case TEMP:error+=s_write_byte(MEASURE_TEMP);break;/测量温度 case HUMI:error+=s_write_byte(MEASURE_HUMI);break;/测量湿度 default :break;for(i=0;i65535;i+)if(DATA
40、=0)break;/等待测量结束 if(DATA)error+=1;/如果长时间数据线没有拉低,说明测量错误 *(p_value)=s_read_byte(ACK);/读第一个字节,高字节(MSB)*(p_value+1)=s_read_byte(ACK);/读第二个字节,低字节(LSB)*p_checksum=s_read_byte(noACK);/read CRC 校验码 return error;/若 error=1 通讯错误 南昌工程学院本科毕业设计(论文)25 第四章 系统测试 4.1 软件测试软件测试 本设计的程序部分采用 Keil C51 编写,它是在标准 C 语言基础上发展起来
41、的针对51 单片机的实用高级编程语言。首先根据设计的主要思想在 Keil 界面上把完整的程序输入,在保证语法、格式正确的情况下对源程序进行编译,生成可执行的目标代码。当然这个过程中遇到了很多困难,比如一些变量没定义好,或者有其他的一些语法错误,在进行检查调试后,顺利通过。下图是 Keil 程序界面的截图:图 4.1 Keil 程序界面 4.1.1 软件测试总结 在经过多次调试修改之后,所有程序都通过编译,并生成了需要的目标执行文件。在这个过程中,我发现很多由于个人疏忽导致的细节问题使得很多次挣扎在程序编译频繁出错的边缘。并且通过细心调试,请教同学和老师,最后一一解决了这些问题,也收获了不少。第
42、四章 系统测试 26 4.2 硬件测试硬件测试 4.2.1 系统硬件仿真 在硬件实现方面,利用 Proteus 软件实现电路图的连接、程序写入以及功能仿真。下图是系统完整电路:图 4.2 系统整体电路 在实现好软件部分的撰写并且编译后没有报错之后,在 Proteus 环境里把 Keil 生成的可执行文件写入到单片机里面,点击仿真按钮,系统开始工作。在初始阶段,默认给定 SHT11 的值如图。南昌工程学院本科毕业设计(论文)27 图 4.3 SHT11 初始值 此时液晶显示如图 4.4。图 4.4 液晶显示数据 由于本系统默认设置的温度上限为 40 摄氏度,对 SHT11 把温度调至 41 度的
43、时候,液显如图 4.5,蜂鸣器开始发声,温度过高的 LED 指示灯也被点亮,如图 4.6。图 4.5 温度过高时液显内容 第四章 系统测试 28 图 4.6 光报警电路 同样,对该系统传感器的湿度分别调到 80%以上、30%以下,相应报警电路都被激活,因此在硬件测试下获得了与预期一样的功能。另外,对按键的测试也通过,因此在实际应用中可以自行通过按键根据作物的特点改变报警的阀值,科学的进行动态监测。4.2.2 硬件测试总结 在电路仿真调试的过程中,同样遇到很多困难。从开始的 Proteus 仿真软件的学习,到对它操作的熟悉,后来连好电路图之后,把前面生成的可执行文件写入开始仿真,发现按键没反应,
44、经过观察代码才发现原来在软件部分定义的按键端口和电路图的连接端口不吻合,修改过来便解决了这个问题。另外,在通过对传感器调节输入数据,在温湿度超过限度的时候,蜂鸣器不报警,通过观察电路才知道报警电路与单片机连接的端口处电平取反了。这样的问题遇到了很多,在一次又一次的修改后,终于完成了硬件部分的仿真,实现了所有预设功能。4.3 实物测试实物测试 4.3.1 实物系统概况 在购买元器件后,按照 Proteus 软件中的仿真电路,做成如下所示的实物。南昌工程学院本科毕业设计(论文)29 图 4.7 实物正面 图 4.8 实物背面 4.3.2 实物报警测试 由正面图所示可知上电后该装置运行正常,下面来测
45、试它的报警功能,由于夏天手很潮湿,用手指放在 SHT11 传感器上,可以看见 LCD1602 显示的温度值略微上升,第四章 系统测试 30 湿度值大幅上升,直到超过系统预设湿度上限值(87%),湿度过高的 LED 警示灯点亮,同时蜂鸣器鸣响报警。如图 4.9 所示。图 4.9 湿度过高报警 同理,用吹风机开热风吹传感器,蜂鸣器报警,温度过高以及湿度过低的 LED 警示灯同时亮起。4.3.3 实物按键测试 下面测试装置的按键电路。按下 SET 键,出现温度上限值的设置界面(默认为 40度),如图 4.10 所示。通过按下 DOWN 键将上限调至 28,按下 OK 键确认,回到温湿度显示界面,继续
46、将手放在传感器上,此时温度过低和湿度过高的 LED 警示灯同时亮起,蜂鸣器响,如图 4.11。南昌工程学院本科毕业设计(论文)31 图 4.10 设置界面 图 4.11 重设温度上限后报警 4.3.4 实物测试总结 在进行上述测试后,发现预设的功能与 Proteus 软件仿真的结果完全一致,达到了所有的预期效果。结 语 32 结语 这项设计在单片机技术、传感器技术、C 语言编程等科学知识完成了基于单片机控制的大棚温湿度自动检测系统的设计,实现了环境温湿度自动实时检测显示,并且在温湿度过限发出警报。由于单片机的经济和开发成本低廉,操作简便,在农业自动控制领域具有很强的实用性。下面对本设计的特点做
47、一个总结:1.用传感器把单片机结合起来,从而实现温湿度数据的自动采集读取。2.利用了 LCD1602 液晶显示,直观地观察大棚内温湿度的数据。3.具有报警模块,通过按键自行设定温湿度上下限,给用户提供及时的环境因子突变反馈。当然,在这些特点之外,这个设计还有一些缺点,在器件、系统上面需要做进一步的优化,从而提高整个系统的精确度和降低功耗。当然,这个系统还可以做一定的拓展。比如,为了让该该系统得到的测量结果在计算机上显示,可以利用单片机的串口和 RS-232 总线通信协议把采集的数据传送到主控机,这样就可以利用计算机进行数据的保存和加工处理。另外,如果接入无线收发模块,还可以把这个装置适用于比较
48、偏远不方便到达的地方,此时还可以在端口扩展针对温湿度过限之后的控制模块,温度过高的时候启动降温系统,打开排风扇等;过低的时候启动加热器;湿度过高或者过低都相应启动除湿器或风干机,直到相应指标达到设定的允许的范围内,这样可以实现无人管理种植,又进一步节省了人力和财力。南昌工程学院本科毕业设计(论文)33 参考文献 1 王明喜,崔世茂,王红彬,李志鑫,李海涛,张鑫,胡博,张雪冰,张晓蒙.大棚型日光温室光照、温度及湿度等性能的初步研究J.农业工程技术(温室园艺),2008,05:19-21.2 褚福强,董学仁.单片机的网络接入技术研究J.仪器仪表用户,2006,05:4-5.3 杨承帅.蒸化工艺中温
49、湿度测量装置的研制D.苏州大学,2012.4 陈英俊.基于单片机的温湿度监测和报警系统设计J.广东石油化工学院学报,2013,04:42-46.5 林嘉.基于 89S52 的 LCD1602 程序设计J.电脑知识与技术,2012,26:6376-6378.6 张迎辉.单片微型计算机键盘接口设计J.信息技术,2004,07:68-69+91.7 韩毓.基于单片机的蔬菜大棚温度控制系统D.山东:中国海洋大学学位论文.2009:27-2 8 赵芝芸.温室智能监控系统D.江苏:江苏科技大学学位论文,2010:1-3 9 沈庆阳.单片机实践与应用.北京:清华大学出版社,2002 10 刘光伟.基于单片机
50、的温室温湿度监测系统设计与实现D.燕山大学,2012.11 彭宏丽温室环境智能监测与控制系统设计D.山西:太原理工大学学位论文,2007:1-4 12 廖丽媛.基于应变式扭矩传感器的测量系统的设计D.上海:东华大学,2013 13 刘九庆.温室环境工程技术.吉林:东北林业大学出版社,2002 14 张友德,赵志英,涂时亮.单片微型机原理应用与实验.上海:复旦大学出版社,2003 15 沈庆阳.单片机实践与应用.北京:清华大学出版社,2002 16 杜深慧.温湿度检测装置的设计与实现.北京:机械工业出版社,2004 17 Li Hai-Xia,Zeng Jie-Hui,The design of