第九章 串行总线接口技术.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 9.3.4 DS18B20的操作流程及指令说明 1. DS18B20的操作流程 主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。 2.基本操作指令 DS18B20提供了一系列的指令来控制传感器的工作,上电后,传感器处于空闲状态,需单片机向其发送指令,控制它进行相应的操作。 * * (1)READ ROM [33H] 在多点温度测量系统安装前,首先必须知道每只DS18B20的产品序列号,可以将DS18B20逐个与单总线挂接,由单片机发该命令,从激光ROM读出8个字节的序列号。 注意:执行该指令时,如果总线上有多个DS18B20时,所有的DS18B20会试图同时传送信号,这样就会发生数据冲突,导致操作失败。 (2)SKIP ROM (跳过ROM)[CCH] 单片机可用这一命令同时访问总线上的所有设备而不需送出ROM序列码信。例如:发出SKIP ROM命令后接着送出CONVERT命令,可使总线上的所有DS18B20同时进行温度转换;在单点系统中,此命令允许主控器不提供64位ROM编码而访问从器件以简化操作,节省时间。 * * (3)MATCH ROM[55H] 执行该命令后,单片机必须接着向DS18B20发送8个字节的产品序列号,以选中单总线上指定的DS18B20,只有完全匹配的DS18B20才能对随后由单片机发出的读暂存器操作命令进行响应。 (4)CONVERT T [44H] 该命令开始一次温度转换。转换结束后,数据保存在暂存器中2个字节的温度寄存器TMSB、TLSB中。 (5)READ SCRTCHPAD [BEH] 用该命令可读暂存器的内容。数据传送开始于字节0的最低位,直到暂存器的第9字节被读取。温度寄存器TLSB、TMSB处于暂存器的开始两个字节,如只需读取温度值,在读取开始的两个字节后,可用初始化命令结束读操作 * * 9.3.5电子温度计的设计 用数字温度传感器DS18B20构成一个电子温度计,将所测 的温度值在LED显示器上显示出来,保留一位小数。硬件连接图 如图9-23所示。 图9-23 电子温度计的硬件连接图 * * 1.设计思想: 1)单片机首先对DS18B20进行复位操作。 2)由于总线上只有一只DS18B20,单片机可用SIKP ROM[CCH]指令跳过传感器序列号识别。 3)CONVERT T [44H]指令启动传感器温度转换,传感器转换完成后,自动将当前温度值放入内部暂存器的开始两个字节中。 4)为了读取温度值,单片机仍需对传感器进行复位操作,并跳过ROM识别,然后发读暂存器指令READ SCRTCHPAD [BEH]。 5)单片机连续读出两个字节的温度值,将其转换为十进制数在数码管上显示出来。 * * 2.将温度值转换为十进制的方法 温度值为二个字节的十六位二进制数,见表9-17所示。高五位为符号位,高字节的低三位和低字节的高四位组成一个七位温度整数部分,最低四为是小数部分。高字节×256+低字节即可得到一个16位二进制数,如果是负数对其求补。将这个16位二进制数右移4位去掉小数部分后,即可得到温度整数部分的真值,转换成十进制数后就是温度的百、十、个位值。 表9-17温度值值的十六位二进制数表示 温度值(℃) 输出二进制码 十六进制表示 +125 0000 0111 1101 0000 07D0H +25.75 0000 0001 1001 1100 019CH * * 低字节的低四位化成十进制数后,就是温度的小数部分。小数部分只有四位,取值范围是0~F,由于只要精确到0.1℃,可通过查表来简化这种转换,小数部分二进制数对应十进制小数值见表9-18。 表9-18小数部分二进制数对应十进制小数值转换表 小数部分二进制值 0 1 2 3 4 5 6 7 8 9 A B C D E F 十进制值 0 0 1 1 2 3 3 4 5 5 6 6 7 8 8 9 例如,最后4位为‘1101’表示十六进制数‘C’,对应的十进制小数为0.7。 * * 3.软件流程图 系统由主程序、温度测量子程序、温度转换子程序和显示子程序等组成 。 (1)主程序 在主程序中首先初始化,检测DS18B20是否存在,然后通过调用读温度子程序读出DS18B20的当前值,调用温度转换子程序把从DS18B20中读出的值转换成对应的温度,调用显示子程序把温度值在数码管的相应位置进行显示 。 (2)温度转换子程序 温度转换子程序的功能是 发复位命令,发跳过ROM命令,

文档评论(0)

4477704 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档