- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 MCS-51单片机接口技术3
(1) DS18B20初始化 ①先将数据线置高电平1。 ②延时(该时间要求不是很严格,但是要尽可能短一点)。 ③数据线拉到低电平0。 ④延时750us(该时间范围可以在480~960us)。 ⑤数据线拉到高电平1。 ⑥延时等待。如果初始化成功则在15~60ms内产生一个由DSl8B20返回的低电平0,据该状态可以确定它的存在。但是应注意,不能无限地等待,不然会使程序进入死循环,所以要进行超时判断。 ⑦若CPU读到数据线上的低电平0后,还要进行延时,其延时的时间从发出高电平算起(第⑤步的时问算起)最少要480us。 ⑧将数据线再次拉到高电平1后结束。 (2)DS18B20写数据 ①数据线先置低电平0。 ②延时确定的时间为15us。 ⑧按从低位到高位的顺序发送数据(一次只发送一位)。 ④延时时间为45us。 ⑤将数据线拉到高电平1。 ⑥重复①~⑤步骤,直到发送完整个字节。 ⑦最后将数据线拉高到1。 (3)DSl8820读数据 ①将数据线拉高到1。 ②延时2us。 ③将数据线拉低到0。 ④延时6us。 ⑤将数据线拉高到1。 ⑥延时4us。 ⑦读数据线的状态得到一个状态位,并进行数据处理。 ⑧延时30us。 ⑨重复①~⑦步骤,直到读取完一个字节。 ROM及功能命令 指令 约定 代码 功 能 读ROM 0x33 读DS18B20温度传感器ROM中的编码(即64位地址) 匹配ROM 0x55 发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20使之做出响应,为下一步对该DS18B20的读/写作准备 搜索ROM 0xF0 用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址。为操作各器件作好准备 跳过ROM 0xCC 忽略64位ROM地址,直接向DS18B20发温度变换命令。适用于单只DS18B20工作 报警搜索命令 0xEC 执行后只有温度超过设定值上限或下限的芯片才做出响应 指令 约定 代码 功 能 温度变换 0x44 启动DS18B20进行温度转换,12位转换时最长为750 ms(9位为93.75 ms)。结果存入内部9字节RAM中 读高速 缓存 0xBE 读内部RAM中9字节的内容 写高速 缓存 0x4E 发出向内部RAM的字节2、3写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据 复制高速缓存 0x48 将RAM中字节2、3的内容复制到 EEPROM中 重调EEPROM 0XB8 将EEPROM中内容恢复到RAM中的第3、4字节 读供电 方式 0XB4 寄生供电时DS18B20发送0,外接电源供电时DS18B20发送1 ? 命令 描 述 代码 总线的响应 温度转换命令 温度转换 启动温度转换 44H 主机在发出该命令后,如果在紧接着的读时隙中读到的是0,说明温度正在转换;如果读到的是1,说明转换结束 存储器 命令 读SRAM 从SRAM中读取包括CRC在内的全部字节 BEH DSl8820会从字节O开始输出包括(;RC在内的全部9个字节。如果不需要读取全部9个字节,主机可以在需要的字节后输出复位脉冲以终止当前的读操作 写SRAM 向SRAM中的字节2、3、4(TH、TL和配置寄存器) 写入数据 4EH 将需要的数据写入SRAM的温度报警上限值、下限值 和配置寄存器 复制SRAM 复制SRAM中TH、TL和配置寄存器的值到E2PROM中 48H 复制SRAM中TH、TL和配置寄存器的值到E2PROM中。主机在发出该命令后,如果在紧接着的读时隙中读到的是0,说明复制正在进行;如果读到的是1,说明复制结束 回读E2 从E2PROM中将h、TL和配置寄存器的值回读到SRAM由 B8H 从E2PROM中将TH、TL和配置寄存器的值回读到中。主机在发出该命令后,如果在紧接着的读时隙中读 隙中读到的是0,说明回读正在进行;如果读到的是1,说明回读结束 读电源 读取DSl8820的供电方式 B4H 主机在发出该命令后,如果在紧接着的读时隙中读到的是0,说明当前使用的是寄生电源;如果读到的是1说明当前使用的是外部供电 DS18B20的功能命令 DS18B20使用注意事项 DS18B20虽然具有诸多优点,但在使用时也应注意以下几个问题: 由于DS18B20与微处理器间采用串行数据传送方式,因此,在对DS18B20进行读/写编程时,必须严格地保证读/写时序,否则,将无法正确读取测温结果。 对于在单总线上所挂DS18B20的数量问题,若单总线上所挂DSl8B20超过8个时,则需要解决单片机的总线驱动问题,这一点,在进行多点测温系统设
原创力文档


文档评论(0)