|
k是全局变量,但k读出来的数值发现是255 不是我写进去的数字啊
地址线全接地了
void start()
{
sck=1;
sda=1;
_nop_();
_nop_();
_nop_();
_nop_();
sda=0;
_nop_();
_nop_();
_nop_();
_nop_();
}
void stop()
{
sck=1;
sda=0;
_nop_();
_nop_();
_nop_();
_nop_();
sda=1;
_nop_();
_nop_();
_nop_();
_nop_();
}
void ack()
{
sda=0;
_nop_();
_nop_();
_nop_();
_nop_();
sck=1;
_nop_();
_nop_();
_nop_();
_nop_();
sck=0;
}
void noack()
{
sda=1;
_nop_();
_nop_();
_nop_();
_nop_();
sck=1;
_nop_();
_nop_();
_nop_();
_nop_();
sck=0;
}
void send(uchar d)
{
uchar i;
for(i=0;i<8;i++)
{
d<<=1;
sck=0;
_nop_();
_nop_();
sda=CY;
_nop_();
_nop_();
_nop_();
_nop_();
sck=1;
}
}
uchar read()
{
uchar i,d;
sda=1;
for(i=0;i<8;i++)
{
sck=0;
_nop_();
_nop_();
_nop_();
_nop_();
sck=1;
_nop_();
_nop_();
_nop_();
_nop_();
d<<=1;
d|=sda;
_nop_();
_nop_();
}
return d;
}
void write()
{
EA=0;
start();
send(0xa0);
ack();
send(100);
ack();
send(123);
ack();
stop();
EA=1;
}
void read1()
{
start();
send(0xa0);
ack();
send(100);
ack();
start();
send(0xa1);
ack();
k=read();
noack(0);
stop();
}
void main()
{
write();
read1();
}
|
|