基于单片机的温度控制系统毕业设计论文.docx

上传人:b****7 文档编号:23601696 上传时间:2023-05-18 格式:DOCX 页数:35 大小:292.35KB
下载 相关 举报
基于单片机的温度控制系统毕业设计论文.docx_第1页
第1页 / 共35页
基于单片机的温度控制系统毕业设计论文.docx_第2页
第2页 / 共35页
基于单片机的温度控制系统毕业设计论文.docx_第3页
第3页 / 共35页
基于单片机的温度控制系统毕业设计论文.docx_第4页
第4页 / 共35页
基于单片机的温度控制系统毕业设计论文.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

基于单片机的温度控制系统毕业设计论文.docx

《基于单片机的温度控制系统毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的温度控制系统毕业设计论文.docx(35页珍藏版)》请在冰豆网上搜索。

基于单片机的温度控制系统毕业设计论文.docx

基于单片机的温度控制系统毕业设计论文

基于单片机的温度控制系统

目录

第一章绪论1

1.1技术指标1

1.2控制方案1

第二章系统结构及主要元器件2

2.1电烤箱温度控制系统结构2

2.2制作电烤箱主要的元器件2

2.3部分元器件的简单介绍2

第三章硬件设计5

3.1AT89C51单片机与ADC0809接口5

3.2放大器电路设计5

3.3键盘及显示电路的设计6

第四章软件部分设计9

4.1工作流程9

4.2功能模块9

4.3资源分配9

4.4功能软件设计10

第五章系统仿真与调试15

5.1软件简介15

5.2仿真与调试16

结论17

参考文献18

第一章绪论

随着社会的不断发展,人们改造自然的能力也在不断的提高。

机器的诞生,为我们减少了部分或者全部的脑力劳动和体力劳动。

电子技术的诞生更是带来了翻天覆地的变化。

机电控制系统成为机械技术与微电子技术集成的共性关键技术。

人们通过它可以使机械完全按照自己的意愿来执行。

本文介绍了以AT89C51单片机为核心的电烤箱温度控制系统。

电烤箱的温度控制系统有两个部分组成:

硬件部分和软件部分。

其中硬件部分包括:

单片机电路、传感器电路、放大器电路、转换器电路、以及键盘和显示电路。

软件部分包括:

主程序、运算控制程序、以及各功能实现模块的程序。

文章最后对本设计进行了总结。

温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的。

根据温度变化快慢,并且控制精度不易掌握等特点,本文电烤箱的温度控制为模型,设计了以AT89C51单片机为检测控制中心的温度控制系统。

温度控制采用PID数字控制算法,显示采用3位LED静态显示。

该设计结构简单,控制算法新颖,控制精度高,有较强的通用性。

1.1技术指标

电烤箱的具体指标如下:

1、电烤箱由1kW电炉加热,最高温度为120℃;

2、电烤箱温度可设置,电烤过程恒温控制,温度控制误差≤±2℃;

3、实时显示温度和设置温度,显示精度为1℃;

4、温度超出设置温度±5℃时发超限报警,对升温和降温过程不作要求。

1.2控制方案

产品的工艺不同,控制温度的精度也不同,因而所采用的控制算法也不同。

就温度控制系统的动态特性来讲,基本上都是具有纯滞后的一阶环节,当系统精度及温控的线性性能要求较高时,多采用PID算法来实现温度控制。

本系统是一个典型的闭环控制系统。

从技术指标可以看出,系统对控制精度的要求不高,对升降温过程的线性也没有要求,因此,系统采用最简单的通断控制方式,即当烘干箱温度达到设定值时断开加热电炉,当温度降到低于某值时接通电炉开始加热,从而保持恒温控制。

第二章系统结构及主要元器件

2.1电烤箱温度控制系统结构

温度检测部分

人机对话部分

热电偶

变送器

A/D转换器器

温度显示

键盘

温度控制部分

主机

可控硅

调功器

光耦

电炉

声音报警

驱动器

 

图2-1电烤箱温度控制系统结构

2.2制作电烤箱主要的元器件

1、AT89C51单片机

2、传感器

3、A/D转换器

4、放大器

5、键盘及显示

2.3部分元器件的简单介绍

2.3.1AT89C51单片机

1.概述

AT89C51单片机是美国Intel公司的8位高档单片机系列。

也是目前应用最为广泛的一种单片机系列。

其内部结构简化框图如下所示。

AT89C51系列单片机主要有CPU、存储器(包括RAM和ROM)、I\O接口电路及时钟电路等部分组成。

2.AT89C51单片机引脚功能

I\O引脚共32根。

①PO口:

P0.0-P0.7统称为PO口是8位双向I/O口线。

P0口即可作为地址/数据总线使用,又可作为通用的I/O口线。

在不接片外存储器与不扩展I/O口时,可作为准双向输入/输出口。

在接有片外存储器或扩展I/O时,P0口分时复用为低8位地址总线和双向数据总线。

②P1口:

P1.0-P1.7统称为P1口。

是8位准双向I/O口线。

P1口作为通用的I/O口使用。

③P2口:

P2.0-P2.7统称为P2口。

是8位准双向I/O口线。

P2口即可作为通用的I/O口使用。

也可作为片外存储器的高8位地址线。

与P0口组成16位片外存储器单元地址。

④P3口:

P3.0-P3.7统称为P3口。

是8位准双向I/O口线。

P3口除作为准双向口使用外。

每个引脚还具有第二功能。

P3口的每一个引脚均可独立定义为第一功能的输入输出或第二功能,P3口的第二功能如下表所示:

P3口的第二功能

P3.0RXD串行口输入

P3.1TXD串行口输出

P3.2/IM0外部中断0输入

P3.3/IM1外部中断1输入

P3.4T0定时/计数器0计数输入

P3.5T1定时/计数器1输入

P3.6/WR片外RAM写选通信号(输出)

P3.7/RD片外RAM读选通信号(输出)

2.3.2传感器

传感器一般由敏感元件,转换元件和转换电路三部分组成。

其组成框图如2-7所示。

图2-2传感器组成框图

敏感元件,它是直接感受被测量并输出与被测量成确定关系的某一种量的元件。

转换元件,敏感元件的输出就是它的输入。

它把输入转换成电路参量。

转换电路,上述电路参数接入转换电路,便可转换成电量输出。

2.3.3A/D转换器ADC0809

1.ADC0809的内部逻辑结构(如图2-9)

如图,多路开关可达通讯员89模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换。

地址锁存与译码电路完成对A、B、C三个地址供进行锁存和译码,其译码输出用于通道选择。

8位A/D转换器是逐次逼近式,由控制时序电路,逐次逼近寄存器,树状开关以及其256R电阻下型网络等组成

输出锁存器用于存放和输出转换得到的数字量

2.ADC0809的引脚及各引脚功能

图2-3ADC0809内部逻辑结构图

各引脚功能如下:

①、INT—2NO:

8咱模拟量输入引脚,ADC0809对输入模拟量的要求主要有二信号单极性,电压范围0~5V;若信号过小还需要进行放大。

另外,在A/D转换过种中,模拟量输入的值不应变化太快,因此,对变化速度快的模拟量在输入前应增加采样保持电路。

②、A、B、C:

地址线,A为低位地址,C为高位地址用于对模拟通道进行选择

③、ALE:

地址锁存允许信号,在对应ALE跳转,A、B、C地址状态送入地址锁存器中。

④、START:

转换启动信号。

START上跳转时,所有内部寄存器清0;START下跳转时,开始进行A/D转换;在A/D转换;在A/D转换期间,START应保持低电平

⑤、DT~D0:

数据输出线,其为三态缓冲输出形式,可以和单片机的数据线直接相连

⑥、DE:

输出允许信号,ADC0809的内部设有时钟电路,所需时钟,信号由外界提供,因此有时钟信号引脚。

通常使用频率为500KHZ的时钟信号。

⑦、CLK:

时钟信号,ADC0809的内部设有时钟电路,所需时钟信号由外界提供,因此有时钟信号,通常使用频率为500KHZ的时钟信号

⑧、EOC:

转换给结束状态信号,EOC=0,正在进行转换;EOC=1,转换结束。

该状态信号即可作为查询的状态标志,又可以作为中断请求信号时使用。

⑨、Vcc:

+5电源

⑩、Vref:

参考电压正端参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准,其曲型值为+5V(Vref(+)=+5V,Vref(-)=0)

第三章硬件设计

系统的硬件部分包括单片机电路、A/D转换器电路、传感器电路、放大器电路、键盘及显示电路五部分。

其各部分连接关系已在第二章介绍过了如图2-1所示。

3.1AT89C51单片机与ADC0809接口

ADC0809与AT89051单片机边接如图2-11所示,电路连接主要涉及两个问题,一是不是路模拟信号通道选择,二是A/D转换完成后数据的传送

1.8路模拟通道选择

A、B、C分别接地址锁存器提供的低三位地址。

只要把三位地址写入0809中的地址锁存器就实现了模拟通道选择。

对系统来说,地址锁存器是一个输出口,为了把三位地址写入,还要提供口地址。

2.数据的传输方式

A.定时传输方式

B.查询方式

C.中断方式

图3-1ADC0809与单片机的连接

3.2放大器电路设计

传感器是将待测的物理量或化学量转换成电信号输出。

但其输出的信号通常都很小,需要进行放大。

传感器的信号放大,根据具体情况可采用分立元件放大器(晶体管放大器)和集成元件放大器(运算放大器)两种。

3.3键盘及显示电路的设计

3.3.1键盘接口电路

1.键盘的工作原理

A.按键的确认

在单片机应用系统中,按键都是以开关状态来设置控制功能或能入数据的,键的半合与否,反映在电压上就是呈高电平或低电平,如果高电平表示断开的话,那么低电平就是表示闭合,所以通过电平的高代状态的检测,使可以克认按键接下与否。

B.按键的抖动处理

当按键被迫按下或释放时,通常伴随有一定的时间的触点机械抖动,然后其独占才稳定下来,抖动时间一般为5~10ms,在使用过程,必须去抖措施。

去抖有硬件和软件两种方法,硬件方法通常采用通过RS触发器连接按键除抖,软件方法采用昝方法除抖,其过程是在检测到有按键按下时,进行一个10ms左右的昝程序后,若该键仍保持闭合状态,则确认该键处于讨债状态,同理,在检测到该键释放后,也应珠步骤进行确认,从而可消除抖动的影响。

2.独立工按键

独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会其他I/O口线的状态

3.矩阵式按键

单片机系统中,若使用按键分明,通常采用矩阵式(也称行列式)键盘,如图2-18所示:

一个4*4的行列结构可以构成一个含有16个按键的键盘。

矩阵式键盘中,行列式分别连接到按键开关的两端,行式通过二伴电阻接到+5V上,当无键按下时,行式于高电平状态,当有键按下时,行列式将贯通,此时

图3-2矩阵式键盘结构

行线电平,将由与此行线相连的列线电平决定,这是识别按键是否按下的关键,然而,矩阵键盘中的行线,列线和多个键相边,各按键按下与否均影响该键反在行线和死线的电平,各按键间将相互影响,因此必须将行线,列线信号配合起来作适应处理,才能确定闭合键的位置。

其中,矩阵式键盘有以下几种工作方式:

a.编程扫描方式

编程扫描是CPU完成其他工作的空余时间,调用键盘扫描子程序来响应键盘输入的要求,在执行键功能程序时,CPU不再响应键输入要求,直到CPU重新扫描键盘为止。

键盘扫描程序一般应饫以下内容:

1差别有无键按下降键盘扫描取得闭合键的行、列值3用计算法或查表法得到键值4判断闭合键是否释放,如释放则继续等待5将闭合键键号保存,同时转去执行该执行该闭合键的功能。

b.定时扫描方式

定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间的定时,当定时时间到就产生定时溢出中断,CPU响应中断后对键盘进行扫描,并左有键按下时,识别出该键,再执行该键的功能程序定时扫描方式的硬件电路与编程扫描方式相同

c.中断扫描方式

为提高CPU工作效率,可采用中断扫描工作方式其工作过和如下:

当无键接下时,CPU处理自己的工作,当有键接下时产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。

图2-19为矩阵式键盘与单片机接口图。

图3-3矩阵式键盘与单片机接口

3.3.2LED显示器接口电路

常用的LED显示器有LED状态显示器(俗称发光二极管)LED七段显示器(俗称数码管和LED十六段显示器,发光二极管可显示两种状态,用于系统显示;数码管用于数字显示;LED十六段显示器,用于字符显示)

1.数码管结构

数码管由8个发光二极管(以下简称字段)构成,通过不同组合可用来显示数字0-9.字符A-F及小数点“.”。

数码管又分为共阴极和共阳极两种结构。

2.数码管工作原理

共阳极数码管的8个发光二级管的阳极(二极管正端)连接在一起。

通常会共阳极接高电平1.一般接电源1.当某个阴极接低电平时,则该数码管导通并点亮。

共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起。

公共阴极接低电平(一般接地)当某个阳极接高电平,则该数码管并点亮。

3.静态显示接口

静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止。

这种显示方式的各位数码管相互独立,公共端恒定接地(共阴极)获接正电源(共阳极)每个数码管的8个字段分别与一个8位I/O地址相连,I/O口只要有断码输出,相应字符即显示出来并保持不变直动I/O口输出新的端码采用静态显示方式。

较小的电流即可获得较大的亮度。

且占用CPU时间少编程简单,显示,便于检测和控制,但其占用的口线多,硬件电路复杂、成本高,只适合于显示位数较少的场合。

4.动态显示接口

动态显示是一位一位地轮流点亮各位数码管。

这种逐位点亮显示的方式称为位扫描。

通常各位数码管的段选线相应并联在一起由8位的I/O口控制。

各位的位选线(公共阴极或阳极)有另外的I/O口线控制。

动态方式显示时,各数码管分时轮流选通,要使稳定显示,必须采用扫描方式,即在某一时刻只选通一位数码管。

并送出相应的端码,在另一位数码管并送出相应的端码。

依此规律循环,即可使各位数码管显示将要显示的字符。

虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人以同时显示的感觉。

图3-4数码管与单片机接口

第四章软件部分设计

4.1工作流程

烤箱在上电复位后先处于停止加热状态,这时可以用“+1”键设定预置温度,显示器显示预定温度;温度设定好后就可以按启动键启动系统工作了。

温度检测系统不断定时检测当前温度,并送往显示器显示,达到预定值后停止加热并显示当前温度;当温度下降到下限(比预定值低2℃)时再启动加热。

这样不断重复上述过程,使温度保持在预定温度范围之内。

启动后不能再修改预置温度,必须按复位/停止键回到停止加热状态再重新设定预置温度。

4.2功能模块

根据上面对工作流程的分析,系统软件可以分为以下几个功能模块:

(1)键盘管理:

监测键盘输入,接收温度预置,启动系统工作。

(2)显示:

显示设置温度及当前温度。

(3)温度检测及温度值变换:

完成A/D转换及数字滤波。

(4)温度控制:

根据检测到的温度控制电炉工作。

(5)报警:

当预置温度或当前炉温越限时报警。

4.3资源分配

为了便于阅读程序,首先给出单片机资源分配情况。

如表3-1所示。

程序存储器:

EPROM2764的地址范围为0000H~1FFFH

I/O口:

P1.0~P1.3——键盘输入;P1.6、P1.7——报警控制和电炉控制。

A/D转换器ADC0809:

通道0~7的地址为7FF8H~7FFFH,使用通道0

表4-1温度控制软件数据存储器分配表

地址

功能

名称

初值

50H~51H

当前检测温度,高位在前

TEMP1~TEMP0

00H

52H~53H

预置温度,高位在前

ST1~ST0

00H

54H~56H

BCD码显示缓冲区。

百位、十位、个位

T100,T10,T

00H

57H~58H

二进制显示缓冲区,高位在前

BT1,BT0

00H

59H~7FH

堆栈区

PSW.5

报警允许标志

F0=0时禁止报警,F0=1时允许报警

F0

0

4.4功能软件设计

4.4.1键盘管理模块

上电或复位后系统处于键盘管理状态,其功能是监测键盘输入,接收温度预置和启动键。

程序设有预置温度合法检测报警,当预置温度超过500℃时会报警并将温度设定在500℃。

键盘管理子程序流程图如图所示。

键盘管理子程序KIN:

KIN:

ACALCHK;预置温度合法性检测

MOVBT1,ST1

MOVBT0,ST0;预置温度送显示缓冲区

ACALLDISP;二次调用显示子程序延时去抖

ACALLKEY;再检测有无键按下

LCALLDISP;显示预置温度

KIN0:

ACALLKEY;读键值

JZKIN0;无键闭合和重新检测JZKIN0;无键按下重新检测

JBACC.1,S10

MOVA,#100;百位键按下

AJMPSUM

 

图4-1键盘管理子程序流程图

S10:

JBACC.2,S1

MOVA,#10;十位键按下

AJMPSUM

S1:

JBACC.3,S0

MOVA,#01;个位键按下

SUM:

ADDA,ST0;预置温度按键+1

MOVST0,A

MOVA,#00H

ADDCA,ST1

MOVST1,A

KIN1:

CALLKEY;判断闭合键释放

JNZKIN1;未释放继续判断

AJMPKIN;闭合键释放继续扫描键盘

S0:

JNBACC.0,KIN;无键按下重新扫描键盘

RET;启动键按下返回

KEY:

MOVA,P1;读键值子程序

CPLA

ANLA,#0FH

RET

4.4.2显示模块

显示子程序的功能是将显示缓冲区57H和58H的二进制数据先转换成三个BCD码,分别存入百位、十位和个位显示缓冲区(54H、55H和56H单元),然后通过串口送出显示。

显示子程序DISP:

DISP:

ACALLHTB;将显示数据转换为BCD码

MOVSCON,#00H;置串行口为方式0

MOVR2,#03H;显示位数送R2

MOVR0,#T100;显示缓冲区首地址送R0

LD:

MOVDPTR,#TAB;指向字型码表首地址

MOVA,@R0;取显示数据

MOVCA,@A+DPTR;查表

MOVSBUF,A;字型码送串行口

WAIT:

JBCTI,NEXT;发送结束转下一个数据并清中断标志

SJMPWAIT;发送未完等待

NEXT:

INCR0;修改显示缓冲区指针

DJNZR2,LD;判3位显示完否,未完继续

RET

TAB:

…;字型码表(略)

BCD码转换子程序HTB:

HTB:

MOVA,BT0;取二进制显示数据低8位

MOVB,#100;除100,确定百位数

DIVAB

MOVT100,A;百位数送54H单元

MOVA,#10;除10,确定十位

XCHA,B

DIVA,B

MOVT10,A;十位数送55H单元

MOVT,B;个位数送56H单元

MOVA,BT1;取二进制显示数据高8位

JNZLH1;高位不为0转LH1继续高8位转换

RET;高位为0结束,返回

LH1:

MOVA,#06H

ADDA,T

DAA;个位加6(十进制加)

MOVT,A;结果送回个位

MOVA,#05H

ADDCA,T10

DAA;十位加5(十进制加)

MOVT10,A;结果送回十位

MOVA,#02H

ADDCA,T100

DAA;百位加2(十进制加)

MOVT100,A;结果送回百位

RET

4.4.3温度检测模块

A/D转换采用查询方式。

为提高数据采样的可靠性,对采样温度进行数字滤波。

数字滤波的算法很多,这里采用4次采样取平均值的方法。

如前所述,本系统A/D转换结果乘2正好是温度值,因此,4次采样的数字量之和除以2就是检测的当前温度。

检测结果高位存入50H,低位存入51H。

温度检测子程序流程图如图所示。

温度检测子程序TIN:

TIN:

MOVTEMP1,#00H;清检测温度缓冲区

MOVTEMP0,#00H

MOVR2,#04H;取样次数送R2

MOVDPTR,#7FF8H;指向A/D转换器0通道

LTIN1:

MOVX@DPTR,A;启动转换

HERE:

JNBIE1,HERE;等待转换结束

MOVXA,@DPTR;读转换结果

ADDA,TEMP0;累加(双字节加法)

MOVTEMP0,A

MOVA,#00H

ADDCA,TEMP1

MOVTEMP1,A

DJNZR2,LTIN1;4次采样完否,未完继续

CLRC;累加结果除2(双字节除法)

MOVA,TEMP1

RRCA

MOVTEMP1,A

MOVA,TEMP0

RRCA

MOVTEMP0,A

RET

4.4.4温度控制模块

将当前温度与预置温度比较,当前温度小于预置温度时,继电器闭合,接通电阻丝加热;当前温度大于预置温度时,继电器断开,停止加热;当二者相等时电炉保持原来状态;当前温度降低到比预置温度低2℃时,再重新启动加热;当前温度超出报警上下限时将启动报警,并停止加热。

由于电炉开始加热时,当前温度可能低于报警下限,为了防止误报,在未达到预置温度时,不允许报警,为此设置了报警允许标志F0。

模块流程见下图。

温度控制子程序CONT:

 

图4-2温度控制流程图

4.4.5主程序和中断服务子程序

主程序采用中断嵌套方式设计,各功能模块可直接调用。

主程序完成系统的初始化,温度预置及其合法性检测,预置温度的显示及定时器0设置。

定时器0中断服务子程序是温度控制体系的主体,用于温度检测、控制和报警(包括启动A/D转换、读入采样数据、数字滤波、越限温度报警和越限处理、输出可控硅的控制脉冲等)。

中断由定时器0产生,根据需要每隔15s中断一次,即每15s采样控制一次。

但系统采用6MHz晶振,最大定时为130ms,为实现15s定时,这里另行设了一个软件计数器。

主程序和中断服务子程序如下所示。

主程序MAIN:

(数据缓冲区的定义和初始化部分略)

ORG0000H

AJMPMAIN

ORG000BH

AJMPPT0

ORG0030H

MAIN:

MOVSP,#59H;设定堆栈指针

MOVTMOD,#01H;定时器0初始化

MOVTL0,#0B0H;定时器定时时间100ms

MOVTH0,#3CH

MOVR7,#150;置15s软计数器初值

ACALLKIN;调键盘管理子程序

SETBET0;允许定时器0中断

SETBEA;开中断

SETBTR0;启动定时器0

SJMP

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1