基于单片机的温度控制系统学士学位论文.docx

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

基于单片机的温度控制系统学士学位论文.docx

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

基于单片机的温度控制系统学士学位论文.docx

基于单片机的温度控制系统学士学位论文

安徽机电职业技术学院

毕业论文

 

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

 

系(部)电气工程系

专业机电一体化

班级机电3112班

姓名刘珍珍

学号1302113124

指导教师曾劲松

 

2013~2014学年第1学期

 

指导教师评语

等级

签名

日期

 

摘要

单片机在电子产品中的应用已经越来越广泛,并且在很多电子产品中也将其用到温度检测和温度控制。

为此在本文中设计了基于STC89C51的温度测量系统。

这是一种低成本的利用单片机多余I/O口实现的温度检测电路,该电路非常简单,易于实现,并且适用于几乎所有类型的单片机。

国内外温度控制系统发展迅速,并在智能化、自适应、参数自整定等方面取得成果。

目前社会上温度控制系统大多采用智能调节器,国产调节器分辨率和精度较低,温度控制效果不是很理想,但价格便宜,国外调节器分辨率和精度较高,价格较高。

日本、美国、德国、瑞典等技术领先,都生产出了一批商品化的、性能优异的温度控制器及仪器仪表,并在各行业广泛应用

本设计研究了一种高精度温度控制系统,采用单总线数字式温度传感器DS18B20和单片机STC89C51组成温度测量仪。

首先分析了DS18B20的结构和工作原理,并以此建立,以STC89C51单片机为处理器的温度测量和控制装置的硬件组成和软件设计。

测量温度通过LED数码管进行显示。

温度控制系统可以通过键盘修改期望的控制温度值。

基于DS18B20的温度测量控制系统,具有测量准确、测量范围宽、体积小、控制方便等优点[1]。

该控制系统适于人们日常生活、工业生产和科学领域对温度的控制要求。

关键词:

温度控制、温度测量、DS18B20传感器、STC89C51单片机

目录

第1章概述1

1.1论文研究的目的1

1.2论文研究的内容2

1.3论文研究的意义2

第2章温度控制系统方案的论证与选择3

2.1显示的选择3

2.2键盘模块的选择3

2.3控制模块的选取3

2.4加热器的选择4

2.5温度传感模块的选择4

2.6MCU模块的选择4

第3章系统设计5

3.1报警模块5

3.2控制模块6

3.3显示模块6

3.4按键模块7

3.5温度传感器特性8

3.6温度采样部分10

3.7模数转换部分11

3.8系统电路图12

第4章程序的设计13

4.1程序流程图13

4.2具体应用程序设计13

第5章元件的介绍23

5.1DS18B20传感器23

5.2STC89C51单片机24

致谢26

参考文献27

第1章概述

1.1论文研究的目的

近年来,温度检测在理论上发展的比较成熟,但在实际测量和控制中,如何保证快速实时的对温度进行采样,确保数据的正常传输,并能对所测温度场进行较精确的控制,仍然是目前需要解决的问题。

温度测控技术包括温度测量技术和温度控制技术两方面。

在温度的测量技术中,接触式测温发展较早,这种测量的方式优点是:

简单、可靠、低廉、测量精度高,一般能够测得真实温度;但由于检测元件热惯性的影响,响应时间较长,对热容量小的物体难以实现精确的测量,并且该方法不适宜于对腐蚀性介质测温,不能用于超高温测量,难以测量运动物体的温度。

另外的非接触式的测量方法是通过对辐射能量的检测来实现温度测量的方法,其优点是:

不破坏被测温场,可以测量热容量小的物体,适于测量运动物体的测量,还可以测量区域的温度分布,响应速度较快。

但也存在测量误差较大,仪表指示值一般仅代表物体表观温度,测温装置结构复杂,价格昂贵等缺点。

因此,在实际的温度测量中,要根据具体的测量对象选择合适的测量方法,在满足测量精度要求的前提下尽量减少投入。

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

日常生活中,温度值也是一个重要的参考量。

此外,对温度信息的采集,检测,控制,不仅保证了产品质量,还节约了能源,在安全生产方面有积极作用。

本控制器可实时测量现场温度,并根据温度情况和人为设置情况调节现场温度,使温度保持在一个设定的范围内[2]。

其中人为设置可通过操作按键完成。

另外,本系统还具有温度超越界限时的报警功能。

防潮、防霉、防腐、防爆是仓库日常工作的重要内容,是衡量仓库管理质量的重要指标。

它直接影响到储备物资的使用寿命和工作可靠性。

为保证日常工作的顺利进行,首要问题是加强仓库内温度与湿度的监测工作。

但传统的方法是用与湿度表、毛发湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行检测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。

这种人工测试方法费时费力、效率低,且测试的温度及湿度误差大,随机性大。

因此我们需要一种造价低廉、使用方便且测量准确的温湿度测量仪。

 

1.2论文研究的内容

本设计的内容是温度测试控制,控制对象就是温度。

温度控制在日常生活及工业领域应用相当广泛,比如浴室、水池、电源等场所的温度控制。

而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防意外发生。

本文将采用了单片机对温度实现自动控制。

主要实现的功能是:

对被控对象的温度进行实时采集,其主要是通过一传感器(可编程温度传感器DS18B20)将温度转变模拟电信号,再将所得的模拟量转变成数字量送入单片机(AT89S52)中,单片机将传感器所采集到的温度和事先设定的温度进行对比,当小于设定值时将发出信号启动加热装置;当大于设定值时将关闭加热装置,从而使得被控温度控制在一定的范围之内,达到实时控制的功能。

1.3论文研究的意义

本设计是一温度控制器,拟要实现的功能是:

对被控对象的温度进行实时采集,通过温度传感器将温度转变成模拟电信号,再将所得的模拟量转变成数字量送入单片机中并从数码管显示出来,同时单片机将传感器所采集到的温度和事先设定的上下限温度进行对比,当低于设定值时将发出信号启动加热装置;当高于设定值时将关闭加热装置,从而使得被控温度控制在一定的范围之内,达到实时控制的功能。

 

第2章温度控制系统方案的论证与选择

本设计的内容是设计一温度控制器。

温度是工业控制对象的主要被控参数之一。

本设计将通过单片机实现对温度自动控制。

主要实现的功能是:

对被控对象的温度进行实时采集和显示,通过按键设定合适温度范围,单片机将传感器所采集到的温度和设定的温度范围进行对比,当小于设定值时将发出信号启动加热装置;当大于设定值时将关闭加热装置,从而使得被控温度控制在一定的范围之内,达到实时控制的功能。

通过对要实现的功能进行分析,可分为显示、按键、控制模块、加热器、温度传感模块、MCU模块。

2.1显示的选择

本设计需要将温度进行采集并实时显示出来,所以一个合适的显示器是很必要的。

就显示来说,需要显示清晰明朗,显示字体要足够大,而且成本要低,控制简单[3]。

考虑以上条件后再结合现有知识,本设计的显示器最终选择共阳四位数码管。

显示范围从0-99.9°,既满足了温度范围,又有足够的精度(0.1°)。

最后一位设置并显示C,代表温度单位。

2.2键盘模块的选择

本设计中需要通过按键来设定温度范围,需由三个按键构成,一个模式选择:

通过此按键可切换温度显示和报警温度的显示以及对报警极限值进行调整。

两个温度值上下调节:

一个增加,一个减小。

2.3控制模块的选取

在工业生产中当温度超出设定范围时系统要及时作出相应的反应以维持温度在设定范围内。

经多方对比后本模块选定由5V继电器来实现,当温度超过预设报警温度时,通过单片机输出高低电平来控制继电器的通断,来实现对加热器的控制。

成本低,控制简单,易于实现。

2.4加热器的选择

此模块是继电器控制的外部控制器的一个简单缩影,对不同的被控对象来说,实现此模块所用的控制器不同。

本设计实现对温度的控制,此模块可为加热器和降温设备。

这些不在本设计考虑范围内。

2.5温度传感模块的选择

工业中温度的检测精确度是衡量温度控制系统质量好坏的一个非常重要的方面,因此选一个精确的温度传感器是非常关键的。

此模块可由多种途径实现:

方案一:

通过热敏电阻对温度的敏感感知来采集温度信号,此方案需要用A/D转换,使温度模拟信号转换成单片机所需的数字信号;

方案二:

通过DS18B20传感器来实现对温度的采集,采集的信号直接为数字信号;

对比此两种方案,可看出方案二易于实现,电路简单,并且DS18B20的温度分辨率高,最小误差仅为0.1°C。

因此本设计选用DS18B20来采集温度[4]。

2.6MCU模块的选择

在系统中MCU是核心,考虑到本设计的复杂程度、对MCU的要求及稳定性,本设计采用普通的51单片机,具体选型时采用可在线编程的STC89C51单片机为系统核心。

温度信号通过热敏电阻和放大器转换成电信号,再由ADC0809转换成为数字信号,测温电路采用桥式电路,温度设定采用按键移位式设定方法,温度控制采用光耦和可控硅控制加热器。

软件算法采用设定值和测量值相比较的算法。

在单片机应用的基础上,实现了一种用带有E²PROM的AT89C51单片机控制传感器的自动化温度监控系统。

 

第3章系统设计

3.1报警模块

蜂鸣器报警电路

报警采用蜂鸣器发声,由于单片机引脚选通PNP型三极管8550来控制蜂鸣器报警,具体电路如图3.1。

 

图3.1报警模块

 

3.2控制模块

此模块采用5V继电器来实现,同报警电路一样,也用8550三极管选通,具体电路如图2.2。

图3.2控制模块图

3.3显示模块

LED显示器是单片机应用系统中常见的输出器件,而在单片机的应用上也是被广泛运用的。

如果需要显示的内容只有数码和某些字母,使用LED数码管是一种较好的选择。

LED数码管显示清晰、成本低廉、配置灵活,与单片机接口简单易行。

此模块采用三极管驱动四位共阳数码管来显示[5]LED数码管作为显示字段的数码型显示器件,它是由若干个发光二极管组成的。

当发光二极管导通时,相应的一个点或一个笔画发亮,控制不同组合的二极管导通,就能显示出各种字符,常用的LED数码管有7段和“米”字段之分。

这种显示器有共阳极和共阴极两种。

共阴极LED显示器的发光二极管的阴极连在一起,通常此共阴极接地。

当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。

同样,共阳极LED显示器的发光二极管的阳极接在一起,通常此共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。

本次设计所用的LED数码管显示器为共阳极。

 LED数码管的使用与发光二极管相同,根据材料不同正向压降一般为1.5~2V,额定电流为10MA,最大电流为40MA。

静态显示时取10MA为宜,动态扫描显示可加大脉冲电流,但一般不超过40MA。

具体电路图如下:

 

图3.3显示模块

3.4按键模块

本设计共三个按键,低电平有效。

电路如上图。

图3.4按键模块图

3.5温度传感器特性

本设计中选择DS18B20作为温度传感器。

DS1820S(16脚SSOP):

所有上表中未提及的引脚都无连接。

表3.1引脚说明

16脚SSOP

PR35

符号

说明

9

1

GND

接地

8

2

DQ

数据输入/输出脚;对于单线操作:

漏极开路

7

3

VDD

可选的VDD引脚

DS18B20的特性:

•独特的单线接口仅需一个端口引脚进行通讯;

•简单的多点分布应用;

•无需外部器件;

•可通过数据线供电;

•零待机功耗;

•测温范围-55~+125℃,以0.5℃递增。

华氏器件-67±2570F,以0.90F递增;

•温度以9位数字量读出;

•温度数字量转换时间200ms(典型值);

•用户可定义的非易失性温度报警设置。

•报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件

•应用包括温度控制、工业系统、消费品、温度计或任何热感测系统[6]

DS1820数字温度计以9位数字量的形式反映器件的温度值。

DS1820通过一个单线接口发送或接收信息,因此在中央微处理器和DS1820之间仅需一条连接线(加上地线)。

用于读写和温度转换的电源可以从数据线本身获得,无需外部电源。

因为每个DS1820都有一个独特的片序列号,所以多只DS1820可以同时连在一根单线总线上,这样就可以把温度传感器放在许多不同的地方。

这一特性在HVAC环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。

DS1820数字温度计以9位数字量的形式反映器件的温度值[7]。

DS1820通过一个单线接口发送或接收信息,因此在中央微处理器和DS1820之间仅需一条连接线(加上地线)。

用于读写和温度转换的电源可以从数据线本身获得,无需外部电源。

因为每个DS1820都有一个独特的片序列号,所以多只DS1820可以同时连在一根单线总线上,这样就可以把温度传感器放在许多不同的地方。

这一特性在HVAC环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。

DS1820有三个主要数字部件[8]:

1)64位激光ROM,2)温度传感器,3)非易失性温度报警触发器TH和TL。

器件用如下方式从单线通讯线上汲取能量:

在信号线处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。

DS1820也可用外部5V电源供电。

DS1820依靠一个单线端口通讯。

在单线端口条件下,必须先建立ROM操作协议,才能进行存储器和控制操作。

因此,控制器必须首先提供下面5个ROM操作命令之一:

1)读ROM,2)匹配ROM,3)搜索ROM,4)跳过ROM,5)报警搜索。

这些命令对每个器件的激光ROM部分进行操作,在单线总线上挂有多个器件时,可以区分出单个器件,同时可以向总线控制器指明有多少器件或是什么型号的器件。

成功执行完一条ROM操作序列后,即可进行存储器和控制操作,控制器可以提供6条存储器和控制操作指令中的任一条。

一条控制操作命令指示DS1820完成一次温度测量。

测量结果放在DS1820的暂存器里,用一条读暂存器内容的存储器操作命令可以把暂存器中数据读出。

温度报警触发器TH和TL各由一个EEPROM字节构成。

如果没有对DS1820使用报警搜索命令,这些寄存器可以做为一般用途的用户存储器使用。

可以用一条存储器操作命令对TH和TL进行写入,对这些寄存器的读出需要通过暂存器。

所有数据都是以最低有效位在前的方式进行读写。

 

DS18B20供电方式

 

 

图3.5供电方式图

 

DS1820是这样测温的:

用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。

计数器被预置到对应于-55℃的一个值。

如果计数器在门周期结束前到达0,则温度寄存器(同样被预置到-55℃)的值增加,表明所测温度大于-55℃。

同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。

然后计数器又开始计数直到0,如果门周期仍未结束,将重复这一过程。

斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨力[9]。

这是通过改变计数器对温度每增加一度所需计数的的值来实现的。

因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。

DS1820内部对此计算的结果可提供0.5℃的分辨力。

温度以16bit带符号位扩展的二进制补码形式读出,表1给出了温度值和输出数据的关系。

数据通过单线接口以串行方式传输。

DS1820测温范围-55℃~+125℃,以0.5℃递增。

如用于华氏温度,必须要用一个转换因子查找表。

3.6温度采样部分

温度采样单元,用于采集被控对象的温度参数,它由温度电压转换、小信号放大及A/D转换三部分组成。

其中,将温度转化为电量的温度电压转换由温度传感器-热敏电阻实现,小信号放大由桥式放大电路实现,A/D转换选择模数转换器ADC0809,将采集到的温度模拟信号转换为AT89C51能够处理的二进制数字信号。

 图3-2温度采样单元

温度传感器:

 广义来讲,一切随温度变化而物体性质亦发生变化的物质均可作为温度传感器。

例如,我们平常使用的各种材料、元件,其性质或多或少地都会随其所处的环境温度变化而变化,因而它们几乎都能作为温度传感器使用。

但是,一般真正能作为实际中可使用的温度传感器的物体一般需要具备下述条件:

1.物体的特性随温度的变化有较大的变化,且该变化量易于测量。

2.对温度的变化有较好的一一对应关系,即对除温度外其他物理量的变化不敏感。

3.性能误差及老化小、重复性好,尺寸小。

4.有较强的耐机械、化学及热作用等的特点。

5.与被检测的温度范围和精度相适应。

6.价格适宜,适合于批量生产。

 符合上述条件的常用温度传感器有热电偶、热电阻、光辐射温度计、玻璃温度计、半导体集成温度传感器等。

 

3.7模数转换部分

模数转换是将模拟输入信号转换为N位二进制数字输出信号的技术。

采用数字信号处理能够方便地实现各种先进的自适应算法,完成模拟电路无法实现的功能,因此,越来越多的模拟信号处理正在被数字技术所取代。

与之相应的是,作为模拟系统和数字系统之间桥梁的模数转换的应用日趋广泛。

为了满足市场的需求,各芯片制造公司不断推出性能更加先进的新产品、新技术,令人目不暇接。

一、模数转换技术

 本次设计还涉及到数模转换技术,而模数转换技术包括采样、保持、量化和编码四个过程。

1.采样就是将一个连续变化的模拟信号x(t)转换成时间上离散的采样信号x(n)。

根据奈奎斯特采样定理,对于采样信号x(t),如果采样频率fs大于或等于2fmax(fmax为x(t)最高频率成分),则可以无失真地重建恢复原始信号x(t)。

实际上,由于模数转换器器件的非线性失真、量化噪声及接收机噪声等因素的影响采样速率一般取fs=2.5fmax。

通常采样脉冲的宽度tw是很短的,故采样输出是断续的窄脉冲。

2.要把一个采样输出信号数字化,需要将采样输出所得的瞬时模拟信号保持一段时间,这就是保持过程。

3.量化是将连续幅度的抽样信号转换成离散时间、离散幅度的数字信号,量化的主要问题就是量化误差。

假设噪声信号在量化电平中是均匀分布的,则量化噪声均方值与量化间隔和模数转换器的输入阻抗值有关。

4.编码是将量化后的信号编码成二进制代码输出。

这些过程有些是合并进行的,例如,采样和保持就利用一个电路连续完成,量化和编码也是在转换过程中同时实现的,且所用时间又是保持时间的一部分。

二、积分型模数转换器

 积分型模数转换器称双斜率或多斜率数据转换器,是应用最为广泛的转换器类型。

双斜率转换器包括两个主要部分:

一部分电路采样并量化输人电压,产生一个时域间隔或脉冲序列,再由一个计数器将其转换为数字量输出。

双斜率转换器由1个带有输人切换开关的模拟积分器、1个比较器和1个计数单元构成。

积分器对输入电压在固定的时间间隔内积分,该时间间隔通常对应于内部计数单元的最大计数。

时间到达后将计数器复位并将积分器输入连接到反极性(负)参考电压。

在这个反极性信号作用下,积分器被“反向积分”直到输出回到零,并使计数器终止,积分器复位。

 积分型模数转换器的采样速度和带宽都非常低,但它们的精度可以做得很高,并且抑制高频噪声和固定的低频干扰(如50Hz或60Hz)的能力,使其对于嘈杂的工业环境以及不要求高转换速率的应用非常有效。

3.8系统电路图

图3.6系统电路图

系统的总体连接电路图如图3.6。

图中,四位数码管采用动态扫描显示。

第4章程序的设计

4.1程序流程图

图4.1程序流程图

程序简要说明:

DS18B20温度计,温度测量范围0~99.9摄氏度,可设置上限报警温度、下限报警温度,即高于上限值或者低于下限值时蜂鸣器报警,默认上限报警温度为32℃、默认下限报警温度为10℃,报警值可设置范围:

最低上限报警值等于当前下限报警值,最高下限报警值等于当前上限报警值,将下限报警值调为0时为关闭下限报警功能[10]。

4.2具体应用程序设计

#include

#include"DS18B20.h"

#defineuintunsignedint

#defineucharunsignedchar//宏定义

#defineSETP3_1//定义调整键

#defineDECP3_2//定义减少键

#defineADDP3_3//定义增加键

#defineBEEPP3_7//定义蜂鸣器

#defineJDQP3_5

bitshanshuo_st;//闪烁间隔标志

bitbeep_st;//蜂鸣器间隔标志

sbitDIAN=P2^7;//小数点

ucharx=0;//计数器

signedcharm;//温度值全局变量

ucharn;//温度值全局变量

ucharset_st=0;//状态标志

signedcharshangxian=32;//上限报警温度,默认值为38

signedcharxiaxian=10;//下限报警温度,默认值为38

ucharcodeLEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};

/*****延时子程序*****/

voidDelay(uintnum)

{

while(--num);

}

voidshortdelay(void)//误差0us

{

unsignedchara,b,c;

for(c=165;c>0;c--)

for(b=100;b>0;b--)

for(a=150;a>0;a--);

_nop_;//ifKeil,requireuseintrins.h

_nop_;//ifKeil,requireuseintrins.h

}

/*****初始化定时器0*****/

voidInitTimer(void)

{

TMOD=0x1;

TH0=0x3c;

TL0=0xb0;//50ms(晶振12M)

}

/*****定时器0中断服务程序*****/

voidtimer0(void)interrupt1

{

TH0=0x3c;

TL0=0xb0;

x++;

}

/*****外部中断0服务程序*****/

voidint0(void)interrupt0

{

EX0=0;//关外部中断0

if(DEC==0&&set_st==1)

{

shangxian--;

if(shangxian

}

elseif(DEC==0&&set_st==2)

{

xiaxian--;

if(xiaxian<0)xiaxian=0;

}

}

/*****外部中断1服务程序*****/

voidint1(void)interrupt2

{

EX1=0;//关外部中断1

if(ADD==0&&set_s

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

当前位置:首页 > 人文社科

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

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