微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 万年历驱动程序怎么输入不进去?

万年历驱动程序怎么输入不进去?

时间:10-02 整理:3721RD 点击:
T_CLK Bit P1.1 ;实时时钟时钟线引脚
T_IO Bit P1.0 ;实时时钟数据线引脚
T_RST Bit P1.2 ;实时时钟复位线引脚
;**********************************************************
SECOND   EQU    50H      ;秒寄存器
MINUTE   EQU    51H      ;分寄存器
HOUR     EQU    52H      ;时寄存器
DAY      EQU    53H      ;号寄存器
MONTH    EQU    54H      ;月寄存器
WEEK     EQU    55H      ;星期寄存器
YEAR     EQU    56H      ;年寄存器
ORG 0000H
SJMP START
ORG 0040H
START: MOV SECOND,#07H
       MOV MINUTE,#06H
       MOV HOUR,#17H
       MOV DAY,#00H
       MOV MONTH,#00H
       MOV WEEK,#00H
       MOV YEAR,#00H
       LCALL SET1302

SET1302:CLR T_RST
        CLR T_CLK
        SETB T_RST
        MOV B, #8EH        ;控制寄存器
        LCALL RTInputByte
        MOV B, #00H        ;写操作前WP=0
        LCALL RTInputByte
        CLR T_RST
                SETB T_CLK
        MOV R0, #Second
        MOV R7, #7         ;秒 分 时 日 月 星期 年
        MOV R1, #80H       ;秒写地址
S13021: CLR T_RST
        CLR T_CLK
        SETB T_RST
        MOV B, R1          ;写秒 分 时 日 月 星期 年 地址
        LCALL RTInputByte
        MOV A, @R0         ;写秒数据
        MOV B, A
        LCALL RTInputByte
        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
RTInputByte:MOV R4, #08H
     Inbit1:MOV A, B
            RRC A
            MOV B, A
            MOV T_IO, C
            SETB T_CLK
            CLR T_CLK
            DJNZ R4, Inbit1
            RET
        END
求各位大神指教?!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top