单片机技术及工程实践第9章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
页区(或称页面)写入可一次连续写入n个字节 数据,以某个地址单元开始,随后每一数据字节 的写入地址会自动加1,总线停止后只需启动一 个自定义写储存器周期,而字节写入要执行n次 总线的启动/停止过程.页区写入的格式为: 器件型号不同,页区写入的长度n会不同,超过 n则会发生数据循环上卷(覆盖).n字节数诸如: AT24C01A/02 n≤8B AT24C04/08/16 n≤16B * 例3:从2EH单元开始进行页区写入数据33H, 34H,35H,36H,实际SDA页区写入为: (3) 现行地址读 : 所有读出操作只需把器件寻址地址中的最低 位R/W改为“1”.每次读/写操作完成后只要维持 系统工作状态不变,则目标地址仍然有效. 现行地址读 能读出上一次读/写操作所保持 的地址加1的现行地址,而不必送入数据首地址. * 主设备一旦送出器件寻址字节,且器件返回 了应答信号ACK,现行地址的数据字节就能读出, 随后主设备送出非应答信号ACK(“1” 电平),并 终止总线.现行地址读的格式为: (4) 随机读出 : 可以读取任意地址的数据,灵活性最大.首先 使用“伪字节写入” 送出器件的寻址字节(R/W 位为“0”)和器件的片内地址字节. 器件返回应 * 答信号ACK后,再重新启动总线(S),按现行地址 读方式读出数据, 现行地址读方式送出器件寻址字节(R/W位为 “1”). 器件返回应答ACK后,目标地址的数据便 送入数据线SDA.主设备送出非应答ACK(“1” 电 平)并终止总线.随机读出的格式为: * “伪字节写”不执行“字节写入”方式的写操作, 而是重新启动总线并执行“现行地址读”,地 * 址不会加1,就能读出目标地址的数据. 例4:续上述“例1”,若2FH地址单元的数据为 34H,实际SDA的数据随机读出为: (5) 序列读出 : 序列读出(或称连续读)方式可在执行了 “现 行地址读”或“随机读”操作之后进行.主设备每 读出一个字节数据, 就返回一个应答信号ACK. * 器件收到主设备的应答ACK后,自动把数据地 址增1,输出数据字节. 所需字节读完时主设备 返回一个非应答ACK(“1”电平)并终止总线. 注意: 连续读出操作当超过最大256B器件页 面地址时,数据会上卷(复盖). 序列读出方式使数据地址自动增1,主设备对 每个读出数据要给器件返回一个应答ACK.主设 备只需启动/停止总线一次. * 9.3.4 51单片机与I2C串行E2PROM的扩展应用 1. 实例电路的结构和原理 51单片机可用I/O口模拟I2C总线接口功能. * 89C51的两条I/O口线模拟I2C总线,与24C04 的I2C接口相连接,图中24C04的A2、A1、A0均 接地,页区首址为000. 电路功能是:向24C04首页的地址00写入0~ 9共10个自然数,然后依次读出,送MC14495(见 5.2.2节)译码.最后由LED数码管静态显示. MC14495输出口内部集成了290欧限流电阻, 不必外加限流电阻可直接驱动数码管.控制线 低电平时4位BCD码直接译码输出,在上升沿时 锁存,高电平保持显示. 可显示0~9、A~F共 16个字符,没有熄灭码. * 单片机读出的10个自然数,把低4位BCD码送至 P1.3 ~ P1.0口,由按键S进行显示控制,每按下 S键一次,显示一个数据. 2. 汇编语言程序的模块化设计 程序模块中把单片机称为主节点,把器件称为 从节点.基本操作由9个模块组成,由入口参数决 定读/写字节数. 时序脉冲宽度用空操作指令延 时来满足4.7μs范围.适于不带I2C接口的单片机移植使用. 汇编语言E2PROM读/写子程序9个基本模块为: * STA 启动I2总线 STP 停止I2总线 W8BIT 向从节点写入8位 (BIT) R8BIT 向从节点读出8位 (BIT) CACK 检查从节点应答位(ACK) MACK 主节点发送应答位(ACK) NOACK 主节点发非应答位(/ACK) WNBYT 向从节点随机写入N字节 RNBYT 向从节点随机读出N字节 * 使用的伪指令如下: SDA EQU P3.2 ; 数据线 SCL EQU P3.3 ; 时钟线 SLAW EQU 18H ; 写器件寻址页 SLAR EQU 19H ; 读器件寻址页 子程序调用时赋初值如下: 18H 例如写第1页时赋 #A0H,即(#1

文档评论(0)

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

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

1亿VIP精品文档

相关文档