uchar bdata dat;
sbit dat0=dat^0;
sbit dat7=dat^7;
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的寄存器中,哪位帮我解释一下好吗? |