第十四讲DSB工作原理及应用.pptVIP

  • 39
  • 0
  • 约5.38千字
  • 约 26页
  • 2017-02-04 发布于江苏
  • 举报
第十四讲 DS18B20工作原理及应用 主要内容: 一、 DS18B20介绍 二、 AT89C51对DS18B20的读写操作 三、实训 一、 DS18B20介绍 1、FEATURES(1) 1、 FEATURES (2) 2、 DS18B20封装及管脚 3、 DS18B20工作原理与应用 温度测量与数字数据输出集成在一个芯片上,抗干扰能力增强; 工作周期分为:温度检测与数据处理; 三种形态的存储资源: ROM RAM EEPROM (1) DS18B20的ROM (2)DS18B20的RAM及EEPROM 二、 AT89C51对DS18B20的读写操作 DS18B20与MCU接口——寄生工作方式 2、外部电源供电 3、MCU对DS18B20操作流程 DS18B20工作过程一般遵循以下协议: (1)初始化 (2) ROM操作命令 (3)存储器操作命令 (4)处理数据 (1)初始化 单总线上的所有处理均从初始化序列开始。初始化序列包括 总线主机发出一复位脉冲 接着由从属器件送出存在脉冲。存在脉冲让总线控制器知道DS1820 在总线上且已准备好操作。 初始化C语言程序 uchar Initialize_DS18b20( ) { uchar status; DQ=1; Delay(8); DQ=0; Delay(90); DQ=1; Delay(8); status=DQ; Delay(100); DQ=1; return status; } (2)ROM操作命令 一旦总线主机检测到从属器件的存在,它便可以发出器件ROM操作命令之一。所有ROM操作命令均为8位长。这些命令列表如下: Read ROM(读ROM)[33h] 此命令允许总线主机读DS18B20的8位产品系列编码,唯一的48位序列号,以及8位的CRC。 此命令只能在总线上仅有一个DS18B20的情况下可以使用。如果总线上存在多于一个的从属器件,那么当所有从片企图同时发送时将发生数据冲突的现象(漏极开路会产生“线与”的结果)。 Match ROM( 符合ROM)[55h] 此命令后继以64位的ROM数据序列,允许总线主机对多点总线上特定的DS18B20寻址。只有与64位ROM序列严格相符的 DS18B20才能对后继的存贮器操作命令作出响应。所有与64位ROM序列不符的从片将等待复位脉冲。此命令在总线上有单个或多个器件的情况下均可使用。 Skip ROM( 跳过ROM )[CCh] 在单点总线系统中,此命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。如果在总线上存在多于一个的从属器件而且在Skip ROM命令之后发出读命令,那么由于多个从片同时发送数据,会在总线上发生数据冲突(漏极开路下拉会产生“线与”的效果)。 Search ROM( 搜索ROM)[F0h] 当系统开始工作时,总线主机可能不知道单线总线上的器件个数或者不知道其64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。 Alarm Search(告警搜索)[ECh] 此命令的流程与搜索ROM命令相同。但是,仅在最近一次温度测量出现告警的情况下,DS18B20才对此命令作出响应。告警的条件定义为温度高于TH 或低于TL。只要DS18B20一上电,告警条件就保持在设置状态,直到另一次温度测量显示出非告警值或者改变TH或TL的设置,使得测量值再一次位于允许的范围之内。贮存在EEPROM内的触发器值用于告警。 (3)存储器操作命令 Write Scratchpad(写暂存存储器)[4Eh] 这个命令向DS18B20的暂存器中写入数据,开始位置在地址2。接下来写入的两个字节将被存到暂存器中的地址位置2和3。可以在任何时刻发出复位命令来中止写入。 Read Scratchpad(读暂存存储器)[BEh] 这个命令读取暂存器的内容。读取将从字节0开始,一直进行下去,直到第9(字节8,CRC)字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。 Copy Scratchpad(复制暂存存储器)[48h] 这条命令把暂存器的内容拷贝到DS18B20的E2存储器里,即把温度报警触发字节存入非易失性存储器里。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又正在忙于把暂存器拷贝到E2存储器,DS18B20就会输出一个“0”,如果拷贝结束的话,DS18B20 则输出“1”。如果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持10ms。 Convert T(温度变换)[44h] 这条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后DS18B20保持等待状态。如果总线控制器在这条命令之后

文档评论(0)

1亿VIP精品文档

相关文档