基于单片机的温度巡检装置设计方案.docx
- 文档编号:26436060
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:20
- 大小:586.29KB
基于单片机的温度巡检装置设计方案.docx
《基于单片机的温度巡检装置设计方案.docx》由会员分享,可在线阅读,更多相关《基于单片机的温度巡检装置设计方案.docx(20页珍藏版)》请在冰豆网上搜索。
基于单片机的温度巡检装置设计方案
基于单片机的温度巡检装置设计方案
第1章概述
1.1温度巡检仪发展背景
随着现代科学技术的发展,在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。
尤其在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测与控制。
但在实际生产过程中,温度的测量环境恶劣,常伴有巨大的撞击力或高温气体的高速流动,测量技术难度非常大。
由于许多工业产品对温度围要求非常严格,因为对温度的控制好坏直接会影响到产品质量的高低。
因此,在工农业生产中,对温度不仅要不断地测量,而且还要进行控制。
特别是遇到温度超过预设值时,系统会进行报警。
在温度巡检仪没有普及运用之前,温度计测温被人们运用在大多数温度测量场合。
由于其本身的结构和功能所限,它只能对一些要求精度不高的地方进行较粗略检测,然而需要严格控温的场合则没有办法检测,最终影响到了生产效率及效率。
所以,温度计在工业上的应用必将由温度巡检仪替代。
但是,就目前市场上看,销售的大都是单路测量的温度检测仪器,其存在温度信息传递不及时、精度不够等缺点,不利于工业控制者根据温度变化及时做出决定。
在这样的市场需求背景下,采用一种效率和自动化水平更高、更新的测量手段,是温度测控系统的发展趋势。
1.2温度巡检装置工作原理
八路温度巡检仪首先要进行数据采集就是将一般的物理量通过传感器转换成模拟量,在经过A/D转换电路转换为数字量供给CPU进行处理。
详细来说就是能监测并采集多路的温度信号,通过温度传感器将温度转换成电压信号输出电压,A/D转换芯片将模拟量转换成数字量,从而得到与温度信号具有一定关系的数字量,单片机采集这些数字信号,进行一定的信号调理、软件算法、以及标度变换,从而得到一定量的温度值,再将这一温度值通过显示的方式显示出来,然后通过按键或定时的控制实现巡检,就得到了一个八路温度巡检仪的系统。
本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用。
目的是对工业生产的温度传感与温度控制进行模拟实验,学习单片机用于工业生产的温度传感与温度控制技术的方法。
本毕业设计介绍了温度计的测量和控制之间的关系:
检测是控制的基础和前提,而检测的精度必须高于控制的精确度,否则无从实现控制的精度要求。
不仅如此,检测还涉及国计民生各个部门,可以说在所以科学技术领域无时不在进行检测。
科学技术的发展和检测技术的发展是密切相关的。
现代化的检测手段能达到的精度、灵敏度及测量围等,在很大程度上决定了科学技术的发展水平。
同时,科学技术的发展达到的水平越高,又为检测技术、传感器技术提供了新的前提手段。
目前温度计的发展很快,从原始的玻璃管温度计发展到了现在的热电阻温度计、热电偶温度计、数字温度计、电子温度计等等。
目前的温度计中传感器是它的重要组成部分,它的精度灵敏度基本决定了温度计的精度、测量围、控制围和用途等。
传感器应用极其广泛,目前已经研制出多种新型传感器。
但是,作为应用系统设计人员需要根据系统要求选用适宜的传感器,并与自己设计的系统连接起来,从而构成性能优良的监控系统。
1.3设计要求与任务
1.3.1设计要求:
检测8个点的温度,温度围:
-50℃—120℃;
采用LED循环显示检测的8路温度值;
通过按键自由设定温度报警们限值,当温度超过门限值时,系统发出声、光报警;
实现与上位机串行通信。
1.3.2设计任务:
温度测量原理及温度传感器选型;
温度巡检装置硬件设计、仿真;
温度巡检装置软件设计及调试。
第2章系统设计方案
2.1系统组成及工作原理
2.1.1系统组成
在系统方案设计中,主要以选择测温电路的方案为主,测温电路的方案选择可以直接的影响到测得温度值的准确性和要求达到的精度问题,测温电路要求能把环境温度通过传感器把温度信号转换为我们所需要的电压信号或电流信号,把得到相应的电信号送入A/D转换器,通过A/D转换器的转换,在通过单片机的控制和程序的处理最后得到准确的温度值,实现温度的检测。
所以在测温电路中我们进行了认真的分析和最后方案的确定。
如下框图所示:
2.1.2工作原理
八路温度巡检仪首先要进行数据采集就是将一般的物理量通过传感器转换成模拟量,在经过A/D转换电路转换为数字量供给CPU进行处理。
详细来说就是能监测并采集多路的温度信号,通过温度传感器将温度转换成电压信号输出电压,A/D转换芯片将模拟量转换成数字量,从而得到与温度信号具有一定关系的数字量,单片机采集这些数字信号,进行一定的信号调理、软件算法、以及标度变换,从而得到一定量的温度值,再将这一温度值通过显示的方式显示出来,然后通过按键或定时的控制实现巡检,就得到了一个八路温度巡检仪的系统。
2.2方案的选择
根据设计容,提出三种设计方案:
方案一:
采用STC89C51单片机作为系统控制核心,其片自带8kB大小的FlashROM,烧写进去的HEX文件大小最大能达到20KB左右。
信号采集电路选择的是八个含有Pt100的电桥电路,可以采集八个点的温度值;而选择的TM7705模数转换元件含差放电路,所以采集到的模拟信号可以直接输送给TM7705进行处理。
对于八个点传输过来的模拟信号,要通过八选一数据选择器进行选择,即每个模拟信号对应一个通道,此八选一数据选择器选用HCF4051BE。
在显示单元中,选择五位数码管分别显示通道号、正负号、温度值;而在控制单元中,需要通过按键控制单通道温度查询和显示的过程。
整个系统中,单片机晶振选用12MHz,TM7705的时钟线要接到单片机的ALE端,以便产生2MHz的时钟。
单片机的P0口为数码管的段码,P2口为位选。
P3.0为A/D数据输入端,采用串行通信方式0进行数据的读入。
方案二:
单片机依然选用STC89C51作为系统控制核心,而AT89S52单片机也是可以选用的。
信号采集电路是选用八个并接于单线总线的数字温度传感器DS18B20进行八个点的温度采集,它可以不通过放大整形和模数转换电路而直接接在单片机上。
显示单元中选用液晶显示器LCD1602;控制单元与方案一中相同。
方案三:
单片机选用STC89C51,信号采集电路与方案一中相同。
但在此方案中,信号放大电路选用rail-to-rail运算放大器,使输出电压上限可以达到电源电压,而下限可以达到0V。
同时,加入滤波电容对影响信号采集的空气中的高频信号进行过滤。
模数转换电路选用ADC0809芯片,对模拟信号进行处理。
控制单元与方案一相同。
对比观察上述三种方案,方案一中铂热电阻(Pt100)温度传感器具有精度高,测温围广,一般可测-200℃~650℃,在工业测温上应用广泛,而且可以通过引线将铂电阻置于需要测量温度的环境中,满足不同点不同温度测量的需求。
同时,TM7705解决了对采集到的模拟信号进行放大和数字处理,而不需要另外增加信号放大滤波电路。
方案二中,所用到的数字温度传感器性能较强,价格上比Pt100便宜很多。
而且电路搭构简单易行,节约了许多外围电路空间。
LCD1602显示功能强大,但没有数码管显示快捷方便。
方案三比方案一在信号放大和模数转换两个单元中有所不同,其电路设计比方案一繁琐。
综合考虑,最终选择方案一。
方案二有其优势所在,但在工业测温中,方案一应用面更宽广,经济价值更高,比方案二有更广泛的市场需求和更好的发展前景。
第3章系统的硬件设计
3.1硬件总体设计
系统单元电路的设计分为以下5个部分:
1、温度传感模块;
2、单片机控制模块;
3、LED显示模块;
4、二极管及蜂鸣器报警模块;
5、MAX232传输模块
3.2温度传感模块
温度传感模块主要的器件就是数字温度传感器,它对被控温度进行采样,传输给控制器。
根据设计要求(温度测量围-50℃—120℃),所以本课题设计采用的是数字温度传感器DS18B20。
3.2.1数字温度传感器DS18B20
技术性能描述
1.独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
2.测温围-55℃~+125℃,固有测温分辨率0.5℃。
3.支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定,实现多点测温
4.工作电源:
3~5V/DC
5.在使用中不需要任何外围元件
6.测量结果以9~12位数字量方式串行传送
DS18B20是实现单总线测控网络的关键器件,它的部结构如图3-3所示。
主要包括:
寄生电源、温度传感器、64位激光ROM和单总线接口、存放中间数据的高速暂存器RAM、用于存储用户设定温度上下限值的TH和TL触发器、存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分。
图3-1DS18B20部结构框图
3.2.2DS18B20的通信协议
数字式温度传感器和模拟传感器最大的区别,是将温度信号直接转化成数字信号,然后通过串行通信的方式输出。
因此掌握DS18B20的通信协议是使用该器件的关键。
所有的DS18B20器件要求采用严格的通信协议,以保证数据的完整性。
该协议定义了几种信号类型:
复位脉冲、应答脉冲;写“0”、写“1”时隙;读“0”、和读“1”时隙。
与DS18B20的通信,是通过操作时隙完成单总线上的数据传输。
发送所有的命令和数据时,都是字节的低位在前,高位在后。
每个通信周期起始于微控制器发出的复位脉冲,其后紧跟DS18B20发出的应答脉冲,在写时隙期间,主机向DS18B20器件写入数据,而在读时隙期间,主机读入来自DS18B20的数据。
在每一个时隙总线只能传输一位数据。
当主机将单总线DO从逻辑高(空闲状态)拉为逻辑低时,即启动一个写时隙。
所有的写时隙必须在60p.s至120p.s完成,且在每个循环之间至少需要1us的恢复时间。
在写0时隙期间,微控制器在整个时隙中将总线拉低;而写1时隙期间,微控制器将总线拉低,然后在时隙起始后15p.s之释放总线。
3.3单片机控制模块
单片机控制模块的核心是STP89S51芯片,单片机STP89S51给执行器模块输出高、低电平实现温度控制,并且,可以把传感器的采样温度值显示在数码管上。
3.3.1STP89S51芯片简介
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
今后单片机的发展趋势,将是进一步向多功能、高性能、低电压、低功耗、低价格、存储容量扩大和增强I/O功能及结构兼容等方面发展。
STP89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
在系统的开发过程中可以十分容易进行程序的修改,这就大大缩短了系统的开发周期。
同时,在系统工作过程中,能有效地保存一些数据信息,即使外界电源损坏也不影响信息的保存。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的STP89C51是一种高效微控制器。
STP89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
3.3.2STP89S51功能特性描述
STP89S51的引脚有40个引脚,与MCS-51兼容,4K字节可编程闪烁存储器可进行1000写/擦循环,数据可保留10年,全静态工作频率0Hz-24Hz,三级程序存储器锁定,
128Bytes位部RAM,32个双向输入可编程I/O口,两个16位定时器/计数,5个中断源,以及可编程串行通道,低功耗的闲置和掉电模式,片振荡器和时钟电路。
另外,AT89S51可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
其接线图如3—3所示:
图3-3STP89S51的接线图
3.4串口通信模块
由于单片机输出的电压为0—5V的直流电压,PC机读取的电压为-15V到+15V,所以PC机与单片机之间的通信需要电平转换。
本设计采用MAX232芯片的PC机和单片机串行通信接口电路。
PC机与单片机之间可以由RS-232C、RS-422或RS-423等接口相连,在PC机系统都装有异步通信适配器,利用它可以实现异步串行通信。
该适配器的核心元件是可编程的Intel8250芯片,它使PC机有能力与其他具有标准的RS-232C接口的计算机或设备进行通信。
而MCS-51单片机本身具有一个全双工的串行口,因此只要配以电平转换的驱动电路、隔离电路就可组成一个简单可行的通信接口。
同样,PC机和单片机之间的通信也分为双机通信和多机通信。
PC机和单片机最简单的连接是零调制三线经济型。
这是进行全双工通信所必须的最少线路。
因为MCS-51单片机输入、输出电平为TTL电平,而PC机配置的是RS-232C标准接口,二者的电气规不同,所以要加电平转换电路。
常用的有MC1488、MC1489和MAX232,如图3-4给出了采用MAX232芯片的PC机和单片机串行通信接口电路,与PC机相连采用9芯标准插座。
图3-4串行通信接口电路
RS—232C是使用最早、应用最多的一种异步通信总线标准,它是美国电子工业协会(ElectronicIndustriesAssociation)1962年公布的,1969年最后一次修订而成。
其中RS是RecommendedStander的缩写,232是标准的标识号,C表示最后一次修订。
RS—232C传送的波特率(bir/s)规定为19200,9600,4800,2400,600,300,150,110,75,50。
RS—232C接口总线的传送距离一般不超过15米。
RS—232是在TTL电路出现之前研制的,因此,不能和TTL电平直接相连,使用时必须加上适当的接口电路,否则将使TTL电路烧毁,这一点使用时要特别注意。
在本系统中,RS—232用三线连接法,这是一种简单的RS—232C连接方式,只需2、3交叉连接线以及信号地线。
本系统使用的RS—232是9针的接口,它所使用的是标准的RS232电平。
所以它是与电平转换芯片相接的。
MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。
它的部结构基本可分三个部分:
第一部分是电荷泵电路。
由1、2、3、4、5、6脚和4只电容构成。
功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。
由7、8、9、10、11、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
(本设计用的是第二数据通道)
DP9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
电脑的DP25插头有两个RS-232通道,而我们用来作写频器就只需一个通道就行啦。
所以一通道的11、12、13、14脚就全空脚啦。
我们只用了第二通道的4只脚。
第三部分就是供电:
15脚DNG、16脚VCC(+5v)。
其实美信公司生产的用于RS-232接口的芯片有好多好多。
有各种各样的封装,有只有一个通道的,也有多通道的,有底耗电的,也有耐15kv高压的。
其中MAX3233E使用+3v电源、+-15kvESD保护、而且省去了电荷泵的4只电容。
3.5数码管显示模块
数码管是一种半导体发光器件,其基本单元是发光二极管。
按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
例如:
共阳极数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高电平时,相应字段就不亮。
数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
动态显示驱动是利用人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,但动态显示能够节省大量的I/O端口,而且功耗更低。
因此,本系统采用了数码管动态显示。
LG5641AH与MCU的电路如下图所示:
第4章主程序的软件结构
本系统软件的主程序主要是不断地进行温度读取,温度处理,温度显示,温度比较,采用遥控器来实现报警温度的设置,测量点的实时温度显示。
主程序设计采用模块化设计方法,主要模块由系统初始化,计数器初始化模块,遥控器模块,温度读取模块,显示模块,掉电保护模块,温度处理模块及温度报警模块组成。
系统初始化模块主要是对系统的初始化,实现18B20的初始化,定时器初始化。
计数器初始化模块对定时器T0及T1作初始化,T0主要用于蜂鸣器报警,T1主要用于遥控器的扫描程序。
遥控器扫描模块是通过扫描输出判断是哪一个键按下,该模块主要完成报警温度设置,温度选择显示。
温度读取模块主要由18B20进行温度测量和温度转换。
温度显示模块主要显示实时温度和设置温度显示。
温度比较模块主要是实时温度和设置温度的比较,实现报警。
4.1主程序结构图
图4-1主程序流程图
4.2主程序清单:
#include
#defineAddr_channelP1//八路通道地址端口
typedefunsignedcharuchar;//用关键字宏定义,其效率高
typedefunsignedintuint;
sbitDRDY=P3^2;
sbitDP=P0^7;
/***********存单元定义*************/
//code以节省存单元
ucharcodeseg7[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0-9段码译码数组
ucharcodescan_con[5]={0xef,0xf7,0xfb,0xfd,0xfe};//4位列扫描控制字0xfe,0xfd,0xfb,0xf7,0xef
uintdataad_data[8]={0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};//8个通道AD数据存单元
uint_dataad_data_buff[3]={0x0000,0x0000,0x0000};
uchardatadis[5]={0x00,0x00,0x00,0x00,0x00};//4个显示单元和1个数据存储单元
/************延时1ms函数*******************/
//减运算以节省代码存储空间
voiddelay1ms(uintt)
{
uinti,j;
for(i=t;i>0;i--)
for(j=120;j>0;j--);
}
/*******对八位数据进行倒序处理函数*******/
ucharreverse_order(ucharold_dat)
{
uchari,new_dat;
new_dat=old_dat&0x01;//取要转换数据最底位
for(i=0;i<7;i++)
{
new_dat<<=1;//将最低位左移一次
old_dat>>=1;//数据的第二位移到最底位
new_dat|=(old_dat&0x01);
}
returnnew_dat;
}
/***********向AD7705写一个字节的数据******************/
voidWrite_AD_reg(uchardat)
{
SBUF=dat;
while(!
TI);//等待发送完成
TI=0;
}
/********从AD7705读出两个字节的数据,AD转换值*******/
//返回值为unsignedint类型
uintRead_AD_reg()
{
ucharlow8,high8;
uintAD_out;
SCON=0x00;
Write_AD_reg(0x1C);//读数据通道0x38
while(DRDY);//为低电平时读取数据
REN=1;//接收使能
while(!
RI);//等待接收完
RI=0;
high8=SBUF;
while(!
RI);
RI=0;
low8=SBUF;
REN=0;
high8=reverse_order(high8);//对读回的高8位倒序
low8=reverse_order(low8);
AD_out=high8;
AD_out<<=8;
AD_out|=low8;
returnAD_out;
}
/************对AD7705初始化*****************/
voidAD_Init(void)//用串行数据输入时一定要将数据进行倒序处理
{
Write_AD_reg(0X04);//写0X20到通信寄存器,选择通道ANI(+)和ANI(-),下一个寄存器指向时钟寄存器。
.倒序:
0X04
Write_AD_reg(0X30);//写0X0C到时钟寄存器,接2M时钟,时钟二分频,输出跟新率50Hz.倒序:
0X30
Write_AD_reg(0x08);//写0x10到通信寄存器,到通信寄存器,下一个寄存器指向设置寄存器.倒序:
0X08
//Write_AD_reg(0x62);//写0x46到设置寄存器,自动校准,单极性,gain=1;缓冲模式,FASYNC=0.倒序:
0X62
//Write_AD_reg(0x6E);//写0x76到设置寄存器,自动校准,单极性,gain=64;缓冲模式,FASYNC=0.倒序:
0X6E
Write_AD_reg(0x76);//写0x6e到设置寄存器,自动校准,单极性,gain=32;缓冲模式,FASYNC=0.倒序:
0X76
}
/************温度采样函数*****************/
voidAD_samp(void)
{
uchari,m,n;
ucharj=0;
int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 温度 巡检 装置 设计方案