根据DS18B20的通信协议,微处理器作为主设备,单总线器件DS18B20作为从设备。
DS18B20依靠单线端口通信,在单线端口条件下,必须先建立ROM操作协议,才能进行
存储器和控制操作。
微处理器对DS18B20完成温度转换必须经过三个步骤:
(1)每一次读写之前都要对DS18B20进行复位,即DS18B20的初始化操作。
(2)复位成功后发送一条ROM指令,即写字节操作; DS18B20 的ROM指令如表1所示。
(3)最后发送RAM指令,即读字节操作,这样才能对DS18B20进行预定的操作;
DS18B20的RAM指令如表2所示。数据和命令的传输都是以低位在前的串行方式进行的。

表1 ROM指令表

指令约定代码功能
读ROM0x33读DS18B20温度传感器ROM中的编码(即64位地址)
匹配ROM0x55发出此命令之后,接着发出64位ROM编码,访问单总线上与该编
码相对应的DSI8B20 使之作出响应,为下一步对该DS18B20的读写
作准备
搜索ROM0xF0用于确定挂接在同一- 总线上DSI8B20的个数和识别64位ROM地
址。为操作各器件做好准备
跳过ROMocch忽略64位ROM地址,直接向DS1820发温度变换命令。适用于单片
工作。
告警搜索命令0xEC执行后只有温度超过设定值上限或下限的片子才作出响应

表2 RAM指令表

指令约定代码功能
温度变换0x44启动DS18B20进行温度转换,
12位分辨率的转换时最长为750ms。
转换后的结果存入内部RAM
读暂存器0xBE读内部RAM中9字节的内容
写暂存器0x4E发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令.
之后,是传送两字节的数据
复制暂存器0x48将RAM中第3、4字节的内容复制到EEPROM中
调用EEPROM0xB8将EEPROM中的内容恢复到RAM中的第3、4字节
读供电方式0xB4读DS18B20的供电模式。寄生供电时DS18B20发送“0",外接电源供电时 DS18B20 发送“ 1 ”

被岁月冰封的一簇火苗,等待理想把它融化、燃烧。