基于的单片机地智能的温度控制系统毕业设计.docx
《基于的单片机地智能的温度控制系统毕业设计.docx》由会员分享,可在线阅读,更多相关《基于的单片机地智能的温度控制系统毕业设计.docx(50页珍藏版)》请在冰豆网上搜索。
![基于的单片机地智能的温度控制系统毕业设计.docx](https://file1.bdocx.com/fileroot1/2023-2/2/0778d052-cace-4df3-b1b6-aca86f9c4463/0778d052-cace-4df3-b1b6-aca86f9c44631.gif)
基于的单片机地智能的温度控制系统毕业设计
1绪论
在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。
其中,温度控制也越来越重要。
在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。
采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。
因此,单片机对温度的控制问题是一个工业生产中经常会遇到的控制问题。
1.1温度控制器的发展状况
温度是表征物体冷热程度的物理量,是工业生产和日常生活中经常测量的物理量,也是人类研究最早测量方法最多的物理量之一。
因而温度检测仪应用领域之广,使用数量之多,一直高居各类测量仪之首。
近百年来,温度传感器的发展大致经历了以下三个阶段:
传统的分立式温度传感器(含敏感元件);模拟集成温度传感器/控制器;智能温度传感器(即数字温度传感器)。
a)分立式温度传感器
传统的热电偶、热电阻、热敏电阻及半导体温度传感器,均属于分立式温度传感器,传感器本身就是一个完整的、独立的感温元件。
此类传感器通常要配温度变送器,以获得标准的模拟量(电压或电流)输出信号。
b)模拟集成温度传感器
集成传感器是采用硅半导体集成工艺而制成的,因此亦称硅传感器或单片集成传感器。
可完成温度测量及模拟信号输出功能的专用IC,它属于一种简单的集成温度传感器,适合远距离测量、控温,不需要进行非线性校准,典型产品有AD590、AD592等。
c)模拟集成温度控制器
模拟集成温度控制器主要包括温控开关、可编程温度控制器,典型产品有LM56、AD22105和MAX6509。
d)智能温度传感器
智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的。
智能温度传感器是微电子技术、计算机技术和自动测试技术的结晶,它也是集成温度传感器领域中最具活力和发展前途的一种新产品。
目前,国际上许多著名的集成电路生产厂已经开发出上百种智能温度传感器产品。
1.2课题研究必要性
随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的应用。
单片机具有处理能强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高。
温度是工业生产中常见并且十分重要的参数之一,特别是在冶金、石油、食品、印染等工厂中。
由于不同的工艺所需的温度变化曲线各不相同,而现有的温度控制仪大多只能进行恒温控制。
因此许多生产过程中加热、保温、降温以及自然降温等操作都是由人工操作的,这就不可避免地产生各种误差,进而影响产品质量,个别采用的温度自动控制系统由于造价较高、操作复杂等原因又限制了在中小企业的应用,因此研究和开发一种实用的温度控制系统成为当务之急。
在工业生产过程中需要实时测量控制温度,尤其是在高危生产行业,如花炮生产,煤矿行业等。
但依靠人工检测控制既浪费时间,物力,人力,又有一定的危险性,且数据也不准确,因此研究自动的温度测量控制方法和装置具有重要的意义。
1.3现代控制系统相对传统控制系统的优势
传统的控制系统主要由测量电路和控制电路组成,所具备的功能较少,也比较弱,而且结构很复杂。
计算机技术的迅速发展,使得传统的控制系统发生了根本性的变革,即采用微机作为控制系统的核心,代替传统的控制系统的传统的电子线路,从而成为新一代的微机化控制系统。
将微机技术引入控制系统中,不仅可以解决传统控制系统不能解决的问题,而且还能简化电路、增加或增强功能、提高控制精度和可靠性,显著增强测控系统的自动化、智能化程度,而且可以缩短系统研制周期、降低成本、易于升级和维护。
因此,现代控制系统设计,特别是高精度、高性能的控制系统,目前已很少不采用计算机技术的了。
计算机技术的引入,可以为控制系统带来以下一些新特点和新功能:
a)自动调零功能在每次采样前对传感器的输出值自动清零,从而大大降低因控制系统漂移变化造成的误差。
b)数字滤波功能利用已算机软件对测量数据进行处理,可以抑制各种干扰和脉冲信号。
c)数据处理功能利用计算机技术可以实现传统仪器无法实现的各种复杂的处理和运算功能。
d)复杂控制规律利用计算机技术不仅可以实现经典的PID控制,还可以实现各种复杂的控制规律,例如,自适应控制、模糊控制等。
e)自我诊断功能采用计算机技术后,可对控制系统进行监测,一旦发现故障则立即进行报警,并可显示故障部位或可能的故障原因,对排除故障的方法进行提示。
微机化的控制系统是以微机为核心、测量控制一体化的系统,这种系统对被控对象的控制是依据对被控对象的测量结果决定的。
1.4课题设计特点和应用领域
课题采用的是单总线数字温度传感器DS18B20,可直接将温度转换值以16位数字码的方式串行输出:
将温度转化为数字编码只需1秒左右。
而且它具有独特单线接口方式,即与微处理器接口时仅需占用1个I/O口;支持多节点;测温时无需任何外部元件,可以通过数据线直接供电,具有超低功耗工作方式。
测温范围为—55℃~+125℃,测温度精度可达到0.0625℃。
由于传送的是串行放大器和A/D转换器可以统统被省却,因而这种测温方式大大提高了各种温度测控系统的可靠性,降低了成本,缩小了体积。
其测温系统结构简单,硬件少,成本低,测温精度高,转换速度快,实用性高,应用范围广泛,市场前景好,经济效益可观。
系统可以应用于温度要求在—55℃~+125.9℃之间的任何领域。
比如:
铁路,粮库,水果,蔬菜存储仓库的温度控制,以及多路温度测控仪,各种养殖场的温度控制监测。
由于本系统的测温精度可达0.0625℃,因而对于温度要求特别严格的环境来说,本系统是一个较为理想的监控系统。
1.5智能温度控制器的课题主要内容
课题的任务是应用单片机及DS18B20单总线器件设计一套温度检测系统,实现对温度的测量及显示,并通过按键人为设定温度上下限!
而且在温度超上限价或下限量有控制功能,系统以高性能/价格比的89S52为核心,完成对数据的分析、处理、显示、温度上下限设置、超限自动控制,采用单线数字温度传感器DS18B20来完成对温度的采样和转换。
由于课题是完成对温度的实时监测,因而系统的核心部分就是如何实现温度采集。
系统采用的是美国DALLAS公司继DS1820之后推出的一种改进型智能温度传感器DS18B20来完成这一任务的。
DS18B20与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要去通过简单的编程实现9-12位的数字值读数方式,可分别在93.75ms和750ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅从一根口线,温度变换功率来源于数据总线,总线本身可以为所接的DS180B20供电,而无需外电源。
DS18B20需在严格的时序控制下才能进行正常操作。
对DS18B20的操作包括初始化操作、读/写时间片。
总线上的所有操作均从初始化开始,初始化或对RAM、ROM操作。
主CPU通过“时间片”来写入或读出DS18B20中的数据。
概括说,主CPU经过单线接口访问DS18B20的工作流程为:
对DS18B20进行初始化→ROM操作命令→存储器(包括RAM和EERAM)操作命令→数据处理。
主CPU对ROM操作完毕,即发出控制操作命令,使DS18B20完成温度测量并将测量结果存入高速暂存器中,然后单片机可读出此温度转换值,并随之进行数据处理、送显示等操作。
2智能温度控制系统基本构成及工作原理
2.1系统的硬件构成
课题设计的硬件部分由89S52单片机、DS18B20、74LS14、74LS273锁存器以及若干电容、7个发光二极管、4只数码管、5个按键、11.0592MHZ晶振组成。
(结构如图2.1)
温度传感器
89S52
显示器与接
口控制电路
量限设定
与控制
键盘与接口
控制电路
图2.1系统设计结构图
以下对各组成部件功能进行简单介绍:
89S52单片机用于温度的采集,数据处理,存储温度上下限和超温控制。
DS18B20是单总线数字温度传感器,输出方式为串行单线输出,主要作用是把温度值以数字形式输出和存储转换精度控制字。
第三章将作出详细介绍,此处不做过多赘述。
74LS02或非门,用于选择锁存器(与写信号或非)。
74LS14施密特触发器,用于键盘消抖。
74LS273锁存器。
用锁存显示位、段码以及指示信号。
按键用于输入和查看温度上下限,使单片机复位,每隔2小时发送0.5秒的启动电机的正脉冲。
晶振是为单片机提供工作脉冲。
数码管用于显示温度值。
发光二极管用于上下限溢出报警,温度超限报警及控制,设置上/下限指示,正常工作指示。
各功能对应的指示灯设置如表2.1:
表2.1指示灯设置
功能
第几灯点亮
显示温度
第1灯
0x02
显示下限温度
1、2
0x03
设下限温度标志位
2、7
0x41
设下限温度十位
2、6
0x21
设下限温度个位
2、5
0x11
设下限温度十分位
2、4
0x09
显示上限温度
1、3
0x06
设上限温度标志位
3、7
0x44
设上限温度十位
3、6
0x24
设上限温度个位
3、5
0x14
设上限温度十分位
3、4
0x0C
低于下限温度
1、2、4、5、6、7
0x7B
高于上限温度
1、3、4、5、6、7
0x7E
2.2系统的软件构成
课题原计划用汇编语言完成。
后来决定使用C语音编写程序,系统的软件由温度数据采集、数据处理、温度显示及按键处理等部分组成。
89S52完成的功能主要是数据处理、数据分析、控制计算、进制转换、数据显示、按键处理以及电机控制等。
温度采样和转换部分由DS18B20来完成。
2.2.1系统的工作原理
首先,由温度传感器DS18B20对温度进行采样和转换,将测量结果送给单片机,单片机将输入的温度值进行数据处理,并将温度值与设定的温度值上下限进行比较。
根据比较结果进行相应的处理。
若温度超限则报警指示灯亮,以便进行及时处理。
系统原理框图如图2.2所示:
DS18B20
89S52
显示器
指示灯
段锁存
位锁存
锁存器
图2.2系统原理图
3智能温度控制系统硬件设计
本章是论文核心部分,主要介绍基于单片机的温度控制系统硬件总体设计,按照设计方案,整个温控系统硬件主要包括以下单元:
按键输入,温度采集、处理,温度超限报警,定时发出脉冲等。
温度控制的核心为温度的采集和处理,系统选用特别适用于编程及数据处理的MS-51单片机89S52,并通过89S52实现对其他各组成部分的编程控制。
下面是核心原件的介绍:
3.1数字温度传感器DS18B20详述
3.1.1DS18B20简介
DS18B20是美国DALLAS半导体公司生产的可组网数字式温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。
全部传感元件及转换电路集成在形如一只三极管的集成电路内。
与其它温度传感器相比,DS18B20具有以下特性:
a)独特的单线接口方式:
DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
b)在使用中不需要任何外围元件。
c)可用数据线供电,电压范围:
+3.0V~+5.5V。
d)测温范围:
-55℃~+125℃。
固有测温分辨率为0.1℃。
e)通过编程可实现9~12位的数字读数方式。
f)用户可自设定非易失性的报警上下限值。
g)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。
3.1.2DS18B20的引脚名称及作用
外形如图3.1所示。
其体积只有DS1820的一半,引脚定义相同。
a)DQ:
数据输入输出引脚
b)VDD:
可接电源,也可接地。
因为每只DS18B20都可以设置成两种供电方式。
采用数据总线方式时VDD接地,可以节省一根传输线,但完成温度测量的时间较长;采用外部供电方式则接5V,多用一根导线,但测量速度较快。
图3.1DS18B20外观
3.1.3DS18B20的内部结构
它主要由4部分组成:
64位ROM、温度传感器、非易失性的温度报警触发器TH和TL、高速暂存器。
64位ROM用于存储DS18B20序列号,其首字节固定为28H,表示产品类型码,后6个字节是每个器件的编码,最后1个字节是CRC校验码。
温度报警触发器TH和TL存储用户通过软件写入的报警上下极限。
高速暂存器由9个字节组成,其中有2个字节RAM单元用来存放温度值,前1个字节为温度值的补码低8位,后1个字节为字符号位和温度值的补码高3位。
其内部结构框图如图3.2所示:
电
源
检
测
64位
ROM
和
单线
接口
8位CRC生成器
存储器和控制器
配置寄存器
高温触发器TH
高速
缓存
存储器
温度灵敏元件
低温触发器TL
图3.2DS18B20内部结构框图
3.1.4DS18B20的测温原理
DS18B20测量温度采用了特有的温度测量技术,其温度测量电路如图3.3所示。
预置
斜率累加器
计数器1
计数器2
=0
=0
低温度系数振荡
高温度系数振荡
加1
停止
比较
预置
温度寄存器
设备/管理
LSB
图3.3DS18B20测温结构图
图3.3中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图3.3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作必须按协议进行。
操作协议为:
初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
3.1.5DS18B20的转换精度控制字及分辨率设置
设置转换精度控制字格式如表3.1所示
表3.1转换精度控制字格式
MSBLSB
0
R1
R0
1
1
1
1
1
分辨率设置如表3.2所示:
表3.2分辨率设置
R1
R0
分辨率(位)
最大转换时间(ms)
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750
由表可见,设定的分辨率越高,所需要的温度数据转换时间越长。
因此,在实际应用中需要在分辨率与转换时间二者之间权衡考虑。
在芯片出厂时R1和R0被配置为“1”,即工作在12位模式下。
当DS18B20接收到温度转换命令(44H)开启后,开始启动转换,转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在暂存RAM的第0,1字节。
在执行读暂存RAM命令后,可将这两个字节的温度值通过单线总线传给CPU,高位字节中符号代表温度值为正还是负值。
3.1.6DS18B20的温度数字关系
用12位精度测出的温度值用16位二进制补码形式表示,如表3.3所示:
表3.3DS18B20存储器映像图
23
22
21
20
2-1
2-2
2-3
2-4
MSBLSB
S
S
S
S
S
26
25
24
MSBLSB
图中S为符号位,S=1,温度为负值;S=0,温度为正值。
DS18B20用12位精度测出的数字量(用16位二进制补码形式表示)如表3.4所示:
表3.4部分温度与对应的数字温度输出之间的对应关系
温度(℃)
数字输出(二进制)
数字输出(十六进制)
+125
0000011111010000
07D0
+85
0000010101010000
0550
+25.0625
0000000110010001
0191
+10.125
0000000010100010
00A2
+0.5
0000000000001000
0008
0
0000000000000000
0000
-0.5
1111111111111000
FFF8
-10.125
1111111101011110
FF5E
-25.0625
1111111001101111
FE6F
-55
1111110010010000
FC90
3.1.7DS18B20的内存结构图
DS18B20的存储器包括SRAM存储器和非易失的EEPROM存储器,EEPROM用于存放触发报警上限值存储器(TH)和触发报警下限存储器(TL)。
当DS18B20在使用过程中并未使用报警功能时,TH和TL可作为普通用途的存储器单元使用。
DS18B20的存储组织结构如表3.5所示。
表3.5DS18B20内部存储器组织结构图
便笺存储器(期间上电默认值)
EEPROM存储器
0
温度数字量低位字节(50H)
无
1
温度数字量高位字节(05H)
2
TH/用户寄存器字节1
TH/用户寄存器字节1
3
TL/用户寄存器字节2
TL/用户寄存器字节2
4
配置寄存器
配置寄存器
5
保留(FFH)
无
6
保留(0CH)
7
保留(10H)
8
CRC
3.1.8DS18B20的操作命令
DS18B20是一种可编程的数字温度传感器,它的工作是靠计算机给它发控制命令进行的,DS18B20和计算机在工作过程中的协议主要有:
初始化、ROM存储器操作命令、RAM存储器操作命令。
分别说明如下:
a)初始化
单总线上的所有处理均从初始化开始。
初始化过程是主机通过向作为从机DS18B20芯片发一个有时间宽度要求的初始化脉冲实现的。
初始化完成后,才可进行读写操作。
b)对ROM的5种操作命令
一旦主CPU检测到从属器件的存在,就可以发出ROM操作命令。
所有ROM操作命令均为8位(二进制)字长。
主CPU可以发出ROM操作命令有以下五种:
1)读ROM命令(READROM,约定代码33H)。
该命令允许主CPU读取DS18B20中的8位产品系列编码,48位序列号以及8位的CRC。
该命令适用于总线上接一片DS18B20的情况。
当总线上挂有多片DS18B20时禁止使用该命令,否则多片DS18B20同时发送数据,必然会导致互相冲突。
2)符合ROM命令(MATCHROM,约定代码55H)。
主CPU在发出“符合”ROM命令后,接着发出64位的ROM数据序列,从而使主CPU实现对单线总线上特定DS18B20的寻址。
只有与ROM序列严格相符的DS18B20,才能对后续的存储器操作命令作出响应。
所有与64位ROM序列不相符的DS18B20将等待复位脉冲。
该命令对于总线上挂有单个、或多个器件的情况均适用。
3)搜索ROM命令(SEARCHROM,约定代码F0H)。
搜索ROM命令允许主CPU使用一种“消除法”(ELMINATION)来识别总线上所有DS18B20的64位ROM编码,即完成整个系统的初始化工作。
为以后对各个单线器件作好准备。
该部分也是对DS18B20芯片进行软件编程的重点和难点。
4)跳过ROM命令(SKIPROM,约定代码为CCH)。
在单线总线系统中,该命令使主CPU不必提供64位ROM编码就能访问各片DS18B20。
该命令主要用于向所有的DS18B20同时发出温度转换命令,从而大大节省访问各个器件的时间。
但有一点必须注意,主CPU如果在发出SKIPROM命令之后,又发出了读存储器命令,那么由于多片DS18B20同时向总线上提供数据且在漏极开路状态下产生“线与”的结果,此时读出的数据已经没有实际意义了。
5)报警搜索命令(ALARAMSEARCH,有约定代码ECH)。
该命令的流程与搜索ROM命令的流程相同。
仅在最后一次温度测量出现报警的情况下。
DS18B20才对该命令做出响应。
报警的条件定义为温度超过上限(T>TH),或者低于下限(T上电时,DS18B20预置报警条件为设定状态,直到首次温度测量结果既不超过上限TH,也不低于TL时,报警信号才被解除。
c)存储器操作命令
存储器操作命令共有6条,具体如下:
1)温度转换命令(CONVERTT){44H}。
令DS18B20进行温度转换。
如果住CPU在该命令之后为读时序,如果DS18B20正忙于进行温度转换,即读得“0”;当温度转换完成时,DS18B20则返回“1”。
假如有寄生电源给DS18B20供电,主CPU在发出该命令后立即将单线总线拉成高电平,并且保持500ms时间,以便在温度转换期间给DS18B20提供所需要的电源。
2)读暂存存储器(READSCRATCHPAD){BEH}。
该命令为读暂存存储器9个字节的内容。
从字节0开始读,直至读到字节8。
主CPU可以在读暂存存储器期间发出一个复位脉冲来终止读操作。
3)写暂存存储器(WRITESCRATCHPAD){4EH}。
主CPU送给DS18B20的2个字节数据就分别写入触发寄存器TH和触发寄存器TL中,顺序是先写TH,到写TL。
主CPU也可以在写暂存存储器期间发出一个复位脉冲来终止写操作。
4)复制暂存存储器{COPYSCRATCHPAD}{48H}。
该命令把触发寄存器中的TH、TL字节分别复制到EERAM的TH、TL的字节上。
若主CPU发出命令后又进行读操作,只要DS18B20正忙于复制,主CPU就读“0”;当复制工作完成后,DS18B20又返回“1”。
如果是寄生电源供电,主CPU在发出该命令后就把单线总线拉到高电平,并保持10ms。
5)重新调出EERAM(RECALLEERAM){B8H}。
该命令是把存储器在E2RAM温度触发器TH、TL内的数据重新调入暂存器的TH、TL字节。
每次DS18B20上电时也自动进行这种操作,因此,只要器件接通电源,暂存存储器的TH、TL中已经有效的数据供使用。
若主CPU在发出该命令之后又进行读操作,只要DS18B20正忙于进行调出,主CPU就读得“0”(表示“忙碌”);完成调出操作后DS18B20既返回“1”(表示“操作完毕”)。
6)读电源(READPOWERSUPPLY){B4H}。
此项命令发送给DS18B20之后,对主CPU发出的每条读命令,DS18B20都向主CPU提供电源方式信号“0”(表示由寄生电源供电)或者“1”(表示由外部电源供电)。
3.1.9DS18B20的工作时序
主机使用时间隙来读写DS18B20的数据位和写命令字的位。
a)初始化
主机总线T0时刻发送