📄 m03.asm
字号:
XRL A,#90H ;左
JZ KEY_ZUOJ
MOV A,KEY_VALUE
XRL A,#93H ;右
JZ KEY_YOUJ
MOV A,KEY_VALUE
XRL A,#91H ;上
JZ KEY_SHANGJ
MOV A,KEY_VALUE
XRL A,#92H ;下
JZ KEY_XIAJ
MOV A,KEY_VALUE
XRL A,#87H
JZ KEY_XIANSJ ;显示
MOV A,KEY_VALUE
XRL A,#83H
JZ KEY_CAIDJ ;菜单
MOV A,KEY_VALUE
XRL A,#8BH ;确认
JZ KEY_QUERJ
MOV A,KEY_VALUE
XRL A,#8FH ;设置时间
JZ KEY_SHEZIJ
DO_KEY1:
RET
;--------
KEY_ZHI1:
MOV VALUE,#01H
SJMP KEY_NUM
KEY_ZHI2:
MOV VALUE,#02H
SJMP KEY_NUM
KEY_ZHI3:
MOV VALUE,#03H
SJMP KEY_NUM
KEY_ZHI4:
MOV VALUE,#04H
SJMP KEY_NUM
KEY_ZHI5:
MOV VALUE,#05H
SJMP KEY_NUM
KEY_ZHI6:
MOV VALUE,#06H
SJMP KEY_NUM
KEY_ZHI7:
MOV VALUE,#07H
SJMP KEY_NUM
KEY_ZHI8:
MOV VALUE,#08H
SJMP KEY_NUM
KEY_ZHI9:
MOV VALUE,#09H
SJMP KEY_NUM
KEY_ZHI0:
MOV VALUE,#00H
KEY_NUM:
CLR C
MOV A,STEP_DISP
SUBB A,#05H
JC KEY_NUM1
SETB 1AH
LCALL IN_NUM
LCALL DISP_VALUE
MOV A,PAME_PT
XRL A,ULIMIT
JZ KEY_NUM1
INC PAME_PT
LCALL DISP_CURSOR
KEY_NUM1:
RET
;--------------------
KEY_ZHENG:
MOV A,STEP_DISP
CJNE A,#04H,KEY_ZHENG1
MOV A,PAME_PT
JNZ KEY_ZHENG1
SETB 1AH
CLR 1BH
MOV ADDS_PL,#09H
MOV ADDS_PH,#01H
MOV A,#2CH
LCALL DISP_BYTE
INC PAME_PT
LCALL DISP_CURSOR
MOV STEP_DISP,#05H
KEY_ZHENG1:
RET
KEY_FU:
MOV A,STEP_DISP
CJNE A,#04H,KEY_FU1
MOV A,PAME_PT
JNZ KEY_FU1
SETB 1AH
SETB 1BH
MOV ADDS_PL,#09H
MOV ADDS_PH,#01H
MOV A,#16H
LCALL DISP_BYTE
INC PAME_PT
LCALL DISP_CURSOR
MOV STEP_DISP,#05H
KEY_FU1:
RET
;--------------------
KEY_ZUO:
MOV A,STEP_DISP
CLR C
SUBB A,#04H
JC KEY_ZUO1
MOV A,PAME_PT
JZ KEY_ZUO1
DEC PAME_PT
LCALL DISP_CURSOR
MOV A,PAME_PT ;判M03的4、5转换
JNZ KEY_ZUO1
MOV A,STEP_DISP
XRL A,#05H
JNZ KEY_ZUO1
MOV STEP_DISP,#04H
KEY_ZUO1:
RET
KEY_YOU:
MOV A,STEP_DISP
CLR C
SUBB A,#04H
JC KEY_YOU1
MOV A,PAME_PT
XRL A,ULIMIT
JZ KEY_YOU1
INC PAME_PT
LCALL DISP_CURSOR
MOV A,STEP_DISP ;判M03的4、5转换
XRL A,#04H
JNZ KEY_YOU1
MOV STEP_DISP,#05H
KEY_YOU1:
RET
;---------------------
KEY_SHANG:
MOV A,STEP_DISP
CJNE A,#01H,KEY_SHANG1
MOV A,GIF_PT
JZ KEY_SHANG1
LCALL CLR_BLINK
DEC GIF_PT
LCALL SET_BLINK
LCALL SET_HOME
RET
KEY_SHANG1:
CJNE A,#06H,KEY_SHANG2
MOV PAME_PT,#00H
LCALL DISP_CURSOR
KEY_SHANG2:
RET
KEY_XIA:
MOV A,STEP_DISP
CJNE A,#01H,KEY_XIA2
LCALL CLR_BLINK
INC GIF_PT
LCALL GET_MID
JNZ KEY_XIA1
DEC GIF_PT
KEY_XIA1:
LCALL SET_BLINK
LCALL SET_HOME
RET
KEY_XIA2:
CJNE A,#06H,KEY_XIA3
MOV PAME_PT,#10
LCALL DISP_CURSOR
KEY_XIA3:
RET
;-------------------
KEY_XIANS:
MOV A,STEP_DISP
JZ KEY_XIANS1
MOV STEP_DISP,#00H
MOV DIS_COM,#88H
LCALL SENDCON ;External CG,OR mode
MOV DIS_COM,#9CH ;TEXT ON GRAPHICS ON CURSOR OFF
LCALL SENDCON
LCALL CLEAR_TXT
LCALL CLEAR_GIF
LCALL DISP_GA
KEY_XIANS1:
RET
;---------------------
KEY_SHEZHI:
MOV STEP_DISP,#09H
MOV DIS_COM,#88H
LCALL SENDCON ;External CG,OR mode
MOV DIS_COM,#0A0H
LCALL SENDCON ;1-Line cursor
MOV DIS_COM,#96H ;TEXT ON GRAPHICS OFF CURSOR ON BLINK OFF
LCALL SENDCON
LCALL CLEAR_TXT
MOV ADDS_PL,#0C0H ;ADDRESS POINTER
MOV ADDS_PH,#00H
MOV DPS,#00H
MOV DPTR,#DIDT_SET
LCALL DISP_STR
MOV ADDS_PL,#0C9H ;ADDRESS POINTER
MOV ADDS_PH,#00H
CLR 19H
MOV COUNT1,#06H
CLR RS0
CLR RS1
MOV R0,#YEARL
MOV R1,#0D0H
KEY_SHEZH1:
MOV A,@R0
LCALL DISP_BYTEB
MOV @R1,BCD1
INC R0
INC R1
INC ADDS_PL
DJNZ COUNT1,KEY_SHEZH1
MOV ULIMIT,#11
MOV PAME_PT,#00H
LCALL DISP_CURSOR
CLR 1AH
RET
;---------------------
KEY_CAID:
MOV A,STEP_DISP
XRL A,#01H
JZ KEY_CAID2
MOV STEP_DISP,#01H
MOV DIS_COM,#8CH
LCALL SENDCON ;External CG,Attribute mode
MOV DIS_COM,#94H ;TEXT ON GRAPHICS OFF CURSOR OFF
LCALL SENDCON
LCALL CLEAR_TXT
LCALL CLEAR_GIF
LCALL DISP_GB
MOV DPS,#00H
MOV DPTR,#DIDT_M03
LCALL DISP_STR
; MOV DPS,#00H
MOV DPTR,#03D0H
MOV A,#00H
MOV COUNT,#30H
KEY_CAID1:
MOVX @DPTR,A
INC DPTR
DJNZ COUNT,KEY_CAID1
MOV HOME_ADDL,#00H
MOV HOME_ADDH,#00H
MOV GIF_PT,#00H
LCALL SET_BLINK
KEY_CAID2:
RET
;------------------------
KEY_QUER:
MOV A,STEP_DISP
CJNE A,#01H,KEY_QUER1
MOV A,GIF_PT
JZ TIAO_M03
LCALL GET_MID
INC DPTR
MOVX A,@DPTR
XRL A,#06H
JZ TIAO_G04J
MOVX A,@DPTR
XRL A,#07H
JZ TIAO_G07J
MOVX A,@DPTR
XRL A,#0AH
JZ TIAO_L02J
MOVX A,@DPTR
XRL A,#0BH
JZ TIAO_M05J
RET
KEY_QUER1:
CJNE A,#04H,KEY_QUER2
LJMP REVISE_M03
KEY_QUER2:
CJNE A,#05H,KEY_QUER3
LJMP REVISE_M03
KEY_QUER3:
CJNE A,#06H,KEY_QUER4
LJMP REVISE_G04
KEY_QUER4:
CJNE A,#07H,KEY_QUER5
LJMP REVISE_G07
KEY_QUER5:
CJNE A,#08H,KEY_QUER6
LJMP REVISE_L02
KEY_QUER6:
CJNE A,#09H,KEY_QUER7
LJMP REVISE_SET
KEY_QUER7:
RET
TIAO_G04J:
LJMP TIAO_G04
TIAO_G07J:
LJMP TIAO_G07
TIAO_L02J:
LJMP TIAO_L02
TIAO_M05J:
LJMP TIAO_M05
TIAO_M03:
MOV STEP_DISP,#04H
MOV DIS_COM,#88H
LCALL SENDCON ;External CG,OR mode
MOV DIS_COM,#0A0H
LCALL SENDCON ;1-Line cursor
MOV DIS_COM,#96H ;TEXT ON GRAPHICS OFF CURSOR ON BLINK OFF
LCALL SENDCON
LCALL CLEAR_TXT
LCALL DISP_GB
MOV DPS,#00H
MOV DPTR,#DIDT_M03
LCALL DISP_STR
MOV ADDS_PL,#00H ;ADDRESS POINTER
MOV ADDS_PH,#01H
; MOV DPS,#00H
MOV DPTR,#DIDT_ZONE
LCALL DISP_STR
MOV A,ZONE
JB ACC.4,TIAO_M031
MOV A,#2CH
LCALL DISP_BYTE
CLR 1BH
SJMP TIAO_M032
TIAO_M031:
MOV A,#16H
LCALL DISP_BYTE
SETB 1BH
TIAO_M032:
MOV A,ZONE
ANL A,#0FH
CLR 19H
LCALL DISP_BYTEB
CLR RS0
CLR RS1
MOV R0,#0D0H
MOV A,BCD1
SWAP A
MOV @R0,A
INC R0
MOV A,BCD1
SWAP A
MOV @R0,A
MOV ULIMIT,#02H
MOV PAME_PT,#00H
LCALL DISP_CURSOR
CLR 1AH
RET
;---
TIAO_G04:
MOV STEP_DISP,#06H
MOV DIS_COM,#88H
LCALL SENDCON ;External CG,OR mode
MOV DIS_COM,#0A0H
LCALL SENDCON ;1-Line cursor
MOV DIS_COM,#96H ;TEXT ON GRAPHICS OFF CURSOR ON BLINK OFF
LCALL SENDCON
LCALL CLEAR_TXT
LCALL DISP_GB
MOV DPS,#00H
MOV DPTR,#DIDT_G04
LCALL DISP_STR
MOV A,ADDS_PL
ANL A,#0E0H
ORL A,#12H
MOV ADDS_PL,A
LCALL GET_MID
CLR 19H
LCALL DISP_BYTEB
MOV ADDS_PL,#00H ;ADDRESS POINTER
MOV ADDS_PH,#01H
MOV DPS,#00H
MOV DPTR,#DIDT_HIGH
LCALL DISP_STR
MOV ADDS_PL,#40H ;ADDRESS POINTER
MOV ADDS_PH,#01H
MOV DPS,#00H
MOV DPTR,#DIDT_RENEW
LCALL DISP_STR
MOV ADDS_PL,#80H ;ADDRESS POINTER
MOV ADDS_PH,#01H
MOV DPS,#00H
MOV DPTR,#DIDT_FIRST
LCALL DISP_STR
LCALL GET_MID
RL A
RL A
ANL A,#7CH
MOV DPL,A
MOV DPH,#00H
MOV DPS,#00H
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV DPH1,A
INC DPTR
MOVX A,@DPTR
MOV DPL1,A
ORL DPL1,#02H
MOV ADDS_PL,#09H ;ADDRESS POINTER
MOV ADDS_PH,#01H
CLR RS0
CLR RS1
MOV R0,#0D0H
MOV DPS,#01H
LCALL DISP_BIN
MOV R0,#0D0H
MOV ADDS_PL,#47H ;ADDRESS POINTER
MOV ADDS_PH,#01H
LCALL DISP_BIN
MOV ADDS_PL,#87H ;ADDRESS POINTER
MOV ADDS_PH,#01H
MOV COUNT1,#04H
CLR 19H
TIAO_G041:
MOVX A,@DPTR
MOV @R0,A
LCALL DISP_BYTEB
MOV A,#3EH
LCALL DISP_BYTE
INC DPTR
INC R0
DJNZ COUNT1,TIAO_G041
MOV ULIMIT,#17
MOV PAME_PT,#00H
LCALL DISP_CURSOR
CLR 1AH
RET
;---
TIAO_G07:
MOV STEP_DISP,#07H
MOV DIS_COM,#88H
LCALL SENDCON ;External CG,OR mode
MOV DIS_COM,#0A0H
LCALL SENDCON ;1-Line cursor
MOV DIS_COM,#96H ;TEXT ON GRAPHICS OFF CURSOR ON BLINK OFF
LCALL SENDCON
LCALL CLEAR_TXT
LCALL DISP_GB
MOV DPS,#00H
MOV DPTR,#DIDT_G07
LCALL DISP_STR
MOV A,ADDS_PL
ANL A,#0E0H
ORL A,#12H
MOV ADDS_PL,A
LCALL GET_MID
CLR 19H
LCALL DISP_BYTEB
MOV ADDS_PL,#00H ;ADDRESS POINTER
MOV ADDS_PH,#01H
MOV DPS,#00H
MOV DPTR,#DIDT_HIGH
LCALL DISP_STR
MOV ADDS_PL,#40H ;ADDRESS POINTER
MOV ADDS_PH,#01H
MOV DPS,#00H
MOV DPTR,#DIDT_RENEW
LCALL DISP_STR
LCALL GET_MID
RL A
RL A
ANL A,#7CH
MOV DPL,A
MOV DPH,#00H
MOV DPS,#00H
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV DPH1,A
INC DPTR
MOVX A,@DPTR
MOV DPL1,A
ORL DPL1,#02H
MOV ADDS_PL,#09H ;ADDRESS POINTER
MOV ADDS_PH,#01H
CLR RS0
CLR RS1
MOV R0,#0D0H
MOV DPS,#01H
LCALL DISP_BIN
MOV ADDS_PL,#47H ;ADDRESS POINTER
MOV ADDS_PH,#01H
LCALL DISP_BIN
MOV ULIMIT,#19
MOV PAME_PT,#00H
LCALL DISP_CURSOR
CLR 1AH
RET
;--------------
TIAO_L02:
MOV STEP_DISP,#08H
MOV DIS_COM,#88H
LCALL SENDCON ;External CG,OR mode
MOV DIS_COM,#0A0H
LCALL SENDCON ;1-Line cursor
MOV DIS_COM,#96H ;TEXT ON GRAPHICS OFF CURSOR ON BLINK OFF
LCALL SENDCON
LCALL CLEAR_TXT
LCALL DISP_GB
MOV DPS,#00H
MOV DPTR,#DIDT_L02
LCALL DISP_STR
TIAO_L020:
MOV A,ADDS_PL
ANL A,#0E0H
ORL A,#12H
MOV ADDS_PL,A
LCALL GET_MID
CLR 19H
LCALL DISP_BYTEB
MOV ADDS_PL,#00H ;ADDRESS POINTER
MOV ADDS_PH,#01H
MOV DPS,#00H
MOV DPTR,#DIDT_IP
LCALL DISP_STR
LCALL GET_MID
RL A
RL A
ANL A,#7CH
MOV DPL,A
MOV DPH,#00H
MOV DPS,#00H
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV DPH1,A
INC DPTR
MOVX A,@DPTR
MOV DPL1,A
ORL DPL1,#02H
MOV ADDS_PL,#03H ;ADDRESS POINTER
MOV ADDS_PH,#01H
MOV DPS,#01H
MOV COUNT1,#04H
CLR RS0
CLR RS1
MOV R0,#0D0H
CLR 1CH
TIAO_L021:
MOVX A,@DPTR
LCALL DISP_BYTED
JB 1CH,TIAO_L022
MOV A,BCD2
SWAP A
ANL A,#0F0H
MOV @R0,A
MOV A,BCD1
SWAP A
XCHD A,@R0
ANL A,#0F0H
INC R0
MOV @R0,A
SETB 1CH
SJMP TIAO_L023
TIAO_L022:
MOV A,BCD2
XCHD A,@R0
INC R0
MOV @R0,BCD1
INC R0
CLR 1CH
TIAO_L023:
INC ADDS_PL
INC DPTR
DJNZ COUNT1,TIAO_L021
MOV ULIMIT,#11
MOV PAME_PT,#00H
LCALL DISP_CURSOR
CLR 1AH
RET
;----------
TIAO_M05:
MOV STEP_DISP,#08H
MOV DIS_COM,#88H
LCALL SENDCON ;External CG,OR mode
MOV DIS_COM,#0A0H
LCALL SENDCON ;1-Line cursor
MOV DIS_COM,#96H ;TEXT ON GRAPHICS OFF CURSOR ON BLINK OFF
LCALL SENDCON
LCALL CLEAR_TXT
LCALL DISP_GB
MOV DPS,#00H
MOV DPTR,#DIDT_M05
LCALL DISP_STR
LJMP TIAO_L020
;=====================================
REVISE_M03:
JNB 1AH,REVISE_M031
CLR RS0
CLR RS1
MOV R0,#0D0H
MOV A,@R0
SWAP A
ANL A,#0F0H
MOV BCD5,A
INC R0
MOV A,@R0
SWAP A
ANL A,#0FH
ORL BCD5,A
MOV COUNT,#01H
LCALL BCD_BIN
MOV A,BIN1
CLR C
SUBB A,#13
JNC REVISE_M031
MOV A,BIN1
MOV C,1BH
MOV ACC.4,C
MOV ZONE,A
SETB RS0
SETB RS1
MOV R1,#0F0H
MOV @R1,A
MOV ADDH_IIC,#00H
MOV ADDL_IIC,#00H
MOV LONG_IIC,#01H
LCALL IIC_WR
REVISE_M031:
LJMP KEY_CAID
;-------
REVISE_G04:
JNB 1AH,REVISE_M031
CLR RS0
CLR RS1
MOV R0,#0D0H
LCALL GET_MID
LCALL EEPROM_ADR
LCALL GET_MID
RL A
RL A
ANL A,#7CH
MOV DPL,A
MOV DPH,#00H
MOV DPS,#00H
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV DPH1,A
INC DPTR
MOVX A,@DPTR
MOV DPL1,A
ORL DPL1,#06H
ORL ADDL_IIC,#06H
DEC DPTR
DEC DPTR
MOV BCD5,@R0
INC R0
MOV BCD4,@R0
INC R0
MOV BCD3,@R0
INC R0
MOV BCD2,@R0
INC R0
MOV BCD1,@R0
MOV COUNT,#05H
LCALL BCD_BIN
MOV C4,#00H
MOV C3,#0FH
MOV C2,#42H
MOV C1,#3FH
LCALL COMP_BIN
JNB 1DH,REVISE_G042
MOV DPS,#01H
MOV R1,#BIN1
MOV COUNT,#04H
REVISE_G041:
MOV A,@R1
MOVX @DPTR,A
INC DPTR
INC R1
DJNZ COUNT,REVISE_G041
MOV DPS,#00H
MOVX A,@DPTR
SETB ACC.1
MOVX @DPTR,A
MOV LONG_IIC,#04H
SETB RS0
SETB RS1
MOV R1,#BIN1
LCALL IIC_WR
REVISE_G042:
MOV A,DPL1
ANL A,#0F0H
ORL A,#0AH
MOV DPL1,A
MOV A,ADDL_IIC
ANL A,#0F0H
ORL A,#0AH
MOV ADDL_IIC,A
CLR RS0
CLR RS1
MOV R0,#0D5H
MOV COUNT,#04H
REVISE_G043:
MOV A,@R0
CLR C
SUBB A,#05H
JNC REVISE_G045
INC R0
DJNZ COUNT,REVISE_G043
MOV R0,#0D5H
MOV COUNT,#04H
MOV DPS,#01H
REVISE_G044:
MOV A,@R0
MOVX @DPTR,A
INC DPTR
INC R0
DJNZ COUNT,REVISE_G044
MOV DPS,#00H
MOVX A,@DPTR
SETB ACC.2
MOVX @DPTR,A
MOV LONG_IIC,#04H
SETB RS0
SETB RS1
MOV R1,#0D5H
LCALL IIC_WR
REVISE_G045:
LJMP KEY_CAID
;------
REVISE_G07:
JNB 1AH,REVISE_G044
CLR RS0
CLR RS1
MOV R0,#0D0H
LCALL GET_MID
LCALL EEPROM_ADR
LCALL GET_MID
RL A
RL A
ANL A,#7CH
MOV DPL,A
MOV DPH,#00H
MOV DPS,#00H
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV DPH1,A
INC DPTR
MOVX A,@DPTR
MOV DPL1,A
ORL DPL1,#02H
ORL ADDL_IIC,#02H
DEC DPTR
DEC DPTR
MOV BCD5,@R0
INC R0
MOV BCD4,@R0
INC R0
MOV BCD3,@R0
INC R0
MOV BCD2,@R0
INC R0
MOV BCD1,@R0
INC R0
MOV COUNT,#05H
LCALL BCD_BIN
; LCALL COMP_BIN
; JNB 1DH,REVISE_G072
MOV DPS,#01H
MOV R1,#BIN1
MOV COUNT,#04H
REVISE_G071:
MOV A,@R1
MOVX @DPTR,A
INC DPTR
INC R1
DJNZ COUNT,REVISE_G071
MOV DPS,#00H
MOVX A,@DPTR
SETB ACC.0
MOVX @DPTR,A
MOV LONG_IIC,#04H
SETB RS0
SETB RS1
MOV R1,#BIN1
LCALL IIC_WR
REVISE_G072:
MOV A,DPL1
ANL A,#0F0H
ORL A,#06H
MOV DPL1,A
MOV A,ADDL_IIC
ANL A,#0F0H
ORL A,#06H
MOV ADDL_IIC,A
CLR RS0
CLR RS1
MOV R0,#0D5H
MOV BCD5,@R0
INC R0
MOV BCD4,@R0
INC R0
MOV BCD3,@R0
INC R0
MOV BCD2,@R0
INC R0
MOV BCD1,@R0
MOV COUNT,#05H
LCALL BCD_BIN
; MOV C4,#
; MOV C3,#
; MOV C2,#
; MOV C1,#
; LCALL COMP_BIN
; JNB 1DH,REVISE_G074
MOV DPS,#01H
MOV R1,#BIN1
MOV COUNT,#04H
REVISE_G073:
MOV A,@R1
MOVX @DPTR,A
INC DPTR
INC R1
DJNZ COUNT,REVISE_G073
MOV DPS,#00H
MOVX A,@DPTR
SETB ACC.1
MOVX @DPTR,A
MOV LONG_IIC,#04H
SETB RS0
SETB RS1
MOV R1,#BIN1
LCALL IIC_WR
REVISE_G074:
LJMP KEY_CAID
;------------
REVISE_L02:
JNB 1AH,REVISE_G074
LCALL GET_MID
RL A
RL A
ANL A,#7CH
MOV DPL,A
MOV DPH,#00H
MOV DPS,#00H
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV DPH1,A
INC DPTR
MOVX A,@DPTR
MOV DPL1,A
ORL DPL1,#02H
DEC DPTR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -