34af9uc的个人空间 https://bbs.21ic.com/?818997 [收藏] [复制] [RSS]

日志

i2c读写24c64也不知道对不对

已有 186 次阅读2017-4-21 16:30 |系统分类:兴趣爱好

#include<stc15.h>
#define        delay        ;;;;;;;;
sbit        scl=P3^3;
sbit        sda=P3^2;
void        start()        //起始
{
scl=1;
delay;
sda=1;
delay;
sda=0;
delay;
}
void        stop()        //停止
{
sda=0;
delay;
scl=1;
delay;
sda=1;
}
void        ack()        //应答
{
unsigned char i;
scl=1;
delay;
while((sda=1)&&(i<50))
scl=0;
delay;
}
void write_byte(unsigned char date)
{
        unsigned char i,temp;
        temp=date;
        scl=0;
        for(i=0;i<8;i++)
        {
        if(temp&0x80)sda=1;
                else        sda=0;
        delay;
        scl=1;
        delay;
        scl=0;
        temp=temp<<1;
        }
        sda=1;
        delay;

}
unsigned char read_byte()
{
unsigned char i,j;
scl=0;
delay;
for(i=0;i<8;i++)
        {
        scl=1;
        delay;
        j=sda|j;
        j=j<<1;
        scl=0;
        delay;
        }
return j;
}
void main()
{
start();
write_byte(0xa0);ack();
write_byte(0x00);ack();
write_byte(0x00);ack();
write_byte(0x55);ack();
stop();
for(;;);
}

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)