📄 wbl.asm
字号:
;BCF STATUS,5
;BTFSS STATUS,2
;GOTO RET_SHADOW
;BSF STATUS,5
;MOVLW 40H
;MOVWF SHADOW_DELAY
;BCF STATUS,5
BTFSS TMR0_CONFIG_REG,TENTH_SECOND_FLAG
GOTO END_REVOLVING_FRAME_SHADOW
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
COOK_MODE_TEST:
MOVLW 04H
SUBWF COOK_MODE,0
;BTFSC STATUS,0
;GOTO BIT_MOVING
BTFSS STATUS,0
GOTO REVOLVING_FRAME_DYNAMIC_DISP
MOVLW 06H
SUBWF COOK_MODE,0
BTFSC STATUS,0
GOTO BIT_MOVING
BTFSS SYSTEM_STATUS1,MICROWAVE_ON_FLAG
GOTO BIT_MOVING
REVOLVING_FRAME_DYNAMIC_DISP:
MOVLW 0FFH
MOVWF DISP_BUFFER0
BSF DISP_BUFFER9,7
BSF DISP_BUFFER9,6
BSF DISP_BUFFER9,5
BSF DISP_BUFFER9,4
BIT_MOVING:
BSF STATUS,0
BSF STATUS,5
RRF SHADOW0,1
RRF SHADOW1,1
BTFSC SHADOW1,3
GOTO START_SHADOW
BSF STATUS,5
MOVLW 7FH
MOVWF SHADOW0
MOVLW 0FFH
MOVWF SHADOW1
BCF STATUS,5
START_SHADOW:
BCF STATUS,5
BSF STATUS,5
MOVF SHADOW0,0
BCF STATUS,5
ANDWF DISP_BUFFER0,1
BSF STATUS,5
MOVF SHADOW1,0
BCF STATUS,5
ANDWF DISP_BUFFER9,1
END_REVOLVING_FRAME_SHADOW:
BTFSS SYSTEM_STATUS0,HALF_SECOND_FLAG
GOTO END_LABLE_SHADOW
BTFSS SYSTEM_STATUS1,GRILL_ON_FLAG
GOTO SKIP_GRILL_SHADOW
MOVLW 10H
XORWF DISP_BUFFER8,1
GOTO END_LABLE_SHADOW
SKIP_GRILL_SHADOW:
;^^^^^^^^^^^^^^^^^^^^^^^^^
BCF DISP_BUFFER8,4
;^^^^^^^^^^^^^^^^^^^^^^^^^
BTFSS TMR0_CONFIG_REG,THAWING_FLAG
GOTO SKIP_THAWING_SHADOW
MOVLW 20H
XORWF DISP_BUFFER8,1
GOTO END_LABLE_SHADOW
SKIP_THAWING_SHADOW:
END_LABLE_SHADOW:
GOTO RET_SHADOW
END_SHADOW:
BCF DISP_BUFFER8,4
BCF DISP_BUFFER8,5
BSF STATUS,5
MOVLW 7FH
MOVWF SHADOW0
MOVLW 0FFH
MOVWF SHADOW1
MOVLW 40H
MOVWF SHADOW_DELAY
BCF STATUS,5
BTFSC DISP_STATUS,SEG_DISP
GOTO RET_SHADOW
BTFSC DISP_STATUS,MENU_DISP
GOTO RET_SHADOW
BTFSS DISP_STATUS,CHOICE_DISP
GOTO RET_SHADOW
BTFSS SYSTEM_STATUS1,QULITY_ERR_FLAG
GOTO RET_SHADOW
BTFSS SYSTEM_STATUS1,MENU_ERR_FLAG
GOTO RET_SHADOW
MOVLW 04H
SUBWF COOK_MODE,0
;BTFSC STATUS,0
;GOTO RET_SHADOW
BTFSS STATUS,0
GOTO REVOLVING_FRAME_DISP
MOVLW 06H
SUBWF COOK_MODE,0
BTFSC STATUS,0
GOTO RET_SHADOW
BTFSS SYSTEM_STATUS1,MICROWAVE_ON_FLAG
GOTO RET_SHADOW
BTFSS SYSTEM_STATUS1,SYSTEM_ON_FLAG
GOTO RET_SHADOW
REVOLVING_FRAME_DISP:
BSF DISP_BUFFER9,7
BSF DISP_BUFFER9,6
BSF DISP_BUFFER9,5
BSF DISP_BUFFER9,4
MOVLW 0FFH
MOVWF DISP_BUFFER0
RET_SHADOW:
RETURN
DISP_INI:
;LOOP_NUM0
;SEG_NUM
;DISPCODE_ADDR
;MENU_NUM
;T_SECOND
;T_MINUTE
;COOK_MODE0
;COOK_MODE1
;COOK_MODE2
;COOK_MODE3
;COOK_MODE
;QULITY
;SYSTEM_STATUS1
BCF PCLATH,3
BCF PCLATH,4
BCF DISP_BUFFER8,3
BTFSC SYSTEM_STATUS3,LOCK_FLAG
BSF DISP_BUFFER8,3
DISP_STATUS_SELECT:
;BTFSC SYSTEM_STATUS0,CLEARUP_FLAG
;GOTO SHOW_CHOICE
BTFSC DISP_STATUS,SEG_DISP
GOTO SHOW_SEG
BTFSC DISP_STATUS,MENU_DISP
GOTO SHOW_MENU
BTFSC DISP_STATUS,CHOICE_DISP
GOTO SHOW_CHOICE
BTFSC DISP_STATUS,POWER_SAVE
GOTO POWER_SAVING_MODE
BTFSS DISP_STATUS,REFLASH_DISP
GOTO RET_DISP_INI
BCF SYSTEM_STATUS2,POWERSAVING_DONE_FLAG
GOTO DISPLAY_REFLASH
;MOVF DISP_STATUS_BUFFER,0
;MOVWF DISP_STATUS
;GOTO DISP_STATUS_SELECT
SHOW_SEG:
BCF SYSTEM_STATUS2,POWERSAVING_DONE_FLAG
MOVLW 0AH
MOVWF LOOP_NUM0
;MOVLW 20H
MOVLW DISP_BUFFER_STARTING_ADDR
MOVWF FSR
MOVLW 0DH
MOVWF PCLATH
MOVF SEG_NUM,0
CALL SEG_DISPCODEADDR_TABLE
MOVWF DISPCODE_ADDR
LOOP2:
MOVLW 0DH
MOVWF PCLATH
MOVF DISPCODE_ADDR,0
CALL SEG_DISP_TABLE
MOVWF INDF
BCF PCLATH,3
BCF PCLATH,4
INCF FSR,1
INCF DISPCODE_ADDR,1
DECFSZ LOOP_NUM0,1
GOTO LOOP2
;BCF DISP_BUFFER2,7;M
;BCF DISP_BUFFER7,7;S
BCF DISP_BUFFER4,7;w
BCF DISP_BUFFER5,7;kg
BCF DISP_BUFFER6,7;DP
GOTO END_DISP_INI
SHOW_MENU:
BCF SYSTEM_STATUS2,POWERSAVING_DONE_FLAG
MOVF MENU_NUM,0
MOVWF OCT_NUM
CALL BCD_EXCHANGE
MOVF ONE_LEVEL,0
MOVWF DISP_BUFFER7
MOVF TEN_LEVEL,0
MOVWF DISP_BUFFER3
END_SHOW_MENU:
MOVLW 14H
MOVWF DISP_BUFFER1
MOVWF DISP_BUFFER2
MOVWF DISP_BUFFER4
MOVWF DISP_BUFFER5
MOVWF DISP_BUFFER6
BCF DISP_BUFFER2,7;M
BCF DISP_BUFFER7,7;S
BCF DISP_BUFFER4,7;w
BCF DISP_BUFFER5,7;kg
BCF DISP_BUFFER6,7;DP
MOVLW 0C0H
ANDWF DISP_BUFFER8,1
GOTO END_DISP_INI
SHOW_CHOICE:
BCF SYSTEM_STATUS2,POWERSAVING_DONE_FLAG
MOVF T_SECOND,0
MOVWF OCT_NUM
CALL BCD_EXCHANGE
MOVF ONE_LEVEL,0
MOVWF DISP_BUFFER7
MOVF TEN_LEVEL,0
MOVWF DISP_BUFFER3
MOVF T_MINUTE,0
MOVWF OCT_NUM
CALL BCD_EXCHANGE
MOVF ONE_LEVEL,0
MOVWF DISP_BUFFER2
MOVF TEN_LEVEL,0
MOVWF DISP_BUFFER1
BSF DISP_BUFFER2,7;M
MOVF TEN_LEVEL,1
BTFSS STATUS,2
GOTO END_BCD_GET
MOVLW 14H
MOVWF DISP_BUFFER1
MOVF ONE_LEVEL,1
BTFSS STATUS,2
GOTO END_BCD_GET
MOVLW 14H
MOVWF DISP_BUFFER2
BCF DISP_BUFFER2,7;M
END_BCD_GET:
BSF DISP_BUFFER7,7;S
BCF DISP_BUFFER4,7;w
BCF DISP_BUFFER5,7;kg
BCF DISP_BUFFER6,7;DP
;************************************
;BTFSS SYSTEM_STATUS1,SYSTEM_ON_FLAG
;GOTO LABLE_MODIFY
;BTFSC TMR0_CONFIG_REG,LABLE_HOLDING_FLAG
;GOTO END_DISP_INI
;LABLE_MODIFY:
;************************************
;***********************************
;BCF DISP_BUFFER8,5
;BTFSC TMR0_CONFIG_REG,THAWING_FLAG
;BSF DISP_BUFFER8,5
;BCF DISP_BUFFER8,4
;BTFSC SYSTEM_STATUS1,GRILL_ON_FLAG
;BSF DISP_BUFFER8,4
;***********************************
MOVLW 0EH
MOVWF PCLATH
MOVF TIME_SEG,0
CALL SEG_TIME_STARTING_ADDR_TABLE
BCF PCLATH,3
BCF PCLATH,4
MOVWF FSR
INCF FSR,1
INCF FSR,1
MOVF INDF,0
MOVWF COOK_MODE
;TIME_SEG_TEST:
;MOVLW 00H
;SUBWF TIME_SEG,0
;BTFSC STATUS,2
;GOTO SEG0_GET
;MOVLW 01H
;SUBWF TIME_SEG,0
;BTFSC STATUS,2
;GOTO SEG1_GET
;MOVLW 02H
;SUBWF TIME_SEG,0
;BTFSC STATUS,2
;GOTO SEG2_GET
;MOVLW 03H
;SUBWF TIME_SEG,0
;BTFSC STATUS,2
;GOTO SEG3_GET
;SEG0_GET:
;MOVF COOK_MODE0,0
;MOVWF COOK_MODE
;GOTO END_COOKMODE_GET
;SEG1_GET:
;MOVF COOK_MODE1,0
;MOVWF COOK_MODE
;GOTO END_COOKMODE_GET
;SEG2_GET:
;MOVF COOK_MODE2,0
;MOVWF COOK_MODE
;GOTO END_COOKMODE_GET
;SEG3_GET:
;MOVF COOK_MODE3,0
;MOVWF COOK_MODE
;GOTO END_COOKMODE_GET
END_COOKMODE_GET:
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
MOVF COOK_MODE,0
MOVWF COOK_MODE_TEMP
BCF STATUS,0
;RLF COOK_MODE,1
RLF COOK_MODE_TEMP,1
;ADDWF COOK_MODE,1;*************COOK_MODE X 3
ADDWF COOK_MODE_TEMP,1
MOVLW 0BH
MOVWF PCLATH
;MOVF COOK_MODE,0
MOVF COOK_MODE_TEMP,0
CALL DISP_TABLE
MOVWF DISP_BUFFER6
;INCF COOK_MODE,1
;MOVF COOK_MODE,0
INCF COOK_MODE_TEMP,1
MOVF COOK_MODE_TEMP,0
CALL DISP_TABLE
MOVWF DISP_BUFFER5
;INCF COOK_MODE,1
;MOVF COOK_MODE,0
INCF COOK_MODE_TEMP,1
MOVF COOK_MODE_TEMP,0
CALL DISP_TABLE
MOVWF DISP_BUFFER4
BCF PCLATH,3
BCF PCLATH,4
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
BTFSS SYSTEM_STATUS1,SYSTEM_ON_FLAG
GOTO SKIP_POWER_DISP_ESPECIAL_MODIFY
MOVLW 0CH
SUBWF DISP_BUFFER6,0
BTFSS STATUS,2
GOTO SKIP_POWER_DISP_ESPECIAL_MODIFY
BTFSS SYSTEM_STATUS1,MICROWAVE_ON_FLAG
GOTO SKIP_POWER_DISP_ESPECIAL_MODIFY
MOVLW 08H
MOVWF DISP_BUFFER6
MOVLW 05H
MOVWF DISP_BUFFER5
CLRF DISP_BUFFER4
SKIP_POWER_DISP_ESPECIAL_MODIFY:
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
MOVLW 0AH
SUBWF DISP_BUFFER6,0
BTFSS STATUS,0
BSF DISP_BUFFER4,7;w
BCF DISP_BUFFER5,7;kg
BCF DISP_BUFFER6,7;DP
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^
QULITY_DISP:
MOVF QULITY,0
MOVWF OCT_NUM
CALL BCD_EXCHANGE
BTFSC SYSTEM_STATUS1,QULITY_ERR_FLAG
GOTO MENUNUM_DISP
MOVF ONE_LEVEL,0
MOVWF DISP_BUFFER4
MOVF TEN_LEVEL,0
MOVWF DISP_BUFFER5
MOVF HUNDRED_LEVEL,0
MOVWF DISP_BUFFER6
;*************************
BCF DISP_BUFFER4,7;w
BSF DISP_BUFFER5,7;kg
BSF DISP_BUFFER6,7;DP
;*************************
GOTO END_DISP_INI
;^^^^^^^^^^^^^^^^^^^^^^^^^^
MENUNUM_DISP:
BTFSC SYSTEM_STATUS1,MENU_ERR_FLAG
;GOTO POWER_DISP
GOTO END_DISP_INI
SEND_MENUNUM:
MOVF MENU_NUM,0
MOVWF OCT_NUM
CALL BCD_EXCHANGE
MOVF ONE_LEVEL,0
MOVWF DISP_BUFFER4
MOVF TEN_LEVEL,0
MOVWF DISP_BUFFER5
MOVLW 14H
MOVWF DISP_BUFFER6
BCF DISP_BUFFER4,7;w
BCF DISP_BUFFER5,7;kg
BCF DISP_BUFFER6,7;DP
GOTO END_DISP_INI
;POWER_DISP:
;BTFSC SYSTEM_STATUS1,SYSTEM_ON_FLAG
;GOTO SKIP_REVOLVING_FRAME_MODIFY
;MOVLW 0AH
;SUBWF DISP_BUFFER6,0
;BTFSC STATUS,0
;GOTO END_DISP_INI
;MOVLW 0FFH
;MOVWF DISP_BUFFER0
;MOVLW 0FH
;ANDWF DISP_BUFFER9,1
;MOVLW 0F0H
;ADDWF DISP_BUFFER9,1
;SKIP_REVOLVING_FRAME_MODIFY:
;GOTO END_DISP_INI
POWER_SAVING_MODE:
MOVLW 14H
MOVWF DISP_BUFFER1
MOVWF DISP_BUFFER2
MOVWF DISP_BUFFER3
MOVWF DISP_BUFFER4
MOVWF DISP_BUFFER5
MOVWF DISP_BUFFER6
MOVWF DISP_BUFFER7
CLRF DISP_BUFFER0
CLRF DISP_BUFFER8
CLRF DISP_BUFFER9
BSF SYSTEM_STATUS2,POWERSAVING_DONE_FLAG
GOTO END_DISP_INI
DISPLAY_REFLASH:
BSF STATUS,5
CLRF DELTA_ADDR
BCF STATUS,5
REFLASH_LOOP:
BSF STATUS,5
MOVLW DISP_BUFFER_COPY_STARTING_ADDR
MOVWF FSR
MOVF DELTA_ADDR,0
ADDWF FSR,1
BSF FSR,7
MOVF INDF,0
BCF FSR,7
MOVWF EXCHANGE_BUFFER
BCF STATUS,5
MOVLW DISP_BUFFER_STARTING_ADDR
MOVWF FSR
BSF STATUS,5
MOVF DELTA_ADDR,0
ADDWF FSR,1
MOVF EXCHANGE_BUFFER,0
BCF STATUS,5
MOVWF INDF
BSF STATUS,5
INCF DELTA_ADDR,1
MOVF DELTA_ADDR,0
BCF STATUS,5
ADDLW DISP_BUFFER_COPY_STARTING_ADDR
SUBLW DISP_BUFFER_COPY_END_ADDR
BTFSS STATUS,0
GOTO RET_DISP_INI
GOTO REFLASH_LOOP
;BSF STATUS,5
;MOVF DISP_BUFFER0_COPY,0
;BCF STATUS,5
;MOVWF DISP_BUFFER0
;BSF STATUS,5
;MOVF DISP_BUFFER1_COPY,0
;BCF STATUS,5
;MOVWF DISP_BUFFER1
;BSF STATUS,5
;MOVF DISP_BUFFER2_COPY,0
;BCF STATUS,5
;MOVWF DISP_BUFFER2
;BSF STATUS,5
;MOVF DISP_BUFFER3_COPY,0
;BCF STATUS,5
;MOVWF DISP_BUFFER3
;BSF STATUS,5
;MOVF DISP_BUFFER4_COPY,0
;BCF STATUS,5
;MOVWF DISP_BUFFER4
;BSF STATUS,5
;MOVF DISP_BUFFER5_COPY,0
;BCF STATUS,5
;MOVWF DISP_BUFFER5
;BSF STATUS,5
;MOVF DISP_BUFFER6_COPY,0
;BCF STATUS,5
;MOVWF DISP_BUFFER6
;BSF STATUS,5
;MOVF DISP_BUFFER7_COPY,0
;BCF STATUS,5
;MOVWF DISP_BUFFER7
;BSF STATUS,5
;MOVF DISP_BUFFER8_COPY,0
;BCF STATUS,5
;MOVWF DISP_BUFFER8
;BSF STATUS,5
;MOVF DISP_BUFFER9_COPY,0
;BCF STATUS,5
;MOVWF DISP_BUFFER9
;GOTO RET_DISP_INI
END_DISP_INI:
BTFSS SYSTEM_STATUS0,CLEARUP_FLAG
GOTO DISP_BUFFER_CODING
MOVF CLEAR_MODE,1
BTFSC STATUS,2
GOTO CLEAR_MODE0_LABLE
GOTO CLEAR_MODE1_LABLE
CLEAR_MODE0_LABLE:
MOVLW 14H
MOVWF DISP_BUFFER5
GOTO END_CLEARUP_LABLE_MODIFY
CLEAR_MODE1_LABLE:
MOVLW 0AH
MOVWF DISP_BUFFER5
GOTO END_CLEARUP_LABLE_MODIFY
END_CLEARUP_LABLE_MODIFY:
MOVLW 14H
MOVWF DISP_BUFFER6
MOVLW 0AH
MOVWF DISP_BUFFER4
CLRF DISP_BUFFER0
CLRF DISP_BUFFER8
CLRF DISP_BUFFER9
DISP_BUFFER_CODING:
BSF STATUS,5
MOVLW 01H
MOVWF DELTA_ADDR
CODING_LOOP:
MOVLW DISP_BUFFER_STARTING_ADDR
MOVWF FSR
MOVF DELTA_ADDR,0
ADDWF FSR,1
MOVLW 0BH
MOVWF PCLATH
MOVF INDF,0
ANDLW 7FH
CALL CODE_TABLE
BCF PCLATH,3
BCF PCLATH,4
BTFSC INDF,7
GOTO SET_DISPBIT0
MOVWF INDF
GOTO NEXT_CODING
SET_DISPBIT0:
ADDLW 01H
MOVWF INDF
NEXT_CODING:
INCF DELTA_ADDR,1
MOVF DELTA_ADDR,0
ADDLW DISP_BUFFER_STARTING_ADDR
ADDLW 02H
SUBLW DISP_BUFFER_END_ADDR
BTFSC STATUS,0
GOTO CODING_LOOP
BCF STATUS,5
;******************
;MOVLW 0BH
;MOVWF PCLATH
;MOVF DISP_BUFFER1,0
;CALL CODE_TABLE
;MOVWF DISP_BUFFER1
;******************
;********************
;MOVLW 0BH
;MOVWF PCLATH
;MOVF DISP_BUFFER2,0
;ANDLW 7FH
;CALL CODE_TABLE
;BCF PCLATH,3
;BCF PCLATH,4
;BTFSC DISP_BUFFER2,7
;GOTO SET_M
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -