新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于AVR单片机和DS18B20的多点温度测量系统

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

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

1和BASCOM-AVR简介

  是美国DALLAS公司生产的单总线数字温度传感器,从读出或写入的信息仅需要一根口线。在单总线工作方式下,允许一条信号线上挂接多个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免费下载。

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

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

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

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

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

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

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

3.2多点温度的巡回测量

  开关K1打开,将T断开处接上。由于已经在上面获取了多个DS18B20的ROM代码并在内部的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步,其余和上面步骤相似即可。

单片机相关文章:单片机教程


单片机相关文章:单片机视频教程


单片机相关文章:单片机工作原理


温湿度控制器相关文章:温湿度控制器原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭