📄 dial_t6b.asm
字号:
BTFSS STATUS,Z
GOTO PERFORM_SEL
CLRF NUM_PULSEH
CLRF PULSE_L
CLRF PULSE_H
CLRF PWM1
CLRF PWM2
CLRF PWM3
CLRF PWM4
CLRF PWM5
CLRF PWM6
CLRF PWM7
CLRF PWM8
CLRF PWM9
INCF PERFORM_CH
MOVLW 0X04
SUBWF PERFORM_CH,W
BTFSS STATUS,C
GOTO PERFORM_SEL
CLRF PERFORM_CH
PERFORM_SEL
MOVF PERFORM_CH
BTFSC STATUS,Z
GOTO SPERFORM1
MOVLW 0X01
SUBWF PERFORM_CH,W
BTFSC STATUS,Z
GOTO SPERFORM2
MOVLW 0X02
SUBWF PERFORM_CH,W
BTFSC STATUS,Z
GOTO SPERFORM3
MOVLW 0X03
SUBWF PERFORM_CH,W
BTFSC STATUS,Z
GOTO SPERFORM4
GOTO PWM_DRIVE
;*****************SINGLE COLOR PERFORM 6*********************
SPERFORM6
MOVF NUM_PULSEH
BTFSC STATUS,Z
GOTO TUP1
MOVLW 0X01
SUBWF NUM_PULSEH,W
BTFSC STATUS,Z
GOTO TUP2
MOVLW 0X02
SUBWF NUM_PULSEH,W
BTFSC STATUS,Z
GOTO TUP3
MOVLW 0X03
SUBWF NUM_PULSEH,W
BTFSC STATUS,Z
GOTO TUP4
MOVLW 0X04
SUBWF NUM_PULSEH,W
BTFSC STATUS,Z
GOTO TUP5
MOVLW 0X05
SUBWF NUM_PULSEH,W
BTFSC STATUS,Z
GOTO TUP6
TUP7
BTFSC PULSE_H,5
GOTO TDOWN7
INCF PWM1
INCF PWM2
INCF PWM3
INCF PWM4
INCF PWM5
INCF PWM6
MOVLW 0XFF
SUBWF PWM6,W
BTFSC STATUS,Z
BSF PULSE_H,5
GOTO PWM_DRIVE
TDOWN7
DECF PWM1
DECF PWM2
DECF PWM3
DECF PWM4
DECF PWM5
DECF PWM6
MOVF PWM6
BTFSS STATUS,Z
GOTO PWM_DRIVE
BCF PULSE_H,5
CLRF NUM_PULSEH
GOTO PWM_DRIVE
TUP1
BTFSC PULSE_H,0
GOTO TDOWN1
INCF PWM1
MOVLW 0XFF
SUBWF PWM1,W
BTFSC STATUS,Z
BSF PULSE_H,0
GOTO PWM_DRIVE
TDOWN1
DECF PWM1
MOVF PWM1
BTFSS STATUS,Z
GOTO PWM_DRIVE
BCF PULSE_H,0
INCF NUM_PULSEH
GOTO PWM_DRIVE
TUP2
BTFSC PULSE_H,1
GOTO TDOWN2
INCF PWM2
MOVLW 0XFF
SUBWF PWM2,W
BTFSC STATUS,Z
BSF PULSE_H,1
GOTO PWM_DRIVE
TDOWN2
DECF PWM2
MOVF PWM2
BTFSS STATUS,Z
GOTO PWM_DRIVE
BCF PULSE_H,1
INCF NUM_PULSEH
GOTO PWM_DRIVE
TUP3
BTFSC PULSE_H,2
GOTO TDOWN3
INCF PWM3
MOVLW 0XFF
SUBWF PWM3,W
BTFSC STATUS,Z
BSF PULSE_H,2
GOTO PWM_DRIVE
TDOWN3
DECF PWM3
MOVF PWM3
BTFSS STATUS,Z
GOTO PWM_DRIVE
BCF PULSE_H,2
INCF NUM_PULSEH
GOTO PWM_DRIVE
TUP4
BTFSC PULSE_H,3
GOTO TDOWN4
INCF PWM4
MOVLW 0XFF
SUBWF PWM4,W
BTFSC STATUS,Z
BSF PULSE_H,3
GOTO PWM_DRIVE
TDOWN4
DECF PWM4
MOVF PWM4
BTFSS STATUS,Z
GOTO PWM_DRIVE
BCF PULSE_H,3
INCF NUM_PULSEH
GOTO PWM_DRIVE
TUP5
BTFSC PULSE_H,4
GOTO TDOWN5
INCF PWM5
MOVLW 0XFF
SUBWF PWM5,W
BTFSC STATUS,Z
BSF PULSE_H,4
GOTO PWM_DRIVE
TDOWN5
DECF PWM5
MOVF PWM5
BTFSS STATUS,Z
GOTO PWM_DRIVE
BCF PULSE_H,4
INCF NUM_PULSEH
GOTO PWM_DRIVE
TUP6
BTFSC PULSE_H,5
GOTO TDOWN6
INCF PWM6
MOVLW 0XFF
SUBWF PWM6,W
BTFSC STATUS,Z
BSF PULSE_H,5
GOTO PWM_DRIVE
TDOWN6
DECF PWM6
MOVF PWM6
BTFSS STATUS,Z
GOTO PWM_DRIVE
BCF PULSE_H,5
INCF NUM_PULSEH
GOTO PWM_DRIVE
;****************SINGLE COLOR PERFORM 7*****************
SPERFORM7
GOTO PWM_DRIVE
;*******************************************************
;***************WHOLE COLOR CONTROL*********************
WHCOLOR_CTL
MOVF MODEL_SEL,W
BTFSC STATUS,Z
GOTO WPERFORM1
MOVLW 0X01
SUBWF MODEL_SEL,W
BTFSC STATUS,Z
GOTO WPERFORM2
MOVLW 0X02
SUBWF MODEL_SEL,W
BTFSC STATUS,Z
GOTO WPERFORM3
MOVLW 0X03
SUBWF MODEL_SEL,W
BTFSC STATUS,Z
GOTO WPERFORM4
MOVLW 0X04
SUBWF MODEL_SEL,W
BTFSC STATUS,Z
GOTO WPERFORM5
MOVLW 0X05
SUBWF MODEL_SEL,W
BTFSC STATUS,Z
GOTO WPERFORM6
MOVLW 0X06
SUBWF MODEL_SEL,W
BTFSC STATUS,Z
GOTO WPERFORM7
MOVLW 0X07
SUBWF MODEL_SEL,W
BTFSC STATUS,Z
GOTO WPERFORM8
MOVLW 0X08
SUBWF MODEL_SEL,W
BTFSC STATUS,Z
GOTO WPERFORM9
MOVLW 0X09
SUBWF MODEL_SEL,W
BTFSC STATUS,Z
GOTO WPERFORMA
MOVLW 0X0A
SUBWF MODEL_SEL,W
BTFSC STATUS,Z
GOTO WPERFORMB
MOVLW 0X0B
SUBWF MODEL_SEL,W
BTFSC STATUS,Z
GOTO WPERFORMC
GOTO PWM_DRIVE
;**************WHOLE COLOR PERFORM 1****************
WPERFORM1
INCF PULSE_L
BTFSC STATUS,Z
INCF NUM_PULSEL
MOVLW 0X02
SUBWF NUM_PULSEL,W
BTFSS STATUS,C
GOTO NOT_12S
CLRF NUM_PULSEL ;UP TO 1/2S
INCF PULSE_H
MOVLW 0X06
SUBWF PULSE_H,W
BTFSC STATUS,C
CLRF PULSE_H
BSF CHANGEENABLE
;
NOT_12S NOP
;................................
BCF STATUS,RP0
BTFSS CHANGEENABLE ;
GOTO PWM_DRIVE
;--------------------------------------
MOVF PULSE_H,W
BTFSC STATUS,Z
GOTO PWM1_UP
MOVLW 0X01
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO PWM1_DOWN
MOVLW 0X02
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO PWM2_UP
MOVLW 0X03
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO PWM2_DOWN
MOVLW 0X04
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO PWM3_UP
PWM3_DOWN
MOVF PWM3
BTFSC STATUS,Z
GOTO DIS_CHANGE
DECF PWM3
GOTO PWM_CHANGEOVER
PWM3_UP
MOVLW 0XFF
SUBWF PWM3,W
BTFSC STATUS,Z
GOTO DIS_CHANGE
INCF PWM3
GOTO PWM_CHANGEOVER
PWM1_DOWN
MOVF PWM1
BTFSC STATUS,Z
GOTO DIS_CHANGE
DECF PWM1
GOTO PWM_CHANGEOVER
PWM1_UP
MOVLW 0XFF
SUBWF PWM1,W
BTFSC STATUS,Z
GOTO DIS_CHANGE
INCF PWM1
GOTO PWM_CHANGEOVER
PWM2_DOWN
MOVF PWM2
BTFSC STATUS,Z
GOTO DIS_CHANGE
DECF PWM2
GOTO PWM_CHANGEOVER
PWM2_UP
MOVLW 0XFF
SUBWF PWM2,W
BTFSC STATUS,Z
GOTO DIS_CHANGE
INCF PWM2
GOTO PWM_CHANGEOVER
DIS_CHANGE
BCF CHANGEENABLE
GOTO PWM_CHANGEOVER
;**************WHOLE COLOR PERFORM 2****************
WPERFORM2
INCF PULSE_L
BTFSC STATUS,Z
INCF NUM_PULSEL
MOVLW 0X02
SUBWF NUM_PULSEL,W
BTFSS STATUS,C
GOTO NOT_4S
CLRF NUM_PULSEL ;UP TO 4S
;
INCF PULSE_H
MOVLW 0X07
SUBWF PULSE_H,W
BTFSC STATUS,C
CLRF PULSE_H
BSF CHANGEENABLE
;
NOT_4S NOP
;................................
BCF STATUS,RP0
BTFSS CHANGEENABLE ;
GOTO PWM_DRIVE
;--------------------------------------
MOVF PULSE_H,W
BTFSC STATUS,Z
GOTO GB_DOWN
MOVLW 0X01
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO G_UP
MOVLW 0X02
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO R_DOWN
MOVLW 0X03
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO B_UP
MOVLW 0X04
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO G_DOWN
MOVLW 0X05
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO R_UP
GOTO G_UP
;---------------------------
GB_DOWN
MOVLW 0X00
SUBWF PWM2,W
BTFSC STATUS,Z
GOTO DIS_CHANGE
DECF PWM2
DECF PWM3
GOTO PWM_CHANGEOVER
;
G_UP
MOVLW 0XFF
SUBWF PWM2,W
BTFSC STATUS,Z
GOTO DIS_CHANGE
INCF PWM2
GOTO PWM_CHANGEOVER
;
R_DOWN
MOVLW 0X00
SUBWF PWM1,W
BTFSC STATUS,Z
GOTO DIS_CHANGE
DECF PWM1
GOTO PWM_CHANGEOVER
;
B_UP
MOVLW 0XFF
SUBWF PWM3,W
BTFSC STATUS,Z
GOTO DIS_CHANGE
INCF PWM3
GOTO PWM_CHANGEOVER
;
G_DOWN
MOVLW 0X00
SUBWF PWM2,W
BTFSC STATUS,Z
GOTO DIS_CHANGE
DECF PWM2
GOTO PWM_CHANGEOVER
;
R_UP
MOVLW 0XFF
SUBWF PWM1,W
BTFSC STATUS,Z
GOTO DIS_CHANGE
INCF PWM1
GOTO PWM_CHANGEOVER
;************WHOLE COLOR PERFORM 3******************
WPERFORM3
INCF PULSE_L
BTFSC STATUS,Z
INCF NUM_PULSEL
MOVLW 0X02
SUBWF NUM_PULSEL,W
BTFSS STATUS,C
GOTO NOT_0.5S
CLRF NUM_PULSEL ;UP TO 1/2S
INCF PULSE_H
MOVLW 0X10
SUBWF PULSE_H,W
BTFSC STATUS,C
CLRF PULSE_H
BSF CHANGEENABLE
;
NOT_0.5S NOP
;................................
BCF STATUS,RP0
BTFSS CHANGEENABLE ;
GOTO PWM_DRIVE
;--------------------------------------
MOVF PULSE_H,W
BTFSC STATUS,Z
GOTO PWM21_UP
MOVLW 0X01
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO PWM21_DOWN
MOVLW 0X02
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO PWM22_UP
MOVLW 0X03
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO PWM22_DOWN
MOVLW 0X04
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO PWM223_UP
MOVLW 0X05
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO PWM223_DOWN
MOVLW 0X06
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO PWM21_UP
MOVLW 0X07
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO PWM21_DOWN
MOVLW 0X08
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO PWM23_UP
MOVLW 0X09
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO PWM23_DOWN
MOVLW 0X0A
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO SET_PWM1
MOVLW 0X0B
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO SET_PWM2
MOVLW 0X0C
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO SET_PWM3
MOVLW 0X0D
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO SET_PWM1
MOVLW 0X0E
SUBWF PULSE_H,W
BTFSC STATUS,Z
GOTO SET_PWM23
SET_PWM1
CLRF PWM2
CLRF PWM3
MOVLW 0XFF
MOVWF PWM1
GOTO PWM_CHANGEOVER
PWM223_DOWN
MOVF PWM3
BTFSC STATUS,Z
GOTO DISA_CHANGE
DECF PWM3
GOTO PWM_CHANGEOVER
PWM223_UP
MOVLW 0XFF
SUBWF PWM3,W
BTFSC STATUS,Z
GOTO DISA_CHANGE
INCF PWM3
GOTO PWM_CHANGEOVER
PWM21_DOWN
MOVF PWM1
BTFSC STATUS,Z
GOTO DISA_CHANGE
DECF PWM1
GOTO PWM_CHANGEOVER
PWM21_UP
MOVLW 0XFF
SUBWF PWM1,W
BTFSC STATUS,Z
GOTO DISA_CHANGE
INCF PWM1
GOTO PWM_CHANGEOVER
PWM22_DOWN
MOVF PWM2
BTFSC STATUS,Z
GOTO DISA_CHANGE
DECF PWM2
GOTO PWM_CHANGEOVER
PWM22_UP
MOVLW 0XFF
SUBWF PWM2,W
BTFSC STATUS,Z
GOTO DISA_CHANGE
INCF PWM2
GOTO PWM_CHANGEOVER
PWM23_DOWN
MOVF PWM2
BTFSC STATUS,Z
GOTO DISA_CHANGE
DECF PWM2
DECF PWM3
GOTO PWM_CHANGEOVER
PWM23_UP
MOVLW 0XFF
SUBWF PWM2,W
BTFSC STATUS,Z
GOTO DISA_CHANGE
INCF PWM2
INCF PWM3
GOTO PWM_CHANGEOVER
SET_PWM2
CLRF PWM1
MOVLW 0XFF
MOVWF PWM2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -