此時設定時間與ds1302不同
點擊確認后沒有定為我需要的時間,而是ds1302的時間
程序一開始是能夠完善運行的,設置時間時停止不動,設置完畢后開始走動。
但是后來我將字庫中的字符從8*16修改為16*32以后,雖然設置時間的時候仍是停止不動,但是其實還是在計時,設置完畢后時間就會自動跳轉,不是我設置的那個數(shù)了。 目前發(fā)現(xiàn)僅有秒無法正確修改,且修改時只能減不能加,其余時,分,日期都能正常修改。
我懷疑是下面那段程序出錯了,求解答。
如果能幫我解決一下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);
- }
- }
復制代碼
|