📄 wannieli.asm
字号:
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 + -