⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wbl.asm

📁 微波炉的代码说明 LCD显示 生产机型 名厂定制
💻 ASM
📖 第 1 页 / 共 5 页
字号:
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 + -