塑料大棚恒温控制器设计及实现.docx
《塑料大棚恒温控制器设计及实现.docx》由会员分享,可在线阅读,更多相关《塑料大棚恒温控制器设计及实现.docx(36页珍藏版)》请在冰豆网上搜索。
塑料大棚恒温控制器设计及实现
学科分类号0806
本科生毕业论文(设计)
题目(中文):
塑料大棚恒温控制器的设计与实现
(英文):
ConstantTemperatureControllerDesignandImplementationofthePlasticGreenhouse
塑料大棚恒温控制器的设计与实现
摘要
塑料大棚恒温控制器的设计包括硬件电路设计和系统程序的设计。
硬件电路主要包括主控制器,温度测量电路,温度控制电路和显示电路。
主控制器采用单片机STC12C5A16S2,温度传感器采用美国DALLAS半导体公司生产的DS18B20,温度控制电路采用的是继电器控制外部加热制冷设备,显示电路采用3个共阳极LED数码管。
测温控制电路由温度传感器和预置温度值比较组成,当实际测得的温度值大于预先设定的温度,导致光信号报警,并且驱动电风扇工作;当实际温度低于预先设定的温度,导致关信号报警,并驱动加热器工作。
系统程序主要包括主程序,测试程序和显示子程序等。
关键词
单片机;数码显示管;温度传感器DS18B20;控制电路
ConstantTemperatureControllerDesignandImplementationofthePlasticGreenhouse
Abstract
Plasticsconstanttemperaturecontrollerdesignincludeshardwarecircuitdesignandsystemprogramdesign.Thehardwarecircuitmainlyincludesthemaincontroller,temperaturemeasurementcircuit,temperaturecontrolcircuitanddisplaycircuit.MaincontrollerbysinglechipmicrocomputerSTC12C5A16S2,DS18B20temperaturesensorbyDALLASsemiconductorcompaniesintheUnitedStatesproduction,temperaturecontrolcircuitUSESisrelaycontrolexternalheatingrefrigerationequipment,usingthreecommonanodeLEDdigitaltubedisplaycircuit.Temperaturecontrolcircuitiscomposedoftemperaturesensorandthepresettemperaturecomparison,whentheactualmeasuredtemperaturevalueisgreaterthanthepre-settemperature,leadtolightalarmsignal,andworkdriveelectricfan;Whenactualtemperatureislowerthanthepresettemperature,resultinginawarningsignal,anddrivetheheaterwork.Systemprogrammainlyincludesthemainprogram,thetestprogramanddisplaysubroutine,etc.
Keywords
singlechipmicrocomputer;Digitaltubedisplay;TemperaturesensorDS18B20;Controlcircuit
1前言
中国农业的发展必须走现代化农业这条道路,随着国民经济的迅速增长,农业的研究和应用技术越来越受到重视,特别是温室大棚已经成为高效农业的一个重要组成部分。
日常生活及工农业生产中经常要用到温度的检测及控制,在冶金、食品加工、化工等工业生产过程中,广泛使用的各种加热炉、热处理炉、反应炉等,都要求对温度进行严格控制。
温度控制,在自动化控制中占有非常重要的地位。
单片机系统的开发应用给现代农业测控领域带来了一次新的技术革命,自动化、智能化均离不开单片机的应用[1]。
将单片机控制方法运用到温度控制系统[2]中,可以克服温度控制系统中存在的严重滞后现象,同时在提高采样频率的基础上可以很大程度的提高控制效果和控制精度。
在日常生活中,电烤箱、微波炉、电热水器、烘干箱等电器也需要进行温度检测与控制。
传统的测温元件有热电偶和热电阻。
而热电偶和热电阻测出的一般是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。
而采用单片机对温度进行控制,不仅具有控制方便,简单和灵活等优点,而且可以大幅度提高温度控制的技术指标。
测量温度的关键是温度传感器,温度传感器正从模拟式向数字式、从集成化向智能化、网络化的方向发展。
在测温电路中,可以使用热敏电阻之类的器件利用其感温效应,将随被测温度变化的电压或电流采集过来,先进行A/D转换,然后用单片机进行数据的处理,再在显示电路上,将被测温度显示出来。
这种设计需要用到A/D转换电路,因此感温电路的设计比较复杂。
进而想到采用智能温度传感器来设计数字温度控制器。
本数字保温控制的设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件[3],继电器控制外部加热制冷设备,其温度值可以直接被读出来,通过核心器件单片机STC12C5A16S2控制温度的读写和显示,用LED数码管显示。
在温度传感器的选择上我们采用温度芯片DS18B20测量温度。
该芯片的物理化学性很稳定,且此元件线形较好。
在0—100摄氏度时,最大线形偏差小于1摄氏度。
该芯片直接向单片机传输数字信号,便于单片机处理及控制。
本设计的最大特点之一就是直接采用温度芯片对温度进行测量,使数据传输和处理简单化。
采用温度芯片DS18B20测量温度,体现了作品芯片化这个趋势。
部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。
而且,集成块[4]的使用,有效地避免外界的干扰,提高测量电路的精确度。
所以芯片的使用将成为电路发展的一种趋势。
本方案应用这一温度芯片,也是顺应这一趋势。
对于温度的调节系统[5],我们才用的只是简单的升温和降温方法,当温度低于我们设定的最低温度值时,则单片机系统则会通过一个高电平的脉冲电流直接送给继电器,使连接在继电器上的加热器通电产生热量来提高温度。
如果当温度高于我们设定的最高温度值时,则单片机会通过另一个口发出一个高电平的脉冲电流送个继电器,使连在继电器上的电风扇启动,来降低温度。
在此过程中,我们通过单片机将传感器所测量出来的温度通过数码管显示出来。
这样就能观察到即时的温度情况,以便更好的验证系统的性能。
按照上述设计功能的要求,确定系统有6个部分组成:
主控制器、显示电路、报警电路、按键预置温度值电路、继电器输出电路及温度传感电路。
控制器使用STC12C5A16S2,温度传感器使用DS18B20,显示电路用3位共阳极LED数码管以动态扫描法实现温度显示,继电器外接控制加热制冷设备。
系统程序[6,7]主要包括主程序、温度控制子程序及显示子程序等等。
综上所述,本设计以智能集成温度传感器DS18B20为检测元件,以单片机STC12C5A16S2为主控器,用继电器控制外部的加热制冷设备,对大棚塑料内的温度进行控制,便于大棚内的植物生长。
该设计同时也适用于人们的日常生活及工农业生产中用于温度的检测及控制。
2任务分析与方案论证
2.1任务分析
本设计是对温度进行实时监测与控制,即可以测试塑料大棚中的温度和可设置塑料大棚内适合植物生长的温度。
当温度低于设定下限温度时,系统自动报警且自动启动加热继电器加温,使温度上升,同时指示灯亮,当温度上升到下限温度以上时,停止加温;当温度高于设定上限温度时,系统自动报警且自动启动电风扇降温,使温度下降,同时指示灯亮。
当温度下降到上限温度以下时,停止降温。
温度在上下限温度之间时,执行机构不执行。
三个数码管即时显示温度,精确到小数点一位。
具体要求如下:
(1)、能够测量温度,温度用数字显示。
(2)、测量温度范围-10~60℃,测量精度为0.5℃。
(3)、能够设置塑料大棚温度并控制温度,设定范围5~40℃,且连续可调。
设置温度用数字显示。
(4)、温度控制精度≤±2℃。
(5)、当超过设定的温度5℃时,产生声、光报警。
2.2两种方案的比较
2.2.1方案一
测温电路的设计,可以使用热敏电阻之类的器件,利用其感温效应,将被测温度变化的电压或电流采集过来,进行A/D转换后,用单片机进行数据的处理,在显示电路上显示被测温度,这种设计需要用到A/D转换电路,感温电路比较麻烦。
2.2.2方案二
考虑使用温度传感器,结合单片机进行电路设计,温度传感器采用DS18B20,这种芯片可直接读取被测温度值,然后再通过单片机STC12C5A16S2控制继电器,进而控制外部的加热制冷设备,以达到预设的温度值。
比较以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计容易实现,故采用方案二。
2.3实现方法简述
硬件系统应包括四大模块:
单片机最小系统,测温电路,继电器输出电路和电源电路。
单片机最小系统负责设置温度的上下限,数据的处理和温度的显示;温度测量电路测量实时温度;当温度高于上限温度或者低于下限温度时,报警电路产生光和声音报警,此时继电器控制加热制冷设备,只至达到上下限范围以内,警报电路和继电器输出
电路停止工作。
设计的方框图如图2.1所示。
图2.1设计方框图
3硬件电路的设计
3.1单片机最小系统
3.1.1单片机STC12C5A16S2
STC12C5A16S2单片机是以51内核为主的系列单片机,STC单片机是宏晶生产的单时钟/机器周期的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8—12倍,内部集成MAX810专用复位电路。
高速10位A/D转换,针对电机控制,强干扰场合。
STC12C5A16S2单片机引脚[2]如图3.1所示。
图3.1STC12C5A16S2单片机主要性能
它的主要性能有:
(1)高速:
1个时钟/机器周期,增强型8051内核,速度比普通8051快8~12倍。
(2)宽电压:
5.5~3.8V。
(3)低功耗设计:
空闲模式,掉电模式(可由外部中断唤醒)。
(4)16K字节片内Flash程序存储器,擦写次数10万次以上。
(5)芯片内有EEPROM功能。
(6)在系统可编程/在应用可编程,无需编程器/仿真器。
(7)高速SPI通信端口。
(8)先进的指令集结构,兼容普通8051指令集。
引脚的功能:
P0.0—P0.7(39—32):
P0口是一个漏极开路型准双向I/O口。
在访问外部存储器时,它是分时多路转换的地址(低8位)和数据总线,在访问期间激活了内部的上拉电阻。
在EPROM编程时,它接收指令字节,而在验证程序时,则输出指令字节。
验证时,要求外接上拉电阻。
P1.0—P1.7(1-8):
P1口是带内部上拉电阻的8位双向I/O口。
在EPROM编程和程序验证时,它接收低8位地址。
P2.0—P2.7(21-28):
P2口是一个带内部上拉电阻的8位双向I/O口。
在访问外部存储器时,它送出高8位地址。
在对EFROM编程和程序验证期间,它接收高8位地址。
P3.0—P3.7(10-17):
P3口是一个带内部上拉电阻的8位双向I/O口。
3.1.2按键电路
三个轻触开关组成按键电路,因为都是独立的按键所以采用直接接地的方法,另外一段分别接在单片机的P1.5,P1.6,P1.7。
这样电路比较简单,达到了效果。
三个独立式按键可以分别调整温度的上下限报警温度,当按下设置键一次,数码管显示HXX℃且LED数码管闪烁,这时可以调整报警上限温度值。
按下设置键第二次,LXX℃且数码管闪烁,这时可以调整报警下限温度值。
通过“加键”可以对设置数值加。
通过“减键”可以对设置数值减。
每按一次减1,如图3.2所示。
图3.2按键电路
3.1.3显示电路
显示电路采用3位共阳LED数码管做为温度值显示。
用三个8550PNP三极作为每一位LED管的驱动电路,这样使得数码管电流量更大,亮度更亮。
一位共阳极数码管显示℃摄氏度符号,使得整个显示电路更加人性化。
电路图[8]如图3.3所示。
图3.3数码管电路图
3.1.4报警电路
采用有源蜂鸣器作为报警器,用一个PNP三极管8550作为驱动。
蜂鸣器可以在被测温度超过上限温度或者低于下限温度时,发出报警鸣叫声音。
电路图[9]如图3.4所示:
图3.4报警电路
3.2DS18B20温度传感器与单片机的接口电路
3.2.1DS18B20温度传感器
测温系统采用芯片DS18B20,DS18B20是DALLAS公司的最新单线数字温度传感器,它的体积更小、适用电压更宽、更经济,DS18B20是世界上第一片支持“一线总线”接口的温度传感器,具有一线总线独特而且经济的特点。
温度传感器DS18B20作为检测元件,测温范围为-55℃~+125℃,最大分辨率可达0.0625℃。
DS18B20可以直接读出被测量的温度值,而且采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
引脚图如图3.5所示,各脚功能如表3.1所示。
图3.5DB18B20引脚图
表3.1DB18B20引脚的功能
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数据输入/输出引脚。
单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
3
VDD
可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
DS18B20内部结构组成:
(1)64位光刻ROM。
ROM中的64位序列号是出厂前被光刻好的,它可以看作 是该DS18B20的地址序列码,开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前56位的CRC校验码,这也是多个DS18B20可以采用一线进行通信的原因。
4位闪速ROM的结构如表3.2,DS18B20内部结构如图3.6所示。
表3.2
8b检验CRC
48b序列号
8b工厂代码(10H)
MSBLSBMSBLSBMSBLSB
图3.6DS18B20内部结构
(2)高速暂存存储。
可以设置DS18B20温度转换的精度,DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的E2PRAM。
高速暂存RAM的结构为8字节的存储器,如表3.2所示,头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值
表3.2DS18B20内部存储器结构
Byte0
温度测量值LSB(50H)
Byte1
温度测量值MSB(50H)
Byte2
TH高温寄存器
Byte3
TL低温寄存器
Byte4
配位寄存器
YByte5
预留(FFH)
Byte6
预留(0CH)
Byte7
预留(IOH)
Byte8
循环冗余码校验(CRC)
(3)非挥发的温度报警触发器TH和TL。
可通过软件写入用户报警上下限值。
(4)CRC的产生。
在64bROM的最高有效字节中存储有循环冗余校验码(CRC)。
主机根据ROM的前56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确。
3.2.2DS18B20的操作时序
DS18B20的一线工作协议流程是:
初始化→ROM操作指令→存储器操作指令→数据传输。
其工作时序包括初始化时序、写时序和读时序。
主机控制DS18B20完成任何操作之前必须先初始化,即主机发一复位脉冲(最短为480us的低电平),接着主机释放总线进入接收状态,DS18B20在检测到I/O引脚上的上升沿之后,等待15-60us然后发出存在脉冲(60-240us的低电平)。
写时间片:
将数据从高电平拉至低电平,产生写起始信号。
在15us之内将所需写的位送到数据线上,在15us到60us之间对数据线进行采样,如果采样为高电平,就写1,如果为低电平,写0就发生。
在开始另一个写周期前必须有1us以上的高电平恢复期。
读时间片:
主机将数据线从高电平拉至低电平1us以上,再使数据线升为高电平,从而产生读起始信号。
主机在读时间片下降沿之后15us内完成读位。
每个读周期最短的持续期为60us,各个读周期之间也必须有1us以上的高电平恢复期。
DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线接在单片机的P2.0,3脚接电源另一种是寄生电源供电方式,单片机端口接单线总线[3],为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。
采用寄生电源供电方式时VDD端接地。
由于单线制只有一根线,因此发送接口必须是三态的。
3.3继电器输出电路
继电器有常开触点,常闭触点。
常开触点在线圈不通电的情况下是断开的,当线圈中有电流经过时,常开触点闭合;常闭触点在线圈不通电的情况下是闭合的,当线圈中有电流经过时断开。
本设计用到的是继电器的常开触点,即在继电器线圈没有电流经过时是断开的状态,当继电器线圈中有电流经过时闭合导通。
继电器实现的是弱电控制强电,单片机是弱电器件,一般情况下它的工作电压为5V,而本实验所用的热得快工作所需电压为220V属于强电,强电不能和弱电有任何电器接触,防止强电进入到单片机内,继电器起到隔离作用。
由于单片机是一个弱电器件,它的工作电压是5V,驱动电流在mA级以下,而现在要把它用于一些大功率场合,控制热得快,显然是不行的。
所以,就要有一个环节来衔接,这个环节就是所谓的“功率驱动”,继电器驱动就是一个典型的、简单的功率驱动环节。
继电器驱动就是单片机与其他大功率负载接口,起到控制作用,三极管起到放大作用。
当外部温度大于预设温度时,继电器输出电路一工作,驱动电风扇工作,使环境的温度降低,直到外部温度降低到预设的温度,此时继电器输出电路一停止工作,电路图如图3.7所示;当外部温度小于预设温度时,继电器输出电路二工作,驱动加热器工作,使环境的温度升高,当外部的温度升高到预设的温度时,继电器输出电路二停止工作,电路图如图3.8所示。
图3.7继电器输出电路一图3.8继电器输出电路二
3.4电源电路
本次设计中既有需要5V供电的电路也有需要220V供电的电路,直接接入220V即可,其中有变压器[10]可将220V的电压变为5V,此外电源与电路之间有一个开关,当短时间内系统不需要工作,可断开开关,不必要切断电源,这样设计更加人性化,用发光二极管作为电源指示灯。
4软件设计
4.1系统流程图
图4.1系统流程图
4.2系统程序模块的设计
系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。
温控系统采用模块化[11]程序结构,可以分成以下程序模块:
系统初始化程序:
首先完成变量的设定、中断入口的设定、堆栈、输入输出口及外部部件的初始化工作。
主程序MAIN:
完成键盘扫描、温度值采集及转换、温度值的显示。
当温度值高于设定最高限时,驱动风扇工作,蜂鸣器报警;当温度值低于设定最低限时,驱动热得快,蜂鸣器报警。
键盘扫描程序KEYSCAN:
完成键盘的扫描并根据确定的键值执行相应的功能,主要完成最高温度、最低温度的设定。
温度采集程序:
完成DS18B20的初始化并发出温度转换命令,经过指定时间后读取转换的温度值。
4.3DB18B20测量温度的程序设计
DS18B20的一线工作协议流程是:
初始化→ROM操作指令→存储器操作指令→数据传输。
初始化:
单线总线上的所有操作均从初始化开始。
初始化过程如下:
主机通过拉低单线480us以上,产生复位脉冲,然后释放该线,进入Rx接收模式,主机释放总线时,会产生一个上升沿。
单线期间DS18B20检测到该上升沿后,延时15-60us,通过拉低总线60-240us来产生应答脉冲。
ROM操作命令:
一旦总线主机检测到应答脉冲,便可以发起ROM操作命令。
共有5位ROM操作命令。
内存操作命令:
在成功执行了ROM操作命令之后,才可以使用内存操作命令。
主机可以提供6种内存操作命令。
数据处理:
DS18B20要有严格的时序来保证数据的完整性。
在单线DQ上,存在复位脉冲、应答脉冲、写“0”、写“1”、读“0”和读“1”几种信号类型。
其中,除了应答脉冲之外,均由主机产生。
数据位的读和写则是通过使用读、写时隙实现的。
当DS18B20接收到温度转换命令后,开始启动转换,转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。
部分温度对应值如表4.1所示。
表4.1一部分温度对应值表
温度/℃
二进制表示
十六进制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010000
0191H
+10.125
0000000010100001
00A2H
+0.5
0000000000000010
0008H
0
0000000000001000
0000H
-0.5
1111111111110000
FFF8H
-10.125
1111111101011110
FF5EH
-25.0625
1111111001101111
FE6FH
-55
1111110010010000
FC90H
4.4温度转换命令子程序
温度转换命令子程序主要是温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法,来等待转换的完成。
温度转换命令子程序流程图如图4.2所示
图4.2温度转换流程图
5调试
连接好电路后,设置温度,用打火机在温度传感器DS18B20附近使温度升高,当温度超过预设温度上限时,此时电风扇开始工作,灭掉打火机,当温度回到预设温度上限以下时,电风扇停止工作;当用冰块在温度传感器DS18B20附近使温度降低,当温度低于预设温度下限时,此时加热器工作,拿开冰块,使温度升高,当温度达到预设温度下限以上时,加热器停止加热,经多次实验,与设想的结果一致,误差为±2℃。
但是读取温度值时,出现的现象是温度在判断时出