📄 i2c.c
字号:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit scl=P2^0;
sbit dat=P2^1;
void delay()
{; ;}
void chushihua()
{
dat=1;
delay();
scl=1;
delay();
}
void kaishi()
{
dat=1;
delay();
scl=1;
delay();
dat=0;
delay();
}
void jieshu()
{
dat=0;
delay();
scl=1;
delay();
dat=1;
delay();
}
void write(uchar x)
{
uchar i,j ;
i=x;
for(j=0;j<8;j++)
{
i=i<<1;
scl=0;
delay();
dat=CY;
delay();
scl=1;
delay();
}
scl=0;
delay();
dat=1;
delay();
}
uchar read( )
{
uchar m,n;
scl=0;
delay();
dat=1;
delay();
for(m=0;m<8;m++)
{
scl=1;
delay();
n=(n<<1)|dat;
scl=0;
delay();
}
return n;
}
void xiangying()
{
uchar b=0 ;
scl=1;
delay();
while((dat==1)&&(b<200))
b++;
scl=0;
delay();
}
void fasong(uchar q,uchar l,uchar c)
{
kaishi();
write(q);
xiangying();
write(l);
xiangying();
write(c);
xiangying();
jieshu();
}
void jieshou(uchar w,uchar g)
{
kaishi();
write(w);
xiangying();
write(g);
xiangying();
kaishi();
write(++w);
xiangying();
P0=read( );
jieshu();
}
void delay1(uint p)
{
uint e,f;
for(e=p;e>0;e--)
for(f=300;f>0;f--);
}
void main()
{
chushihua();
fasong(0xa0,23,1);
fasong(0xa2,23,2);
fasong(0xa4,23,3);
fasong(0xa6,23,4);
delay1(200);
jieshou(0xa0,23);
delay1(200);
jieshou(0xa2,23);
delay1(200);
jieshou(0xa4,23);
delay1(200);
jieshou(0xa6,23);
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -