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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC89C52單片機時鐘溫度控制系統怎么加ds1302芯片

[復制鏈接]
跳轉到指定樓層
樓主
溫度控制系統都差不多設計成了,就差一個時鐘電路,想用DS1302時鐘芯片,請問一下要怎么加上去,關于原理圖和C語言編程方面要怎么改?

1515484016(1).png (64.35 KB, 下載次數: 31)

未加DS1302時鐘芯片原理圖

未加DS1302時鐘芯片原理圖

1515484301(1).png (14.53 KB, 下載次數: 41)

想加一個時鐘顯示,這是主流程圖

想加一個時鐘顯示,這是主流程圖
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:263575 發表于 2018-1-9 16:43 | 只看該作者
就差一個DS1302時鐘電路的匯編語言啊,求大神!
回復

使用道具 舉報

板凳
ID:263575 發表于 2018-1-9 16:44 | 只看該作者
求DS1302時鐘電路的匯編語言,不用很長,求大神!
回復

使用道具 舉報

地板
ID:7485 發表于 2018-1-9 19:51 | 只看該作者
;這是DS1302的讀寫子程序部分,已經注釋的很清楚了。
;********************************************************
;DS1302 DS1302         DS1302 DS1302 DS1302 DS1302 DS1302 DS1302 DS1302 DS1302 DS1302 DS1302
;以下是有關DS1302的讀寫、設置程序
;由于DS1302的寄存數據是壓縮BCD碼,為了和其他程序對接方便,
;MCU的數據仍然用16進制,所以讀出和寫入前先轉換成16進制
;**********************************************************
ZH_16_BCD:
         MOV      A,  YEAR          ;為了和顯示子程序接口進行了調整
                 CALL     ZH_16_BCD1
                 MOV          H_YEAR,  A

         MOV      A,   MONTH
                 CALL     ZH_16_BCD1
                 MOV      H_MONTH, A                    ;

         MOV      A,   DATE
                 CALL     ZH_16_BCD1
                 MOV      H_DATE,  A                         ;

         MOV      A,      HOUR     ;         
                 CALL     ZH_16_BCD1
                 MOV      H_HOUR,  A

             MOV      A,    MIN_F    ;
                 CALL     ZH_16_BCD1
                 MOV      H_MIN_F,  A

                 MOV      A,      SEC      ;
                 CALL     ZH_16_BCD1
                 MOV      H_SEC,   A
                 RET
ZH_16_BCD1:
         MOV      B,  #10
                 DIV          AB                                 ;16進制轉換到10進制后寫入1302
                 SWAP     A                                         ;"壓縮BCD碼"
                 ADD      A,   B
                 RET      
;**********************************************************
ZH_BCD_16:                                  ;二—十BCD碼轉換成十六進制碼
            PUSH   00H                  
            MOV    @R0,   #0             ;BCD碼轉換成16進制
            XCHD   A,   @R0              ;個位轉到@R0暫存
            SWAP   A                     ;十位轉到低4位
            MOV    B,   #0AH             ;十位數乘以10(0AH)
            MUL    AB                    ;
            ADD    A,   @R0              ;加上個位數
            POP    00H
            RET
;********************************************
;入口參數:寫入或讀出的首數據在H_SEC中,寫或讀的首地址
;固定為秒;寫入或讀出的字節個數在R7中
;********************************************
RW1302:
          MOV   A,  CMD1302
RW1302_11:
         CLR    RST1302
         CLR    SCLK1302                           ;拉高RST前,一定置SCLK低
         NOP                                               ;
         SETB  RST1302                                   ;拉高RST,對1302讀寫有效
RW1302_1:                                                           ;發送指令
         MOV   A,   CMD1302                           ;取指令
         MOV   R6,   #8                               ;循環,8位指令
RW1302_2:                                                           ;
         CLR   SCLK1302                                   ;
         RRC   A                                       ;
         MOV   IO1302,   C                           ;
         NOP                                           ;
         SETB  SCLK1302                                   ;
         DJNZ  R6,  RW1302_2                   ;以上6行是寫指令
RW1302_22:
         MOV   R6,  #8                               ;8位數據
                 MOV   A,       CMD1302                   ;僅僅判斷程序走向
         JNB   ACC.0,   RW1302_4           ;讀寫分別處理,ACC.0=0,轉
RW1302_3:                                                           ;ACC.0=1,是讀,轉來
         CLR   SCLK1302                                   ;以下是讀數據
         NOP                                               ;
         MOV   C,   IO1302
                 NOP                           ;
         SETB  SCLK1302                            ;
         RRC   A                                       ;
         DJNZ  R6,  RW1302_3           ;以上7行是寫數據  
         MOV   @R0,  A                               ;送緩存
         SJMP  RW1302_6                               ;跳過“寫”
RW1302_4:                                                         ;
         MOV   A,  @R0                               ;如果ACC.0=0,是寫,轉來
RW1302_5:                                                               ;
         RRC   A                                       ;
         CLR   SCLK1302                                   ;
         MOV   IO1302,   C                           ;
         NOP                                               ;
         SETB  SCLK1302                                   ;
         DJNZ  R6,   RW1302_5                   ;
RW1302_6:                                                           ;
         INC   R0                                       ;指向下一緩存位
         DJNZ  R7,   RW1302_22         ;字節數沒完,轉回繼續
         CLR   RST1302                                   ;讀寫完后,拉低RST,禁止讀寫1302
;         NOP                                                ;
;         CLR   SCLK1302                           ;
         RET                                               ;
;********************************************
;INITIALIZE DS1302, 打開寫保護
;設置充電, 啟動時鐘
;********************************************           
INIT1302:                                                      ;
         CLR    SCLK1302                           ;
         CLR    RST1302                                   ;

                 MOV    CMD1302,   #8EH        ;打開寫保護,允許寫入
                 MOV    H_SEC,     #0          ;讀寫的數據
                 MOV    R7,   #1                           ;讀寫的字節數
         MOV    R0,       #H_SEC           ;地址送R0
         CALL   RW1302                                   ;調用讀寫子程序

                 MOV    CMD1302,   #90H        ;涓流充電
                 MOV    H_SEC,     #0A5H       ;數據,一個二極管,2K電阻
                 MOV    R7,   #1                           ;讀寫的字節數
         MOV    R0,     #H_SEC               ;
         CALL   RW1302                                   ;調用讀寫子程序

             CALL   ZH_16_BCD              ;將時間值16進制轉換成BCD
                 MOV    H_SEC+7,   #00                   ;1302第8個寄存器,寫保護
                 MOV    CMD1302,   #0BEH       ;連續寫時鐘數據指令
                 MOV    R7,   #8                           ;讀寫的字節數,設置7,也是連續8個數據
         MOV    R0,     #H_SEC               ;
         CALL   RW1302                                   ;調用讀寫子程序

                 MOV    CMD1302,   #11000000B  ;寫入1302 RAM 00H單元
                 MOV    H_SEC,     #00000101B  ;讀寫的數據,寫入05H,設置過標記
                 MOV    R7,   #1                           ;讀寫的字節數
         MOV    R0,       #H_SEC           ;地址送R0
         CALL   RW1302                                   ;調用讀寫子程序
                           
                 MOV    CMD1302,   #10000000B  ;寫秒寄存器指令
                 MOV    A,   SEC                           ;H_SEC的值已被改變,重讀
                 CALL   ZH_16_BCD1                           ;寫入“秒“當前值
                 CLR    ACC.7                                   ;最高位=0,啟動時鐘(冗余)
                 MOV    H_SEC,     A           ;讀寫的數據,最高位為0,啟動時鐘
                 MOV    R7,   #1                           ;讀寫的字節數
         MOV    R0,     #H_SEC               ;
         CALL   RW1302                                   ;調用讀寫子程序

                 MOV    CMD1302,   #10001110B  ;設置寫保護指令
                 MOV    H_SEC,     #10000000B  ;讀寫的數據,不允許寫入
                 MOV    R7,        #1                   ;讀寫的字節數
         MOV    R0,        #H_SEC           ;地址送R0
         CALL   RW1302                                   ;調用讀寫子程序
         RET                                               
;DS1302 DS1302         DS1302 DS1302 DS1302 DS1302 DS1302 DS1302 DS1302 DS1302 DS1302 DS1302
回復

使用道具 舉報

5#
ID:263575 發表于 2018-1-10 12:39 | 只看該作者
我就一個C語言小白,有些不懂想問問,就是你給的這個編程,我能直接添加進去么?還是作為子文件?該怎么操作?那個溫度測試的編程我已經有了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩久久精品电影 | 超黄毛片 | 国产成人99久久亚洲综合精品 | 亚洲精品一区二区三区免 | 成人免费毛片在线观看 | 一级毛片免费看 | 亚洲视频免费在线观看 | 日韩欧美精品 | 嫩草视频在线免费观看 | 国产精品精品久久久 | 欧美日韩中| 欧美一级片在线 | 天天操夜夜操免费视频 | 精品国产乱码一区二区三区a | 日韩精品一区二区久久 | 老司机深夜福利网站 | 久久国产精品一区二区三区 | 性色网站| 欧美色性| 欧美成人精品一区二区男人看 | 欧美黑人一级爽快片淫片高清 | www.久| 精品国产18久久久久久二百 | 国产欧美一级 | av黄色免费| 毛片站 | 亚洲国产一区视频 | 一区二区不卡高清 | 欧美一级黄带 | 黄色一级免费 | 久久精品免费一区二区 | 九九视频在线观看 | 亚洲精品第一 | 日本欧美大片 | 91av免费版 | 成人午夜黄色 | 一级欧美黄色片 | 欧美成人一区二区三区 | 亚洲一区精品在线 | 国产一区二区影院 | 成人免费影院 |