当前位置: 主页 > 期刊大全 > 科技期刊 >

基于DS18B20 的多点温度数据采集仪的设计

作者:彭远芳 日期:2014-06-19 09:54 来源:未知
上海工程技术大学高职学院 上海 200437
【文章摘要】
本文以STC89S52 单片机为核
心,选用一线式数字温度传感器
DS18B20,设计了多点温度数据采集
仪,可广泛地应用于酒店宾馆、大型
粮仓、酿酒厂、食品加工厂等需要进
行温度检测的场合,设计中采用多总
线并行温度检测,实现了多点温度
的同步检测,程序设计中因无需对
DS18B20 进行识别,因此程序设计简
单,维护方便、温度检测精度高。
【关键词】
STC89S52 单片机;DS18B20 温度传感
器;多点温度测量
1 硬件设计
本文设计的多点温度数据采集仪主
要包括STC89S52 单片机、DS18B20 数字
温度传感器、按键输入模块、LED 显示及
驱动模块,以及报警电路等。系统组成框
图如图1 所示。
图1 系统组成框图
由于DS18B20 具有一线式接口,用于
多点温度检测可极大地简化系统的硬件
设计。多点测温可采取单总线多点巡回检
测和多总线并行检测两种结构。
1.1 单总线多点巡回检测
如图2 所示为单总线多点巡回检测
示意图,八个DS18B20 只占用一个端口。
在单片机访问DS18B20 时,DS18B20 一
般都是充当从机的角色,而单片机就是主
机。所有的DS18B20 均连接到主机的某个
I/O 端口(如P1.0)上,由于每个DS18B20
内部均有一个唯一的序列号(64 位),在系
统安装及工作之前先将主机与DS18B20
逐个挂接,分别读出其序列号并存储在主
机的ROM 中,这样就能够根据序列号对
单总线上挂接的多个DS18B20 进行辨别
与控制了。
单总线多点巡回检测的优点是电
路连接简单,硬件开销小。但由于多个
DS18B20 并联连接,在电气特性上会有
相互影响,当其中某个发生故障(如短路)
时,将会影响其它器件的正常工作,而排
除故障时需要逐个断开其与电路的连
接,这将给维修带来麻烦;其次,多个器
件并联于单总线,在软件设计中需要对
DS18B20 逐一进行识别,整个系统将花大
量时间消耗在器件的序列号查询,以及时
序所要求的延时上,温度检测的实时性和
温度测量的灵敏度大大降低。
1.2 多总线并行检测
如图3 所示为多总线并行检测示意
图,将每个DS18B20 的引脚DQ 与单片
机一组并行口对应相连(如与P1.0~P1.7
相连)。与图2 相比,每个端口上仅有一
个DS18B20 器件,DS18B20 器件相互间
是独立的,无需进行序列号搜索与匹配操
作,省掉了烦琐的读取与匹配序列号的操
作过程。此外,在对连接在同一组端口上
的多个DS18B20 操作时,只需统一地对
这一组并行端口进行操作,即可同时对该
组DS18B20 器件进行同步的命令发送与
数据接收操作,从而达到同步快速读取温
度数据的目的,因而程序设计变得较为简
单。
2 软件设计
单片机通过一线总线访问DS18B20,
需要经过以下几个步骤:
1)DS18B20 的复位;2) 执行ROM 命
令;3) 发DS18B20 开始转换命令;4) 读
取DS18B20 中的温度值。
DS18B2 的复位即是一次访问
DS18B20 的开始,由于采取多总线并行检
测,每根单线总线上仅有一个DS18B20,
故无需读取ROM 中的序列号,可写入跳
过ROM 指令,执行DS18B20 开始转换命
令。
开始转换命令有包括以下几个步骤:
1)DS18B20 复位;2) 写入跳过ROM
的字节命令(0xCC);3) 写入开始转换命令
(0x44)4) 延迟750~900ms。
转换好的温度会储存到DS18B20 暂
存器字节0 和1。接下来DS18B20 读暂存
数据,包括以下步骤:
1)DS18B20 复位;2) 写入跳过ROM
的字节命令(0xCC);3) 写入读暂存的功能
命令(0xee);4) 读入LS Byte,转换结果的
低八位;5) 读入MS Byte,转换结果的高
八位;6)DS18B20 复位,读取暂存结束。
DS18B20 片内有9 个字节的暂存单
元,其中字节0~1 存放的是转换好的温度,
也称为温度寄存器。其中字节0 存放LS
Byte(低八位),字节1 存放MS Byte(高八
位);字节2~3 是用户通过软件来设置最
高报警和最低报警值的;字节4 是用来配
置转换精度(9~12 位)。
16 位温度寄存器中,字节1 的高5 位
为符号位(负数时为1),字节0 的低4 位
均为小数数位,数据处理中,存在着如何
表示温度值的正负,以及如何处理显示精
度的问题如图4 所示。
图4 数据处理流程图
读暂存数据转换为十进制值的步骤
如下:
1) 整合LS Byte 和MS Byte 的数据;2)
判断该温度值的正负,并置标志位;3) 求
得十进制温度值;
需要注意的是,在确定了显示精度
后,若显示一位小数则十进制温度值乘以
0.625,若显示两位小数则十进制温度值乘
以乘以 6.25,,从而将十进制数值中的“个
位”求出。
3 结束语
本文设计的多点温度数据采集仪,其
核心是DS18B20 与单片机的接口及程序
设计。针对DS18B20 的特点,探讨了两种
DS18B20 与单片机接口方式的利弊,分析
了单片机访问DS18B20 的工作过程,并通
过程序设计流程图给出了温度值的正负
及显示精度不同(分辨率0.0625)的数据
处理方法。
  
【参考文献】
[1] 付浩伟, 向凤红等. 基于DS18B20
传感器的温度数据采集系统的设计
[J]. 机械工程与自动化,2007(6)
[2] 方尔正, 王燕. 无线传感器网络
的温深测量系统设计[J]. 宁波职业
技术学院学报,2009(2)
[3] 王伟, 李树荣. 基于8051 单片机
温度采集及无线发送[J]. 现代电子
技术,2011(1)
[4] 芮长颖, 陈富林. 基于AT89S52
单片机的空调温度控制系统设计
[J]. 装备制造技术,2010(5)
【作者简介】
彭远芳,女,1968.11,籍贯:重庆,副
教授,硕士,研究方向:微型计算机
控制

 


  博深论文网( www.bosslunwen.com ),是一个专门从事期刊推广、论文发表论文投稿指导的机构。本站提供整体论文发表解决方案:省级论文/国家级论文/核心论文/CN论文。
  论文投稿[email protected]
  咨询电话:18602588568
  在线咨询:
论文发表-论文投稿-发表论文86099078

版权所有:博深论文网 苏ICP备06011074号
论文投稿咨询电话:18602588568,在线咨询:论文发表-论文投稿-发表论文86099078,论文投稿:[email protected]
本站点提供如下服务:论文发表 发表论文 论文投稿 职称论文发表 学术论文发表
山东省济南市城南路213号 本网站隶属于-济南富东化工有限公司