📄 display2.dt.bak
字号:
KEY_COMPARE4:
JBC KEYTEST,4
JMP KEY_COMPARE5
JBS KEYRESULT_BUF,4
JMP KEY_COMRETURN
BS KEYRESULT,4
BS KEY_SKIPFLAG,0
JMP KEY_JUDSLEORNORM
KEY_COMPARE5:
JBC KEYTEST,7
JMP KEY_COMRETURN
JBS KEYRESULT_BUF,5
JMP KEY_COMRETURN
BS KEYRESULT,5
BS KEY_SKIPFLAG,0
JMP KEY_JUDSLEORNORM
KEY_JUDSLEORNORM:
JBC SLEEP_MODE,0
JMP SLEEPMODE_SET
JMP KEY_RETURN
SLEEPMODE_SET:
CLR KEYRESULT
CLR TEST_SLEEPTIME
BC SLEEP_MODE,0
JMP KEY_RETURN
KEY_COMRETURN:
CLR KEYRESULT_BUF
CLR KEYRESULT
BC KEY_SKIPFLAG,0
JMP KEY_RETURN
KEY_SCANSW1:
JBC KEYTEST,0 ;cancel sw1
JMP KEY_SCANSW3
BS KEYRESULT_BUF,0
JMP KEY_SETFLAG
KEY_SCANSW3:
JBC KEYTEST,1 ;defrost sw3
JMP KEY_SCANSW4
BS KEYRESULT_BUF,1
JMP KEY_SETFLAG
KEY_SCANSW4:
JBC KEYTEST,2 ;reheat sw4
JMP KEY_SCANSW5
BS KEYRESULT_BUF,2
JMP KEY_SETFLAG
KEY_SCANSW5:
JBC KEYTEST,3 ;darker sw5
JMP KEY_SCANSW6
BS KEYRESULT_BUF,3
JMP KEY_SETFLAG
KEY_SCANSW6:
JBC KEYTEST,4 ;lighter sw6
JMP KEY_SCANSW2
BS KEYRESULT_BUF,4
JMP KEY_SETFLAG
KEY_SCANSW2:
JBC KEYTEST,7 ;start sw2
JMP KEY_RETURN
BS KEYRESULT_BUF,5
JMP KEY_SETFLAG
KEY_SETFLAG:
BS KEYFIRST_FLAG,0
JMP KEY_RETURN
;===========================
;++++++++++弹起判断+++++++++
;===========================
KEY_SCANSKIP:
JBS KEYRESULT_BUF,0
JMP KEY_SCANSKIP1
JBC KEYTEST,0
JMP KEY_SKIPSWOK
JMP KEY_SKIPNOOK
KEY_SCANSKIP1:
JBS KEYRESULT_BUF,1
JMP KEY_SCANSKIP2
JBC KEYTEST,1
JMP KEY_SKIPSWOK
JMP KEY_SKIPNOOK
KEY_SCANSKIP2:
JBS KEYRESULT_BUF,2
JMP KEY_SCANSKIP3
JBC KEYTEST,2
JMP KEY_SKIPSWOK
JMP KEY_SKIPNOOK
KEY_SCANSKIP3:
JBS KEYRESULT_BUF,3
JMP KEY_SCANSKIP4
JBC KEYTEST,3
JMP KEY_SKIPSWOK
JMP KEY_SKIPNOOK
KEY_SCANSKIP4:
JBS KEYRESULT_BUF,4
JMP KEY_SCANSKIP5
JBC KEYTEST,4
JMP KEY_SKIPSWOK
JMP KEY_SKIPNOOK
KEY_SCANSKIP5:
JBS KEYRESULT_BUF,5
JMP KEY_SKIPNOOK
JBC KEYTEST,7
JMP KEY_SKIPSWOK
JMP KEY_SKIPNOOK
;===============================
;+++++以下是置位键弹起标志++++++
;===============================
KEY_SKIPSWOK:
BC KEY_SKIPFLAG,0
CLR KEYRESULT_BUF
JMP KEY_RETURN
KEY_SKIPNOOK:
BS KEY_SKIPFLAG,0
KEY_RETURN:
MOV A,@0B00000000
IOW IOC60
RET
;==================
;+++END KEY_SCAN+++
;==================
DELAY:
MOV A,@255
MOV 0X20,A
DJZ 0X20
JMP $-1
RET
;=========================
;+++++模式设定子程序++++++
;=========================
SET_MODE:
JBC RUN_STARTFLAG,0
JMP SET_MODE10
MOV A,@1 ;显示1秒钟的开机界面
SUB A,TESTSELF_TIME
JBS STATUS,0
JMP MODE_END
BS RUN_STARTFLAG,0
CLR TESTSELF_TIME
CLR DARKE_GRADE
BS DARKE_GRADE,2
;================================
;在此处马达应该上行了
;开机2S钟显示全部图形时间已经结束
;================================
SET_MODE10:
JBC KEYRESULT,0
JMP CANCLE_MODE
JBC ERROR_MODE,0;如果检验已经出错了,那么除了CANCLE键其他键不应该响应
JMP MODE_END
JBC KEYRESULT,1
JMP DEFROST_MODE
JBC KEYRESULT,2
JMP REHEAT_MODE
JBC KEYRESULT,3
JMP DARKER
JBC KEYRESULT,4
JMP LIGHTER
JBC KEYRESULT,5;START键定义为KEYRESULT.5
JMP RUN_START
JMP MODE_END
;===========================
;+++在运行时按下CANCLE键++++
;++在没运行时按下CANCLE键+++
;===========================
CANCLE_MODE:
JBS RUNALLOW,0
JMP CANCLE_MODE1
BS TESTERROR_FLAG,2
BS TESTERROR_FLAG,3
JMP CANCLE_MODE2
CANCLE_MODE1:
BS TESTERROR_FLAG,2
BC ERROR_MODE,0
CANCLE_MODE2:
BS RUNALLOW,1
BC RUNALLOW,0
BS VOICE_FLAG,2
BC ADDORSUBCHANGE_FLAG,0
JMP MODE_END
;========================
;++++++解冻模式处理++++++
;========================
DEFROST_MODE:
JBC RUNALLOW,0
JMP MODE_END
JBC MODEBUF,0
JMP DEFROST_MODE1
JMP DEFROST_MODE2
DEFROST_MODE1:
BS VOICE_FLAG,0
CLR MODEBUF
BS MODEBUF,2
JMP MODE_END
DEFROST_MODE2:
BS VOICE_FLAG,0
CLR MODEBUF
BS MODEBUF,0
JMP MODE_END
;========================
;+++++重新加热模式处理+++
;========================
REHEAT_MODE:
JBC RUNALLOW,0
JMP MODE_END
JBC MODEBUF,1
JMP REHEAT_MODE1
JMP REHEAT_MODE2
REHEAT_MODE1:
BS VOICE_FLAG,0
CLR MODEBUF
BS MODEBUF,2
JMP MODE_END
REHEAT_MODE2:
BS VOICE_FLAG,0
CLR MODEBUF
BS MODEBUF,1
JMP MODE_END
;================================
;++在正常和解冻模式下运行++++++
;+++++++颜色加深处理+++++++++++++
;================================
DARKER:
BS VOICE_FLAG,0
JBC MODEBUF,1
JMP MODE_END
JBS DARKE_GRADE,5
JMP DARKER10
JMP DEFCHANGE_TIME
DARKER10:
BC STATUS,0
RLC DARKE_GRADE
JMP DEFCHANGE_TIME
;================================
;+++正常模式和解冻模式颜色减浅处理
;================================
LIGHTER:
BS VOICE_FLAG,0
JBC MODEBUF,1
JMP MODE_END
JBS DARKE_GRADE,0
JMP LIGHTER1
JMP MODE_END
LIGHTER1:
BC STATUS,0
RRC DARKE_GRADE
;===========================
;+++在解冻模式下按-键判断+++
;+++35H存放已运行的时间+++++
;+++34H存放剩余时间+++++++++
;+++33H存放每个点显示的时间+
;+++如果没有运行那么直接跳出
;+++如果已经运行则判断调整后的挡位
;+++时间是否已经超出运行时间
;+++超出运行时间则颜色减浅无效
;+++未超出时间则求出剩余时间
;+++并保存调整时已经运行的时间
;===========================
DEFCHANGE_TIME:
JBS RUNALLOW,0
JMP MODE_END
JBS MODEBUF,0
JMP MODE_NORJUDGE
BS ADDORSUBCHANGE_FLAG,0
;===========================
;+++++运行时调整后为6档的处理
;===========================
JBS DARKE_GRADE,5
JMP DARKE_JUDGE4
mov a,@140
MOV 0x34,a
mov a,run_2s
mov 0x35,a ;保存调整时已经运行的时间
bc status,0
sub 0x34,a ;求出剩余的时间
mov a,@6
clr 0x33
loop5: ;求出调整后每个点应该点亮的时间
bc status,0
sub 0x34,a
jbs status,0
jmp mode_end
inc 0x33
jmp loop5
;==============================
;++运行时调整后为5档的处理+++++
;==============================
DARKE_JUDGE4:
JBS DARKE_GRADE,4
JMP DARKE_JUDGE3
mov a,@125
MOV 0x34,a
mov A,RUN_2S ;调整时已经运行时间的保存
mov 0x35,a
bc status,0
sub 0x34,a ;求出5挡时的剩余运行时间
JBC STATUS,0
JMP MODE_GRADETIME5
BC STATUS,0 ;如果运行时间已经超过5挡时间则按键无效
RLC DARKE_GRADE
BC ADDORSUBCHANGE_FLAG,0
JMP MODE_END
MODE_GRADETIME5:
BC STATUS,0
mov a,@5
clr 0x33
loop4: ;求出5个点中每个点的点亮时间
bc status,0
sub 0x34,a
jbs status,0
jmp mode_end
inc 0x33
jmp loop4
;=================================
;+++调整后为4挡的时间处理+++++++++
;=================================
DARKE_JUDGE3:
JBS DARKE_GRADE,3
JMP DARKE_JUDGE2
mov a,@110
MOV 0x34,a
mov A,RUN_2S
mov 0x35,a
sub 0x34,a
JBc STATUS,0
JMP MODE_GRADETIME4
BC STATUS,0
RLC DARKE_GRADE
BC ADDORSUBCHANGE_FLAG,0
JMP MODE_END
MODE_GRADETIME4:
BC STATUS,0
mov a,@4
clr 0x33
loop3:
bc status,0
sub 0x34,a
jbs status,0
jmp mode_end
inc 0x33
jmp loop3
;==================================
;++++调整后为3挡的时间处理+++++++++
;==================================
DARKE_JUDGE2:
JBS DARKE_GRADE,2
JMP DARKE_JUDGE1
mov a,@95
MOV 0x34,a
mov A,RUN_2S
mov 0x35,a
sub 0x34,a
JBc STATUS,0
JMP MODE_GRADETIME3
BC ADDORSUBCHANGE_FLAG,0
BC STATUS,0
RLC DARKE_GRADE
JMP MODE_END
MODE_GRADETIME3:
BC STATUS,0
mov a,@3
clr 0x33
loop2:
bc status,0
sub 0x34,a
jbs status,0
jmp mode_end
inc 0x33
jmp loop2
;===================================
;+++++调整后为2挡的时间处理部分+++++
;===================================
DARKE_JUDGE1:
JBS DARKE_GRADE,1
JMP MODE_END
mov a,@80
MOV 0x34,a
mov A,RUN_2S
mov 0x35,a
sub 0x34,a
JBc STATUS,0
JMP MODE_GRADETIME2
BC ADDORSUBCHANGE_FLAG,0
BC STATUS,0
RLC DARKE_GRADE
JMP MODE_END
MODE_GRADETIME2:
BC STATUS,0
mov a,run_2s
mov 0x35,a
mov a,@2
clr 0x33
loop1:
bc status,0
sub 0x34,a
jbs status,0
jmp mode_end
inc 0x33
jmp loop1
;============================
;+++正常模式按+-键时间判断+++
;++此处理部分同解冻模式部分
;++的处理程序;如时间允许;将
;++其做成一个子程序
;============================
MODE_NORJUDGE:
JBS MODEBUF,2
JMP MODE_END
BS ADDORSUBCHANGE_FLAG,0
JBS DARKE_GRADE,5
JMP DARKE_JUDGE14
;===========6挡处理==============
mov a,@120
MOV 0x34,a
mov a,run_2s
mov 0x35,a ;调整时当前运行时间的保存
bc status,0
sub 0x34,a ;求出剩余的时间
mov a,@6
clr 0x33
loop15: ;求出调整后6个点每个点应该显示的时间
bc status,0
sub 0x34,a
jbs status,0
jmp mode_end
inc 0x33
jmp loop15
;============5挡处理==============
DARKE_JUDGE14:
JBS DARKE_GRADE,4
JMP DARKE_JUDGE13
mov a,@105
MOV 0x34,a
mov A,RUN_2S
mov 0x35,a
bc status,0
sub 0x34,a
JBC STATUS,0
JMP MODE_GRADETIME15
BC STATUS,0
RLC DARKE_GRADE
JMP MODE_END
MODE_GRADETIME15:
BC STATUS,0
mov a,@5
clr 0x33
loop14:
bc status,0
sub 0x34,a
jbs status,0
jmp mode_end
inc 0x33
jmp loop14
;==============4挡处理================
DARKE_JUDGE13:
JBS DARKE_GRADE,3
JMP DARKE_JUDGE12
mov a,@90
MOV 0x34,a
mov A,RUN_2S
mov 0x35,a
sub 0x34,a
JBc STATUS,0
JMP MODE_GRADETIME14
BC STATUS,0
RLC DARKE_GRADE
JMP MODE_END
MODE_GRADETIME14:
BC STATUS,0
mov a,@4
clr 0x33
loop13:
bc status,0
sub 0x34,a
jbs status,0
jmp mode_end
inc 0x33
jmp loop13
;==============3挡处理================
DARKE_JUDGE12:
JBS DARKE_GRADE,2
JMP DARKE_JUDGE11
mov a,@75
MOV 0x34,a
mov A,RUN_2S
mov 0x35,a
sub 0x34,a
JBc STATUS,0
JMP MODE_GRADETIME13
BC STATUS,0
RLC DARKE_GRADE
JMP MODE_END
MODE_GRADETIME13:
BC STATUS,0
mov a,@3
clr 0x33
loop12:
bc status,0
sub 0x34,a
jbs status,0
jmp mode_end
inc 0x33
jmp loop12
;=============2挡处理================
DARKE_JUDGE11:
JBS DARKE_GRADE,1
JMP MODE_END
mov a,@60
MOV 0x34,a
mov A,RUN_2S
mov 0x35,a
sub 0x34,a
JBc STATUS,0
JMP MODE_GRADETIME12
BC STATUS,0
RLC DARKE_GRADE
JMP MODE_END
MODE_GRADETIME12:
BC STATUS,0
mov a,run_2s
mov 0x35,a
mov a,@2
clr 0x33
loop11:
bc status,0
sub 0x34,a
jbs status,0
jmp mode_end
inc 0x33
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -