毕业设计基于AT89S52单片机的温度控制系统设计.docx
- 文档编号:8155556
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:20
- 大小:181.33KB
毕业设计基于AT89S52单片机的温度控制系统设计.docx
《毕业设计基于AT89S52单片机的温度控制系统设计.docx》由会员分享,可在线阅读,更多相关《毕业设计基于AT89S52单片机的温度控制系统设计.docx(20页珍藏版)》请在冰豆网上搜索。
毕业设计基于AT89S52单片机的温度控制系统设计
单片机原理与应用课程设计说书
题目:
基于AT89S52单片机的温度控制系统
系部:
信息与控制工程学院
专业:
自动化
班级:
5班
学生姓名:
学号:
08032130327
指导教师:
2011年06月22日
目录
1设计内容与要求1
2设计方案2
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码显示缓冲区百位、十位、个位
OOH
45H
二进制显示缓冲区,高位在前
00H
50H以后
堆栈
PSW.5
报警允许标志F0=0时禁止
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芯片取下,对电路板进行通电检查,通过观察看是否有异常,然后用万用表测试各电源电压,若这些都没有问题,则接上仿真机进行联机调试观察个接口线路是否正常。
(2)各模块电路的调试。
①温度测量模块电路:
放大器先调零(调整电阻22千欧姆),然后调整放大器的输出,是0~60℃的温度变化对应于放大器的输出0~4.9∨,可利用冰箱进行调试。
②控制模块电路:
人为地将P1.4端接地(低电平),观察掉烤箱是否通电。
5.2软件调试
软件调试是利用仿真工具进行在线仿真调试,除发现和解决程序错误外,也可以发现硬件故障。
程序调试一般是一个模块一个模块的进行,一个子程序一个子程序的调试,最后连起来统调。
在单片机上把个模块分别进行调试使其正确无误,可以用系统编程器将系统固化到AT89S52的FLASHROM忠,接上电源脱机运行。
为了保证软件运行的稳定可靠,在软件中可以采用加软件陷阱和看门狗的方法,避免程序跑飞。
6总结
本设计使用AT89S52作为主控芯片进行控制,AT89S52芯片具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰性强和使用方便等独特优点,在数字、智能化方面有广泛的用途。
本系统是一个典型的闭环控制系统,采用最简单的通断控制方式,即当电烤箱温度达到设定值时断开加热电炉,当温度降到低于某值时接通电炉开始加热,从而保持恒温控制。
通过我们两个星期的坚持不懈的努力和老师的谆谆教导,我们终于完成了这个设计。
进过反复的调试,我们基本上完成了本设计所要求的目标。
这次设计激起了我们对这门课程浓厚的兴趣,立志发奋学好单片机。
同时,让我们也感到了平时所学知识的不足,在做设计的时候运用知识不够灵活。
最后,我要感谢同学们给我的各个方面的帮助和老师给我循序渐进的引导。
我将记住你们的帮助,学好单片机这门课程。
7附录
程序一:
ORG0000H
AJMPMAIN
ORG000BH
AJMPTT0
ORG0100H
MAIN:
MOVSP,#50H
MOV40H,#00H
MOV41H,#00H
MOV42H,#00H
MOV43H,#00H
MOV44H,#00H
MOV45H,#00H
MOVTMOD,#01H
MOVTL0,#B0H
MOVTH0,#3CH
SETBTR0
MOVIE,#82H
MOVR5,#100
LOOP:
ACALLKIN
SJMPLOOP
程序二:
;中断服务子程序TT0
TT0:
PUSHPSW
PUSHACC
PUSHR5
MOVTL0,#0BH
MOVTH0,#3CH
DJNZR5,LPP
MOVR5,#100
ACALLTADC;调用温度检测子程序
MOV45H,40H;ADC转化后的温度值送显示缓冲区
ACALLDISP;调用显示当前温度
ACALLCONT;温度控制
ACALLALARM;温度超限报警
POPR5
POPACC
POPPSW;恢复现场
LPP:
RETI
程序三:
;按键管理子程序
KEY:
MOV45H,41H
LCALLDISP
KEY0:
ACALLKEY1
JZKEY0
LCALLDISP
LCALLDISP
LCALLKEY1
JZKEY0
JBACC.0,K10
MOVA,#100
LJMPKEY3
K10:
JBACC.1,K1
MOVA,#10
LJMPKEY2
K1:
JBACC.,K0
MOVA,#01
LJMPKEY3
KEY2:
ADDA,41H
MOV41H,A
KEY3:
LCALLKEY1
JNZKEY3
LJMPKEY
RET
KEY1;MOVA,P1
CPLA
ANLA,#0FH
RET
程序四:
;温度检测子程序
TADC:
MOV40H,#00H
MOVR2,#04H
MOVDPTR,#FEF0H
TADC0:
MOV@DPTR,A
TADC1:
JNBIE1,TADC1
MOVXA,@DPTR
ADDA,40H
MOV40H,A
DJNZR2,TADC0
CLRC
MOVA,40H
RRCA
MOV40H,A
RET
程序五:
;温度控制子程序
TCONT:
MOVA,40H
CLRC
SUBBA,41H
JNCTCONT1
JNBF0,TCONT0
CLRC
SUBBA,#02H
JNCACC.7,TCONT1
TCONT0:
CLRP1.4
SJMPTCONT2
TCONT1:
SETBF0
SETBP1.4
TCONT2:
RET
程序六:
;显示子程序
DISP:
LCALLBINBCD
MOVSCON,#00H
MOVR2,#3H
MOVR0,42H
DISP0:
MOVDPTR,#TAB
MOVA,@R0H
MOVCA,@A+DPTR
MOVSUFF,A
DISP1:
JBCTI,DISP2
SJMPDISP1
DISP2:
INCR0
DJNZR2,DISP0
RET
TAB:
DB0,1,2,3,4,5,6,7,8,9;字码型表
BINBCD:
MOVA,45H;二进制转化成3个BCD码的转化子程序BINBCD
MOVB,#100
DIVAB
MOV42H,A
MOVA,#10
XCHA,B
DIVA,B
MOV43H,A
MOV44H,B
RET
程序七:
;温度超限报警子程序
ALARM:
MOVA,40H
CLRC
SUBBA,41H
JCALARM0
SETBF0
AJMPALARM1
ALARM:
MOVA,41H
CLRC
SUBBA,40H
ALARM1:
CLRC
SUBBA,#05H
JCALARM2
JNBF0,ALARM2
CLRP1.3
SETBP1.4
LCALLDELAY
SETBP1.3
ALARM2:
RET
DELAY:
MOVR5,#100
DEL1:
MOVR6,#10
DEL2:
MOVR7,#70H
DEL3:
NOP
NOP
DJNZR7,DEL3
DJNZR6,DEL2
DJNZR5,DEL1
RET
8参考文献
[1]何希才.集成电路及其应用实例[M].科学出版社,1998.2
[2]朱定华.单片机原理及接口技术实验[M].北京:
北方交通大学出版社,2003
[3]陈国平.MCS-51系列单片机系统原理与设计电子技术应用[M].冶金工业出版社,2003.6
[4]张鑫,华臻,陈书谦.单片机原理及应用[M].电子工业出版社,2005.8第1次印刷
[5]夏路易,石宗义.电路原理图与电路板设计教程[M].北京希望电子工业出版社,2002
[6]李光才,楼然笛.单片机课程设计实例指导[M].北京:
北京航空航天大学出版社,2004
[7]马忠梅,张凯.单片机的C语言应用程序设计[M].北京:
航空航天大学出版社,2007.1
[8]付家才.单片机控制工程实践技术[M].北京:
化学工业出版社,2004.3
指导教师评语:
成绩:
指导教师签字:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 基于 AT89S52 单片机 温度 控制系统 设计