在I2C和ds1302,ad0832之类的芯片操作中,经常要一位一位地读取数据。以前我是用ACC的,如下面的程序:
uchar ds1302_output(void)
{
uchar i;
for(i=0;i<8;i++)
{
DS1302_SCLK = 0; //下降沿读取数据
ACC >>= 1 ; //最后一位不移动
ACC7 = DS1302_IO;
DS1302_SCLK = 1;
}
return ACC;
}
但后来发现用ACC很容易会出错,至于为什么会出错,大家有兴趣可以看看我的博文
http://blog.csdn.net/flyleaf91/archive/2011/04/04/6302209.aspx
所以现在想用一个方法,把从 按位 输出的数据用8位的变量接收,不知道如何实现,求教。 |