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

  1. 1、本文档共137页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * (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温度值值的十六位二进制数表示 019CH 0000 0001 1001 1100 +25.75 07D0H 0000 0111 1101 0000 +125 十六进制表示 输出二进制码 温度值(℃) * * 低字节的低四位化成十进制数后,就是温度的小数部分。小数部分只有四位,取值范围是0~F,由于只要精确到0.1℃,可通过查表来简化这种转换,小数部分二进制数对应十进制小数值见表9-18。 表9-18小数部分二进制数对应十进制小数值转换表 9 8 8 7 6 6 5 5 4 3 3 2 1 1 0 0 十进制值 F E D C B A 9 8 7 6 5 4 3 2 1 0 小数部分二进制值 例如,最后4位为‘1101’表示十六进制数‘C’,对应的十进制小数为0.7。 * * 3.软件流程图 系统由主程序、温度测量子程序、温度转换子程序和显示子程序等组成 。 (1)主程序 在主程序中首先初始化,检测DS18B20是否存在,然后通过调用读温度子程序读出DS18B20的当前值,调用温度转换子程序把从DS18B20中读出的值转换成对应的温度,调用显示子程序把温度值在数码管的相应位置进行显示 。 (2)温度转换子程序 温度转换子程序的功能是 发复位命令,发跳过ROM命令,发启动温度转换命令。 (3)读取温度值 读出并处理DS18B20测量的当前温度值,读出的温度值以BCD码的形式存放在缓冲区。 * * (4)温度数据处理子程序 温度数据处理子程序流程如图9-24所示。 9-24温度数据处理子程序流程图 * * (5)LED动态显示子程序 LED动态显示子程序流程如图9-25所示。 * * 4.参考源程序见课本. * * ;中断服务程序INT_7290:(读取健值、拆分并转换成字

文档评论(0)

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

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

1亿VIP精品文档

相关文档