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

📄 wbl.asm

📁 微波炉的代码说明 LCD显示 生产机型 名厂定制
💻 ASM
📖 第 1 页 / 共 5 页
字号:




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 + -