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

📄 万年历.asm

📁 万年历的全套资料 是用汇编写的
💻 ASM
📖 第 1 页 / 共 5 页
字号:
                                          MOV IO,C
                                          NOP
                                          NOP
                                          NOP
                                          SETB SCLK
                                          NOP
                                          NOP
                                          NOP
                                          CLR SCLK
                                          NOP
                                          NOP
                                          DJNZ R4,READ1
                                          MOV R4,#8
                                  READ2:  CLR SCLK
                                          NOP
                                          NOP
                                          NOP
                                          MOV C,IO
                                          NOP
                                          NOP
                                          NOP
                                          NOP
                                          NOP
                                          RRC A
                                          NOP
                                          NOP
                                          NOP
                                          NOP
                                          SETB SCLK
                                          NOP
                                          DJNZ R4,READ2
                                          MOV DS1302_DATA,A
                                          CLR RST
                                          RET
                              ;*********************************
                              ;*    BCD码转换为十进制程序      *
                              ;*********************************
                                 BCD_10:  MOV A,R0
                                          ANL A,#0FH
                                          MOV R1,A                   ;高位*10,加低位
                                          MOV A,R0
                                          SWAP A
                                          ANL A,#0FH
                                          MOV B,#10
                                          MUL AB
                                          ADD A,R1
                                          MOV R0,A
                                          RET
                              ;********************************
                              ;*       查一年数据程序         *
                              ;********************************
                              CHECKMONTH: LCALL BCD_10
                                          MOV A,R0
                                          MOV B,#04
                                          MUL AB
                                          MOV R1,A
                                          MOV DPTR,#TAB
                                          MOVC A,@A+DPTR
                                          MOV R7,A                      ;第1字节送R7
                                          INC R1
                                          MOV A,R1
                                          MOVC A,@A+DPTR
                                          MOV R6,A                       ;第2字节送R6
                                          INC R1
                                          MOV A,R1
                                          MOVC A,@A+DPTR
                                          MOV R5,A                        ;第3字节送R5
                                          INC R1
                                          MOV A,R1
                                          MOVC A,@A+DPTR
                                          MOV R4,A                       ;第4字节送R4
                                          RET
                               ;******************************
                               ;*        自动更新农历        *
                               ;******************************
                                GENGXIN:  MOV R2,#00H
                                          MOV R3,#00H
                                          MOV A,MONTH
                                          CJNE A,#01H,GM2
                                          MOV R0,DAY                    ;当前月为1月
                                          LCALL BCD_10                  ;当前日转换为十进制,送R2
                                          MOV A,R0
                                          MOV R2,A
                                          AJMP TIAOZHENG1
                                    GM2:  CJNE A,#02H,GM3
                                          MOV R0,DAY                    ;当前月为2月
                                          LCALL BCD_10                  ;当前日转换为十进制
                                          MOV A,R0                      ;再加31送R2
                                          ADD A,#31
                                          MOV R2,A
                                          AJMP TIAOZHENG1
                                    GM3:  CJNE A,#03H,GM4
                                          MOV R0,DAY                    ;当前月为3月
                                          LCALL BCD_10                  ;当前日转换为十进制
                                          MOV A,R0                      ;再加59送R2
                                          ADD A,#59
                                          MOV R2,A
                                          AJMP TIAOZHENG1
                                    GM4:  CJNE A,#04H,GM5
                                          MOV R0,DAY                    ;当前月为4月
                                          LCALL BCD_10                  ;当前日转换为十进制
                                          MOV A,R0                      ;再加90送R2
                                          ADD A,#90
                                          MOV R2,A
                                          AJMP TIAOZHENG1
                                    GM5:  CJNE A,#05H,GM6
                                          MOV R0,DAY                    ;当前月为5月
                                          LCALL BCD_10                  ;当前日转换为十进制
                                          MOV A,R0                      ;再加120送R2
                                          ADD A,#120
                                          MOV R2,A
                                          AJMP TIAOZHENG1
                                    GM6:  CJNE A,#06H,GM7
                                          MOV R0,DAY                    ;当前月为6月
                                          LCALL BCD_10                  ;当前日转换为十进制
                                          MOV A,R0                      ;再加151送R2
                                          ADD A,#151
                                          MOV R2,A
                                          AJMP TIAOZHENG1
                                    GM7:  CJNE A,#07H,GM8
                                          MOV R0,DAY                    ;当前月为7月
                                          LCALL BCD_10                  ;当前日转换为十进制
                                          MOV A,R0                      ;再加181送R2
                                          ADD A,#181
                                          MOV R2,A
                                          AJMP TIAOZHENG1
                                    GM8:  CJNE A,#08H,GM9
                                          MOV R0,DAY                    ;当前月为8月
                                          LCALL BCD_10                  ;当前日转换为十进制
                                          MOV A,R0                      ;再加212送R2
                                          ADD A,#212
                                          MOV R2,A
                                          AJMP TIAOZHENG1
                                    GM9:  CJNE A,#09H,GM10
                                          MOV R0,DAY                    ;当前月为9月
                                          LCALL BCD_10                  ;当前日转换为十进制
                                          MOV A,R0                      ;再加243
                                          CLR C
                                          ADD A,#243
                                          JC GGG
                                          MOV R2,A                      ;A没溢出,送R2
                                          AJMP TIAOZHENG1
                                     GGG: MOV R3,#0FFH                   ;R3中送#0FFH
                                          INC A                          ;A溢出,A加1送R2
                                          MOV R2,A
                                          AJMP TIAOZHENG1
                                   GM10:  CJNE A,#10H,GM11
                                          MOV R0,DAY                    ;当前月为10月
                                          LCALL BCD_10                  ;当前日转换为十进制
                                          MOV A,R0                      ;再加18送R2
                                          ADD A,#18
                                          MOV R2,A                      ;R3中送#0FFH
                                          MOV R3,#0FFH
                                          AJMP TIAOZHENG1
                                   GM11:  CJNE A,#11H,GM12
                                          MOV R0,DAY                    ;当前月为11月
                                          LCALL BCD_10                  ;当前日转换为十进制
                                          MOV A,R0                      ;再加49送R2
                                          ADD A,#49
                                          MOV R2,A                       ;R3中送#0FFH
                                          MOV R3,#0FFH
                                          AJMP TIAOZHENG1
                                   GM12:  MOV R0,DAY                    ;当前月为12月
                                          LCALL BCD_10                  ;当前日转换为十进制
                                          MOV A,R0                      ;再加79送R2
                                          ADD A,#79
                                          MOV R2,A
                                          MOV R3,#0FFH                  ;R3中送#0FFH
                                          AJMP TIAOZHENG1
                             TIAOZHENG1:  MOV A,YEAR
                                          MOV B,#04
                                          DIV AB
                                          MOV A,B
                                          JNZ GGG1
                                          MOV A,65H                  ;当前月是1
                                          CJNE A,#01H,AAAA
                                          AJMP GGG1                  ;当前月是2
                                   AAAA:  CJNE A,#02H,BBBB
                                          AJMP GGG1
                                   BBBB:  CJNE R2,#0FFH,GGG2
                                          MOV R3,#0FFH               ;当前月不是1和2
                                          MOV R2,#01H                ;R1和R2总和加1
                                          AJMP GGG1
                                    GGG2: INC R2
                                    GGG1: MOV R0,YEAR                ;查意一年数据
                                          LCALL CHECKMONTH
                                          MOV A,R2
                                          CLR C
                                          SUBB A,R7
                                          MOV P1.6,C
                                          CJNE A,#01H,GGG3
                                          MOV R2,#01H
                                          MOV A,R3
                                          CJNE A,#00H,NEW1
                                          MOV 57H,#01H                ;R2和R3总和减R7
                                          MOV 56H,#01H                ;为0,则为春节
                                          LJMP S_PLAY
                                    GGG3: CJNE A,#00H,GGG6
                                          MOV R2,A
                                          AJMP OLD
                                    GGG6: JNB P1.6,NEW2
                                          MOV A,R7
                                          CLR C
                                          SUBB A,R2
                                          MOV R7,A
                                          CJNE R3,#0FFH,GGG5
                                          MOV A,R3
                                          CLR C
                                          SUBB A,R7
                                          MOV R2,A

⌨️ 快捷键说明

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