| 
 
| 在下面程序中, uchar Ds1302Read(uchar addr)
 {
 uchar n,dat,dat1;
 RST = 0;
 _nop_();
 
 SCLK = 0;//先将SCLK置低电平。
 _nop_();
 RST = 1;//然后将RST(CE)置高电平。
 _nop_();
 
 for(n=0; n<8; n++)//开始传送八位地址命令
 {
 DSIO = addr & 0x01;//数据从低位开始传送
 addr >>= 1;
 SCLK = 1;//数据在上升沿时,DS1302读取数据
 _nop_();
 SCLK = 0;//DS1302下降沿时,放置数据
 _nop_();
 }
 _nop_();
 for(n=0; n<8; n++)//读取8位数据
 {
 dat1 = DSIO;//从最低位开始接收
 dat = (dat>>1) | (dat1<<7);
 SCLK = 1;
 _nop_();
 SCLK = 0;//DS1302下降沿时,放置数据
 _nop_();
 }
 
 RST = 0;
 _nop_();        //以下为DS1302复位的稳定时间,必须的。
 SCLK = 1;
 _nop_();
 DSIO = 0;
 _nop_();
 DSIO = 1;
 _nop_();
 return dat;
 }
 
 dat = (dat>>1) | (dat1<<7);是什么意思,什么功能?
 | 
 |