DS1302显示全是84

2019-07-14 23:31发布

读写函数有什么问题?
void WriDS1302(unsigned char cmd, unsigned char dat)        //ucAddr: DS1302µØÖ·, ucData: ҪдµÄÊý¾Ý
{
  unsigned char i;

  DS1302RST_0;delay_us(1);
  DS1302RST_1;
  for(i=0; i<8; i++)
  {
    if(cmd&0x01)
    DS1302IO_1;
    else DS1302IO_0;
    cmd=cmd>>1;
    DS1302CLK_1;
   delay_us(1);  
   DS1302CLK_0;
  }

  for(i=0; i<8; i++)
  {
    if(dat&0x01)
    DS1302IO_1;
    else DS1302IO_0;
    dat=dat>>1;
    DS1302CLK_1;
   delay_us(1);
    DS1302CLK_0;   
  }
  DS1302RST_0;
  DS1302CLK_1;

}
//*********************************************
unsigned char ReadDS1302(unsigned char cmd)        //¶ÁÈ¡DS1302ijµØÖ·µÄÊý¾Ý
{
  unsigned char i,tem=0;
  DS1302RST_0;
  delay_us(1);
  DS1302CLK_0;
  delay_us(1);
  DS1302RST_1;
  for(i=0; i<8; i++)
  {
    if(cmd&0x01)
    DS1302IO_1;
    else DS1302IO_0;
    cmd=cmd>>1;
    DS1302CLK_1;
    delay_us(1);
    DS1302CLK_0;
  }

  for(i=8; i>0; i--)
  {
    if(PAin(1))
    tem=tem|0x01;
else;
      tem=(tem<<1);
DS1302CLK_1;
    delay_us(1);
    DS1302CLK_0;  
  }
   DS1302RST_0;
  DS1302CLK_1;  
  return(tem);  
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。