⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 程序.txt

📁 在C51下编写的时钟函数
💻 TXT
📖 第 1 页 / 共 4 页
字号:
END
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PROC PRO3
PRO3:   JNB 04H,LAP006
	JB 05H,EXIT45
	MOV R0,#STORE
	MOV A,FLASHPLAY
	ADD A,R0
	MOV R0,A
	MOV @R0,#3	  ;存储改变的数值

	MOV R1,#DISPBUF
	MOV A,FLASHPLAY
	ADD A,R1
	MOV R1,A

	MOV DPTR,#LEDTAB
	MOV A,#3
	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,#3	  ;存储改变的数值

	MOV R1,#DISPBUF
	MOV A,FLASHPLAY
	ADD A,R1
	MOV R1,A
	MOV DPTR,#LEDTAB
	MOV A,#3
	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 PRO4
PRO4:   JNB 04H,LAP006
	JB 05H,EXIT45
	MOV R0,#STORE
	MOV A,FLASHPLAY
	ADD A,R0
	MOV R0,A
	MOV @R0,#4	  ;存储改变的数值

	MOV R1,#DISPBUF
	MOV A,FLASHPLAY
	ADD A,R1
	MOV R1,A

	MOV DPTR,#LEDTAB
	MOV A,#4
	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,#4	  ;存储改变的数值

	MOV R1,#DISPBUF
	MOV A,FLASHPLAY
	ADD A,R1
	MOV R1,A
	MOV DPTR,#LEDTAB
	MOV A,#4
	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 PRO5
PRO5:   JNB 04H,LAP006
	JB 05H,EXIT45
	MOV R0,#STORE
	MOV A,FLASHPLAY
	ADD A,R0
	MOV R0,A
	MOV @R0,#5	  ;存储改变的数值

	MOV R1,#DISPBUF
	MOV A,FLASHPLAY
	ADD A,R1
	MOV R1,A

	MOV DPTR,#LEDTAB
	MOV A,#5
	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,#5	  ;存储改变的数值

	MOV R1,#DISPBUF
	MOV A,FLASHPLAY
	ADD A,R1
	MOV R1,A
	MOV DPTR,#LEDTAB
	MOV A,#5
	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 PRO6
PRO6:   JNB 04H,LAP006
	JB 05H,EXIT45
	MOV R0,#STORE
	MOV A,FLASHPLAY
	ADD A,R0
	MOV R0,A
	MOV @R0,#6	  ;存储改变的数值

	MOV R1,#DISPBUF
	MOV A,FLASHPLAY
	ADD A,R1
	MOV R1,A

	MOV DPTR,#LEDTAB
	MOV A,#6
	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,#6	  ;存储改变的数值

	MOV R1,#DISPBUF
	MOV A,FLASHPLAY
	ADD A,R1
	MOV R1,A
	MOV DPTR,#LEDTAB
	MOV A,#6
	MOVC A,@A+DPTR
	MOV @R1,A

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -