24c02读程序C语言详解,24C02读写操作程序(C语言)

24C02读写操作程序.c

#define uchar unsigned char

#define uint unsigned int

#i nclude

#i nclude

#i nclude

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

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);

}

24C02 pdf datasheet

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值