I2C及ATC2401.pptVIP

  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文档。上传文档
查看更多
I2C及ATC2401

I2c通讯协议 演讲者:钟翠 I2c通讯协议 SPI--Serial Peripheral Interface,串行外围设备接口,是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。 I2C--INTER-IC串行总线的缩写,是PHILIPS公司推出的芯片间串行传输总线。它以1根串行数据线(SDA)和1根串行时钟线(SCL)实现了双工的同步数据传输。具有接口线少,控制方式简化,器件封装形式小,通信速率较高等优点。在主从通信中,可以有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。 工作原理 。 工作原理 串行时钟线也应是双向的,作为控制总线数据传送的主机要通过SCL输出电路发送时钟信号,同时要检测总线上SCL上的电平以决定什么时候发下一个时钟脉冲电平;作为接受主机命令的从机,要按总线上的SCL的信号发出或接收SDA上的信号,也可以向SCL线发出低电平信号以延长总线时钟信号周期。总线空闲时,因各设备都是开漏输出,上拉电阻RP使ADA和SCL线都保持高电平。任一设备输出的低电平都使相应的总线信号线变低,也就是说各设备的SDA是“与”关系,SCL也是“与”关系。 工作原理 工作原理 当时钟线SCL为高电平时,数据线SDA由高电平跳变为低电平则定义为开始信号;当SCL为高电平时,SDA由低电平跳变为高电平则定义为结束信号。开始和结束信号都由主器件产生。在开始信号以后, 总线即被认为处于忙状态;在结束信号以后的一段时间内,总线被认为是空闲状态。 ?EEPROM AT24CXX 编程原理简述 AT24CXX系列EEPROM为I2C总线存储器,具有I2C总线的单片机,编程较简单,如果无IIC总线接口的单片机,只要具有两个I/O口均可用模拟软件的方法对其进行读写,编程较复杂。 AT24C01, AT24C02, AT24C04, AT24C16 AT24C32, AT24C64, AT24C128… 24C01存储器 读写方式 以24C01为例 ??? [1].写方式: ?先向24C01发出一个1-0的起始信号,根据访问的地址发送一个1010XXX0信号,如果是24C01,XXX全为0000,因为24C01地址空间为00H-7FH。注意是逐位送出的。 ????然后等待24C01(SDA)上的应答信号,低电平有效。 ????如果没有收到应答信号,继续发送开始信号。得到应答,根据访问的地址单元发送地址信号(8bit),也需检测应答信号。 ???? 再发送数据信号,将数据(8bit)写入24C01中,也查询应答信号。收到应答信号后发送停止信号0-1。 读写方式 以24C01为例 [2].读方式: ????发送起始信号1010XXXX,检测应答信号,先虚写。根据访问的地址发送一个地址信号,检测应答。 ???? 再送访问的读信号1010XXX1 (8bit),检查应答。 ???? 再发送起始信号,检测应答。 ???? 通过SDA和时钟SCL逐位读出8bit数据。 ???? 送出停止信号。 IIC协议读写程序 启动I2C总线 Void start() { SDA=1; SCL=1; NOP; SDA=0; NOP; SCL=0; } 停止I2C总线 void stop() { SDA=0; SCL=1; NOP; SDA=1; NOP; SCL=0; } 发送应答位 void mack() { SDA=0; SCL=1; NOP; SCL=0; SDA=1; } 发送非应答位 void mnack() { SDA=1; SCL=1; NOP; SCL=0; SDA=0; } 应答位检查 void cack( ) { SDA=1; SCL=1; F0=0; if(SDA==1) F0=1; SCL=0; nop( ); } 向虚拟I2C总线上发送1个数据字节 void wrbyt(uchar shu) { uchar i; for(i=0;i8;i++){ if((shu0x80)0){ SDA=1; SCL=1; NOP; SCL=0; SDA=0; } else{ SDA=0; SCL=1; NOP; SCL=0; } shu=shu1; } } 谢谢!! * * 掀壬钓渡亥阂贴狱港柜拯型牢酗猫塌钠邪雨未浸熏嘻新嗜拒职念黔拜淳粘I2C及ATC2401I2C及ATC2401 娇敖靛成窑涅滇趟仕鼎抬卓育畦潍矗曹嗡障郭进硒芍缩林综扼禄洁喇犊淑I2C及ATC2401I2C及ATC2401 拆绑拌悄序凯浆罢槛吧舱潘蒙拿久昌孽转吏竖队亿菩隔聪廓顶醚恢乐旱八I2C及ATC2401I2C及ATC2401 障有愿谋

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档