⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1302.txt

📁 这是我一直使用的1302芯片的完整程序
💻 TXT
字号:
;---------------------------------------
;       把缓存器中的内容写入到1302中
;---------------------------------------
SET1302:
        LCALL  ENABLE
        LCALL  EN_CS
        CLR    T_RST
        CLR    T_CLK
        SETB   T_RST
        MOV    B,#8EH      ;控制寄存器
        LCALL  RTInputByte  ;写入控制寄存器地址。
        MOV    B,#00H        ;写操作前WP=0
        LCALL  RTInputByte   ;向控制寄存器中写入内容。(禁止写入时间)
        SETB   T_CLK
        CLR    T_RST
        MOV    R0,#Second   ;
        MOV    R7,#7        ;秒 分 时 日 月 星期 年  共7个字节数据。
        MOV    R1,#80H     ; ;1302中秒的地址送入R1。
S13021:
        CLR    T_RST
        CLR    T_CLK
        SETB   T_RST
        MOV    B,R1        ;写秒 分 时 日 月 星期 年 地址
        LCALL  RTInputByte ;向1302中写入相应地址。
        MOV    A,@R0       ;写秒数据
        MOV    B,A
        LCALL  RTInputByte  ;向1302中的相应地址中写入对应的数据。
        INC    R0
        INC    R1
        INC    R1
        SETB   T_CLK
        CLR    T_RST
        DJNZ   R7,S13021
        CLR    T_RST        ;
        CLR    T_CLK        ;
        SETB   T_RST        ;
        MOV    B,#8EH       ;控制寄存器
        LCALL  RTInputByte  ;写入控制寄存器地址。
        MOV    B,#80H       ;向控制寄存器中写入内容,WP=1,写保护
        LCALL  RTInputByte  ;
        SETB   T_CLK
        CLR    T_RST
        RET

;************************************************************************
;           从DS1302 中读出时间
;入口参数:时间保存在:Second,Minute,Hour,Day,Month,Week.YearL
;影响资源:A B R0 R1 R4 R7
;************************************************************************
Get1302:
       LCALL  ENABLE
       LCALL  EN_CS
    
        MOV    R0,#Second;
        MOV    R7,#7
        MOV    R1,#81H       ;秒地址
G13021:
        CLR    T_RST
        CLR    T_CLK
        SETB   T_RST
        MOV    B,R1        ;秒 分 时 日 月 星期 年 地址
        LCALL  RTInputByte
        LCALL  RTOutputByte
        MOV    @R0,A         ;秒
        INC    R0
        INC    R1
        INC    R1
        SETB   T_CLK
        CLR    T_RST
        DJNZ   R7,G13021
   
        RET
;**********************************************************
;功    能:写1302一字节  (内部子程序)
;      入口:B--要写入的数据。
;**********************************************************
RTInputByte:
        MOV    R4,#8
Inbit1:
        MOV    A,B
        RRC    A
        MOV    B,A
        MOV    T_IO,C
        SETB   T_CLK
        CLR    T_CLK
        DJNZ   R4,Inbit1
        RET
;**********************************************************
;功    能:读1302一字节  (内部子程序)
;      入口:            出口:A--读出的字节数据
;**********************************************************
RTOutputByte:
        MOV    R4,#8
Outbit1:
        MOV    C,T_IO
        RRC    A
        SETB   T_CLK
        CLR    T_CLK
        DJNZ   R4,Outbit1
        RET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -