📄 wbl.asm
字号:
BTFSC RA,5
GOTO END_STARTUP_CONFIG
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SOFTWARE_RESTRICT_TEST:
BTFSC SYSTEM_STATUS3,LOCK_FLAG
GOTO END_STARTUP_CONFIG
BTFSC SYSTEM_STATUS1,PAUSE_CANCEL_FLAG
GOTO SYSTEM_STARTED
;^^^^^^^^^^^^^^^^^^^^^^^
BTFSS TMR0_CONFIG_REG,ZERO_START_FLAG
;GOTO END_ZERO_START_FLAG_TEST
GOTO NO_ZERO_START_FLAG
ZERO_STARTING:
MOVLW 1EH
ADDWF T_SECOND,1
MOVLW 3CH
SUBWF T_SECOND,0
BTFSS STATUS,0
GOTO END_ZERO_START_FLAG_TEST
MOVWF T_SECOND
INCF T_MINUTE,1
END_ZERO_START_FLAG_TEST:
MOVLW 05H
SUBWF T_MINUTE,0
BTFSS STATUS,0
GOTO SKIP_5M_LIMIT
MOVLW 05H
MOVWF T_MINUTE
CLRF T_SECOND
SKIP_5M_LIMIT:
MOVF T_SECOND,0
MOVWF SEG_SECOND
MOVF T_MINUTE,0
MOVWF SEG_MINUTE
CLRF TIME_SEG
BSF DISP_STATUS,CHOICE_DISP
BSF SYSTEM_STATUS2,SEG_TIME_OVER_FLAG
CALL TIME_LOAD
;^^^^^^^^^^^^^^^^^
BSF STATUS,5
MOVLW 02H
MOVWF VOICE_NUM_TYPE
BCF STATUS,5
;^^^^^^^^^^^^^^^^^^^
BSF SYSTEM_STATUS0,DING_FLAG
NO_ZERO_START_FLAG:
BTFSC SYSTEM_STATUS1,SYSTEM_ON_FLAG
GOTO END_STARTUP_CONFIG
;^^^^^^^^^^^^^^^^^^^^^^^
BTFSC TMR0_CONFIG_REG,ZERO_START_FLAG
GOTO SKIP_CHOICE_SELECT_TEST
ZERO_TIME_TEST:
MOVF T_MINUTE,0
SUBWF T_SECOND,0
BTFSS STATUS,2
GOTO OTHER_RESTRICT_TEST
MOVF T_MINUTE,1
BTFSC STATUS,2
GOTO END_STARTUP_CONFIG
OTHER_RESTRICT_TEST:
BTFSS SYSTEM_STATUS3,CHOICE_SELECTED
GOTO END_STARTUP_CONFIG
SKIP_CHOICE_SELECT_TEST:
SYSTEM_STARTED:
;^^^^^^^^^^^^^^^^^
BSF STATUS,5
MOVLW 02H
MOVWF VOICE_NUM_TYPE
BCF STATUS,5
;^^^^^^^^^^^^^^^^^^^
BSF SYSTEM_STATUS0,DING_FLAG
BSF STATUS,5
CLRF ms_BUFFER
MOVLW 7DH
MOVWF HALF_SECOND_COUNTER
MOVLW 19H
MOVWF TENTH_SECOND_COUNTER
BCF STATUS,5
MOVF T1L,0
MOVWF TMR1L
MOVF T1H,0
MOVWF TMR1H
MOVLW 0FAH
MOVWF INT_NUM0
;BSF STATUS,5
;CLRF COOL_TIMER_SECOND
;CLRF COOL_TIMER_MINUTE
;BCF STATUS,5
CLRF SECOND_TEMP
CLRF MINUTE_TEMP
;*********************
BSF T1CON,0
;*********************
BCF SYSTEM_STATUS1,PAUSE_CANCEL_FLAG
BSF DISP_STATUS,CHOICE_DISP
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
BSF SYSTEM_STATUS3,CHOICE_SELECTED
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
;CLRF DISP_STATUS_BUFFER
;BSF DISP_STATUS_BUFFER,CHOICE_DISP
BSF SYSTEM_STATUS1,QULITY_ERR_FLAG
BSF SYSTEM_STATUS1,MENU_ERR_FLAG
BCF SYSTEM_STATUS1,POWER_ERR_FLAG
;CALL POWER_CONFIG
FINISH_CONFIG:
BSF SYSTEM_STATUS1,SYSTEM_ON_FLAG
CALL POWER_CONFIG
BSF SYSTEM_STATUS0,TIMER_START_FLAG
BCF SYSTEM_STATUS2,SEG_TIME_OVER_FLAG
BCF SYSTEM_STATUS2,T_TIME_OVER_FLAG
BCF SYSTEM_STATUS2,WORK_TIME_OVER_FLAG
END_STARTUP_CONFIG:
;BSF STATUS,5
;MOVF START_KEY,0
;MOVWF START_KEY_LAST
;BCF STATUS,5
RETURN
SHUT_DOWN_CONFIG:
;BCF RC,0
;BCF RA,4
;BCF RA,3
CALL POWER_CONFIG
BCF SYSTEM_STATUS1,MICROWAVE_ON_FLAG
BCF SYSTEM_STATUS1,GRILL_ON_FLAG
BCF SYSTEM_STATUS2,BLOWER_ON_FLAG
BCF SYSTEM_STATUS1,SYSTEM_ON_FLAG
BCF SYSTEM_STATUS0,CLEARUP_FLAG
BCF SYSTEM_STATUS1,PAUSE_CANCEL_FLAG
BCF SYSTEM_STATUS2,SHUT_DOWN_FLAG
BSF SYSTEM_STATUS3,SEG_SELECTED
BCF SYSTEM_STATUS3,MENU_SELECTED
BCF SYSTEM_STATUS3,CHOICE_SELECTED
;*********************
BSF T1CON,0
;*********************
;MOVF T1L,0
;MOVWF TMR1L
;MOVF T1H,0
;MOVWF TMR1H
;MOVLW 0FAH
;MOVWF INT_NUM0
BCF SYSTEM_STATUS2,SEG_TIME_OVER_FLAG
BCF SYSTEM_STATUS2,T_TIME_OVER_FLAG
BCF SYSTEM_STATUS2,WORK_TIME_OVER_FLAG
BCF SYSTEM_STATUS0,TIMER_START_FLAG
BSF DISP_STATUS,SEG_DISP
CLRF T_SECOND
CLRF T_MINUTE
RETURN
POWER_CONFIG:
BTFSS TMR0_CONFIG_REG,DOOR_OPENED_FLAG
GOTO SKIP_DOOR_OPENED_SER
BCF T1CON,0
;BTFSS SYSTEM_STATUS1,SYSTEM_ON_FLAG
;CALL RESET_DELAYTIMER
GOTO DOOR_OPENED_SER
SKIP_DOOR_OPENED_SER:
BTFSS SYSTEM_STATUS1,SYSTEM_ON_FLAG
GOTO NON_POWER_ON
BTFSS SYSTEM_STATUS2,SHUT_DOWN_FLAG
GOTO PAUSE_CANCEL_FLAG_TEST
GOTO NON_POWER_ON
PAUSE_CANCEL_FLAG_TEST:
;^^^^^^^^^^^^^^^^^^^^^^^^
BTFSS SYSTEM_STATUS1,PAUSE_CANCEL_FLAG
GOTO COOL_FLAG_TEST
BCF T1CON,0
GOTO NON_POWER_ON
;^^^^^^^^^^^^^^^^^^^^^^^^
COOL_FLAG_TEST:
BTFSC SYSTEM_STATUS3,COOL_FLAG
GOTO COOL_SYSTEM
POWER_SELECT:
MICROWAVE_POWER_TEST:
BTFSS SYSTEM_STATUS1,MICROWAVE_ON_FLAG
GOTO GRILL_POWER_TEST
BSF RC,0
BCF RA,4
;**************
BSF RA,3
;**************
GOTO END_POWER_CONFIG
GRILL_POWER_TEST:
BTFSS SYSTEM_STATUS1,GRILL_ON_FLAG
GOTO BLOWING_TEST
BCF RC,0
;***************
BSF RA,3
;***************
BSF RA,4
GOTO END_POWER_CONFIG
BLOWING_TEST:
BTFSS SYSTEM_STATUS2,BLOWER_ON_FLAG
GOTO NON_POWER_ON
BCF RC,0
BCF RA,4
BSF RA,3
GOTO END_POWER_CONFIG
NON_POWER_ON:
BCF RC,0
BCF RA,4
BCF RA,3
GOTO END_POWER_CONFIG
DOOR_OPENED_SER:
COOL_SYSTEM:
BCF RC,0
BCF RA,4
BSF RA,3
GOTO END_POWER_CONFIG
END_POWER_CONFIG:
RETURN
SECOND_TEST:
BCF SYSTEM_STATUS0,SECOND_FLAG
BCF SYSTEM_STATUS0,HALF_SECOND_FLAG
BCF TMR0_CONFIG_REG,TENTH_SECOND_FLAG
NOP
NOP
NOP
BSF STATUS,5
MOVF ms_BUFFER,1
BCF STATUS,5
BTFSC STATUS,2
GOTO END_SECOND_TEST
s_TEST:
BSF STATUS,5
DECF ms_BUFFER,1
DECFSZ TENTH_SECOND_COUNTER,1
GOTO END_TENTHSECOND_TEST
MOVLW 19H
MOVWF TENTH_SECOND_COUNTER
BCF STATUS,5
BSF TMR0_CONFIG_REG,TENTH_SECOND_FLAG
END_TENTHSECOND_TEST:
BSF STATUS,5
DECFSZ HALF_SECOND_COUNTER,1
GOTO END_HALFSECOND_TEST
MOVLW 7DH
MOVWF HALF_SECOND_COUNTER
BCF STATUS,5
BSF SYSTEM_STATUS0,HALF_SECOND_FLAG
END_HALFSECOND_TEST:
BCF STATUS,5
DECFSZ INT_NUM0,1
GOTO END_SECOND_TEST
MOVLW 0FAH
MOVWF INT_NUM0 ;1秒
BSF SYSTEM_STATUS0,SECOND_FLAG
END_SECOND_TEST:
RETURN
TIMER:
TIMER_STATUS_TEST:
BTFSS SYSTEM_STATUS0,TIMER_START_FLAG
GOTO RESET_TIMER
;SHUT_TEST:
;BTFSS SYSTEM_STATUS2,SHUT_DOWN_FLAG
;GOTO PAUSE_TEST
;CALL SHUT_DOWN_CONFIG
;GOTO END_TIME_TEST
;PAUSE_TEST:
;BTFSC RA,5
;BSF SYSTEM_STATUS1,PAUSE_CANCEL_FLAG
START_TIMER:
CALL SECOND_TEST
BTFSS SYSTEM_STATUS0,SECOND_FLAG
GOTO END_TIME_TEST
BCF SYSTEM_STATUS0,SECOND_FLAG
;***********************
CALL COOL_TIMER_TEST
;***********************
BSF DISP_STATUS,CHOICE_DISP
;CLRF DISP_STATUS_BUFFER
;BSF DISP_STATUS_BUFFER,CHOICE_DISP
TOTAL_TIME_OVER_TEST:
DECFSZ T_SECOND,1
GOTO TSECOND_OVERFLOW_TEST
T_MINUTE_OVER_TEST:
MOVF T_MINUTE,1
BTFSS STATUS,2
GOTO END_TOTAL_TIME_OVER_TEST
;^^^^^^^^^^^^^^^^^^^^^^^^^^^
BSF STATUS,5
MOVLW 03H
MOVWF VOICE_NUM_TYPE
BCF STATUS,5
;^^^^^^^^^^^^^^^^^^^^^^^^^^^
BSF SYSTEM_STATUS0,DING_FLAG
;***************************
CALL SHUT_DOWN_CONFIG
;***********************************
GOTO END_TIME_TEST
TSECOND_OVERFLOW_TEST:
MOVLW 0FFH
SUBWF T_SECOND,0
BTFSS STATUS,2
GOTO END_TOTAL_TIME_OVER_TEST
MOVLW 3BH
MOVWF T_SECOND
DECF T_MINUTE,1
END_TOTAL_TIME_OVER_TEST:
SEG_TIME_OVER_TEST:
DECFSZ SEG_SECOND,1
GOTO SEGSEC_OVERFLOW_TEST
SEG_MINITE_OVER_TEST:
MOVF SEG_MINUTE,1
BTFSS STATUS,2
GOTO END_SEG_TIME_OVER_TEST
BSF SYSTEM_STATUS2,SEG_TIME_OVER_FLAG
INCF TIME_SEG,1
CALL TIME_LOAD
GOTO END_TIME_TEST
SEGSEC_OVERFLOW_TEST:
MOVLW 0FFH
SUBWF SEG_SECOND,0
BTFSS STATUS,2
GOTO END_SEG_TIME_OVER_TEST
MOVLW 3BH
MOVWF SEG_SECOND
DECF SEG_MINUTE,1
;**************
;**************
;**************
END_SEG_TIME_OVER_TEST:
T_TIME_OVER_TEST:
DECFSZ T_TIME,1
GOTO END_T_TIME_OVER_TEST
BSF SYSTEM_STATUS2,T_TIME_OVER_FLAG
;BSF RC,0
CALL TIME_LOAD
;************************
;CALL COOL_TIMER_TEST
;**************
GOTO END_TIME_TEST
END_T_TIME_OVER_TEST:
WORK_TIME_OVER_TEST:
DECFSZ WORK_TIME,1
GOTO END_WORK_TIME_OVER_TEST
BSF SYSTEM_STATUS2,WORK_TIME_OVER_FLAG
CALL TIME_LOAD
END_WORK_TIME_OVER_TEST:
GOTO END_TIME_TEST
RESET_TIMER:
;BCF T1CON,0
;MOVF T1L,0
;MOVWF TMR1L
;MOVF T1H,0
;MOVWF TMR1H
;MOVLW 0FAH
;MOVWF INT_NUM0
;BCF SYSTEM_STATUS0,us_FLAG
BCF SYSTEM_STATUS1,MICROWAVE_ON_FLAG
BCF SYSTEM_STATUS1,GRILL_ON_FLAG
BCF SYSTEM_STATUS2,BLOWER_ON_FLAG
CLRF TIME_SEG
BSF SYSTEM_STATUS2,SEG_TIME_OVER_FLAG
CALL TIME_LOAD
END_TIME_TEST:
SHUT_TEST:
BTFSS SYSTEM_STATUS2,SHUT_DOWN_FLAG
GOTO PAUSE_TEST
CALL SHUT_DOWN_CONFIG
GOTO END_TIMER
PAUSE_TEST:
BCF TMR0_CONFIG_REG,DOOR_OPENED_FLAG
BTFSS RA,5
GOTO END_TIMER
BSF TMR0_CONFIG_REG,DOOR_OPENED_FLAG
BTFSC SYSTEM_STATUS1,SYSTEM_ON_FLAG
BSF SYSTEM_STATUS1,PAUSE_CANCEL_FLAG
END_TIMER:
CALL POWER_CONFIG
CALL STARTUP_CONFIG
RET_TIMER:
RETURN
TIME_LOAD:
SEG_TIME_LOAD_TEST:
BTFSS SYSTEM_STATUS2,SEG_TIME_OVER_FLAG
GOTO T_TIME_LOAD_TEST
BCF SYSTEM_STATUS2,SEG_TIME_OVER_FLAG
BCF SYSTEM_STATUS2,T_TIME_OVER_FLAG
BCF SYSTEM_STATUS2,WORK_TIME_OVER_FLAG
MOVLW 0EH
MOVWF PCLATH
MOVF TIME_SEG,0
CALL SEG_TIME_STARTING_ADDR_TABLE
BCF PCLATH,3
BCF PCLATH,4
MOVWF FSR
MOVF INDF,0
MOVWF SEG_SECOND
INCF FSR,1
MOVF INDF,0
MOVWF SEG_MINUTE
INCF FSR,1
MOVF INDF,0
MOVWF COOK_MODE
;MOVF TIME_SEG,1
;BTFSC STATUS,2
;GOTO SEG0_LOAD
;MOVLW 01H
;SUBWF TIME_SEG,0
;BTFSC STATUS,2
;GOTO SEG1_LOAD
;MOVLW 02H
;SUBWF TIME_SEG,0
;BTFSC STATUS,2
;GOTO SEG2_LOAD
;MOVLW 03H
;SUBWF TIME_SEG,0
;BTFSC STATUS,2
;GOTO SEG3_LOAD
;SEG0_LOAD:
;MOVF SECOND0,0
;MOVWF SEG_SECOND
;MOVF MINUTE0,0
;MOVWF SEG_MINUTE
;MOVF COOK_MODE0,0
;MOVWF COOK_MODE
;GOTO END_SEGTIME_LOAD
;SEG1_LOAD:
;MOVF SECOND1,0
;MOVWF SEG_SECOND
;MOVF MINUTE1,0
;MOVWF SEG_MINUTE
;MOVF COOK_MODE1,0
;MOVWF COOK_MODE
;GOTO END_SEGTIME_LOAD
;SEG2_LOAD:
;MOVF SECOND2,0
;MOVWF SEG_SECOND
;MOVF MINUTE2,0
;MOVWF SEG_MINUTE
;MOVF COOK_MODE2,0
;MOVWF COOK_MODE
;GOTO END_SEGTIME_LOAD
;SEG3_LOAD:
;MOVF SECOND3,0
;MOVWF SEG_SECOND
;MOVF MINUTE3,0
;MOVWF SEG_MINUTE
;MOVF COOK_MODE3,0
;MOVWF COOK_MODE
;GOTO END_SEGTIME_LOAD
END_SEGTIME_LOAD:
;^^^^^^^^^^^^^^^^^^^^^^^^^^
BCF TMR0_CONFIG_REG,DING_TIMER_FLAG
GELI_TIMER_DING_TEST:
MOVLW 0C5H
SUBWF MENU_ADDR,0
BTFSC STATUS,2
GOTO GELI_TIMER_DING
JICHI_TIMER_DING_TEST:
MOVLW 0C8H
SUBWF MENU_ADDR,0
BTFSC STATUS,2
GOTO JICHI_TIMER_DING
KAOYU_TIMER_DING_TEST:
MOVLW 0D0H
SUBWF MENU_ADDR,0
BTFSC STATUS,2
GOTO KAOYU_TIMER_DING
GOTO NO_TIMER_DING
GELI_TIMER_DING:
BSF STATUS,5
CLRF SECOND_REMAINING
MOVLW 01H
MOVWF MINUTE_REMAINING
BCF STATUS,5
GOTO END_TIMER_DING
JICHI_TIMER_DING:
BSF STATUS,5
CLRF SECOND_REMAINING
MOVLW 02H
MOVWF MINUTE_REMAINING
BCF STATUS,5
GOTO END_TIMER_DING
KAOYU_TIMER_DING:
BSF STATUS,5
MOVLW 1EH
MOVWF SECOND_REMAINING
MOVLW 04H
MOVWF MINUTE_REMAINING
BCF STATUS,5
GOTO END_TIMER_DING
END_TIMER_DING:
BSF TMR0_CONFIG_REG,DING_TIMER_FLAG
NO_TIMER_DING:
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
BCF SYSTEM_STATUS3,COOL_FLAG
BCF SYSTEM_STATUS3,FULL_WAVE_FLAG
BSF STATUS,5
CLRF COOL_TIMER_SECOND
CLRF COOL_TIMER_MINUTE
BCF STATUS,5
BCF SYSTEM_STATUS3,WAVE_OVER5M_FLAG
MOVF SEG_SECOND,0
BSF STATUS,5
MOVWF SEG_SECOND_REMAINING
BCF STATUS,5
MOVF SEG_MINUTE,0
BSF STATUS,5
MOVWF SEG_MINUTE_REMAINING
BCF STATUS,5
FULL_WAVE_TEST:
MOVF COOK_MODE,1
BTFSS STATUS,2
GOTO MODE_PARA_LOAD
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -