毕业设计论文烘箱温度控制系统的设计Word格式文档下载.docx
《毕业设计论文烘箱温度控制系统的设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《毕业设计论文烘箱温度控制系统的设计Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
2.1单片机的基本组成和内部结构
(1)一个8位的CPU,负责运算与控制作用.
(2)128字节数据存储器RAM.
(3)4K字节Flash程序存储器ROM.
(4)4个8位并行I/O口,分别为P0、P1、P2、P3.
(5)3个16位定时器.
(6)6个独立中断源、4个中断优先级和中断控制系统.
(7)一个可编程全双工通用异步接收发送器UART(串行口).
(8)片内时钟振荡器电路.
(9)可寻址外部64KBRAM和ROM的总线扩展结构.
图2―1AT89C51系列单片机内部结构框图
图2―2AT89C51系列单片机内部结构简化框图
2.2AT89C51单片机引脚图及各引脚的功能
2.2.1单片机主控电路的主要元件AT89C51引脚图
AT89C51单片机引脚如图2-1所示:
图2-1AT89C51
引脚图
2.2.2AT89C51单片机各引脚功能
(1)I/O引脚(4×
8=32):
P0,P1,P2,P3。
1、P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
2、P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
3、P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
4、P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表2-2所示:
表2-2P3口的第二功能
口管脚
备选功能
P3.0RXD
串行输入口
P3.1TXD
串行输出口
P3.2/INT0
外部中断0
P3.3/INT1
外部中断1
P3.4T0
记时器0外部输入
P3.5T1
记时器1外部输入
P3.6/WR
外部数据存储器写选通
P3.7/RD
外部数据存储器读选通
P3口同时为闪烁编程和编程校验接收一些控制信号。
(2)控制引脚(4个):
1、ALE——地址锁存使能。
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
2、/PSEN——外部程序存储器ROM的选通信号。
在由外部程序存储器ROM取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器RAM时,这两次有效的/PSEN信号将不出现。
3、/EA/VPP——/EA访问外部程序存储器控制信号。
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
4、RSE——复位。
当晶振在运行中,只要复位管脚出现2个机械周期高电平即可复位。
内部有扩散电阻连接到Vss,仅需要外接一个电容到Vcc即可实现上电复位。
(3)时钟晶体引脚
(2):
1、XTAL1——反相振荡放大器输入和内部时钟发生电路输入。
2、XTAL2——反相振荡放大器输出。
要使用外部时钟源驱动器件时,XTL2可以不连接而由XTL1驱动。
外部时钟信号无占空比的要求,因为时钟通过触发器二分频输入到内部时钟电路。
(4)电源引脚
(2)
1、Vss——地。
2、Vcc——电源。
提供掉电、空闲、正常工作电压.。
第三章控制系统的硬件电路组成部分
3.1烘箱温度控制系统的工作原理及它的组成部分
3.1.1烘箱温度控制系统的工作原理
根据烘箱控制的设定温度范围为15℃至90℃,控制误差为±
2℃的这一要求,烘箱的温度控制系统可采用开关控制方案,通过一个继电器隔离输出控制电热丝的通断。
当烘箱内的温度低于设定温度时,继电器就会闭合,电热丝接通,使烘箱开始加热温度升高;
反之则继电器断开,烘箱停上加热。
本系统是以AT89C51单片机为核心,组成的一个集温度的采集、处理、显示、自动控制为一身的温度闭环控制系统,其原理框图见图3-1。
图中硬件组成主要由以下几部分组成:
单片机信息处理、温度采集、信号转换、显示、报警、键声及控制部分。
具体工作如下:
利用集成温度传感器实现对温度的采集,然后信号通过运算放大器、保持器和
A/D转换器将模拟量变为数字量送入单片机进行处理。
我们预先从键盘输入一个温度范围(上限报警值和下限报警值),通过温度采集系统检测出环境的温度,由数字显示电路显示出当时的实际温度,当温度高于或低于报警的上下限值时,报警器发声,提醒工作人员此时温度太高或太低,以做出相应的措施。
其中:
1、为使整个系统的运行更加完善,本系统在设计时匹配了矩阵式键盘以及由四位LED数码管组成的显示器以显示实际的温度值及预置温度值。
2、为提高系统的抗干扰能力,在原有硬件的基础上设计了电源检测、报警等电路以促进整个系统的功能更加完善。
3.1.2烘箱温度控制系统的组成部分
温度传感器及A/D转换器的选择。
本系统采用热电偶作为温度传感器。
烘箱内的温度通过K分度热电偶和其专用的数字转换器MAX6675测得,它是Maxim公司新近推出的一个集成了热电偶放大器、冷端补偿、A/D转换器及SPI串口的热电偶放大器与数字转换器。
该芯片的使用可使硬件电路大为简化,调试更加方便。
微处理器:
本系统选用AT89C51单片机和12MHZ的晶振,每个机器周期为1uS.
显示及报警电路。
显示电路用用六个数码管来显示当前的目标温度和实际温度。
采用直接驱动法驱动六个数码管,共需6×
8=48个I/O线。
而采用解码器驱动也要4×
6=24个I/O线,很显然,我们的单片机没有这么多可用的I/O口资源,因此,在这里采用动态扫描显示法以节省I/O线。
报警电路通过P1.4驱动蜂呜器来实现。
温度设定通过三个按键来完成设定,一个作为功能键,另外两个分别用来增加和减小设定温度值,因此采用的独立式的键盘接口。
在按键较多,一般采用行列式键盘接口,以节省I/O线。
驱动电路。
本系统由三极管驱动继电器来控控制电热丝的通断。
在单片应用系统中,为防止现场强电磁的干扰或工频电压通过输出通道反串到测控系统,一般采用通道隔离技术。
输出通道的隔离最常用的是光电耦合器,简称光耦,常用的开关量输出接口除断电器输出外,还有双向可控硅输出,固态断电器输出等。
烘箱内温度经热电偶检测、测量放大、模数转换后送至单片机,由单片机调用显示程序显示当前温度,并与设计定值相比较来决定电热丝的通断。
功率驱动、输出继电器、电热丝构成一个输出通道,它与温度采集电路一起构成一个闭合回路,以保证箱内温度恒定.在控制器检测到箱内温度超过极限值时,报警电路动作。
图3-1温度控制系统原理框图
3.2温度控制电路
8031对温度的控制是通过可控硅的调功方式来实现,双向可控硅SCR和加热丝串接在交流220V、50HZ市电回路中。
在给定周期T内,8031只要改变可控硅管的接通时间即可改变加热丝的功率,以达到调节温度的目的。
可控硅接通时间可以通过可控硅控制极上触发脉冲控制。
该触发脉冲由8031用软件在P1.3引脚上产生,在过零同步脉冲同步后经光电耦合管和驱动器输出送到可控硅的控制极上。
3.3温度检测电路
温度检测电路就是由温度检测和变送器、接口电路等组成的。
本系统的温度检测的设计是以热电偶为检测元件的,相应的单片机温度控制系统电路原理图如图3-2所示。
图3-2单片机温度控制系统电路原理图
3.3.1温度检测和变送器
温度检测元件及变送器的类型选择与被控温度的范围和精度等级有关。
对于0℃-1000℃的测量范围,采用镍铬/镍铝热电偶,分度号为EU,其相应的输出信号为0mV-41.32mV。
变送器由毫伏变送器和电流/电压变送器组成:
毫伏变送器用于把热电偶输出的0mV-41.32mV变换成4mA-20mA的电流;
电流/电压变送器用于把毫伏变送器输出的4mA-20mA电流变换成0-5V的电压。
为了提高测量的精度,变送器可以进行零点迁移。
例如:
若温度测量范围为500℃-1000℃,则热电偶输出为20.6mV-41.32mV,使毫伏变送器零点迁移后输出4mA-20mA范围电流后,送入ADC0809进入转换,由8位A/D转换器转换为相应的数字量送入单片机。
采取这种方案,能够使量化温度误差达到1.96℃以内,能够满足精度要求。
3.3.2接口电路的设计
接口电路采用MCS-51系列单片机8031,外围扩展并行接口8155,程序存储器EPROM2764,模数转换器ADC0809等芯片。
由图3-3可见,在P2.0=0和P2.7=0时,8155选中它内部的RAM工作;
在P2.0=1和P2.7=0时,8155选中它内部的三个I/O端口工作。
相应的地址分配为:
0000H-00FFH
8155内部RAM
0100H
命令/状态口
0101H
A口
0102H
B口
0103H
C口
0104H
定时器低8位口
0105H
定时器高8位口
8155用作键盘/LED显示器接口电路。
图3中键盘有30个按键,分成六行(L0-L5)五列(R0-R4),只要某键被按下,相应的行线和列线才会接通。
图中30个按键分三类:
一是数字键0-9,共10个;
二是功能键18个;
三是剩余两个键,可定义或设置成复位键等。
为了减少硬件开销,提高系统可靠性和降低成本,采用动态扫描显示。
A口和所有LED的八段引线相连,各LED的控制端G和8155C口相连,故A口为字形口,C口为字位口,8031可以通过C口控制LED是否点亮,通过A口显示字符。
图3-38155用作键盘/LED显示器接口电路
第四章系统的软件控制程序
系统的操作过程和工作过程在程序的设计过程中起着很重要的指导作用,因此在软件设计之前应该首先分析烘箱的工作流程。
4.1软件的总体设计
4.1.1程序设计原则
程序设计的总体原则是自上而下,采用模块化的设计思路。
温度控制程序的设计应考虑如下:
1)键盘扫描、键码识别和温度显示;
2)温度采样、数字滤波;
3)数据处理;
4)越限报警和处理;
5)PID计算、温度标度转换。
4.1.2各个功能模块的功能说明
根据对于工作流程的分析,系统软件可以分为一下几个功能模块:
(1)显示程序,将设置温度和当前的实际温度显示出来;
(2)键处理程序,扫描三个按键,改变设定温度值;
(3)定时采样程序,由于温度惯性大,采样周期定为1S是合适的;
(4)输出控制程序,根据给定值和当前实际温度值决定是否加热。
4.1.3参数传递
4个模块之间的参数传递较为简单,键处理程序输出给定值,给定值存放在内存单元TAIM中。
采样程序输出温度实际值,存放在内存单元TAIM1中。
输出控制模块与温度显示模块只需要使用TAIM与TAIM1的值。
1S定时由定时器完成,不涉及与其它模块进行数据交换。
4.2温度检测电路的设计
程序流程图如下:
4个模块的程序都得由单片机来执行,通常采用定时中断的方法来合理分配程序执行的时机与时间。
完成同样的功能,可以采用的方法很多。
下面的程序流程图图4-1是其中的一种方案。
中断程序完成动态扫描显示以及1S的定时,键盘扫描、1S时间到后的温度采样、输出控制都放在主程序执行。
主程序与中断程序利用一个标志位来传递1S定时到信息。
图4-1温度采集子程序流程图
温度采集采用了一块热电偶转换和接口芯片MAX6675。
MAX6675采用8引脚SO帖片封装。
MAX6675的主要特性如下:
①简单的SPI串行口温度值输出;
②0℃~+1024℃的测温范围;
③12位0.25℃的分辨率;
④片内冷端补偿;
⑤高阻抗差动输入;
⑥热电偶断线检测;
⑦低功耗特性;
⑧工作温度范围-20℃~+85℃;
由于AT89C51不具备SPI总线接口,故这里采用模拟SPI总线的方法来实现与MAX6675的接口,在此给出温度采集子程序:
;
位定义
SOBITP1.2
CSBITP1.1
SCKBITP1.0
数据字节定义
DATAHDATA30H;
读取数据高位
DATALDATA31H;
读取数据低位
TDATAHDATA32H;
温度高位
TDATALDATA33H;
温度低位
读温度值子程序
READY:
CLRCS;
停止转换并输出数据
CLRCLK;
时钟变低
MOVR2,#08H
READH:
MOVC,SO
RLCA;
读D15~D8高8位数据
SETBCLK
NOP
CLRCLK
DJNZR2,READH
MOVDATAH,A;
将读取的高8位数据保存
MOVR2,#08H
READL:
MOVC,SO;
读D7~D0低8位数据
RLCA
DJNZR2,READL
MOVDATAL,A;
将读取的低8位数据保存
SETBCS;
启动另一次转换过程
RET
上面的程序读取的两个字节的数据并不直接温度值,我们将读取的16位数据去掉无效位后转换成12位的温度值。
4.3主程序清单
程序使用TO作为定时器
SCLKBITPL.3
DINBITPL.4
DOUTBITPL.5
DRDYBITPL.6
RESETBITPL.7
ORG0H
LJMPMAIN
ORG0BG
LJMPTIME0
ORG30H
MAIN:
MOVSP,#60H;
程序初始化
CLRPSW.3
CLRPSW.4
MOVR0,#10H
MOVR1,#60H
CLRA
MAIN1:
MOV@R0,A
INCR0
DJNZR1,MAIN1
MOVTMOD,#01H;
定时初始化
MOVTL0,#78H;
晶振=12MHZ,定时=5ms
MOVTH0,#0ECH
SETBET0;
设置TO中断
SETBTR0
SETBEA
MAIN2:
LCCALLGEI;
设定温度
JBP1,2,MAIN2;
有运行健
SETB20H.0;
运行健位
SJMP$
定时器TO中断
TIMET0:
PUSHPSW;
保护现场
PUSHACC
SETBPSW.3;
选工作寄存器组1
CLRTR0重设定时时间常数
MOVA,TL0
ADDA,#0E9H
MOVTL0,A
MOVA,TH0
ADDCA,#0BIH
MOVTH0.A
INC25H;
计数器+1
MOVA,25H
CJNEA,#50,TIME1
MOV25H,#0;
=250ms,改变显示
JB20H.0.TIME2
MOV30H,#0C1H
LCALLDISPLAY;
设定显示
TIME1:
LJMPRETURN
TIME2:
LCALLSAMPLE
MOV30H,#0C1H;
正式测量显示
LCALLDISPLAY;
显示温度
LCALLKONGZHI;
温度控制
LCALLBAOJING;
判温度范围
RETURN:
POPACC;
恢复现场
POPPSW
RETI
END
4.4中断服务程序设计
中断服务程序是温度控制系统的主体程序,用于启动数/模转换器、读入采样数据、数字滤波、越限温度报警和越限处理、PID计算和输出可控硅的触发脉冲等。
P1.3引脚上输出的该同步触发脉冲宽度由T1计数器的溢出中断控制,8031利用等待T1溢出中断的空闲时间(形成P1.3输出脉冲顶宽)完成把本次采样值转换成显示值而放入显示单元缓冲区和调用温度显示程序。
8031从T1中断服务程序返回后即可恢复现场和返回主程序。
下图4-2为中断服务程序流程图。
图4-2 中断服务程序流程图
对于一般线性仪表来说,标度转换公式为:
Tx=A0+(Am-A0)
其中,A0为一次测量仪表的下限;
Am为一次测量仪表的上限;
Vx为实际测量值(工程量);
Vm为仪表上限对应的数字量;
V0为仪表下限对应数字量。
4.5显示子程序设计
图4-3显示子程序流程图
为保证显示的效果,该系统采用定时中断来控制动态扫描显示。
显示子程序框图如图4-3所示,定时器定时时间为5mS,子程序每执行一次刷新一位数码管的显示,因此扫描周期是30mS,完全满足动态显示的要求。
当6个数码管全部刷新显示一遍后,程序要进行显示数据的初始化。
初始化的内容有2点:
(1)将TAIM和TAIM1中的温度给定值、温度实际值的各位(百、十、个位)拆开并存放到显示缓冲区;
(2)将数据指针和位控码指向第一位显示数据。
在主程序初始化时,也要进行一次显示数据的初始化。
4.6键盘扫描处理程序
键盘扫描可以采用中断方式或者查询方式,因为这一系统的程序并不长,因此这里采用了查询的方式,即在每个主程序的执行周期里对键盘进行一次扫描。
程序如下:
SCANKEY:
JNBP3.3,SETT;
有功能键按下,则跳转
JNBP3.4,INCT;
有增加键按下,则跳转
JNBP3.5,DECT;
有减小键按下,则跳转
JMPSCANKRET
SETT:
CAL