温度测量与报警系统的设计Word文档格式.docx
《温度测量与报警系统的设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《温度测量与报警系统的设计Word文档格式.docx(38页珍藏版)》请在冰豆网上搜索。
1引言
1.1研究目的及意义
随着时代的发展,科学的进步,各行各业高性能的设备越来越多,对于温度的要求也日益增高,传统的温度检测是依靠着人工轮流值班,巡回查看等传统方式来测量并记录环境情况。
在传统的温度检测模式下,存在着效率低和科学性差等不足。
而温度检测系统可以轻松解决由于上述方法造成的不能及时管理等问题。
以单片机为基础的环境温度检测系统不仅仅可以及时的将信息传达给管理人员,让其第一时间了解情况,而且还可以节省人力资源,提高效率。
单片机由于成本低、功耗低、抗干扰能力强、使用方便、微型化、扩展灵活、质量轻、控制能力强和体积小等优点比专用处理器更加适合用于嵌入式系统中,所以现代人类生活中几乎每一件电子机械产品之中都会集成有单片机。
现今,单片机已经渗透到我们生活中的各个领域,包括航空航天、家用电器、医用设备、仪器仪表、专用设备的智能化的管理以及过程控制等领域。
应用单片机对温度进行控制,不仅可以提高被控温度的技术指标,而且具有控制方便和组态简单的优点。
1.2研究现状及发展趋势
虽然温度控制系统已经在国内得到了广泛的应用,但就国产的温度控制器来说,总体发展水平不高,与日本、美国、德国等国家生产的温度控制器依然存在较大的差距。
一般而言,成熟的温控产品常采用常规的PID控制器及“点位”控制器,而这两种控制器仅能适应要求不高的温度系统的控制,应用于较高控制场合的自适应、智能化控制仪表,现今国内技术还未成熟,能够广泛应用并形成商品化的控制仪表甚少。
伴随国内经济的迅猛发展,特别是在加入WTO之后,我国政府以及企业对此给予高度重视,加强对相关企业的重视,建立国家、企业研发中心,加大在此方面的研究力度,促进了国内仪表业的迅速发展。
数字温度计采用温度传感器(如热敏电阻,半导体,热电偶,铂电阻等),用电信号(如电压、电流)的变化代替温度的变化,电信号的变化和温度的变化有一定的关系,例如一定的曲线关系或者线性关系等,而电信号可以通过模数转换电路将模拟信号转换为数字信号,再将数字信号传输给处理单元,例如PC机或单片机等,处理单元通过内部的软件计算将温度和数字信号关联起来,就成为了可以显示的温度数值,如25.0℃,最后再经过显示单元,如电脑屏幕、LCD或者LED等显示出来便于观察,这样便完成了数字温度计基本的测温功能。
国内外相应技术的发展状况
温度传感器技术:
第一阶段:
传统分立式的温度传感器
此阶段温度传感器主要通过利用非电量同电量之间的转换完成温度测量,其代表为热电偶传感器。
这里提到的热电偶传感器是过去在工业温度监控当中使用最为广泛的温度传感器,因其工作原理的特殊性需要在测量温度过程当中将其与被测对象直接完成接触,这样可以不受中间传导介质的影响。
热电偶传感器具备拥有较高精度以及测量范围相对广泛等特点[1]。
第二阶段:
模拟集成温度传感器
所谓模拟集成温度传感器主要是利用硅半导体集成工艺制作而成,因此又称之为硅半导体传感器或者单片性的集成温度传感器。
这种技术的模拟集成温度传感器诞生于20世纪80年代,其已经实现将温度测量传感器集成在一个芯片上并且能够完成诸如温度监测或者模拟信号正常输出等功能。
其主要特点可以概括为功能简单(因为只能测量温度)、监测温度的误差较小、成本低廉、响应速度相对较快、能够传输距离较远、体积小巧功耗低等。
结合其特点模拟集成温度传感器十分适用于远距离的测温系统,这样不需要进行一些非线性校准并且外围电路设计简单可靠[2];
第三阶段:
智能温度传感器
现今,国际上的先进温度传感器正在从传统的模拟式向智能化、数字式以及高度集成化的方向发展。
新型的智能温度传感器具有高安全性、高可靠性、拥有高测量精度、总线标准化以及多功能性等特点。
智能温度传感器可以自主实现温度数据采集而且具备一定的数据处理功能,可以实现高度集成化的温度采集功能,极大的减少了相关系统的功能电路设计。
1.3主要研究内容
温度测量与报警系统是一款简单实用的迷你数字温度计,所采用的元件包括LCD1602字符液晶一个,单片机STC89C51,传感器DS18B20,电容电阻若干。
所用传感器DS18B20是美国DALLAS半导体公司生产的智能温度传感器,可以实现“一线总线”接口,测量温度范围-55°
C~+125°
C。
在-10~+85°
C范围内,精度为±
0.5°
最高分辩率可达0.0625[3]。
现场的温度直接采用“一线总线”的数字方式传输,大大增强了系统的抗干扰能力。
在对恶劣环境的现场温度测量中依然适用,如:
环境控制、设备或过程控制、测温类消费电子产品等。
主控制器即单片机部分,用于存储程序和控制电路;
LCD显示部分是用1602字符液晶显示温度;
传感器部分,即温度传感器,用来采集温度,进行温度转换;
复位部分,即复位电路。
测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到LCD1602上显示。
并支持硬件手动配置温度上下限,通过4个键实现温度上限和下限设置,超过此上下限即实现报警功能。
2设计方案
2.1系统基本方案
2.1.1单片机芯片
方案一:
采用STC89C51芯片作为硬件核心。
STC89C51内部具有8KBROM存储空间,512字节数据存储空间,带有2K字节的EEPROM存储空间,与MCS-51系列单片机完全兼容,STC89C51可以通过串口下载[4]。
方案二:
选用AT89S51,AT89S51片内拥有8K字节程序存储空间,256字节的数据存储空间没有EEPROM存储空间,这也与MCS-51系列单片机完全兼容,并且具有在线编程可擦除技术。
两种方案均能够满足设计要求,比较而言,STC89C51的价格比ATS89C51便宜,而且抗干扰性更加优秀,因此本次设计选用STC89C51更加合适。
2.1.2温度传感器
因为此次设计的是测温电路,所以考虑到可以采用热敏电阻之类的器件,利用这类器件的感温效应,然后将跟随被测温度变化的电压或者电流信号采集起来,进行模数转换,再应用单片机对采集的数据进行处理之后,在显示电路上,被测温度就可以显示出来,此种设计方案需要用到模数转换电路,感温电路实施过程比较麻烦。
可以考虑使用温度传感器,在设计单片机电路的时候,往往都是使用传感器,所以考虑到采用一只温度传感器DS18B20。
这种传感器,可以很方便的直接读取被测的温度值,进行转换,就可以实现设计需求,由此可见,此方案较方案一简单。
比较方案一和方案二,两种方案都完全能够满足此次设计的需要,但是,从设计方法来看,采用方案二,电路设计,软件设计都比较简单,所以采用方案二更加合理。
2.1.3显示电路
方案一:
使用数码管显示,数码管是由多个发光二极管封在在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
有共阴,共阳两种。
方案二:
采用液晶显示屏lcd1602显示,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用[5]。
对两种方案比较之后,将选用第二种方案,液晶显示屏lcd1602操作简单,可以直接对1602的引脚直接操作。
综上各方案所述,对此次设计的方案选定:
采用STC89C51单片机作为主控制系统;
采用DS18B20为传感器;
采用lcd1602液晶显示屏。
2.2系统设计框图
在该温度控制系统中STC89C51单片机与温度传感器DS18B20,LCD1602以及按键模块等连接,系统上电后,STC89C51单片机驱动温度传感器DS18B20工作,进行温度数据采集,传输。
STC89C51单片机在接到温度传感器DS18B20传送过来的温度数据后,进行操作,一方面送至LCD显示模块进行温度显示,通过4个键实现温度上限和下限设置,超过此上下限即实现报警功能。
系统设计框图如下:
图2.1系统原理框图
2.3模块功能介绍
温度控制器硬件模块主要由以下四个模块组成:
单片机模块,温度传感器模块,显示模块,按键模块。
单片机模块主要功能是实现硬件系统中各个模块功能之间的相互协调,输出执行,数据的处理等功能,其中单片机最小系统包括复位电路与起振电路。
温度传感器模块的作用是将测量到的温度采集并传输到单片机,LCD1602显示模块主要将温度在液晶显示屏中显示出来,按键模块共有四个按键,作用分别是设置,温度+1°
C,温度-1°
C,确认。
3硬件电路
本设计是一款简易,实用的小型数字温度计,设计中需要的主要元件包括:
温度传感器DS18B20,单片机STC89C51,LCD1602字符液晶一个以及电容电阻若干。
温度传感器使用美国DALLAS半导体公司生产的智能温度传感器DS18B20,此传感器支持“一线总线”接口,测温范围为-55°
C范围之内时,精度为±
最高分辩率可以达到0.0625。
现场温度直接采用“一线总线”的数字方式传输,使系统的抗干扰性大大增强。
适合进行恶劣环境的现场温度测量,如:
测温类消费电子产品、设备或过程控制以及环境控制等。
单片机部分是主控制器,用于控制电路和存数程序;
LCD显示部分使用1602字符液晶显示温度;
在传感器部分,使用温度传感器,作用是采集温度并且进行温度转换;
系统运行的总过程是,首先温度传感器采集到外部的环境温度,并进行A/D转换之后传给单片机,再经过单片机的处理判断后将温度传递到显示模块,由显示模块显示。
本设计的测温范围是-55°
C,测试精度为1°
C,并且支持温度正负提示,设计中软件的预设上限温度为30°
C,下限温度为20°
C,而且设计支持硬件手动设置温度上下限,只需通过4个按键就可以实现上限温度和下限温度的设置,当超过温度上下限时即可以实现报警功能。
[6]
3.1STC89C51单片机最小系统
(一)STC89C51引脚介绍[7]
①主电源引脚(2根)
VCC(Pin40):
电源输入,接+5V电源
GND(Pin20):
接地线
②外接晶振引脚(2根)
XTAL1(Pin19):
片内振荡电路的输入端
XTAL2(Pin20):
片内振荡电路的输出端
③控制引脚(4根)
RST/VPP(Pin9):
复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):
地址锁存允许信号
PSEN(Pin29):
外部存储器读选通信号
EA/VPP(Pin31):
程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
④可编程输入/输出引脚(32根)
STC89C51单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
P0口(Pin39~Pin32):
8位双向I/O口线,名称为P0.0~P0.7
P1口(Pin1~Pin8):
8位准双向I/O口线,名称为P1.0~P1.7
P2口(Pin21~Pin28):
8位准双向I/O口线,名称为P2.0~P2.7
P3口(Pin10~Pin17):
8位准双向I/O口线,名称为P3.0~P3.7
图3.1STC89C51封装图
(二)单片机最小系统
单片机的最小系统中还包含了晶振电路和复位电路。
晶振电路是单片机最小系统的重要组成部分之一。
一般典型的晶振是取11.0592MHz(原因是能够准确地得到9600Bd和19200Bd,用于有串口通讯的场合)/12MHz(产生准确的的US级时歇,容易定时操作)。
特别注意:
关于31脚(EA/Vpp),当接高电平的时候,单片机在复位之后将从内部ROM的0000H开始执行;
当接到低电平时候,复位之后将从外部ROM的0000H开始执行。
单片机最小系统的另一重要组成部分是复位电路。
主要作用是,在单片机系统运行的过程中,当系统受到环境干扰而出现程序错乱之时,可按下复位键,内部的程序便从头重新开始执行。
复位电路的工作原理是当单片机的RST引脚接到2us以上的电平信号时,只需使电容的充放电时间大于2US,就可以实现复位,因此电路中的电容值是允许变化的。
按键按下系统复位,是电容处于短路电路当中,释放了所有的电能,电阻两端的电压增加而引起的。
单片机最小系统中的复位电路的极性电容的大小是影响单片机复位时间的直接因素,常采用的是10~30uF,51单片机最小系统电容的值越大则所需复位时间就越短。
3.2温度检测电路
DS18B20的数字数据输出与温度检测都集成在一个芯片上,所以抗干扰力很强。
DS18B20的一个工作周期包括温度检测与数据输出两个部分。
在了解DS18B20工作流程之前我们需要了解其内部存储器资源。
18B20总共有三种形态的存储器资源,它们分别是:
ROM只读存储器,作用是存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),接来下的48位是芯片唯一的序列号,末尾的8位是以上56的位的CRC码(冗余校验)。
数据在出产时已经设置,不由用户更改。
DS18B20共64位ROM。
RAM数据暂存器,作用是内部计算以及数据存取,数据在掉电后会丢失,DS18B20共有9个字节RAM,每个字节为8位。
前两个字节是温度转换之后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像,在上电复位时其值将被刷新。
第5个字节则是用户第3个EEPROM的镜像。
第6、7、8个字节为计数寄存器,目的是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。
第9个字节为前8个字节的CRC码。
EEPROM非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作[8]。
3.3显示电路
LCD1602的介绍:
LCD内部结构:
由CGRAM(自建字型产生器)、DDRAM(数据显示存储器)、CGROM(内含字型产生器)、指令寄存器、数据寄存器、地址计数器、指令译码器等组成。
LCD显示原理:
利用旋光效应对光进行偏转,再利用偏振片滤去不需要透过光的相应像素,从而实现图像显示。
LCD驱动原理:
分成两大步,即写指令,写数据,其中写数据之前要找到显示的位置[9]。
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形[10]。
LCD1602是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
根据电路的要求,分析之后各个引脚的所接位置:
第1脚:
VSS为电源地
第2脚:
VCC接5V电源正极
第3脚:
V0为液晶显示器对比度调整端,使用时可以通过一个103电位器调整对比度。
第4脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
在电路中接P2^6。
第5脚:
RW为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
根据电路程序的分析,直接接地。
第6脚:
E(或EN)端为使能(enable)端,高电平
(1)时读取信息,负跳变时执行指令。
此处接到P2^5。
第7~14脚:
D0~D7为8位双向数据端。
从P0^0到P0^7接口。
第15~16脚:
空脚或背灯电源。
15脚背光正极,16脚背光负极。
相应所得到的电路图:
图3.2LCD1602电路图
3.4硬件电路
整体设计电路图如下:
图3.3整体设计电路图
4系统软件设计
此次系统软件采用C语言编写,主程序主要由温度采集部分,温度处理部分,数据显示部分,键盘处理部分四部分组成,系统通电后首先初始化系统,依次实现温度采集、温度处理、数据显示、键盘处理四部分功能。
温度采集部分主要任务是完成温度测试点的温度数据采集任务;
温度处理部分的作用主要是将已经采集到的温度数据和用户设定的各点上下限的温度数值进行比较处理,并且判断此数值是否已经超出设定的上下限值,若超出则led灯亮报警;
数据显示部分主要完成温度数据的显示,显示方式可以根据设计要求显示;
键盘处理部分主要完成用户设置系统参数,与显示部分结合,实现用户与系统之间的人机接口。
4.1温度检测电路流程图
DS18B20的一线工作协议流程是:
初始化→ROM操作指令→存储器操作指令→数据传输。
DS18B20的工作时序包括初始化时序、写时序和读时序三部分。
所以主机控制DS18B20完成温度转换必须经过以下三个步骤:
1.每一次在读写之前需对DS18B20进行复位;
2.在复位成功之后需要发送一条ROM指令;
3.最后必须发送RAM指令[11]。
这样就可以对DS18B20进行预定的操作。
程序流程图如下:
图4.1温度采集模块流程图
4.2显示电路流程图
lcd1602液晶显示模块基本技术:
主要的功能包括:
1.40通道点阵LCD驱动;
2.可选择当作列驱动或行驱动[12];
3.输入/输出信号:
输出,可以产生20×
2个LCD驱动波形;
输入,能够接受控制器送出的串行数据以及控制信号,偏压(V1∽V6);
4.通过单片机控制可以将测得的频率信号读数显示出来。
图4.2显示模块流程图
4.3键盘电路流程图
键盘扫描概述:
第一,确定键盘编码方案:
采用非编码键盘还是编码键盘。
第二,确定键盘的工作方式:
采用中断或者查询方式输入键操作信息。
最后,设计硬件电路。
在非编码键盘系统中,键抖动的消除,键闭合和键释放的信息的获取,键值查找以及一些保护措施的实施等任务,都是由软件来完成的。
1.监测有无键按下;
键的是否闭合,反映到电压上便是呈现出高电平或者是低电平,因此通过检测电平的高低状态,就可以确认按键是否按下[13]。
2.确定是哪个键按下。
一.编程扫描方式:
当单片机空闲之时,才调用键盘扫描子程序,不断的扫描键盘,等待用户从键盘上输入数据或命令,来响应键盘的输入请求。
二.定时扫描工作方式:
单片机对键盘的扫描也可以使用定时扫描的方式,即每经过一定的时间间隔对键盘进行一次扫描。
三.中断工作方式:
只有当键盘有键按下的时候,才执行键盘扫描程序且执行该按键功能程序,若没有键按下,单片机将不扫描键盘[14]。
程序流程图:
图4.3按键模块流程图
4.4仿真结果及作品指标
仿真图如下:
图4.4仿真图
本设计可以实现的温度测量范围是-55°
C,精度为1°
C,支持温度正负提示,软件预设的上限温度为30°
C,而且支持硬件手动配置上下限温度,可以使用4个按键实现温度上限和下限的设置,超过温度上下限即实现报警功能。
5结语
本次设计基本满足了设计要求,在此次设计的过程中,遇到了很多困难,特别是在基准的选择时花费了我很多的时间,在多方面比较之后,选择了温度传感器DS18B20,实践证明使用此温度传感器的测温系统测温准确,应用方便灵活,而且电路简单。
应用前景广阔,在常温测量中有很大的优势。
如在工业、空调系统、智能楼宇等领域的温度测量中可以有广泛的应用。
在本次的设计中,我将理论与实践相结合,在实践中不断丰富自己的理论知识,最终完成了温度测量与报警系统的设计,该设计测试良好,满足设计要求。
系统调试主要是以程序为主。
硬件方面的调试比较简单,首先仔细检查电路连接完全正确,然后使用万用表进行测试或通电检测,检测无误。
软件方面的调试,首先编写显示程序并且进行硬件的正确性检验,然后分别对主函数、DS18B20复位函数、DS18B20写字节函数、DS18B20读字节函数、温度计算转换函数、显示函数等程序进行编程以及调试。
因为DS18B20与单片机采用的是串行数据传送,所以,在对DS18B20进行读写编程时一定严格的保证读写时序,否则将导致无法读取测量结果。
本程序使用的是单片机C语言编写,采用Keil4编译器编程调试。
当软件调试到可以显示温度值,并且在当温度发生变化时(例如用手去接触),能够显示温度发生改变就基本完成。
虽然