2023年12月23日发(作者:)

高等教育自学考试本科毕业论文

基于单片机大棚温湿度监控系统设计

考生姓名:王虎山 准考证号:

专业层次:本科院(系):机械与动力工程学院

指导教师: 蒋祥龙 职 称: 讲师

重庆科技学院

二O一七年五月十日

高等教育自学考试本科毕业论文

基于单片机大棚温湿度监控系统设计

考生姓名: 王虎山

准考证号:

专业层次: 本科

指导教师: 蒋祥龙

院(系): 机械与动力工程学院

重庆科技学院

二O一七年五月十日

重庆科技学院高等教育自学考试本科毕业论文 中文摘要

摘要

本次设计是采用MSC-51系列单片机中的AT89S51和DHT11构成的低成本的温湿度的检测控制系统来检测大棚温湿度。单片机AT89S51是一款低消耗、高性能的CMOS8位单片机,由于它强大的功能和低价位,因此在很多领域都能运用到它。DHT11温湿度传感器是一款含有已校准数字输出的温湿度复合传感器,传感器包括一个电阻式感湿原件和一个NTC测温元件,该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点,其设计主要包括硬件电路的设计和系统软件的设计。

硬件电路主要包括单片机、温湿度传感器、显示模块、报警器以及控制设备等5部分,其中由DHT11温湿度传感器及1602字符型液晶模块构成系统显示模块;测温湿度控制电路由温湿度传感器和预设温度值比较报警电路组成;用户根据需要预先输入预设值,当实际测量的温湿度不符合预设的温湿度标准时,发出报警信号(蜂鸣器蜂鸣),启动相应控制。

软件部分包括了主程序,显示子程序,测温湿度子程序。

关键词:AT89S51DHT1温湿度传感器

I

重庆科技学院高等教育自学考试本科毕业论文 英文摘要

Abstract

Microcontroller AT89S51 is a low consumption, high performance CMOS8 bit

e of its powerful features and low price, so it is used in many

11 temperature and humidity sensor is a temperature and humidity

combined sensor contains a calibrated digital output, the sensor consists of a resistor

in the original sense of wet and a NTC temperature measurement product

has many advantage,such as excellent quality, fast response, strong anti-jamming

capability . This design is fromed by the AT89S51 in MSC-51 Series and DHT11

constitute which is a low-cost temperature and humidity measurement and control

system. The design includes the design of hardware circuit design and system

software.

The hardware has Five are a microcontroller, temperature and

humidity sensors,display module, alarm and control equipment. The 1602-character

LCD module constitute the system display temperature and humidity

control circuit by the temperature and humidity sensors and preset temperature alarm

ing to the need of pre-enter the default value, when the actual

measurement of the temperature humidity does not conform the preset temperature

and humidity standards, send the alarm signal (buzzer will beep), and start the

corresponding control.

The software part includes the main program, the display routines, temperature

and humidity subroutine.

Keywords:AT89S51DHT11Temperature and humiditymeasurementTemperature

and humidity control

II

重庆科技学院高等教育自学考试本科毕业论文 目录

目录

摘要 ...................................................................................................... I

Abstract .............................................................................................. II

第1章 绪论 ........................................................................................ 1

1.1设计背景..................................................................................................................... 1

1.2设计内容..................................................................................................................... 1

1.3设计目的及意义 .......................................................................................................... 1

1.4国内外发展现状 .......................................................................................................... 2

第2章 设计任务分析及方案论证...................................................... 3

2.1设计过程及其工艺要求设计 ....................................................................................... 3

2.2设计总体方案及其论证 ............................................................................................... 3

第3章 系统的硬件设计 ..................................................................... 5

3.1主控制电路和测温时控制电路 .................................................................................... 5

3.1.1测量部分温湿度传感器 ................................................................................................ 6

3.1.2电气特性 ........................................................................................................................ 8

3.1.3引脚说明 ........................................................................................................................ 8

3.1.4封装信息 ........................................................................................................................ 9

3.2主要模块的电路 .......................................................................................................... 9

3.2.1系统的蜂鸣器电路 ........................................................................................................ 9

3.2.2晶振电路 ...................................................................................................................... 10

3.2.3温湿度设置(按键)电路 .......................................................................................... 11

3.2.4显示电路 ...................................................................................................................... 11

3.2.5传感器电路 .................................................................................................................. 12

3.2.6复位电路 ...................................................................................................................... 12

3.3硬件实施控制 ........................................................................................................... 13

3.4设备运行................................................................................................................... 13

3.5控制设备: ............................................................................................................... 14

第4章 系统软件设计 ..................................................................... 15

4.1系统流程图 ............................................................................................................... 15

4.2按键流程图 ............................................................................................................... 16

重庆科技学院高等教育自学考试本科毕业论文 目录

4.3 Protues运行结果 .................................................................................................... 17

结 论 ............................................................................................... 18

致 谢 ............................................................................................... 19

参考文献 ........................................................................................... 20

论文原创性声明 ................................................................................ 21

附 录一:程序 .................................................................................. 22

重庆科技学院高等教育自学考试本科毕业论文 1绪论

第1章 绪论

1.1设计背景

植物的生长都是在一定的环境中进行的,其在生长过程中受到环境中各种因素的影响,其中对植物生长影响最大的环境中的温度和湿度。环境中昼夜的温度变化大,其对植物生长极为不利。因此必须对环境的温度和湿度进行监控和控制,使其适合植物的生长,提高其产量和质量。本系统就是利用价格便宜的一般电子器件来设计一个参数精度高,控制方便,性价比高的应用于农业种植生产的温室大棚温室度测控系统。

1.2设计内容

本系统的设计硬件主要包括;主要是单片机,监测系统,显示电路,A/D电路,报警电路等。利用传感器测量大棚内的温湿度经过信号处理,将传感器测得得数据传送至控制系统,与预设的农作物最适合生长的温湿度值的上下限进行对比,并通过显示电路将测得得温湿度进行实时显示。如果不同作物的适合生长的温度不一样,可以通过键盘电路修改预设值。控制系统根据比较的结果对调节系统发出相应的指令,启动相应的调节设备如喷水机,吹风机,加热器,降温等,调节大棚内的温湿度的状况。如果测得得数据超过了预设值的上下限,就会发出报警。这样就实现了对大棚温湿度的自动控制,其内容如下:

1. 进行温湿度控制系统的整体研究与设计。

2. 利用键盘设置温湿度的上下限值。

3. 利用数字温度传感器DHT11测量大棚内的温湿度。

4. 利用LCD对温湿度进行实时显示。

5. 当大棚温湿度值超出设定的范围时,系统可自动报警,并传输驱动信号控制继电器对大棚温湿度进行调节。

1.3设计目的及意义

本课题旨在改善这种传统模式下过时的大棚温室生产方式。传统的环境监测体系大多使用有线传输数据,这就导致安装拆卸的不方便、故障时维修难度大和维护成本高的缺点。另外,以往的传感器在采集数据时的灵敏度过低,易损坏。针对这种难题,本课题设计了一套全新的大棚控制系统,运用无线传感网络解决有线传输的问题,同时使用更先进的温湿度传感器来代替以往的传感器,同时新 1

重庆科技学院高等教育自学考试本科毕业论文 1绪论

增了上位机控制系统,摆脱以往动手控制的繁琐,直接电脑控制升温、增除湿,实现操作简便灵活的目标,使整个系统更加智能化。但由于毕业设计的实际情况,本设计只选择对温度、湿度这两个量的测量和控制。

1.4国内外发展现状

美国是将计算机应用于大棚和管理最早,最多的国家之一。美国开发的大棚计算机控制与管理系统可以根据作物的特点和生长所需要的条件,对大棚内的光照,温度,湿度等诸多因素进行自动控制。这种自动控制系统需要种植者输入温室作物生长所需的环境和目标参数,计算机根据传感器的实际测量值与事先设定的目标进行比较,以决定大棚温湿度的控制过程,安照相应的机构进行加热,降湿或者浇水,通风等;目前,我国绝大部分自主开发的大棚温湿度控制或者进口的国外设备都属于这种系统。

虽然这种监控控制系统实现了自动化,适合规模化生产,提高了劳动者的生产效率,通过改变大棚温湿度的设定目标,可以自动的对大棚内的温湿度进行调节,但是这种调节对作物的生长来说还是相对滞后的,难以介入作物生长的内在规律,所以在这种监控系统和实践的基础上,温湿度控制向着适合不同作物生长的智能化控制发展。

国内外大棚正致力于高科技发展,遥控技术,网络技术,控制局域网已逐渐应用于大鹏的管理和控制中,近几年各国温度控制技术提出建立大棚行业标准,朝着网络化,大众化,大规模化,无人化的方向发展的思路。

2

重庆科技学院高等教育自学考试本科毕业论文 2设计任务分析及方案论证

第2章 设计任务分析及方案论证

本章详细介绍了本次设计的主要任务,以及对于所要实现的内容加以分析,同时详细的介绍了主要元器件的选择,以及各自的特性。

2.1设计过程及其工艺要求设计

一个以单片机为核心的温湿度控制系统,需要实现的功能为:

①能够准确的显示当前的温度以及湿度。温度检测的范围0℃-60℃,测温精度:±2℃;湿度检测范围20%-100%RH,测湿精度:±5%RH。

②能够自主调节当前需要温度以及湿度的预设温湿度值,在系统上面有调节按钮,可随时根据需要增加或者减少预设值。

③一旦发现超过了预设值,蜂鸣器蜂鸣报警,控制设备立即启动,立即调控温湿度。

④报警方式为三极管驱动的蜂鸣音报警。

⑤系统的显示方式均为四位显示,采用LCD显示。

2.2设计总体方案及其论证

本设计要实现的功能是:实时显示当前环境的温湿度,并且允许用户设定温湿度标准值,当环境温湿度超过或低于标准值时,系统会以蜂鸣器鸣响的方式进行报警提示,并且控制设备自启动,待达到标准值时,蜂鸣器停止鸣响,控制设备停止运行,系统正常工作,工作指示灯亮。

(1)温度监控:对温室温度进行测量和控制并反映在显示器上。

(2)湿度监控:对温室湿度进行测量和控制反映在显示器上。

(3)显示:LCD就地显示此时此刻温湿度值,摆放在生产现场用于显示当前的温湿度。

依据功能设定,本系统主要分为以下三个模块:

(1)温湿度采集模块

(2)数据处理模块

(3)用户交互模块

其中温湿度采集模块使用的是DHT11数字温湿度传感器,它使用单总线方式,接口简单,而且无需另外校准。分辨率为8bit,完全能够满足日常环境温湿度 3

重庆科技学院高等教育自学考试本科毕业论文 2设计任务分析及方案论证

的检测要求。

数据处理模块使用的是AT89S51单片机,其完成温湿度数据的采集、运算和逻辑控制的功能。

用户交互模块主要由按键、1602点阵液晶、蜂鸣器和控制器构成。其中按键用于用户设定温湿度准确值,1602用于数据显示,蜂鸣器用于提示用户,控制器用于调节控制不符合要求的温、湿度。按照系统的设计功能所要求的,温湿度监控系统原理图如下图2-1所示:

图2-1温湿度监控系统原理图

单片机作为主控制器,主要负责处理由温湿度传感器送来数据,并把处理好的数据送向显示器模块,数据温湿度传感器主要用来采集周围的环境参数,并把所采集到得数据送向单片机,按键电路主要是用来完成单片机的复位操作和温湿度初始值的设定。蜂鸣器电路就是用三极管来实现的,用来判断周围的温度或者湿度是否超出设定数值,控制设备等候指令,当蜂鸣器响起,温、湿度不在标准范围内,控制设备自行启动,直到温、湿度正常,显示电路主要用来显示当前的温湿度。

4

重庆科技学院高等教育自学考试本科毕业论文 3系统的硬件设计

第3章 系统的硬件设计

单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能,硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起,这种设计方法可以降低系统设计的复杂性,本系统主要硬件设计包括电源电路、蜂鸣器电路、晶振电路,LCD显示电路以及温湿度传感器电路。

3.1主控制电路和测温时控制电路

本次硬件的核心就是AT89S511,其他的外围电路都是围绕它所设计的。数字温湿度传感器的DHT11的DATA口连接单片机AT89S51的P3.0口。显示电路就是把LCD1602和单片机的P1口分别相连,当温度或湿度高于预设值的时候蜂鸣器蜂鸣报警,代表控制系统的指示灯常亮,增加单片机的输出能力,增加单片机的输出电流,故使用电阻排来完成。本系统采用的是上电复位,充电之后,RST被拉至高电平,单片机进入工作状态。

AT89S51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器构成自激振荡器,他们与电容C1,C2接在放大器的反馈电路中构成并联震荡电路,虽然电容没有一个严格的要求,但是电容的大小会轻微影响振荡频率的高低、温度稳定性以及振荡器工作的稳定性。

5

重庆科技学院高等教育自学考试本科毕业论文 3系统的硬件设计

图3-1 系统电路原理图

3.1.1测量部分温湿度传感器

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的温湿度传感和数字模块采集技术,具有很高的稳定性和可靠性,DHT11传感器内含一个NTC测温和一个电阻式感湿元件,并与一个8位的高性能单片机相连接,在精确的湿度校验室中DHT11传感器进行过校准,以程序的形式校准系数储存在0TP内存中,检测信号的时候,在处理过程中传感器内部要调用这些校准系数,采用单线制的串行接口,使系统集成可以有较低的功耗,而且更加简单快速,信号传输距离超过20米,作为一个数字温湿度传感器DHT11具有响应快速、抗干扰强、性价比高等优点,它的性能指标如下:湿度测量范围为20%~90%RH;湿度测量精度为±5%RH;温度测量范围为0~50 ℃,温度测量精度为±2℃,工作电压3.0~5.5 V,相应时间<5S,DHT1l采用4针单排引脚封装, 传感器通电后,需要等待1s,这是因为要越过不稳定的状态,在此期间不需发送指令,电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。

6

重庆科技学院高等教育自学考试本科毕业论文 3系统的硬件设计

图3-2典型的应用电路

电源引脚

四条引角中有两条是电源引脚,有两条是输出数据的引脚,你只需要给他供上额定电压,然后再他的输出引脚采集信号就可以了,输出信号如果是模拟量的话,通过A/D芯片,将模拟量转换为数字信号,然后传送给单片机。DHT11是数字传感器,所以不需要进行模数的转换。

图3-3 DHT11实物图

1)DHT11温湿度传感器产品参数:

相对湿度

分 辨 率:16Bit

重 复 性:±1%RH

精 度:25°C ±5%RH

互 换 性:可完全互换

响应时间:1/e(63%)25°C 6s

1m/s 空气 6s

迟 滞:<±0.3%RH

长期稳定性:<±0.5%RH/yr

温度

分 辨 率:16Bit

7

重庆科技学院高等教育自学考试本科毕业论文 3系统的硬件设计

重 复 性:±0.2°C

量程范围:25°C ±2°C

响应时间:1/e(63%) 10s

电气特征

供 电:DC 3.5-5.5V

供电电流:测量0.3mA 待机60μA

采样周期:次 大于2秒

引脚说明

(1)VDD 供电3.5-5.5V

(2)DATA 串行数据,单总线

(3)NC 空脚

(4)GND 接地,电源负极

3.1.2电气特性

VDD=5V,T = 25℃

表3-1电气特性(注:采样周期间隔不得低于1秒钟)

参数

供电

供电电流

条件

DC

测量

平均

待机

采样周期 秒

min

3

0.5

0.2

100

1

typ

5

max

5.5

2.5

1

150

单位

V

Ma

Ma

Ua

3.1.3引脚说明

表3-2DHT11引脚说明

pin

1

2

3

4

名称

VDD

DATA

NC

GND

注释

供电3-5.5V

串行数据,单总线

空脚,悬空

接地,电源负极

注:引脚2在接单片机时,同时要在数据线接一上拉电阻,接到电源上

8

重庆科技学院高等教育自学考试本科毕业论文 3系统的硬件设计

3.1.4封装信息

图3-4 DHT11的封装信息

3.2主要模块的电路

3.2.1系统的蜂鸣器电路

微型计算机控制系统中,为了安全起见,对于一些重要的参数或系统,都设定有紧急状态报警系统,以便于提醒操作人员注意,或者采取紧急措施,本设计采用把计算机采集的数据进行数据处理、标度变换、数字滤波之后,与该参数上下限与设定值进行比较,不符合标准值则进行报警,否则就作为采样的正常值,进行显示。

本设计采用峰鸣音报警电路。如图所示。蜂鸣器额定电流≤30Ma,而对于AT89S51单片机,P3口的灌电流为15mA,由此可见,仅靠单片机的P3口电流是不能驱动蜂鸣器的,必须使用晶体管放大电路,为了使单片机的功率更小,所以使用PNP型晶体管,当外部环境的温度或者湿度超过预设值的时候,基级变为低电平,蜂鸣器导通鸣叫。

9

重庆科技学院高等教育自学考试本科毕业论文 3系统的硬件设计

图3-5 蜂鸣器实物图 图3-6 蜂鸣器电路

3.2.2晶振电路

单片机系统都有晶振,在单片机系统中晶振的作用非常大,全称叫做晶体振荡器,它结合单片机内部电路产生所需时钟频率,单片机晶振提供的时钟频率越高,那么单片机的运行速度就会越快,单片机的一切指令执行都是建立在单片机晶振所提供的时钟频率。在通常的工作条件下,普通的晶振频率的绝对精度可以达到百万分之五十,高级晶振精度更高,有些晶振还可以由外加的电压在一定范围内调整频率,称为压榨振荡器,在共振的状态下晶振用一种能把电能和机械能相互转化的晶体工作,以提供稳定,精确的单频振荡。

单片机晶振的作用是为系统提供及本周的时钟信号,通常一个系统共用一个晶振,以便于各部分保持同步,有些通讯系统的基频和射频使用不同的晶振,而是通过电子调整频率的方法保持同步。晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率,可以用于同一个晶振项链的不同锁相环来提供的。单片机AT89S51的晶振电路采用无源晶振,微调电容取22uf。

10

重庆科技学院高等教育自学考试本科毕业论文 3系统的硬件设计

图3-7晶振电路

3.2.3温湿度设置(按键)电路

图3-8 按键电路

3.2.4显示电路

在日常生活中,我们对液晶显示器并不陌生,它已作为很多电子产品的通过器件,比如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。

显示模块选用1602字符型液晶模块,它是目前工控系统中使用最广泛的液 11

重庆科技学院高等教育自学考试本科毕业论文 3系统的硬件设计

晶屏之一,由于它显示的质量高,电路图如图3-9所示,1602字符型液晶模块是点阵型液晶,驱动方便,经过编程后显示内容多样化

图3-9 显示电路

3.2.5传感器电路

DHT11是数字型温湿度传感器,可直接以数字方式传输所采集的当前环境温湿度,DHT11采用的是单总线通信,因此只需将单片机的一个I/O端口与DHT11的通信接口连接就可以实现数据的采集和传送,相对于其他电路来说比较简单。

图3-10传感器电路

3.2.6复位电路

本次设计采用的是上电复位,当RST引脚上出现了两个周期以上的高电平就 12

重庆科技学院高等教育自学考试本科毕业论文 3系统的硬件设计

会触发内部复位,这里的EA端与复位电路无关,由于数据都放在了内部存储器,所以连接EA只是直接拉高引脚。

图3-11 复位电路

3.3硬件实施控制

图3-12正常工作LCD1602显示

3.4设备运行

本次设计主要是能够实时显示出当前确切的温湿度,并且在高于预设值的时候能够发出蜂鸣。一旦接通电源,工作指示灯常亮,蜂鸣器首先蜂鸣,表示系统正常运行。接着LCD初始化,采用八位的数据端口,两行显示,其中第一行显示的湿度预设值,根据键盘我们可以加减数值,第二行显示的是实时的温湿度值, 13

重庆科技学院高等教育自学考试本科毕业论文 3系统的硬件设计

在程序设计中,分别定义温湿度参数,根据数据转换过来的数值,判断是否超过了预设值,本次设计温度初试值设定为32℃,湿度初始设定为34%,等待传送的数值连续20次都超过预设值的话,蜂鸣器便会蜂鸣警报,1602显示当前的温湿度值,温湿度不在标准范围内,温度和湿度的控制措施灯亮,表示对温度和湿度不在范围内采取相应措施。采取措施后,传输数据正常,再次循环判断,如果没有超过预设值,蜂鸣器不会蜂鸣,1602正常显示,不会启动控制措施,也同样再次循环。

按键说明:左起第一个是功能键,按一次进入报警温度设置此时出现H 40,进行上限温度设置,此时设置H高温报警温度并闪烁显示;按第二次,进行下限温度设置此时出现L 03,此时设置L低温报警温度并闪烁显示;再按一次即第三次,则恢复正常的温度显示界面。第二个按键是增加键,可以对上限温度或下限温度进行增大调整第三个按键是减小键,可以对下限温度或下限温度进行减小调整;湿度同理。这样便可设置好温、湿度的上、下限。

3.5控制设备:

采用设备:

(1)风扇或者排湿器:负责系统的降温工作。

风扇可以是USB借口的或者与电源相连接的,根据本设计需要,由于在大棚内使用,所以用电源连接的风扇较为适合。小风扇材料的选择主要注意它的耐性和稳定性,要选择不变形的塑料材质,苯乙烯聚合物是一种热塑性树脂,无色、无味,而且有光泽的透明固体,具有耐化学腐蚀性、耐水性和优良的电绝缘性和高频点介性。

14

重庆科技学院高等教育自学考试本科毕业论文 4系统软件设计

第4章 系统软件设计

软件设计是本次设计中不可缺少的环节,贯穿了整个毕业设计,是本次设计能够完成的最重要的环节之一。

4.1系统流程图

图4-1系统软件流程图

15

重庆科技学院高等教育自学考试本科毕业论文 4系统软件设计

4.2按键流程图

图4-2 按键检测的流程图

16

重庆科技学院高等教育自学考试本科毕业论文 4系统软件设计

4.3 Protues运行结果

17

重庆科技学院高等教育自学考试本科毕业论文 结论

结 论

本文设计的是大棚的温湿度监测报警、控制系统。由高性价比单片机对数字温湿度传感器控制,通过温、湿度传感器,实现对温湿度数据采集,并对数据处理、LCD1602显示屏显示即时温、湿度值。当温湿度数据超出设定温、湿度值时,由单片机驱动报警装置,实现现场报警功能,控制系统自行启动,调节不在范围内的温、湿度,使其恢复正常。

首先,介绍了设计的核心组成部分单片机AT89S51的的基本构成和原理,简要的说明了单片机的最小系统,中断系统,复位电路和时钟电路。然后介绍了显示部分LCD1602的各个引脚和指令说明,为下面的编程做准备。

其次,介绍了本次设计的传感器:DHT11温湿度传感器。然后给出了主要模块电路的结构,在硬件连接以后,初步的硬件运行结果,以实物图的形式进行了说明。介绍了控制温、湿度的设备,在根据不同环境下的应用和选择。

最后,说明了用到的软件,给出了总体的原理图和流程图和Proteus运行结果,以便更好的理解。

最后程序检查正常,焊接成品,硬件运行正常,满足了初步设计要求,达到了大棚温、湿度控制的目的。在设计中还有不足的部分,在现场控制时,保证传感器不受条件因素的影响是很重要的,由于研究时间和条件的限制,大棚温、湿度还有许多地方需要深入研究。 18

重庆科技学院高等教育自学考试本科毕业论文 致谢

致 谢

四年的大学生活接近尾声,我的毕业设计也顺利的完成了,这里首先向我的指导老师蒋祥龙老师表示最诚挚的感谢,同时也感谢那些帮助过我的同学们。

在本次的毕业设计中蒋老师给我提供了极大的帮助,首先在一开始的选题中我便遇到了难题,由于当时选题的时候过于疏忽大意,没有认真的加以分析,所以走了很多弯路,蒋老师便告诉我,最重要的就是找对方向找准目标,选择一个自己擅长和喜欢的方向不仅能够促使我们积极的完成设计,而且对于自己来说也是充满着兴趣,这样做出来的东西会更加完美和轻松,其次,在毕业设计的过程中,蒋老师不厌其烦的为我们讲解了毕业设计中可能出现的问题,并为我们提供了完整的毕业设计模板参考,无论我们遇到什么样的问题,他总能很耐心的为我们讲解,同时他每个周一要求见面一次,督促我们抓紧时间完成毕业设计,每次见面他都要求我详解上周所做的东西以及自己下周要做的东西,有问题或者不合理的地方他便为我指出来,加以指导。蒋老师认真负责的态度让我倍受感激。同时在此也感谢其他同学,解决了许多我在毕业设计中遇到的问题,特别是刚开始软件的学习中,都给予了我很大的帮助。在此向所有毕业设计的过程中给予我帮助的老师们和同学们最诚挚的谢意。 19

重庆科技学院高等教育自学考试本科毕业论文 参考文献

参考文献

[1] 孙宏宇.牛舍环境及供料自动控制系统的研究[D].吉林农业大学,2008

[2] 汤武辉.Proteus仿真软件与单片机实验教学[N].长江大学学报(自然版),2010

[3] 王剑,朱涛,李冬.protel 99se电路仿真在电子实验教学中的应用[J].2010

[4] 王国防.基于nRF24E1的数据采集及无线传输系统的研究[D].河北科技大学,2009

[5] 张冬林,李鑫,戴梅.基于DHT11的低成本蚕室温湿度自动控制系统设计[J].现代农业科技,2010

[6]徐春河.浅谈AT89S51[J].制造业自动化,2010.

[7] 薛玲,孙曼,张志会,夏莉丽,魏希文.基于单片机AT89S51的温湿度控制仪[J].2010

[8] 吴汉清.常用的典型单片机资料[J].无线电,2007

[9] 叶健斌.基于单片机嵌入式系统的GPS应用[J].电子质量,2008

[10] 王静.通用库房温湿度测控系统[D].中国海洋大学,2009

[11]刘宝元,张玉虹,姜旭,段存丽.基于单片机的温湿度监控系统设计[J].国外电子测量技术,2009

[12] 陈汝全.实用微机与单片机控制技术[M].电子科技大学出版社.2005 20

重庆科技学院高等教育自学考试本科毕业论文 论文原创性声明

论文原创性声明

本人以信誉声明:所呈交的毕业论文是在导师的指导下进行的设计(研究)工作及取得的成果,论文中引用他(她)人的文献、数据、图件、资料均已明确标注出,论文中的结论和结果为本人独立完成,不包含他人成果及为获得重庆科技学院或其它教育机构的学位或证书而使用其材料。与我一同工作的同志对本设计(研究)所做的任何贡献均已在论文中作了明确的说明并表示了谢意。

毕业论文作者(签字):签字日期: 年 月

21

重庆科技学院高等教育自学考试本科毕业论文 附录一:程序

附 录一:程序

//程序头函数

#include

//显示函数

#include "intrins.h"

//宏定义

#define uint unsigned int

#define uchar unsigned char

//管脚声明

sbit LED_wendu = P2^5; //温度上限值操作端口,报警灯吸合继电器;

sbit LED_wendu_L = P2^4; //温度下限报警灯

sbit LED_humi = P2^2; //湿度上限报警灯

sbit LED_humi_L = P2^0; //湿度下限报警灯

sbit baojing = P3^2; //蜂鸣器接口

//按键

sbit Key1=P1^1; //设置键

sbit Key2=P1^5; //加按键

sbit Key3=P1^6; //减按键

sbit DHT11=P1^0; //DHT11

signed char w; //温度值全局变量

uint c; //温度值全局变量

uchar temp; //用于读取ADC数据

uchar yushe_wendu=60; //温度预设值

uchar yushe_humi=80; //湿度预设值

uchar yushe_wendu_L=15; //温度预设值

uchar yushe_humi_L=10; //湿度预设值

//按钮模式|

uchar Mode=0;

uchar U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;

uchar U8FLAG,U8comdata;

uchar U8count,U8temp;

uchar

U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;

//软件延时函数

void delay(uint z) //延时函数大约延时z ms

{

22

重庆科技学院高等教育自学考试本科毕业论文 附录一:程序

uint i,j;

for(i=0;i

for(j=0;j<121;j++);

}

void Delay_Ms(uint ms)

{

uint i,j;

for(i=ms;i>0;i--)

for(j=112;j>0;j--);

}

/*******************************************************************************************************

LCD1602相关命令

********************************************************************************************************/

//LCD管脚声明(RW引脚实物直接接地,因为本设计只用到液晶的写操作,RW引脚一直是低电平)

sbit LCDRS = P2^7;

sbit LCDEN = P2^6;

//初始画时显示的内容

uchar code Init1[]="TA= L H ";

uchar code Init2[]="RH= % L % H %";

//LCD延时

void LCDdelay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=10;y>0;y--);

}

//写命令

//该延时大约100us(不精确,液晶操作的延时不要求很精确)

23

重庆科技学院高等教育自学考试本科毕业论文 附录一:程序

void write_com(uchar com)

{

LCDRS=0;

P0=com;

LCDdelay(5);

LCDEN=1;

LCDdelay(5);

LCDEN=0;

}

//写数据

void write_data(uchar date)

{

LCDRS=1;

P0=date;

LCDdelay(5);

LCDEN=1;

LCDdelay(5);

LCDEN=0;

}

/*1602指令简介

write_com(0x38);//屏幕初始化

write_com(0x0c);//打开显示无光标无光标闪烁

write_com(0x0d);//打开显示阴影闪烁

write_com(0x0e);//打开显示显示下划线

write_com(0x0f);//打开显示阴影闪烁,显示下划线

*/

//1602初始化

void Init1602()

{

uchar i=0;

write_com(0x38);//屏幕初始化

write_com(0x0c);//打开显示无光标无光标闪烁

write_com(0x06);//当读或写一个字符是指针后一一位

write_com(0x01);//清屏

write_com(0x80);//设置位置

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

{

write_data(Init1[i]); //显示数组1的数据

}

write_com(0x80+5);

write_data(0xdf);//°

write_com(0x80+10);

write_data(0xdf);//°

24

重庆科技学院高等教育自学考试本科毕业论文 附录一:程序

write_com(0x80+15);

write_data(0xdf);//°

write_com(0x80+0x40);//设置位置

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

{

write_data(Init2[i]); //显示数组2的数据

}

}

void Display_1602(yushe_wendu,yushe_yanwu,yushe_wendu_L,yushe_yanwu_L,c,temp)

{

}

//设置最高温度值

write_com(0x80+13);

write_data(0x30+yushe_wendu/10);

write_data(0x30+yushe_wendu%10);

//设置最低温度值

write_com(0x80+8);

write_data(0x30+yushe_wendu_L/10);

write_data(0x30+yushe_wendu_L%10);

//设置最高湿度值

write_com(0x80+0x40+13);

write_data(0x30+yushe_yanwu%100/10);

write_data(0x30+yushe_yanwu%10);

//设置最低湿度值

write_com(0x80+0x40+8);

write_data(0x30+yushe_yanwu_L%100/10);

write_data(0x30+yushe_yanwu_L%10);

//时时温度

write_com(0x80+3);

write_data(0x30+c%100/10);

write_data(0x30+c%10);

//时时湿度

write_com(0x80+0x40+3);

write_data(0x30+temp%100/10);

write_data(0x30+temp%10);

25

重庆科技学院高等教育自学考试本科毕业论文 附录一:程序

//按键处理函数

void Key()

{

//模式选择

if(Key1==0) //设置按键

{

while(Key1==0);

if(Mode>=5) Mode=0;

else

{

Mode++; //模式加一

switch(Mode) //判断模式的值

{

case 1://调温度上限值模式

{

write_com(0x80+12);//为1时温度阀值的位置闪烁

write_data('-');

}

write_com(0x80+0x40+12);//为2时湿度阀值的位置闪烁

write_data('H');

write_com(0x80+7);//为1时温度阀值的位置闪烁

write_data('L');

write_com(0x80+0x40+7);//为2时湿度阀值的位置闪烁

write_data('L');

break; //执行后跳出switch

case 2://调湿度上限值模式

{

write_com(0x80+0x40+12);//为2时湿度阀值的位置闪烁

write_data('-');

write_com(0x80+12);//为1时温度阀值的位置闪烁

write_data('H');

write_com(0x80+7);//为1时温度阀值的位置闪烁

write_data('L');

write_com(0x80+0x40+7);//为2时湿度阀值的位置闪烁

write_data('L');

break;

}

case 3://调温度下限值模式

{

write_com(0x80+7);//为1时温度阀值的位置闪烁

write_data('-');

write_com(0x80+12);//为1时温度阀值的位置闪烁

write_data('H');

write_com(0x80+0x40+12);//为2时湿度阀值的位置闪烁

26

重庆科技学院高等教育自学考试本科毕业论文 附录一:程序

}

}

}

}

write_data('H');

write_com(0x80+0x40+7);//为2时湿度阀值的位置闪烁

write_data('L');

break; //执行后跳出switch

case 4://调湿度下限值模式

{

write_com(0x80+0x40+7);//为2时湿度阀值的位置闪烁

write_data('-');

}

write_com(0x80+12);//为1时温度阀值的位置闪烁

write_data('H');

write_com(0x80+0x40+12);//为2时湿度阀值的位置闪烁

write_data('H');

write_com(0x80+7);//为1时温度阀值的位置闪烁

write_data('L');

break;

case 5: //当模式加到3时

{

write_com(0x38);//屏幕初始化

write_com(0x0c);//打开显示无光标无光标闪烁

write_com(0x80+12);//为1时温度阀值的位置闪烁

write_data('H');

write_com(0x80+0x40+12);//为2时湿度阀值的位置闪烁

write_data('H');

}

write_com(0x80+7);//为1时温度阀值的位置闪烁

write_data('L');

write_com(0x80+0x40+7);//为2时湿度阀值的位置闪烁

write_data('L');

Mode=0; //模式清零

break;

if(Key2==0&&Mode!=0) //加按键只有在模式不等于0时有效

{

while(Key2==0);

switch(Mode) //加按键按下时判断当前模式

{

case 1: //模式为1时

{

yushe_wendu++;

上限值(阀值)加1

27

//预设温度

重庆科技学院高等教育自学考试本科毕业论文 附录一:程序

99时

的位置

if(yushe_wendu>=99)

yushe_wendu=99;

write_com(0x80+13);

//加到大于等于 //固定为99

//选1602上显示write_data(0x30+yushe_wendu/10); //将温度上限值数据分解开送入液晶显示

write_data(0x30+yushe_wendu%10);

break;

}

case 2:

{

yushe_humi++;

值,同温度上限值设置

if(yushe_humi>=100)

yushe_humi=100;

write_com(0x80+0x40+13);

write_data(0x30+yushe_humi%100/10);

write_data(0x30+yushe_humi%10);

break;

}

case 3: //模式为3时

{

yushe_wendu_L++;

值,同温度上限值设置

if(yushe_wendu_L>=95)

yushe_wendu_L=95;

write_com(0x80+8);

write_data(0x30+yushe_wendu_L/10);

write_data(0x30+yushe_wendu_L%10);

break;

}

case 4:

{

yushe_humi_L++;

值,同温度上限值设置

if(yushe_humi_L>=90)

yushe_humi_L=90;

write_com(0x80+0x40+8);

write_data(0x30+yushe_humi_L%100/10);

write_data(0x30+yushe_humi_L%10);

break;

}

}

28

//湿度上限//温度下限

//湿度下限

重庆科技学院高等教育自学考试本科毕业论文 附录一:程序

}

if(Key3==0&&Mode!=0)

{

while(Key3==0);

switch(Mode)

{

case 1:

{

if(yushe_wendu<=1)

度上限值减小到1时

yushe_wendu=1;

yushe_wendu--;

write_com(0x80+13);

1602上显示的位置

write_data(0x30+yushe_wendu/10);

入液晶显示

write_data(0x30+yushe_wendu%10);

break;

}

case 2:

{

if(yushe_humi<=1)

值,同温度上限值设置

yushe_humi=1;

yushe_humi--;

write_com(0x80+0x40+13);

write_data(0x30+yushe_humi%100/10);

write_data(0x30+yushe_humi%10);

break;

}

case 3: //模式为3时

{

if(yushe_wendu_L<=1)

上限值设置

yushe_wendu_L=1;

yushe_wendu_L--;

write_com(0x80+8);

write_data(0x30+yushe_wendu_L/10);

write_data(0x30+yushe_wendu_L%10);

break;

}

case 4:

{

29

//当温 //固定为1

//预设温度值减 //选//将温度上限值数据分解开送 //湿度上限

//温度下限值,同温度

重庆科技学院高等教育自学考试本科毕业论文 附录一:程序

温度上限值设置

}

}

if(yushe_humi_L<=1)

//湿度下限值,同

yushe_humi_L=1;

yushe_humi_L--;

write_com(0x80+0x40+8);

write_data(0x30+yushe_humi_L%100/10);

write_data(0x30+yushe_humi_L%10);

break;

}

delay(10); //延时去抖动

write_com(0x38);//屏幕初始化

write_com(0x0c);//打开显示无光标无光标闪烁

}

/*******************************************************************************************************

DHT11相关命令

********************************************************************************************************/

void Delay1(uint j)

{

uchar i;

for(;j>0;j--)

{

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

}

}

void Delay_10us(void)

{

uchar i;

i--;

i--;

i--;

i--;

i--;

i--;

}

30

重庆科技学院高等教育自学考试本科毕业论文 附录一:程序

void COM(void)

{

uchar i;

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

{

U8FLAG=2;

while((!DHT11)&&U8FLAG++);

Delay_10us();

Delay_10us();

Delay_10us();

U8temp=0;

if(DHT11)U8temp=1;

U8FLAG=2;

while((DHT11)&&U8FLAG++);

//超时则跳出for循环

if(U8FLAG==1)break;

//判断数据位是0还是1

// 如果高电平高过预定0高电平值则数据位为 1

U8comdata<<=1;

U8comdata|=U8temp; //

}

}

//--------------------------------

//-----湿度读取子程序 ------------

//--------------------------------

//----以下变量均为全局变量--------

//----温度高8位== U8T_data_H------

//----温度低8位== U8T_data_L------

//----湿度高8位== U8RH_data_H-----

//----湿度低8位== U8RH_data_L-----

//----校验 8位 == U8checkdata-----

//----调用相关子程序如下----------

//---- Delay();, Delay_10us();,COM();

//--------------------------------

void RH(void)

{

//主机拉低18ms

DHT11=0;

Delay1(180);

ET0 = 0;//关闭定时器0中断

DHT11=1;

31

重庆科技学院高等教育自学考试本科毕业论文 附录一:程序

);

//总线由上拉电阻拉高主机延时20us

Delay_10us();

Delay_10us();

Delay_10us();

Delay_10us();

//主机设为输入判断从机响应信号

DHT11=1;

//判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行

if(!DHT11) //T !

{

U8FLAG=2;

//判断从机是否发出 80us 的低电平响应信号是否结束

while((!DHT11)&&U8FLAG++);

U8FLAG=2;

//判断从机是否发出 80us 的高电平,如发出则进入数据接收状态

while((DHT11)&&U8FLAG++);

//数据接收状态

COM();

U8RH_data_H_temp=U8comdata;

COM();

U8RH_data_L_temp=U8comdata;

COM();

U8T_data_H_temp=U8comdata;

COM();

U8T_data_L_temp=U8comdata;

COM();

U8checkdata_temp=U8comdata;

DHT11=1;

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

//数据校验

U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp if(U8temp==U8checkdata_temp)

{

U8RH_data_H=U8RH_data_H_temp;

U8RH_data_L=U8RH_data_L_temp;

U8T_data_H=U8T_data_H_temp;

U8T_data_L=U8T_data_L_temp;

U8checkdata=U8checkdata_temp;

}//fi

}//fi

32

重庆科技学院高等教育自学考试本科毕业论文 附录一:程序

}

/*****主函数*****/

void main()

{

uint i=0;

Delay_Ms(100);//上电延时100ms,等待SHT11启动

Init1602(); //调用初始化显示函数

U8T_data_H=30;

U8RH_data_H=60;

while(1)

{

//进入循环

Key();

if(Mode==0)

{

if(i<1)

{

i=10;

//调用按键函数扫描按键

//只有当模式为0时才会执行以下的阀值判断部分

RH();//温湿度检测受定时器影响,故在驱动程序中关闭定时器中断,减小扫描频率才能更好的实现红外接收

}

i--;

Display_1602(yushe_wendu,yushe_humi,yushe_wendu_L,yushe_humi_L,U8T_data_H,U8RH_data_H); //显示预设温度上限值,预设湿度上限值,预设温度下限值,预设湿度下限值,当前温度值,当前湿度值

if(U8RH_data_H>=yushe_humi) //湿度值大于等于预设上限值时

{

}

LED_humi=0;

baojing=0;

//湿度上限指示灯亮

//蜂鸣器报警

else if(U8RH_data_H<=yushe_humi_L) //湿度值小于等于预设值下限值时

{

LED_humi_L=0; //湿度下限指示灯亮

baojing=0; //蜂鸣器报警

}

else //湿度值处于上限界限之间时

{

LED_humi=1; //关掉湿度上限报警灯

LED_humi_L=1; //关掉湿度下限报警灯

33

重庆科技学院高等教育自学考试本科毕业论文 附录一:程序

}

if(U8T_data_H>=(yushe_wendu)) //温度值大于等于预设上限值时

{

baojing=0; //打开蜂鸣器报警

LED_wendu=0; //打开温度上限报警灯

}

else if(U8T_data_H<=yushe_wendu_L) //温度值小于等于预设值下限值时

{

LED_wendu_L=0; //温度下限指示灯亮

baojing=0; //蜂鸣器报警

}

else //温度值处于上限界限之间时

{

LED_wendu=1; //关闭温度上限报警灯

LED_wendu_L=1; //关闭温度下限报警灯

}

if(yushe_humi_L

{

baojing=1; //停止报警

}

}

else

{

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

}

}

}

34