求助ds1302掉電上電後跳過初始化

2025-03-06 16:55:09 字數 3207 閱讀 7637

1樓:丿海sea沙彡

兩種解決方法,第納鉛一種:先把程式燒錄進去,然後把程式中的寫時間函式註釋掉,再燒錄進去就可以了。

第二種:在ds1302的ram裡面寫入乙個標誌(因為有備用電池,外部電源關閉後ram裡的值依然保留),程式中的寫時差昌間函式是否執行需要用該標誌進行判斷,程式如下。

unsigned char flag; /定義乙個標誌位。

flag= ds1302_read_byte(0xc0); 0xc0為ds1302內部ram的首位址,每次執行程式 先讀出該 位址的資料。

if(flag==0) /ram資料默洞慶好認為0

ds1302_init();

ds1302_write_time();

ds1302_write_byte(0x0c,1); 執行一次程式後,在ram裡寫入乙個數。

2樓:網友

你先這樣,例如現在是2013-08-29 02:34:35 ,你先把日期和時間初值寫到程式裡面並寫到微控制器裡面,那麼現在你微控制器是以你設的2013-08-29 02:

34:35 這個時間開始跑。接下來指喚,你把程式中的有關設定時間初值那句話註釋掉,編譯一下並把程式**到單片裡面,這樣就行了。

你之前衫逗前的做法,儘管有備用電池,但每次重新上電,微控制器會重新寫初值,但我的方法是或清先寫初值,後來就註釋掉,下次上電時讀的是1302正在跑的時間,所以這樣就行了。)(要有備用電源哦)(不知道我有沒有明白你題目所說的,希望能幫到你)

3樓:網友

讀取一下晶元內部某個ram,不等於3就是晶元掉電了,需要初始化時間,然後把這個ram寫入3

4樓:網友

這個很簡單解決呀,你第一次上電時寫個資料到這個ic的可讀寫ram中。

以後每次上電讀這個位址的資料如轎氏野閉喊果與你寫過的資料相同核盯這跳過初始化就可以啦。

ds1302掉電保護,就是一開始初始化一次,再後來就不初始化,是怎麼實現的,希望有程式和講解。謝謝!!!

5樓:高山入雲

有兩種方法,這裡介紹一種:

思路是將1302的某個暫存器定義為是否首次開機檢測標誌,比如存入0xaa數值。

上電時讀取1302的這個暫存器,如果是0xaa,說明不是首次,便不再初始化,否則初始化,並向開機定義的暫存器中寫入0xaa。

#define wrstar 0xce //寫1302初始化標誌。

#define rdstar 0xcf //讀1302初始化標誌。

void init1302()}

6樓:誰人不識君

ds1302接電池,掉電也不用再初始化了、

7樓:網友

1302有獨立的晶振和電源。初始化(設定時間)後就一直按照這個時間在走。

void init_1302()//初始化void main()//主程式。

程式進去後就一直在走,不需要再初始化了。如果你再初始化的話時間就復位了。。。

ds1302z不能初始化,有備用電池,沒有做掉電檢測,第二次上電以後就不可以初始化了

8樓:_瑾晨

徹底斷電後重新上電時。

時鐘可能正常走時。

也可能不走並顯示亂碼。

何以解決?這是樓主的問題。

解決之道,在你的程式里加乙個可選的時鐘設定功能。

需要時啟用這個功能。

設定好時間後。

啟動走時,並進攜旦行防寫。

做時鐘,時間設定功能是基本消隱毀拿備要求。

就算你不拔電池,一旦走時出現誤差也要重新設定時間進行修正啊!

ds1302的程式中有初始化時間程式,每次上電都執行。但只有第一次上電時才有效,如果不把後備電池斷開不行

9樓:網友

ds1302啟動有兩種方式,一種是改變初始時間啟動,一種是不改變初始時間啟動。在你切換電源的時候,微控制器若是沒有停止供電,則系統就不會復位,初始化程式執行不到,時間會沿著原有時間繼續。

讓正在調整的資料閃動呢?思路是怎樣的?有c例子最好。

這個問題篇幅有些長了,例程有但不方便發出來。思路是設定幾個計算器變數,按下按鍵後,指標變數所指向的數碼開始閃動,加減鍵操作時可以修改閃動的值,15秒內無鍵按下則停止閃動,並將當前值儲存到1302中。若需要詳細資訊,**入54967828qq進一步**。

ds1302 掉電後 時間又復位

10樓:網友

是不是每次上電譁基都初始化了時鐘?

你念蘆指應該寫進去時間之後,把程式燒仔配寫進微控制器,然後再把初始化時間設定的語句遮蔽掉,再燒寫進微控制器。

我做了乙個關於ds1302的即時時鐘,但電源掉電後即時時鐘又會復位,即是掉電後時鐘就不會走時,,,

11樓:

跟**沒關係,跟硬體設計有關係,需要有個電池加在ds1302上。

12樓:陽小超

ds1302write(0x8e,0x00); //禁止防寫,就是關閉防寫功能 (這裡得修改為 ds1302write(0x8e,0x80);)記得在ds1302處加上電池,就可以長時間掉電都可以走。

for (n=0; n<7; n++)//寫入7個位元組的時鐘訊號:分秒時日月週年。

ds1302write(0x8e,0x80); //開啟防寫功能。

求高手:ds1302只進行一次初始化,再次上電時讀取的是當前時間,與初始化的時間沒有半毛錢關係。

13樓:俊俏且妥善丶君子蘭

你接電池沒有,要是接電池了,當斷電後,電池能繼續供電。

ds1302 寫時鐘程式 怎麼實現掉電後1302繼續計時,下次上電後時間和實際時間一樣,給個具體的程式寫法

14樓:網友

設定乙個標誌位read_flag就可以了,如下:

read_burstram(&read_flag,1); 讀時鐘ram

if(read_flag !=1)

15樓:網友

ds_rd(0x81); 讀取秒。

ds_data=ds_data&0x80;

if(ds_data==0x80) 判斷是否在執行 沒有執行執行。

求助ds218 和 ds216 II比較

看你什麼需求,216play的遠端迅雷需要後臺安裝,比較麻煩。216 安裝簡單。整機速度更快。216 ii整體效能強很多 可以裝docker 基於docker有迅雷之類的程式。如果沒太多需求 個人或家庭選216play也不錯。我的主要用途是 2.手機 定時上傳備份。3.私人檔案備份。4.公司電腦和家...

200分求助 我想竭盡所有趕在13號前買進萬科000002請問有可能賺嗎

配股不一定賺錢,你是新手 配股之後是要除權的,股價會下來的 分紅也是一樣,也是要除權的 不是你想象的天上掉餅子 要這麼簡單都做了,他還自動除權,到時候你的本金會你的利息加一起算的,不是你想的那麼簡單 我覺得這隻票現在有築底跡象,因此我覺得13號前買進萬科000002請問有可能賺。分紅配股不一定賺錢,...

求助,1W公里13款自經油底殼漏油了

你好 你的是不是自動擋的 一般在擁堵裡面容易加速油封老化的 是否有碰擦,如果沒有去4s店包修。建議去店裡頂起來檢查!如果不是人為的碰撞可以找售後的!求助,油底殼漏油 1 如果底殼是更換機油後發現漏機油,分析問題是 更換的機油不符合原車標準型號,造成機油粘度過稀引起的故障 2 更換機油加多了,應注意機...