基于单片机最小系统的温度控制系统.docx
《基于单片机最小系统的温度控制系统.docx》由会员分享,可在线阅读,更多相关《基于单片机最小系统的温度控制系统.docx(38页珍藏版)》请在冰豆网上搜索。
基于单片机最小系统的温度控制系统
设计报告
基于51单片机的温度控制系统及应用
学校:
湘南学院
专业:
电气工程及其自动化
姓名:
张云燕、曾琳琳、许治豹、马立强
指导教师:
曾晓华
日期:
2013年5月9日
摘要:
在现代工业的生产生活中,温度是常用的测量机被控参数。
随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平。
本水温控制系统采用美国ATMEL公司生产的AT89S51单片机为核心控制器件,实现水温30度到100度的自动控制,以DS18B20为温度传感器的温度控制系统,光电耦合器MOC3041和双向可控硅构成主控制电路。
该系统可以实时存储相关的温度数据并记录显示温度。
硬件控制电路主要包括AT89S51单片机最小系统,测温点路,时钟电路,8段数码晶体管显示电路。
系统程序主要包括主程序,读出温度子程序,计算温度子程序,按键处理程序,8段数码晶体管显示程序以及数据存储程序等等。
关键词:
AT89C52单片机,DS18B20温度传感器,BTA16-600B双向晶闸管,8段数码晶体管显示电路,水温自动控制。
Abstract:
inmodernindustrialproductionandlife,temperatureisacommonmeasuringmachinewasaccusedofparameters.Withtherapiddevelopmentofmicrocomputermeasurementandcontroltechnologyandwidelyused,withthesinglechipprocessorasthecoretemperaturegatheringandcontrolsystemofresearchandapplicationtoalargeextent,improvetheproductioncontrolofthetemperaturelevelinthelife.ThewatertemperaturecontrolsystemadoptstheATMELcompanyproducestheAT89S51asthecorecontroldevicetoachievetheautomaticcontrolwatertemperature30degreesto100degrees,thetemperaturecontrolsystembasedonDS18B20temperaturesensor,photoelectriccouplerMOC3041andbidirectionalthyristorconstitutethemaincontrolcircuit.Thesystemcanreal-timetemperaturedatastorageandrecordaccordingtotemperature.HardwarecontrolcircuitmainlyincludestheAT89S51minimumsystem,temperaturemeasuringpoints,theclockcircuit,section8ofdigitaltransistordisplaycircuit.Systemprogrammainlyincludesthemainprogram,readtemperaturesubroutine,calculatingtemperaturesubroutine,buttonhandler,section8ofdigitaltransistordisplayprogramanddatastorageandsoon.
Keywords:
singlechipmicrocomputerAT89C52,DS18B20temperaturesensor,two-waythyristorBTA16-600-b,8periodofdigitaldisplaycircuit,transistorwatertemperatureautomaticcontrol.
一.引言
1.在现代的各种工业生产中,很多地方都需要用到温度控制系统。
而智能化的控制系统是一种发展的趋势。
本文所阐述的基于AT89S51单片机的温度控制系统。
本温度控制系统适用于温度-55度到125度之间(传感器的测温范围),可以调整不同液体的温度自动控制范围为其常温到沸点之间;可以根据需求通过搭配不同配件实现不同的功能,既可以实现只加热和只制冷,或者即可以加热又可以制冷,广泛应用于生产生活中等,且该控制系统可移植性好,成本低,电路简单,方便使用。
2.应用领域:
家电,生产,化工,人工智能,食品加工,电力系统
3.设计要求:
(1)利用数字温度传感器检测温度,要求线路尽可能简单
(2)无竞争冒险,无抖动
(3)实时显示温度和实时可调
(4)温度可调
(5)可移植性好,通用性强,性价比高
4.技术指标:
温度显示误差不超过1度
5.优点:
结构简单,低成本,实用性强,可移植性好,可方便的用于家电生产生活化工食品加工等等。
具体应用;
(1)温度可调且保温的热得快(可与目前市面上的电热得快兼容),
(2)简易热水器,控制模块可用于目前电热水器的控制模块的维修与替换。
(3)电冰箱(主电路接压缩机实现制冷)。
(5)冷冻(6)化工产品的恒温水浴加热(-30度到110度之间),(7)蒸馏分离沸点在-30度--+110度之间的多种液体,如分离酒精和水(用于作坊式谷物酒精生产等)。
(8)电气设备和工作平台的散热(主电路接风扇)
(9)通过修改程序和增加一个输出引脚可以同时实现加热和制冷,如用于饮水机的加热和制冷(成本较目前市场上的饮水机的控制电路的制造成本要低且结构简单,易于维护功能更强大)
二、系统总体方案设计
1.工作原理:
以单片机为核心,通过温度传感器DS18B20对当前温度的检测送到单片机进行处理与系统设定温度的比较控制主电路双向晶闸管的导通与关断,同时送显示电路显示当前温度。
通过按键输入电路复位控制电路和设定要达到的温度并且送显示电路显示,电源电路提供控制电路所需要的工作电压。
图1.系统方框图
2.硬件选型
2.1单片机
(AT89c52和AT89S51无引脚和功能的区别,方便起见,后文中用AT89S51代替AT89c52)
图2.单片机的引脚图
2.2温度传感器
1.DS18B20的性能特点:
(1).单线结构,只需一根信号线和CPU相连。
(2).不需要外部元件,直接输出串行数据。
(3).可不需要外部电源,直接通过信号线供电,电源电压范围为3.3V~5V。
(4).测温精度高,测温范围为:
一55℃~+125℃,在-10℃~+85℃范围内,精度为±O.5℃。
(5).测温分辨率高,当选用12位转换位数时,温度分辨率可达0.0625℃。
(6).数字量的转换精度及转换时间可通过简单的编程来控制:
9位精度的转换时间为93.75ms:
10位精度的转换时间187.5ms:
12位精度的转换时间750ms。
(7).具有非易失性上、下限报警设定的功能,用户可方便地通过编程修改上、下限的数值。
(8).可通过报警搜索命令识别哪片DS18820采集的温度超越上、下限。
2..DS18B20引脚图和简介
(1)各脚功能描述如下:
DQ:
数字信号输入/输出端。
GND:
电源地端。
VDD:
外接供电电源输入端(在寄生电源接线时此脚应接地)
(2)DS18820中的温度传感器完成对温度的测量,输出格式为:
16位符号扩展的二进制补码。
当测温精度设置为12位时,分辨率为O.0625℃,即O.0625℃/LSB。
其二进制补码格式:
温度值得低字节
D7
D6
D5
D4
D3
D2
D1
D0
温度值的高字节
S
S
S
S
S
D10
D9
D8
表1.
其中,S为符号位,S=1,表示温度为负值;S=0,表示温度为正值。
例如+125℃的数字输出为07D0H,-55℃的数字输出为FC90H。
一些温度值对应的数字输出如图7所示。
.DS18820中的低温触发器TL、高温触发器TH,用于设置低温、高温的报警数值。
DS18820完成一个周期的温度测量后,将测得的温度值和TL、TH相比较,如果小于TL,或大于TH,则表示温度越限,将该器件内的告警标志位置位,并对主机发出的告警搜索命令作出响应。
需要修改上、下限温度值时,只需使用一个功能命令即可对TL、TH写入,十分方便。
2.3双向晶闸管
功能特性:
高之突波电流能力变换:
(dV/dt)c>10V/ms双向可控硅家庭:
类别:
离散半导体产品。
Triac类型:
标准。
配置:
单
电压-关闭状态:
600V
目前国家(最高):
16
触发电压-门(Vgt)从根本上(最高):
1.3V
当前-门触发耐量减低(Igt)(最高):
50个地图
目前持有(Ih)-(最高):
50个地图
当前-非代表增兵50、60赫兹(Itsm):
160A,168A
装式:
通过洞
包装/箱:
-220-3(垂直领导)
参数特性:
控制方式:
双向
极数:
三极
封装材料:
金属封装
封装外形:
平板形
关断速度:
高频(快速)
散热功能:
带散热片
频率特性:
高频
功率特性:
中功率
图3.TO-202AB(BTA16)
图4.
三、硬件模块设计
1、电源电路
51单片机的供电电压为4.0-5.5V,温度传感器的供电电压为3-5V,双向晶闸管的供电电压为3-5V,所以选用5V电压供电,主电路用220V家用电压供电。
2、单片机电路
2.1AT89C51为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。
功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。
主要管脚有:
XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。
RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。
VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。
P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。
2.2P0口
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的
方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
2.3P1口
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑
电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。
2.4P2口
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑
门电路。
对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。
Flash编程或校验时,P2亦接收高位地址和一些控制信号。
2.5P3口
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
2.6RST
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
2.7ALE/PROG
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
2.8PSEN
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
2.9EA/VPP
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
2.10XTAL1
振荡器反相放大器的及内部时钟发生器的输入端。
2.11XTAL2
振荡器反相放大器的输出端。
图5.
3.温度采集电路
DS18B20工作原理:
低温度系数晶振的振荡频率受温度的影响很小〔1〕,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。
表2.温度值输入输出关系
图6.DS18B20硬件连接
4.显示电路元件选择
(1).数码管的选择:
图7.CL5461AS
a,b,c,d,e,f,g为四位7段数码管的段选线,dp为数码管的小数点显示位,A1,A2,A3,A4为四位7段数码管的位选线
5.按键输入
设置独立式按键,其功能分别是“设置”、“+”、“-”、“负”。
图8.按键电路
6.蜂鸣电路
接通电源后,当温度超过系统设定温度的上限值或者系统出现故障时,单片机给三极管发周期性的方波信号,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性振动发生。
图9.报警电路
7.主电路
当温度低于设定温度是,单片机给主电路发高电平通过光电隔离开关控制双向晶阐管的导通,是主电路接通或关断市电(220V50HZ),从而控制加热元件的加热(制冷元件的制冷)
图10.主电路图
四、系统软件设计
1.程序流程图
图11.温度采样流程图
图12.中断
图13.主流程
五、系统调试仿真
图14.实时温度显示
图15
六、结束语
经过这次单片机的课程设计,我们接触到了更多平时没有接触到的仪器设备、元器件以及相关的使用高度经验,发现了自身许多不足之处,使我深刻体会到了所学理论知识的重要性。
另外在这次设计中,我体会到了51单片机的种种优势,体积小,重量轻,抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好等特点,即使是非电子计算机专业人员,通过学习一些专业基础知识以后也能依靠自己的技术力量,来开发所希望的单片机应用系统。
本文的温度控制系统,只是单片机广泛的应用更加广泛化。
首先,通过这次应用系统设计,在很大程度上提高了自己的独立思考能力和单片机的专业知识,也深刻了解写一篇应用系统的步骤和格式,以及不可少的几个阶段。
课程设计能够从理论设计和工程实践相结合、巩固基础知识与培养创新意识相结合、个人作用和集体协作结合等方面全方位的培养我们学生的素质。
我经过这次设计,熟悉了对一项课题进行研究、设计和实验的详细过程。
这些在我将来的工作和学习当中都会有很大的帮助。
有过这样的一次训练,相信在接下来的日子我们都会了,而且会做得更多。
其次,我学会了怎么样查阅资料和利用工具书。
平时课堂上所学习的只是大多数比较陈旧,这就要求我们更加积极地查阅当前最近的电子信息资料。
一个人所学所了解的总是有限,因此,当我在设计过程中需要一些我不曾学习过的知识时,我就有针对性地去查找了相关材料,并加以理解和利用。
这大大有助于我们提高自身的应用能力,而且增长了自己的见识,最新的专业知识。
而且,课程设计对我以前学过的知识起到了回顾作用,并对其加以进一步的消化和巩固。
更进一步的,课程设计培养了我严肃认真,实事求是的科学态度。
也让我明白了吃苦耐相对应的工程意识的重要。
参考文献:
[1]罗印升单片微机原理与应用北京:
机械工业出版社,2012,1
[2]谭浩强C程序设计北京:
清华大学出版社,2010,6
[3]康华光电子技术基础模拟部分高等教育出版社,2011,11,
[4]康华光电子技术基础数字部分高等教育出版社,2011,11,
[5]赵月飞,郭会平,胡仁喜Protel99se,北京:
机械工业出版社,2009,12
[6]陶红艳,余成波传感器与现代检测技术北京:
清华大学出版社,2009,3
附录1:
程序
/********************************************************************
*程序名;基于DS18B20的测温系统
*功能:
实时测量温度,超过上下限报警,报警温度可手动调整。
K1是用来
*进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限
*调节模式。
在正常模式下,按一下K2进入查看上限温度模式,显示1s左右自动
*退出;按一下K3进入查看下限温度模式,显示1s左右自动退出;按一下K4消除
*按键音,再按一下启动按键音。
在调节上下限温度模式下,K2是实现加1功能,
*K1是实现减1功能,K3是用来设定上下限温度正负的。
*********************************************************************/
#include//将AT89X52.h头文件包含到主程序
#include//将intrins.h头文件包含到主程序(调用其中的_nop_()空操作函数延时)
#defineuintunsignedint//变量类型宏定义,用uint表示无符号整形(16位)
#defineucharunsignedchar//变量类型宏定义,用uchar表示无符号字符型(8位)
ucharmax=0x00,min=0x00;//max是上限报警温度,min是下限报警温度
bits=0;//s是调整上下限温度时温度闪烁的标志位,s=0不显示200ms,s=1显示1s左右
bits1=0;//s1标志位用于上下限查看时的显示
voiddisplay1(uintz);//声明display1()函数(display.h头文件中的函数,ds18b20.h要用应先声明)
#include"ds18b20.h"//将ds18b20.h头文件包含到主程序
#include"keyscan.h"//将keyscan.h头文件包含到主程序
#include"display.h"//将display.h头文件包含到主程序
/***********************主函数************************/
voidmain()
{
beer=0;//关闭蜂鸣器
led=1;//关闭LED灯
timer1_init(0);//初始化定时器1(未启动定时器1)
get_temperature
(1);//首次启动DS18B20获取温度(DS18B20上点后自动将EEPROM中的上下限温度复制到TH和TL寄存器)
while
(1)//主循环
{
keyscan();//按键扫面函数
get_temperature(0);//获取温度函数
//keyscan();//按键扫面函数
display(temp,temp_d*0.625);//显示函数
alarm();//报警函数
//keyscan();//按键扫面函数
}
}
/********************************************************************
*程序名;__ds18b20_h__
*功能:
DS18B20的c51编程头文件
***************