📄 zt0519.asm
字号:
RE_IS_TFT_BRIGHT
MOVLW 0A3H
MOVWF TX_BUFF0
MOVF TFT_BRIGHT,W
MOVWF TX_BUFF1
CALL ATX_DSP
BTFSC COMM_FLAG,TX_DSP_SUCCESS
GOTO IS_TFT_BRIGHT_END
DECFSZ TEMP,F
GOTO RE_IS_TFT_BRIGHT
IS_TFT_BRIGHT_END
BCF COMM_FLAG,TX_DSP_SUCCESS
RETLW 00H
;------------------------------------------------
TX_A6_DSP
MOVLW 03H
MOVWF TEMP
RE_IS_SCREEN_MODE
MOVLW 0A6H
MOVWF TX_BUFF0
MOVF SCREEN_MODE,W
MOVWF TX_BUFF1
CALL ATX_DSP
BTFSC COMM_FLAG,TX_DSP_SUCCESS
GOTO IS_SCREEN_MODE_END
DECFSZ TEMP,F
GOTO RE_IS_SCREEN_MODE
IS_SCREEN_MODE_END
BCF COMM_FLAG,TX_DSP_SUCCESS
RETLW 00H
;------------------------------------------------
;===================================================================
DO_1S
BCF VOL_FLAG,ONE_S
BTFSC FLAG,CONFIG_CHANGE
GOTO W_ALL_CONFIG
BTFSS VOL_FLAG,NEED_MUTE
GOTO DO_1S_1
DECFSZ MUTE_COUNT,F
GOTO DO_1S_1
BCF PORTC,MUTE
BCF VOL_FLAG,NEED_MUTE
DO_1S_1
DECFSZ S10_COUNT,F
GOTO DO_1S_END
MOVLW .10
MOVWF S10_COUNT
DO_10S
BTFSC VOL_FLAG,NO_POWER
GOTO ASTANDBY_MODE
BTFSS VOL_FLAG,LOW_POWER
GOTO DO_10S_2
BCF VOL_FLAG,LOW_POWER
CALL GET_VOL
BTFSC VOL_FLAG,NO_POWER
GOTO ASTANDBY_MODE
DO_10S_1 BTFSS VOL_FLAG,LOW_POWER
GOTO DO_10S_2
MOVLW 0A5H
MOVWF TX_BUFF0
CLRF TX_BUFF1
CALL ATX_DSP
GOTO DO_1S_END
DO_10S_2
DECFSZ MINUTE,F
GOTO DO_1S_END
MOVLW .6
MOVWF MINUTE
CALL GET_VOL
MOVLW 0A4H
MOVWF TX_BUFF0
MOVF VOL,W
MOVWF TX_BUFF1
CALL ATX_DSP
DO_1S_END
NOP
BCF VOL_FLAG,ONE_S
GOTO CONTINUE_NORMAL_4
STANDBY_DO_10S ;standby模式下静音,即关机静音
BTFSS VOL_FLAG,NEED_MUTE ;需要静音吗
GOTO DO_1S_END ;不需要
DECFSZ MUTE_COUNT,F
GOTO DO_1S_END
BCF PORTC,MUTE ;结束静音
BCF VOL_FLAG,NEED_MUTE ;清需要静音标志
BCF PORTA,CONTROL_POWER ;关闭电源
BSF PORTA,RESET_MAINBOARD ;关闭主板
BSF PORTB,LED ;点亮LED
BCF PORTC,CONTROL_TFT ;关闭TFT
CLRF T2CON ;关闭TMR2
GOTO ASTANDBY_MAIN
;----------------------------------------------------------------------------------
W_ALL_CONFIG
MOVLW 03H
MOVWF TEMP
MOVF TFT_CONFIG0,W
MOVWF WEEROM_DATA
MOVLW 00H
MOVWF EEROM_ADDR
CALL W_24C01
CALL R_24C01
MOVF REEROM_DATA,W
XORWF WEEROM_DATA,W
BTFSC STATUS,Z
GOTO $+3
DECFSZ TEMP,F
GOTO $-0B
MOVLW 03H
MOVWF TEMP
MOVF TFT_COLOR,W
MOVWF WEEROM_DATA
MOVLW 02H
MOVWF EEROM_ADDR
CALL W_24C01
CALL R_24C01
MOVF REEROM_DATA,W
XORWF WEEROM_DATA,W
BTFSC STATUS,Z
GOTO $+3
DECFSZ TEMP,F
GOTO $-0B
MOVLW 03H
MOVWF TEMP
MOVF TFT_CONST,W
MOVWF WEEROM_DATA
MOVLW 04H
MOVWF EEROM_ADDR
CALL W_24C01
CALL R_24C01
MOVF REEROM_DATA,W
XORWF WEEROM_DATA,W
BTFSC STATUS,Z
GOTO $+3
DECFSZ TEMP,F
GOTO $-0B
MOVLW 03H
MOVWF TEMP
MOVF TFT_BRIGHT,W
MOVWF WEEROM_DATA
MOVLW 05H
MOVWF EEROM_ADDR
CALL W_24C01
CALL R_24C01
MOVF REEROM_DATA,W
XORWF WEEROM_DATA,W
BTFSC STATUS,Z
GOTO $+3
DECFSZ TEMP,F
GOTO $-0B
MOVLW 03H
MOVWF TEMP
MOVF SCREEN_MODE,W
MOVWF WEEROM_DATA
MOVLW 10H
MOVWF EEROM_ADDR
CALL W_24C01
CALL R_24C01
MOVF REEROM_DATA,W
XORWF WEEROM_DATA,W
BTFSC STATUS,Z
GOTO $+3
DECFSZ TEMP,F
GOTO $-0B
BCF FLAG,CONFIG_CHANGE
GOTO DO_10S_1
;------------------------------------------------
;===================================================================
;AD转换,并获得电压级数
;===================================================================
GET_VOL
BSF STATUS,RP0
MOVLW B'00000100'
MOVWF ADCON1
BCF STATUS,RP0
MOVLW B'00000001'
MOVWF ADCON0
CLRF ADRES
CALL DELAY_35US
BSF ADCON0,2
CALL DELAY_35US
MOVF ADRES,W
MOVWF TURE_VOL
CLRF ADCON0
BSF STATUS,RP0
MOVLW B'00000111'
MOVWF ADCON1
BCF STATUS,RP0
MOVF TURE_VOL,W
SUBLW VOL3V
BTFSS STATUS,C
GOTO $+3
BSF VOL_FLAG,NO_POWER
RETLW 00H
MOVF TURE_VOL,W
SUBLW VOL3.5V
BTFSS STATUS,C
GOTO $+3
BSF VOL_FLAG,LOW_POWER
RETLW 00H
MOVLW 01H
MOVWF VOL
FIND_VOL_LOOP
CALL FIND_VOL_TABLE
SUBWF TURE_VOL,W
BTFSS STATUS,C
GOTO RETURN_GET_VOL
INCF VOL,F
MOVLW .16
SUBWF VOL,W
BTFSC STATUS,C
GOTO $+2
GOTO FIND_VOL_LOOP
MOVLW .16
MOVWF VOL
RETURN_GET_VOL
DECF VOL,F
RETLW 00
;----------------------------------------------
DELAY_35US
MOVLW .10
MOVWF TEMP_COUNT0
DELAY_35US_LOOP
DECFSZ TEMP_COUNT0,F
GOTO $-1
RETLW 0
;===================================================================
;将ir的数据转发给dsp
;===================================================================
;-------------------------------------------------------------------
IR_PIC_DSP
MOVLW 03H
MOVWF TEMP
RE_IR_PIC_DSP
MOVLW 0A0H
MOVWF TX_BUFF0
MOVF C_TX_BUFF0,W
MOVWF TX_BUFF1
CALL ATX_DSP
BTFSC COMM_FLAG,TX_DSP_SUCCESS
GOTO IR_PIC_DSP_END
DECFSZ TEMP,F
GOTO RE_IR_PIC_DSP
IR_PIC_DSP_END
BCF COMM_FLAG,TX_DSP_SUCCESS
BCF COMM_FLAG,RX_IR_SUCCESS
RETLW 00H
;-------------------------------------------------------------------
;====================================================================
;静音延迟子程序 =
;调用50ms延迟子程序 =
;局部变量:TEMP_COUNT2 =
;====================================================================
;--------------------------------------------------------------------
DELAY_1S
MUTE_DELAY
MOVLW .20 ;60*50MS
MOVWF TEMP_COUNT2
CALL DELAY50MS
DECFSZ TEMP_COUNT2,1
GOTO $-2
RETLW 00H
;---------------------------------------------------------------------
DELAY2MS
MOVLW .4
MOVWF TEMP_COUNT0
DELAY_2MS_LOOP2
MOVLW .220
MOVWF TEMP_COUNT1
CLRWDT
DELAY_2MS_LOOP1
DECFSZ TEMP_COUNT1,F
GOTO DELAY_2MS_LOOP1
DECFSZ TEMP_COUNT0,F
GOTO DELAY_2MS_LOOP2
RETLW 00H
;=====================================================================
;50ms延迟子程序 =
;入口:无 =
;出口:无 =
;局部变量: TEMP_COUNT0, TEMP_COUNT1 =
;=====================================================================
;---------------------------------------------------------------------
DELAY50MS
MOVLW .50
MOVWF TEMP_COUNT0
DELAY_50MS_LOOP2
MOVLW .200
MOVWF TEMP_COUNT1
CLRWDT
DELAY_50MS_LOOP1
DECFSZ TEMP_COUNT1,F
GOTO DELAY_50MS_LOOP1
DECFSZ TEMP_COUNT0,F
GOTO DELAY_50MS_LOOP2
RETLW 00H
;---------------------------------------------------------------------
;=====================================================================
;测试是否有按键开关机信号子程序 =
;入口:无 =
;出口:FLAG,SW_POWER标志位 =
;局部变量:TEMP_COUNT0, TEMP_COUNT1, TEMP_COUNT2 =
;=====================================================================
;----------------------------------------------------------------------------------------
TEST_SW_POWER
CLRWDT
BCF FLAG,SW_POWER
MOVLW .20
MOVWF TEMP_COUNT0
TEST_SW_2
CLRWDT
MOVLW .200
MOVWF TEMP_COUNT1
TEST_SW_1
BTFSC PORTA,POWER_SWITCH
RETLW 00H
DECFSZ TEMP_COUNT1,F
GOTO TEST_SW_1
DECFSZ TEMP_COUNT0,F
GOTO TEST_SW_2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -