基于单片机at89c52的大棚温度控制系统.docx
《基于单片机at89c52的大棚温度控制系统.docx》由会员分享,可在线阅读,更多相关《基于单片机at89c52的大棚温度控制系统.docx(34页珍藏版)》请在冰豆网上搜索。
![基于单片机at89c52的大棚温度控制系统.docx](https://file1.bdocx.com/fileroot1/2022-11/26/b65f94b1-2fbb-430e-bb25-11230a710da6/b65f94b1-2fbb-430e-bb25-11230a710da61.gif)
基于单片机at89c52的大棚温度控制系统
毕业设计
基于单片机AT89C52的大棚温度控制系统
基于单片机AT89C52的大棚温度控制系统
摘要
蔬菜的生长与温度息息相关,对于蔬菜大棚来说,最重要的一个管理因素是温度控制。
温度太高,则停止生长或者生长速度减慢,所以要将温度始终控制在适合蔬菜生长的范围内。
如果仅靠人工控制既耗人力,又容易发生差错。
为此,在现代化的蔬菜大棚管理中通常有温度自动控制系统,以控制蔬菜大棚温度,适应生产需要。
本设计是通过单片机控制,来实现对蔬菜大棚温度进行自动控制.系统以AT89C52单片机为基础,通过数字及模拟式对温度进行检测,通过显示屏显示当前温度。
当采集到的温度高于20℃,马达将带动风扇的转动,实现自动控制大棚里的温度.并且随着温度每升高5℃,马达的转动速率提高一倍。
当检测到的温度高于35℃时,发出报警信号。
【关键词】大棚温度控制系统AT89C5218B20LCD1602马达
TheGreenhouseTemperatureControlSystem
BasedonAT89C52MCU
Abstract
Thegrowthofvegetablesiscloselyrelatedtothetemperature,forvegetablegreenhouses,themostimportantfactorsofthemanagementsarethetemperaturecontrol.Thetemperatureistoohigh;thegrowthratewillstoporslowdown.Thatiswhyitisnecessarytoalwayscontroltemperaturewithinthecontextofgrowingvegetablesinsuitable.Ifonlydependsonthemanualcontrolbothtoconsumerthemanpower,andeasytohavemistaken.Therefore,usuallythereareautomaticcontrolsystemsoftemperatureinmodernizedvegetablecanopymanagement,inordertocontrolthetemperatureofvegetablecanopy,adapttoproducingtheneed.
Thisdesigniscontrolledthroughthemicrocontroller,toachieveautomaticcontrolofvegetablegreenhousetemperature.ThesystembasedontheAT89C52MCU,throughdigitalandanaloguetemperaturetobedetected,bydisplayshowsthecurrenttemperature.Whenthecollectedtemperaturehigherthan20℃,themotorwilldrivetherotationofthefan,andautomaticcontrolthetemperatureofthegreenhouse.Andasthetemperatureisincreasedby5℃,themotorrotationspeeddoubled.Whenthedetectedtemperatureishigherthan35℃,sendoutthealarmsignal.
【Keywords】TemperaturecontrolofthegreenhousessystemAT89C5218B20LCD1602motor
第1章绪论
我国南方温度严热而漫长,大力推广大棚蔬菜的种植来满足人们日常生活对蔬菜的需要。
随着人们生活水平的日益增长,对蔬菜的要求也较高,对大棚蔬菜的温度控制就是一个重要因素。
温度过高,蔬菜就会停止生长或者糜烂。
本系统就基于单片机AT89C52实现对大棚温度的自动化控制。
用数字温度计18B20采集,将采集到的温度用显示屏显示,再根据采集到的温度,控制马达的转速,从而实现对大棚温度的控制。
当温度大于35℃,喇叭产生报警信号。
1.1系统的概述
应用自动控制和电子计算机实现农业生产和管理的自动化,是农业现代化的重要标志之一。
近年来电子技术和信息技术的飞速发展,带来了温室控制与管理技术方面的一场革命,随着“设施农业”、“虚拟农业”等新名称的出现。
温度计算机控制与管理系统正在不断吸收自动控制和信息管理领域的理论和方法,结合温室作物种植的特点,不断创新,逐步完善,从而使温室种植业实现真正意义上的现代化,产业化。
国内外度计算机控制技术的发展善计算机的发展最早可以追溯到上个世纪的40年代,但将计算机用于环境控制则开始于20世纪60年代。
20世纪80年代初诞生了第一批温室控制计算机,此后温度计算机控制及管理技术便函先在发达国家得到广泛应用,后来各发展中国家也都纷纷引进,开发出适合自己的系统。
这在给各国带来了巨大的经济效益的同时,也极大地推动了各国农业的现代化进程。
本系统以AT89C52单片机为控制核心的测控仪,主要是为了对蔬菜大棚内的温度,地检测与控制而设计的。
该测控仪具有检测精度高、使用简单、成本较低和工作稳定可靠等特点,所以具有一定的应用前景。
1.2系统的要求
本系统通过单片机AT89C52控制,用18B20数字温度计采集温度。
通过LCD1602液晶显示屏显示当前温度,当温度高于20℃,马达将带动风扇的转动,实现自动控制大棚里的温度.并且随着温度每升高5℃,马达的转动速率提高一倍。
当检测到的温度高于35℃时,发出报警信号。
本设计将实现大棚温度的自动化控制。
用protues软件绘制电路原理图,再根据电路原理图捍接电路板。
捍接的电路板实现温度的自动化控制。
1.3系统的主要模块
1.3.1本系统的主要组成部分
本系统为一个全自动温度检测与控制系统,由以下几个部分组成:
AT89C52单片机,温度检测,显示电路,马达,及报警装置等组成。
组成图如图1-1。
报警装置
图1-1温度自动控制主要组成部分
由图1-.1所示,本系统的核心部分是AT89C52,此芯片是该电路的枢纽。
由它先控制着温度的检测,用检测到的温度实现马达的自动控制,以及显示。
若检测到的温度高于设定的值,则发出报警信号。
1.3.2各部分的功能
AT89C52单片机:
它是系统的中央处理器,担负着系统的控制和运算。
温度检测装置:
18B20数字温度计对大棚内温度进行采集,将温度转换成数字。
显示设备:
主要是用于显示检测到的大棚温度。
马达:
主要用于带动风扇的转动。
报警装置:
产生报警信号。
1.3.3工作原理
首先对硬件系统18B20定义端口为P1.3,P2.4,P2.5,P2.6和P0口控制液晶LCM1602的显示,定义端口P1.5为马达控制端口,P1.7为喇叭控制端口。
首先对温度采集,将采集到的温度转换数字,采集到的温度由LCM液晶显示屏显示。
再将采集到的温度所属软件设置的哪个范围,而控制P1.5的电平输出。
第2章设计的理论基础
整个控制系统分为硬件电路设计和软件程序设计两部分。
根据系统具体要求,可以对每一个具体部分进行分析设计。
但要实现对各部分的设计,需要充分了解各部分的理论基础。
本设计系统的基本组成单元包括:
单片机控制单元,18B20温度检测电路,LCD1602显示屏,直流马达,蜂鸣器报警装置。
本章将逐一进行介绍。
2.1AT89C52的工作原理
2.1.1CPU的结构
CPU是单片机内部的核心部分,是单片机的指挥和执行机构,它决定了单片机的主要功能特性。
从功能上看,CPU包括两个基本部分:
运算器和控制器。
下面说明控制器和运算器[1]。
运算器包括算术逻辑运算部件ALU、累加器ACCC、B寄存器、暂存寄存器TMP1和TMP2、程序状态寄存器PSW、BCD码运算调整电路等。
为了提高数据处理和位操作能力,片内设有一些专用的寄存器,而且还增强了为处理逻辑电路的功能。
在进行位操作是,进位位CY作为位操作累加器,整个位操作系统构成一台布尔处理机。
2.1.2CPU的结构I/O口结构
AT89C52单片机有4个8位并行I/O接口,记作P0、P1、P2和P3,每个端口都是8位准双向口,共占32根引脚。
每一条I/O线都能独立地用作输入或输出。
每个端口都包括一个锁存器,一个输出驱动器和输入缓冲器,作输出时数据可以锁存,作输入时数据可以缓冲,但是这四个通道的功能完全不同。
在无片外扩展存储器的系统中,这四个端口的每一位都可以作为准双向I/O端口使用,在具有片外扩展存储器系统中,P2口送出高8位地址,P0口为双向总线,分时送出低8位地址和数据的输入/输出。
2.1.3程序存储器
程序存储器用于存放编好的程序和表格常数,通常该区域具有不同的保护措施,以防止该区域的内容被破坏。
程序存储器通过16位程序计数器寻址,寻址能力为64K字节。
这似的能在6K地址空间内任意寻址,但没有指令使程序能控制从程序存储器空间转移到数据存储空间。
对AT89C52芯片来说,片内有4K字节ROM/EPROM,片外可扩展60K字节EPROM,片内和片外程序存储器统一编址。
在程序存储器中,有6个地址单元被保留用于某些特定的地址。
如表2.1所示:
表2.1AT89C52的复位、中断入口地址
入口地址
说明
0000H
复位后,PC=0000H
0003H
外部中断入口
000BH
定时器T0溢出中断入口
0013H
外部中断入口
001BH
定时器T1溢出中断口
0023H
串行口中断入口
数据存储器用于存放运算的中间结果、数据暂存和缓冲以及标志位等。
AT89C51数据存储器空间也分为内片和外片两大部分,即片内数据存储器RAM和片外数据存储器RAM。
片内数据存储器最大可以寻址256个单元,片外最大可扩展64K字节RAM,并且片内使用的是MOV指令,片外64KROM空间专门为MOVX指令所用。
2.1.4定时器
AT89C51单片机的内部有两个16位可变成定时器0和定时器1,它们都有定时或是事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。
它们具有计数和定时两种工作方式以及四种工作模式。
两个特殊功能寄存器用于确定定时器/计数器的功能和操作方式。
定时器T0的核心是一个加1计数器,它由8位寄存器TH0和TH1组成,可被变成为13位、16位、两个分开的8位等不同的结构。
计数器的输入脉冲源可以是外部脉冲源或系统时钟震荡器,计数器对着两个输入脉冲之一进行递增计数。
定时器T0具有方式0、方式1、方式2和方式3四种工作方式。
T1具有方式0、方式1和方式2三种工作方式。
不管是定时工作方式还是计数方式,定时器T0和T1在对内部时钟或对外部时间计数时,不占用CPU时间,除非定时器/计数器溢出,才可能中断CPU的当前操作。
由此可见,定时器是单片机中效率最高而且工作灵活的部件。
2.1.5中断系统
中断是指中央CPU正在处理某事情的时候,外部发生了某一事件,请求COU迅速去处理,于是,CPU暂时中断当前的工作,转入处理所发生的事件;中断服务处理完成以后,再回到原来被中断的工作,这样的过程称为中断[2]。
AT89C52单片机有五个中断请求源。
其中,两个外部中断源;两个片内定时器/计数器的溢出中断源TE0和TF1;一个片内串行口接受或发送中断源RI或TI。
这些中断请求分别由单片机的特殊功能寄存器TCON和SCON的相应位锁存。
当几个中断源同时向CPU请求中断,要求CPU提供服务的时候,就存在CPU优先响应哪一个中断请求,于是一些微处理器和单片机规定了每个中断源的优先级别。
2.2单总线数字温度传感器DS18B20检测电路
由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高。
这里采用DALLAS公司的数字温度传感器DS18B20作为测温元件。
2.2.1DS18B20简单介绍
DALLAS最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。
DALLAS半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。
温度测量范围为-55~+125摄氏度,可编程为9位~12位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM中,掉电后依然保存。
被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便[3]。
2.2.2DS18B20的性能特点
独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
适应电压范围更宽,电压范围:
3.0~5.5V,在寄生电源方式下可由数据线供电。
温范围-55℃~+125℃,在-10~+85℃时精度为±0.5。
零待机功耗。
可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。
在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。
用户可定义报警设置。
报警搜索命令识别并标志超过程序限定温度的器件。
测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
以上特点使DS18B20非常适用与多点、远距离温度检测系统。
DS18B20内部结构主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的管脚排列、各种封装形式如图4所示,DQ为数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
2.2.3DS18B20的测温原理
DS18B20的测温原理,低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值[4。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图2中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作必须按协议进行。
操作协议为:
初始化DS18B20→发ROM功能命令→发存储器操作命令→处理数据[5]。
2.3LCD1602液晶显示器
2.3.1LCD1602简介
字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,引脚定义如表2.2所示:
表2.2引脚接口说明表
编号
符号
引脚说明
编号
符号
引脚说明
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
背光源负极
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
2.3.21602LCD的指令说明及时序
1602液晶模块内部的控制器共有11条控制指令[6],如表2.3所示:
表2.3控制命令表
序号
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清显示
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
置输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示开/关控制
0
0
0
0
0
0
1
D
C
B
5
光标或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生存贮器地址
0
0
0
1
字符发生存贮器地址
8
置数据存贮器地址
0
0
1
显示数据存贮器地址
9
读忙标志或地址
0
1
BF
计数器地址
10
写数到CGRAMDDRAM)
1
0
要写的数据内容
11
CGRAM或DDRAM读数
1
1
读出的数据内容
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
1为高电平、0为低电平。
指令1:
清显示,指令码01H,光标复位到地址00H位置。
指令2:
光标复位,光标返回到地址00H。
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标。
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:
字符发生器RAM地址设置。
指令8:
DDRAM地址设置。
指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:
写数据。
指令11:
读数据。
LCD1602读写时序如表2.4所示:
表2.4基本操作时序表
读状态
输入
RS=L,R/W=H,E=H
输出
D0—D7=状态字
写指令
输入
RS=L,R/W=L,D0—D7=指令码,E=高脉冲
输出
无
读数据
输入
RS=H,R/W=H,E=H
输出
D0—D7=数据
写数据
输入
RS=H,R/W=L,D0—D7=数据,E=高脉冲
输出
无
2.4直流马达
电动马达,又称为马达或电动机,是一种将电能转化成机械能,并可再使用机械能产生动能,用来驱动其他装置的电气设备。
电动机种类非常繁多,但可大致分为交流电动机及直流电动机以用于不同的场合。
2.4.1马达工作的原理
马达的旋转原理的依据为佛来明左手定则,当一导线置放于磁场内,若导线通上电流,则导线会切割磁场线使导线产生移动。
电流进入线圈产生磁场,利用电流的磁效应,使电磁铁在固定的磁铁内连续转动的装置,可以将电能转换成力学能。
与永久磁铁或由另一组线圈所产生的磁场互相作用产生动力直流马达的原理是定子不动,转子依相互作用所产生作用力的方向运动[7]。
电枢:
可以绕轴心转动的软铁芯缠绕多圈线圈。
场磁铁:
产生磁场的强力永久磁铁或电磁铁。
集电环:
线圈约两端接至两片半圆形的集电环,随线圈转动,可供改变电流方向的变向器。
每转动半圈,线圈上的电流方向就改变一次。
电刷:
通常使用碳制成,集电环接触固定位置的电刷,用以接至电源。
2.4.2马达的基本构造
电动机的种类很多,以基本结构来说,其组成主要由定子和转子所构成。
定子在空间中静止不动,转子则可绕轴转动,由轴承支撑。
定子与转子之间会有一定空气间隙,以确保转子能自由转动。
定子与转子绕上线圈,通上电流产生磁场,就成为电磁铁,定子和转子其中之一亦可为永久磁铁[8]。
2.5蜂鸣器
蜂鸣器是一种一体化结构的电子讯响器。
蜂鸣器主要分为压电式蜂鸣器和电磁化蜂鸣器两种类型。
本系统采用的是电磁式蜂鸣器[9]。
电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动腊片及外壳等组成。
接通电源后,振荡器产生的音频信号电流通过电磁铁圈,使电磁铁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
蜂鸣器发声原理是电流通过电磁铁圈,使电磁线圈产生磁场来驱动振动膜发声的。
程序中改变单片机引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。
另外,改变输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。
第3章系统的硬件组成电路设计
系