碧波液压网 欢迎你,游客。 登录 注册

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

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  

  1 DS18B20和BASCOM2AVR简介

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

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

  2 硬件设计

  图1为温度检测系统原理图,DS18B20采用寄生电源方式供电。主机采用AVR单片机90S8515、I/O口PC1可以挂接多个DS18B20, LCD显示器采用TC1602AT(S)R(2×16字符)。开关K1打开时为正常工作方式, LCD依次循环显示各个测量点的编号(在上一行显示)和当前转换温度(在下一行显示)。开关K1闭合时,借助Z1和拨动开关K2测定DS18B20 ROM代码。ATMEL公司的AVR单片机是基于新的精简指令RISC结构的,吸取PIC及8051单片机的优点,并作了重大改进,内载Flash存储器、E2PROM(存储DS18B20的序列号等)、SRAM, I/O口线可直接驱动LED。它能采用高级语言编程,目前国际上已有许多公司推出了C、Basic等基于高级程序设计语言的AVR开发软件和平台。

  3 测量方法及软件设计

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

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

  8位产品类型号对DS18B20为28H。中间的48位序列号唯一的标识着每个传感器,最高位的一个字节是对前7个字节的内容所生成的CRC校验码。获取64位ROM代码方法如下:

  对所有的DS18B20按现场位置编号(1, 2, 3,…),将PC1引脚从T处和后级断开,按下开关K1,将要测试的DS18B20逐一插入Z1插座,将拨动开关拨到和插入Z1插座的DS18B20的编号相对应的数值上,单片机90S8515读取拨动开关的数值(编号),执行如下程序即可读取DS18B20的64位ROM代码并按编号存入其内部的E2PROM中,从而建立测量位置点和传感器64位ROM代码之间的关系表。64位序列号用8个字节单元来存储,位置号为n的DS18B20,其64位序列号在E2PROM中从(n-1)×8开始的单元存放。程序的主要部分如下:

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论