📄 wbl.asm
字号:
BSF SYSTEM_STATUS3,FULL_WAVE_FLAG
WAVE_OVER5M_FLAG_TEST:
MOVLW 05H
SUBWF SEG_MINUTE,0
BTFSS STATUS,0
GOTO MODE_PARA_LOAD
BTFSS STATUS,2
GOTO SET_WAVE_OVER5M_FLAG
MOVF SEG_SECOND,1
BTFSC STATUS,2
GOTO MODE_PARA_LOAD
SET_WAVE_OVER5M_FLAG:
BSF SYSTEM_STATUS3,WAVE_OVER5M_FLAG
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
MODE_PARA_LOAD:
MOVLW 0EH
MOVWF PCLATH
MOVF COOK_MODE,0
CALL COOK_MODE_ADDR_TABLE
MOVWF COOK_MODE_ADDR
MOVF COOK_MODE_ADDR,0
CALL COOK_MODE_TABLE
MOVWF WORK_TIME
MOVWF WORK_TIME_FIRSTBUFFER
INCF COOK_MODE_ADDR,1
MOVF COOK_MODE_ADDR,0
CALL COOK_MODE_TABLE
MOVWF WORK_TIME_SECONDBUFFER
INCF COOK_MODE_ADDR,1
MOVF COOK_MODE_ADDR,0
CALL COOK_MODE_TABLE
MOVWF T_TIME
MOVWF T_TIME_BUFFER
BCF PCLATH,3
BCF PCLATH,4
END_COOKMODE_LOAD:
GOTO END_TIME_LOAD
T_TIME_LOAD_TEST:
BTFSS SYSTEM_STATUS2,T_TIME_OVER_FLAG
GOTO WORK_TIME_OVERFLAG_TEST
BCF SYSTEM_STATUS2,T_TIME_OVER_FLAG
BCF SYSTEM_STATUS2,WORK_TIME_OVER_FLAG
MOVF T_TIME_BUFFER,0
MOVWF T_TIME
MOVF WORK_TIME_FIRSTBUFFER,0
MOVWF WORK_TIME
GOTO END_TIME_LOAD
WORK_TIME_OVERFLAG_TEST:
BTFSS SYSTEM_STATUS2,WORK_TIME_OVER_FLAG
GOTO END_TIME_LOAD
BCF SYSTEM_STATUS2,WORK_TIME_OVER_FLAG
MOVF WORK_TIME_SECONDBUFFER,0
MOVWF WORK_TIME
GOTO END_TIME_LOAD
END_TIME_LOAD:
CALL POWER_MODE_TEST
RETURN
POWER_MODE_TEST:
MOVF WORK_TIME,0
ANDLW 0C0H
MOVWF POWER_MODE
BCF WORK_TIME,7
BCF WORK_TIME,6
SWAPF POWER_MODE,1
BCF STATUS,0
RRF POWER_MODE,1
RRF POWER_MODE,1
MOVF POWER_MODE,1
BTFSC STATUS,2
GOTO MICROWAVE_ON
MOVLW 01H
SUBWF POWER_MODE,0
BTFSC STATUS,2
GOTO GRILL_ON
MOVLW 03H
SUBWF POWER_MODE,0
BTFSC STATUS,2
GOTO BLOWER_ON
GOTO POWER_DOWN
MICROWAVE_ON:
BSF SYSTEM_STATUS1,MICROWAVE_ON_FLAG
BCF SYSTEM_STATUS1,GRILL_ON_FLAG
BCF SYSTEM_STATUS2,BLOWER_ON_FLAG
GOTO END_POWER_MODE_TEST
GRILL_ON:
BCF SYSTEM_STATUS1,MICROWAVE_ON_FLAG
BSF SYSTEM_STATUS1,GRILL_ON_FLAG
BCF SYSTEM_STATUS2,BLOWER_ON_FLAG
GOTO END_POWER_MODE_TEST
BLOWER_ON:
BCF SYSTEM_STATUS1,MICROWAVE_ON_FLAG
BCF SYSTEM_STATUS1,GRILL_ON_FLAG
BSF SYSTEM_STATUS2,BLOWER_ON_FLAG
GOTO END_POWER_MODE_TEST
POWER_DOWN:
BCF SYSTEM_STATUS1,MICROWAVE_ON_FLAG
BCF SYSTEM_STATUS1,GRILL_ON_FLAG
BCF SYSTEM_STATUS2,BLOWER_ON_FLAG
GOTO END_POWER_MODE_TEST
END_POWER_MODE_TEST:
RETURN
RESET_DELAYTIMER:
MOVF T1L,0
MOVWF TMR1L
MOVF T1H,0
MOVWF TMR1H
MOVLW 0FAH
MOVWF INT_NUM0
MOVLW 04H
MOVWF DELAY_TIMEL
RETURN
DELAYEND_TEST:
BCF SYSTEM_STATUS2,DELAYEND_FLAG
CALL SECOND_TEST
BTFSS SYSTEM_STATUS0,SECOND_FLAG
GOTO END_DELAYEND_TEST
DECFSZ DELAY_TIMEL,1
GOTO END_DELAYEND_TEST
BSF SYSTEM_STATUS2,DELAYEND_FLAG
END_DELAYEND_TEST:
RETURN
ACTIVE_KEY_SET:
CLRF ACTIVE_KEY
BIT_TEST_START:
BTFSC EXCHANGED_BIT_FLAG,0
GOTO SET_PAUSE_KEY
BTFSC EXCHANGED_BIT_FLAG,1
GOTO SET_SETUP_KEY
BTFSC EXCHANGED_BIT_FLAG,2
GOTO SET_POWERSAVE_KEY
BTFSC EXCHANGED_BIT_FLAG,3
GOTO SET_CLEARUP_KEY
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
BTFSC EXCHANGED_BIT_FLAG,4
GOTO SET_START_KEY
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ERR_KEY:
GOTO END_ACTIVE_KEY_SET
;^^^^^^^^^^^^^^^^^^^^^^^^^^^
SET_PAUSE_KEY:
BSF ACTIVE_KEY,PAUSE_KEY
GOTO END_ACTIVE_KEY_SET
;^^^^^^^^^^^^^^^^^^^^^^^^^^^
;***************************
SET_SETUP_KEY:
BSF ACTIVE_KEY,TIMEUNIT_SETUP_KEY
;*************************
BTFSC SYSTEM_STATUS1,SYSTEM_ON_FLAG
GOTO END_ACTIVE_KEY_SET
BTFSC SYSTEM_STATUS0,CLEARUP_FLAG
GOTO END_ACTIVE_KEY_SET
CALL RESET_DELAYTIMER
;***************************
GOTO END_ACTIVE_KEY_SET
;***************************
;^^^^^^^^^^^^^^^^^^^^^^^^^^^
SET_POWERSAVE_KEY:
BSF ACTIVE_KEY,POWERSAVE_KEY
;****************************
BTFSC SYSTEM_STATUS1,SYSTEM_ON_FLAG
GOTO END_ACTIVE_KEY_SET
BTFSC SYSTEM_STATUS0,CLEARUP_FLAG
GOTO END_ACTIVE_KEY_SET
CALL RESET_DELAYTIMER
;****************************
GOTO END_ACTIVE_KEY_SET
;^^^^^^^^^^^^^^^^^^^^^^^^^^^
;***************************
SET_CLEARUP_KEY:
BSF ACTIVE_KEY,CLEARUP_KEY
BTFSC SYSTEM_STATUS1,SYSTEM_ON_FLAG
GOTO END_ACTIVE_KEY_SET
CALL RESET_DELAYTIMER
GOTO END_ACTIVE_KEY_SET
;***************************
SET_START_KEY:
BSF ACTIVE_KEY,START_SYSTEM_KEY
GOTO END_ACTIVE_KEY_SET
END_ACTIVE_KEY_SET:
RETURN
;^^^^^^^^^^^^^^^&&&&&&&&&&&&&&&&&&*************
COOL_TIMER_TEST:
BTFSS SYSTEM_STATUS3,FULL_WAVE_FLAG
GOTO END_COOL_TIMER
BSF STATUS,5
INCF COOL_TIMER_SECOND,1
MOVLW 3CH
SUBWF COOL_TIMER_SECOND,0
BTFSS STATUS,0
GOTO END_COOL_TEST
MOVWF COOL_TIMER_SECOND
INCF COOL_TIMER_MINUTE,1
END_COOL_TEST:
MOVLW 0BH
SUBWF COOL_TIMER_MINUTE,0
BTFSS STATUS,0
GOTO START_COOL_TEST
CLRF COOL_TIMER_MINUTE
CLRF COOL_TIMER_SECOND
BCF STATUS,5
BCF SYSTEM_STATUS3,COOL_FLAG
GOTO END_COOL_TIMER
START_COOL_TEST:
BSF STATUS,5
MOVLW 0AH
SUBWF COOL_TIMER_MINUTE,0
BCF STATUS,5
BTFSS STATUS,0
GOTO END_COOL_TIMER
COOL_START:
BSF SYSTEM_STATUS3,COOL_FLAG
GOTO END_COOL_TIMER
END_COOL_TIMER:
;BTFSS SYSTEM_STATUS3,WAVE_OVER5M_FLAG
;GOTO RET_COOL_TIMER
BSF STATUS,5
DECFSZ SEG_SECOND_REMAINING,1
GOTO SEG_SECOND_REMAINING_OVER_TEST
MOVF SEG_MINUTE_REMAINING,1
BTFSC STATUS,2
GOTO ZERO_REMAINING
GOTO END_REMAINING_TIME_COUNT
SEG_SECOND_REMAINING_OVER_TEST:
MOVLW 0FFH
SUBWF SEG_SECOND_REMAINING,0
BTFSS STATUS,2
GOTO END_REMAINING_TIME_COUNT
MOVLW 3BH
MOVWF SEG_SECOND_REMAINING
DECF SEG_MINUTE_REMAINING,1
GOTO END_REMAINING_TIME_COUNT
ZERO_REMAINING:
MOVLW 0FH
MOVWF SEG_SECOND_REMAINING
CLRF SEG_MINUTE_REMAINING
GOTO END_REMAINING_TIME_COUNT
END_REMAINING_TIME_COUNT:
MOVF SEG_MINUTE_REMAINING,1
BCF STATUS,5
BTFSS STATUS,2
GOTO RET_COOL_TIMER
BSF STATUS,5
MOVLW 10H
SUBWF SEG_SECOND_REMAINING,0
BCF STATUS,5
BTFSC STATUS,0
GOTO RET_COOL_TIMER
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
BTFSC SYSTEM_STATUS3,WAVE_OVER5M_FLAG
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
BSF SYSTEM_STATUS3,COOL_FLAG
RET_COOL_TIMER:
;************************
BTFSS TMR0_CONFIG_REG,DING_TIMER_FLAG
GOTO SKIP_DING_TIMER_TEST
BSF STATUS,5
MOVF SEG_SECOND_REMAINING,0
SUBWF SECOND_REMAINING,0
BCF STATUS,5
BTFSS STATUS,2
GOTO SKIP_DING_TIMER_TEST
BSF STATUS,5
MOVF SEG_MINUTE_REMAINING,0
SUBWF MINUTE_REMAINING,0
BCF STATUS,5
BTFSS STATUS,2
GOTO SKIP_DING_TIMER_TEST
BCF TMR0_CONFIG_REG,DING_TIMER_FLAG
;^^^^^^^^^^^^^^^^^^^^^^^^
BSF STATUS,5
MOVLW 02H
MOVWF VOICE_NUM_TYPE
BCF STATUS,5
;^^^^^^^^^^^^^^^^^^^^^^^^^
BSF SYSTEM_STATUS0,DING_FLAG
;************************
SKIP_DING_TIMER_TEST:
RETURN
;DISTURB_TEST:
;MOVLW 04H
;SUBWF MAINLOOP_COUNTER,0
;BSF STATUS,5
;BTFSC STATUS,0
;GOTO CLR_DISTURB_FLAG
;SET_DISTURB_FLAG:
;BSF SYSTEM_STATUS5,DISTURB_FLAG
;GOTO RET_DISTURB_TEST
;CLR_DISTURB_FLAG:
;BCF SYSTEM_STATUS5,DISTURB_FLAG
;RET_DISTURB_TEST:
;BCF STATUS,5
;RETURN
SYSTEM_SETUP:
MOVF RB,0
ANDLW 0FH
MOVWF SETUP_KEY
;^^^^^^^^^^^^^^^^^^^^
BTFSC RA,2
BSF SETUP_KEY,4
;^^^^^^^^^^^^^^^^^^^^
;MOVLW 0FH
;ANDWF ACTIVE_KEY,0
MOVLW 1FH
ANDWF ACTIVE_KEY,0
BTFSS STATUS,2
GOTO RELEASE_TEST
PRESS_TEST:
MOVF SETUP_KEY_LAST,0
XORWF SETUP_KEY,0
MOVWF EXCHANGED_BIT_FLAG
COMF SETUP_KEY,0
ANDWF EXCHANGED_BIT_FLAG,1
BTFSC STATUS,2
GOTO END_PRESS_TEST
;^^^^^^^^^^^^^^^^^^^^^^^
CLRF MAINLOOP_COUNTER
;^^^^^^^^^^^^^^^^^^^^^^^
CALL ACTIVE_KEY_SET
END_PRESS_TEST:
GOTO END_SYSTEM_SETUP_TEST
RELEASE_TEST:
;***************************************
BTFSC SYSTEM_STATUS1,SYSTEM_ON_FLAG
GOTO DELAY_NOT_END
;^^^^^^^^^^^^^^^^^^^^
MOVLW 06H
ANDWF ACTIVE_KEY,0
BTFSC STATUS,2
GOTO DELAY_NOT_END
;^^^^^^^^^^^^^^^^^^^
CALL DELAYEND_TEST
BTFSS SYSTEM_STATUS2,DELAYEND_FLAG
GOTO DELAY_NOT_END
BSF ACTIVE_KEY,SECOND_FUNCTION_KEY
GOTO BUTTON_RELEASED
;***************************************
DELAY_NOT_END:
;MOVLW 0FH
MOVLW 1FH
SUBWF SETUP_KEY,0
BTFSS STATUS,2
GOTO END_RELEASE_TEST
;^^^^^^^^^^^^^^^^^^^^^^^^
MOVLW 0CH
SUBWF MAINLOOP_COUNTER,0
BTFSC STATUS,0
GOTO NO_DISTURB
CLRF ACTIVE_KEY
GOTO END_SYSTEM_SETUP_TEST
;^^^^^^^^^^^^^^^^^^^^^^^^
NO_DISTURB:
BSF DISP_STATUS,REFLASH_DISP
BUTTON_RELEASED:
;*****************************
BSF STATUS,5
;MOVLW 02H
MOVLW 01H
MOVWF VOICE_NUM_TYPE
BCF STATUS,5
;CALL VOICE_NUM_GET
;*****************************
CALL FLAG_BIT_SET
END_RELEASE_TEST:
GOTO END_SYSTEM_SETUP_TEST
END_SYSTEM_SETUP_TEST:
MOVF SETUP_KEY,0
MOVWF SETUP_KEY_LAST
RETURN
FLAG_BIT_SET:
;****************************************
BTFSS ACTIVE_KEY,START_SYSTEM_KEY
GOTO GENERAL_KEY_TEST
BSF STATUS,5
BSF SYSTEM_STATUS5,START_SYSTEM_FLAG
BCF STATUS,5
CLRF ACTIVE_KEY
GOTO END_FLAG_BIT_SET
GENERAL_KEY_TEST:
BTFSC ACTIVE_KEY,SECOND_FUNCTION_KEY
GOTO SECOND_FUNCTION
;****************************************
BTFSC ACTIVE_KEY,PAUSE_KEY
GOTO SET_PAUSE_FLAG
BTFSC ACTIVE_KEY,TIMEUNIT_SETUP_KEY
GOTO SET_SETUP_FLAG
BTFSC ACTIVE_KEY,POWERSAVE_KEY
GOTO SET_POWERSAVE_FLAG
BTFSC ACTIVE_KEY,CLEARUP_KEY
GOTO SET_CLEARUP_FLAG
GOTO END_FLAG_BIT_SET
SECOND_FUNCTION:
;MOVLW 02H
;XORWF RC,1
BTFSC ACTIVE_KEY,VOICE_KEY
GOTO SET_VOICE_FLAG
BTFSC ACTIVE_KEY,LOCK_KEY
GOTO SET_LOCK_FLAG
GOTO END_FLAG_BIT_SET
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SET_PAUSE_FLAG:
;**********************************
BTFSC SYSTEM_STATUS3,LOCK_FLAG
GOTO END_SET_PAUSE_FLAG
;**********************************
BSF SYSTEM_STATUS0,DING_FLAG
BTFSC SYSTEM_STATUS1,SYSTEM_ON_FLAG
GOTO PAUSE_SHUT_FLAG_TEST
BSF SYSTEM_STATUS3,CANCEL_FLAG
GOTO END_SET_PAUSE_FLAG
PAUSE_SHUT_FLAG_TEST:
BTFSS SYSTEM_STATUS1,PAUSE_CANCEL_FLAG
GOTO POWER_PAUSE
POWER_SHUT:
BSF SYSTEM_STATUS2,SHUT_DOWN_FLAG
BCF SYSTEM_STATUS1,PAUSE_CANCEL_FLAG
GOTO END_SET_PAUSE_FLAG
POWER_PAUSE:
BCF SYSTEM_STATUS2,SHUT_DOWN_FLAG
BSF SYSTEM_STATUS1,PAUSE_CANCEL_FLAG
GOTO END_SET_PAUSE_FLAG
END_SET_PAUSE_FLAG:
CLRF ACTIVE_KEY
GOTO END_FLAG_BIT_SET
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;****************************************
SET_SETUP_FLAG:
BTFSC SYSTEM_STATUS3,LOCK_FLAG
GOTO END_SET_SETUP_FLAG
BTFSC SYSTEM_STATUS1,SYSTEM_ON_FLAG
GOTO END_SET_SETUP_FLAG
BTFSC SYSTEM_STATUS0,CLEARUP_FLAG
GOTO END_SET_SETUP_FLAG
BSF SYSTEM_STATUS0,DING_FLAG
INCF TIME_UNIT_NUM,1
MOVLW 08H
SUBWF TIME_UNIT_NUM,0
BTFSS STATUS,0
GOTO END_SET_SETUP_FLAG
CLRF TIME_UNIT_NUM
END_SET_SETUP_FLAG:
CLRF ACTIVE_KEY
GOTO END_FLAG_BIT_SET
;***************************************
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SET_POWERSAVE_FLAG:
BTFSC SYSTEM_STATUS3,LOCK_FLAG
GOTO END_SET_POWERSAVE_FLAG
BTFSC SYSTEM_STATUS1,SYSTEM_ON_FLAG
GOTO END_SET_POWERSAVE_FLAG
BTFSC SYSTEM_STATUS0,CLEARUP_FLAG
GOTO END_SET_POWERSAVE_FLAG
BSF SYSTEM_STATUS0,DING_FLAG
BTFSC SYSTEM_STATUS2,POWERSAVING_DONE_FLAG
GOTO SKIP_POWER_SAVE
BSF DISP_STATUS,POWER_SAVE
SKIP_POWER_SAVE:
END_SET_POWERSAVE_FLAG:
CLRF ACTIVE_KEY
GOTO END_FLAG_BIT_SET
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;***************************************
SET_CLEARUP_FLAG:
BTFSC SYSTEM_STATUS3,LOCK_FLAG
GOTO END_SET_CLEARUP_FLAG
BTFSC SYSTEM_STATUS1,SYSTEM_ON_FLAG
GOTO END_SET_CLEARUP_FLAG
BSF SYSTEM_STATUS0,DING_FLAG
BSF SYSTEM_STATUS0,CLEARUP_FLAG
INCF CLEAR_MODE,1
MOVLW 02H
SUBWF CLEAR_MODE,0
BTFSS STATUS,0
GOTO END_SET_CLEARUP_FLAG
CLRF CLEAR_MODE
END_SET_CLEARUP_FLAG:
CLRF ACTIVE_KEY
GOTO END_FLAG_BIT_SET
;***************************************
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SET_VOICE_FLAG:
BTFSC SYSTEM_STATUS3,LOCK_FLAG
GOTO END_SET_VOICE_FLAG
BTFSC SYSTEM_STATUS1,SYSTEM_ON_FLAG
GOTO END_SET_VOICE_FLAG
BTFSC SYSTEM_STATUS0,CLEARUP_FLAG
GOTO END_SET_VOICE_FLAG
BSF SYSTEM_STATUS0,DING_FLAG
MOVLW 01H
XORWF TMR0_CONFIG_REG,1
END_SET_VOICE_FLAG:
CLRF ACTIVE_KEY
GOTO END_FLAG_BIT_SET
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;***********************************
SET_LOCK_FLAG:
BTFSS SYSTEM_STATUS3,LOCK_FLAG
GOTO LOCK_SET_TEST
BSF SYSTEM_STATUS0,DING_FLAG
BCF SYSTEM_STATUS3,LOCK_FLAG
GOTO END_SET_LOCK_FLAG
LOCK_SET_TEST:
BTFSC SYSTEM_STATUS1,SYSTEM_ON_FLAG
GOTO END_SET_LOCK_FLAG
BTFSC SYSTEM_STATUS2,POWERSAVING_DONE_FLAG
GOTO END_SET_LOCK_FLAG
BTFSC SYSTEM_STATUS0,CLEARUP_FLAG
GOTO END_SET_LOCK_FLAG
BTFSS SYSTEM_STATUS3,SEG_SELECTED
GOTO END_SET_LOCK_FLAG
BSF SYSTEM_STATUS0,DING_FLAG
BSF SYSTEM_STATUS3,LOCK_FLAG
END_SET_LOCK_FLAG:
CLRF ACTIVE_KEY
GOTO END_FLAG_BIT_SET
;**********************************
END_FLAG_BIT_SET:
RETURN
;****************************************
;********************************
SHADOW:
BTFSS SYSTEM_STATUS0,CLEARUP_FLAG
GOTO SYSTEM_STATUS_TEST
CLRF DISP_BUFFER0
BCF DISP_BUFFER9,7
BCF DISP_BUFFER9,6
BCF DISP_BUFFER9,5
BCF DISP_BUFFER9,4
BCF DISP_BUFFER8,4
BCF DISP_BUFFER8,5
GOTO RET_SHADOW
SYSTEM_STATUS_TEST:
BTFSS SYSTEM_STATUS1,SYSTEM_ON_FLAG
GOTO END_SHADOW
BTFSS SYSTEM_STATUS1,PAUSE_CANCEL_FLAG
GOTO SHADOW_DELAY_TEST
BSF DISP_STATUS,CHOICE_DISP
GOTO END_SHADOW
SHADOW_DELAY_TEST:
;BSF STATUS,5
;DECF SHADOW_DELAY,1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -