打印

读取DS1302的问题,版主来看看(现象并附上源程序)

[复制链接]
1806|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jinyitong|  楼主 | 2011-7-9 23:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
附上源程序,版主进来,帮帮忙,关于DS1302读取问题
现象:
秒读对
分  错
时对
日错。。。。。
依次是一个对,一个错
春阳版主,说的时序问题,找了好久,没看到问题所在
附上源程序,帮忙看看


uchar RTOutputByte(void) //读出1字节
{
    uchar i;
    //T_IO = 1;
    for(i = 0; i < 8; i++)
    {        
                T_CLK = 1;
        AACC7 = T_IO;
                AACC = AACC >>1;         /*相当于汇编中的 RRC */
         T_CLK = 0;         
    }
    return(AACC);
}


void RTInputByte(uchar d) //发送一字节
{
    uchar i;
    AACC = d;
    for(i = 0; i < 8; i++)
    {
        T_CLK = 0;
        T_IO = AACC0;           /*相当于汇编中的 RRC */
        
        AACC = AACC >> 1;
                 T_CLK = 1;
    }

    T_IO = 1;
}

uchar R1302(uchar ucAddr)//读一字节,先发地址,再收数据
{
    uchar ucData;
    T_RST = 0;
    T_CLK = 0;
   
    T_RST = 1;
   
    RTInputByte(ucAddr);             /* 地址,命令 */
   
    ucData = RTOutputByte();         /* 读1Byte数据 */
    T_RST = 0;
    T_CLK = 1;
    return(ucData);
}

void Read_1302_Time() //读一组数据,秒------年。
{
    uchar i;
    uchar idata ucCurtime[7];
        //uchar idata uc[7];
    uchar ucAddr = 0x81;
   
    for (i=0; i<7; i++)
    {
        ucCurtime = R1302(ucAddr);/*格式为: 秒 分 时 日 月 星期 年 */
        //uc                 = R1302(ucAddr);
                ucAddr += 2;
    }

    Time_1302.u8_Second  = BcdToHex(ucCurtime[0]);
    Time_1302.u8_Minute  = BcdToHex(ucCurtime[1]);
    Time_1302.u8_Hour    = BcdToHex(ucCurtime[2]);
    Date_1302.u8_day    = BcdToHex(ucCurtime[3]);
    Date_1302.u8_month   = BcdToHex(ucCurtime[4]);
    Date_1302.u8_week    = BcdToHex(ucCurtime[5]);
    Date_1302.u8_year    = BcdToHex(ucCurtime[6]);

}


Uchar BcdToHex(Uchar u8_Par)//译码
{
    Uchar u8_Temp;
    u8_Temp = 0;
    u8_Temp += (u8_Par & 0xf);
    u8_Temp += ((u8_Par & 0xf0) >> 4)*10;
    return u8_Temp;
}

相关帖子

沙发
jinyitong|  楼主 | 2011-7-10 07:54 | 只看该作者
通宵后,
搞定了!!!!
睡觉去。
当找到问题后,会发现原因很傻。
DS1302电源改用纯电池供电,现象解除。

使用特权

评论回复
板凳
老鱼探戈| | 2011-7-10 09:20 | 只看该作者
LZ真牛x-----我说的是通宵!
精神可嘉

使用特权

评论回复
地板
xiaohui408x| | 2011-7-11 19:10 | 只看该作者
我也遇到过类似问题,不过是时序错乱的问题。
也是改用电池供电就没事了。

使用特权

评论回复
5
jinyitong|  楼主 | 2011-7-18 21:17 | 只看该作者
不能只用电池供电啊,加上电源5V,还是不行,为什么,退偶滤波都加了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

87

帖子

0

粉丝