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

📄 温度万年历_3.asm

📁 制作一个温度万年历
💻 ASM
📖 第 1 页 / 共 2 页
字号:
                                      ;*****************************
  ;*        万年历程序         *
 ;*****************************
 ;67H(高两位年)66H(低两位年)65H(月)64H(星期)
;63H(日)62H(小时)61H(分)60H(秒)57H(农历月)56H(农历日)
;显示缓冲单元7CH~7BH(4CH~4BH)年低位,7AH~79H(4AH~49H)月,
;78H(48H)星期,77H~76H(47H~46H)日,75H~74H(45H~44H)时,
;73H72H(43H~42H)分,71H~70H(41H~40H)秒,5EH~5DH(55H~54H)农历年
;5CH~5BH(53H~52H)农历月,5AH~59H(51H~50H)农历日
;闰年标志为F0,定时器T1为调整时候闪烁用
;
;
SCLK  EQU  P3.2
IO    EQU  P3.3
RST   EQU  P3.4
YEAR  DATA 66H
MONTH DATA 65H
WEEK  DATA 64H
DAY   DATA 63H
HOUR  DATA 62H
MINUTE DATA 61H
SECOND  DATA 60H
DS1302_ADDR DATA 32H
DS1302_DATA DATA 31H
                 ORG  0000H
                 AJMP START
                 ORG  0003H
                 RETI
                 ORG  000BH
                 RETI
                 ORG  0013H
                 RETI
                 ORG  001BH
                 LJMP INTT1

                 ORG  0023H
                 RETI
                 ORG  002BH
                 RETI
                 
                 ORG  0200H

    ;************************************
     ;*            主程序                *
   ;************************************
   START:   SETB EA
            MOV SCON,#00H    ;串行输出,方式0
            MOV TMOD,#10H    ;计数器1,方式1
            MOV TL1,#00H
            MOV TH1,#00H
            MOV DS1302_ADDR,#8EH
            MOV DS1302_DATA,#00H       ;允许写1302
            LCALL WRITE

            ;MOV DS1302_ADDR,#80H
            ;MOV DS1302_DATA,#00H       ;允许写1302
            ;LCALL WRITE


            MOV DS1302_ADDR,#90H
            MOV DS1302_DATA,#0A6H       ;1302充电,充电电流1.1mA
            LCALL WRITE
 MAIN1:     MOV DS1302_ADDR,#8DH         ;READ OUT YEAR
            LCALL READ
            MOV YEAR,DS1302_DATA
            MOV DS1302_ADDR,#8BH        ;READ OUT WEEK
            LCALL READ
            MOV WEEK,DS1302_DATA
            MOV DS1302_ADDR,#89H          ;READ OUT MONTH
            LCALL READ
            MOV MONTH,DS1302_DATA
            MOV DS1302_ADDR,#87H          ;READ OUT DAY
            LCALL READ
            MOV DAY,DS1302_DATA
            MOV DS1302_ADDR,#85H       ;READ OUT HOUR
            LCALL READ
            MOV HOUR,DS1302_DATA
            MOV DS1302_ADDR,#83H       ;READ OUT MINTUE
            LCALL READ
            MOV MINUTE,DS1302_DATA
            MOV DS1302_ADDR,#81H       ;READ OUT SECOND
            LCALL READ
            MOV SECOND,DS1302_DATA

            MOV     R0,YEAR
            LCALL   DIVIDE
            MOV     7BH,R1
            MOV     4BH,R1
            MOV    7CH,R2
            MOV    4CH,R2
            MOV     78H,WEEK
            MOV     48H,WEEK

            MOV     R0,MONTH
            LCALL   DIVIDE
            MOV     79H,R1
            MOV     49H,R1
            MOV    7AH,R2
            MOV    4AH,R2

            MOV     R0,DAY
            LCALL   DIVIDE
            MOV     76H,R1
            MOV     46H,R1
            MOV    77H,R2
            MOV    47H,R2

            MOV     R0,HOUR
            LCALL   DIVIDE
            MOV     74H,R1
            MOV     44H,R1
            MOV    75H,R2
            MOV    45H,R2

            MOV     R0,MINUTE
            LCALL   DIVIDE
            MOV     72H,R1
            MOV     42H,R1
            MOV    73H,R2
            MOV    43H,R2

            MOV     R0,SECOND
            LCALL   DIVIDE
            MOV     70H,R1
            MOV     40H,R1
            MOV    71H,R2
            MOV    41H,R2
            
            
            
            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,SETG
            JNB      F0,SSS
            CLR      P1.3
            LJMP     MAIN1

SSS:        SETB     P1.3
            LJMP     MAIN1


   ;*********************************
;*         公历           *
  ;*********************************

SETG:       SETB   TR1
            SETB   ET1
            CLR    08H
            CLR    09H
            CLR    0AH
            CLR    0BH
            CLR    0CH
            CLR    0DH
            CLR    0EH
            CLR    0FH


            MOV    DS1302_ADDR,#8EH
            MOV    DS1302_DATA,#00H

            LCALL  WRITE

            MOV    DS1302_ADDR,#80H
            MOV    DS1302_DATA,#80H
            LCALL  WRITE

GWAIT:      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,GWAIT

SETG1:      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,SETG2
            JNB     P1.2,GADDYEAR
            AJMP    SETG1

GADDYEAR:   MOV     R7,66H
            LCALL   ADD1
            MOV     66H,A
            CJNE    A,#51H,GADDYEAR1
            MOV     66H,#01H

GADDYEAR1:  MOV     DS1302_ADDR,#8CH
            MOV     DS1302_DATA,66H
            LCALL   WRITE
            MOV     R0,66H
            LCALL   DIVIDE
            MOV     4BH,R1
            MOV     7BH,R1
            MOV     4CH,R2
            MOV     7CH,R2

WAITT1:     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,WAITT1
            AJMP    SETG1

SETG2:      SETB    0AH

GWAITT2:    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,GWAITT2

SETG3:      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,SETG4
            JNB     P1.2,GADDMONTH
            AJMP    SETG3

GADDMONTH:   MOV     R7,65H
            LCALL   ADD1
            MOV     65H,A
            CJNE    A,#13H,GADDMONTH1
            MOV     65H,#01H

GADDMONTH1:  MOV     DS1302_ADDR,#88H
            MOV     DS1302_DATA,65H
            LCALL   WRITE
            MOV     R0,65H
            LCALL   DIVIDE
            MOV     49H,R1
            MOV     79H,R1
            MOV     4AH,R2
            MOV     7AH,R2

WAITT2:     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,WAITT2
            AJMP    SETG3

SETG4:      SETB    0BH

GWAIT4:     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,GWAIT4

SETG5:      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,SETG6
            JNB     P1.2,GADDDAY
            AJMP    SETG5



GADDDAY:   MOV     R7,63H
            LCALL   ADD1
            MOV     63H,A
            CJNE    A,#32H,GADDDAY1
            MOV     63H,#01H

GADDDAY1:  MOV     DS1302_ADDR,#86H
            MOV     DS1302_DATA,63H
            LCALL   WRITE
            MOV     R0,63H
            LCALL   DIVIDE
            MOV     46H,R1
            MOV     76H,R1
            MOV     47H,R2
            MOV     77H,R2

WAITT3:      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,WAITT3
            AJMP    SETG5

SETG6:      SETB    0CH

GWAIT6:     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,GWAIT6

SETG7:      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

⌨️ 快捷键说明

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