ds1302 write 0x8e,0x80 括號裡的是什麼意思

時間 2025-03-02 17:10:06

1樓:陌路鹿

***d7 d6 d5 d4 d3 d2 d1 d0

0x8e 是防寫暫存器的對應位址 對應二進位 1 0 0 0 1 1 1 0

其中: d7:固定為1

d6:ram/ck位,=1片內ram,=0日曆、時鐘暫存器選擇位。

d5~d1:位址位,用於選擇進行讀寫的日曆、時鐘暫存器或片內ram。

d0: 讀寫選擇,=0為寫,=1為讀。

*分割線***

0x80 是對防寫暫存器輸入的指令吧,這麼說更好理解些。 對應二進位是10000000,其中:

d7 : 為wp防寫位,當wp=1,防寫,當wp=0未防寫,當對日曆、時鐘暫存器或片內ram進行寫時wp應清零,當對日曆、時鐘暫存器或片內ram進行讀時wp一般置1。

2樓:冷嘯塵

參照ds1302資料,對單元0x8e的單元寫入0x80,即10000000,將bit7寫入1,是進行防寫。

3樓:典頤

ds_rd(0x81); 讀取秒。

ds_data=ds_data&0x80;

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

ds_write(0x8e,0x00);/關閉防寫。

ds_write(0x8c,0x11);/年 此處均當bcd碼看 非十六進位。

ds_write(0x88,0x10);/月。

ds_write(0x86,0x20);/日。

ds_write(0x84,0x01);/時。

ds_write(0x82,0x18);/分。

ds_write(0x80,0x00);/秒。

ds_write(0x8a,0x05);/星期。

ds_write(0x8f,0x80);/開啟防寫。

ds1302不計時是個什麼情況

4樓:網友

很簡單,因為新的1302或者1302沒有通電一段時間後,就會停止計時,判斷方法就是讀取秒位元組,最高位是不是 1 ,如果是,就初始化秒位,計時就開始了,每次上電,做乙個這個判斷就好了。

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

5樓:丿海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裡寫入乙個數。

6樓:網友

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

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

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

7樓:網友

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

8樓:網友

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

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

關於我寫的51微控制器ds1302不能調時間的問題,前面的選單都寫好了單獨測試能進入if語句,有誰知道為什麼嗎

9樓:網友

我也很好奇,debug一下,程式調不了時間按理沒進入i(jia==1)那個函式里,jia=0,下一次狀態值jia=1在哪,可以debug調一下,看一下狀態值是否改變。

ds1302時鐘中怎麼加入按鍵調時功能?

10樓:細看生活

將現在的資料讀出,調節後再送進去就ok了我空間有程式。

怎麼讀DS1302的秒位顯示85

怎麼讀ds的秒位顯示 如果你是硬體做好了,出了這個問題,那你首先需要檢查你的sclk和i o有沒有接反。如果這個沒有問題,那麼你需要著重檢查下你的ds晶元的vcc腳的對地電壓 腳是gnd,腳是vcc 如果這個電壓在以下,那麼你的ds很可能不能正常工作,雖然在ds的介紹資料上這個晶元的工作電壓是,但是...

0x00ablc8a指令引用的0x0000010a記憶體,該記憶體不能為written

1 驅動不穩定,與系統不相容,這最容易出現記憶體不能為 read 或者記憶體不能 written 檔案保護 2 系統安裝了乙個或者多個流氓軟體,這出現 ie 或者系統崩潰的機會也比較大,也有可能出現檔案保護 3 系統載入的程式或者系統正在執行的程式之前有衝突,尤其是部分防毒軟體監控程式 4 系統本身...

0x00007e8f 指令引用「0x00007e8f 記憶體。該記憶體不能為」read「

該記憶體為不能read,這是在電腦使用中經常出現的問題,而一旦記憶體發生問題了,程式就不能被執行,因此就產生了 該記憶體不能為read或written 錯誤的警告。當然,出現了 該記憶體不能為read的故障也不一定是記憶體的問題,電腦中了病毒或木馬以及執行的程式本身的bug也會造成這種現象。很難分清究竟是什麼...