//接受一个字节子程序,出口为接受到的数据R_DATA
int RECEIVE()
{
int R_DATA=0,sz,i;
*PFDATDIR=*PFDATDIR & 0xFFDF; //SDA为输入
*PFDATDIR=*PFDATDIR & 0xFFFE; //SCL为0
delay(100);
for(i=0;i<8;i++)
{
*PFDATDIR=*PFDATDIR|0x0001; //SCL=1
R_DATA=R_DATA<<1;
delay(100);
sz=*PFDATDIR & 0x0002; //取出SDA上的值
if(sz==0) R_DATA &= 0xFFFD; //该位为0,1101
else R_DATA |= 0x0002; //该位为1,0010
delay(100);
*PFDATDIR=*PFDATDIR &0xfffe; //SCL=0
}
*PFDATDIR=*PFDATDIR | 0x0020; //SDA设置为输出
return(R_DATA);
}
标记处该做何解释?谢谢
R_DATA=R_DATA < <1;
?????????????
这是左移1位
*PFDATDIR=*PFDATDIR ?0x0001; //*PFDATDIR最低位置1
R_DATA=R_DATA < <1; //R_DATA 左移1位