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

📄 dial_t6b.asm

📁 基于PIC16F73的有码开关有功率输出 DMX512协议的 灯光数据接受
💻 ASM
📖 第 1 页 / 共 4 页
字号:
            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 + -