基于at89s52单片机的温度控制系统设计Word格式文档下载.docx
《基于at89s52单片机的温度控制系统设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于at89s52单片机的温度控制系统设计Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。
3硬件电路设计3
3.1温度显示功能3
3.2按键功能4
3.3报警功能4
3.4温度传感器4
3.5放大器4
3.6ADC转换器5
3.7温度控制5
3.8其他可扩展电路6
4软件设计6
4.1主程序流程图7
4.2中断服务程序7
4.3键盘管理模块9
4.4温度检测模块9
4.5温度控制模块10
4.6显示模块11
4.7温度越限报警模块11
5软硬件调试13
5.1硬件调试13
5.2软件调试13
6总结14
7附录15
8参考文献18
1设计内容与要求
用AT89S52单片机制作一个电烤箱,而且要满足以下技术指标:
(1)电烤箱由1kW电炉加热,最高温度为120℃。
(2)电烤箱温度可设置,电烤过程恒温控制,温度控制误差≤±
2℃。
(3)实时显示温度和设置温度,显示精确到1℃。
(4)温度超出预置温度±
5℃时发超限报警,对升降温过程的线性不做要求。
2设计方案
产品的工艺不同,控制温度的精度也不同,因而所采用的控制算法也不同。
就温度控制系统的动态特性来讲,基本上都是具有纯滞后的一阶环节,当系统精度及温控的线性性能要求较高时,多采用PID算法或达林顿算法来实现温度控制。
本系统是一个典型的闭环控制系统。
从技术指标可以看出,系统对控制精度的要求不高,对升降温过程的线性也没有要求,因此,系统采用最简单的通断控制方式,即当电烤箱温度达到设定值时断开加热电炉,当温度降到低于某值时接通电炉开始加热,从而保持恒温控制。
根据系统要求,画出控制电烤箱的框图。
如图2-1所示。
该系统包括温度测量(温度传感器、放大器、ADC转换器)。
温度控制(光电隔离、驱动电路、可控硅电路、电炉)、温度给定(按键)、温度显示和报警等几部分。
图2-1电烤箱总框图
AT89S52是ATMEL所生产的一种低功耗、高性能CMOS8位微控制器,具有8k系统可编程Flash存储器,其芯片内部具有时钟振荡器及8个向量中断源,内部程序存储器为8KB,内部数据存储器为256字节。
3硬件电路设计
根据图3-1,可以设计出基于单片机控制电烤箱的硬件电路图,如图2-2所示,AT89S52的晶振频率为6MHz。
其他各部分的选择如下所示。
图3-1硬件电路图
3.1温度显示功能
温度显示电路,利用单片机串行口外接移位寄存器74LS164,采用3位LED数码显示器,停止加热时显示设定温度,启动加热时显示当前烤箱温度。
采用串行口扩展的静态显示电路作为显示接口电路。
3.2按键功能
为使系统简单紧凑,键盘只设置3个功能键,分别是启动、“百位+1”、“十位+1”和“个位+1”键,由P1口P1.0、P1.1、P1.2低3位作为键盘接口。
利用+1按键可以分别对预置温度的百位、十位和个位进行加1设置,并在LED上显示当前设置值。
连续按动相应位的加1键即可实现0℃~120℃的温度设置。
按键电路如图3-2所示。
图3-2按键电路
3.3报警功能
报警功能由蜂鸣器实现。
当由于意外因素导致烤箱温度高于设置温度时,P1.3口送出的低电平经反向器驱动蜂鸣器鸣叫报警。
3.4温度传感器
采用AD590集成温度传感器,它测量温度的范围为-55~+150℃,有非常好的线性输出特性。
其中AD590是美国ANALOGDEVICES公司的单片集成两端感温电流源,电源电压范围为4~30V,可以承受44V正向电压和20V反向电压,因而器件即使反接也不会被损坏,输出电阻为710mΩ,精度高,非线性误差仅为±
0.3℃。
AD590测量热力学温度、摄氏温度、两点温度差、多点最低温度、多点平均温度的具体电路,广泛应用于不同的温度控制场合由于AD590精度高、价格低、不需辅助电源、线性好,常用于测温和热电偶的冷端补偿。
3.5放大器
放大器采用集成运算放大器µ
A741,741运算放大器的输出级由NPN晶体管以及两个电阻组成,主要的功能是电压位准移位器,或是Vbe的倍增器。
由于基极端的偏压已经固定,因此晶体管集极至射极端的压降恒为一定值。
运算放大器的输出级电压摆幅最高约可比正电源低1V,由晶体管的集极-射极饱和电压。
虽然741运算放大器的输出阻抗不如理想运算放大器所要求的等于零,不过在连接成负回授组态应用时,其输出阻抗确实非常接近零。
:
虽然早期741运算放大器在音响设备或是仪器上被广泛使用,但是今日已经有很多性能更好的运算放大器取代了741的功能,例如抗噪声的表现更好。
对于741与其他早期的运算放大器而言,它们的共模抑制比逊于现代的运算放大器,在实际应用时容易造成干扰或是噪音。
3.6ADC转换器
A/D转换器件的选择主要取决于温度的控制精度。
本系统要求温度控制误差≤±
2℃,采用8位A/D转换器,其最大量化误差为+-0.2℃,完全能够满足精度要求。
这里我们采用ADC0809作为A/D转换器。
电路设计好后,调整变送器的输出,使0℃~500℃的温度变化对应于0~4.9V的输出,则A/D转换对应的数字量为00H~FAH,即0~250,则转换结果乘以2正好是温度值。
用这种方法一方面可以减少标度转换的工作量,另一方面还可以避免标度转换带来的计算误差。
ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D转换器。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
是目前国内应用最广泛的8位通用A/D芯片。
主要特性为8路输入通道,8位A/D转换器,即分辨率为8位;
具有转换起停控制端;
转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时);
模拟输入电压范围0~+5V,不需零点和满刻度校准;
工作温度范围为-40~+85摄氏度;
单个+5V电源供电;
低功耗,约15mW。
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图3-2所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。
图3-2ADC0809内部结构图和外部引脚图
3.7温度控制
电烤箱控制采用可控硅来实现,双向可控硅和电炉电阻丝串接在交流220V市电回路中。
单片机的P1.4口通过光电隔离器MOC3011和驱动电路送到可控硅的控制端,由P1.4口的高低电平来控制可控硅的导通与断开,从而控制电阻丝的通电加热时间。
光电隔离器MOC3011对输入、输出电信号起隔离作用,光耦合器一般由三部分组成:
光的发射、光的接收及信号放大。
输入的电信号驱动发光二极管(LED),使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。
这就完成了电—光—电的转换,从而起到输入、输出、隔离的作用。
由于光耦合器输入输出间互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干扰能力。
又由于光耦合器的输入端属于电流型工作的低阻元件,因而具有很强的共模抑制能力。
3.8其他可扩展电路
对于要求更高的系统,在现有电路的基础上,还-可以视需要自行扩展以下接口电路:
实时时钟电路:
连接实时时钟芯片DS12887可以获得长的采样周期,显示年、月、日、时、分、秒,而其片内带有的114B非易失性RAM,可用来存入需长期保存但有时也需变更的数据。
如采样周期、PID控制算法的系数KP、KI、KD等;
“看门狗”电路:
连接集成监控芯片MAX705可实现对主电源VCC的监控,提高系统的可靠性。
4软件设计
单片机资源分配情况。
数据存储器的分配与定义见表4.1。
表4.1
地址
功能
初始化值
40H
当前检测温度,高位在前
00H
41H
预置温度
OOH
42H~44H
BCD码显示缓冲区百位、十位、个位
45H
二进制显示缓冲区,高位在前
50H以后
堆栈
PSW.5
报警允许标志F0=0时禁止
程序存储器:
EPROM2764的地址范围为0000H~1FFFH
I/O口:
P1.0~P1.2——键盘输入;
P1.3、P1.4——报警控制和电炉控制。
A/D转换器0809:
通道0~通道7的地址为7FF8H~7FFFH,使用通道0。
4.1主程序流程图
主程序采用中断嵌套方式设计,各功能模块可直接调用。
主程序完成系统的初始化,温度预置及其合法性检测,预置温度的显示及定时器0设置,流程图如图4-1所示。
程序为程序一。
图4-1主程序流程图
4.2中断服务程序
中断由T0产生,每隔5秒中断一次。
功能:
温度检测;
A/D转换;
读入采样数据;
数字滤波;
朝鲜温度报警;
温度控制;
显示。
流程图如图4-2所示。
程序为程序二。
图4-2中断程序流程图
4.3键盘管理模块
上电或复位后系统处于键盘管理状态,其功能是监测键盘输入,接收温度预置和启动键。
程序设有预置温度合法检测报警,当预置温度超过500℃时会报警并将温度设定在500℃。
键盘管理子程序流程如如图4-3所示,程序为程序三。
图4-3按键管理子程序流程图
4.4温度检测模块
A/D转换采用查询方式。
为提高数据采样的可靠性,对采样温度进行数字滤波。
数字滤波的算法很多,这里采用4次采样取平均值的方法。
如前所述,本系统A/D转换结果乘2正好是温度值,因此,4次采样的数字量之和除以2就是检测的当前温度。
检测结果存入40H。
温度检测子程序流程图如图4-4所示。
程序为程序四。
图4-4温度检测子程序流程图
4.5温度控制模块
将当前温度与预置温度比较,当前温度小于预置温度时,继电器闭合,接通电阻丝加热;
当前温度大于预置温度时,继电器断开,停止加热;
当二者相等时电炉保持原来状态;
当前温度降低到比预置温度低2℃时,再重新启动加热;
当前温度超出报警上下限时将启动报警,并停止加热。
由于电炉开始加热时,当前温度可能低于报警下限,为了防止误报,在未达到预置温度时,不允许报警,为此设置了报警允许标志F0。
模块流程见图4-5。
程序见程序五。
图4-5温度控制子程序流程图
4.6显示模块
显示子程序的功能是将显示缓冲区45H的二进制数据先转换成三个BCD码,分别存入百位、十位和个位显示缓冲区(42H、43H和44H单元),然后通过串口送出显示。
程序见程序六。
4.7温度超限报警模块
报警上限温度值为预置温度+5℃,即当前温度上升到高于预置温度+5℃时报警,并停止加热;
报警下限温度值为预置温度-5℃,即在当前温度下降到低于预置温度-5℃,且报警允许时报警,这是为了防止开始从较低温度加温时误报警。
报警的同时也关闭电炉。
图4-6为报警子程序流程图。
程序见程序七。
图4-6
图4-5报警子程序流程图
5软硬件调试
5.1硬件调试
硬件的调试主要是把电路各种参数调整到符合设计要求。
具体步骤如下:
(1)先排除硬件电路故障,包括设计型错误和工艺性故障。
一般原则实现静态后动态。
利用万用表或逻辑测试仪器,检查电路中的各器件以及引脚连接是否正确,是否有短路故障。
首先将单片机AT89S52芯片取下,对电路板进行通电检查,通过观