久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10993|回復: 2
打印 上一主題 下一主題
收起左側

[原創]如何自動決定 DS1302 是否需要初始化

[復制鏈接]
跳轉到指定樓層
樓主
ID:27770 發表于 2011-2-1 02:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

如何自動決定 DS1302 是否需要初始化

針對本論壇供應的 51HEI-5 帶有的 DS1302 實驗,同時瀏覽了本實驗中朋友們提及的實時時鐘初始化的問題.進行一些補充:

1.例程可以正常顯示時分秒 6 位數字,

但是例程不是從 00:00:00 開始,先修改為每次都是從 00:00:00 開始.

例程僅僅讀取/初始化寫入 時分秒 3 個數據,也修改為 讀取/初始化寫入 年月日星期時分秒 全部數據.

不論數碼管是否可以顯示這么多內容,都應該這么做.------例程也許起到一種引路的作用,上面修改都很容易.

2.深入一步增加花樣:

設置好一個標志.例如:F_XS5S.由它來輪流顯示年月日 或 時分秒.

在讀取秒信號時,做一個秒數值的實時備份.如果讀取的新值與備份值相同.就說明顯示數據無需更新.(不用運行 BCD 到 BIN 顯示數據的查表).-------沒有不要反反復復對同樣的數據做顯示準備.可以節省大量運行時間.

如果讀取的新值與備份值不同,就運行一次 年月日時分秒 數據到顯示的處理,刷新一次顯示數據.

同時,對這個每秒信號進行計數,當計數值≥5(也可以其它數值)時,清零這個計數器,同時反轉一次標志 F_XS5S .

當 F_XS5S =0 就顯示年月日.當 F_XS55=1 就顯示時分秒.

3.每次上電,程序會進行一次對 1302 初始化,就必然都會從初始化數據可以運行實時時鐘.-----在沒有電池保護時,實際上當 1302 完全失電后,原來的運行數據會全部丟失.必須重新初始化!

但是,如果在調試時,板子沒有失電,1302 也沒有失電,就不應該進行實時時鐘的初始化.

如何自動決定 DS1302 是否需要初始化?

方法很簡單:程序重新運行時,在 1302 初始化子程序之前,首先讀取一次 1302 的信息,然后,對其信息進行分析或比較,以此來決定是否需要初始化!

我們利用 1302 自帶的 31 個RAM ,僅僅使用一個 RAM 就可以了.在第一次上電 1302 讀取數據后,同時也讀取一個 RAM 的數據,拿這個數據去比較一個特征碼,相同則不用運行 1302 初始化程序,不相同則需要運行 1302 的初始化程序.

示例程序:

;------------------------------------------
 ORG  0000H
 JMP  B_REST
;==================================================
 ORG  050H
B_REST:
 MOV  WDTCR,#WDTOF
 MOV SP,#0E0H;SP[81H],范圍: RAM 在 00H--0FFH.
 CALL Z_CRAM
   CALL Z_OFF8X8 ;關閉8*8點陣----僅僅51hei-5 使用
   CALL  GET_TIME ;讀取1302
   MOV A,4FH         ;特征碼在 4FH
   CJNE A,#0ABH,Z_INIT1302 ;特征碼是 #0abh (也可以其它啊!)
   JMP Z_LOOP                        ;特征碼相同跳轉到 Z_LOOP
Z_INIT1302:
   CALL   DS1302_INIT  ;特征碼不同運行 1302 初始化程序

;==========================================================
Z_LOOP:
   CALL      GET_TIME         ;讀取1302
   JNB        F_1302,Z_LOOP0 ;F_1302=1刷新顯示數據

   CLR       F_1302
   CALL      Z_RTCBIN
Z_LOOP0:
   CALL      B_LEDXS
   JMP        Z_LOOP
 ;_________________________

 

DS1302_INIT:
   CLR  RST
        CLR  CLK
        NOP
        NOP
        SETB  RST
;實時時鐘寫入
 ZM0 07FH
        MOV  R1,#80H  

Z_WR1302:                       ;秒,分,時,天,月份,星期,年度==81H,83H,85H,97H,89H,8BH,8DH
        MOV  R0,#00H
        CALL  WRITE
        INC2 R1
        COM_ R1,#86H,Z_WR1302
        MOV  R0,#01H ;天
        CALL  WRITE
        INC2 R1
        MOV  R0,#01H ;月份
        CALL  WRITE
        INC2 R1
        MOV  R0,#06H ;星期
        CALL  WRITE
        INC2 R1
        MOV  R0,#11H ;年度
        CALL  WRITE
        ZB1 F_1302
        MOV  R1,#0C8H
        MOV  R0,#0ABH ;寫入特征碼
        CALL  WRITE
        RET

;=====================================

 ;讀時間 數據子程序
GET_TIME:                 ; ;秒,分,時,天,月份,星期,年度==81H,83H,85H,97H,89H,8BH,8DH
         MOV       R0,#40H
         MOV        R1,#81H;  讀秒
Z_GET_TIME0:
        CALL        READ
        MOV        @R0,A;41H,
        INC          R1

        INC          R1
        INC          R0
        COM_       R0,#047H,Z_GET_TIME0
        MOV         R1,#0C9H ;讀出特征碼;內部RAM命令與地址:C0H--FDH.奇數=讀,偶數=寫.
        CALL        READ
        MOV         4FH,A   ;讀出特征碼保存到4FH
        MOV         A,40H
        CJNE        A,7FH,Z_F1302     ;7fh 是上一次秒數值的備份
        RET
Z_F1302:
       MOV           7FH,A          ;7fh 是秒數值的備份
        ZB1          F_1302  ;設置刷新顯示標志
        INC         7EH
        COM_      7EH,#5,Z_7EH
        ZM0        7EH
        CPL         FRLSZ   ;反轉輪流顯示標志
Z_7EH:
        RET
;============================================

經過這樣補充,就可以增加顯示年月日(輪流顯示),以及自動判斷是否需要對 DS1302 進行初始化.

僅供參考!

 

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:27322 發表于 2011-11-20 20:58 | 只看該作者

用LCM1602來年月日時分秒星期一起顯,豈不更好?

 

回復

使用道具 舉報

板凳
ID:72947 發表于 2015-2-8 10:22 來自手機 | 只看該作者
單片機初始化里加一句讀出秒數據,再跟80h(0x80)與運算看結果,結果是0則不需要初始化1302;是80h就要初始化!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: re久久| 亚洲电影一区 | av黄色免费在线观看 | 成人不卡 | 国产精品美女久久久久aⅴ国产馆 | 亚洲成人一区 | 久久亚洲一区二区三区四区 | 女同久久另类99精品国产 | 国产成人精品a视频 | 亚洲欧洲精品在线 | 国产精品性做久久久久久 | www日本高清视频 | 国产91久久久久久久免费 | 中文字幕在线观看一区二区 | 国产亚洲欧美在线 | 在线观看成人免费视频 | 成人精品一区二区三区 | 中文字幕高清 | 免费的色网站 | 精品一区在线 | 先锋av资源网 | 人人艹人人爽 | 国产高清在线精品一区二区三区 | 91精品久久久久久久久 | 91精品一区二区三区久久久久 | 亚洲欧美在线观看 | 国产成人免费视频网站高清观看视频 | 欧美色综合一区二区三区 | 九色一区 | 久久久久久免费看 | 天天干天天干 | 偷牌自拍 | 精品国产精品一区二区夜夜嗨 | 夜色www国产精品资源站 | 本道综合精品 | 精品一区二区三区91 | 欧美日韩高清一区 | gav成人免费播放视频 | 另类在线 | 欧美激情免费在线 | 中文字幕一区二区三区精彩视频 |