微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > DS1302显示全是84

DS1302显示全是84

时间:10-02 整理:3721RD 点击:
读写函数有什么问题?
void WriDS1302(unsigned char cmd, unsigned char dat)        //ucAddr: DS1302μ??·, ucData: òaD′μ?êy?Y
{
  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)        //?áè?DS1302?3μ??·μ?êy?Y
{
  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);  
}

你这个代码看着就头大   会不会是时序问题呢

+1   程序又长又乱,(主要自己学的也马马虎虎,不敢误人子弟。)

和呵呵呵呵呵呵

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top