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

📄 万年历.asm

📁 单片机设计万年历过户就让他推举投影机荣誉军人他有今天加入条件
💻 ASM
📖 第 1 页 / 共 5 页
字号:
                                          MOV 47H,R2
                                          MOV R0,64H
                                          LCALL DIVIDE             ;星期分离送显示缓冲
                                         MOV 48H,week
                                         MOV 78H,week
                                WAIT8:    LCALL DISPLAY
                                          JNB P1.4,WAIT8
                                          AJMP SETG5


                                SETG6:    SETB 0CH                    ;调小时时闪标志
                               GWAIT9:    LCALL DISPLAY
                                          JNB P1.1,GWAIT9
                                SETG9:    LCALL DISPLAY
                                          JNB P1.1,SETG10
                                          JNB P1.3,GADDHOUR
                                          JNB P1.4,GDECHOUR
                                          JNB P1.2,JUMPDATE
                                          AJMP SETG9
                               JUMPDATE:  LCALL DISPLAY
                                          CLR  0CH
                                          JNB P1.2,JUMPDATE
                                          AJMP SETG5

                             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
                                WAIT10:   LCALL DISPLAY
                                          JNB P1.3,WAIT10
                                          AJMP SETG9

                             GDECHOUR:    MOV   R7,62H                ;小时减1
                                          LCALL DEC1
                                          MOV 62H,A
                                          CJNE A,#99H,GDECHOUR1
                                          MOV 62H,#23H
                             GDECHOUR1:   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
                                WAIT11:   LCALL DISPLAY
                                          JNB P1.4,WAIT11
                                          AJMP SETG9







                                SETG10:   SETB 0DH                    ;调分时闪标志
                               GWAIT12:   LCALL DISPLAY
                                          JNB P1.1,GWAIT12
                                SETG11:   LCALL DISPLAY
                                          JNB P1.1,SETGOUT
                                          JNB P1.3,GADDMINTUE
                                          JNB P1.4,GDECMINTUE
                                          JNB P1.2,JUMPHOUR
                                          AJMP SETG11
                                JUMPHOUR: LCALL DISPLAY
                                          CLR  0DH
                                          JNB P1.2,JUMPHOUR
                                          AJMP SETG9
                           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
                                WAIT13:   LCALL DISPLAY
                                          JNB P1.3,WAIT13
                                          AJMP SETG11


                           GDECMINTUE:    MOV R7,61H                ;分减1
                                          LCALL DEC1
                                          MOV 61H,A
                                          CJNE A,#99H,GDECMINTUE1
                                          MOV 61H,#59H
                             GDECMINTUE1: 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
                                WAIT14:   LCALL DISPLAY
                                          JNB P1.4,WAIT14
                                          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 ET1
                                          CLR TR1                      ;关闪中断
                                          LJMP MAIN1
                                ;***********************************
                                ;*          闪动调时程序           *
                                ;***********************************
                                   INTT1: PUSH ACC
                                          PUSH PSW


                                 GFLASH:  CPL 0FH
                                          JB 0FH,GFLASH1
                                          MOV 7CH,4CH                 ;全部显示
                                          MOV 7BH,4BH
                                          MOV A,4AH
                                          CJNE A,#0,TWEEK
                                          MOV 4AH,#0BH
                                    TWEEK:MOV 7AH,4AH
                                          MOV 79H,49H
                                          MOV 78H,WEEK
                                          MOV 77H,47H
                                          MOV 76H,46H
                                          MOV 75H,45H
                                          MOV 74H,44H
                                          MOV 73H,43H
                                          MOV 72H,42H
                                          MOV 71H,41H
                                          MOV 70H,40H
                                          MOV 50H,59H                       ;农历月日
                                          MOV 51H,5AH
                                          MOV 52H,5BH
                                          MOV 53H,5CH
                             GFLASHOUT:   POP PSW
                                          POP ACC
                                          RETI
                                GFLASH1:  JB 0AH,GFLASH2                     ;调年闪
                                          MOV 7CH,#0AH
                                          MOV 7BH,#0AH
                                          MOV 78H,#0AH                       ;调年时星期闪
                                          MOV 50H,#0AH                       ;农历月日闪烁
                                          MOV 51H,#0AH
                                          MOV 52H,#0AH
                                          MOV 53H,#0AH
                                          AJMP GFLASHOUT
                                GFLASH2:  JB 0BH,GFLASH3                     ;调月闪
                                          MOV 7AH,#0AH
                                          MOV 79H,#0AH
                                          MOV 78H,#0AH                       ;调月时星期闪
                                          MOV 50H,#0AH                       ;农历月日闪烁
                                          MOV 51H,#0AH
                                          MOV 52H,#0AH
                                          MOV 53H,#0AH
                                          LJMP GFLASHOUT
                                GFLASH3:  JB 0CH,GFLASH4                     ;调日闪
                                          MOV 77H,#0AH
                                          MOV 76H,#0AH
                                          MOV 78H,#0AH                       ;调日时星期闪
                                          MOV 50H,#0AH                       ;农历月日闪烁
                                          MOV 51H,#0AH
                                          MOV 52H,#0AH
                                          MOV 53H,#0AH
                                          LJMP GFLASHOUT
                                GFLASH4:  JB 0DH,GFLASH5                     ;调小时闪
                                          MOV 75H,#0AH
                                          MOV 74H,#0AH
                                          LJMP GFLASHOUT
                                GFLASH5:                                     ;调分钟闪
                                          MOV 73H,#0AH
                                          MOV 72H,#0AH
                                          LJMP GFLASHOUT

                            ;*********************************
                            ;*           加1程序             *
                            ;*********************************
                                   ADD1:  MOV A,R7
                                          ADD A,#01H
                                          DA A
                                          RET
                            ;*********************************
                            ;*           减1程序             *
                            ;*********************************
                                   DEC1:  MOV A,R7
                                          ADD A,#99H
                                          DA A
                                          RET
                            ;*********************************
                            ;*          大小月加调整程序       *
                            ;*********************************
                                  MMONTH: MOV   R7,63H              ;大月日加1
                                          LCALL ADD1
                                          MOV   63H,A
                                          CJNE  A,#32H,MGOOUT
                                          MOV   63H,#01H
                                  MGOOUT: RET
                                   LMONTH:MOV   R7,63H              ;小月日加1
                                          LCALL ADD1
                                          MOV   63H,A
                                          CJNE  A,#31H,LGOOUT
                                          MOV   63H,#01H
                                   LGOOUT:RET



                            ;*********************************
                            ;*          大小月减调整程序       *
                            ;*********************************
                                  DMMONTH:MOV   R7,63H              ;大月日减1
                                          LCALL DEC1
                                          MOV   63H,A
                                          CJNE  A,#00H,DMGOOUT
                                          MOV   63H,#31H
                                  DMGOOUT: RET

                                  DLMONTH:MOV   R7,63H              ;小月日减1
                                          LCALL DEC1
                                          MOV   63H,A
                                          CJNE  A,#00H,DLGOOUT
                                          MOV   63H,#30H
                                  DLGOOUT:RET



                             ;*****************************************
                             ;*      BCD码转换成16进制数              *
                             ;*****************************************
                                     ZH: MOV   A,R3
                                         mov   2FH,#0
                                         mov   r6,#10
                                NUMBjiao:cjne  a,2Fh,next
                                         ajmp  zh1
                                    next:inc   2Fh
                                         djnz  r6,NUMBjiao
                                         subb  a,#06h
                                         mov   b,#4
                                         div   ab
                                         mov   a,b
                                         MOV   R3,A
                                         ajmp  exit
                                   zh1:  mov   b,#4
                                         div   ab
                                         mov   a,b
                                         mov   r3,a

⌨️ 快捷键说明

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