#include
#define uchar unsigned char
sbit sda = P3^6;
sbit scl = P1^5;
void delay()
{;;}
void delay1(uchar x)
{
uchar a,b;
for(a = x;a > 0;a --)
for(b = 100;b > 0;b --);
}
void start() //开始信号
{
sda = 1;
delay();
scl = 1;
delay();
sda = 0;
delay();
scl = 0;
delay();
}
void stop() //停止信号
{
sda = 0;
delay();
scl = 1;
delay();
sda = 1;
delay();
}
void respons() //应答信号
{
uchar i = 1;
scl = 1;
delay();
while((sda == 1)&&(i < 250)) i ++;
scl = 0;
delay();
}
void init()//初始化
{
sda = 1;
delay();
scl = 1;
delay();
}
void write_byte(uchar date)//写一个字节{
uchar i,temp;
temp = date;
for(i = 0;i < 8;i ++)
{
temp = temp << 1;
scl = 0;
delay();
sda = CY;
delay();
scl = 1;
delay();
//scl = 0;
//delay();
}
scl = 0;
delay();
sda = 1;
delay();
}
/*uchar read_byte()//读出8位数
{
uchar i,j,k = 0;
scl = 0;
delay();
sda = 1;
delay();
for(i = 0;i < 8;i ++)
{
delay();
scl = 1;
delay();
if(sda == 1)
j = 1;
else
j= 0;
k = (k << 1) | j;
scl = 0;
}
delay();
return k;
}*/
void write_add(uchar date)//写{
start();
write_byte(0x90);
respons();
write_byte(date);
respons();
stop();
}
/*uchar read(uchar address) {
uchar date;
start();
write_byte(0x90);
respons();
write_byte(address);
respons();
start();
write_byte(0xa1);
respons();
date = read_byte();
stop();
return date;
}*/
void main()
{
//uchar a = 0;
init();
write_add(0xFF);
delay1(100);
while(1);
}