简易数字温度计课程设计课程设计草稿 联系客服

发布时间 : 星期六 文章简易数字温度计课程设计课程设计草稿更新完毕开始阅读aa1b4fb065ce05087632136c

图8 DS18B20写子程序流程图

4. DS18B20读子程序流程图如图9所示:

图9 DS18B20读子程序流程图

温度 LSB 温度 MSB TH用户字节1 TL用户字节2 配置寄存器 保留 保留 保留 CRC TM R1 R0 1 1 1 1 1 图5 DS18B20的字节定义

DS18B20的分辨率定义如表1所示 表1 分辨率设置表 R0 0 0 1 1 R1 0 1 0 1 分辨率 9位 10位 11位 12位 最大温度转移时间 96.75ms 187.5ms 375ms 750ms 由表1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。

表2 一部分温度对应值表

温度/℃ +125 +85 +25.0625 二进制表示 0000 0111 1101 0000 0000 0101 0101 0000 0000 0001 1001 0000 十六进制表示 07D0H 0550H 0191H

+10.125 +0.5 0 -0.5 -10.125 -25.0625 -55 0000 0000 1010 0001 0000 0000 0000 0010 0000 0000 0000 1000 1111 1111 1111 0000 1111 1111 0101 1110 1111 1110 0110 1111 1111 1100 1001 0000 00A2H 0008H 0000H FFF8H FF5EH FE6FH FC90H

表2 ROM指令集 指令 读ROM 符合ROM 约定代码 33H 55H 功能 读DS18B20中的编码 发出此命令后,接着发出64位ROM编码,访问单线总线上与该编辑相对应的DS18B20使之做出响应,为下一步对该DS18B20的读写作准备 搜索ROM 0F0H 用于确定挂接在同一总线上的DS18B20个数和识别64位ROM地址,为操作各器件作准备 跳过ROM 告警搜索命令

表3 RAM指令集

指令 温度转换 读暂存器 写暂存器 复制暂存器 重调EEPROM 读供电方式 约定代码 44H 0BEH 4EH 48H 0B8H 0B4H 功能 启动DS18B20进行温度转换,结果存入9字节RAM中 读暂存器9个字节内容 将数据写入暂存器的TH、TL字节 把暂存器的TH、TL字节写到EEPROM中 把EEPROM中的TH、TL字节写到暂存器TH、TL字节 启动DS18B20发送电源供电方式的信号给主CPU,寄生供电时发送“0”,外界电源供电发送“1”。 0CCH 0ECH 忽略64位ROM地址,直接向DS18B20发送温度变换指令 执行后,只有温度跳过设定值上限或下限的片子才能做出反应