📄 i2c_24wc02_rw.c
字号:
#include "reg51.h"
#include "VI2C_C51.h"
#define uchar unsigned char
extern bit ack;
uchar *ww;
uchar ee[10];
sbit SendState=P0^0;
sbit ReadState=P0^1;
bit NSend(uchar sla, uchar suba, uchar *a, uchar no);
bit NRead(uchar sla, uchar suba, uchar *a, uchar no);
void delay();
main()
{
bit ret1, ret2;
int j;
ww=ee;
for(j=0;j<10;j++)
{
ww[j]=j;
}
ret1=NSend(0xA0, 0x00, "0123456789",10);
delay();
ret2=NRead(0xA0, 0x00, ww, 10);
SendState=ret1;
ReadState=ret2;
while(1){
P2=ww[0];
delay();
delay();
P2=ww[1];
delay();
delay();
P2=ww[2];
delay();
delay();
P2=ww[3];
delay();
delay();
P2=ww[4];
delay();
delay();
P2=ww[5];
delay();
delay();
P2=ww[6];
delay();
delay();
P2=ww[7];
delay();
delay();}
}
void delay()
{
int i=0;
while(i<20000) i++;
i=0;
while(i<20000) i++;
i=0;
while(i<20000) i++;
i=0;
while(i<20000) i++;
}
bit NSend(uchar sla, uchar suba, uchar *a, uchar no)
{
uchar i;
Start_I2c();
SendByte(sla);
if(ack==0) return (0);
SendByte(suba);
if(ack==0) return (0);
for(i=0;i<no;i++)
{
SendByte(*a);
if(ack==0)return(0);
a++;
}
Stop_I2c();
return(1);
}
bit NRead(uchar sla, uchar suba, uchar *a, uchar no)
{
uchar i;
Start_I2c();
SendByte(sla);
if(ack==0) return (0);
SendByte(suba);
if(ack==0) return (0);
Start_I2c();
SendByte(sla+1);
if(ack==0) return (0);
for(i=0;i<no-1;i++)
{
*a = RcvByte();
Ack_I2c(0);
a++;
}
*a = RcvByte();
Ack_I2c(1);
Stop_I2c();
return(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -