找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2957|回复: 3
打印 上一主题 下一主题
收起左侧

求助ds1302

[复制链接]
跳转到指定楼层
楼主
ID:47184 发表于 2013-8-24 20:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用ds1302时钟,数码管显示,跑表很正常,准不准先不说,然后我想加上掉电走时的功能,加了备用电源,然后改程序,在1302RAM中写个标志,可是掉电后仍然初始化//读标志

uchar read1302flag(uchar adde)
{
        uchar i,temp;
        ce=0;
        sclk=0;
        ce=1;
        for(i=8;i>0;i--)
        {
                sclk=0;
                temp=adde;
                io=(bit)(temp&0x01);
                adde>>=1;
                sclk=1;
        }
        for(i=8;i>0;i--)
        {
                ACC_7=io;
                sclk=1;
                ACC>>=1;
                sclk=0;
        }
        ce=0;
        dat3=ACC;
        return(dat3);
}


//写标志
void write1302(unsigned char addr,dat)
{
        uchar i,temp;
        ce=0;
        sclk=0;
        ce=1;
        for(i=8;i>0;i--)
        {
                sclk=0;
                temp=addr;
                io=(bit)(temp&0x01);
                addr>>=1;
                sclk=1;       
        }
        for(i=8;i>0;i--)
        {
                sclk=0;
                temp=dat;
                io=(bit)(temp&0x01);
                dat>>=1;
                sclk=1;
        }
        ce=0;
}

写入0xff,然后判断!=0xff的时候初始化,但是每次掉电上电都初始化,我感觉其他的都没问题,大侠们看看,是不是读取或者是写入的程序有问题,调试时dat3的值为0x7f.谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:7485 发表于 2013-8-25 08:39 | 只看该作者
没看见你在那里有检测标志操作。
回复

使用道具 举报

板凳
ID:47184 发表于 2013-8-25 12:07 来自手机 | 只看该作者
ahshmj 发表于 3 小时前
没看见你在那里有检测标志操作。

在main函数里有,我觉得应该没问题,只是对写入和读取函数怀疑
回复

使用道具 举报

地板
ID:76287 发表于 2015-4-10 09:17 | 只看该作者
虽然不懂,但还是要顶,毕竟每一位老手都是从新手蜕变而来的,赞一个。。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表