[单片机原理与应用及C51编程技术(高玉芹主编)]第九章 串行总线接口技术.pptVIP

[单片机原理与应用及C51编程技术(高玉芹主编)]第九章 串行总线接口技术.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * C语言程序: sbit DQ=P1^0; … void delay(unsigned int i) /*延时10us左右*/ { unsigned int j; for (j=i;j﹥0;j--); } bit reset(void) /*复位函数, 返回值为0复位成功; f返回值为1复位失败*/ { bit flag; DQ=0; /*在数据线上产生500us的低电平 */ delay(50); DQ=1; /*数据线拉高 ,延时30us*/ delay(3); * * flag=DQ; /*读取数据线状态flag =0:复位成功; flag =1:复位失败*/ delay(25); /*延时250us*/ return(flag); } void ds18b20_init(void) { while(1) { if(!reset ()) /*收到ds18b20的应答信号*/ { DQ=1; delay(30); /*延时300 us */ break; } else reset(); /*否则再发复位信号*/ } } * * 2.写时序 DS18B20写时序如图9-21,单片机在t0时刻将总线拉至低电平,从t0时刻开始的15us之内应将要写的数据位送到总线上。在t0后的15—60us内对总线采样,若为低电平,写入的是0,连续写2位之间的间隙应大于1us 。若为高电平,写入的为1。 图9-21 DS18B20写时序 * * 汇编语言程序: DQ BIT P1.0 … DELAY15US:MOV R7,#07H DJNZ R7,$ RET DELAY60US:MOV R7,#1EH DJNZ R7,$ RET WRITE_BYTE: MOV R7,#08H ;将累加器A中数循环写(先低位,后高位)入 DS18B20 SETB DQ NOP NOP * * LOOP1:CLR DQ ; 产生15us的负脉冲 CALL DELAY15US RRC A ; 将最低位数据移到cy MOV DQ,C ; 将最低位数据位送数据线 CALL DELAY60US ; 产生60us的负脉冲 SETB DQ ; 数据线拉高,为写入下一位做准备 CALL DELAY15US DJNZ R7,LOOP1 RET * * C语言程序: Sbit DQ=p1^0; void delay(unsigned int i) { unsigned int j; for (j=i;j﹥0;j--); } void wrbyte(unsigned char data) { uchar i; for(i=8;i0;i--) /*循环写8位(先低位,后高位)*/ { DQ=0; /*产生15us的负脉冲*/ delay(1); DQ=data0x01; /*将当前数据位送数据线*/ data=data1; /*将下一位数据移到最低位*/ delay(5); /*延时60us*/ DQ=1; /*数据线拉高,为写入下一位做准备*/ delay(1); } } * * 3.读时序 DS18B20读时序如图9-22,单片机在t0时刻将总线从高拉至低电平,保持1us。在t1时刻将总线拉高,延时15us。在t2时刻读取数据,并延时至少45us。在t3时刻将数据线拉高至少1us,为写入下一位数据做准备 。 图9-22 DS18B20读时序 * * 汇编语言程序: DQ BIT P1.0 … DELAY15US:MOV R7,#07H DJNZ R7,$ RET DELAY60US:MOV R7,#1EH DJNZ R7,$

文档评论(0)

教学专家 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档