初级会员

- 积分
- 74
- 金钱
- 74
- 注册时间
- 2015-3-7
- 在线时间
- 9 小时
|
5金钱
unsigned char Read_Ds1302 ( unsigned char address )
{
unsigned char i,temp=0x00;
RST=0;
_nop_();
_nop_();
SCK=0;
_nop_();
_nop_();
RST=1;
_nop_();
_nop_();
Write_Ds1302_Byte(address);
for (i=0;i<8;i++)
{
if(SDA)
temp|=0x80;
SCK=0;
temp>>=1;
_nop_();
_nop_();
_nop_();
SCK=1;
}
RST=0;
_nop_();
_nop_();
RST=0;
SCK=0;
_nop_();
_nop_();
_nop_();
_nop_();
SCK=1;
_nop_();
_nop_();
SDA=0;
_nop_();
_nop_();
SDA=1;
_nop_();
_nop_();
return (temp);
上面的程序是 ds1302时钟芯片的读数据函数,SDA对应ds1302的IO口,这段程序中
if(SDA)
temp|=0x80;
是什么意思?8次for循环中为什么每次都有
if(SDA)
temp|=0x80;
这句程序?
|
|