基于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开始的单元存放。程序的主要部分如下:
相关文章
- 2023-08-18基于格型陷波滤波器的科里奥利质量流量计信号处理方法
- 2024-03-04基于高精度通用运算放大器的简易心电图仪设计
- 2022-08-08光电位置敏感器件的非线性误差分析及其在医学中的应用
- 2022-08-29光学系统双胶合透镜的替代设计法
- 2022-08-18基于聚焦离子束注入的微纳加工技术研究
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。