📄 516154.asm
字号:
CLR 13H
CLR 18H
CLR 24H
NOP
NOP
RET
;***********INC*******DEC*******
INCH: MOV R0,#062H
MOV 5FH,#084H
MOV 5EH,#24D
JNB 23H,DEC23H
ACALL INC11
NOP
RET
DEC23H: ACALL DEC11
NOP
RET
INCM: MOV R0,#061H
MOV 5FH,#082H
MOV 5EH,#60D
JNB 23H,DEC23M
ACALL INC11
NOP
RET
DEC23M:ACALL DEC11
NOP
RET
INC_H: MOV R0,#06BH
MOV 5FH,#0C2H
MOV 5EH,#018H
JNB 23H,DEC_H
ACALL INC11
NOP
RET
DEC_H: ACALL DEC11
NOP
RET
INC_M: MOV R0,#06AH
MOV 5FH,#0C0H
MOV 5EH,#60D
JNB 23H,DEC_M
ACALL INC11
NOP
RET
DEC_M: ACALL DEC11
NOP
RET
INC_DA: MOV R0,#064H
MOV 5FH,#088H
MOV 5EH,#13D
JNB 23H,DEC_DA
ACALL INC10
NOP
RET
DEC_DA: ACALL DEC10
NOP
RET
INC_DAA: MOV R0,#63H
MOV 5FH,#086H
MOV 5EH,#32D
JNB 23H,DEC_DAA
ACALL INC10
NOP
RET
DEC_DAA: ACALL DEC10
NOP
RET
;-------INC11 DEC11--------
INC11: MOV 6FH,@R0
ACALL BCD_HEX
NOP
INC A
CJNE A,5EH,INCH1
MOV A,#00H
INCH1: MOV 6FH, A
ACALL HEX_BCD
MOV @R0, A
MOV R1,5FH
MOV R0,A
ACALL SETONE
NOP
RET
LJMP START1
DEC11: MOV 6FH,@R0
ACALL BCD_HEX
NOP
DEC A
CJNE A,#0FFH,DECH1
MOV A,5EH
DEC A
DECH1: MOV 6FH,A
ACALL HEX_BCD
NOP
MOV @R0,A
MOV R1,5FH
MOV R0,A
ACALL SETONE;写入1302
NOP
RET
LJMP START1
;------INC10 DEC10--------
INC10: MOV 6FH,@R0
ACALL BCD_HEX
NOP
INC A
CJNE A,5EH,INCH15
MOV A,#01H
INCH15: MOV 6FH, A
ACALL HEX_BCD
NOP
MOV @R0, A
MOV R1,5FH
MOV R0,A
ACALL SETONE
NOP
RET
DEC10: MOV 6FH,@R0
ACALL BCD_HEX
NOP
DEC A
CJNE A,#00H,DECH15
MOV A,5EH
DEC A
DECH15: MOV 6FH,A
ACALL HEX_BCD
NOP
MOV @R0,A
MOV R1,5FH
MOV R0,A
ACALL SETONE;写入1302
NOP
NOP
RET
NOP
NOP
LJMP 0030H
;------------------------------------初始化1302-------------------------
SET1302: PUSH PSW
CLR RST ;2006年1月1日12:00:00
NOP
CLR LED3CLK
MOV SECOND,#0
MOV 61H,#0
MOV 62H,#18 ;
MOV 63H,#1
MOV 64H,#1
MOV 65H,#1
MOV 66H,#06
SETB RST
MOV A,#8EH
LCALL R_BIT
MOV A,#00H
LCALL R_BIT
SETB LED3CLK
CLR RST
NOP
MOV R0,#SECOND
MOV R7,#7
MOV R1,#80H
SET1302A:CLR RST
CLR LED3CLK
NOP
SETB RST
MOV A,R1
SETB RST
LCALL R_BIT
MOV A,@R0
LCALL R_BIT
INC R0
INC R1
INC R1
SETB LED3CLK
CLR RST
NOP
DJNZ R7,SET1302A
CLR RST
CLR LED3CLK
NOP
SETB LED3CLK
nop
CLR RST
nop
clr led3clk
SETB RST
MOV A,#90H
LCALL R_BIT
MOV A,#10100101B ;充电器设置
LCALL R_BIT
SETB LED3CLK
CLR RST
CLR LED3CLK
NOP
SETB RST
MOV A,#8EH
LCALL R_BIT
MOV A,#80H
LCALL R_BIT
SETB LED3CLK
CLR RST
POP PSW
NOP
NOP
RET
NOP
NOP
LJMP START1
;----------------------读取一RAM ------
T_6061: CLR RST
CLR LED3CLK
NOP
SETB RST
MOV A,R1
LCALL R_BIT
NOP
LCALL W_BIT
SETB LED3CLK
CLR RST
RET
LJMP START1
;-----------------------------
R_1302: PUSH PSW
MOV R0,#SECOND
MOV R7,#7
MOV R1,#81H
R_1302A: CLR RST
CLR LED3CLK
NOP
SETB RST
MOV A,R1
LCALL R_BIT
LCALL W_BIT
NOP
MOV @R0,A
INC R0
INC R1
INC R1
SETB LED3CLK
CLR RST
NOP
DJNZ R7,R_1302A
MOV R0,#6AH
MOV R7,#2
MOV R1,#0C1H
R_1302B: CLR RST
CLR LED3CLK
NOP
SETB RST
MOV A,R1
LCALL R_BIT
LCALL W_BIT
NOP
MOV @R0,A
INC R0
INC R1
INC R1
SETB LED3CLK
CLR RST
NOP
DJNZ R7,R_1302B
POP PSW
NOP
NOP
RET
LJMP 0030H
;------------------R_BIT------------------
R_BIT: MOV R4,#8
R_BIT1: RRC A
MOV LED4IO,C
NOP
SETB LED3CLK
NOP
CLR LED3CLK
NOP
DJNZ R4,R_BIT1
RET
;-------------------W_BIT-----------------------
W_BIT: CLR LED3CLK
MOV R4,#8
W_BIT1: MOV C,LED4IO
NOP
RRC A
SETB LED3CLK
NOP
CLR LED3CLK
DJNZ R4,W_BIT1
RET
;---------------6FH-----------------------------
BCD_HEX:
MOV A,6FH
ANL A,#0FH
MOV B,A
MOV A,6FH
MOV 6FH,B
SWAP A
ANL A,#0FH
MOV B,#0AH
MUL AB
ADD A,6FH
;MOV 6FH,A
RET
LJMP START1
HEX_BCD:
MOV A,6FH
MOV B,#10
DIV AB
SWAP A
ADD A,B
;MOV 6FH,A
NOP
NOP
RET
LJMP START1
;-----写一地址---R1 为地址,R0 为数据----------
SETONE: PUSH PSW
CLR LED3CLK
CLR RST
NOP
CLR LED3CLK
NOP
SETB RST
MOV A,#8EH
LCALL R_BIT
MOV A,#00H
LCALL R_BIT
SETB LED3CLK
NOP
CLR RST
NOP
CLR LED3CLK
NOP
CLR RST
CLR LED3CLK
NOP
SETB RST
MOV A,R1
LCALL R_BIT
MOV A,R0
LCALL R_BIT
NOP
SETB LED3CLK
NOP
CLR RST
NOP
NOP
CLR RST
CLR LED3CLK
NOP
SETB RST
MOV A,#8EH
LCALL R_BIT
MOV A,#80H
LCALL R_BIT
SETB LED3CLK
CLR RST
POP PSW
NOP
NOP
RET
NK3: ;调预约分
JNB SW3,NK5
JB MINITEK,NK4
LCALL DELY10MS
JB MINITEK,NK4
INC YUMINI
MOV A,YUMINI
CJNE A,#60,NYS60
MOV YUMINI,#00H
NYS60: LCALL DISP1
JNB MINITEK,$
NK4: ;调预约时
JNB SW3,NK5
JB HOURK,NK5
LCALL DELY10MS
JB HOURK,NK5
INC YUHOUR
MOV A,YUHOUR
CJNE A,#24,NYM60
MOV YUHOUR,#00H
NYM60: LCALL DISP1
JNB HOURK,$
NK5: ;调煮翻分
JNB SW2,NK3
JB MINITEK,NK6
LCALL DELY10MS
JB MINITEK,NK6
INC ZHUMINI
MOV A,ZHUMINI
CJNE A,#60,NzS60
MOV ZHUMINI,#00H
NzS60: LCALL DISP2
JNB MINITEK,$
NK6: ;调煮翻时
JNB SW2,NK3
JB HOURK, OUT
LCALL DELY10MS
JB HOURK,OUT
INC ZHUHOUR
MOV A,ZHUHOUR
CJNE A,#24,NzM60
MOV ZHUHOUR,#00H
NzM60:LCALL DISP2
JNB HOURK,$
OUT:LJMP NK3
DELY10MS:
MOV R6,#10
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
DISP1:MOV A,YUMINI
MOV B,#10
DIV AB
MOV R0,#45H
MOV @R0,A
INC R0
MOV @R0,B
MOV A,YUHOUR
MOV B,#10
DIV AB
INC R0
MOV @R0,A
INC R0
MOV @R0,B
RET
DISP2:MOV A,ZHUMINI
MOV B,#10
DIV AB
MOV R0,#55H
MOV @R0,A
INC R0
MOV @R0,B
MOV A,ZHUHOUR
MOV B,#10
DIV AB
INC R0
MOV @R0,A
INC R0
MOV @R0,B
RET
;**************定时读取数1302及判断 ;预约和煮饭倒计时*******
INT_T1:
MOV TH1,#3CH
MOV TL1,#0B0H
DJNZ 20H,$
MOV 20H,#14H
INC R2
CJNE R2,#250D,P_OUT
MOV R2,#00H
INC R3
CJNE R3,#10D,P_OUT
MOV R3,#00H
CPL 07H
MOV P0,#0FFH
ACALL R_1302
NOP
ACALL R_1302
NOP
OUT: JNB 06H,P_OUT
MOV 6FH,6BH
ACALL BCD_HEX
MOV B,#10
DIV AB
SWAP A
ADD A,B
CJNE A,62H,PP_OUT
MOV 6FH,6AH
ACALL BCD_HEX
MOV B,#10
DIV AB
SWAP A
ADD A,B
CJNE A,61H,PP_OUT
SETB 08H ;定时到标志
MOV C,07H
cpl c
MOV K_ON,C
pp_out:SETB K_ON
CLR 08H
P_OUT: JB F0 ,JIANZHU
MOV A,YUSEC
CJNE A,#00H,JIANMIAO
MOV A,YUMINI
CJNE A,#00H,JIANFEN
MOV A,YUHOUR
CJNE A,#00H,JIANHOUR
LJMP DONEK
JIANHOUR:DEC YUHOUR
MOV YUMINI,#59
LJMP DONE1
JIANFEN:DEC YUMINI
MOV YUSEC,#59
LJMP DONE1
JIANMIAO:DEC YUSEC
LJMP DONE1
DONEK:CLR P3.4 ;P3.4用于控制煮饭开始
LJMP DONE1
DONE1: LCALL DISP1
POP PSW
POP ACC
RETI
JIANZHU:MOV A,ZHUSEC
CJNE A,#00H,JIANZHUMIAO
MOV A,ZHUMINI
CJNE A,#00H,JIANZHUFEN
MOV A,ZHUHOUR
CJNE A,#00H,JIANZHUHOUR
LJMP DONEE
JIANZHUHOUR:DEC ZHUHOUR
MOV ZHUMINI,#59
LJMP DONE2
JIANZHUFEN:DEC ZHUMINI
MOV ZHUSEC,#59
LJMP DONE2
JIANZHUMIAO:DEC ZHUSEC
LJMP DONE2
DONEE:CLR P3.3 ;P3.3用于控制煮饭停止
CPL P3.1 ;控制峰鸣器表示煮饭完成
LCALL DELAY
LJMP DONE2
DONE2:LCALL DISP2
RETI
TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ,7FH,6FH;
TAB1: DB 0FEH,0FBH,0FDH,7FH
END