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

📄 wbl.asm

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