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

📄 万年历.asm

📁 万年历的全套资料 是用汇编写的
💻 ASM
📖 第 1 页 / 共 5 页
字号:
                                          JNB P1.2,WAITT3
                                          AJMP SETG5
                                SETG6:    SETB 0CH                    ;调星期时闪标志
                               GWAIT6:    LCALL DISPLAY
                                          JNB P1.1,GWAIT6
                                SETG7:    LCALL DISPLAY
                                          JNB P1.1,SETG8
                                          JNB P1.2,GADDWEEK
                                          AJMP SETG7
                             GADDWEEK:    MOV R7,64H                ;星期加1
                                          LCALL ADD1
                                          MOV 64H,A
                                          CJNE A,#08H,GADDWEEK1
                                          MOV 64H,#01H
                             GADDWEEK1:   MOV DS1302_ADDR,#8AH        ;星期值送1302
                                          MOV DS1302_DATA,64H
                                          LCALL WRITE
                                          MOV R0,64H
                                          LCALL DIVIDE             ;星期分离送显示缓冲
                                          MOV 48H,R1
                                          MOV 78H,R1
                                WAITT4:   LCALL DISPLAY
                                          JNB P1.2,WAITT4
                                          AJMP SETG7
                                SETG8:    SETB 0DH                    ;调小时时闪标志
                               GWAIT8:    LCALL DISPLAY
                                          JNB P1.1,GWAIT8
                                SETG9:    LCALL DISPLAY
                                          JNB P1.1,SETG10
                                          JNB P1.2,GADDHOUR
                                          AJMP SETG9
                             GADDHOUR:    MOV R7,62H                ;小时加1
                                          LCALL ADD1
                                          MOV 62H,A
                                          CJNE A,#24H,GADDHOUR1
                                          MOV 62H,#00H
                             GADDHOUR1:   MOV DS1302_ADDR,#84H        ;小时值送1302
                                          MOV DS1302_DATA,62H
                                          LCALL WRITE
                                          MOV R0,62H
                                          LCALL DIVIDE             ;小时分离送显示缓冲
                                          MOV 74H,R1
                                          MOV 44H,R1
                                          MOV 75H,R2
                                          MOV 45H,R2
                                WAITT5:   LCALL DISPLAY
                                          JNB P1.2,WAITT5
                                          AJMP SETG9
                                SETG10:   SETB 0EH                    ;调分时闪标志
                               GWAIT10:   LCALL DISPLAY
                                          JNB P1.1,GWAIT10
                                SETG11:   LCALL DISPLAY
                                          JNB P1.1,SETGOUT
                                          JNB P1.2,GADDMINTUE
                                          AJMP SETG11
                           GADDMINTUE:    MOV R7,61H                ;分加1
                                          LCALL ADD1
                                          MOV 61H,A
                                          CJNE A,#60H,GADDMINTUE1
                                          MOV 61H,#00H
                             GADDMINTUE1: MOV DS1302_ADDR,#82H        ;分值送1302
                                          MOV DS1302_DATA,61H
                                          LCALL WRITE
                                          MOV R0,61H
                                          LCALL DIVIDE             ;分分离送显示缓冲
                                          MOV 72H,R1
                                          MOV 42H,R1
                                          MOV 73H,R2
                                          MOV 43H,R2
                                WAITT6:   LCALL DISPLAY
                                          JNB P1.2,WAITT6
                                          AJMP SETG11
                                SETGOUT:  LCALL DISPLAY
                                          JNB P1.1,SETGOUT
                                          LCALL GENGXIN
                                          MOV DS1302_ADDR,#80H
                                          MOV DS1302_DATA,#00H                 ;1302晶振开始振荡
                                          LCALL WRITE
                                          MOV DS1302_ADDR,#8EH
                                          MOV DS1302_DATA,#80H                ;禁止写入1302
                                          LCALL WRITE
                                          CLR 08H
                                          CLR 09H
                                          CLR 0AH
                                          CLR 0BH
                                          CLR 0CH
                                          CLR 0DH
                                          CLR 0EH
                                          CLR 0FH
                                          CLR ET1
                                          CLR TR1                      ;关闪中断
                                          LJMP MAIN1
                                ;***********************************
                                ;*          闪动调时程序           *
                                ;***********************************
                                   INTT1: PUSH ACC
                                          PUSH PSW
                                 GFLASH:  CPL 0FH
                                          JB 0FH,GFLASH1
                                          MOV 7CH,4CH                 ;全部显示
                                          MOV 7BH,4BH
                                          MOV 7AH,4AH
                                          MOV 79H,49H
                                          MOV 78H,48H
                                          MOV 77H,47H
                                          MOV 76H,46H
                                          MOV 75H,45H
                                          MOV 74H,44H
                                          MOV 73H,43H
                                          MOV 72H,42H
                                          MOV 71H,41H
                                          MOV 70H,40H
                             GFLASHOUT:   POP PSW
                                          POP ACC
                                          RETI
                                GFLASH1:  JB 0AH,GFLASH2                     ;调年闪
                                          MOV 7CH,#0AH
                                          MOV 7BH,#0AH
                                          AJMP GFLASHOUT
                                GFLASH2:  JB 0BH,GFLASH3                     ;调月闪
                                          MOV 7AH,#0AH
                                          MOV 79H,#0AH
                                          AJMP GFLASHOUT
                                GFLASH3:  JB 0CH,GFLASH4                     ;调日闪
                                          MOV 77H,#0AH
                                          MOV 76H,#0AH
                                          AJMP GFLASHOUT
                                GFLASH4:  JB 0DH,GFLASH5                     ;调星期闪
                                          MOV 78H,#0AH
                                          AJMP GFLASHOUT
                                GFLASH5:  JB 0EH,GFLASH6                     ;调小时闪
                                          MOV 75H,#0AH
                                          MOV 74H,#0AH
                                          AJMP GFLASHOUT
                                GFLASH6:  MOV 73H,#0AH                       ;调分闪
                                          MOV 72H,#0AH
                                          AJMP GFLASHOUT
                            ;*********************************
                            ;*           加1程序             *
                            ;*********************************
                                   ADD1:  MOV A,R7
                                          ADD A,#01H
                                          DA A
                                          RET
                            ;*********************************
                            ;*           分离程序            *
                            ;*********************************
                                DIVIDE:   MOV A,R0
                                          ANL A,#0FH
                                          MOV R1,A
                                          MOV A,R0
                                          SWAP A
                                          ANL A,#0FH
                                          MOV R2,A
                                          RET
                             ;*********************************
                             ;*         写1302程序            *
                             ;*********************************
                                  WRITE:  CLR SCLK
                                          NOP
                                          SETB RST
                                          NOP
                                          MOV A,DS1302_ADDR
                                          MOV R4,#8
                                  WRITE1: RRC A                       ;送地址给1302
                                          NOP
                                          NOP
                                          CLR SCLK
                                          NOP
                                          NOP
                                          NOP
                                          MOV IO,C
                                          NOP
                                          NOP
                                          NOP
                                          SETB SCLK
                                          NOP
                                          NOP
                                          DJNZ R4,WRITE1
                                          CLR SCLK
                                          NOP
                                          MOV A,DS1302_DATA
                                          MOV R4,#8
                                  WRITE2: RRC A
                                          NOP                        ;送数据给1302
                                          CLR SCLK
                                          NOP
                                          NOP
                                          MOV IO,C
                                          NOP
                                          NOP
                                          NOP
                                          SETB SCLK
                                          NOP
                                          NOP
                                          DJNZ R4,WRITE2
                                          CLR RST
                                          RET
                              ;*******************************
                              ;*         读1302程序          *
                              ;*******************************
                                   READ:  CLR SCLK
                                          NOP
                                          NOP
                                          SETB RST
                                          NOP
                                          MOV A,DS1302_ADDR
                                          MOV R4,#8
                                  READ1:  RRC A
                                          NOP

⌨️ 快捷键说明

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