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

📄 温度万年历_3.asm

📁 制作一个温度万年历
💻 ASM
📖 第 1 页 / 共 2 页
字号:

MOV  14AH,10H
MOV  14BH,11H
MOV  14CH,12H
MOV  14DH,13H

            LCALL   DISPLAY
            JNB     P1.1,SETG8
            JNB     P1.2,GADDWEEK
            AJMP    SETG7




GADDWEEK:   MOV     R7,64H
            LCALL   ADD1
            MOV     64H,A
            CJNE    A,#08H,GADDWEEK1
            MOV     64H,#01H

GADDWEEK1:  MOV     DS1302_ADDR,#8AH
            MOV     DS1302_DATA,64H
            LCALL   WRITE
            MOV     R0,64H
            LCALL   DIVIDE
            MOV     48H,R1
            MOV     78H,R1


WAITT4:     MOV  186H,76H
MOV  187H,77H

MOV  188H,79H
MOV  189H,7AH

MOV  18AH,7BH
MOV  18BH,7CH
MOV  18CH,#00H
MOV  18DH,#02H




MOV  166H,70H
MOV  167H,71H

MOV  168H,72H
MOV  169H,73H

MOV  16AH,74H
MOV  16BH,75H

MOV  16DH,78H




MOV  146H,59H
MOV  147H,5AH

MOV  148H,5BH
MOV  149H,5CH

MOV  14AH,10H
MOV  14BH,11H
MOV  14CH,12H
MOV  14DH,13H

            LCALL   DISPLAY
            JNB     P1.2,WAITT4
            AJMP    SETG7

SETG8:      SETB    0DH

GWAIT8:     MOV  186H,76H
MOV  187H,77H

MOV  188H,79H
MOV  189H,7AH

MOV  18AH,7BH
MOV  18BH,7CH
MOV  18CH,#00H
MOV  18DH,#02H




MOV  166H,70H
MOV  167H,71H

MOV  168H,72H
MOV  169H,73H

MOV  16AH,74H
MOV  16BH,75H

MOV  16DH,78H




MOV  146H,59H
MOV  147H,5AH

MOV  148H,5BH
MOV  149H,5CH

MOV  14AH,10H
MOV  14BH,11H
MOV  14CH,12H
MOV  14DH,13H

            LCALL   DISPLAY
            JNB     P1.1,GWAIT8

SETG9:
             MOV  186H,76H
MOV  187H,77H

MOV  188H,79H
MOV  189H,7AH

MOV  18AH,7BH
MOV  18BH,7CH
MOV  18CH,#00H
MOV  18DH,#02H




MOV  166H,70H
MOV  167H,71H

MOV  168H,72H
MOV  169H,73H

MOV  16AH,74H
MOV  16BH,75H

MOV  16DH,78H




MOV  146H,59H
MOV  147H,5AH

MOV  148H,5BH
MOV  149H,5CH

MOV  14AH,10H
MOV  14BH,11H
MOV  14CH,12H
MOV  14DH,13H

             LCALL   DISPLAY
            JNB     P1.1,SETG10
            JNB     P1.2,GADDHOUR
            AJMP    SETG9



GADDHOUR:   MOV     R7,62H
            LCALL   ADD1
            MOV     62H,A
            CJNE    A,#24H,GADDHOUR1
            MOV     62H,#00H

GADDHOUR1:  MOV     DS1302_ADDR,#84H
            MOV     DS1302_DATA,62H
            LCALL   WRITE
            MOV     R0,62H
            LCALL   DIVIDE
            MOV     44H,R1
            MOV     74H,R1
            MOV     45H,R2
            MOV     75H,R2

WAITT5:      MOV  186H,76H
MOV  187H,77H

MOV  188H,79H
MOV  189H,7AH

MOV  18AH,7BH
MOV  18BH,7CH
MOV  18CH,#00H
MOV  18DH,#02H




MOV  166H,70H
MOV  167H,71H

MOV  168H,72H
MOV  169H,73H

MOV  16AH,74H
MOV  16BH,75H

MOV  16DH,78H




MOV  146H,59H
MOV  147H,5AH

MOV  148H,5BH
MOV  149H,5CH

MOV  14AH,10H
MOV  14BH,11H
MOV  14CH,12H
MOV  14DH,13H


               LCALL   DISPLAY
            JNB     P1.2,WAITT5
            LJMP    SETG9

SETG10:      SETB    0EH

GWAIT10:    MOV  186H,76H
MOV  187H,77H

MOV  188H,79H
MOV  189H,7AH

MOV  18AH,7BH
MOV  18BH,7CH
MOV  18CH,#00H
MOV  18DH,#02H




MOV  166H,70H
MOV  167H,71H

MOV  168H,72H
MOV  169H,73H

MOV  16AH,74H
MOV  16BH,75H

MOV  16DH,78H




MOV  146H,59H
MOV  147H,5AH

MOV  148H,5BH
MOV  149H,5CH

MOV  14AH,10H
MOV  14BH,11H
MOV  14CH,12H
MOV  14DH,13H


            LCALL   DISPLAY
            JNB     P1.1,GWAIT10

SETG11:     MOV  186H,76H
MOV  187H,77H

MOV  188H,79H
MOV  189H,7AH

MOV  18AH,7BH
MOV  18BH,7CH
MOV  18CH,#00H
MOV  18DH,#02H




MOV  166H,70H
MOV  167H,71H

MOV  168H,72H
MOV  169H,73H

MOV  16AH,74H
MOV  16BH,75H

MOV  16DH,78H




MOV  146H,59H
MOV  147H,5AH

MOV  148H,5BH
MOV  149H,5CH

MOV  14AH,10H
MOV  14BH,11H
MOV  14CH,12H
MOV  14DH,13H


             LCALL   DISPLAY
            JNB     P1.1,SETGOUT
            JNB     P1.2,GADDMINUTE
            AJMP    SETG11


GADDMINUTE:   MOV     R7,61H
            LCALL   ADD1
            MOV     61H,A
            CJNE    A,#60H,GADDMINUTE1
            MOV     61H,#00H

GADDMINUTE1:  MOV     DS1302_ADDR,#82H
            MOV     DS1302_DATA,61H
            LCALL   WRITE
            MOV     R0,61H
            LCALL   DIVIDE
            MOV     42H,R1
            MOV     72H,R1
            MOV     43H,R2
            MOV     73H,R2

WAITT6:   MOV  186H,76H
MOV  187H,77H

MOV  188H,79H
MOV  189H,7AH

MOV  18AH,7BH
MOV  18BH,7CH
MOV  18CH,#00H
MOV  18DH,#02H




MOV  166H,70H
MOV  167H,71H

MOV  168H,72H
MOV  169H,73H

MOV  16AH,74H
MOV  16BH,75H

MOV  16DH,78H




MOV  146H,59H
MOV  147H,5AH

MOV  148H,5BH
MOV  149H,5CH

MOV  14AH,10H
MOV  14BH,11H
MOV  14CH,12H
MOV  14DH,13H


            LCALL   DISPLAY
            JNB     P1.2,WAITT6
            AJMP    SETG11

SETGOUT:    MOV  186H,76H
MOV  187H,77H

MOV  188H,79H
MOV  189H,7AH

MOV  18AH,7BH
MOV  18BH,7CH
MOV  18CH,#00H
MOV  18DH,#02H




MOV  166H,70H
MOV  167H,71H

MOV  168H,72H
MOV  169H,73H

MOV  16AH,74H
MOV  16BH,75H

MOV  16DH,78H




MOV  146H,59H
MOV  147H,5AH

MOV  148H,5BH
MOV  149H,5CH

MOV  14AH,10H
MOV  14BH,11H
MOV  14CH,12H
MOV  14DH,13H


            LCALL   DISPLAY
            JNB     P1.1,SETGOUT
             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
           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

          SETB IO

          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


   ;*********************************
;*         显示            *
  ;*********************************


DISPLAY:       
               MOV R0,#186H
               MOV R1,#166H
               MOV R2,146H
               MOV R3,#146H
               MOV R5,#0FEH


PLAY1:         MOV    A,#0FFH
               MOV    P2,A

               MOV    A,@R0
               MOV    DPTR,#TAB1
               MOVC   A,@A+DPTR
               MOV    SBUF,A
               JNB    TI,$
               CLR    TI


               MOV    A,@R1
               MOV    DPTR,#TAB1
               MOVC   A,@A+DPTR
               MOV    SBUF,A
               JNB    TI,$
               CLR    TI

               MOV    A,R2
               MOV    DPTR,#TAB1
               MOVC   A,@A+DPTR
               MOV    SBUF,A
               JNB    TI,$
               CLR    TI

               INC    R0
               INC    R1
               INC    R3

               MOV    A,R3
               SETB   PSW.4
               MOV    R0,A
               MOV    A,@R0

               CLR    PSW.4
               MOV    R2,A
               MOV    A,R0

               

PLAY2:         CJNE   A,#54H,PLAY3
               

PLAY3:         MOV    A,R5
               MOV    P2,A
               LCALL  DL1MS
               MOV    A,R5
               JNB    ACC.7,PLAYOUT
               RL     A
               MOV    R5,A
               LJMP   PLAY1

PLAYOUT:       SETB   P2.7
               RET

DL1MS:        MOV         R6,#14H
DL1:          MOV         R7,#19H
DL2:          DJNZ        R7,DL2
              DJNZ        R6,DL1
              RET











TAB1:  ;DB       0C0H,0F9H,0A4H,0B0H
      ; DB       99H,92H,82H,0F8H,80H,90H,0FFH,0BFH
       DB 03H,9FH,25H,0DH,99H
       DB 49H,41H,1FH,01H,09H,0FFH


       END





⌨️ 快捷键说明

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