- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PPT研究院 POWERPOINT ACADEMY * * * * 11.3 I2C总线扩展 11.3.3 80C51与AT24C02的接口 串行E2PROM的优点是体积小、功耗低、占用I/O口线少,性能价格比高。典型产品如ATMEL公司的AT24C02,其引脚定义如图11-13所示,80C51系列单片机的连接如图11-14所示。 图中仅扩展一个器件,所以将A2、A1、A0这3条地址线接地。WP为写保护控制端,接地时允许写入。SDA是数据输入/输出线,SCL为串行时钟线。 图11-13 AT24C02的引脚 图11-14 AT24C02与单片机的接口 11.3 I2C总线扩展 11.3.3 80C51与AT24C02的接口 1、写操作过程 对AT24C02写入时,单片机发出起始信号之后再发送的是控制字节,然后释放SDA线并在SCL线上产生第9个时钟信号。被选中的存储器器件在确认是自己的地址后,在SDA线上产生一个应答信号,单片机收到应答后就可以传送数据了。 传送数据时,单片机首先发送一个字节的预写入存储单元的首地址,收到正确的应答后,单片机就逐个发送各数据字节,但每发送一个字节后都要等待应答。单片机发出停止信号P后,启动AT24C02的内部写周期,完成数据写入工作(约10 ms内结束)。 AT24C02片内地址指针在接收到每一个数据字节后自动加1,在芯片的“一次装载字节数”(页面字节数)限度内,只需输入首地址。装载字节数超过芯片的“一次装载字节数”时,数据地址将“上卷”,前面的数据将被覆盖。当要写入的数据传送完后,单片机应发出终止信号以结束写入操作。 图11-15 写入n个字节的数据格式 11.3 I2C总线扩展 11.3.3 80C51与AT24C02的接口 2、读操作过程 对AT24C02读出时,单片机也要发送该器件的控制字节(“伪写”),发送完后释放SDA线并在SCL线上产生第9个时钟信号,被选中的存储器在确认是自己的地址后,在SDA线上产生一个应答信号作为响应。 然后,单片机再发送一个字节的要读出器件的存储区的首地址,收到器件的应答后,单片机要重复一次起始信号并发出器件地址和读方向位(1),收到器件应答后就可以读出数据字节,每读出一个字节,单片机都要回复应答信号。当最后一个字节数据读完后,单片机应返回以“非应答”(高电平),并发出终止信号以结束读出操作。 图11-16 读出n个字节的数据格式 11.3 I2C总线扩展 11.3.3 80C51与AT24C02的接口 3、基本操作子程序 (1)应答位检查 正常应答时F0标志为0,否则F0为1。 ASKC: SETB SDA SETB SCL CLR F0 MOV C,SDA JNC EXIT SETB F0 ;非正常应答 EXIT: CLR SCL RET 11.3 I2C总线扩展 11.3.3 80C51与AT24C02的接口 (2)发送一个字节 预发送的数据在A中,程序中要用到R0。 WRB: MOV R0,#8 WLP1: RLC A JC WR1 AJMP WR0 WLP2: DJNZ R0,WLP1 RET WR1: SETB SDA SETB SCL NOP NOP CLR SCL 11.3 I2C总线扩展 11.3.3 80C51与AT24C02的接口 CLR SDA AJMP WLP2 WR0: CLR SDA SETB SCL NOP NOP CLR SCL AJMP WLP2 11.3 I2C总线扩展 11.3.3 80C51与AT24C02的接口 (3)从E2PROM读一个字节 读取的一个字节数据存于R2或A中,程序中要用R0作计数器。RDB: MOV R0,#8 RLP: SETB SDA SETB SCL MOV C,SDA MOV A,R2 RLC A MOV R2,A CLR SCL DJNZ R0,RLP RET 11.3 I2C总线扩展 (4)向E2PROM发送n个字节 入口条件:向R1送入发送数据缓冲区首地址;
文档评论(0)