第四章C51程序设计2实例.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 C51程序设计 -2实例;1-wire总线及应用 ;实例:DS18B20单线温度传感器; DS18B20工作原理;控制器对18b20操作流程 复位:给DS18B20单总线至少480uS的低电平信号。 存在脉冲:复位电平结束之后,控制器应该将数据单总线拉高,以便于在15~60uS后接收存在脉冲,存在脉冲为一个60~240uS的低电平信号。 控制器发送ROM指令:ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。(一般只挂接单个18B20芯片时可以跳过ROM指令) 控制器发送存储器操作指令:分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。 执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。;几种时间隙;读时间隙 ; 示例程序:;uchar Read_byte(void) //读一字节 { uchar i=0; uchar dat = 0; for (i=8;i0;i--) { DQ = 1; _nop_();_nop_();_nop_();_nop_(); DQ = 0; //从高拉到低,产生读时间隙 _nop_();_nop_(); //至少保持低电平1us _nop_();_nop_();_nop_();_nop_(); dat=1; //右移一位 DQ = 1; //15us内停止将DQ拉低,15us内数据有效 _nop_();_nop_(); //稍作延时 _nop_();_nop_(); if(DQ) //若高电平 置1 dat|=0x80; delay(30); //至少保持60us,100us,确保读数据成功 } DQ = 1; //结束拉高 return(dat); } ;void Write_byte(uchar dat) //写一个字节 { uchar i=0; for (i=8; i0; i--) { DQ = 1; _nop_();_nop_(); //稍作延时 _nop_();_nop_();_nop_();_nop_(); DQ = 0; //拉低DQ开始写 _nop_();_nop_(); _nop_();_nop_(); //15us内释放总线 _nop_();_nop_();_nop_();_nop_(); DQ = dat0x01; //从lsb开始 delay(20); //75us 至少需保持60us写时间隙 dat=1; //右移一位 } DQ = 1; //结束拉高 delay(4); } ; uint Get_Temperature(void) //读温度函数 { uchar a=0; uchar b=0; uint t=0; Init_DS18B20(); Write_byte(0xCC); //只接一个18b20芯片,skip ROM Write_byte(0x44); //温度转换 delay(200); //延时600us 等待转换完成,一般转换时间为500us Init_DS18B20(); Write_byte(0xCC); //skip ROM Write_byte(0xBE); //从RAM读数据 a=Read_byte(); //先读低位 b=Read_byte(); //再读高位 t=b8; t=t|a; //t为最后读得的数据 return (t); }; 双向二线制串行通信总线,时钟线SCL, 数据线SDA。 NXP 半导体(原Philips 半导体)于20 多年前发明。 I2C总线是同步串行数据传输总线。 经常使用的带I2C总线通用外围器件有:SRAM、E2PROM、ADC/DAC、RTC、I/O口等。 带I2C总线的外围设备模块有由LED驱动控制器构成的LED显示器,由各种LCD驱动控制器构成的段式、字符点阵、图形点阵液晶显示器等。;I2C 总线的信号线 I2C 总线只需要由两根信号线组成,一根是串行数据线SDA,另一根是串行时钟线SCL,均为为开漏结构,故总线

文档评论(0)

清风老月 + 关注
官方认证
内容提供者

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

认证主体阳春市惠兴图文设计有限公司
IP属地广东
统一社会信用代码/组织机构代码
91441781MA53BEWA2D

1亿VIP精品文档

相关文档