微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 新人求教!用单片机和DS1302写个万年历程序用LCD1602显示,但是时间不走,这都可能是什么原因啊?

新人求教!用单片机和DS1302写个万年历程序用LCD1602显示,但是时间不走,这都可能是什么原因啊?

时间:10-02 整理:3721RD 点击:
void main()
{
        uchar i;
        Lcdinit();     //LCD1602初始化函数
        Ds1302Write(0x8e,0x00);   //Ds1302Write(,)是写数据函数,DS1302关闭写保护
        for(i=0;i<8;i++)      //DS1302写入初始化参数
        {
                Ds1302Write(write_addr[i],time[i]);  //time里是时间初始化参数
        }              
        Ds1302Write(0x8e,0x80);
        while(1)
        {
                for(i=0;i>8;i++)
                {
                        time[i]=Ds1302Read(read_addr[i]);//DS1302Read()函数是读取DS1302里的数据送到
                                                                                //time数组里
                }
                Lcddisplay();//LCD1602显示的函数
        }
}

原因找到了,是因为在写DS1302Read()的时候,没写入DS1302必须要写的复位程序

原因找到了,是因为在写DS1302Read()的时候,没写入DS1302必须要写的复位程序

原因找到了,是因为在写DS1302Read()的时候,没写入DS1302必须要写的复位程序

原因找到了,是因为在写DS1302Read()的时候,没写入DS1302必须要写的复位程序

小编能将复位的程序上传一下吗  学习一下

        //以下为DS1302复位的稳定时间,必须的。读出数据后需要利用SCLK的上升沿将数据送出去
       _nop_(); //空操作函数       
        SCLK=1;  
        _nop_();
        DSIO=0;
        _nop_();
        DSIO=1;
        _nop_();

好的 多谢分享  学习了

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

网站地图

Top