📄 display2.dt.bak
字号:
jmp loop11
;===================================================
;按下START键时,应该计时,检测下限位行程开关
;置位下限计时标志
;按下START键,应该让马达下行,在这里置位马达下行标志
;===================================================
RUN_START:
BS RUNALLOW,2
BS TESTERROR_FLAG,4
BS TESTERROR_FLAG,5
JMP MODE_END
MODE_END:
CLR KEYRESULT
RET
;========================
;++++++END SET_MODE++++++
;========================
;========================
;+++++模式显示子程序+++++
;========================
DISP_MODE:
JBC SLEEP_MODE,0 ;如果进入睡眠模式那么显示睡眠图标
JMP DISPMODE_END
JBC RUNALLOW,0
JMP DISPMODE_END
JBS RUN_STARTFLAG,0 ;开机自检时显示全部内容
JMP DISPMODE_END
JBC ERROR_MODE,0
JMP DISP_ERROR
JBC RUNALLOW,1
JMP MOTOR_RUN10
JBC RUNALLOW,2
JMP MOTOR_RUN11
JMP DISP_NORMAL
;============================
;+++++++出错模式的显示+++++++
;============================
DISP_ERROR:
MOV A,@0B11110001
AND DISPBUF0,A
MOV A,@0B00001100
OR DISPBUF0,A
MOV A,@0B11110000
AND DISPBUF1,A
MOV A,@0B00001110
OR DISPBUF1,A
JBS T1S_FLAG,0 ;闪烁效果
JMP DISP_ERROR2
MOV A,@0B01111111
MOV DISPBUF2,A
JMP DISPMODE_END
DISP_ERROR2:
MOV A,@0B10000000
MOV DISPBUF2,A
JMP DISPMODE_END
;============================
;+++马达上升时显示上升图标+++
;============================
MOTOR_RUN10:
CLR TEST_SLEEPTIME
JBC MOTOR_MOVE,0
JMP MOTOR_RUN1
JBC MOTOR_MOVE,1
JMP MOTOR_RUN2
JBC MOTOR_MOVE,2
JMP MOTOR_RUN3
JBC MOTOR_MOVE,3
JMP MOTOR_RUN4
JMP DISPMODE_END
MOTOR_RUN1:
MOV A,@0B00000000
MOV DISPBUF0,A
MOV A,@0B00000010
MOV DISPBUF1,A
MOV A,@0B00000000
MOV DISPBUF2,A
JMP DISPMODE_END
MOTOR_RUN2:
MOV A,@0B00000000
MOV DISPBUF0,A
MOV A,@0B00000110
MOV DISPBUF1,A
MOV A,@0B00000000
MOV DISPBUF2,A
JMP DISPMODE_END
MOTOR_RUN3:
MOV A,@0B00000100
MOV DISPBUF0,A
MOV A,@0B00000110
MOV DISPBUF1,A
MOV A,@0B00000000
MOV DISPBUF2,A
JMP DISPMODE_END
MOTOR_RUN4:
MOV A,@0B00000000
MOV DISPBUF0,A
MOV A,@0B00000000
MOV DISPBUF1,A
MOV A,@0B00000000
MOV DISPBUF2,A
JMP DISPMODE_END
;=======================
;++++马达下降图标显示+++
;=======================
MOTOR_RUN11:
CLR TEST_SLEEPTIME
JBC MOTOR_MOVE,0
JMP MOTOR_RUN21
JBC MOTOR_MOVE,1
JMP MOTOR_RUN22
JBC MOTOR_MOVE,2
JMP MOTOR_RUN23
JBC MOTOR_MOVE,3
JMP MOTOR_RUN24
JMP DISPMODE_END
MOTOR_RUN21:
MOV A,@0B00000100
MOV DISPBUF0,A
MOV A,@0B00000000
MOV DISPBUF1,A
MOV A,@0B00000000
MOV DISPBUF2,A
JMP DISPMODE_END
MOTOR_RUN22:
MOV A,@0B00000100
MOV DISPBUF0,A
MOV A,@0B00000100
MOV DISPBUF1,A
MOV A,@0B00000000
MOV DISPBUF2,A
JMP DISPMODE_END
MOTOR_RUN23:
MOV A,@0B00000100
MOV DISPBUF0,A
MOV A,@0B00000110
MOV DISPBUF1,A
MOV A,@0B00000000
MOV DISPBUF2,A
JMP DISPMODE_END
MOTOR_RUN24:
MOV A,@0B00000000
MOV DISPBUF0,A
MOV A,@0B00000000
MOV DISPBUF1,A
MOV A,@0B00000000
MOV DISPBUF2,A
JMP DISPMODE_END
DISP_NORMAL:
JBS T1S_FLAG,0 ;闪烁效果的判断
JMP DISP_CHANGE
JBC DARKE_GRADE,0
JMP DARKER1
JBC DARKE_GRADE,1
JMP DARKER2
JBC DARKE_GRADE,2
JMP DARKER3
JBC DARKE_GRADE,3
JMP DARKER4
JBC DARKE_GRADE,4
JMP DARKER5
JBC DARKE_GRADE,5
JMP DARKER6
JMP DISPMODE_END
DISP_CHANGE: ;闪烁效果的处理
MOV A,@0B11110001
AND DISPBUF0,A
MOV A,@0B11110000
AND DISPBUF1,A
JMP DISP_DEFROST
DARKER1:
MOV A,@0B11110001
AND DISPBUF0,A
MOV A,@0B00000010
OR DISPBUF0,A
MOV A,@0B11110000
AND DISPBUF1,A
MOV A,@0B00000001
OR DISPBUF1,A
MOV A,@0B00001010
MOV DISPBUF2,A
JMP DISP_DEFROST
DARKER2:
MOV A,@0B11110001
AND DISPBUF0,A
MOV A,@0B00000110
OR DISPBUF0,A
MOV A,@0B11110000
AND DISPBUF1,A
MOV A,@0B00001110
OR DISPBUF1,A
MOV A,@0B00011010
MOV DISPBUF2,A
JMP DISP_DEFROST
DARKER3:
MOV A,@0B11110001
AND DISPBUF0,A
MOV A,@0B00000110
OR DISPBUF0,A
MOV A,@0B11110000
AND DISPBUF1,A
MOV A,@0B00000111
OR DISPBUF1,A
MOV A,@0B00011110
MOV DISPBUF2,A
JMP DISP_DEFROST
DARKER4:
MOV A,@0B11110001
AND DISPBUF0,A
MOV A,@0B00001010
OR DISPBUF0,A
MOV A,@0B11110000
AND DISPBUF1,A
MOV A,@0B00000101
OR DISPBUF1,A
MOV A,@0B01011110
MOV DISPBUF2,A
JMP DISP_DEFROST
DARKER5:
MOV A,@0B11110001
AND DISPBUF0,A
MOV A,@0B00001100
OR DISPBUF0,A
MOV A,@0B11110000
AND DISPBUF1,A
MOV A,@0B00000111
OR DISPBUF1,A
MOV A,@0B01111110
MOV DISPBUF2,A
JMP DISP_DEFROST
DARKER6:
MOV A,@0B11110001
AND DISPBUF0,A
MOV A,@0B00001100
OR DISPBUF0,A
MOV A,@0B11110000
AND DISPBUF1,A
MOV A,@0B00001111
OR DISPBUF1,A
MOV A,@0B01111111
MOV DISPBUF2,A
;===========================
;++++解冻模式的显示图标+++++
;===========================
DISP_DEFROST:
JBS MODEBUF,0
JMP DISP_REHEAT
MOV A,@0B00010000
OR DISPBUF0,A
MOV A,@0B10011110
AND DISPBUF0,A
MOV A,@0B00010000
OR DISPBUF1,A
MOV A,@0B11011111
AND DISPBUF1,A
JMP DISPMODE_END
;===========================
;+++重新加热模式的显示图标++
;===========================
DISP_REHEAT:
JBS MODEBUF,1
JMP DISP_NORMAL100
MOV A,@0B01100001
OR DISPBUF0,A
MOV A,@0B11101111
AND DISPBUF0,A
MOV A,@0B00100000
OR DISPBUF1,A
MOV A,@0B11101111
AND DISPBUF1,A
JMP DISPMODE_END
;============================
;+++++正常模式下的显示图标+++
;============================
DISP_NORMAL100:
MOV A,@0B10001110
AND DISPBUF0,A
MOV A,@0B11001111
AND DISPBUF1,A
DISPMODE_END:
RET
;================================
;++++++++++END DISP_MODE+++++++++
;================================
;===========================
;+++++马达上升下降子程序++++
;===========================
MOTOR_RUN:
JBS RUNALLOW,1
JMP MOTOR_NORUN
MOV A,@0B00010000
OR PORT5,A
JMP MOTORRUN_END
MOTOR_NORUN:
MOV A,@0B11101111
AND PORT5,A
MOTORRUN_END:
RET
;===========================
;+++++++END MOTOR_RUN+++++++
;===========================
EOP
;==========================
;+++++++END TEST_SLEEP+++++
;==========================
;*********************************************
;*+=========================================*+
;++++++++++++++以下程序是换页的!+++++++++++++
;*+=========================================*+
;*********************************************
;曲终人未散,回首梦已远!天涯青风梗,再见理想!
;=============================================
;=============================================
;各种出错方式检测子程序
;1:刚上电28秒内没检测到上限开关
;2:在未进入烘烤状态下按CANCLE键28秒内没检测到上限开关
;3:烘烤状态下按CANCLE键20秒之内没发现上限开关
;4:烘烤状态下按CANCLE键8秒内发现上限开关
;5:按下START键20秒之内没发现下限开关
;6:按下START键8秒内发现下限开关
;7:连续同时检测到上下限开关有效
;=============================================
ORG 0X0405
NOP
BC R3,5
BC R3,6
JMP IN_INT
TEST_ERROR:
CLR R4
MOV A,PORT5
MOV KEYTEST,A
MOV A,@0B11000000
AND A,KEYTEST
JBS STATUS,2
JMP TEST_ERROR100
BS VOICE_FLAG,1
BS ERROR_MODE,0
JMP TEST_ERRORSTOP
TEST_ERROR100:
;====================================
;1:刚上电28秒内没检测到上限开关
;====================================
JBS TESTERROR_FLAG,0
JMP TEST_ERROR1
MOV A,@14
SUB A,TEST_UPTIME
JBS STATUS,0
JMP TEST_UPSWITCH1
BC TESTERROR_FLAG,0
CLR TEST_UPTIME
BS VOICE_FLAG,1
BS ERROR_MODE,0 ;出错模式置位
BS ERROR_MODE,1
BC RUNALLOW,1 ;如果出错了马达也停止上升
JMP TEST_ERRORSTOP
TEST_UPSWITCH1:
MOV A,PORT5
MOV KEYTEST,A
JBC KEYTEST,7
JMP TEST_ERROR1
BC TESTERROR_FLAG,0
BC RUNALLOW,1 ;马达停止上升驱动
BC ERROR_MODE,1
CLR TEST_UPTIME
;=====================================================
;2:在未进入烘烤状态下按CANCLE键28秒内没检测到上限开关
;=====================================================
TEST_ERROR1:
JBS TESTERROR_FLAG,1
JMP TEST_ERROR2
MOV A,@14
SUB A,TEST_UPTIME1
JBS STATUS,0
JMP TEST_UPSWITCH2
BC TESTERROR_FLAG,1
CLR TEST_UPTIME1
BS ERROR_MODE,2
BS ERROR_MODE,0
BS VOICE_FLAG,1
BC RUNALLOW,1 ;马达停止上升
JMP TEST_ERRORSTOP
TEST_UPSWITCH2:
MOV A,PORT5
MOV KEYTEST,A
JBC KEYTEST,7
JMP TEST_ERROR2
BC TESTERROR_FLAG,1
BC ERROR_MODE,2
BC RUNALLOW,1 ;马达停止上升
CLR TEST_UPTIME1
;===================================================
;+++3:烘烤状态下按CANCLE键20秒之内没发现上限开关++++
;===================================================
TEST_ERROR2:
JBS TESTERROR_FLAG,2
JMP TEST_ERROR3
MOV A,@10
SUB A,TEST_UPTIME2
JBS STATUS,0
JMP TEST_UPSWITCH3
BC TESTERROR_FLAG,2
CLR TEST_UPTIME2
BS VOICE_FLAG,1
BS ERROR_MODE,0
BS ERROR_MODE,3
BC RUNALLOW,1 ;马达停止上升
JMP TEST_ERRORSTOP
TEST_UPSWITCH3:
MOV A,PORT5
MOV KEYTEST,A
JBC KEYTEST,7
JMP TEST_ERROR3
BC TESTERROR_FLAG,2
BC RUNALLOW,1 ;马达停止上升
BC ERROR_MODE,3
CLR TEST_UPTIME2
;===============================================
;++++4:烘烤状态下按CANCLE键8秒内发现上限开关++++
;===============================================
TEST_ERROR3:
JBS TESTERROR_FLAG,3
JMP TEST_ERROR4
MOV A,@4
SUB A,TEST_UPTIME3
JBS STATUS,0
JMP TEST_UPSWITCH4
BC TESTERROR_FLAG,3
BC ERROR_MODE,4
CLR TEST_UPTIME3
JMP TEST_ERROR4
TEST_UPSWITCH4:
MOV A,PORT5
MOV KEYTEST,A
JBC KEYTEST,7
JMP TEST_ERROR4
BC TESTERROR_FLAG,3
CLR TEST_UPTIME3
BS VOICE_FLAG,1
BS ERROR_MODE,0
BS ERROR_MODE,4
BC RUNALLOW,1
;=======================================
;此入口按下START键,20S内检测下限行程开关
;如果检测行程开关正常的话应该置开始标志
;=======================================
TEST_ERROR4:
JBS TESTERROR_FLAG,4
JMP TEST_ERROR5
MOV A,@10
SUB A,TEST_DOWNTIME
JBS STATUS,0
JMP TEST_DOWNSWITCH
BC TESTERROR_FLAG,4
CLR TEST_DOWNTIME
BS VOICE_FLAG,1
BS ERROR_MODE,0
BS ERROR_MODE,5
BC RUNALLOW,2
JMP TEST_ERRORSTOP
TEST_DOWNSWITCH:
MOV A,PORT5
MOV KEYTEST,A
JBC KEYTEST,6
JMP TEST_ERROR5
BC TESTERROR_FLAG,4
BC ERROR_MODE,5
BC RUNALLOW,2
BS RUNALLOW,0 ;这个时候该开始运行了
CLR TEST_DOWNTIME
;=====================================
;此入口为按START键8S内检测下限行程开关
;=====================================
TEST_ERROR5:
JBS TESTERROR_FLAG,5
JMP TEST_ERROREND
MOV A,@4
SUB A,TEST_DOWNTIME1
JBS STATUS,0
JMP TEST_DOWNSWITCH1
BC TESTERROR_FLAG,5
CLR TEST_DOWNTIME1
BC ERROR_MODE,6
JMP TEST_ERROREND
TEST_DOWNSWITCH1:
MOV A,PORT5
MOV KEYTEST,A
JBC KEYTEST,6
JMP TEST_ERROREND
BC TESTERROR_FLAG,5
CLR TEST_DOWNTIME1
BS VOICE_FLAG,1
BS ERROR_MODE,0
BS ERROR_MODE,6
BC RUNALLOW,2
JMP TEST_ERRORSTOP
TEST_ERRORSTOP:
BC RUNALLOW,0
CLR TEST_UPTIME
CLR TEST_UPTIME1
CLR TEST_UPTIME2
CLR TEST_UPTIME3
CLR TEST_DOWNTIME
CLR TEST_DOWNTIME1
TEST_ERROREND:
RET
;===========================================
;+++++++++++++++运行子程序++++++++++++++++++
;===========================================
RUN_OPERATE:
CLR R4
BC R3,6
BS R3,5
JBS RUNALLOW,0
JMP TEST_SLEEP
BC SLEEP_MODE,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -