此时设定时间与ds1302不同
点击确认后没有定为我需要的时间,而是ds1302的时间
程序一开始是能够完善运行的,设置时间时停止不动,设置完毕后开始走动。
但是后来我将字库中的字符从8*16修改为16*32以后,虽然设置时间的时候仍是停止不动,但是其实还是在计时,设置完毕后时间就会自动跳转,不是我设置的那个数了。 目前发现仅有秒无法正确修改,且修改时只能减不能加,其余时,分,日期都能正常修改。
我怀疑是下面那段程序出错了,求解答。
如果能帮我解决一下12864显示残缺的问题就更好了,十分感谢!
单片机源程序:
- //-----------------------------------------------------------
- // 设置时间
- //---------------------------------------------------------
- void SET_DS1302() // 设置时间
- {
- uchar i;
- Write_Data_TO_DS1302(0x8E,0x00); //写控制字,取消写保护
- // 分,时,日,月,年依次写入
- for(i=1;i<7;i++)
- {
- // 分的起始地址是10000010(0x82),后面依次是时,日,月,周,年,写入地址每次递增2
- Write_Data_TO_DS1302(0x80+2*i,(DateTime[i]/10<<4)|(DateTime[i]%10)); //希望能解释一下这一句。
- }
- Write_Data_TO_DS1302(0x8E,0x80); //写控制字,加写保护
- }
- //--------------------------------------------------------
- // 读取当前时间
- //-------------------------------------------------------
- void GetTime() // 读取当前时间
- {
- uchar i;
- for(i=0;i<7;i++)
- {
- DateTime[i]=Read_Data_FROM_DS1302(0x81+2*i);
- }
- }
复制代码
|