void Write_Byte(uchar date)//写入字节函数
{
uchar temp,i;
temp=date;
for(i=0;i<8;i++)
{
temp=temp<<1;
SCL=0;
Delay();
SDA=CY; //我的问题是 把CY赋给SDA,但这是在FOR循环里,那不是sda只可以得 到一个字节的最后一位吗?还是把SDA存到哪里去了??因为接下来Read_Byte函数要用到sda,而且还是要用8次,怎么得到的啊 ,难不成这里赋值一次就去执行 Read_Byte()函数一次吗??我觉得不是啊,那谁打我就搞不懂啊,望高手指点一下
SCL=1;
Delay();
}
SCL=0;
Delay();
SDA=1;
Delay();
}
uchar Read_Byte()
{ //读入字节函数
uchar i,j,k=0;
SDA=1;
Delay();
for(i=0;i<8;i++)
{
SCL=0;
Delay();
SCL=1;
Delay();
k=k<<1;
k=k|sda;
SCL=0;
Delay();
SDA=1;
Delay();
return k;
} |