📄 程序.txt
字号:
LCALL S_DISP
INC FLASHPLAY
MOV A,FLASHPLAY
CJNE A,#4,LAP044
LAP044:JC EXIT62
MOV R0,#STORE
MOV A,@R0
MOV B,#10
MUL AB
MOV R4,A
INC R0
MOV A,@R0
ADD A,R4
MOV R4,A
INC R0
MOV A,@R0
MOV B,#10
MUL AB
MOV R5,A
INC R0
MOV A,@R0
ADD A,R5
MOV R5,A
CJNE R4,#24,LAP421
LAP421:JNC ERROR5
CJNE R5,#60,LAP422
LAP422:JNC ERROR5
SJMP SUCCESS5
EXIT62:SJMP EXIT42
ERROR5:MOV FLASHPLAY,#0
SJMP LAP4007
SUCCESS5:
MOV R0,#TIME1 ;成功修改时间后,把改后的值放入
MOV A,DISCOUNT
ADD A,R0
MOV R0,A
MOV A,R4
MOV @R0,A
MOV A,R0
ADD A,#32
MOV R0,A
MOV A,R5
MOV @R0,A
MOV FLASHPLAY,#0
MOV A,DISCOUNT
CJNE A,#31,LAP40005
LAP40005:JC LAP4006
MOV DISCOUNT,#0
MOV DISPLAY2,TIME1
MOV DISPLAY1,TIME01
LCALL DISPLAY
LCALL S_DISP
SJMP EXIT42
LAP4006: INC DISCOUNT
LAP4007:MOV R0,#TIME1
MOV A,DISCOUNT
ADD A,R0
MOV R0,A
MOV DISPLAY2,@R0
MOV A,R0
ADD A,#32
MOV R0,A
MOV DISPLAY1,@R0
LCALL DISPLAY
LCALL S_DISP
EXIT42:RET
END
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PROC PRO7
PRO7: JNB 04H,LAP006
JB 05H,EXIT45
MOV R0,#STORE
MOV A,FLASHPLAY
ADD A,R0
MOV R0,A
MOV @R0,#7 ;存储改变的数值
MOV R1,#DISPBUF
MOV A,FLASHPLAY
ADD A,R1
MOV R1,A
MOV DPTR,#LEDTAB
MOV A,#7
MOVC A,@A+DPTR
MOV @R1,A ;存储改变的字模
LCALL S_DISP
INC FLASHPLAY
MOV A,FLASHPLAY
CJNE A,#4,LAP44
LAP44:JC EXIT45
MOV R0,#STORE
MOV A,@R0
MOV B,#10
MUL AB
MOV R4,A
INC R0
MOV A,@R0
ADD A,R4
MOV R4,A
INC R0
MOV A,@R0
MOV B,#10
MUL AB
MOV R5,A
INC R0
MOV A,@R0
ADD A,R5
MOV R5,A
MOV A,DISCOUNT
CJNE A,#0,LAP45
NEXT27:MOV A,R5 ;对是否闰年进行判断
JNZ NEXT828
MOV A,R4
RRC A
JC NEXT806
RRC A
JC NEXT806
NEXT828:MOV A,R5
RRC A
JC NEXT806
RRC A
JC NEXT806
SETB F0
SJMP NEXT807
NEXT806:CLR F0
NEXT807:LJMP SUCCESS4 ;无论是多少都可修改
LAP45:
CJNE A,#1,LAP46
MOV A,R4
JZ ERROR4
CJNE A,#13,LAP48
LAP48:JNC ERROR4
JB F0,LAP800
MOV DPTR,#TAB1
SJMP GOON10
LAP006:LJMP LAP005
LAP800:MOV DPTR,#TAB2
GOON10: DEC A
MOVC A,@A+DPTR
MOV B,R5
CJNE A,B,LAP402
LAP402: JC ERROR4
SJMP SUCCESS4
EXIT45:LJMP EXIT42
LAP46:CJNE A,#2,LAP812
MOV A,R4
JZ ERROR4
CJNE A,#8,LAP813
LAP813:JNC ERROR4
MOV A,R5
CJNE A,#24,LAP818
LAP818:JNC ERROR4
SJMP SUCCESS4
LAP812: MOV A,R4
CJNE A,#60,LAP820
LAP820:JNC ERROR4
MOV A,R5
CJNE A,#60,LAP821
LAP821:JNC ERROR4
SJMP SUCCESS4
ERROR4:MOV FLASHPLAY,#0
SJMP LAP407
;EXIT45:LJMP EXIT42 ; 接力
SUCCESS4:
MOV R0,#YEAR2 ;成功修改时间后,把改后的值放入
MOV A,DISCOUNT
ADD A,DISCOUNT
ADD A,R0
MOV R0,A
MOV A,R4
MOV @R0,A
INC R0
MOV A,R5
MOV @R0,A
MOV FLASHPLAY,#0
MOV A,DISCOUNT
CJNE A,#3,LAP405
LAP405:JC LAP406
MOV DISCOUNT,#0
MOV DISPLAY2,YEAR2
MOV DISPLAY1,YEAR1
LCALL DISPLAY
LCALL S_DISP
LJMP EXIT42
LAP406: INC DISCOUNT
LAP407: MOV R0,#YEAR2
MOV A,DISCOUNT
ADD A,DISCOUNT
ADD A,R0
MOV R0,A
MOV DISPLAY2,@R0
INC R0
MOV DISPLAY1,@R0
LCALL DISPLAY
LCALL S_DISP
LJMP EXIT42
LAP005:JNB 05H,EXIT62
MOV R0,#STORE
MOV A,FLASHPLAY
ADD A,R0
MOV R0,A
MOV @R0,#7 ;存储改变的数值
MOV R1,#DISPBUF
MOV A,FLASHPLAY
ADD A,R1
MOV R1,A
MOV DPTR,#LEDTAB
MOV A,#7
MOVC A,@A+DPTR
MOV @R1,A
LCALL S_DISP
INC FLASHPLAY
MOV A,FLASHPLAY
CJNE A,#4,LAP044
LAP044:JC EXIT62
MOV R0,#STORE
MOV A,@R0
MOV B,#10
MUL AB
MOV R4,A
INC R0
MOV A,@R0
ADD A,R4
MOV R4,A
INC R0
MOV A,@R0
MOV B,#10
MUL AB
MOV R5,A
INC R0
MOV A,@R0
ADD A,R5
MOV R5,A
CJNE R4,#24,LAP421
LAP421:JNC ERROR5
CJNE R5,#60,LAP422
LAP422:JNC ERROR5
SJMP SUCCESS5
EXIT62:SJMP EXIT42
ERROR5:MOV FLASHPLAY,#0
SJMP LAP4007
SUCCESS5:
MOV R0,#TIME1 ;成功修改时间后,把改后的值放入
MOV A,DISCOUNT
ADD A,R0
MOV R0,A
MOV A,R4
MOV @R0,A
MOV A,R0
ADD A,#32
MOV R0,A
MOV A,R5
MOV @R0,A
MOV FLASHPLAY,#0
MOV A,DISCOUNT
CJNE A,#31,LAP40005
LAP40005:JC LAP4006
MOV DISCOUNT,#0
MOV DISPLAY2,TIME1
MOV DISPLAY1,TIME01
LCALL DISPLAY
LCALL S_DISP
SJMP EXIT42
LAP4006: INC DISCOUNT
LAP4007:MOV R0,#TIME1
MOV A,DISCOUNT
ADD A,R0
MOV R0,A
MOV DISPLAY2,@R0
MOV A,R0
ADD A,#32
MOV R0,A
MOV DISPLAY1,@R0
LCALL DISPLAY
LCALL S_DISP
EXIT42:RET
END
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PROC PRO8
PRO8: JNB 04H,LAP006
JB 05H,EXIT45
MOV R0,#STORE
MOV A,FLASHPLAY
ADD A,R0
MOV R0,A
MOV @R0,#8 ;存储改变的数值
MOV R1,#DISPBUF
MOV A,FLASHPLAY
ADD A,R1
MOV R1,A
MOV DPTR,#LEDTAB
MOV A,#8
MOVC A,@A+DPTR
MOV @R1,A ;存储改变的字模
LCALL S_DISP
INC FLASHPLAY
MOV A,FLASHPLAY
CJNE A,#4,LAP44
LAP44:JC EXIT45
MOV R0,#STORE
MOV A,@R0
MOV B,#10
MUL AB
MOV R4,A
INC R0
MOV A,@R0
ADD A,R4
MOV R4,A
INC R0
MOV A,@R0
MOV B,#10
MUL AB
MOV R5,A
INC R0
MOV A,@R0
ADD A,R5
MOV R5,A
MOV A,DISCOUNT
CJNE A,#0,LAP45
NEXT27:MOV A,R5 ;对是否闰年进行判断
JNZ NEXT828
MOV A,R4
RRC A
JC NEXT806
RRC A
JC NEXT806
NEXT828:MOV A,R5
RRC A
JC NEXT806
RRC A
JC NEXT806
SETB F0
SJMP NEXT807
NEXT806:CLR F0
NEXT807:LJMP SUCCESS4 ;无论是多少都可修改
LAP45:
CJNE A,#1,LAP46
MOV A,R4
JZ ERROR4
CJNE A,#13,LAP48
LAP48:JNC ERROR4
JB F0,LAP800
MOV DPTR,#TAB1
SJMP GOON10
LAP006:LJMP LAP005
LAP800:MOV DPTR,#TAB2
GOON10: DEC A
MOVC A,@A+DPTR
MOV B,R5
CJNE A,B,LAP402
LAP402: JC ERROR4
SJMP SUCCESS4
EXIT45:LJMP EXIT42
LAP46:CJNE A,#2,LAP812
MOV A,R4
JZ ERROR4
CJNE A,#8,LAP813
LAP813:JNC ERROR4
MOV A,R5
CJNE A,#24,LAP818
LAP818:JNC ERROR4
SJMP SUCCESS4
LAP812: MOV A,R4
CJNE A,#60,LAP820
LAP820:JNC ERROR4
MOV A,R5
CJNE A,#60,LAP821
LAP821:JNC ERROR4
SJMP SUCCESS4
ERROR4:MOV FLASHPLAY,#0
SJMP LAP407
;EXIT45:LJMP EXIT42 ; 接力
SUCCESS4:
MOV R0,#YEAR2 ;成功修改时间后,把改后的值放入
MOV A,DISCOUNT
ADD A,DISCOUNT
ADD A,R0
MOV R0,A
MOV A,R4
MOV @R0,A
INC R0
MOV A,R5
MOV @R0,A
MOV FLASHPLAY,#0
MOV A,DISCOUNT
CJNE A,#3,LAP405
LAP405:JC LAP406
MOV DISCOUNT,#0
MOV DISPLAY2,YEAR2
MOV DISPLAY1,YEAR1
LCALL DISPLAY
LCALL S_DISP
LJMP EXIT42
LAP406: INC DISCOUNT
LAP407: MOV R0,#YEAR2
MOV A,DISCOUNT
ADD A,DISCOUNT
ADD A,R0
MOV R0,A
MOV DISPLAY2,@R0
INC R0
MOV DISPLAY1,@R0
LCALL DISPLAY
LCALL S_DISP
LJMP EXIT42
LAP005:JNB 05H,EXIT62
MOV R0,#STORE
MOV A,FLASHPLAY
ADD A,R0
MOV R0,A
MOV @R0,#8 ;存储改变的数值
MOV R1,#DISPBUF
MOV A,FLASHPLAY
ADD A,R1
MOV R1,A
MOV DPTR,#LEDTAB
MOV A,#8
MOVC A,@A+DPTR
MOV @R1,A
LCALL S_DISP
INC FLASHPLAY
MOV A,FLASHPLAY
CJNE A,#4,LAP044
LAP044:JC EXIT62
MOV R0,#STORE
MOV A,@R0
MOV B,#10
MUL AB
MOV R4,A
INC R0
MOV A,@R0
ADD A,R4
MOV R4,A
INC R0
MOV A,@R0
MOV B,#10
MUL AB
MOV R5,A
INC R0
MOV A,@R0
ADD A,R5
MOV R5,A
CJNE R4,#24,LAP421
LAP421:JNC ERROR5
CJNE R5,#60,LAP422
LAP422:JNC ERROR5
SJMP SUCCESS5
EXIT62:SJMP EXIT42
ERROR5:MOV FLASHPLAY,#0
SJMP LAP4007
SUCCESS5:
MOV R0,#TIME1 ;成功修改时间后,把改后的值放入
MOV A,DISCOUNT
ADD A,R0
MOV R0,A
MOV A,R4
MOV @R0,A
MOV A,R0
ADD A,#32
MOV R0,A
MOV A,R5
MOV @R0,A
MOV FLASHPLAY,#0
MOV A,DISCOUNT
CJNE A,#31,LAP40005
LAP40005:JC LAP4006
MOV DISCOUNT,#0
MOV DISPLAY2,TIME1
MOV DISPLAY1,TIME01
LCALL DISPLAY
LCALL S_DISP
SJMP EXIT42
LAP4006: INC DISCOUNT
LAP4007:MOV R0,#TIME1
MOV A,DISCOUNT
ADD A,R0
MOV R0,A
MOV DISPLAY2,@R0
MOV A,R0
ADD A,#32
MOV R0,A
MOV DISPLAY1,@R0
LCALL DISPLAY
LCALL S_DISP
EXIT42:RET
END
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PROC PRO9
PRO9: JNB 04H,LAP006
JB 05H,EXIT45
MOV R0,#STORE
MOV A,FLASHPLAY
ADD A,R0
MOV R0,A
MOV @R0,#9 ;存储改变的数值
MOV R1,#DISPBUF
MOV A,FLASHPLAY
ADD A,R1
MOV R1,A
MOV DPTR,#LEDTAB
MOV A,#9
MOVC A,@A+DPTR
MOV @R1,A ;存储改变的字模
LCALL S_DISP
INC FLASHPLAY
MOV A,FLASHPLAY
CJNE A,#4,LAP44
LAP44:JC EXIT45
MOV R0,#STORE
MOV A,@R0
MOV B,#10
MUL AB
MOV R4,A
INC R0
MOV A,@R0
ADD A,R4
MOV R4,A
INC R0
MOV A,@R0
MOV B,#10
MUL AB
MOV R5,A
INC R0
MOV A,@R0
ADD A,R5
MOV R5,A
MOV A,DISCOUNT
CJNE A,#0,LAP45
NEXT27:MOV A,R5 ;对是否闰年进行判断
JNZ NEXT828
MOV A,R4
RRC A
JC NEXT806
RRC A
JC NEXT806
NEXT828:MOV A,R5
RRC A
JC NEXT806
RRC A
JC NEXT806
SETB F0
SJMP NEXT807
NEXT806:CLR F0
NEXT807:LJMP SUCCESS4 ;无论是多少都可修改
LAP45:
CJNE A,#1,LAP46
MOV A,R4
JZ ERROR4
CJNE A,#13,LAP48
LAP48:JNC ERROR4
JB F0,LAP800
MOV DPTR,#TAB1
SJMP GOON10
LAP006:LJMP LAP005
LAP800:MOV DPTR,#TAB2
GOON10: DEC A
MOVC A,@A+DPTR
MOV B,R5
CJNE A,B,LAP402
LAP402: JC ERROR4
SJMP SUCCESS4
EXIT45:LJMP EXIT42
LAP46:CJNE A,#2,LAP812
MOV A,R4
JZ ERROR4
CJNE A,#8,LAP813
LAP813:JNC ERROR4
MOV A,R5
CJNE A,#24,LAP818
LAP818:JNC ERROR4
SJMP SUCCESS4
LAP812: MOV A,R4
CJNE A,#60,LAP820
LAP820:JNC ERROR4
MOV A,R5
CJNE A,#60,LAP821
LAP821:JNC ERROR4
SJMP SUCCESS4
ERROR4:MOV FLASHPLAY,#0
SJMP LAP407
;EXIT45:LJMP EXIT42 ; 接力
SUCCESS4:
MOV R0,#YEAR2 ;成功修改时间后,把改后的值放入
MOV A,DISCOUNT
ADD A,DISCOUNT
ADD A,R0
MOV R0,A
MOV A,R4
MOV @R0,A
INC R0
MOV A,R5
MOV @R0,A
MOV FLASHPLAY,#0
MOV A,DISCOUNT
CJNE A,#3,LAP405
LAP405:JC LAP406
MOV DISCOUNT,#0
MOV DISPLAY2,YEAR2
MOV DISPLAY1,YEAR1
LCALL DISPLAY
LCALL S_DISP
LJMP EXIT42
LAP406: INC DISCOUNT
LAP407: MOV R0,#YEAR2
MOV A,DISCOUNT
ADD A,DISCOUNT
ADD A,R0
MOV R0,A
MOV DISPLAY2,@R0
INC R0
MOV DISPLAY1,@R0
LCALL DISPLAY
LCALL S_DISP
LJMP EXIT42
LAP005:JNB 05H,EXIT62
MOV R0,#STORE
MOV A,FLASHPLAY
ADD A,R0
MOV R0,A
MOV @R0,#9 ;存储改变的数值
MOV R1,#DISPBUF
MOV A,FLASHPLAY
ADD A,R1
MOV R1,A
MOV DPTR,#LEDTAB
MOV A,#9
MOVC A,@A+DPTR
MOV @R1,A
LCALL S_DISP
INC FLASHPLAY
MOV A,FLASHPLAY
CJNE A,#4,LAP044
LAP044:JC EXIT62
MOV R0,#STORE
MOV A,@R0
MOV B,#10
MUL AB
MOV R4,A
INC R0
MOV A,@R0
ADD A,R4
MOV R4,A
INC R0
MOV A,@R0
MOV B,#10
MUL AB
MOV R5,A
INC R0
MOV A,@R0
ADD A,R5
MOV R5,A
CJNE R4,#24,LAP421
LAP421:JNC ERROR5
CJNE R5,#60,LAP422
LAP422:JNC ERROR5
SJMP SUCCESS5
EXIT62:SJMP EXIT42
ERROR5:MOV FLASHPLAY,#0
SJMP LAP4007
SUCCESS5:
MOV R0,#TIME1 ;成功修改时间后,把改后的值放入
MOV A,DISCOUNT
ADD A,R0
MOV R0,A
MOV A,R4
MOV @R0,A
MOV A,R0
ADD A,#32
MOV R0,A
MOV A,R5
MOV @R0,A
MOV FLASHPLAY,#0
MOV A,DISCOUNT
CJNE A,#31,LAP40005
LAP40005:JC LAP4006
MOV DISCOUNT,#0
MOV DISPLAY2,TIME1
MOV DISPLAY1,TIME01
LCALL DISPLAY
LCALL S_DISP
SJMP EXIT42
LAP4006: INC DISCOUNT
LAP4007:MOV R0,#TIME1
MOV A,DISCOUNT
ADD A,R0
MOV R0,A
MOV DISPLAY2,@R0
MOV A,R0
ADD A,#32
MOV R0,A
MOV DISPLAY1,@R0
LCALL DISPLAY
LCALL S_DISP
EXIT42:RET
END
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PROC PAIXU
PAIXU: MOV R6,#30
MOV R5,#32
LAP653: DEC R5
MOV A,R5
MOV R7,A
MOV R0,#TIME1
LAP652: MOV A,@R0
INC R0
MOV B,@R0
CJNE A,B,LAP650
MOV A,R0
ADD A,#32
MOV R1,A
MOV A,@R1
DEC R1
MOV B,@R1
CJNE A,B,LAP654
LAP654: JNC LAP651
XCH A,B
MOV @R1,B
INC R1
MOV @R1,A
SJMP LAP651
LAP650:JC LAP651
XCH A,B
MOV @R0,B
DEC R0
MOV @R0,A
MOV A,R0
ADD A,#32
MOV R1,A
MOV A,@R1
INC R1
XCH A,@R1
DEC R1
MOV @R1,A
INC R0
LAP651: DJNZ R7,LAP652
DEC R6
DJNZ R6,LAP653
RET
END
;检测相同时间程序,若有相同程序只保留一个,其余置88
PROC GUOLU
GUOLU: MOV R0,#TIME1
MOV R7,#31
LAP656: MOV A,@R0
INC R0
MOV B,@R0
CJNE A,B,LAP655
MOV A,R0
ADD A,#32
MOV R1,A
MOV A,@R1
DEC R1
MOV B,@R1
CJNE A,B,LAP655
MOV @R1,#88
DEC R0
MOV @R0,#88
INC R0
LAP655: DJNZ R7,LAP656
RET
END
TAB1: ;非闰年表
DB 31,28,31,30,31,30
DB 31,31,30,31,30,31
TAB2: ;闰年表
DB 31,29,31,30,31,30
DB 31,31,30,31,30,31
LEDTAB: ;八段LED共阳数码管字模
;数码 0 1 2 3 4 5 6 7
DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H
;数码 8 9 A B C D E F
DB 80H, 90H, 88H, 83H, 0C6H, 0A1H, 86H, 0FFH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -