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

📄 1302.asm

📁 电子万年历的设计制作程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
                           MOV 57H,#02H
                           SETB F0    ;闰月
                           LJMP S_PLAY
                     Y3: CJNE R2,#00H,Y31
                           LCALL CHECKRE     ;查前一个月是否为闰月
                           CJNE A,#02H,Y32
                           MOV 56H,#29H      ;前一个月是闰月
                           MOV A,R4
                           ANL A,#0FH         ;R2中为0,则为前一个月
                           JNZ Y33            ;的的最后一天
                           MOV 56H,#30H
                           MOV 57H,#02H
                           SETB F0
                           LJMP S_PLAY
                     Y33:MOV 57H,#02H
                           SETB F0
                           LJMP S_PLAY
                     Y32:MOV 56H,#29H  ;前一个月不是闰月
                           MOV A,R6
                           JB ACC.5,Y34
                           MOV 56H,#30H
                     Y34:MOV 57H,#02H
                           CLR F0
                           LJMP S_PLAY
                     Y31:MOV A,R2
                           MOV R0,A      ;R2中为日的值
                           LCALL D_BCD
                           MOV 56H,A
                           MOV 57H,#03H
                           CLR F0
                           LJMP S_PLAY
                   RY3:  CJNE R2,#00H,RY31
                           MOV 56H,#29H
                           MOV A,R6
                           JB ACC.4,RY32   ;R2中为0,则为前一个月
                           MOV 56H,#30H    ;的的最后一天
                    RY32:MOV 57H,#03H
                           CLR F0
                           LJMP S_PLAY
                    RY31:MOV A,R2       ;R2中为日的值
                      	   MOV R0,A
                           LCALL D_BCD
                           MOV 56H,A
                           MOV 57H,#03H
                           SETB F0
                           LJMP S_PLAY
                   Y4:   CJNE R2,#00H,Y41
                           LCALL CHECKRE    ;查前一个月是否为闰月
                           CJNE A,#03H,Y42
                           MOV 56H,#29H     ;前一个月是闰月
                           MOV A,R4         ;R2中为0,则为前一个月
                           ANL A,#0FH       ;的最后一天
                           JNZ Y43
                           MOV 56H,#30H
                           MOV 57H,#03H
                           SETB F0
                           LJMP S_PLAY
                    Y43: MOV 57H,#03H
                           SETB F0
                           LJMP S_PLAY
                    Y42: MOV 56H,#29H  ;前一个月不是闰月
                           MOV A,R6
                           JB ACC.4,Y44
                           MOV 56H,#30H
                    Y44: MOV 57H,#03H
                           CLR F0
                           LJMP S_PLAY
                    Y41: MOV A,R2       ;R2中为日的值
                           MOV R0,A
                           LCALL D_BCD
                           MOV 56H,A
                           MOV 57H,#04H
                           CLR F0
                           LJMP S_PLAY
                   RY4:  CJNE R2,#00H,RY41
                           MOV 56H,#29H    ;R2中为0,则为前一个月
                           MOV A,R6        ;的的最后一天
                           JB ACC.2,RY42
                           MOV 56H,#30H
                   RY42: MOV 57H,#04H
                           CLR F0
                           LJMP S_PLAY
                   RY41: MOV A,R2       ;R2中为日的值
                           MOV R0,A
                           LCALL D_BCD
                           MOV 56H,A
                           MOV 57H,#04H
                           SETB F0
                           LJMP S_PLAY
                    Y5:  CJNE R2,#00H,Y51
                           LCALL CHECKRE    ;查前一个月是否为闰月
                           CJNE A,#04H,Y52
                           MOV 56H,#29H       ;前一个月是闰月
                           MOV A,R4           ;R2中为0,则为前一个月
                           ANL A,#0FH         ;的最后一天
                           JNZ Y53
                           MOV 56H,#30H
                           MOV 57H,#04H
                           SETB F0
                           LJMP S_PLAY
                    Y53: MOV 57H,#04H
                           SETB F0
                           LJMP S_PLAY
                    Y52: MOV 56H,#29H   ;前一个月不是闰月
                           MOV A,R6
                           JB ACC.2,Y54
                           MOV 56H,#30H
                    Y54: MOV 57H,#04H
                           CLR F0
                           LJMP S_PLAY
                    Y51: MOV A,R2       ;R2中为日的值
                           MOV R0,A
                           LCALL D_BCD
                           MOV 56H,A
                           MOV 57H,#05H
                           CLR F0
                           LJMP S_PLAY
                    RY5: CJNE R2,#00H,RY51
                           MOV 56H,#29H    ;R2中为0,则为前一个月
                           MOV A,R6        ;的最后一天
                           JB ACC.1,RY52
                           MOV 56H,#30H
                    RY52:MOV 57H,#05H
                           CLR F0
                           LJMP S_PLAY
                    RY51:MOV A,R2     ;R2中为日的值
                           MOV R0,A
                           LCALL D_BCD
                           MOV 56H,A
                           MOV 57H,#05H
                           SETB F0
                           LJMP S_PLAY
                    Y6:  CJNE R2,#00H,Y61
                           LCALL CHECKRE   ;查前一个月是否为闰月
                           CJNE A,#05H,Y62
                           MOV 56H,#29H    ;前一个月是闰月
                           MOV A,R4        ;R2中为0,则为前一个月
                           ANL A,#0FH      ;的最后一天
                           JNZ Y63
                           MOV 56H,#30H
                           MOV 57H,#05H
                           SETB F0
                           LJMP S_PLAY
                    Y63: MOV 57H,#05H
                           SETB F0
                           LJMP S_PLAY
                    Y62: MOV 56H,#29H   ;前一个月不是闰月
                           MOV A,R6
                           JB ACC.1,Y64
                           MOV 56H,#30H
                    Y64: MOV 57H,#05H
                           CLR F0
                           LJMP S_PLAY
                    Y61: MOV A,R2        ;R2中为日的值
                           MOV R0,A
                           LCALL D_BCD
                           MOV 56H,A
                           MOV 57H,#06H
                           CLR F0
                           LJMP S_PLAY
                   RY6:  CJNE R2,#00H,RY61
                           MOV 56H,#29H    ;R2中为0,则为前一个月
                           MOV A,R6        ;的最后一天
                           JB ACC.0,RY62
                           MOV 56H,#30H
                   RY62: MOV 57H,#06H
                           CLR F0
                           LJMP S_PLAY
                   RY61: MOV A,R2     ;R2中为日的值
                           MOV R0,A
                           LCALL D_BCD
                           MOV 56H,A
                           MOV 57H,#06H
                           SETB F0
                           LJMP S_PLAY
                   Y7:   CJNE R2,#00H,Y71
                           LCALL CHECKRE    ;查前一个月是否为闰月
                           CJNE A,#06H,Y72
                           MOV 56H,#29H     ;前一个月是闰月
                           MOV A,R4         ;R2中为0,则为前一个月
                           ANL A,#0FH       ;的最后一天
                           JNZ Y73
                           MOV 56H,#30H
                           MOV 57H,#06H
                           SETB F0
                           LJMP S_pLAY
                   Y73:  MOV 57H,#06H
                           SETB F0
                           LJMP S_PLAY
                   Y72:  MOV 56H,#29H   ;前一个月不是闰月
                           MOV A,R6
                           JB ACC.0,Y74
                           MOV 56H,#30H
                   Y74:  MOV 57H,#06H
                           CLR F0
                           LJMP S_PLAY
                   Y71:  MOV A,R2        ;R2中为日的值
                           MOV R0,A
                           LCALL D_BCD
                           MOV 56H,A
                           MOV 57H,#07H
                           CLR F0
                           LJMP S_PLAY
                   RY7:  CJNE R2,#00H,RY71
                           MOV 56H,#29H    ;R2中为0,则为前一个月
                           MOV A,R5        ;的最后一天
                           JB ACC.6,RY72
                           MOV 56H,#30H
                   RY72: MOV 57H,#07H
                           CLR F0
                           LJMP S_PLAY
                    RY71:MOV A,R2      ;R2中为日的值
                           MOV R0,A
                           LCALL D_BCD
                           MOV 56H,A
                           MOV 57H,#07H
                           SETB F0
                           LJMP S_PLAY
                   Y8:   CJNE R2,#00H,Y81
                           LCALL CHECKRE     ;查前一个月是否为闰月
                           CJNE A,#07H,Y82
                           MOV 56H,#29H     ;前一个月是闰月
                           MOV A,R4         ;R2中为0,则为前一个月
                           ANL A,#0FH       ;的最后一天
                           JNZ Y83
                           MOV 56H,#30H
                           MOV 57H,#07H
                           SETB F0
                           LJMP S_PLAY
                    Y83: MOV 57H,#07H
                           SETB F0
                           LJMP S_PLAY
                     Y82: MOV 56H,#29H  ;前一个月不是闰月
                           MOV A,R5
                           JB ACC.6,Y84
                           MOV 56H,#30H
                     Y84: MOV 57H,#07H
                           CLR F0
                           LJMP S_PLAY
                      Y81:MOV A,R2     ;R2中为日的值
                           MOV R0,A
                           LCALL D_BCD
                           MOV 56H,A
                           MOV 57H,#08H
                           CLR F0
                           LJMP S_PLAY
                    Y9:  CJNE R2,#00H,Y91
                           MOV 56H,#29H   ;R2中为0,则为前一个月
                           MOV A,R5       ;的最后一天
                           JB ACC.5,Y92
                           MOV 56H,#30H
                    Y92: MOV 57H,#08H
                           CLR F0
                           LJMP S_PLAY
                     Y91: MOV A,R2     ;R2中为日的值
                           MOV R0,A
                           LCALL D_BCD
                           MOV 56H,A
                           MOV 57H,#09H
                           CLR F0
                           LJMP S_PLAY
                   RY9:  CJNE R2,#00H,RY91
                           MOV 56H,#29H    ;R2中为0,则为前一个月
                           MOV A,R5        ;的最后一天
                           JB ACC.4,RY92
                           MOV 56H,#30H
                   RY92: MOV 57H,#09H
                           CLR F0
                           LJMP S_PLAY
                   RY91: MOV A,R2      ;R2中为日的值
                           MOV R0,A
                           LCALL D_BCD
                           MOV 56H,A
                           MOV 57H,#09H
                           SETB F0
                           LJMP S_PLAY
                  Y10:   CJNE R2,#00H,Y101
                           LCALL CHECKRE    ;查前一个月是否为闰月
                           CJNE A,#09H,Y102
                           MOV 56H,#29H     ;前一个月是闰月
                           MOV A,R4         ;R2中为0,则为前一个月
                           ANL A,#0FH       ;的最后一天
                           JNZ Y103
                           MOV 56H,#30H
                           MOV 57H,#09H
                           SETB F0
                           LJMP S_PLAY
                  Y103:  MOV 57H,#

⌨️ 快捷键说明

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