位置:51电子网 » 技术资料 » 测试测量

24C04在2051系统中的使用

发布时间:2008/5/27 0:00:00 访问次数:1213

        

    

     我们以电路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晶振,子程序已通过验证.------------------------

     作者:不详来源:不详----------

    

    

        

    

     我们以电路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被代替时该器件的相应管脚应悬空。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晶振,子程序已通过验证.------------------------

     作者:不详来源:不详----------

    

    

相关IC型号

热门点击

 

推荐技术资料

音频变压器DIY
    笔者在本刊今年第六期上着重介绍了“四夹三”音频变压器的... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!