文章分类

当前位置:首页>技术文章>24C04在2051系统中的使用

24C04在2051系统中的使用

以电路 1 说明 2051 对 24C04 的读写操作的方法和使用中应注意的问题。电路 1 中由 C1、R1 组成上电复位电路,C2、C3 和 6M 晶振组成振荡电路。24C04 的 1-3 脚分别为器件编址端 A0、A1、A2(用于与系统中的同类器件编码),4 脚为电源地,5 脚为 I2C 总线的数据线 SDA,6 脚为 I2C 总线的时钟 SCL,7 脚为测试输入端,在系统中接地,8 脚为电源。 要正确的对 24C04 进行读写操作首先要了解这两个问题 1、器件寻址方法

2、翻卷现象及处理方法。器件的寻址法:如表一所示,表中的 A0、A1、A2 的状态与器件的 A0、A1、A2 脚的状态一至时并且前四位也与器件代码一至时就可以访问该器件。(24C 系列器件代码为 1010),当表中的 A0、A1、A2 被 Px 代替时该器件的相应管脚应悬空。R/W 位为读和写状态位,为 0 时写,为 1 时读。电路 1 中 I2C 器件采用的是 24C04,由于 24C04 的容量为 512 字节,而访问 24C04 的地址位只有 1 字节即只能访问 256 字节,这时 P0 是作为器内寻址时的最高位使用。

这样就可以访问 24C04 全部的 512 字节了。从附表中可以看出 A0 位已被 P0 使用,所以电路 1 中 A0 脚悬空。电路 1 中要对 24C04 进行读操作时寻址字节就由:器件代码(1010)+器件 A1、A2 脚的状态(00)+P0(状态与访问的单元有关大于 256 字节时为 1 否则为 0)+R/W(读 0/写 1)组成。翻卷现象及处理方法:AT24C01/02/04/08/16 系列的页写地址分别是 4/8/16/16/16 如表 2 所示表 2:24C01 B7 B6 B5 B4 B3 B2 B1 B0 4 字节 24C02 B7 B6 B5 B4 B3 B2 B1 B0 8 字节 24C04 B7 B6 B5 B4 B3 B2 B1 B0 16 字节 24C08 B7 B6 B5 B4 B3 B2 B1 B0 16 字节 24C016 B7 B6 B5 B4 B3 B2 B1 B0 16 字节画了下画线的位为页写地址位,当页写地址位最高位出现进位时它的前一位并不加一,这种现象就是翻卷现象。

例:器件为 24C02 当向 00000111B 为起始地址单元写入两个连续数据时;第二位数据会写到 00000000B 中去而不是写到 00001000B 中,这种错误就是翻卷;当出现这种情况时应在软件上进行调整。在写入字节小于或等于页写数时可像 RAM 一样写入,在写完一页后应有 5-15ms(根据采用器件而定)的延时后才能再操作器。本着让读者在不了解 I2C 的工作原理的情况下能拿来就用的原则,在这里只讲进使用模拟软件的简单工作原理和使用方法。

指定地址写 N 个字节:启动总线->发送器件寻址字节->回答->发送寻址地址->回答->发送第一个数据->回答->发送第二个数据->回答...........->发送第 n-1 个数据->回答->停止总线。数据寻址地址放在数据中的第一位字。节指定地址读 N 个字节:启动总线->发送器件寻址字节->回答->发送数据寻址地址->回答->停止总线+启动总线->读第一个数据->回答->读第二个数据->回答...........->读第 n-1 个数据->回答->停止总线。

由于 AT2051 没有 I2C 接口所以采用的是软件模拟的方法,模拟软件占用资源 F0,IV 区工作寄存器 R0、R1。软件中 MTD 为发送缓冲区首地址,MRD 为接收缓冲区首地址,SLA:器件寻址字节存放单元,NUMBYT 为传送节数存放单元,WRNBYT 为发送 N 个数据子程序,RDNBYT 为为接收 N 个数据子程序读写实例:向附电路图中的 24C04 内的 00H 单元为首地址写入 5 个数据的程序如下:MTD EQU 30HMRD EQU 40HSAL EQU 50HNUMBYT EQU 51Hmov 30h,#31h;;;;;;;;置缓冲区首地址 mov 40h,#41hmov NUMBYT,#06h;;;;置传送数据字节数 6mov 30h,#00h;;;;;;置寻址地址 00Hmov SLA,#0a0h;;;;;置器件寻址位写 CALL WRNBYT;;;;; 调用写子程序从附电路图中的 24C04 内的 00H 单元为首地址读入 5 个数据的程序如下:;XCH1106@163.COMMTD EQU 30HMRD EQU 40HSAL EQU 50HNUMBYT EQU 51Hmov 30h,#31h;;;;;;;;置缓冲区首地址 mov 40h,#41hmov NUMBYT,#01h;;;;置传送字节数 1mov 31h,#00h;;;;;;置寻址地址 mov SLA,#0a0h;;;;;置器件寻址位写 CALL WRNBYT;;;;;调用写子程序 mov NUMBYT,#05h;;;;置传送字节 5mov SLA,#0a1h;;;;;;置器件寻址位读 CALL RDNBYT;;;;;;调用读 N 字节子程序本程序只适用 6M 晶振,子程序已通过验证.


© 星光电子技术工作室 2021 All Rights Reserved.
如有任何问题、建议、业务、合作,请联系手机/微信:13713820066