新人求教!用单片机和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显示的函数
}
}
{
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_();
好的 多谢分享 学习了
