温室大棚控制系统设计.docx

上传人:b****5 文档编号:3317748 上传时间:2022-11-21 格式:DOCX 页数:25 大小:212.90KB
下载 相关 举报
温室大棚控制系统设计.docx_第1页
第1页 / 共25页
温室大棚控制系统设计.docx_第2页
第2页 / 共25页
温室大棚控制系统设计.docx_第3页
第3页 / 共25页
温室大棚控制系统设计.docx_第4页
第4页 / 共25页
温室大棚控制系统设计.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

温室大棚控制系统设计.docx

《温室大棚控制系统设计.docx》由会员分享,可在线阅读,更多相关《温室大棚控制系统设计.docx(25页珍藏版)》请在冰豆网上搜索。

温室大棚控制系统设计.docx

温室大棚控制系统设计

摘要

关键词:

STC89C52单片机、DS-18B20数字温度传感器、ULN-2003A集成芯片、温室、自动控制、自动检测

第二章系统硬件电路的设计

2.1系统硬件构成及其测控原理

2.1.1系统硬件电路构成系统整体框图

图2-1系统整体框图

2.1.2系统整体电路图

图2-2系统整体电路图

2.1.3系统工作原理

本系统由如图2-1、图2-2所示,DHT11温湿度传感器采集数据,STC89C52单片机进行数据处理,LCD1602显示模块显示温湿度。

由PWM控制温度调节模块进行温度调节,当温度小于18℃时,M4QA045电机停止运转,当温室大于28℃时,M4QA045电机全速运转,当温度处于18℃和28℃之间时,通过PWM控制M4QA045电机转速。

由STC89C52单片机输出高低电平控制湿度报警模块,当湿度大于65%RH或者小于45%RH时,STC89C52单片机输出高电平,湿度报警模块报警,当湿度处于45%RH和65%RH之间时,STC89C52单片机输出低电平,湿度报警模块关闭。

2.2显示模块的选择

2.2.1DS18B20简介

DS18B20数字温度传感器采用DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样等优点,适用于各种狭小空间设备数字测温和控制领域。

2.2.2DS18B20的性能特点

 2.2.2.1、适应电压范围更宽,电压范围:

3.0~5.5V,在寄生电源方式下可由数据线供电

 2.2.2.2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯

 2.2.2.3、DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温

 2.2.2.4、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内

 2.2.2.5、温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃

2.2.2.6、可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温

 2.2.2.7、在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快

2.2.2.8、测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力

 2.2.2.9、负压特性:

电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。

2.2.3DS18B20的管脚排列

2.2.3.1、DS18B20的外形及管脚排列如下图:

DS18B20引脚定义:

(1)DQ为数字信号输入/输出端;

  

(2)GND为电源地;

  (3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。

2.2.4DS18B20的内部结构

DS18B20内部结构图:

2.2.5DS18B20的控制方法

2.2单片机的选择

2.2.1单片机概述

单片微型计算机简称单片机,又称微控制器,嵌入式微控制器等,属于第四代电子计算机。

它把中央处理器、存储器、输入/输出接口电路以及定时器叶数器集成在一块芯片上,从而具有体积小、功耗低、价格低廉、抗干扰能力强且可靠性高等特点,因此,适合应用于工业过程控制、智能仪器仪表和测控系统的前端装置。

正是由于这一原因,国际上逐渐采用微控制器(MCU)代替单片微型计算机(SCM)这一名称。

“微控制器”更能反映单片机的本质,但是由于单片机这个名称已经为国内大多数人所接受,所以仍沿用“单片机”这一名称。

1、单片机的主要特点有:

(1)具有优异的性能价格比。

(2)集成度高、体积小、可靠性高。

(3)控制功能强。

(4)低电压,低功耗。

2、单片机的主要应用领域:

(1)工业控制

(2)仪器仪表

(3)电信技术

(4)办公自动化和计算机外部设备

(5)汽车和节能

(6)制导和导航

(7)商用产品

(8)家用电器

因此,在本课题设计的温湿度测控系统中,采用单片机来实现。

在单片机选用方面,由于STC89系列单片机与MCS-51系列单片机兼容,所以,本系统中选用STC89C52单片机。

2.2.2STC89C52单片机的引脚说明

图2-3STC89C52单片机引脚图

芯片引脚如图2-3所示:

VCC:

电源。

GND:

地。

P0口:

P0口是一个8位漏极开路的双向I/O口。

作为输出口,每位能驱动8个TTL逻辑电平。

对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模式下,P0具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。

程序校验时,需要外部上拉电阻。

P1口:

是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。

对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表1所示。

在flash编程和校验时,P1口接收低8位地址字节。

P2口:

P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。

对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。

在这种应用中,P2口使用很强的内部上拉发送1。

在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:

P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。

对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

P3口亦作为AT89S52特殊功能(第二功能)使用,如上表2-1所示。

在flash编程和校验时,P3口也接收一些控制信号。

RST:

复位输入。

晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。

看门狗计时完成后,RST脚输出96个晶振周期的高电平。

特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。

DISRTO默认状态下,复位高电平有效。

ALE/PROG:

地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。

在flash编程时,此引脚(PROG)也用作编程输入脉冲。

在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。

然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。

如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。

这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。

否则,ALE将被微弱拉高。

这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。

PSEN:

外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。

当STC89C52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。

EA/VPP:

访问外部程序存储器控制信号。

为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。

为了执行内部程序指令,EA应该接VCC。

在flash编程期间,EA也接收12伏VPP电压。

XTAL1:

振荡器反相放大器和内部时钟发生电路的输入端。

XTAL2:

振荡器反相放大器的输出端。

程序存储器:

如果EA引脚接地,程序读取只从外部存储器开始。

对于89S52,如果EA接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:

2000H~FFFFH。

数据存储器:

STC89C52有256字节片内数据存储器。

高128字节与特殊功能寄存器重叠。

也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。

当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高128字节RAM还是特殊功能寄存器空间。

直接寻址方式访问特殊功能寄存器(SFR)

定时器2:

定时器2是一个16位定时/计数器,它既可以做定时器,又可以做事件计数器。

其工作方式由特殊寄存器T2CON中的C/T2位选择(如表2所示)。

定时器2有三种工作模式:

捕捉方式、自动重载(向下或向上计数)和波特率发生器。

工作模式由T2CON中的相关位选择。

定时器2有2个8位寄存器:

TH2和TL2。

在定时工作方式中,每个机器周期,TL2寄存器都会加1。

由于一个机器周期由12个晶振周期构成,因此,计数频率就是晶振频率的1/12。

中断:

STC89C52有6个中断源如表2-2所示:

两个外部中断(INT0和INT1),三个定时中断(定时器0、1、2)和一个串行中断每个中断源都可以通过置位或清除特殊寄存器IE中的相关中断允许控制位分别使得中断源有效或无效。

IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。

定时器2可以被寄存器T2CON中的TF2和EXF2的或逻辑触发。

程序进入中断服务后,这些标志位都可以由硬件清0。

实际上,中断服务程序必须判定是否是TF2或EXF2激活中断,标志位也必须由软件清0[1]。

表2-2中断控制寄存器

符号

位地址

功能

EA

IE.7

中断总允许控制位。

EA=0,中断总禁止;EA=1,各中断由各自的控制位设定

-

IE.6

预留

ET2

IE.5

定时器2中断允许控制位

ES

IE.4

串行口中断允许控制位

ET1

IE.3

定时器1中断允许控制位

EX1

IE.2

外部中断1允许控制位

ET0

IE.1

定时器0中断允许控制位

EX0

IE.0

外部中断1允许控制位

2.2.3STC89C52单片机最小系统

图2-4晶振电路

图2-5复位电路

如图2-4、图2-5所示,复位电路和时钟电路是维持单片机最小系统运行的基本模块。

单片机最小系统是在以51单片机为基础上扩展,使其能更方便地运用于测试系统中,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被测试的技术指标,从而能够大大提高产品的质量和数量。

单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,称为在实时检测和自动控制领域中广泛应用的器件,在工业生产中称为必不可少的器件,尤其是在日常生活中发挥的作用也越来越大[2]。

 

2.5温度调节模块设计

1、方案一

图2-12方案一电路图

如图2-12所示,由PWM控制温度调节模块,当PWM端输入高电平时,电流经Q1放大,光耦导通,光耦输出电流经Q2放大后,使双向可控硅导通,M4QA045电机运转,当PWM端输入低电平时,双向可控硅控制端输入电流为0,交流电过零以后,双向可控硅截止,M4QA045电机停止运转[4]。

2、方案二

图2-13方案二电路图

如图2-13所示,由PWM控制温度调节模块,当PWM端输入高电平时,电流经Q4放大,常开端5闭合,M4QA045电机运转,当PWM端输入低电平时,常开端5断开,M4QA045电机停止运转。

3、方案比较

方案一采用光耦隔离强电,方案二采用继电器隔离强电,但方案一没有实现强电与直流源的隔离,且方案一环节复杂,计算难度大,过多的环节延长响应时间,从而影响温度调整模块的性能,所以选择方案二[5]。

图2-14电热器驱动电路

基于以上两个方案的分析,加热器驱动电路也同样选用继电器隔离,当温度低于18℃时,相应引脚输出高电平,电流经过三极管放大,继电器常开端闭合,电热器工作,当温度高于23℃时,相应引脚输出低电平,继电器常开端关闭,电热器不工作[6]。

2.6湿度报警模块设计

图2-14湿度报警模块电路图

如图2-14所示,由STC89C52单片机在BUZZER端输入信号控制湿度报警模块。

当湿度大于65%RH或者小于45%RH时,BUZZER端输入高电平,电流经Q3放大,使蜂鸣器工作;当湿度处于45%RH和65%RH之间时,BUZZER端输入低电平,蜂鸣器不工作[7]。

第三章温室大棚控制系统软件设计

3.1KeilC软件概述

单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。

机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。

运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。

掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

KeilC51开发系统基本知识KeilC51开发系统基本知识:

  1.系统概述

  KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

用过汇编语言后再使用C来开发,体会更加深刻。

  KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

下面详细介绍KeilC51开发系统各部分功能和使用。

  2.KeilC51单片机软件开发系统的整体结构

  C51工具包的整体结构,其中uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。

开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。

然后分别由C51及A51编译器编译生成目标文件(.OBJ)。

目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。

ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

  使用独立的Keil仿真器时,注意事项:

  *仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。

  *仿真器上的复位按钮只复位仿真芯片,不复位目标系统。

*仿真芯片的31脚已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。

1、安装好了Keil软件以后,我们打开它。

2、我们先新建一个工程文件,点击“Project->New Project…”菜单。

3、选择工程文件要存放的路径,输入工程文件名xdch最后单击保存。

4、在弹出的对话框中选择CPU厂商及型号。

5、选择好STC89C52芯片,接着点击确定,弹出对话框。

6、新建一个C51文件,单击左上角的NewFile,保存为DS18B20_4.C,(注意后缀名必须为.C),再单击“保存”。

7、存好后把此文件加入到工程中方法如下:

用鼠标在SourceGroup1上单击右键,然后再单击AddFilestoGroupSourceGroup1。

8、选择要加入的文件,找到MAIN.C后,单击Add,然后单击Close。

9、在编辑框里输入代码。

10、生成.hex烧写文件,先单击OptionsforTarget。

11、在下图中,我们单击Output,选中CreateHEXF,再单击“确定”。

以上是Keil软件的基本应用[8]。

3.2温室大棚控制系统程序设计

3.2.1整体系统框图

图4-1系统整体框图

首先,初始化单片机设置中断,定义变量,然后初始化LCD1602显示模块,设置8位格式,2行,5*7矩阵显示,整体显示,关光标,不闪烁设定输入方式,增量不移位,清除屏幕显示。

调用温湿度采集程序进行数据采集,经过数据转换程序,将十六进制转换成十进制,将十进制数据输出到LCD1602显示模块进行显示,根据温度调整电机转速,根据湿度判断是否报警,最后,进行新一轮的温湿度采集[9]。

3.2.2LCD1602显示模块程序设计

图4-2显示程序框图

如图4-2,初始化LCD1602显示模块,设置8位格式,2行,5*7矩阵显示,整体显示,关光标,不闪烁设定输入方式,增量不移位,清除屏幕显示,延时等待,将采集到的温湿度数据进行转换,十六进制转换成十进制,然后,判断是否在第一行显示,输入相应的地址数据,延时等待,输入需要显示的数据。

3.2.3PWM程序设计

图4-3PWM程序框图

如图4-3所示,进行中断程序初始化,设置定时器T0中断时间为1ms,中断100次,即100ms作为一个脉冲周期,每中断一次,由变量T0_number进行计数,当变量T0_number大于100时,给变量T0_number赋值0,重新开始计数,当变量T0_number小于变量PWM_width_H时,输出高电平,当变量T0_number大于变量PWM_width_H时,输出低电平,以此控制脉宽[10]。

第四章调试中遇到的问题

在软件的调试过程中,遇到的问题有很多,下面就几个比较突出的问题进行说明。

1)在对KeilC的使用时不知道怎么才能让它生成HEX文件,从而进行仿真,因为以前没有用过类似的软件,不会并且也不知道需要生成HEX文件,导致前期的工作很难进行

2)因为用的是DHT11数字传感器,在编程过程中需要对所测得温度进行处理,而且需要给定一个温度范围,建立一个温度与电机转速的数学模型,经过反复的计算、实验才实现。

3)因为考虑到经济实用方面,所以在进行实物操作之前,采用proteus软件对程序和硬件电路进行仿真,可是在仿真过程中,独立按键总是不灵敏,这需要对延迟时间进行调整,而程序中设置的延迟时间总是不能够很符合实际操作,所以在这方面浪费了大量的时间进行反复的操作和实验

4)在仿真过程中,因为用到的是LCD1602显示模块,这种显示模块是可以显示字符的,并且这种模块本身带有字库,但事实仿真过程中,电路要求相对宽松,不需加上拉电阻,而实际的电路调试过程需要加上拉电阻。

结论

以上为毕业期间所设计的温室大棚控制控制系统,它经过多次修改和整理,可以满足设计的基本要求。

采用STC89C52单片机、DHT11数字温湿度传感器、LCD1602液晶显示模块和M4QA045电机等器件设计温室大棚控制系统,实现温湿度采集、英文显示;温度自动调节,湿度越限报警功能。

因为本人水平有限,此设计存在一定的问题。

譬如系统抗干扰能力差,且没有实现自动自动复位。

由于使用的是单片机作为核心的控制元件,配合其它器件,使本温度控制系统具有功能强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平。

参考文献

[]孙育才.MCS-51系列单片微型计算机及其应用(第四版)[M].南京:

东南大学出版社,2004

[2]康华光.电子技术基础-模拟部分(第四版)[M].北京:

高等教育出版社,1999

[3]康华光.电子技术基础-数字部分(第四版)[M].北京:

高等教育出版社,1999

[4]石来德.机械参数电测技术[M].上海:

上海科学技术出版社,1981

[5]ErnestO.Doebelin.MeasurementSystems:

ApplicationandDesign[M].America:

McGraw-HILLBOOKCOMPANY,1976

[6]曹继松.测试电路[M].上海:

上海交通大学出版社,1995

[7]谢自美.电子线路设计实验测试[M].武汉:

华中科技大学出版社,2000

[8]马靖善,秦玉平.C语言程序设计[M].北京:

清华大学出版社,2005

[9]赖麒文.8051单片机C语言开发环境实务与设计[M].北京:

科学出版社,2002

[10]徐爱钧.智能化测量控制仪表原理与设计[M].北京:

北京航空航天大学出版社,2004

附录

#include

#include

#defineLCD_DBP2

sbitDQ=P1^0;

sbitBUZZER=P1^1;

sbitPWM=P1^2;

sbitLCD_RS=P1^4;

sbitLCD_RW=P1^5;

sbitLCD_E=P1^6;

sbitHEAT=P1^7;

voidinitial(void);

voidread_DHT11(void);

voidLCD_write_command(unsignedcharcom);

voidLCD_display_char(unsignedcharx,unsignedchary,unsignedchardat);

unsignedcharread_DHT11_char(void);

voidcontrol_temperature_humidity(void);

voiddelay_xms(unsignedinttime_xms);

voiddelay_x10us(unsignedinttime_x10us);

unsignedcharstop_system=0;

unsignedcharlineOne[]="TS(0-50):

C";

unsignedcharlineTwo[]="HS(20-90):

%RH";

unsignedintT0_number=0,T1_number,PWM_width_H;

u

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1