📄 1602万年历w.txt
字号:
RS BIT P2.0
RW BIT P2.1
EP BIT P2.2
PRE BIT P1.4
ADJ BIT P1.5
SPK BIT P3.7
YEAR DATA 18H
MONTH DATA 19H
DATE DATA 1AH
WEEK DATA 1BH
HOUR DATA 1CH
MIN DATA 1DH
SEC DATA 1EH
SEC100 DATA 1FH
HOUR_ARM DATA 20H
MIN_ARM DATA 21H
SEC_ARM DATA 22H
STATE DATA 23H
ALARM BIT STATE.0
LEAP BIT STATE.1
KEY_S DATA 24H
KEY_V DATA 25H
DIS_BUF_U0 DATA 26H
DIS_BUF_U1 DATA 27H
DIS_BUF_U2 DATA 28H
DIS_BUF_U3 DATA 29H
DIS_BUF_U4 DATA 2AH
DIS_BUF_U5 DATA 2BH
DIS_BUF_U6 DATA 2CH
DIS_BUF_U7 DATA 2DH
DIS_BUF_U8 DATA 2EH
DIS_BUF_U9 DATA 2FH
DIS_BUF_U10 DATA 30H
DIS_BUF_U11 DATA 31H
DIS_BUF_U12 DATA 32H
DIS_BUF_U13 DATA 33H
DIS_BUF_U14 DATA 34H
DIS_BUF_U15 DATA 35H
DIS_BUF_L0 DATA 36H
DIS_BUF_L1 DATA 37H
DIS_BUF_L2 DATA 38H
DIS_BUF_L3 DATA 39H
DIS_BUF_L4 DATA 3AH
DIS_BUF_L5 DATA 3BH
DIS_BUF_L6 DATA 3CH
DIS_BUF_L7 DATA 3DH
DIS_BUF_L8 DATA 3EH
DIS_BUF_L9 DATA 3FH
DIS_BUF_L10 DATA 40H
DIS_BUF_L11 DATA 41H
DIS_BUF_L12 DATA 42H
DIS_BUF_L13 DATA 43H
DIS_BUF_L14 DATA 44H
DIS_BUF_L15 DATA 45H
FLAG DATA 46H
DIS_H DATA 47H
DIS_M DATA 48H
DIS_S DATA 49H
DIS_S0 DATA 4AH
DIS_S1 DATA 4BH
DIS_S2 DATA 4CH
DIS_S3 DATA 4DH
DIS_S4 DATA 4EH
DIS_S5 DATA 4FH
ORG 0000H
LJMP START
ORG 000BH
LJMP TIMER0
ORG 001BH
LJMP TIMER1
ORG 0100H
START:
MOV SP,#60H
MOV R0,#18H
MOV A,#00H
MEM_INI:
MOV @R0,A
INC R0
CJNE R0,#5FH,MEM_INI
LCALL DELAY_5ms
MOV R0,#38H
LCALL LCD_WCMD
LCALL DELAY_5ms
MOV R0,#0CH
LCALL LCD_WCMD
LCALL DELAY_5ms
MOV R0,#06H
LCALL LCD_WCMD
LCALL DELAY_5ms
MOV R0,#01H
LCALL LCD_WCMD
LCALL DELAY_5ms
MOV R0,#40H
LCALL lcd_wcmd
MOV R0,#1FH
LCALL lcd_wdat
MOV R0,#41H
LCALL lcd_wcmd
MOV R0,#11H
LCALL lcd_wdat
MOV R0,#42H
LCALL lcd_wcmd
MOV R0,#15H
LCALL lcd_wdat
MOV R0,#43H
LCALL lcd_wcmd
MOV R0,#11H
LCALL lcd_wdat
MOV R0,#44H
LCALL lcd_wcmd
MOV R0,#1FH
LCALL lcd_wdat
MOV R0,#45H
LCALL lcd_wcmd
MOV R0,#0AH
LCALL lcd_wdat
MOV R0,#46H
LCALL lcd_wcmd
MOV R0,#1FH
LCALL lcd_wdat
MOV R0,#47H
LCALL lcd_wcmd
MOV R0,#00H
LCALL lcd_wdat
MOV R0,#48H
CALL lcd_wcmd
MOV R0,#01H
LCALL lcd_wdat
MOV R0,#49H
LCALL lcd_wcmd
MOV R0,#1BH
LCALL lcd_wdat
MOV R0,#4AH
LCALL lcd_wcmd
MOV R0,#1DH
LCALL lcd_wdat
MOV R0,#4BH
LCALL lcd_wcmd
MOV R0,#19H
LCALL lcd_wdat
MOV R0,#4CH
LCALL lcd_wcmd
MOV R0,#1DH
LCALL lcd_wdat
MOV R0,#4DH
LCALL lcd_wcmd
MOV R0,#1BH
LCALL lcd_wdat
MOV R0,#4EH
LCALL lcd_wcmd
MOV R0,#01H
LCALL lcd_wdat
MOV R0,#4FH
LCALL lcd_wcmd
MOV R0,#00H
LCALL lcd_wdat
MOV YEAR,#5
MOV MONTH,#1
MOV DATE,#1
MOV DIS_S0,#35H
MOV DIS_S1,#31H
MOV DIS_S2,#43H
MOV DIS_S3,#35H
MOV DIS_S4,#31H
MOV DIS_S5,#20H
MOV R1,#00H
LCALL WEEK_PRO
LCALL UPDATE_BUF
LCALL DISPLAY_PRO
MAIN:
MOV IE,#8AH
MOV TMOD,#11H
MOV TH0,#0DCH
MOV TL0,#00H
MOV TH1,#0FFH
MOV TL1,#00H
SETB ALARM
CLR TR1
SETB TR0
MOV KEY_V,#03H
MAIN_1:
LCALL KEY_SCAN
MOV A,KEY_S
XRL A,KEY_V
JZ MAIN_1
LCALL DELAY_5ms
LCALL DELAY_5ms
LCALL KEY_SCAN
MOV A,KEY_S
XRL A,KEY_V
JZ MAIN_1
MOV KEY_V,KEY_S
MOV A,KEY_V
XRL A,#01H
JNZ MAIN_2
CLR TR0
MOV IE,#00H
LCALL KEY_PRE_PRO
SJMP MAIN_1
MAIN_2:
MOV A,KEY_V
XRL A,#02H
JNZ MAIN_1
LCALL KEY_ADJ_PRO
SJMP MAIN_1
KEY_SCAN: CLR A
MOV P1,#0FFH
MOV C,PRE
MOV ACC.1,C
MOV C,ADJ
MOV ACC.0,C
MOV KEY_S,A
RET
KEY_PRE_PRO:
INC FLAG
MOV R4,FLAG
CJNE R4,#1,KEY_PRE_1
MOV R0,#0EH
LCALL LCD_WCMD
MOV DIS_S0,#61H
MOV DIS_S1,#6cH
MOV DIS_S2,#61H
MOV DIS_S3,#72H
MOV DIS_S4,#6dH
MOV DIS_S5,#3aH
MOV R1,#50H
MOV DIS_H,HOUR_ARM
MOV DIS_M,MIN_ARM
MOV DIS_S,SEC_ARM
LCALL UPDATE_BUF
LCALL DISPLAY_PRO
MOV R0,#47H
LCALL LCD_POS
JMP KEY_PRE_E
KEY_PRE_1:
CJNE R4,#2,KEY_PRE_2
MOV R0,#49H
LCALL LCD_POS
JMP KEY_PRE_E
KEY_PRE_2:
CJNE R4,#3,KEY_PRE_3
MOV R0,#4CH
LCALL LCD_POS
JMP KEY_PRE_E
KEY_PRE_3:
CJNE R4,#4,KEY_PRE_4
MOV R0,#4FH
LCALL LCD_POS
JMP KEY_PRE_E
KEY_PRE_4:
CJNE R4,#5,KEY_PRE_5
MOV DIS_S0,#74H
MOV DIS_S1,#69H
MOV DIS_S2,#6dH
MOV DIS_S3,#65H
MOV DIS_S4,#3aH
MOV DIS_S5,#20H
MOV R1,#50H
MOV DIS_H,HOUR
MOV DIS_M,MIN
MOV DIS_S,SEC
LCALL UPDATE_BUF
LCALL DISPLAY_PRO
MOV R0,#05H
LCALL LCD_POS
JMP KEY_PRE_E
KEY_PRE_5:
CJNE R4,#6, KEY_PRE_6
MOV R0,#08H
LCALL LCD_POS
KEY_PRE_6:
CJNE R4,#7,KEY_PRE_7
MOV R0,#0bH
LCALL LCD_POS
KEY_PRE_7:
CJNE R4,#8,KEY_PRE_8
MOV R0,#49H
LCALL LCD_POS
JMP KEY_PRE_E
KEY_PRE_8:
CJNE R4,#9,KEY_PRE_9
MOV R0,#4cH
LCALL LCD_POS
JMP KEY_PRE_E
KEY_PRE_9:
CJNE R4,#10,KEY_PRE_10
MOV R0,#4fH
LCALL LCD_POS
JMP KEY_PRE_E
KEY_PRE_10:
MOV FLAG,#0
MOV R0,#0CH
LCALL LCD_WCMD
MOV R0,#01H
LCALL LCD_WCMD
MOV IE,#8AH
SETB TR0
KEY_PRE_E:
RET
KEY_ADJ_PRO:
MOV R5,FLAG
CJNE R5,#0,KEY_ADJ_0
MOV C,TR1
JNC KEY_ADJ_A
CLR TR1
KEY_ADJ_A:
JMP KEY_ADJ_E
KEY_ADJ_0:
CJNE R5,#1,KEY_ADJ_1
CPL ALARM
LCALL UPDATE_BUF
LCALL DISPLAY_PRO
MOV R0,#47H
LCALL LCD_POS
JMP KEY_ADJ_E
KEY_ADJ_1:
CJNE R5,#2,KEY_ADJ_2
INC HOUR_ARM
MOV A,HOUR_ARM
CJNE A,#24,KEY_ADJ_1_1
MOV HOUR_ARM,#0
KEY_ADJ_1_1:
MOV DIS_H,HOUR_ARM
LCALL UPDATE_BUF
LCALL DISPLAY_PRO
MOV R0,#49H
LCALL LCD_POS
JMP KEY_ADJ_E
KEY_ADJ_2:
CJNE R5,#3,KEY_ADJ_3
INC MIN_ARM
MOV A,MIN_ARM
CJNE A,#60,KEY_ADJ_2_1
MOV MIN_ARM,#0
KEY_ADJ_2_1:
MOV DIS_M,MIN_ARM
LCALL UPDATE_BUF
LCALL DISPLAY_PRO
MOV R0,#4CH
LCALL LCD_POS
JMP KEY_ADJ_E
KEY_ADJ_3:
CJNE R5,#4,KEY_ADJ_4
INC SEC_ARM
MOV A,SEC_ARM
CJNE A,#60,KEY_ADJ_3_1
MOV SEC_ARM,#0
KEY_ADJ_3_1:
MOV DIS_S,SEC_ARM
LCALL UPDATE_BUF
LCALL DISPLAY_PRO
MOV R0,#4FH
LCALL LCD_POS
JMP KEY_ADJ_E
KEY_ADJ_4:
CJNE R5,#5,KEY_ADJ_5
INC YEAR
MOV A,YEAR
CJNE A,#100,KEY_ADJ_4_1
MOV YEAR,#0
KEY_ADJ_4_1:
LCALL WEEK_PRO
LCALL UPDATE_BUF
LCALL DISPLAY_PRO
MOV R0,#05H
LCALL LCD_POS
JMP KEY_ADJ_E
KEY_ADJ_5:
CJNE R5,#6,KEY_ADJ_6
INC MONTH
MOV A,MONTH
CJNE A,#13,KEY_ADJ_5_1
MOV MONTH,#1
KEY_ADJ_5_1:
LCALL WEEK_PRO
LCALL UPDATE_BUF
LCALL DISPLAY_PRO
MOV R0,#08H
LCALL LCD_POS
JMP KEY_ADJ_E
KEY_ADJ_6:
CJNE R5,#7,KEY_ADJ_7
INC DATE
MOV A,MONTH
XRL A,#2
JNZ KEY_ADJ_6_2
MOV A,DATE
MOV C,LEAP
JC KEY_ADJ_6_1
XRL A,#29
JNZ KEY_ADJ_6_5
JMP KEY_ADJ_6_4
KEY_ADJ_6_1:
XRL A,#30
JNZ KEY_ADJ_6_5
JMP KEY_ADJ_6_4
KEY_ADJ_6_2:
MOV A ,MONTH
XRL A,#4
JZ KEY_ADJ_6_3
MOV A,MONTH
XRL A,#6
JZ KEY_ADJ_6_3
MOV A,MONTH
XRL A,#9
JZ KEY_ADJ_6_3
MOV A,MONTH
XRL A,#11
JZ KEY_ADJ_6_3
MOV A,DATE
XRL A,#32
JNZ KEY_ADJ_6_5
JMP KEY_ADJ_6_4
KEY_ADJ_6_3:
MOV A,DATE
XRL A,#31
JNZ KEY_ADJ_6_5
KEY_ADJ_6_4:
MOV DATE,#1
KEY_ADJ_6_5:
LCALL WEEK_PRO
LCALL UPDATE_BUF
LCALL DISPLAY_PRO
MOV R0,#0BH
LCALL LCD_POS
JMP KEY_ADJ_E
KEY_ADJ_7:
CJNE R5,#8,KEY_ADJ_8
INC HOUR
MOV A,HOUR
CJNE A,#24,KEY_ADJ_7_1
MOV HOUR,#0
KEY_ADJ_7_1:
MOV DIS_H,HOUR
LCALL UPDATE_BUF
LCALL DISPLAY_PRO
MOV R0,#49H
LCALL LCD_POS
JMP KEY_ADJ_E
KEY_ADJ_8:
CJNE R5,#9,KEY_ADJ_9
INC MIN
MOV A,MIN
CJNE A,#60,KEY_ADJ_8_1
MOV MIN,#0
KEY_ADJ_8_1:
MOV DIS_M,MIN
LCALL UPDATE_BUF
LCALL DISPLAY_PRO
MOV R0,#4CH
LCALL LCD_POS
JMP KEY_ADJ_E
KEY_ADJ_9:
CJNE R5,#10,KEY_ADJ_E
INC SEC
MOV A,SEC
CJNE A,#60,KEY_ADJ_9_1
MOV SEC,#0
KEY_ADJ_9_1:
MOV DIS_S,SEC
LCALL UPDATE_BUF
LCALL DISPLAY_PRO
MOV R0,#4FH
LCALL LCD_POS
JMP KEY_ADJ_E
KEY_ADJ_E:
RET
TIMER0:
MOV TH0,#0DCH
MOV TL0,#00H
INC SEC100
MOV A,SEC100
CJNE A,#100,TIMER0_E
MOV SEC100,#0
LCALL TIME_PRO
MOV A,SEC
ANL A,#01
JZ TIMER0_1
MOV DIS_S0,#20H
MOV DIS_S1,#20H
MOV DIS_S2,#20H
MOV DIS_S3,#20H
MOV DIS_S4,#20H
MOV DIS_S5,#20H
SJMP TIMER0_2
TIMER0_1:
MOV DIS_S0,#35H
MOV DIS_S1,#31H
MOV DIS_S2,#43H
MOV DIS_S3,#35H
MOV DIS_S4,#31H
MOV DIS_S5,#20H
TIMER0_2:
MOV R1,#00H
MOV DIS_H,HOUR
MOV DIS_M,MIN
MOV DIS_S,SEC
LCALL UPDATE_BUF
LCALL DISPLAY_PRO
TIMER0_E: RETI
TIMER1:
MOV TH1,#0FFH
MOV TL1,#00H
CPL SPK
RETI
TIME_PRO: INC SEC
MOV A,SEC
CJNE A,#60,TIME_PRO_A
MOV SEC,#0
INC MIN
MOV A,MIN
CJNE A,#60,TIME_PRO_A
MOV MIN,#0
INC HOUR
MOV A,HOUR
CJNE A,#24,TIME_PRO_A
MOV HOUR,#0
INC DATE
MOV A,MONTH
XRL A,#2
JNZ TIME_PRO_D2
MOV A,DATE ;
MOV C,LEAP
JC TIME_PRO_D1
XRL A,#29
JNZ TIME_PRO_W
SJMP TIME_PRO_M
TIME_PRO_D1:
XRL A,#30
JNZ TIME_PRO_W
SJMP TIME_PRO_M
TIME_PRO_D2:
MOV A,MONTH
XRL A,#4
JZ TIME_PRO_D3
MOV A,MONTH
XRL A,#6
JZ TIME_PRO_D3
MOV A,MONTH
XRL A,#9
JZ TIME_PRO_D3
MOV A,MONTH
XRL A,#11
JZ TIME_PRO_D3
MOV A,DATE
XRL A,#32
JNZ TIME_PRO_W
SJMP TIME_PRO_M
TIME_PRO_D3:MOV A,DATE
XRL A,#31
JNZ TIME_PRO_W
TIME_PRO_M:
MOV DATE,#1
INC MONTH
MOV A,MONTH
CJNE A,#13,TIME_PRO_W
MOV MONTH,#1
INC YEAR
MOV A,YEAR
CJNE A,#100,TIME_PRO_W
MOV YEAR,#0
TIME_PRO_W:
LCALL WEEK_PRO
TIME_PRO_A:
JNB ALARM,TIME_PRO_E
MOV A,SEC
CJNE A,SEC_ARM,TIME_PRO_E
MOV A,MIN
CJNE A,MIN_ARM,TIME_PRO_E
MOV A,HOUR
CJNE A,HOUR_ARM,TIME_PRO_E
SETB TR1
TIME_PRO_E:
RET
WEEK_PRO:
MOV A,MONTH
XRL A,#1
JZ WEEK_PRO_1
MOV A,MONTH
XRL A,#2
JZ WEEK_PRO_1
SJMP WEEK_PRO_2
WEEK_PRO_1:
LCALL LEAP_PRO
MOV C,LEAP
JNC WEEK_PRO_2
MOV R3,#5
SJMP WEEK_PRO_3
WEEK_PRO_2:
MOV R3,#6
WEEK_PRO_3:
MOV A,YEAR
MOV B,#4
DIV AB
ADD A,R3
MOV R3,A
MOV A,YEAR
ADD A,R3
MOV R3,A
MOV DPTR,#MONTH_TAB
MOV A,MONTH
MOVC A,@A+DPTR
ADD A,R3
MOV R3,A
MOV A,DATE
ADD A, R3
MOV B,#7
DIV AB
MOV WEEK,B
RET
LEAP_PRO:
MOV A,YEAR
MOV B,#4
DIV AB
MOV A,B
JZ LEAP_PRO_1
CLR LEAP
LJMP LEAP_PRO_E
LEAP_PRO_1:
SETB LEAP
LEAP_PRO_E:
RET
UPDATE_BUF:
MOV DIS_BUF_U0,R1
MOV DIS_BUF_U1,#20H
MOV DIS_BUF_U2,#32H
MOV DIS_BUF_U3,#30H
MOV A,YEAR
MOV B,#10
DIV AB
ADD A,#48
MOV DIS_BUF_U4,A
MOV A,B
ADD A,#48
MOV DIS_BUF_U5,A
MOV DIS_BUF_U6,#2DH
MOV B,#10
DIV AB
ADD A,#48
MOV DIS_BUF_U7,A
MOV A,B
ADD A,#48
MOV DIS_BUF_U8,A
MOV DIS_BUF_U9,#2DH
MOV B,#10
DIV AB
ADD A,#48
MOV DIS_BUF_U10,A
MOV A,B
ADD A,#48
MOV DIS_BUF_U11,A
MOV DIS_BUF_U12,#20H
MOV B,WEEK
MOV A,#3
MUL AB
MOV B,A
MOV DPTR,#WEEK_TAB
MOVC A,@A+DPTR
MOV DIS_BUF_U13,A
MOV A,B
INC A
MOVC A,@A+DPTR
MOV DIS_BUF_U14,A
MOV A,B
INC A
INC A
MOVC A,@A+DPTR
MOV DIS_BUF_U15,A
MOV A,DIS_S0
MOV DIS_BUF_L0,A
MOV A,DIS_S1
MOV DIS_BUF_L1,A
MOV A,DIS_S2
MOV DIS_BUF_L2,A
MOV A,DIS_S3
MOV DIS_BUF_L3,A
MOV A,DIS_S4
MOV DIS_BUF_L4,A
MOV A,DIS_S5
MOV DIS_BUF_L5,A
MOV DIS_BUF_L6,#20H
MOV C,ALARM
JC UPDATE_BUF_1
MOV DIS_BUF_L7,#20H
SJMP UPDATE_BUF_2
UPDATE_BUF_1:
MOV DIS_BUF_L7,#01H
UPDATE_BUF_2:
MOV A,DIS_H
MOV B,#10
DIV AB
ADD A,#48
MOV DIS_BUF_L8,A
MOV A,B
ADD A,#48
MOV DIS_BUF_L9,A
MOV DIS_BUF_L10,#3AH
MOV A,DIS_M
MOV B,#10
DIV AB
ADD A,#48
MOV DIS_BUF_L11,A
MOV A,B
ADD A,#48
MOV DIS_BUF_L12,A
MOV DIS_BUF_L13,#3AH
MOV A,DIS_S
MOV B,#10
DIV AB
ADD A,#48
MOV DIS_BUF_L14,A
MOV A,B
ADD A,#48
MOV DIS_BUF_L15,A
RET
DISPLAY_PRO:
MOV R0,#00H
LCALL LCD_POS
MOV R0,DIS_BUF_U0
LCALL LCD_WDAT
MOV R0,DIS_BUF_U1
LCALL LCD_WDAT
MOV R0,DIS_BUF_U2
LCALL LCD_WDAT
MOV R0,DIS_BUF_U3
LCALL LCD_WDAT
MOV R0,DIS_BUF_U4
LCALL LCD_WDAT
MOV R0,DIS_BUF_U5
LCALL LCD_WDAT
MOV R0,DIS_BUF_U6
LCALL LCD_WDAT
MOV R0,DIS_BUF_U7
LCALL LCD_WDAT
MOV R0,DIS_BUF_U8
LCALL LCD_WDAT
MOV R0,DIS_BUF_U9
LCALL LCD_WDAT
MOV R0,DIS_BUF_U10
LCALL LCD_WDAT
MOV R0,DIS_BUF_U11
LCALL LCD_WDAT
MOV R0,DIS_BUF_U12
LCALL LCD_WDAT
MOV R0,DIS_BUF_U13
LCALL LCD_WDAT
MOV R0,DIS_BUF_U14
LCALL LCD_WDAT
MOV R0,DIS_BUF_U15
LCALL LCD_WDAT
MOV R0,#40H
LCALL LCD_POS
MOV R0,DIS_BUF_L0
LCALL LCD_WDAT
MOV R0,DIS_BUF_L1
LCALL LCD_WDAT
MOV R0,DIS_BUF_L2
LCALL LCD_WDAT
MOV R0,DIS_BUF_L3
LCALL LCD_WDAT
MOV R0,DIS_BUF_L4
LCALL LCD_WDAT
MOV R0,DIS_BUF_L5
LCALL LCD_WDAT
MOV R0,DIS_BUF_L6
LCALL LCD_WDAT
MOV R0,DIS_BUF_L7
LCALL LCD_WDAT
MOV R0,DIS_BUF_L8
LCALL LCD_WDAT
MOV R0,DIS_BUF_L9
LCALL LCD_WDAT
MOV R0,DIS_BUF_L10
LCALL LCD_WDAT
MOV R0,DIS_BUF_L11
LCALL LCD_WDAT
MOV R0,DIS_BUF_L12
LCALL LCD_WDAT
MOV R0,DIS_BUF_L13
LCALL LCD_WDAT
MOV R0,DIS_BUF_L14
LCALL LCD_WDAT
MOV R0,DIS_BUF_L15
LCALL LCD_WDAT
RET
BF_TEST:
PUSH ACC
CLR RS
SETB RW
SETB EP
NOP
NOP
NOP
NOP
MOV P0,#0FFH
WT_BF:
NOP
JB P0.7,WT_BF
CLR EP
POP ACC
RET
LCD_WCMD:
LCALL BF_TEST
CLR RS
CLR RW
CLR EP
NOP
NOP
MOV P0,R0
NOP
NOP
NOP
NOP
SETB EP
NOP
NOP
NOP
NOP
CLR EP
RET
LCD_WDAT:
LCALL BF_TEST
SETB RS
CLR RW
CLR EP
NOP
NOP
MOV P0,R0
NOP
NOP
NOP
NOP
SETB EP
NOP
NOP
NOP
NOP
CLR EP
RET
LCD_POS:
MOV A,R0
ORL A,#80H
MOV R0,A
LCALL LCD_WCMD
RET
DELAY_5ms:
MOV R7,#25
DELAY1:
MOV R6,#100
DELAY2:
DJNZ R6,DELAY2
DJNZ R7,DELAY1
RET
MONTH_TAB: DB 0
DB 0
DB 3
DB 3
DB 6
DB 1
DB 4
DB 6
DB 2
DB 5
DB 0
DB 3
DB 5
WEEK_TAB:
DB 'S','U','N'
DB 'M','O','N'
DB 'T','U','E'
DB 'W','E','D'
DB 'T','H','U'
DB 'F','R','I'
DB 'S','A','T'
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -