基于单片机农业大棚控制检测系统,基于单片机农业大棚控制监测系统

来源:工作总结 发布时间:2020-11-14 点击:

 目

 录

 中文 摘要

 ··································································································· 2 英文摘要 . ·································································································· 4 1 1

 引 引

 言 言

 ······················································································· 5 1.1

 研究背景及意义 ····························································· 5

 1.2

 设计思想及基本功能 ······················································· 6

 2

 系统总体设计

 ················································································ 7 2.1

 设计要求······································································ 7

 2.2

 方案选择 ········································································· 7

 2.2.1 温湿度传感器的选择

 ······························································ 7 2.2.2 光照传感器的选择

 ································································· 7 2.2.3 单片机的选择

 ········································································ 7 3 系统硬件设计

 ························································································ 9 3.1

 整体方案设计 ··································································· 9

 3.1.1

 系统概述

 ··············································································· 9 3.1.2 系统框图

 ··············································································· 9 3.2

 最小系统模块 ··································································· 9

 3.2.1 STC89C52 简介 ······································································· 9 3.2.2 最小系统电路

 ······································································ 11 3.3

 DHT11 传感器电路 ··························································· 12

 3.3.1 DHT11 简介

 ·········································································· 12 3.3.2 DHT11 模块电路

 ··································································· 13 3.4

 光照采集电路 ································································· 14

 3.4.1 光照传感器简介

 ··································································· 14 3.4.2 BH1750FVI 简介

 ··································································· 14 3.4.3 光照传感器模块电路

 ···························································· 15 3.5

 液晶显示电路 ································································· 15

 3.5.1

 1602 液晶简介

 ······································································ 15 3.5.2 液晶显示模块电路

 ······························································· 16 3.6 蜂鸣器模块 ···································································· 17

 3.7

 按键输入模块 ································································· 18

 3.8

 LED 显示电路 ································································· 18

 4 软件设计

 ····························································································· 20

 2

 4.1

 程序语言及开发环境 ························································ 20

 4.2

 程序流程图设计 ······························································ 20

 4.2.1 总体程序流程图设计

 ···························································· 20 4.2.2 1602 液晶程序设计

 ······························································· 21 4.2.3 温湿度 DHT11 传感器程序设计

 ············································ 22 4.2.4 光照模块程序设计

 ······························································· 23 5 仿

 真

 ······························ 25 结 结

 论 论

 ································································································· 26 谢 谢

  辞 辞

 ······························································································· 27 参 参

 考

 文

 献 献

 ······················································································ 28 附录 A 主程序代码

 ·················································································· 30 附录 B 系统设计原理图

 ··········································································· 56 附录 C

 系统仿真总图

 ············································································· 57

 基于单片机的农业大棚检测采集系统设计 摘

 要:

 温度和湿度是在农业生产中常见的和基本的参数之一,它们会大幅度影响作物产量和品质。本次设计将单片机、传感器、计算机技术相结合设计出一套符合现代温室大棚的温湿度采集系统。

 本设计采用单片机最小系统为核心部分,检测部分使用 DHT11 温湿度一体传感器和 BH1750FVI 光照检测传感器、显示设备采用 1602 液晶,可以同时显示检测到的温度、湿度还有光照强度等值。同时附有键盘电路、LED 灯电路、蜂鸣器电路等,共同组成了本设计的超限报警模块。整个设计结构简单紧凑,功耗较低,抗干扰能力强、总体性能比较好,实现一种智能、快捷、方便的温湿度和光照的测量系统。

 关键词:

 温室大棚;单片机;温湿度传感器

 The design of the control and monitoring system of agricultural greenhouse based on single chip microcomputer

 4

 Abstract:

 Temperature and humidity are one of the common and basic parameters in agricultural production, which will greatly affect crop yield and quality. This design combines single chip microcomputer, sensor and computer technology to design a set of temperature and humidity acquisition system which conforms to the modern greenhouse. In this design, the minimum system of single-chip microcomputer is used as the core part, DHT11 integrated temperature and humidity sensor and bh1750fvi light detection sensor are used in the detection part, and 1602 liquid crystal is used in the display device, which can display the detected temperature, humidity and light intensity at the same time. At the same time, the keyboard circuit, LED light circuit, buzzer circuit and so on are attached to form the overrun alarm module. The whole design has simple and compact structure, low power consumption, strong anti-interference ability and good overall performance. It realizes an intelligent, fast and convenient temperature, humidity and light measurement system. Keywords:

 Greenhouse;MCU; temperature and humidity sensor

 基于单片机的农业大棚检测采集系统设计

 1 引

 言 1.1 研究背景及意义 农业生产一直是我国非常重视的一个方面,虽然我国每年都会给予农业补助,但仍然存在很多问题。目前我国农业生产方面面临的问题有:首先,中国人口众多,其次是资源匮乏。再次,中国的农业生产是昂贵的和低技术的,没有大规模的工业。解决这些问题的关键是要把中国的农业从传统农业转变为现代科学技术农业,以保障粮食安全,再提高效率、质量、产量。农业环境由高技术、高质量和高生产力的技术控制,这有助于大规模的推广,设备齐全,中国农业现代化的步伐加快。

 温度和湿度是在农业生产中常见的和基本的参数之一,它们会大幅度影响作物产量和品质。随着现代科学和技术在提高农业生产力方面发挥着重要作用,我们可以借助单片机程序,设计系统以确定温度和湿度,实现实时显示、储存和监测温度、湿度,实现符合国内生产体系、产品质量与节能需求的温控采集系统。本次设计欲将单片机、传感器、计算机技术相结合设计出一套符合现代温室大棚的温湿度采集系统。

 国外温室控制技术以美国最为先进,主要是因为其计算机的发展非常迅速,这也使得计算机为主的温室环境控制技术迅速发展。温室大棚内控制包括室内温度,土壤温度,相对空气湿度,通风口状况,保温幕状况,pH 调节,CO 2 浓度;室外控制包括光照强度,相对空气湿度,大气湿度,风向风速等。温室系统的应用为农业生产发展提供了很大的帮助,提高了工作效率,减少劳动量,收获了更多更好的产品。荷兰从上个世纪八十年代就开始温室计算机自动控制系统的开发,并不断地研究模拟控制软件。并通过交互式界面显示必要的信息,设置参数并绘制曲线,修正值曲线和测量数据曲线可以从设定的时间数据库中调用。其方便的

  6

 方式可以直接查询数据计算机的串行端口和完成上位机和下位机之间的信息交流。实现参数设置,信息显示和控制等功能,同时还能够进行数据调整,完成温室环境监控。

 1.2 设计思想及基本功能 针对我国蔬菜大棚存在的问题,通过调查分析,确定了设计任务。本系统要能对温湿度、光照度进行实时采集,采集到的数据传入单片机中,通过单片机对采集到的数据进行处理,处理过的数据通过单片机接口送达显示模块显示,当数据超出系统设定的报警值时,系统会进行报警,要能通过按键调整报警阈值大小。

 本系统可以全面且及时的对温室环境中的温湿度进行采集与监测,并且还可以将以前的数据进行保存与记录,方便人们及时查看与数据对比,此外设计了显示模块,通过使用图形的方式更加直观显示参数,实现了智能化远程监测温湿度的思想。

 2 系统总体设计 2.1 设计要求 (1)熟悉 51 单片机集成开发环境,运用 C 语言编写工程文件;

 (2)熟练应用所选用单片机的内部结构、资源,以及软硬件调试设备的基本方法;

 (3)自行构建基于单片机的最小系统,完成相关硬件电路的设计实现;

 (4)理解温度、湿度和光强等的检测原理和掌握实现方法。

 2.2 方案选择 2.2.1 温湿度传感器的选择 方案一:选用 DHT11 作为温湿度检测模块。DHT11 是一款数字输出的复合传感器,包含一个电阻式干事元件和 NTC 式温度检测元件,可测 20—90%RH 湿度,误差为±5%RH,0—50℃,误差范围±2℃。

 方案二:选用 SHT11 作为温湿度检测模块。SHT11 是一款精度较高的元件,湿度测量范围为 0—100%RH,测量精度为 0.1%RH;温度测量范围为-40-123.8℃,精度为±0.01℃。价格较高。

 本次是大棚监测,对精度要求不高,应选择方案一。

 2.2.2 光照传感器的选择 选用集成的光照传感器例如 BH1750FVI,该集成的传感器模块灵敏度大,测量范围广(1-65535lx),对光源的依赖性低,并且通过 IIC 接口和单片机进行数据传输通信,省去了中间 AD 转换的步骤,输出的结果即当前的光照强度,单位是勒克斯。

 2.2.3 单片机的选择 采用单片机作为系统控制器。单片机具有可靠性强、性价比搞、电压低、功耗低等优点得到迅猛发展和大范围推广,单片机算术运算功能强,软件编程灵活,自由度大,可用软件编程实现各种逻辑功能,本身带有定时器、计数器,可以用

  8

 来定时和计数,并且其功耗低,体积小,计数成熟和成本低等优点。

 方案一:采用 TI 公司的 STM32 作为主芯片,DSP 是专业的运算芯片,他的运行速度和性能的稳定性都值得称赞,适合复杂运算,成本较高。

 方案二:采用 STC89C51 单片机作为主控芯片,作为一款入门级单片机,价格便宜,适用面广,能应对多种情况,并且后期维护和升级方便。

 方案三:采用 ATML 公司的 AT,价格便宜,运行速度较慢,只能进行简单运算。

 综上所述,选择方案二,价格适中,性能稳定,后期维护升级也方便。

 3 系统硬件设计 3.1 整体方案设计 3.1.1 系统概述 整个系统以 STC89C52 单片机为核心器件,配合电阻电容晶振等器件,构成单片机的最小系统。其它个模块围绕着单片机最小系统展开。其中包括,温湿度采集使用 DHT11 温湿度一体的传感器,负责采集温度和湿度的数据后发给单片机;光照强度采集使用 BH1750FVI 传感器集成的光照模块 GY-30,负责将采集到的光照强度发给单片机;按键部分使用市面上常见的轻触按键作为系统的输入设置模块;显示设备为 1602 液晶;报警则采用蜂鸣器和 LED 的形式,实现声光报警效果;电源供电则采用 USB 5V 供电。

 3.1.2 系统框图

 图 3-1 系统框图 3.2 最小系统模块 3.2.1 STC89C52 简介 (1)概述 STC89C52 是一个低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令

 单片机

 最小系统 DHT11温湿度一体传感器 按键设置输入 集成光照 传感器 LED 指示灯 蜂鸣器 1602 液晶

  10

 P101P112P123P134P145P156P167P178RESET9P30/RXD10P31/TXD11P32/INT012P33/INT113P34/T014P35/T115P36/WR16P37/RD17XTAL218XTAL119GND20P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE30EA31P0732P0633P0534P0435P0336P0237P0138P0039VCC40系统,片内置通用 8 位中央处理器和 Flash 存储单元,功能强大的 STC89C52 单片机可为您提供许多较复杂系统控制应用场合。

 (2)8051 单片机的引脚功能 MCS-51 系列单片机一般采用 40 个引脚,双列直插式封装,用 HMOS 工艺制造,其外部引脚排列如图 3-2 所示。其中,各引脚的功能为:

 3-2 STC89C52 引脚图 ① 主电源引脚 VCC(40 脚),接+5V 电源正端; GND(20 脚),接+5V 电源地端; ② 外接晶体或外部振荡器引脚 XTAL1(19 脚),接外部晶振的一个引脚。在单片机内部,它是一个反相放大器 的输入端。当采用外部振荡器时,此引脚应接 地。

 XTAL2(18 脚),接外部晶振的另一个引脚。在片内接至反相放大器的输出端和 内部时钟电路的输入端。当采用外部振荡器时,此脚接外部振荡器的输出端。

 ③ 控制信号线 RESET(9 脚),复位信号输入端,复位/掉电时内部 RAM 的备用电源输入端。

 ALE(30 脚),地址锁存允许/编程脉冲输入,用 ALE 锁存从 P0 口输出的低 8 位地址。在对片内 EPROM 编程时,编程脉冲由此输入。

 PSEN(29 脚),外部程序存储器读选通信号,低电平有效。

 EA(31 脚),访问外部存储器允许/编程电压输入。EA 为高电平时,访问内部存 储器;低电平时,访问外部存储器。

 ④ 多功能 I/O 口引脚 8051 单片机设有 4 个双向 I/O 口(P0、P1、P2、P3),

 每一组 I/O 口线都可以独立地用作输入或输出口,其中:

 P0 口(32~39 脚)——双向口(三态),可作为输入/输出口,可驱动 8 个LSTTL 门电路。实际应用中常作为分时使用的地址/数据总线口,对外部程序或数据存储器寻址时低 8 位地址与数据总线分时使用 P0 口:先送低 8 位地址信号到 P0 口,由地址锁存信号 ALE 的下降沿将地址信号锁存到地址锁存器后,再作为数据总线的口线对数据进行输入或输出。

 P1 口(1~8 脚)——准双向口(三态),可驱动 4 个 LSTTL 门电路。用作输入线时,口锁存器必须由单片机先写入“1”,每一位都可编程为输入或输出线。

 P2 口(21~28)——准双向口(三态),可驱动 4 个 LSTTL 门电路。可作为输入/输出口,实际应用中一般作为地址总线的高 8 位,与 P0 口一起组成 16 位地址总线,用于对外部存储器的接口电路进行寻址。

 P3 口(10~17 脚)——准双向口(三态),可驱动 4 个 LSTTL 门电路。双功能口,作为第一功能使用时,与 P1 口一样;作为第二功能使用时,每一位都有特定用途。

 3.2.2 最小系统电路 STC89C52 的最小系统如图 3-3 所示,整个最小系统由三个部分组成,晶振电路部分、复位电路部分、电源电路等三个部分组成。

 晶振电路包括 2 个 30pF 的电容 C2 和 C3,以及 12M 的晶振 X1。电容的作用在这里是起振作用,帮助晶振更容易的起振,取值范围是 15-33pF。晶振的取值也可以是 24M,晶振的取值越高,单片机的执行速度越快。在进行电路设计的时候,晶振部分越靠近单片机越好。

 单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。

  12

  图 3-3 单片机最小系统 3.3 DHT11 传感器电路 3.3.1 DHT11 简介 DHT11(图 3-4)数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个 NTC测温元件,并与一个高性能 8 位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。

 图 3-4 数字温湿度传感器 P101P112P123P134P145P156P167P178RESET9P30/RXD10P31/TXD11P32/INT012P33/INT113P34/T014P35/T115P36/WR16P37/RD17XTAL218XTAL119GND20P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE30EA31P0732P0633P0534P0435P0336P0237P0138P0039VCC40U2VCCGNDC210uFR510KVCCGND12X112MC330pFC430pFGND123456789R3103P00P01P02P03P04P05P06P07KEY1KEY2KEY3TXDRXDVCCDHTBEEPRSENRWLED1LED2LED3LED4LED5LED6SDASCL

 3.3.2 DHT11 模块电路 DHT11 的模块电路图如下图所示:

 图 3-5 DHT11 模块连接图 (1)接口说明

  建议连接线长度短于 20 米时用 5K 上拉电阻,大于 20 米时根据实际情况使用合适的上拉电阻。

 (2)引脚说明

  Pin1:(VDD),电源引脚,供电电压为 3-5.5V。

 Pin2:(DATA),串行数据,单总线。

 Pin3:(NC),空脚,请悬浮。

 Pin4(VDD),接地端,电源负极。

 (3)串行接口

 (单线双向)

  DATA 用于微处理器与 DHT11 之间的通讯和同步,采用单总线数据格式,一次通讯时间 4ms 左右,数据分小数部分和整数部分,具体格式在下面说明。当前小数部分用于以后扩展,现读出为零。操作流程如下:一次完整的数据传输为 40bit,高位先出。

 数据格式为8位湿度整数数据+8位湿度小数数据+8位温度整数数据+8位温度小数数据+8 位校验和,数据传送正确时校验和数据等于“8 位湿度整数数据+8 位湿度小数数据+8 位温度整数数据+8 位温度小数数据”所得结果的末 8 位。

  用户 MCU 发送一次开始信号后,DHT11 从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11 发送响应信号,送出 40bit 的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11 接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11 不会主动进行温湿度采集.采

  14

 集数据后转换到低速模式。

 3.4 光照采集电路 3.4.1 光照传感器简介

  光照传感器就是能够感知和测量环境中某点光照强度的一种敏感元器件,它将环境中的光照或者与其相关的参量的信息转换成电信号,根据这些电信号的强弱便可获得被监测点在环境中的光照度信息从而可以进行检测、监控、报警;还可以通过接口电路与计算机组成自动检测、监控、报警系统。

 3.4.2 BH1750FVI 简介 (1)产品介绍

 BH1750FVI 是一种用于两线式串行总线接口的数字型光强度传感器集成电路。利用它的高分辨率可以探测较大范围的光强度变化。实物图如图 3-6 所示。

 图 3-6 BH1750FVI 实物图 (2)产品介绍

 1.支持 ICBUS 接口(f/sModeSupport)。

 2.接近视觉灵敏度的光谱灵敏度特性(峰值灵敏度波长典型值:560nm)。

  3.输出对应亮度的数字值。

 4.对应广泛的输入光范围(相当于 1-65535lx)。

  5.通过降低功率功能,实现低电流化。

  6.通过 50Hz/60Hz 除光噪音功能实现稳定的测定

  7.支持 1.8V 逻辑输入接口。

  8.无需其他外部件。

 9.光源依赖性弱(白炽灯,荧光灯,卤素灯,白光 LED,日光灯)。

  10.有两种可选的 IICslave 地址。

 11.可调的测量结果影响较大的因素为光入口大小。

 12.使用这种功能能计算 1.1lx 到 100000lx 马克斯/分钟的范围。

  13.最小误差变动在±20%。

  14.受红外线影响很小。

 3.4.3 光照传感器模块电路 光照传感器模块电路图如下图所示:

  图 3-7 光照模块电路图

 1.PD 接近人眼反应的光敏二极管。

 2.AMP 集成运算放大器:将 PD 电流转换为 PD 电压。

 3.ADC 模数转换获取 16 位数字数据。

 4.OSC 内部振荡器(时钟频率典型值:320kHz),该时钟为内部逻辑时钟。

 3.5 液晶显示电路 3.5.1 1602 液晶简介 液晶显示器是一种显示器件,具有小体积、轻重量、低功耗等特色。由于其功耗低、显示的信息量大(例如,文本,图形,曲线等)、无电磁辐射、使用寿命长,它已被广泛应用在便携式电子产品。本系统采用的 1602 是一款物美价廉的液晶显示屏,可以显示 2 行标准字符,每行共有 16 个字符。在通信系统,智能操作仪表和办公设备的自动化中被广泛的应用,主要功能是显示 ASCII 字符,因此被称为“字符型显示装置”。

 1602LCD 主要技术参数:

 :16×2 个字符

  16

 :4.5—5.5V :2.0mA(5.0V) :5.0V :2.95×4.35(W×H)mm 3.5.2 液晶显示模块电路 本液晶模块的电路的连接图如图 3-15 所示,第 1 脚和第 2 脚分别接到了电路的 GND 和 VCC,这 2 个脚是液晶工作的电源输入脚。第 3 脚通过一个 10K 的电位器连接到地端,可通过调节该电位器来调节液晶的对比度。第 4 脚是液晶的寄存器控制脚,接到了单片机的 P12 脚上。第 5 脚是液晶的读写控制脚,接到了单片机的 P13 脚上。第 6 脚是液晶的使能脚,接到了单片机的 P14 脚上。第 7 脚到第 14 脚是液晶的数据/地址 8 位总线,接到了单片机的 P0 口上。最后第 15 脚和第 16 脚是液晶的背光电源脚,直接连接系统 VCC 和 GND。

 图 3-8 液晶模块连接图

 引脚如表 3-1 所示:

 表 3-1

 1602 液晶引脚说明

 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 数据 2 VDD 电源正极 10 D3 数据 3 VL 液晶显示偏压 11 D4 数据

 4 RS 数据/命令选择 12 D5 数据 5 R/W 读/写选择 13 D6 数据 6 E 使能信号 14 D7 数据 7 D0 数据 15 BLA 背光源正极 8 D1 数据 16 BLK 背光源负极 第一脚:接地电源 VSS。

 第二脚:5V 正电源为 VDD。

  第三脚:VL 为液晶显示器对比度调整的端口,对比度的强弱由接电源的不同决定,对比度的调整可以通过一个 10k 的电位器。

  第四脚:RS 是寄存器选择,高水平的数据寄存器,低选择指令寄存器。

 第五脚:R / W 的读和写信号线,高水平低的读操作,写操作。其中 RS 与R/W 的关系决定了当时状态,例如两端共同为 0 时能够写入命令或者显示其地址,当两端同为 1 时可以读忙碌信号,当 RS 为 1,R/W 为 0 时能够将数据录入。

  第六脚:使能端 E,当 E 端由 1 至 0 时,液晶模块中的命令开始被运行。

 第七至十四脚:D0-D7 为 8 位双向数据线。

 第十五脚:背光源正极。

 第十六脚:背光源负极。

 3.6 蜂鸣器模块 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。

 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。当接通电源后多谐振荡器起振,输出 1.5~2.5kHZ 的音频信号,阻抗匹配器推动压电蜂鸣片发声。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。本设计使用的是电磁式蜂鸣器。

  18

  图 3-9 蜂鸣器电路 3.7 按键输入模块 键盘是人与单片机打交道的主要设备。本设计中由于采用的按键数量较少,只有 3 个按键,分别是“设置”、“减”、“加”,故采用了独立键盘的方式。按键的连接图 3-10 所示:

 图 3-10 按键电路 3.8 LED 显示电路 发光二极管简称为 LED。由含镓(Ga)、砷(As)、磷(P)、氮(N)等的化合物制成。当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。

 本设计中采用了 6 颗 LED 灯,3 颗红色和 3 颗绿色,红色代表过高,绿色代表过低,其电路连接如图 3-11 所示:

  图 3-11 LED 电路

  20

 4 软件设计 4.1 程序语言及开发环境

 C 语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到 C 语言,适于编写系统软件、三维、二维图形和动画,具体应用例如单片机以及嵌入式系统开发。

 Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部分组合在一起。

 4.2 程序流程图设计 4.2.1 总体程序流程图设计 本系统的软件流程图如图 4-1 所示,最开始先进行液晶的初始化,包括液晶功能初始化和液晶显示内容初始化,接着是报警值的初始化。然后进入一个循环体,第一个任务是读取温湿度传感器的检测结果,并把测量结果显示在液晶上面。第二个任务是读取光照模块的检测结果,同样的在液晶上面进行显示。第三个任务是判断刚刚读取到的温湿度和光照值是否超出报警范围,如果超出正常范围的话,则蜂鸣器鸣叫报警,并且点亮对应的指示灯。第四个任务是判断设置按键是否被按下,是的话,则进入了报警范围设置。至此完成一轮循环的内容,重新开始任务一进行新一轮的循环。

  开始

  图 4-1 程序流程图 4.2.2 1602 液晶程序设计 液晶开始显示之前,必须先确定一个位置,表示要在哪个地方显示,比如第1 行第 5 列的位置。在完成坐标定位之后就可以开始显示内容了。液晶在显示的时候,是一位一位完成的。比如数字“123”,就会先显示百位的“1”,然后是十位的“2”,最后是个位的“3”。显示字符串的话,也是一样的道理,比如显示“hello”,也是从最开始的字母“h”开始显示,一位一位的完成,直到显示完字母“o”,按键被

 按下? 是 否 检测结果 超限? 液晶初始化 报警值初始化 读取温湿度检测结果 液晶显示温湿度 声光报警 进入报警 范围设置 是 否 结束 读取光照检测结果 液晶显示光照值

  22

 是 显示一个字符 定位行列坐标

 读取温度测量结果 读取湿度测量结果 才完成一次显示任务。要说明的是,每次显示一串字符或一个数字的时候,只需在最开始的时候完成一次定位,之后每显示完一个字符,液晶会自动跳到下一个位置的,无需每个字符都定位一次。

 图 4-2 液晶显示流程图 4.2.3 温湿度 DHT11 传感器程序设计 单片机读取 DHT11 传感器的温湿度测量结果之前,必须先发送一个起始信号给传感器,传感器收到这个起始信号之后,会从低功耗模式被唤醒然后开始测量温湿度结果,接着会把湿度、温度、校验字节依次发给单片机,单片机依次接收,然后计算数据是否传输出错,如果出错了直接忽略这一次的检测结果,没有出错就保存起来,准备送往液晶显示。

 数据显

 示完? 否 开始 结束 发送起始信号 开始

 读取校验字节 计算传输 是否出错 否 保存测量结果 结束 读取检测结果 延时 200 毫秒 发送连续高分辨率采集模式指令

 图 4-3 温湿度传感器程序流程图 4.2.4 光照模块程序设计 单片机读取光照传感器的流程如图 4-4 所示。首先发一个 0x01 给传感器,这是一个让传感器通电的指令。接下来是发一个 0x10,该指令的目的是让传感器进入连续高分辨率采集模式。当传感器收到这个指令之后,就会进行传感器强度的采集,这个过程最长可以达到 180 毫秒,因此此时程序需要进行一个延时,等待传感器测量完成。最后读取传感器的测量结果即可。

 是 丢弃当前数据 发送通电指令 开始

  24

 结束

 图 4-4 光照传感器程序流程图

 5 仿

 真 在实现好软件部分的撰写编译后且没有报错,在 Protues 环境里把 Keil 生成的可执行文件写入到单片机里,点击仿真按钮,系统开始工作,在初始阶段,默认给定 DHT11 的值如图所示:

 此时液晶显示如图:

 由于本系统默认设置的温度上限为 40℃,将 DHT11 温度调至 41℃时,液晶显示如图:

  26

  蜂鸣器开始发声,温度过高的 LED 指示灯也被点亮,如图所示:

 同样,对该系统传感器的湿度分别调到 80%以上、30%以下,相应的报警电路都被激活,因此在硬件测试下获得了与预期一样的功能。

 结

 论 这项设计在运用了单片机技术、传感器技术、C 语言编程等科学知识下完成了基于单片机控制的农业大棚控制监测系统的设计,实现了环境温湿度自动实时监测显示,并且在温湿度过限时发出警报。由于单片机的经济和开发成本低廉,操作简便,因此在农业自动控制领域有很强的实用性,这样可以实现无人管理种植,进一步节省了人力物力。

 谢

  辞 通过这一段时间的努力,本次设计已然完成,首先感谢我的指导老师史成芳老师,在史老师的指导下,我慢慢了解了各种元器件的工作原理,才得以完成本次的设计。其次感谢教授我知识的老师们,正因为你们的教导,才能让我有完成这次设计的基础。最后我要感谢帮助我的同学们,是他们在我困难时给予我鼓励。

 最后,希望在以后的学习和研究中能以更加优异的成绩来答谢所有关心和帮助我的老师和同学们!再次感谢你们!

  28

 参

 考

 文

 献 [1] Dennis Hooijmaijers.Markus Stumptner. Intelligent Information Processing

 III[M].Springer US:2006-06-15.

 [2] 曹绛斌.浅析中国智能家居的现状及发展趋势[J].中国战略新兴产业.2017(32):11-12.

 [3] 杨成慧,王书志,何佑星,殷凤伟.一种基于 STC89C52 的智能窗帘控制系统设计[J].自动化与仪器仪表,2016(06):246-248+250.

 [4] 孙倩.基于单片机和 DS1302 的简易时钟设计[J].数字技术与应

 用.2017(03):206-207.

 [5] 陈海宴.51 单片机原理及应用[M].北京航空航天大学出版社.2010.3.

 [7] 安红霞.基于 AT89S52 单片机的 1602 型液晶屏显示技术研究[J].牡丹江师范学 院学报(自然科学版),2014(03):23-24.

 [8] 李小龙. LCD 对比度提升的动态背光控制技术研究与设计[D].中国海洋大学,2015.4.

 [9] 张继峰.实时时钟芯片 DS1302 在教学中的研究与应用[J].黑龙江科技信息,2017(05):12.

 [10] 刘宇超.基于液晶显示屏的数字电子时钟设计[J].时代农机.2017.44(12):114-116.

 [11] 杜洋.A/D 转换芯片 ADC0832 的应用[J].电子制作.2006(01):44-46.

 [12] 谢正刚.步进电机的自动化控制探究[J].企业导报,2015(11):192-209.

 [13] 花同.步进电机控制系统设计[J].电子设计工程,2011,19(15):13-15. [14] 赵亮.跟我学 51 单片机(七)——LCD1602 液晶显示模块[J].电子制作,2011(07):74-77.

 [15] 胡彩霞.张蒙蒙.顾芸.仿真软件在单片机教学中的应用[J].课程教育研究,2018(01):206-207.

  30

 附录 A 主程序代码 #include <reg52.h>

 #include <intrins.h>

 #define uchar unsigned char

  #define uint

 unsigned int

 sfr ISP_DATA

 = 0xe2;

  sfr ISP_ADDRH = 0xe3;

  sfr ISP_ADDRL = 0xe4;

  sfr ISP_CMD

  = 0xe5;

  sfr ISP_TRIG

 = 0xe6;

  sfr ISP_CONTR = 0xe7;

 sbit LcdRs_P

  = P2^7;

  sbit LcdRw_P

  = P2^6;

 sbit LcdEn_P

  = P2^5;

  sbit DHT11_P

  = P1^0;

  sbit SDA_P

  = P3^5;

  sbit SCL_P

  = P3^6;

  sbit LedTH_P

  = P1^2;

 sbit LedTL_P

  = P1^1;

 sbit LedHH_P

  = P1^4;

 sbit LedHL_P

  = P1^3;

 sbit LedLH_P

  = P1^6;

 sbit LedLL_P

  = P1^5;

 sbit Buzzer_P

 = P2^0;

  sbit KeySet_P

 = P3^2;

 sbit KeyDown_P = P3^3;

 sbit KeyUp_P

  = P3^4;

  uchar temp;

  uchar humi;

 uint

 light;

  uchar AlarmTL;

  uchar AlarmTH;

  uchar AlarmHL;

  uchar AlarmHH;

  uint

 AlarmLL;

  uint

 AlarmLH;

 /*********************************************************/ // 单片机内部 EEPROM 不使能 /*********************************************************/ void ISP_Disable() {

  ISP_CONTR = 1;

 ISP_ADDRH = 1;

 ISP_ADDRL = 1;

 }

 /*********************************************************/ // 从单片机内部 EEPROM 读一个字节 /*********************************************************/ unsigned char ReadE2PROM(unsigned int addr) {

  ISP_DATA = 0x08;

  ISP_CONTR = 0x83;

  ISP_CMD = 0x01;

  32

 ISP_ADDRH = (unsigned char)(addr >> 8);

  ISP_ADDRL = (unsigned char)(addr & 0xff);

 ISP_TRIG = 0x66;

  ISP_TRIG = 0x99;

  _nop_();

  ISP_Disable();

 return ISP_DATA;

 }

 /*********************************************************/ // 从单片机内部 EEPROM 写一个字节 /*********************************************************/ void WriteE2PROM(unsigned int addr, unsigned char dat) {

  ISP_CONTR = 0x83;

  ISP_CMD = 0x02;

 ISP_ADDRH = (unsigned char)(addr >> 8);

 ISP_ADDRL = (unsigned char)(addr & 0xff);

 ISP_DATA = dat;

 ISP_TRIG = 0x46;

  ISP_TRIG = 0xb9;

  _nop_();

  ISP_Disable();

  }

 /*********************************************************/ // 从单片机内部 EEPROM 扇区擦除 /*********************************************************/ void SectorErase(unsigned int addr) {

 ISP_CONTR = 0x83;

 ISP_CMD = 0x03;

 ISP_ADDRH = (unsigned char)(addr >> 8);

 ISP_ADDRL = (unsigned char)(addr & 0xff);

  ISP_TRIG = 0x46;

  ISP_TRIG = 0xb9;

  _nop_();

  ISP_Disable();

  }

 /*********************************************************/ // 延时 X*ms 函数 /*********************************************************/ void DelayMs(unsigned int ms) {

  unsigned int i, j;

 for(i=0; i<ms; i++)

 for(j=0; j<112; j++); }

 /*********************************************************/ // 1602 液晶写命令函数,cmd 就是要写入的命令 /*********************************************************/ void WriteLcdCmd(ucha...

推荐访问:单片机 大棚 控制
上一篇:东莞纤维项目实施方案样例范文
下一篇:2篇,新形势下经济双循环发展与思考&新形势下人大监督工作存问题及对策建议思考

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有