MOV R3,#49H; 00年的后面是49年
YEAR_NO_99: MOV YEAR_SG,R3;
LCALL WRITE_7_DATA;
SJMP END_KEY_3;
TIMES_3_11: CJNE A,#11,TIMES_3_12;
MOV R3,MONTH_SG;
ACALL NUMBER_F_9;
MOV A,R3;
CJNE A,#00H,MON_NO_12;
MOV R3,#12H;0月是12月
MON_NO_12: MOV MONTH_SG,R3;
MOV R0,#MONTH_SG;CPU_RAM中的块数据的首地址(从高地址开始)
MOV R7,#1;有1位数需要写
MOV B,#10001000B;DS1302中的块数据的首地址(从低地址开始)
SJMP TIMES_2;
TIMES_3_12: CJNE A,#12,TIMES_3_13;
MOV R3,DATE_SG;
ACALL NUMBER_F_9;
MOV A,R3;
CJNE A,#00H,DATE_NO_31;
MOV R3,#31H;0号是31号
DATE_NO_31: MOV DATE_SG,R3;
MOV R0,#DATE_SG;CPU_RAM中的块数据的首地址(从高地址开始)
MOV R7,#1;有1位数需要写
MOV B,#10000110B;DS1302中的块数据的首地址(从低地址开始)
SJMP TIMES_2;
TIMES_3_13: CJNE A,#13,TIMES_3_14;
MOV R3,HOUR_SG;
ACALL NUMBER_F_9;
CJNE A,#0F9H,HOUR_NO_23;
MOV R3,#23H;0点的后面是23点
HOUR_NO_23: MOV HOUR_SG,R3;
MOV R0,#HOUR_SG;CPU_RAM中的块数据的首地址(从高地址开始)
MOV R7,#1;有1位数需要写
MOV B,#10000100B;DS1302中的块数据的首地址(从低地址开始)
SJMP TIMES_2;
TIMES_3_14: CJNE A,#14,END_KEY_3;
MOV R3,MIN_SG;
ACALL NUMBER_F_9;
CJNE A,#0F9H,MIN_NO_59;
MOV R3,#59H; 0分钟的后面是59分钟
MIN_NO_59: MOV MIN_SG,R3;
MOV SEC_SG,#00H;
LCALL WRITE_MIN;
SJMP TIMES_2;
TIMES_2: CLR R_OR_W;R_OR_W=0表示写数据到DS1302
CLR WEEK_BIT;表示WEEK还没有被写
LCALL RW_RTC; 写数据到DS1302
END_KEY_3: NOP;
RET;













