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的寄存器中,哪位前辈帮我解释一下好吗?
[此贴子已经被作者于2010-1-11 19:19:37编辑过]
|