基于AT89C51与DS18B20的温度测量系统.docx
《基于AT89C51与DS18B20的温度测量系统.docx》由会员分享,可在线阅读,更多相关《基于AT89C51与DS18B20的温度测量系统.docx(9页珍藏版)》请在三一办公上搜索。
1、基于AT89C51与DS18B20的温度测量系统基于AT89C51与DS18B20的温度测量系统 引言 温度是一种最基本的环境参数,日常生活和工农业生产中经常要检测温度。传统的方式是采用热电偶或热电阻,但是由于模拟温度传感器输出为模拟信号,必须经过A/D转换环节获得数字信号后才能与单片机等微处理器接口,使得硬件电路结构复杂,制作成木较高。近年来,美国DALLAS公司生产的DS18B20为代表的新型单总线数字式温度传感器以其突出优点广泛使用于工农业生产制造以及日常生活中。 DS18B20集温度测量和A/D转换于一体,直接输出数字量,传输距离远,可以很方便地实现多点测量,硬件电路结构简单,与单片机
2、接口几乎不需要外围元件。文章将介绍DS18B20的结构特征及控制方法,给出以此传感器和AT89C51单片机构成的最小温度测量报警系统。 1 数字温度计DS18B20介绍 1.1 DS18B20性能介绍 温度传感器DS18B20独特的一线接口,只需要一条口线通信,简化了分布式温度传感应用,无需外部元件,可用数据总线供电,电压范围为3.0 V至5.5 V 无需备用电源,测量温度范围为-55 C至+125 ,精度为0.5 C。 温度传感器可编程的分辨率为912位 温度转换为12位数字格式最大值为750毫秒,用户可定义的非易失性温度报警设置,应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热
3、敏感系统。 DS18B20芯片出厂时默认为12位的转换精度。读取或写入DS18B20仅需要一根总线,要求外接一个约4.7k的上拉电阻,当总线闲置时,其状态为高电平。此外DS18B20是温度-电流传感器,对于提高系统抗干扰能力有很大的帮助。 1.2 DSl8B20引脚结构 DS18B20采用3脚TO-92封装或8脚的SOIC封装,如图1所示。各引脚的功能:GND为电压地;DQ为单数据总线;V为电源电压;NC为空引脚。 图1DS18B20引脚图 1.3 DS18B20工作原理及应用 DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检
4、测和数据处理。在讲解其工作流程之前我们有必要了解DS18B20的内部存储器资源。DS18B20共有二种形态的存储器资源,它们分别是: (1)ROM只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后而48位是芯片唯一的序列号,最后8位是以上56位的CRC码(冗余校验)。数据在出厂时设置不由用户修改。DS18B20共64位ROM (2) RAM数据暂存器,用于内部计算和数据存取,数据在掉电后丢失DS18B20共9个字节RAM每个字节为8位。如图2所示。第1, 2个字节是温度转换后的数据值信急,第3和第4字节是高温触发器TH和低温触发器TL的易失性
5、拷贝,第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率,DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。以上字节内容每次上电复位时被刷新。配置寄存器字节各位的定义如图2所示。低5位是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户不要去改动;R1和R0用来设置分辨率,决定温度转换的精度位数。如表1所示。 图2 DS18B20字节定义 表1 DS18B20温度转换时间 2 AT89C51与DS18B20组成的温度测量系统 2.1 电路工作原理分析与原理图 2.1.1 DS18B20与单片机的连接 DS18B20的DQ
6、单数据总线与单片机P1.7连接,GND电压地、V电源电压分别和电压地和5伏直流电源连接。本文设计的系统主机只对一个DS18B20进行操作,因此不需要读取ROM编码以及匹配ROM编码,只要跳过ROM命令,就可以进行如下温度转换和读取操作。 (1)CCH跳过ROM,直接向DS18B20发送温度变换命令。 (2)44H读暂存器。读内部RAM中9字节的温度数据。 (3)BEH写暂存器。发出向内部RAM的第2、3字节写上、下限温度数据命令,紧跟该命令之后,再传送两字节数据。 DS18B20在出厂时默认配置为12位,其中最高位为符号位,即温度值共11位,单片机在读取数据时,一次会读两字节共16位,读完后将
7、低11位的二进制数转换为十进制后再乘以0.0625变为所测的温度值。另外,还需要判断温度的正负。前5个数字为符号位,这5位同时变化,我们只需判断11位就可以了。前5位为1时,读取的温度为负值,且测到的数值需要取反再加一再乘以0.0625才可以得到实际的温度值。前5位为0时,读取的温度为正值,只要将测得的数值乘以0.0625即可得到实际温度值。 由于提前给DS18B20赋了上限、下限值,所以当温度超过上限或者不足下限时,会伴有LED灯闪烁和蜂鸣器响作为警报。 2.1.2 数码管动态扫描 LED采用动态扫描显示,通过对74ls373直接操作,当锁存器74LS373的LE脚为高电平时锁存从8051的
8、P0口输出的数据,即需要显示的数据段码。然后通过对74ls138的控制来实现让哪一位数码管亮,其电路连接如图3所示。对于需要显示小数点的那一个数码管要将数码管上小数点的那一位送低电平,使小数点亮,同时向74ls138写数据使138译码器的一个引脚输出为低电平,该引脚与三极管8550的基极连通,三极管的发射极为高电平,则三极管集电极导通,三极管的集电极与数码管的位选端相连,即选中了需要显示的那一位数码管,延迟一段时间,使该位数码管亮。通过循环扫描的方法将测得温度值依次送到对应的数码管中,在三位数码管显示测得的数据。数码管显示时需要通过位选线来确定是哪个数码管点亮,其位选电路如图4所示。 图3 数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89C51 DS18B20 温度 测量 系统
链接地址:https://www.31ppt.com/p-3384849.html