文档详情

DS18B20温度传感器[精心整理].doc

发布:2017-01-04约1.01万字共24页下载文档
文本预览下载声明
4.25 DS18B20温度传感器输出显示 本例的DS18B20数字温度计是DALLAS公司生产的l-Wire式单总线器件,具有线路简单, 体积小的特点,用它组成的温度测量系统线路非常简单,只要求一个端口即可实现通信。DS18B20 的每个器件上都有唯一的序列号,其温度测量范围在一55℃—+125℃之间,数字温度计的分辨率可 以从9一12位选择,内部还有温度上、下限报警设置。 运行本例时,1602LCD将显示DS18B20所测量的外部温度,调节DS18B20模拟改变外界温 度时,新的温度值将刷新显示在LCD上。 本例电路及运行效果如图4-39所示。 程序设计调试与实训: DS18B20内部结构主要由64位ROM,温度传感器,非易失性温度报警触发器TH和TL, 配置寄存器组成。读者在阅读本例时需要参考图4-40所示的DS18B20内存结构(含上电时的初 始状态),表4-11所示的DS18B20RAM操作命令集及表4-12所示的温度寄存器字节格式。 本例要点在于读取温度函数Read_Temperature和温度显示函数Display_Temperature的编写, 对于前者,代码中OxCC命令字节用于跳过读取ROM摩列号(参考DS18820F手册中的 DS18820ROM命令),Ox44启动温度转换,OxBE读取温度寄存器。 温度显示函数Display_Temperature根据读取的2字节温度值(保存在Temp_Value数组中) 进行显示,阅读该函数代码时,可参考表4-12所示的2字节温度格式,特别是高字节中的符号位 S和低字节中的小数bit3~bit0,因为本例仅保存一位小数,温度小数位对照表df_Table将0000~1111 对应的16个不同小数序列进行四舍五入,例如,当读取的温度低字节低4位为OIOI时,对应的 温度应为2-2+ 2_4=0.3125≈0.3,因此数组第5个元素(对应于OIOI)的值为3,又如,如果低 4位为OIIO,对应的温度应为2-2+ 2-3= 0.375岛0.4,因此,数组第6个元素(对应于0110)取 值为4。 图4-39 DS18B20温度传感器输出显示电路及运行效果 关于DS18B20的ROM操作命令、时序及其他技术细节,可参考DS18B20的技术手册。 在运行本例显示温度以后,可暂停运行,单击调试菜单中的DS18B20菜单,打开RAM和 ROM菜单,所显示的两个小窗口如图4-39所示,当前读取的2字节温度值为FFOA,由其符号位 可知该温度为负数,将FFOA取反加l可得OOF6,高字节的低四位与低字节的高四位合成字节OF, 可得温度整数部分为15,另外,OOF6中小数部分为6,即OIIO,通过计算或查表可得小数0.4. 因此所显示的温度为-15.4℃。 完成本例调试后,可修改代码,使温度显示精确到2位小数。 Temperature LSB(50h) (85℃) Temperature MSB(05h) TH Register or User Byte 1* TL Register or User Byte 2* Configuration Register* Reserved(FFh) Reserved(0Ch) Reserved(10h) CRC* Byte0 TH Register or User Byte 1 TH Register or User Byte 2 Configuration Register Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7 Byte8 *上电状态决定于EEPROM中保存的值 图4-40 DS18B20内存结构图 表4-11 DS18B20操作命令集 命令 说 明 协议 总线数据操作 温度转换 开始温度转换 44H DS18B20将转换状态发送给主设备 读寄存器 读所仃寄存器,包括CRC字节 BEH DS18B20将9宁节的数据发送给主设备 写寄存器 将数据写入寄存器2,3,4字节(即TH,TL和配置寄存器) 4EH 主设备向DS18B20发送3字节数 复制 将寄存器TH,TL和配置寄存器数据复制到EEPROM 48H 无 回调 由EEPROM向寄存器恢复TH,TL和配置寄存器数据 B8H DS18B20将恢复状态发
显示全部
相似文档