📄 zt0519.asm
字号:
LIST P=16C73
INCLUDE <P16C73.INC>
INCLUDE <ZT0519.H>
INCLUDE <TABLE.H>
; __CONFIG _BODEN_ON & _CP_ALL & _PWRTE_ON & _WDT_ON & _XT_OSC
__CONFIG _CP_ALL & _PWRTE_ON & _WDT_OFF & _XT_OSC
;---------------------------------------------
ORG RESET_VECTOR_ADDR
RESET
BCF PCLATH,3
BCF PCLATH,4
GOTO MCLR_RESET
GOTO MCLR_RESET
ORG 0004
PER_INT_V
MOVWF W_TEMP
SWAPF STATUS,W
CLRF STATUS
MOVWF STATUS_TEMP
MOVF PCLATH,W
MOVWF PCLATH_TEMP
CLRF PCLATH
MOVF FSR,W
MOVWF FSR_TEMP
BTFSC PIR1,TMR1IF
GOTO TIME1_OVER_INT
BTFSC INTCON,INTF
GOTO RED_RECEIVE_INT
BTFSC PIR1,TMR2IF
GOTO TIME2_OVER_INT
BCF INTCON,RBIF
BCF INTCON,T0IF
CLRF PIR1
RETURN_FR_INT
BCF STATUS,RP0
MOVF PCLATH_TEMP,W
MOVWF PCLATH
MOVF FSR_TEMP,W
MOVWF FSR
SWAPF STATUS_TEMP,W
MOVWF STATUS
SWAPF W_TEMP,F
SWAPF W_TEMP,W
RETFIE
;===============================================================================
;表格
;===============================================================================
FIND_COLOR_TABLE
MOVLW 32H
SUBWF TFT_COLOR,W
BTFSS STATUS,C
GOTO $+3
MOVLW 0FH
MOVWF TFT_COLOR
MOVF TFT_COLOR,W
ADDWF PCL,F
RETLW COLOR0
RETLW COLOR1
RETLW COLOR2
RETLW COLOR3
RETLW COLOR4
RETLW COLOR5
RETLW COLOR6
RETLW COLOR7
RETLW COLOR8
RETLW COLOR9
RETLW COLOR10
RETLW COLOR11
RETLW COLOR12
RETLW COLOR13
RETLW COLOR14
RETLW COLOR15
RETLW COLOR16
RETLW COLOR17
RETLW COLOR18
RETLW COLOR19
RETLW COLOR20
RETLW COLOR21
RETLW COLOR22
RETLW COLOR23
RETLW COLOR24
RETLW COLOR25
RETLW COLOR26
RETLW COLOR27
RETLW COLOR28
RETLW COLOR29
RETLW COLOR30
RETLW COLOR31
;---------------------------------------------------------------
FIND_CONST_TABLE ;对比度表
MOVLW 32H
SUBWF TFT_CONST,W
BTFSS STATUS,C
GOTO $+3
MOVLW 0FH
MOVWF TFT_CONST
MOVF TFT_CONST,W
ADDWF PCL,F
RETLW CONST0
RETLW CONST1
RETLW CONST2
RETLW CONST3
RETLW CONST4
RETLW CONST5
RETLW CONST6
RETLW CONST7
RETLW CONST8
RETLW CONST9
RETLW CONST10
RETLW CONST11
RETLW CONST12
RETLW CONST13
RETLW CONST14
RETLW CONST15
RETLW CONST16
RETLW CONST17
RETLW CONST18
RETLW CONST19
RETLW CONST20
RETLW CONST21
RETLW CONST22
RETLW CONST23
RETLW CONST24
RETLW CONST25
RETLW CONST26
RETLW CONST27
RETLW CONST28
RETLW CONST29
RETLW CONST30
RETLW CONST31
;--------------------------------------------------
FIND_BRIGHT_TABLE ;亮度表
MOVLW 32H
SUBWF TFT_BRIGHT,W
BTFSS STATUS,C
GOTO $+3
MOVLW 0FH
MOVWF TFT_BRIGHT
MOVF TFT_BRIGHT,W
ADDWF PCL,F
RETLW BRIGHT0
RETLW BRIGHT1
RETLW BRIGHT2
RETLW BRIGHT3
RETLW BRIGHT4
RETLW BRIGHT5
RETLW BRIGHT6
RETLW BRIGHT7
RETLW BRIGHT8
RETLW BRIGHT9
RETLW BRIGHT10
RETLW BRIGHT11
RETLW BRIGHT12
RETLW BRIGHT13
RETLW BRIGHT14
RETLW BRIGHT15
RETLW BRIGHT16
RETLW BRIGHT17
RETLW BRIGHT18
RETLW BRIGHT19
RETLW BRIGHT20
RETLW BRIGHT21
RETLW BRIGHT22
RETLW BRIGHT23
RETLW BRIGHT24
RETLW BRIGHT25
RETLW BRIGHT26
RETLW BRIGHT27
RETLW BRIGHT28
RETLW BRIGHT29
RETLW BRIGHT30
RETLW BRIGHT31
;--------------------------------------------------
FIND_VOL_TABLE
MOVLW .16
SUBWF VOL,W
BTFSS STATUS,C
GOTO $+3
MOVLW 00H
MOVWF VOL
MOVF VOL,W
ADDWF PCL,F
RETLW VOL0
RETLW VOL1
RETLW VOL2
RETLW VOL3
RETLW VOL4
RETLW VOL5
RETLW VOL6
RETLW VOL7
RETLW VOL8
RETLW VOL9
RETLW VOL10
RETLW VOL11
RETLW VOL12
RETLW VOL13
RETLW VOL14
RETLW VOL15
;-------------------------------------------------
;--------------------------------------------------
TIME2_OVER_INT
BCF PIR1,TMR2IF
DECFSZ TMR2_COUNT0,F
GOTO RETURN_FR_INT
;1S定时到
BTFSS VOL_FLAG,LOW_POWER
GOTO RELOAD_TMR2C0
BTFSS VOL_FLAG,LED_STATUS
GOTO SET_LED_HIGH
BCF PORTB,LED
BCF VOL_FLAG,LED_STATUS
GOTO RELOAD_TMR2C0
SET_LED_HIGH
BSF PORTB,LED
BSF VOL_FLAG,LED_STATUS
RELOAD_TMR2C0 MOVLW .244
MOVWF TMR2_COUNT0
BSF VOL_FLAG,ONE_S
GOTO RETURN_FR_INT
;--------------------------------------------------
TIME1_OVER_INT
BCF PIR1,TMR1IF
CLRF IR_RECEIVE_FLAG
BSF STATUS,RP0
BCF OPTION_REG,INTEDG
BCF STATUS,RP0
GOTO RETURN_FR_INT
;**************************************************
RED_RECEIVE_INT
BCF INTCON,INTF
BTFSC COMM_FLAG,RX_IR_SUCCESS
GOTO RETURN_FR_INT
BTFSC IR_RECEIVE_FLAG,RECEIVE_IR_HIGH_FLAG
GOTO RECEIVE_IR_DATA
BTFSC IR_RECEIVE_FLAG,RECEIVE_IR_LOW_FLAG
GOTO RECEIVE_IR_HIGH_SET
BTFSC IR_RECEIVE_FLAG,RECEIVE_IR_4.5MS_FLAG
GOTO RECEIVE_START_IF_OK
BTFSC IR_RECEIVE_FLAG,RECEIVE_IR_9MS_FLAG
GOTO RECEIVE_START_4.5MS_HIGH_SET
RECEIVE_START_9MS_LOW_SET
BSF IR_RECEIVE_FLAG,RECEIVE_IR_9MS_FLAG
CLRF TMR1L
CLRF TMR1H
BSF STATUS,RP0
BSF OPTION_REG,INTEDG
BCF STATUS,RP0
GOTO RETURN_FR_INT
RECEIVE_START_4.5MS_HIGH_SET
BSF STATUS,RP0
BCF OPTION_REG,INTEDG
BCF STATUS,RP0
BSF IR_RECEIVE_FLAG,RECEIVE_IR_4.5MS_FLAG
GOTO RETURN_FR_INT
RECEIVE_START_IF_OK
MOVLW 38
SUBWF TMR1H,W
BTFSC STATUS,C
GOTO RECEIVE_IR_BAD
MOVLW 30
SUBWF TMR1H,W
BTFSS STATUS,C
GOTO RECEIVE_IR_BAD
BSF STATUS,RP0
BSF OPTION_REG,INTEDG
BCF STATUS,RP0
CLRF TMR1L
CLRF TMR1H
CLRF IR_RECEIVE_BIT_COUNT
BSF IR_RECEIVE_FLAG,RECEIVE_IR_LOW_FLAG
GOTO RETURN_FR_INT
RECEIVE_IR_HIGH_SET
BSF STATUS,RP0
BCF OPTION_REG,INTEDG
BCF STATUS,RP0
BSF IR_RECEIVE_FLAG,RECEIVE_IR_HIGH_FLAG
GOTO RETURN_FR_INT
RECEIVE_IR_DATA
INCF IR_RECEIVE_BIT_COUNT,F
MOVLW 3
SUBWF TMR1H,W
BTFSS STATUS,C
GOTO RECEIVE_IR_IF_1
MOVLW 6
SUBWF TMR1H,W
BTFSC STATUS,C
GOTO RECEIVE_IR_IF_1
BCF IR_RECEIVE_FLAG,RECEIVE_IR_DATA_BIT
GOTO SHIFT_BIT_TO_REGISTER
RECEIVE_IR_IF_1
BSF IR_RECEIVE_FLAG,RECEIVE_IR_DATA_BIT
SHIFT_BIT_TO_REGISTER
MOVLW .9
SUBWF IR_RECEIVE_BIT_COUNT,W
BTFSS STATUS,C
GOTO SHIFT_DATA_TO_ADD1
MOVLW .17
SUBWF IR_RECEIVE_BIT_COUNT,W
BTFSS STATUS,C
GOTO SHIFT_DATA_TO_ADD2
MOVLW .25
SUBWF IR_RECEIVE_BIT_COUNT,W
BTFSS STATUS,C
GOTO SHIFT_DATA_TO_ADD3
BCF STATUS,C
BTFSC IR_RECEIVE_FLAG,RECEIVE_IR_DATA_BIT
BSF STATUS,C
RRF IR_RECEIVE_DATA4,F
MOVLW .32
SUBWF IR_RECEIVE_BIT_COUNT,W
BTFSS STATUS,C
GOTO SHIFT_DATA_RETURN
CLRF IR_RECEIVE_FLAG
MOVLW 01
XORWF IR_RECEIVE_DATA1,W
BTFSS STATUS,Z
GOTO RECEIVE_IR_BAD
MOVLW 0FE
XORWF IR_RECEIVE_DATA2,W
BTFSS STATUS,Z
GOTO RECEIVE_IR_BAD
COMF IR_RECEIVE_DATA3,W
XORWF IR_RECEIVE_DATA4,W
BTFSS STATUS,Z
GOTO RECEIVE_IR_BAD
MOVF IR_RECEIVE_DATA3,W
MOVWF C_TX_BUFF0
MOVF IR_RECEIVE_DATA4,W
MOVWF C_TX_BUFF1
BSF IR_RECEIVE_FLAG,RECEIVE_IR_OK_FLAG
BSF COMM_FLAG,RX_IR_SUCCESS
BSF STATUS,RP0
BCF OPTION_REG,INTEDG
BCF STATUS,RP0
GOTO RETURN_FR_INT
SHIFT_DATA_TO_ADD3
BCF STATUS,C
BTFSC IR_RECEIVE_FLAG,RECEIVE_IR_DATA_BIT
BSF STATUS,C
RRF IR_RECEIVE_DATA3,F
GOTO SHIFT_DATA_RETURN
SHIFT_DATA_TO_ADD2
BCF STATUS,C
BTFSC IR_RECEIVE_FLAG,RECEIVE_IR_DATA_BIT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -