网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
搜索关键字: 所有资讯 行业动态 市场趋势 政策法规 新品发布 技术资讯 价格快报 展会资讯
  • 达普IC芯片交易网 > 新闻中心 > 设计应用 > 正文
  • RSS
  • C语言编写的 24C02程序
    http://www.ic72.com 发布时间:2011/1/27 15:01:01

        #define uchar unsigned char

        #define uint unsigned int

        #include <reg52.h>

        #include <stdio.h>

        #include <absacc.h>

        sbit scl=P3^5; //24c02 SCL

        sbit sda=P3^4; //24c02 SDA

        sbit DOG=P1^7; //看门狗

        uchar x24c02_read(uchar address); //从24c02的地址address中读取一个字节数据

        void x24c02_write(uchar address,uchar info); //向24c02的address地址中写入一字节数据info

        void x24c02_init(); //24c02初始化子程序

        void delay1(uchar x);

        void flash();

        void x24c01_init();

        void start();

        void stop();

        void writex(uchar j);

        uchar readx();

        void clock();

        void delay1(uchar x)

        {

        uint i;

        for(i=0;i<x;i++);

        DOG=~DOG;

        }

        void flash()

        {

        uchar u;

        DOG=~DOG;

        }

        void x24c02_init()

        {

        scl=1; flash(); sda=1; flash();

        }

        void start()

        {

        sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; flash();

        }

        void stop()

        {

        sda=0; flash(); scl=1; flash(); sda=1; flash();

        }

        void writex(uchar j)

        {

        uchar i,temp;

        temp=j;

        for (i=0;i<8;i++){

        temp=temp<<1; scl=0; flash(); sda=CY; flash(); scl=1; flash();

        }

        scl=0; flash(); sda=1; flash();

        }

        uchar readx()

        {

        uchar i,j,k=0;

        scl=0; flash(); sda=1;

        for (i=0;i<8;i++){

        flash(); scl=1; flash();

        if (sda==1) j=1;

        else j=0;

        k=(k<<1)|j; scl=0;

        }

        flash(); return(k);

        }

        void clock()

        {

        uchar i=0;

        scl=1; flash();

        while ((sda==1)&&(i<255))i++;

        scl=0; flash();

        }

        uchar x24c02_read(uchar address)

        {

        uchar i;

        start(); writex(0xa0);

        clock(); writex(address);

        clock(); start();

        writex(0xa1); clock();

        i=readx(); stop();

        delay1(10);

        return(i);

        }

        void x24c02_write(uchar address,uchar info)

        {

        EA=0;

        start(); writex(0xa0);

        clock(); writex(address);

        clock(); writex(info);

        clock(); stop();

        EA=1;

        delay1(50);

        }


    www.ic72.com 达普IC芯片交易网
  • 行业动态
  • 市场趋势
  • 政策法规
  • 新品发布
  • Baidu

    IC快速检索:abcdefghijklmnopqrstuvwxyz0123456789
    COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
    客户服务:service@IC72.com 库存上载:IC72@IC72.com
    (北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
    京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质