实用基于单片机的数字温度计设计与实现可行性研究报告.docx
《实用基于单片机的数字温度计设计与实现可行性研究报告.docx》由会员分享,可在线阅读,更多相关《实用基于单片机的数字温度计设计与实现可行性研究报告.docx(30页珍藏版)》请在冰豆网上搜索。
实用基于单片机的数字温度计设计与实现可行性研究报告
基于单片机的数字温度计设计与实现可行性研究报告
摘要
在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。
传统的测温元件有热电偶和二电阻。
而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。
我们用一种相对比较简单的方式来测量。
我们采用美国DALLAS半导体公司继DS18B20之后推出的一种改进型智能温度传感器DS18B20作为检测元件,温度范围为-55~125℃,最高分辨率可达0.0625℃。
DS18B20可以直接读出北侧温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
本文介绍一种基于AT89C52单片机的一种温度测量及报警电路,该电路采用DS18B20作为温度监测元件,测量范围0℃~+100℃,使用LCD模块显示,能设置温度报警上下限。
正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,AT89C52单片机功能和应用。
该电路设计新颖、功能强大、结构简单。
目 录
前 言
随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确迅速的获得这些参数就需要受制于现代信息基础的发展水平。
在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工、农业生产过程中需要实时测量温度,因此研究温度的测量方法和装置具有重要的意义。
传统的温度传感器大多以热敏电阻作为温度传感器,但热敏电阻的可靠性差,准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理,而这需要比较多的外部的硬件的支持,硬件电路复杂(需要用到A/D转换电路,感温电路),软件调试也复杂,制作成本也非常高。
目前的数字温度传感器是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配微控制器(MCU)。
社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片机测温系统等高科技的方向迅速发展。
本文将介绍智能集成温度传感器DS18B20的结构特征及控制方法,并对以此传感器,AT89C52单片机为控制器构成的数字温度测量装置的工作原理及程序设计作了详细的介绍。
与传统的温度计相比,其具有读数方便,测温范围广,测温准确,输出温度采用数字显示等优点。
第1章绪论
1.1设计背景
1.1.1温度计的介绍
随着科学技术的发展和现代工业技术的需要,测温技术也不断地改进和提高。
由于测温范围越来越广,根据不同的要求,又制造出不同需要的测温仪器。
下面介绍几种常用的温度计。
气体温度计:
多用氢气或氦气作测温物质,因为氢气和氦气的液化温度很低,接近于绝对零度,故它的测温范围很广。
这种温度计精确度很高,多用于精密测量。
电阻温度计:
分为金属电阻温度计和半导体电阻温度计,都是根据电阻值随温度的变化这一特性制成的。
金属温度计主要有用铂、金、铜、镍等纯金属的及铁、磷青铜合金的;半导体温度计主要用碳、锗等。
电阻温度计使用方便可靠,已广泛应用。
电阻温度计的测量范围为-260℃~600℃左右。
指针式温度计:
是形如仪表盘的温度计,也称寒暑表,用来测室温,是用金属的热胀冷缩原理制成的。
它是以双金属片作为感温元件,用来控制指针。
双金属片通常是用铜片和铁片铆在一起,且铜片在左,铁片在右。
由于铜的热胀冷缩效果要比铁明显的多,因此当温度升高时,铜片牵拉铁片向右弯曲,指针在双金属片的带动下就向右偏转(指向高温);反之,温度变低,指针在双金属片的带动下就向左偏转(指向低温)。
压力式温度计:
压力式温度计是利用封闭容器内的液体,气体受热后产生体积膨胀或压力变化作为测信号。
它的基本结构是由温包、毛细管和指示表三部分组成。
压力式温度计的优点是:
结构简单,机械强度高,不怕震动。
价格低廉,不需要外部能源。
缺点是:
测温范围有限制,一般在-80~400℃;热损失大响应时间较慢。
水银温度计:
水银温度计是膨胀式温度计的一种,水银的凝固点是-38.87℃,沸点是356.7℃,用来测量0~150℃或500℃以内范围的温度,它只能作为就地监督的仪表。
用它来测量温度,不仅比较简单直观,而且还可以避免外部远传温度计的误差。
1.1.2温度传感器的发展状况
单片机在测控领域中具有十分广泛的应用,它既可以直接处理电信号,也可以间接处理温度、湿度、压力等非电信号。
由于该特点,因而被广泛应用于工业控制领域[1]。
由于单片机的接口信号是数字信号,因此使用它来进行温度、湿度、压力等这类非电信号的信息处理,必须使用对应的传感器进行A/D或D/A转换,最后再传输给单片机进行最终的数据处理和显示。
在测温领域,人们通常使用温度传感器,将温度信息转换为电流或电压进行输出,进而完成数据的处理和显示[2]。
本文正是基于温度传感器和单片机而构建的电路,进而完成温度的测量和显示。
温度传感器的发展经历了三个发展阶段:
(1)传统的分立式温度传感器。
(2)模拟集成温度传感器。
(3)智能集成温度传感器。
目前使用最广的是智能温度传感器(亦称数字温度传感器),是在20世纪90年代中期问世的。
它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配于各种微控制器(MCU)[3]。
社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展[4]。
本文将介绍温度传感器DS18B20的结构特征及控制方法,并以此传感器为测温元件,AT89C52单片机为控制核心,构成的数字温度测量装置,并对其工作原理及程序设计作详细的介绍。
1.2选题的目的和意义
1.2.1选题的目的
利用单片机AT89C52和温度传感器DS18B20设计一个设计温度计,能够测量-20~80℃之间的温度值,并且小于20℃和大于32℃时报警,用LCD液晶屏显示,测量精度为0.1℃。
通过本次设计能够理解数字温度计的工作原理和熟悉单片机的发展和应用,巩固所学的知识[5]。
1.2.2选题的意义
随着电子技术的发展,人们的生活日趋数字化,多功能的数字温度计可以给我们的生活带来很大的方便;支持“一线总线”接口的温度传感器简化了数字温度计的设计,降低了成本;以美国MAXIM/DALLAS半导体公司的单总线温度传感器DS18B20为核心,以ATMEL公司的AT89C52为控制器设计的DS18B20温度控制器结构简单、测温准确、具有一定控制功能的智能温度控制器[6]。
本课题研究的重要意义在于生产过程中随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数,就需要受制于现代信息基础的发展水平[7]。
在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是数字温度传感器技术,在我国各领域已经应用的非常广泛可以说是渗透到社会的每一个领域,与人民的生活和环境的温度息息相关[8]。
第2章系统概述
2.1设计方案的选择
该系统主要由温度测量和数据采集两部分电路组成,实现的方法有很多种,下面将列出两种在日常生活中和工农业生产中经常用到的实现方案。
2.1.1方案一
采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成,热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成[9]。
数据采集部分则使用带有A/D通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据处理,通过显示电路,就可以将被测温度显示出来。
热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较高的缺点,并且这种设计需要用到A/D转换电路,感温电路比较麻烦。
系统主要包括对ADC0809的数据采集,温度的测量,此外还有复位电路,晶振电路,启动电路等。
处理芯片为51芯片,执行机构有4位数码管、报警电路等。
系统框图如图2-1所示。
图2-1热电偶温差电路测温系统框图
2.1.2方案二
采用数字温度芯片DS18B20测量温度,输出信号全数字化。
便于单片机处理及控制,省去传统的测温方法的很多外围电路。
且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。
在0~100℃时,最大线形偏差小于1℃。
DS18B20的最大特点之一采用了单总线的数据传输,由温度传感器DS18B20和单片机AT89C52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接[10]。
这样,测温系统的结构就比较简单,体积也不大。
采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。
既可以单独对多DS18B20控制工作,还可以与PC机通信上传数据,另外,AT89C52在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。
该系统利用AT89C52芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。
该系统扩展性非常强,它可以在设计中加入时钟芯片以获取时间数据,在数据处理同时显示时间,并可以利用AT89C52芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过芯片与计算机的接口进行串口通信,方便的采集和整理时间温度数据[11]。
从以上两种方案中,容易看出方案一的测温装置可测温度范围宽、体积小,但是线性误差较大。
方案二的测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本次设计采用了方案二。
2.2系统设计原理
本课题以是AT89C52单片机为核心设计的一种数字温度控制系统,系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等组成[12]。
利用温度传感器DS18B20可以直接读取被测温度值,进行转换的特性,模拟温度值经过DS18B20处理后转换为数字值,然后送到单片机中进行数据处理,并与设置的温度报警限比较,超过限度后通过扬声器报警[13]。
同时处理后的数据送到LCD中显示。
系统框图如图2-2所示。
图2-2系统基本方框图
1.主控制器
单片机AT89C52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。
2.温度传感器
温度传感器采用美国DALLAS半导体公司生产的DS18B20温度传感器。
DS18B20输出信号全数字化。
便于单片机处理及控制,在0~100℃,时,最大线形偏差小于1℃,采用单总线的数据传输,可直接与计算机连接。
用单片机AT89C52芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。
获得的数据可以通过芯片与计算机的接口进行串口通信,方便的采集和整理时间温度数据。
3.显示电路
显示电路采用LCD液晶显示数码管,从P3口RXD,TXD串口输出段码[14]。
显示电路是使用的串口显示,这种显示最大的优点就是使用资源比较少,只用P3口的RXD和TXD串口发送和接收,显示比较清晰。
第3章系统硬件的设计
3.1AT89C52的介绍
1.AT89C52简介
AT89C52是一种带8K字节闪速可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机[15]。
AT89C52是一种带8KB的闪速可编程可擦除只读存储器的单片机,AT89C52是一种高效微控制器。
AT89C52单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C52引脚排列如图3-1所示。
图3-1AT89C52的管脚排列图
2.主要特性:
(1)与MCS-51兼容。
(2)4K字节可编程闪烁存储器。
(3)寿命长:
1000写/擦循环。
(4)数据保留时间:
10年。
(5)全静态工作:
0Hz-24MHz。
(6)三级程序存储器锁定。
(7)128×8位内部RAM。
(8)32可编程I/O线。
(9)两个16位定时器/计数器。
(10)5个中断源。
(11)可编程串行通道。
(12)低功耗的闲置和掉电模式。
(13)片内振荡器和时钟电路。
3.管脚说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏极开路双向I/O口,每个管脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻抗输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是带8个内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口同时为闪烁编程和编程校验接收一些控制信号。
P3口也可作为AT89C52的一些特殊功能口,如下表3-1所示。
表3-1P3口的一些特殊功能口
口管脚
备选功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
/INT0(外部中断0)
P3.3
/INT1(外部中断1)
P3.4
T0(记时器0外部输入)
P3.5
T1(记时器1外部输入)
P3.6
/WR(片外数据存储器“写选通控制”输出)
P3.7
/RD(片外数据存储器“读选通控制”输出)
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指令时,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-0FFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平(接VCC端)时,CPU则执行内部程序存储器中的程序。
在FLASHROM编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3.2DS18B20的介绍
Dallas半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。
DS18B20测量温度范围为-55℃~+125℃,在-10~+85℃范围内,精度为±0.5℃。
DS18B20可以程序设定9~12位的分辨率,及用户设定的报警温度存储在E2PROM中,掉电后依然保存。
3.2.1DS18B20的引脚排列
如图3-2所示,DS18B20的外形如一只三极管,引脚名称及作用如下:
GND:
接地端。
DQ:
数据输入/输出脚,与TTL电平兼容。
VDD:
可接电源,也可接地。
因为每只DS18B20都可以设置成两种供电方式,即数据总线供电方式和外部供电方式。
采用数据总线供电方式时VDD接地。
图3-2DS18B20引脚排列
3.2.2DS18B20内部结构
DS18B20内部结构主要由四部分组成:
64位ROM、温度传感器、非挥发的温度报警触发器TH和TL及配置寄存器。
DS18B20内部结构图如3-3图所示。
图3-3DS18B20内部结构图
1.64位ROM。
64位ROM是由厂家使用激光刻录的一个64位二进制ROM代码,是该芯片的标识号,如表3-2所示。
表3-264位ROM标识
8位循环冗余检验
48位序列号
8位分类编号(10H)
MSBLSB
MSBLSB
MSBLSB
开始8位表示产品分类编号,接着48位是该DS18B20自身的序列号,最后8位为前56位的CRC循环冗余校验码(CRC=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
2.温度传感器。
温度传感器是DS18B20的核心部分,该功能部件可完成对温度的测量。
通过软件编程可将-55~125℃范围内的温度值按9位、10位、11位、12位的分辨率进行量化,以上的分辨率都包括一个符号位,因此对应的温度量化值分别为0.5℃、0.25℃、0.125℃、0.0625℃,即最高分辨率为0.0625℃。
芯片出厂时默认为12位的转换精度。
当接收到温度转换命令后,开始转换,转换完成后的温度以16位带符号扩展的二进制补码形式表示,存储在高速缓存器RAM的第0,1字节中,二进制数的前5位是符号位。
如果测得的温度大于0,这5位为0,只要将测得的数值乘上0.0625即可得到实际温度;如果温度小于0,这5位为1,测得的数值需要取反加1再乘上0.0625即可得到实际温度。
温度数据格式如表3-3所示。
表3-3温度数据格式
23
22
21
20
2-1
2-2
2-3
2-4
LSByte
S
S
S
S
S
26
25
24
MSByte
其中“S”为符号位,对应的温度计算:
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。
表3-4是一部分温度值对应的二进制温度数据。
表3-4一部分温度对应值
温度/℃
二进制表示
十六进制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010000
0191H
+10.125
0000000010100001
00A2H
+0.5
0000000000000010
0008H
0
0000000000001000
0000H
-0.5
1111111111110000
FFF8H
-10.125
1111111101011110
FF5EH
-25.0625
1111111001101111
FE6FH
-55
1111110010010000
FC90H
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2PROM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
高速暂存RAM包含了8个连续字节,前2个字节是测得的温度信息,第3和第4字节是TH和TL的易失性拷贝,第5个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
它的字节定义如表3-5所示。
低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式。
表3-5DS18B20字节定义
TM
R1
R0
1
1
1
1
1
DS18B20出厂时该位被设置为0,用户不要去改动,R1和R0决定温度转换的精度位数,来设置分辨率,详见表3-6(DS18B20出厂时被设置为12位)。
表3-6DS18B20分辨率设置
R1
R0
分辨率/位
温度最大转向时间/ms
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750
由表3-6可见,分辨率越高,所需要的温度数据转换时间越长。
因此,在实际应用中要将分辨率和转换时间权衡考虑。
3.温度报警触发器TH和TL
DS18B20依靠一个单线端口通讯。
在单线端口条件下,必须先建立ROM操作协议,才能进行存储器和控制操作。
因此,控制器必须首先提供下面5个ROM操作命令之一:
(1)读ROM。
(2)匹配ROM。
(3)搜索ROM。
(4)跳过ROM。
(5)报警搜索。
成功执行完一条ROM操作序列后,即可进行存储器和控制操作,控制器可以提供6条存储器和控制操作指令中的任一条。
一条控制操作命令指示DS18B20完成一次温度测量。
测量结果放在DS18B20的暂存器里,