单片机原理与接口技术第10章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ROM操作指令: 方括号内是命令的代码 l???????? 读ROM [33H] l???????? 匹配ROM [55H] l???????? 跳过ROM [CCH] l???????? 搜索ROM [F0H] l???????? 告警搜索 [ECH] RAM存储器操作命令: l???????? 写暂存存储器 [4EH] l???????? 读暂存存储器 [BEH] l???????? 复制暂存存储器 [48H] l???????? 温度变换 [44H] l???????? 重新调出 [B8H] l???????? 读电源 [B4H] 主机对DS18B20的操作步骤: 主机对DS18B20的操作应该按照下面的步骤进行: 第一步:初始化,就是复位操作,要等待其返回存在信号; 第二步:发出ROM操作命令; 第三步:其他命令。 接 口 我们按照51系列单片机接一个DS18B20来组成温度测量系统的情况,介绍其软硬件接口方法。 AT89C51单片机与DS18B20的连接:如图10-20所示。 图10-20 DS18B20与AT89C51的连接 接口说明 AT89C51单片机的硬件上并不支持单总线协议,因此,我们采用单片机的一个 I/O引脚与DS18B20连接,图中PX.n代表P0~P3口的任意一根线。然后采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。 DS18B20的操作时序 由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 DS18B20的复位时序,如图10-21所示 图中表示:主机将数据线DQ拉低并保持480~960微秒,DS18B20就会复位。在主机释放(拉高)DQ之后,DS18B20会发出存在脉冲,就是DS18B20将DQ拉低并保持15~60微秒。主机读到这个脉冲就知道DS18B20存在。从主机释放DQ到DS18B20应答完毕,需要480微秒。 DS18B20的读时序 DS18B20的读时序如图10-22 对于DS18B20的读时序分为读0时序和读1时序两个过程。 对于DS18B20的读时序要求,从主机把单总线拉低之后,在15微秒之内就得释放单总线,以让DS18B20把数据传输到单总线上,这时主机就可以开始对DQ进行采样,以读取DS18B20送出的数据。 DS18B20在完成一个读时序过程,至少需要60us才能完成。 DS18B20的读时序如图10-22所示。 DS18B20的写时序 对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。 对于DS18B20写0时序和写1时序的要求不同 当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平; 当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线,也就是把DQ拉高,以便DS18B20采样高电平。 DS18B20的写时序如图10-23所示。 2、DS18B20的编程应用举例 DS18B20功能很强,电路连接却很简单,代价是程序麻烦。在总线上只有一个DS18B20的情况下,如果我们要启动一次温度转换,并读出转换的结果,则要如下几个步骤: 操作步骤 初始化 发出跳过ROM命令,因为只有一个从器件,不必寻址 发出转换命令 等待转换完成,出厂默认进行12位转换,需要750毫秒 初始化 发出跳过ROM命令 发出读RAM命令 读出内容 读RAM内容,一般读出前2个字节就可以了。 读出的字节地址0、1的内容格式如下:见图10-24。 图10-24 读出的数据格式 数据说明 从图中可以看出,总共有16位二进制数,二的补码形式,最高位的几个S是符号位的扩展,0代表正,1代表负,然后有7位整数,小数点在20位的后面,单位为摄氏度。 如果利用小数部分,可以达到的分辨率是1/16度,其实它的测量精度只能达到1/2度,再高的分辨率只有相对意义。 读出数据之后 读出DS18B20的转换结果之后,就要对数据进行处理。可以根据需要编写适当的处理子程序。 按照图10-20的接线,我们可以编写

文档评论(0)

132****9295 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档