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

📄 wannieli.asm

📁 19位万年历程序(带8个定时器
💻 ASM
📖 第 1 页 / 共 5 页
字号:
            ADD A,#10D
            DA A
            MOV YEAR,A
GADDYEAR1:  MOV DS1302_ADDR,#8CH     ;年值送1302
            MOV DS1302_DATA,YEAR
            LCALL WRITE
WAITT1:     LCALL DISPLAY
            JNB key_2,WAITT1
            AJMP SETG1
SETG2:      SETB 01H                 ;调月时闪标志
GWAIT2:     LCALL DISPLAY
            JNB KEY_1,GWAIT2
SETG3:      LCALL DISPLAY
            JNB KEY_1,SETG4
            JNB KEY_2,GADDMONTH
            AJMP SETG3
GADDMONTH:  MOV R7,MONTH             ;月加1
            LCALL ADD1
            MOV MONTH,A
            CJNE A,#13H,GADDMONTH1
            MOV MONTH,#01H
GADDMONTH1: MOV DS1302_ADDR,#88H     ;月值送1302
            MOV DS1302_DATA,MONTH
            LCALL WRITE
WAITT2:     LCALL DISPLAY
            JNB KEY_2,WAITT2
            AJMP SETG3
SETG4:      SETB 02H                 ;调日时闪标志
GWAIT4:     LCALL DISPLAY
            JNB KEY_1,GWAIT4
SETG5:      LCALL DISPLAY
            JNB KEY_1,SETG6
            JNB KEY_2,GADDDAY
            AJMP SETG5
GADDDAY:    MOV R7,DAY               ;日加1
            LCALL ADD1
            MOV DAY,A
            CJNE A,#32H,GADDDAY1
            MOV DAY,#01H
GADDDAY1:   MOV DS1302_ADDR,#86H     ;日值送1302
            MOV DS1302_DATA,DAY
            LCALL WRITE
WAITT3:     LCALL DISPLAY
            JNB KEY_2,WAITT3
            AJMP SETG5
SETG6:      SETB 03H                 ;调星期时闪标志
GWAIT6:     LCALL DISPLAY
            JNB KEY_1,GWAIT6
SETG7:      LCALL DISPLAY
            JNB KEY_1,SETG8
            JNB KEY_2,GADDWEEK
            AJMP SETG7
GADDWEEK:   MOV R7,WEEK              ;星期加1
            LCALL ADD1
            MOV WEEK,A
            CJNE A,#08H,GADDWEEK1
            MOV WEEK,#01H
GADDWEEK1:  MOV DS1302_ADDR,#8AH     ;星期值送1302
            MOV DS1302_DATA,WEEK
            LCALL WRITE
WAITT4:     LCALL DISPLAY
            JNB KEY_2,WAITT4
            AJMP SETG7
SETG8:      SETB 04H                 ;调小时时闪标志
GWAIT8:     LCALL DISPLAY
            JNB KEY_1,GWAIT8
SETG9:      LCALL DISPLAY
            JNB KEY_1,SETG10
            JNB KEY_2,GADDHOUR
            AJMP SETG9
GADDHOUR:   MOV R7,HOUR               ;小时加1
            LCALL ADD1
            MOV HOUR,A
            CJNE A,#24H,GADDHOUR1
            MOV HOUR,#00H
GADDHOUR1:  MOV DS1302_ADDR,#84H     ;小时值送1302
            MOV DS1302_DATA,HOUR
            LCALL WRITE
WAITT5:     LCALL DISPLAY
            JNB KEY_2,WAITT5
            AJMP SETG9
SETG10:     SETB 05H                 ;调分时闪标志
GWAIT10:    LCALL DISPLAY
            JNB KEY_1,GWAIT10
SETG11:     LCALL DISPLAY
            JNB KEY_1,ALKEY1H_A
            JNB KEY_2,GADDMINTUE
            AJMP SETG11
GADDMINTUE: MOV R7,MINTUE            ;分加1
            LCALL ADD1
            MOV MINTUE,A
            CJNE A,#60H,GADDMINTUE1
            MOV MINTUE,#00H
GADDMINTUE1:MOV DS1302_ADDR,#82H     ;分值送1302
            MOV DS1302_DATA,MINTUE
            LCALL WRITE
WAITT6:     LCALL DISPLAY
            JNB KEY_2,WAITT6
            AJMP SETG11
ALKEY1H_A:  SETB  06H                ;ALARM 1 ON
ALKEY1H_B:  MOV DIS_4A,#02H
            LCALL DISPLAY
            JNB KEY_1,ALKEY1H_B
ALKEY1H_C:  LCALL DISPLAY
            JNB KEY_1,ALKEY1L_A
            JNB KEY_2,ALKEY1H_D
            AJMP ALKEY1H_C
ALKEY1H_D:  MOV R7,ALARM1ON_H
            LCALL ADD1
            MOV ALARM1ON_H,A
            CJNE A,#25H,ALKEY1H_E
            MOV ALARM1ON_H,#00H
ALKEY1H_E:  MOV DS1302_ADDR,#0C2H
            MOV DS1302_DATA,ALARM1ON_H
            LCALL WRITE
ALKEY1H_J:  LCALL DISPLAY
            JNB KEY_2,ALKEY1H_J
            AJMP ALKEY1H_C
ALKEY1L_A:  SETB  07H
ALKEY1L_B:  LCALL DISPLAY
            JNB KEY_1,ALKEY1L_B
ALKEY1L_C:  LCALL DISPLAY
            JNB KEY_1,ALKEY2H_A
            JNB KEY_2,ALKEY1L_D
            AJMP ALKEY1L_C
ALKEY1L_D:  MOV R7,ALARM1ON_L
            LCALL ADD1
            MOV ALARM1ON_L,A
            CJNE A,#60H,ALKEY1L_E
            MOV ALARM1ON_L,#00H
ALKEY1L_E:  MOV DS1302_ADDR,#0C4H
            MOV DS1302_DATA,ALARM1ON_L
            LCALL WRITE
ALKEY1L_J:  LCALL DISPLAY
            JNB KEY_2,ALKEY1L_J
            AJMP ALKEY1L_C

ALKEY2H_A:  SETB  08H                ;ALARM 2 ON
ALKEY2H_B:  LCALL DISPLAY
            JNB KEY_1,ALKEY2H_B
ALKEY2H_C:  LCALL DISPLAY
            JNB KEY_1,ALKEY2L_A
            JNB KEY_2,ALKEY2H_D
            AJMP ALKEY2H_C
ALKEY2H_D:  MOV R7,ALARM2ON_H
            LCALL ADD1
            MOV ALARM2ON_H,A
            CJNE A,#25H,ALKEY2H_E
            MOV ALARM2ON_H,#00H
ALKEY2H_E:  MOV DS1302_ADDR,#0C6H
            MOV DS1302_DATA,ALARM2ON_H
            LCALL WRITE
ALKEY2H_J:  LCALL DISPLAY
            JNB KEY_2,ALKEY2H_J
            AJMP ALKEY2H_C
ALKEY2L_A:  SETB  09H
ALKEY2L_B:  LCALL DISPLAY
            JNB KEY_1,ALKEY2L_B
ALKEY2L_C:  LCALL DISPLAY
            JNB KEY_1,ALKEY3H_A
            JNB KEY_2,ALKEY2L_D
            AJMP ALKEY2L_C
ALKEY2L_D:  MOV R7,ALARM2ON_L
            LCALL ADD1
            MOV ALARM2ON_L,A
            CJNE A,#60H,ALKEY2L_E
            MOV ALARM2ON_L,#00H
ALKEY2L_E:  MOV DS1302_ADDR,#0C8H
            MOV DS1302_DATA,ALARM2ON_L
            LCALL WRITE
ALKEY2L_J:  LCALL DISPLAY
            JNB KEY_2,ALKEY2L_J
            AJMP ALKEY2L_C

ALKEY3H_A:  SETB  0AH                ;ALARM 3 ON
ALKEY3H_B:  LCALL DISPLAY
            JNB KEY_1,ALKEY3H_B
ALKEY3H_C:  LCALL DISPLAY
            JNB KEY_1,ALKEY3L_A
            JNB KEY_2,ALKEY3H_D
            AJMP ALKEY3H_C
ALKEY3H_D:  MOV R7,ALARM3ON_H
            LCALL ADD1
            MOV ALARM3ON_H,A
            CJNE A,#25H,ALKEY3H_E
            MOV ALARM3ON_H,#00H
ALKEY3H_E:  MOV DS1302_ADDR,#0CAH
            MOV DS1302_DATA,ALARM3ON_H
            LCALL WRITE
ALKEY3H_J:  LCALL DISPLAY
            JNB KEY_2,ALKEY3H_J
            AJMP ALKEY3H_C
ALKEY3L_A:  SETB  0BH
ALKEY3L_B:  LCALL DISPLAY
            JNB KEY_1,ALKEY3L_B
ALKEY3L_C:  LCALL DISPLAY
            JNB KEY_1,TIMEKEY_A
            JNB KEY_2,ALKEY3L_D
            AJMP ALKEY3L_C
ALKEY3L_D:  MOV R7,ALARM3ON_L
            LCALL ADD1
            MOV ALARM3ON_L,A
            CJNE A,#60H,ALKEY3L_E
            MOV ALARM3ON_L,#00H
ALKEY3L_E:  MOV DS1302_ADDR,#0CCH
            MOV DS1302_DATA,ALARM3ON_L
            LCALL WRITE
ALKEY3L_J:  LCALL DISPLAY
            JNB KEY_2,ALKEY3L_J
            AJMP ALKEY3L_C

TIMEKEY_A:  SETB  0CH                ;ALARMTIME
TIMEKEY_B:  LCALL DISPLAY
            JNB KEY_1,TIMEKEY_B
TIMEKEY_C:  LCALL DISPLAY
            JNB KEY_1,ALKEY4H_A
            JNB KEY_2,TIMEKEY_D
            AJMP TIMEKEY_C
TIMEKEY_D:  MOV R7,ALARMTIME
            LCALL ADD1
            MOV ALARMTIME,A
            CJNE A,#10H,TIMEKEY_E
            MOV ALARMTIME,#02H
TIMEKEY_E:  MOV DS1302_ADDR,#0CEH
            MOV DS1302_DATA,ALARMTIME
            LCALL WRITE
TIMEKEY_J:  LCALL DISPLAY
            JNB KEY_2,TIMEKEY_J
            AJMP TIMEKEY_C

ALKEY4H_A:  SETB  0DH                ;ALARM 4 ON
ALKEY4H_B:  LCALL DISPLAY
            JNB KEY_1,ALKEY4H_B
ALKEY4H_C:  LCALL DISPLAY
            JNB KEY_1,ALKEY4L_A
            JNB KEY_2,ALKEY4H_D
            AJMP ALKEY4H_C
ALKEY4H_D:  MOV R7,ALARM4ON_H
            LCALL ADD1
            MOV ALARM4ON_H,A
            CJNE A,#25H,ALKEY4H_E
            MOV ALARM4ON_H,#00H
ALKEY4H_E:  MOV DS1302_ADDR,#0D0H
            MOV DS1302_DATA,ALARM4ON_H
            LCALL WRITE
ALKEY4H_J:  LCALL DISPLAY
            JNB KEY_2,ALKEY4H_J
            AJMP ALKEY4H_C
ALKEY4L_A:  SETB  0EH
ALKEY4L_B:  LCALL DISPLAY
            JNB KEY_1,ALKEY4L_B
ALKEY4L_C:  LCALL DISPLAY
            JNB KEY_1,OKEY1OH_A
            JNB KEY_2,ALKEY4L_D
            AJMP ALKEY4L_C
ALKEY4L_D:  MOV R7,ALARM4ON_L
            LCALL ADD1
            MOV ALARM4ON_L,A
            CJNE A,#60H,ALKEY4L_E
            MOV ALARM4ON_L,#00H
ALKEY4L_E:  MOV DS1302_ADDR,#0D2H
            MOV DS1302_DATA,ALARM4ON_L
            LCALL WRITE
ALKEY4L_J:  LCALL DISPLAY
            JNB KEY_2,ALKEY4L_J
            AJMP ALKEY4L_C

OKEY1OH_A:  SETB  0FH                ;OUT 1 ON
OKEY1OH_B:  MOV DIS_4A,#03H
            LCALL DISPLAY
            JNB KEY_1,OKEY1OH_B
OKEY1OH_C:  LCALL DISPLAY
            JNB KEY_1,OKEY1OL_A
            JNB KEY_2,OKEY1OH_D
            AJMP OKEY1OH_C
OKEY1OH_D:  MOV R7,OUT1ON_H
            LCALL ADD1
            MOV OUT1ON_H,A
            CJNE A,#25H,OKEY1OH_E
            MOV OUT1ON_H,#00H
OKEY1OH_E:  MOV DS1302_ADDR,#0D4H
            MOV DS1302_DATA,OUT1ON_H
            LCALL WRITE
OKEY1OH_J:  LCALL DISPLAY
            JNB KEY_2,OKEY1OH_J
            AJMP OKEY1OH_C
OKEY1OL_A:  SETB  10H
OKEY1OL_B:  LCALL DISPLAY
            JNB KEY_1,OKEY1OL_B
OKEY1OL_C:  LCALL DISPLAY
            JNB KEY_1,OKEY1FH_A
            JNB KEY_2,OKEY1OL_D
            LJMP OKEY1OL_C
OKEY1OL_D:  MOV R7,OUT1ON_L
            LCALL ADD1
            MOV OUT1ON_L,A
            CJNE A,#60H,OKEY1OL_E
            MOV OUT1ON_L,#00H
OKEY1OL_E:  MOV DS1302_ADDR,#0D6H
            MOV DS1302_DATA,OUT1ON_L
            LCALL WRITE
OKEY1OL_J:  LCALL DISPLAY
            JNB KEY_2,OKEY1OL_J
            LJMP OKEY1OL_C

OKEY1FH_A:  SETB  11H                ;OUT 1 OFF
OKEY1FH_B:  LCALL DISPLAY
            JNB KEY_1,OKEY1FH_B
OKEY1FH_C:  LCALL DISPLAY
            JNB KEY_1,OKEY1FL_A
            JNB KEY_2,OKEY1FH_D
            AJMP OKEY1FH_C
OKEY1FH_D:  MOV R7,OUT1OFF_H
            LCALL ADD1
            MOV OUT1OFF_H,A
            CJNE A,#24H,OKEY1FH_E
            MOV OUT1OFF_H,#00H
OKEY1FH_E:  MOV DS1302_ADDR,#0D8H
            MOV DS1302_DATA,OUT1OFF_H
            LCALL WRITE
OKEY1FH_J:  LCALL DISPLAY
            JNB KEY_2,OKEY1FH_J
            LJMP OKEY1FH_C
OKEY1FL_A:  SETB  12H
OKEY1FL_B:  LCALL DISPLAY
            JNB KEY_1,OKEY1FL_B
OKEY1FL_C:  LCALL DISPLAY
            JNB KEY_1,OKEY2OH_A
            JNB KEY_2,OKEY1FL_D
            AJMP OKEY1FL_C
OKEY1FL_D:  MOV R7,OUT1OFF_L
            LCALL ADD1
            MOV OUT1OFF_L,A
            CJNE A,#60H,OKEY1FL_E
            MOV OUT1OFF_L,#00H
OKEY1FL_E:  MOV DS1302_ADDR,#0DAH
            MOV DS1302_DATA,OUT1OFF_L
            LCALL WRITE
OKEY1FL_J:  LCALL DISPLAY
            JNB KEY_2,OKEY1FL_J
            AJMP OKEY1FL_C

OKEY2OH_A:  SETB  13H                ;OUT 2 ON
OKEY2OH_B:  LCALL DISPLAY
            JNB KEY_1,OKEY2OH_B
OKEY2OH_C:  LCALL DISPLAY
            JNB KEY_1,OKEY2OL_A
            JNB KEY_2,OKEY2OH_D
            AJMP OKEY2OH_C
OKEY2OH_D:  MOV R7,OUT2ON_H
            LCALL ADD1
            MOV OUT2ON_H,A
            CJNE A,#25H,OKEY2OH_E
            MOV OUT2ON_H,#00H
OKEY2OH_E:  MOV DS1302_ADDR,#0DCH
            MOV DS1302_DATA,OUT2ON_H
            LCALL WRITE
OKEY2OH_J:  LCALL DISPLAY
            JNB KEY_2,OKEY2OH_J
            AJMP OKEY2OH_C
OKEY2OL_A:  SETB  14H
OKEY2OL_B:  LCALL DISPLAY
            JNB KEY_1,OKEY2OL_B
OKEY2OL_C:  LCALL DISPLAY
            JNB KEY_1,OKEY2FH_A
            JNB KEY_2,OKEY2OL_D
            AJMP OKEY2OL_C
OKEY2OL_D:  MOV R7,OUT2ON_L
            LCALL ADD1
            MOV OUT2ON_L,A
            CJNE A,#60H,OKEY2OL_E
            MOV OUT2ON_L,#00H
OKEY2OL_E:  MOV DS1302_ADDR,#0DEH
            MOV DS1302_DATA,OUT2ON_L
            LCALL WRITE
OKEY2OL_J:  LCALL DISPLAY
            JNB KEY_2,OKEY2OL_J
            AJMP OKEY2OL_C

OKEY2FH_A:  SETB  15H                ;OUT 2 OFF
OKEY2FH_B:  LCALL DISPLAY
            JNB KEY_1,OKEY2FH_B
OKEY2FH_C:  LCALL DISPLAY
            JNB KEY_1,OKEY2FL_A
            JNB KEY_2,OKEY2FH_D
            AJMP OKEY2FH_C
OKEY2FH_D:  MOV R7,OUT2OFF_H
            LCALL ADD1
            MOV OUT2OFF_H,A
            CJNE A,#24H,OKEY2FH_E
            MOV OUT2OFF_H,#00H
OKEY2FH_E:  MOV DS1302_ADDR,#0E0H
            MOV DS1302_DATA,OUT2OFF_H
            LCALL WRITE
OKEY2FH_J:  LCALL DISPLAY
            JNB KEY_2,OKEY2FH_J
            AJMP OKEY2FH_C
OKEY2FL_A:  SETB  16H
OKEY2FL_B:  LCALL DISPLAY
            JNB KEY_1,OKEY2FL_B
OKEY2FL_C:  LCALL DISPLAY
            JNB KEY_1,OKEY3OH_A
            JNB KEY_2,OKEY2FL_D
            LJMP OKEY2FL_C
OKEY2FL_D:  MOV R7,OUT2OFF_L
            LCALL ADD1
            MOV OUT2OFF_L,A
            CJNE A,#60H,OKEY2FL_E
            MOV OUT2OFF_L,#00H
OKEY2FL_E:  MOV DS1302_ADDR,#0E2H
            MOV DS1302_DATA,OUT2OFF_L
            LCALL WRITE
OKEY2FL_J:  LCALL DISPLAY
            JNB KEY_2,OKEY2FL_J
            LJMP OKEY2FL_C

OKEY3OH_A:  SETB  17H                ;OUT 3 ON
OKEY3OH_B:  MOV DIS_4A,#04H
            LCALL DISPLAY
            JNB KEY_1,OKEY3OH_B
OKEY3OH_C:  LCALL DISPLAY
            JNB KEY_1,OKEY3OL_A
            JNB KEY_2,OKEY3OH_D
            LJMP OKEY3OH_C
OKEY3OH_D:  MOV R7,OUT3ON_H
            LCALL ADD1
            MOV OUT3ON_H,A
            CJNE A,#25H,OKEY3OH_E

⌨️ 快捷键说明

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