DS1302避免重啟電源重複初始化的方法

2021-10-03 13:14:54 字數 649 閱讀 1501

一、問題描述

ds1302是時鐘晶元,通過51微控制器設定好時間後,晶元正常工作,但是51微控制器重新上電後,會導致ds1302重複初始化,也就是時間回到起點,這可不是我們想要的結果

二、解決方法

1、先把程式燒錄進51微控制器中,然後把程式中的寫時間函式注釋掉,再燒錄進去就可以了

解釋:

第一次燒錄相當於給ds1302時鐘晶元寫入乙個初始時間,第二次燒錄前由於有備用電源ds1302一直在工作,所以第二次燒錄不需要設定初始時間,應把源程式中的寫入初始時間的程式注釋掉

2、在ds1302的ram裡面寫入乙個標誌數(因為ds1302有備用電池,外部電源關閉後,ram裡的值不會丟掉依然保留),程式中的ds1302寫入時間函式是否執行需要用該標誌進行判斷,程式如下

unsigned

char flag;

//定義乙個標誌位

flag=

ds1302_read_byte

(0xc0);

//0xc0為ds1302內部ram的首位址,每次執行程式 先讀出該位址的資料

if(flag==0)

//ram資料預設為0

ds1302的應用問題

define rtc ok1 操作成功 define rtc fail0 操作失敗 define second invalid40 秒值無效 define minute invalid41 分鐘值無效 define hour invalid42 小時值無效 define week invalid43...

C語言程式》DS1302

include include include ds1302.h ds1302 io口定義 define clk pc0 define data pc1 define rst pc6 define ds1302 data ddr out ddrc 1 define ds1302 data set p...

DS1302實時時鐘晶元

ds1302 是 dallas 達拉斯 公司推出的一款涓流充電時鐘晶元,2001 年 dallas 被 maxim 美信 收購,因此我們看到的 ds1302 的資料手冊既有 dallas 的標誌,又有 maxim 的標誌,大家了解即可。ds1302 實時時鐘晶元廣泛應用於 傳真 可攜式儀器等產品領域...