基于DS18B20的智能温度测量装置
发布时间:2008/6/3 0:00:00 访问次数:517
    
    
     作者email: jsmo739@yeah.net 一、前言 温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:①传统的分立式温度传感器,②模拟集成温度传感器,③智能集成温度传感器。目前,国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。文章将介绍智能集成温度传感器ds18b20的结构特征及控制方法,并对以此传感器,89c2051单片机为控制器构成的温度测量装置的工作原理及程序设计作了详细的介绍。该装置适用于人民的日常生活和工、农业生产用于温度测量。 二、ds18b20单线数字温度传感器 由dallas半导体公司生产的ds18b20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。 1、ds18b20性能特点 ds18b20的性能特点:①采用单总线专用技术,既可通过串行口线,也可通过其它i/o口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位),②测温范围为-55℃-+125℃,测量分辨率为0.0625℃,③内含64位经过激光修正的只读存储器rom,④适配各种单片机或系统机,⑤用户可分别设定各路温度的上、下限,⑥内含寄生电源。 2、ds18b20内部结构 ds18b20内部结构主要由四部分组成:64位光刻rom,温度传感器,非挥发的温度报警触发器th和tl,高速暂存器。ds18b20的管脚排列如图1所示。 64位光刻rom是出厂前被光刻好的,它可以看作是该ds18b20的地址序列号。不同的器件地址序列号不同。 图1 ds18b20引脚分布图1、ds18b20控制方法 在硬件上,ds18b20与单片机的连接有两种方法,一种是vcc接外部电源,gnd接地,i/o与单片机的i/o线相连;另一种是用寄生电源供电,此时udd、gnd接地,i/o接单片机i/o。无论是内部寄生电源还是外部供电,i/o口线要接5kω左右的上拉电阻。 ds18b20有六条控制命令,如表所示: cpu对ds18b20的访问流程是:先对ds18b20初始化,再进行rom操作命令,最后才能对存储器操作,数据操作。ds18b20每一步操作都要遵循严格的工作时序和通信协议。如主机控制ds18b20完成温度转换这一过程,根据ds18b20的通讯协议,须经三个步骤:每一次读写之前都要对ds18b20进行复位,复位成功后发送一条rom指令,最后发送ram指令,这样才能对ds18b20进行预定的操作。 三、基于ds18b20的温度测量装置 1、系统组成 由ds18b20构成的智能温度测量装置由三部分组成:ds18b20温度传感器、89c2051、显示模块。产品的主要技术指标:①测量范围:-55℃-+125℃,②测量精度:0.5℃,③反应时间≤500ms。 2、工作原理 基于ds18b20的温度测量装置电图如图2所示:温度传感器ds18b20将被测环境温度转化成带符号的数字信号(以十六位补码形式,占两个字节),传感器可置于离装置150米以内的任何地方,输出脚i/o直接与单片机的p1.1相连,r1为上拉电阻,传感器采用外部电源供电。89c2051是整个装置的控制核心,89c2051内带1k字节的flashrom,用户程序存放在这里。显示器模块由四位一体的共阳数码管和4个9012组成。系统程序分传感器控制程序和显示器程序两部分,传感器控制程序是按照ds18b20的通信协议编制。系统的工作是在程序控制下,完成对传感器的读写和对温度的显示。1、 程序设计根据ds18b20的通信协议,按图2的硬件结构。下面是系统的主要程序。系统主程序********************org 0100hi/o bit p3.4 start:lcall rst18b20 ;调ds18b20初始化子程序 mov a,#occh ;写cch到ds18b20,以便跳过rom匹配 lcall wids18b20 ;wids18b20是写18b20子程序 jnb f1, start ;若ds18b20不存在则从新开始 mov a,#44h ;发温度转换命令 lcall wids18b20 lcall dsplay ;调显示子程序 lcall rst18b20 mov a,#0beh ;发读温度命令 lcall wids18b20 lcall rdds18b20 ;rdds18b20是读子程序 lcall zwds18b20 ;zwds18b20是温度计算子程序 lcall dsplay ljmp start***********部分子程序************ds18b20初始化子程序***********rst18b20: setb i/o
     clr i/o
     mov r0,#0fah
    
    
     作者email: jsmo739@yeah.net 一、前言 温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:①传统的分立式温度传感器,②模拟集成温度传感器,③智能集成温度传感器。目前,国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。文章将介绍智能集成温度传感器ds18b20的结构特征及控制方法,并对以此传感器,89c2051单片机为控制器构成的温度测量装置的工作原理及程序设计作了详细的介绍。该装置适用于人民的日常生活和工、农业生产用于温度测量。 二、ds18b20单线数字温度传感器 由dallas半导体公司生产的ds18b20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。 1、ds18b20性能特点 ds18b20的性能特点:①采用单总线专用技术,既可通过串行口线,也可通过其它i/o口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位),②测温范围为-55℃-+125℃,测量分辨率为0.0625℃,③内含64位经过激光修正的只读存储器rom,④适配各种单片机或系统机,⑤用户可分别设定各路温度的上、下限,⑥内含寄生电源。 2、ds18b20内部结构 ds18b20内部结构主要由四部分组成:64位光刻rom,温度传感器,非挥发的温度报警触发器th和tl,高速暂存器。ds18b20的管脚排列如图1所示。 64位光刻rom是出厂前被光刻好的,它可以看作是该ds18b20的地址序列号。不同的器件地址序列号不同。 图1 ds18b20引脚分布图1、ds18b20控制方法 在硬件上,ds18b20与单片机的连接有两种方法,一种是vcc接外部电源,gnd接地,i/o与单片机的i/o线相连;另一种是用寄生电源供电,此时udd、gnd接地,i/o接单片机i/o。无论是内部寄生电源还是外部供电,i/o口线要接5kω左右的上拉电阻。 ds18b20有六条控制命令,如表所示: cpu对ds18b20的访问流程是:先对ds18b20初始化,再进行rom操作命令,最后才能对存储器操作,数据操作。ds18b20每一步操作都要遵循严格的工作时序和通信协议。如主机控制ds18b20完成温度转换这一过程,根据ds18b20的通讯协议,须经三个步骤:每一次读写之前都要对ds18b20进行复位,复位成功后发送一条rom指令,最后发送ram指令,这样才能对ds18b20进行预定的操作。 三、基于ds18b20的温度测量装置 1、系统组成 由ds18b20构成的智能温度测量装置由三部分组成:ds18b20温度传感器、89c2051、显示模块。产品的主要技术指标:①测量范围:-55℃-+125℃,②测量精度:0.5℃,③反应时间≤500ms。 2、工作原理 基于ds18b20的温度测量装置电图如图2所示:温度传感器ds18b20将被测环境温度转化成带符号的数字信号(以十六位补码形式,占两个字节),传感器可置于离装置150米以内的任何地方,输出脚i/o直接与单片机的p1.1相连,r1为上拉电阻,传感器采用外部电源供电。89c2051是整个装置的控制核心,89c2051内带1k字节的flashrom,用户程序存放在这里。显示器模块由四位一体的共阳数码管和4个9012组成。系统程序分传感器控制程序和显示器程序两部分,传感器控制程序是按照ds18b20的通信协议编制。系统的工作是在程序控制下,完成对传感器的读写和对温度的显示。1、 程序设计根据ds18b20的通信协议,按图2的硬件结构。下面是系统的主要程序。系统主程序********************org 0100hi/o bit p3.4 start:lcall rst18b20 ;调ds18b20初始化子程序 mov a,#occh ;写cch到ds18b20,以便跳过rom匹配 lcall wids18b20 ;wids18b20是写18b20子程序 jnb f1, start ;若ds18b20不存在则从新开始 mov a,#44h ;发温度转换命令 lcall wids18b20 lcall dsplay ;调显示子程序 lcall rst18b20 mov a,#0beh ;发读温度命令 lcall wids18b20 lcall rdds18b20 ;rdds18b20是读子程序 lcall zwds18b20 ;zwds18b20是温度计算子程序 lcall dsplay ljmp start***********部分子程序************ds18b20初始化子程序***********rst18b20: setb i/o
     clr i/o
     mov r0,#0fah