|
uchar bdata dat;
sbit dat0=dat^0;
void Write_8bit(uchar ch)
{
uchar i;
dat=ch;
RST=1;
CLK=0;
_nop_();
for(i=0;i<8;i++)
{
// io=(bit)ch&0x01;
io=dat0;
clk=1;
_nop_();
_nop_();
_nop_();
clk=0;
_nop_();
_nop_();
// ch=ch>>1;
dat=dat>>1;
}
}
加注释的代码IO=(bit)ch&0x01应该等价于IO=dat0;可我把hex写进单片机后前者无效,后者才能把数据正确写进DS1302的寄存器中,哪位前辈帮我解释一下好吗?
|
|