操作单总线数字温度传感器必须严格按规定的协议操作,即应按以下顺序操作:初始化、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开始的单元存放。程序的主要部分如下:
来源:仪表技术