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

上传人:b****5 文档编号:6996732 上传时间:2023-01-15 格式:DOCX 页数:12 大小:152.38KB
下载 相关 举报
基于单片机的温度控制系统.docx_第1页
第1页 / 共12页
基于单片机的温度控制系统.docx_第2页
第2页 / 共12页
基于单片机的温度控制系统.docx_第3页
第3页 / 共12页
基于单片机的温度控制系统.docx_第4页
第4页 / 共12页
基于单片机的温度控制系统.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

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

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

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

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

北京化工大学课程设计说明书

 

************************************************************

班级:

机械1207

学号:

**********

专业:

机械工程及自动化

题目:

基于单片机的化学反应罐的温度控制系统设计

*****************************************

 

2015年1月13日

 

第一章绪论

1.1题目背景

不论是对于工业生产还是对于人们的日常生活,温度的变化都会对其产生一定程度的影响,所以,适时和恰当的温度控制对生产生活具有非常重要的作用。

在过去,对温度的控制总是采用常规的模拟调节器,然而,这种调节器存在的缺点是控制精度低,具有滞后、非线性等特点。

本文将采用微电子技术来控制温度变化,这类电路设计简单,控制效果好,具有很强的实用性。

1.2题目简介

课题名称:

基于单片机的化学反应罐的温度控制系统设计。

主要任务:

1)化学反应罐标准温度为150℃,精度要求为±1℃。

2)使用温度传感器在反应罐上测得三个点的温度值,取平均值。

若低于149℃,亮灯报警并启动加热装置;若高于151℃,亮灯报警并启动冷却装置。

3)实时显示当前实际温度,显示精确为1℃。

开发环境:

本设计系统的软件部分是通过KeiluVision4进行编译,并由Proteus进行仿真测试。

技术指标:

1)以AT89C51系列单片机为核心部件。

2)以模拟电路为硬件基础。

3)以C语言为软件实现语言。

功能概述:

在该温度控制系统中,单片机为核心部件进行检测控制。

在该环境温度控制系统中,采用扫描程序不间断地进行温度检测采用PT100温度传感器将实时温度传送至AD转换器ADC0808,转换完成后送入单片机,并加以显示的过程。

再通过按键设定标准温度。

并将测得温度平均值与标准值进行比较,若实际温度低于149℃,则进行升温过程;若实际温度高于151℃,则进行降温过程,实现温度控制和报警的目的。

第二章系统总体设计及方案

2.1单片机的介绍

随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时/计数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,因此单片机早期的含义称为单片微型计算机,直译为单片机。

单片机具有以下特点:

1.具有优异的性能价格比。

2.集成度高、体积小、可靠性高。

3.控制功能强。

4.低电压、低功耗。

2.2系统功能的确定 

    一个控制系统是否能被大众所接受,在于该控制系统是否拥有人性化的操作功能。

为了使本次设计的环境温度控制系统具有操作简单、灵活及高可靠性等特点,确定了该系统功能:

1.独立按键输入温度。

2.使用温度传感器PT100进行温度采集。

3.使用ADC0808进行温度模数转换.

4.温度显示。

5.温度控制,温度若超上下限进行相应处理并亮灯报警。

6.PT100温度测量范围-50℃~200℃,反应罐温度有效范围为149℃~151℃,允许误差为±1℃。

2.3温度传感器PT100的介绍

PT100是铂热电阻,它的阻值会随着温度的变化而改变。

PT后的100即表示它在0℃时阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。

PT100/PT1000铂电阻RT曲线图表

2.4人机交互与串口通讯

该化学反应罐温度控制系统由温度采集、独立键盘输入、温度显示、温度控制执行等四大模块组成。

1.温度采集:

由温度传感器PT100完成,并通过ADC0808转换后与单片机进行数据传输。

2.独立按键输入:

将键盘扫描程序设置在主函数中while循环函数的第一条语句,不断刷新获得设定温度,按下确定键后执行温度比较和温度控制。

3.温度显示:

通过8个7段LED数码显示管显示当前温度值,及时反应当前温度的变化与设置温度的关系。

4.温度控制执行:

系统根据当前温度与设置的温度自动进行相应的升温或降温的操作,在系统自动进行升温或降温处理的同时显示相应的指示灯。

5.超限报警:

在任务书要求中,当温度超出设置温度±1℃时发出超限报警。

第三章系统设计

3.1系统结构框图

传感器模块

A/D转换模块

按键模块

AT89C51

 

报警模块

 

该系统由核心部件AT89C51来处理从键盘输入电路和温度采集电路送入的数据,并通过温度显示电路进行温度显示,由温度控制电路来进行相应的升温或降温的操作,如果超出温度限制则激发报警模块。

Proteus电路图主要由以下几部分构成:

1)C51主机。

2)ADC0808。

3)晶振复位电路。

4)PT100温度采集电路

5)LED显示屏。

6)加热冷却电路。

7)按键输入电路。

系统整体proteus电路图如下:

3.2系统各部分电路设计

在该系统中,人机交互技术主要应用在恒定温度的设置,以及当前温度的显示;串口通讯技术应用在温度的采集。

3.2.1键盘输入温度模块

在本系统中,键盘输入主要采用三个独立按键来实现温度的设定。

如图所示:

当点触“设置”键时,显示屏就进入标准温度设定界面,此时通过按“加”键或者“减”键来控制标准温度高低。

再次点触“设置”键,返回到实际温度显示。

3.2.2温度传感器模块

为了使得测得的温度更精确,在本系统中采用了温度传感器PT100来获取当前温度,如图所示:

还有两个与图中电路一模一样的电路,目的是提供三个测量温度值,并送入ADC0808单元进行AD转化。

3.2.3A/D转换模块

PT100测得的温度分别送入INO,IN1,IN2口,通过程序控制ADC0808中ADDA和ADDB口的电平来选择接受哪路温度值。

3.2.4LED七段数码动态显示电路

在本系统中采用了LED七段数码动态显示电路来显示实际温度值,显示范围在-50~200℃之间。

该电路有显示、位选锁存器、段选锁存器三部分组成。

显示部分:

由两个四位的LED七段共阴极数码管构成,用来显示当前温度值。

如下图所示:

位选和段选部分:

如下图所示:

3.2.5温度调节及亮灯报警回路

该电路的主要任务是完成单片机所发出的的升温或降温操作,来控制化学反应罐的升温或降温。

在本设计中使用红色发光二极管代替。

在程序中,先将HEAT和COLD端置1,当需要接通此加热或冷却电路时,HEAT或COLD端置0,同时,发光二极管亮,报警。

电路如下:

第四章软件设计

4.1设计思路、程序代码

根据所学知识,实现本系统的软件部分将使用C语言编程,要配合硬件部分实现输入一个温度标准值,与从温度传感器获得并经过AD转化的实际温度值进行比较,并向温度控制回路发出加热或降温以及亮灯报警的命令。

在这一过程中将随时显示当前温度值。

其主要实现的部分包括:

键盘输入、温度测量、AD数据转换、动态显示、温度比较、温度控制、超限报警等。

程序如下:

#include

#include

#defineuintunsignedint

#defineucharunsignedchar

 

codeucharseg[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,};//显示段码

sbitST=P3^0;//AD0808引脚

sbitEOC=P3^1;

sbitADA=P3^5;

sbitADB=P3^6;

sbitS1=P2^0;//数码管位选

sbitS2=P2^1;

sbitS3=P2^2;

sbitK1=P2^5;//按键

sbitK2=P2^6;

sbitK3=P2^7;

sbitK4=P3^2;

sbitK5=P3^3;

sbitHEAT=P2^3;//加热

sbitCOLD=P2^4;//制冷

bitintercode;

 

uintTEM0,TEM1,TEM2;

uintwd;

uintbz=150;

voiddelay(uintz)//延时

{

uintx,y;

for(x=0;x

for(y=0;y<110;y++);

}

voidLed(intdate)//显示函数

{

/*****************数据转换*****************************/

uintb,s,g;

b=date/100;//求百位

s=date%100/10;//求十位

g=date%10;//求个位

S1=0;S2=1;S3=1;

P0=seg[b];

delay(10);

S1=1;S2=0;S3=1;

P0=seg[s];

delay(10);

S1=1;S2=1;S3=0;

P0=seg[g];

delay(10);

S1=1;S2=1;S3=1;

delay(10);

}

/********************************************************************

主函数

*********************************************************************/

voidmain(void)

{

while

(1)

{

ADA=0;

ADB=0;

ST=0;

ST=1;

ST=0;

TEM0=P1;//采集OUT1

delay(5);

ADA=1;

ADB=0;

ST=0;

ST=1;

ST=0;

TEM1=P1;//采集OUT2

delay(5);

ADA=0;

ADB=1;

ST=0;

ST=1;

ST=0;

TEM2=P1;//采集OUT3

delay(5);

wd=(TEM0+TEM1+TEM2)/3;//求平均温度

if(intercode==0)

{

Led(wd);

if(wd==bz){HEAT=1;COLD=1;}//判断,若低于149℃,即启动加热装置;若高于151℃,即启动冷却装置。

if(wd>bz){HEAT=1;COLD=0;}

if(wd

}

else

{

Led(bz);

if(K2==0){if(bz<999)bz++;}//通过按钮设置标准温度

if(K3==0){if(bz>0)bz--;}

if(K4==0){if(bz<999)bz=bz+10;}

if(K5==0){if(bz>0)bz=bz-10;}

}

if(K1==0)//通过按钮设置显示标准温度或平均值

{delay(5);

while(K1==0)

{if(intercode==0)Led(wd);

elseLed(bz);

}

intercode=~intercode;

}

}

}

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

当前位置:首页 > 高等教育 > 院校资料

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

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