基于AVR单片机和DS18B20的多点温测量系统_第1页
基于AVR单片机和DS18B20的多点温测量系统_第2页
基于AVR单片机和DS18B20的多点温测量系统_第3页
基于AVR单片机和DS18B20的多点温测量系统_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于AVR单片机和DS18B20的多点温度测量系统2009年10月15日 23:47 徐州工程学院信电系 作者:高玉芹 用户评论(0) 关键字:基于AVR单片机和DS18B20的多点温度测量系统 介绍基于AVR单片机、BASCOM-AVR语言和DS18B20传感器的多点温度测量系统。利用AVR单片机内部的E2PROM,建立了位置编号和传感器序列号的对应关系表,实现了在多点温度测量系统中对多个传感器的识别和处理,并给出了具体的编程实例。关键词:单总线;数字温度传感器;单片机 Several Points Temperature Measuring System Based on AVR SCM

2、and DS18B20GAO Yuqin(Xuzhou Institute of Technology, Xuzhou 221008, China)Key words: monobus; digital temperature sensor; SCM 1DS18B20和BASCOM-AVR简介DS18B20是美国DALLAS公司生产的单总线数字温度传感器,从DS18B20读出或写入的信息仅需要一根口线。在单总线工作方式下,允许一条信号线上挂接多个DS18B20,特别适合于构成远距离多点温度测控系统,从而大大简化了系统布线,提高了可靠性,降低了成本,而实现这些的关键在于每片DS18B20都有唯一

3、的ROM代码(64位产品序列号)。在多点温度测控系统中,ROM代码是识别和操作DS18B20的基础;无论读取还是选择对某一个传感器进行操作,主机必须发送64位ROM代码。BASCOM-AVR是MSC Electronics公司推出的基于AVR系统的软件开发仿真平台。程序语句和Micrsoft VB/QB高度兼容;为标准LCD显示器、I2C芯片和单总线协议芯片等扩充了专用语句;内置模拟终端和程序下载功能;内置软件仿真平台用于测试;编译产生的运行代码可在所有带内部存储器的AVR微控制器中运行。DEMO版本可生成2KB程序代码。BASCOM-AVRDEMO版安装软件包可到http:/免费下载。? 3

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

5、感器的位置编号,将新的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

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步,其余和上面步骤相似即可。测试中,DS18B20选择芯片出厂时默认的12位转换精度,

7、转换的结果用16位符号扩展的二进制补码读数形式提供。关于DS18B20可参考DALLAS公司的数据手册。多点温度巡回测量的主要程序如下:上述两个程序可以编写为两个子程序,主程序在初始化工作完成后,读开关K1的状态,如为打开状态调用温度巡回测量部分的子程序;如为闭合状态调用获取ROM代码子程序。4.1设置报警限值DS18B20设有温度高低限报警功能。DSl8B20的存储器由两部分组成:一个是9字节的静态RAM,其中第0和第1字节用于存储16位的温度转换值,第2(高温限TH)和第3字节(低温限TL)作为温度报警限值或通用存储器单元供用户使用;另一个是非易失性的E2PROM。当静态RAM作为温度报警

8、限值使用时,可以在系统安装和工作前,用写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代码的获取和温度的测量融为一体,利用单片机内部的E?2PROM建立了测量位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论