基于AVR单片机和DS18B20的多点温度测量系统

发布者:风暴使者最新更新时间:2013-12-10 来源: eefocus关键字:AVR单片机  DS18B20  温度测量系统 手机看文章 扫描二维码
随时随地手机看文章

1DS18B20和BASCOM-AVR简介

  DS18B20是美国DALLAS公司生产的单总线数字温度传感器,从DS18B20读出或写入的信息仅需要一根口线。在单总线工作方式下,允许一条信号线上挂接多个DS18B20,特别适合于构成远距离多点温度测控系统,从而大大简化了系统布线,提高了可靠性,降低了成本,而实现这些的关键在于每片DS18B20都有唯一的ROM代码(64位产品序列号)。在多点温度测控系统中,ROM代码是识别和操作DS18B20的基础;无论读取还是选择对某一个传感器进行操作,主机必须发送64位ROM代码。

  BASCOM-AVR是MSC Electronics公司推出的基于AVR系统的软件开发仿真平台。程序语句和Micrsoft VB/QB高度兼容;为标准LCD显示器、I2C芯片和单总线协议芯片等扩充了专用语句;内置模拟终端和程序下载功能;内置软件仿真平台用于测试;编译产生的运行代码可在所有带内部存储器的AVR微控制器中运行。DEMO版本可生成2KB程序代码。BASCOM-AVRDEMO版安装软件包可到http://www.mcselec.com免费下载。

3.1获取序列号(64位ROM代码)

  操作单总线数字温度传感器必须严格按规定的协议操作,即应按以下顺序操作:初始化、ROM操作命令、暂存存储器操作命令、数据传输。在ROM操作命令中,有两条命令专门用于获取传感器序列号:读ROM命令(33H)和搜索ROM命令(F0H)。读ROM命令只能在总线上仅有一个传感器的情况下使用。搜索ROM命令则允许总线主机使用一种“消去”处理方法来识别总线上所有的传感器序列号。为了建立64位ROM代码和测量位置点传感器之间的关系,我们选用读ROM命令(33H)。DS18B20的64位ROM代码结构如图2所示:

  如果某一传感器损坏,只需按上述连接方法,拨动开关K2输入损坏传感器的位置编号,将新的DS18B20插入Z1插座重新测试,单片机自动根据读取的编号值将测得的ROM代码取代E2PROM中相同位置编号处的原ROM代码即可。

3.2多点温度的巡回测量

  开关K1打开,将T断开处接上。由于已经在上面获取了多个DS18B20的ROM代码并在AVR单片机内部的E2PROM中建立了测量位置点和传感器64位ROM代码之间的关系表,因此对多个温度的巡回测量的步骤如下:

  (1)发跳过ROM命令CCH。

  (2)发启动所有在线的DS18B20进行温度转换命令44H。

  (3)延迟1s。

  (4)发匹配ROM命令55H。

  (5)按照E2PROM中建立的关系表的顺序取出64位ROM代码发送到单总线。

  (6)发读温度值命令BEH,读取温度值。

  (7)进行CRC校验和数据处理后送LCD显示器显示。

  (8)重复第4步到第7步,直到所有的DS18B20测量处理完。

  (9)再重复第1步到第8步,进行下一轮的巡回测量。

  如果只对某一个DS18B20进行温度测量,只要将第1步的跳过ROM命令CCH,改为匹配ROM命令55H,将拨动开关拨到和要测量的DS18B20的编号相对应的数值上,单片机90S8515读取拨动开关的数值(编号)n,到E2PROM建立的关系表中从(n-1)×8开始的单元取出ROM代码发送到总线,去掉第8步,其余和上面步骤相似即可。[page]

  测试中,DS18B20选择芯片出厂时默认的12位转换精度,转换的结果用16位符号扩展的二进制补码读数形式提供。关于DS18B20可参考DALLAS公司的数据手册。

  多点温度巡回测量的主要程序如下:

  上述两个程序可以编写为两个子程序,主程序在初始化工作完成后,读开关K1的状态,如为打开状态调用温度巡回测量部分的子程序;如为闭合状态调用获取ROM代码子程序。

4.1设置报警限值

  DS18B20设有温度高低限报警功能。DSl8B20的存储器由两部分组成:一个是9字节的静态RAM,其中第0和第1字节用于存储16位的温度转换值,第2(高温限TH)和第3字节(低温限TL)作为温度报警限值或通用存储器单元供用户使用;另一个是非易失性的E2PROM。当静态RAM作为温度报警限值使用时,可以在系统安装和工作前,用写RAM命令4EH将高温限TH和低温限TL写入第2和第3字节单元。由于静态RAM掉电后信息即丢失,因此需要再通过拷贝RAM命令48H将第2和第3字节单元的温度报警限值拷贝到E2PROM中。主程序只要在初始化部分使用重调E2PROM命令B8H,就可以将E2PROM中的温度报警限值重新拷贝到静态RAM中。

4.2报警处理

  系统正常工作时,在启动所有的DS18B20作温度转换后,可以使用报警搜索命令ECH,发现温度值高于TH或低于TL的数值时,则读取报警的DS18B20的ROM代码,通过查AVR单片机内部E2PROM中测量位置点和传感器64位ROM代码之间的关系表即可得到报警的DS18B20的位置编号,从而启动语音报警或在LCD上显示报警点的位置编号。

  本文的设计方法,将DS18B20 ROM代码的获取和温度的测量融为一体,利用单片机内部的E2PROM建立了测量位置点和ROM代码之间的关系表,用简单的硬件及编程方法实现了多点温度的测量、数字温度传感器的出错指示和识别,大大有利于系统的调试和扩充,能有效降低成本,缩短开发周期。在粮库测温系统、冷库测温系统、中央空调系统、智能建筑自控系统等多点温度测量系统中将获得广泛的应用。

关键字:AVR单片机  DS18B20  温度测量系统 引用地址:基于AVR单片机和DS18B20的多点温度测量系统

上一篇:AVR I/O口使用方法
下一篇:AVR芯片封装图例

推荐阅读最新更新时间:2024-03-16 13:31

基于MMS的即时报警系统设计
引言 随着社会的发展,入室盗窃案越来越多,使人们财产受到极大的威胁。由于入室盗窃者非常狡猾,使警方破案极为困难。而本系统的设计可以为家居提供安全保障,同时为警方破案提供最大化帮助。目前,市场上也出现了各式各样的智能家居控制系统,说明家居安防越来越受重视,即时报警系统不可或缺。 本文设计的报警系统以即时报警为理念,即时将报警系统抓拍的罪犯图像以MMS(Multimedia Messaging Service,彩信)形式发送给用户,从而让用户及时掌握家中动态,为破案提供直接证据。本系统同时能与用户语音交互,用户可以主动要求系统抓拍室内当前图像。 1 系统的工作原理 1.1 系统方案设计 系统总体方案的设计应该全面考虑系统的总
[单片机]
基于MMS的即时报警系统设计
ds18b20 pic54单片机通讯源程序
ds18b20 p IC 54 单片机 通讯源程序 ORG PIC54 GOTO MAIN ORG 0 ;---------------------- ;---------------------------- DELAY22 MOV LW D'200' ; DELAY 2*250=500mS MOV WF COUNT1 DE32 MOV LW D'250' ; 8*250=2mS MOV WF COUNT2 DE42 NOP ; 1+2+1=5uS DECFSZ COUNT2
[单片机]
STM32单片机学习(11) DS18B20温度传感器实验
本程序主要实现 DS18B20温度传感器数据获取,并利用串口通信把温度数据传至计算机 注:使用普中科技开发板测试时,需要拔掉Boot1插口,因为用到的是PA15管脚, 由开发板电路图可知,需要改变PA15 管脚的映射,将其设置成普通IO口 参考资料 DS18B20中文手册.pdf http://download.csdn.net/detail/leytton/7742193 STM32-外设篇 视频教程(Cortex-M3)-主讲人:刘洋 http://yun.baidu.com/pcloud/album/info?uk=2853967793&album_id=5492137931588632574 main.c
[单片机]
任务2:PCB投板方法
本系列教程以AVR单片机为对象,介绍单片机的快速开发方法。 参考教材:《单片机技术及应用项目教程》 栾秋平 电子工业出版社 2019.6 第1版 本文介绍PCB投板方法,投板网站仅作参考。 一、下载投板软件 网址:https://www.sz-jlc.com/portal/appDownloadsWithConfig.html?init=android。 二、安装步骤 三、PCB投板步骤 1、启动“下单助手”,注册后进入。 2、选择“在线下单”。 3、将PCB打包成压缩文件 4、点击“上传pcb文件”,上传打包的压缩文件。 5、等待其分析完毕 6、确认上传文件无误后,输入线
[单片机]
任务2:PCB投板方法
基于STM32自码DS18B20驱动程序
DS18B20是一款单总线可编程分辨率的数字温度计,详细内容可见中英文datasheet,笔者不在赘述。 很早就接触到的温度传感器,也相信每一个曾学习过嵌入式开发的人都用过,笔者在STM32F4上自码DS18B20驱动,有些小小心得: DS18B20的控制流程 根据DS18B20的通信协议,DS18B20只能作为从机,而单片机系统作为主机,单片机控制DS18B20完成一次温度转换必须经过3个步骤:复位、发送ROM指令、发送RAM指令。每次对DS18B20的操作都要进行以上三个步骤。 复位过程为:单片机将数据线拉低至少480uS,然后释放数据线,等待15-60uS让DS18B20接收信号,DS18B20接收到信号后,会把数据线拉
[嵌入式]
Ubuntu上AVR单片机开发环境设置
操作系统:ubuntu 13.04(32 bits) AVR单片机:ATmega644pa 首先要明确,我们在Ubuntu(或者Linux)上开发AVR单片机应包括两大部分: 程序编译、程序下载。 环境布置: 程序编译使用Linux下的编译器 avr-gcc,通过以下指令安装: sudo apt-get install gcc-avr #这是avr的交叉编译器 sudo apt-get install avr-libc #这是编译要用的库 另外还有一个工具,目前感觉没什么用,先记下来 sudo apt-get install gdb-avr #gdb反向调试工具,反汇编 程序的下载使用avrdud
[单片机]
攻克温度测量系统的安装难题
  你已经设计并采购了最佳的温度测量系统,来满足过程所需要的性能要求。你的工作完成了,对吗?错,因为如果安装不正确,实际测量与期望的结果可能大相径庭,现场安装技术人员必须了解设计方案,以确保 实际安装 的细节与 原始设计 的规格书一致。   如何正确安装?   温度测量系统(一个带连接头的传感器、一个套管以及一个变送器)的有效程度,取决于多种因素,其中就包括正确的安装。如果你不是设计工程师,你可能并不知道,在设计中,针对诸如安装位置、安装方式、浸没深度为多少、可能安装位置处的环境条件等问题,作了何种设计考虑。 因此,应当考虑几个安装因素,包括安装、穿孔位置、插入深度、固定方式和安装接线等。   以下是在温度测量系统的工程实施以及
[测试测量]
基于AVR单片机的电动代步车控制器
本世纪将是一个人口老龄化程度越来越高的世纪,老年人和残疾人的护理将是社会的一个沉重负担。据老龄委统计结果显示,2004年底,中国60岁及以上老年人口为1.43亿,2014年将达到2亿,2026年将达到3亿,老龄人口的规模将越来越大。同时在我国人口中有8 296万残疾人,占全国总人口的比例为6.34%,其中肢体残疾人数2 412万,占29.07%。老年人和残疾人这个庞大的弱势群体需要一种适合他们心理和生理的代步车来满足日常生活及参与社会活动的需要。 随着科学技术的迅速发展和人民的生活水平的不断提高,手动轮椅逐渐被性能优越、操作简单、行驶安全的电动代步车所替代。电动代步车的出现除了能满足老年人或残疾人室内外活动的要求之外,还在医
[单片机]
基于<font color='red'>AVR单片机</font>的电动代步车控制器
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved