;入口信息:
;出口信息:
;影响资源:
;占用资源:
;**************************************************************
INIT: CLR SCLK
CLR RST
MOV SEC_SG,#10001110B;OPEN WRITE PROTECTION
MOV MIN_SG,#00000000B;
MOV R0,#SEC_SG;
LCALL WR_DS1302;
MOV SEC_SG,#10010000B;TRICKLE CHARGER,SELECT R1=2K;
MOV MIN_SG,#10100101B;SELECT R1=2K,ONE DIODE.
MOV R0,#SEC_SG;
LCALL WR_DS1302;
RET
;*************************************************************
; 把八位的地址和数据一位一位的传送 到DS1302
;入口信息:
;出口信息:
;影响资源:
;占用资源:
;************************************************************
WR_DS1302: CLR SCLK;SET SCLK=0;
NOP
SETB RST ;SELECT DS1302/SET RST=1.
NOP
NOP
MOV R7,#2
WRD1302: MOV R6,#8
MOV A,@R0
CLR C
WR1302: CLR SCLK
RRC A
MOV IO,C
NOP
SETB SCLK
DJNZ R6,WR1302;等八位都送完
DEC R0
DJNZ R7,WRD1302;等地址和数据都送完
CLR RST
NOP
CLR SCLK
RET
;************************************************************
; 第一个键的子程序
;入口信息:
;出口信息:
;影响资源:
;占用资源:
;***********************************************************
KEY_1: JB P1.3,END_KEY_1;P1.3=1表示KEY_1没有键按下
ACALL SHANDONG_YANSI;
JNB P1.3,END_KEY_1;等待键松开
LCALL DI_DA;
INC KEY_1_TIMES;KEY_1_TIMES里的内容表示KEY_1按了几次.
MOV TIME_1,#00H;
MOV A,KEY_1_TIMES;
CJNE A,#15,END_KEY_1;
MOV KEY_1_TIMES,#00H;
MOV YEAR_Q,#2;
MOV YEAR_B,#0;
END_KEY_1: RET;
;***********************************************************
; 第二个键的子程序
;入口信息:
;出口信息:
;影响资源:
;占用资源:
;**********************************************************
KEY_2: JB P3.2,END_KEY_2_2; P3.2=1表示KEY_2没有键按下
ACALL SHANDONG_YANSI;
JB P3.2,END_KEY_2_2;
LCALL DI_DA;
MOV TIME_1,#00H;
MOV A,KEY_1_TIMES;
TIMES_2_0: CJNE A,#0,TIMES_2_1;
MOV A,LIANG_DU;
CJNE A,#1,LIANG_DU_NO_1;
CLR C;
ADDC A,#3;
MOV LIANG_DU,A;
SJMP LIANG_DU_NO_142;
LIANG_DU_NO_1: NOP;
CJNE A,#4,LIANG_DU_NO_41;
CLR C;
ADDC A,#10;
MOV LIANG_DU,A;
SJMP LIANG_DU_NO_142;
LIANG_DU_NO_41: NOP;
CJNE A,#14,LIANG_DU_NO_141;
CLR C;
ADDC A,#100;
MOV LIANG_DU,A;
SJMP LIANG_DU_NO_142;
LIANG_DU_NO_141: NOP;
CJNE A,#114,LIANG_DU_NO_142;
MOV LIANG_DU,#1H;
LIANG_DU_NO_142:
LCALL READ_SEC;
LCALL DBCD_SBCD;
LCALL DISPLAY;
JNB P3.2,LIANG_DU_NO_142;
MOV R0,#LIANG_DU;CPU_RAM中的块数据的首地址(从高地址开始)
MOV R7,#1;有1位数需要写
MOV B,#11001110B;DS1302中的块数据的首地址(从低地址开始)
LJMP TIMES_1;
END_KEY_2_2: LJMP END_KEY_2;
TIMES_2_1: CJNE A,#1,TIMES_2_2;














