ds1302读取函数问题!求高手解答!

2019-07-16 04:41发布

我的ds1302出现了读取时显示‘??’的问题!也是只要加一句io=0;显示器上面就不会出现“??”,我到现在也不知道问题是在哪里!但是我现只要前一次读出的是偶数,后面就只能读出0xff即显示“??”但是当奇数的时候就可以正常的读取出来!秒位是每个一秒变化!接着循环回去读年的时候,年就每隔一秒在正常和“??”间闪烁一次!我想就是怎么也想不明白,时序没问题!读出的奇数和偶数会影响到下一次读取!但是加了那句就正常了,在说偶数和奇数的区别就是最后以为是不一样的!前面就是随机的,这要怎么影响下一次读取呢?还求大虾帮忙啊!!!!
uchar read(uchar add)
{
        uchar temp,t;
        ce=1;
        sclk=0;
        ce=0;
        temp=add;
        for(t=0;t<8;t++)
        {       
                if((temp&0x01)==1)
                        dio=1;
                else
                        dio=0;
                sclk=1;
                sclk=0;               
                temp>>=1;
        }
        temp=0;
        for(t=0;t<8;t++)
        {                    
                if(dio==1)
                temp|=(0x01<<t);
                sclk=1;
                sclk=0;               
        }
        ce=1;
        dio=0;//问题就在这里!
        return temp;       
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。