新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于DS18B20和AT89C52的温度测量和显示系统

基于DS18B20和AT89C52的温度测量和显示系统

作者:时间:2013-12-26来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/256990.htm

0 引言

传统的温度检测大多以热敏电阻为,而热敏电阻的可靠性差,测量温度准确率低,且必须转换为数字信号后才能由单片机进行处理,在高精度要求的温度检测应用中,热敏电阻已经被精度高、准确性好的集成温度采集设备所代替。是美国DALLAS半导体公司推出的一种改进型数字。它在温度精度、转换时间、传输距离、分辨率等方面有很大改进,因而被广泛应用于温度采集与处理、数字温度计及各种温控系统中。本文采用设计的与显示系统,可以实时测量并显示的温度范围为-55~125℃。系统可设置温度上限和温度下限,当测量温度高于上限或者低于下限温度时,系统将发出报警。


1


DS18B20是美国DALLAS半导体公司推出的一种改进型智能温度传感器,该传感器的可测温度范围为-55~125℃,可编程分辨率为9~12位,对应的可分辨温度为0.5℃、0.25℃、0.125℃和0.062 5℃。DS18B20的测量输出为数字信号,并可单线串行发送给CPU,并支持多点组网。DS18B20有3脚和8脚两种结构,而8脚的结构又有不同的封装形式,图1所示是DS18B20的引脚图。本文采用三极管形状的3脚DS18B20。


事实上,无论是3脚结构还是8脚的结构,DS18B20在实际电路中都只有3个引脚参与连接,即电源(VDD)、地(GND)和信号输入输出(DQ)。

电路中的单片机采用,DS18B20采用外部电源供电方式,其DQ端子与单片机的P3.7相连。采用两个4连排共阳极数码管显示实时温度,分别用于显示整数部分和小数部分。数码管的段选线与单片机的P1口相连,位选线与P2口相连。图中显示的正是最高温度125℃,由于在proteus软件中DS18B20无法设置小数,所以小数部分只能显示零了。DS18B20的最高分辨率为0.0625℃,所以理论上应该能显示4位小数。


3 软件设计


本系统的软件设计主要包括三部分,一是部分,二是温度显示部分,还有一个是报警部分。


DS18B20通过严格的单线通信协议来保证数据完整。该协议中定义了复位脉冲、存在脉冲、写0、写1、读0、读1等几种信号形式。其中,只有存在脉冲是由总线受控(即DS18B20)发出,其他的全部由总线主控(即单片机)发出。


3.1 初始化


DS18B20的初始化包括来自单片机的复位脉冲和接下来由DS18B20发出的存在脉冲。其初始化时序图如图3所示。


当DS18B20响应单片机的复位而发出存在脉冲时,单片机便知道DS18B20在线上并已准备好。单片机发送复位脉冲,即拉低总线至少480 μs,然后单片机释放总线并进入接收模式。当DS18B20检测到复位脉冲后,等待15~60 μs,然后发送存在脉冲,即拉低总线60~240μs。由于DS18B20的DQ引脚接了一个上拉电阻,所以,总线的空闲状态为高电平,存在脉冲结束后,总线自动恢复到高电平状态。单片机所要做的就是发出复位脉冲并检测DS18B20的存在脉冲,其参考程序如下:



3.2 写时序


单片机可在写时隙向DS18B20写入数据,在读时隙从DS18B20读出数据,每个时隙总线上只传送一位数据。写时隙有“写1”时隙和“写0”时隙两种。单片机通过写1时隙向DS18B20写入一个逻辑1,并通过写0时隙向DS18B20写入一个逻辑0。所有的写时隙必须至少持续60 μs,并在每个独立的写时隙之间至少有1 μs的恢复时间。两种写时隙都是由单片机拉低总线开始的,如图3所示。


要产生写1时隙,单片机在拉低总线后必须在15 μs之内释放总线。总线被释放后,上拉电阻将把总线拉高。要产生写0时隙,单片机在拉低总线后必须继续保持总线低电平使时隙至少60μs。DS18B20在时隙开始后15~60 μs之间的时间段内对总线进行采样,如果总线是高电平,则向DS18B20写入一个1,如果总线是低电平,则向DS18B20写入一个0。


下面是向DS18B20写入一个字节数据的程序代码:

脉冲点火器相关文章:脉冲点火器原理
上拉电阻相关文章:上拉电阻原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭