📄 pic12ce519
字号:
BTFSC STATUS,ZERO ; 33
GOTO OVER ; 34-35
MOVF CV19,0 ; 35
ANDLW 01111111b ; 36
BCF CONSIST ; 37
BTFSS STATUS,ZERO ; 38
BSF CONSIST ; 39
XORWF BT1,0 ; consist? 40
BCBCK BTFSS STATUS,ZERO ; 41
GOTO CHKPROG ; 42-43
MOVLW 0x2B ; BT2 + FSR,5 43
MOVWF FSR ; to 2. byte 44
;--------------------------------
DECOD SWAPF INDF,0 ; 45
MOVWF BT6 ; 46
RRF BT6,0 ; 47
ANDLW 00000111b ; 48
ADDWF PC ; 49
GOTO DECCON ; 000 50-51
GOTO ADVAN ; 001
GOTO FORWARD ; 010
GOTO REVERSE ; 011
GOTO FTION ; 100
GOTO FTION1 ; 101
GOTO TELNEW ; 110
GOTO PROGREG ; 111
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;.....................................................................
BITMAN MOVWF FSR ;
MOVLW 00000111b ;
ANDWF BT3,0 ;
CALL BITPOS ;
BTFSS BT3,4 ;
GOTO VBIT ; verify bit
BTFSC BT3,3 ;
IORWF INDF,1 ; set bit
XORLW 0XFF ;
BTFSS BT3,3 ;
ANDWF INDF,1 ; clear bit
MOVF FSR,0 ; EEADDR
GOTO EEPROG ; write complete byte
;--------------------------------
VBIT ANDWF INDF,0 ;
BTFSC STATUS,ZERO ;
GOTO BITCLR ;
; NOP ;
BITSET BTFSC BT3,3 ;
GOTO ACKNOW ; =1
GOTO HOPP ;
BITCLR BTFSS BT3,3 ;
GOTO ACKNOW ; =0
GOTO HOPP ;
;--------------------------------
BITPOS ADDWF PC ;
RETLW 00000001b ; 0
RETLW 00000010b ; 1
RETLW 00000100b ; 2
RETLW 00001000b ; 3
RETLW 00010000b ; 4
RETLW 00100000b ; 5
RETLW 01000000b ; 6
RETLW 10000000b ; 7
;--------------------------------
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;.....................................................................
DECCON BTFSC INDF,5 ; 000>0<CCCD 52
GOTO CONCON ; 0001 consist control 53-54
RRF INDF,0 ; 0000CCC>D< moved to carry 54
ANDLW 00000111b ; 55
ADDWF PC ; 56
GOTO RESET ; 000 reset / hard reset 57-58
GOTO FTEST ; 001 factory test instruction
GOTO HOPP ; 010
GOTO ADVACK ; 011 advance acknowl. CV29,3
GOTO HOPP ; 100
GOTO ADVADR ; 101 advance adressing CV29,5
GOTO HOPP ; 110
GOTO ACKREQ ; 111 acknowledge request
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;.....................................................................
LIGHT MOVF CV50,1 ; FL/RL to F1-8
BTFSS STATUS,ZERO ; mapped?
RETLW 0 ; if CV50 <>0 then no light
BTFSS INDF,4 ; 1
GOTO NOLIGHT ; 2-3
BTFSC DIR ; direction invert? 3
GOTO BLIGHT ; 4-5
; NOP ; 5
FLIGHT BTFSC LIINV ; light invert? (PWRSRC) 6
GOTO BLI ; 7-8
FLI BSF GPIO,4 ; 8
BCF GPIO,5 ; 9
RETLW 0 ; 10-11
BLIGHT BTFSC LIINV ; light invert? (PWRSRC) 6
GOTO FLI ; 7-8
BLI BCF GPIO,4 ; 8
BSF GPIO,5 ; 9
RETLW 0 ; 10-11
NOLIGHT BCF GPIO,4 ; 4
BCF GPIO,5 ; 5
; NOP ; 6
; NOP ; 7
; NOP ; 8
; NOP ; 9
RETLW 0 ; 10-11
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;....................................................................
FINDCV BCF NOCV ;
BCF ROMCV ;
XORLW (1-1) ; CV1
BTFSC STATUS,ZERO ;
RETLW CV1 ; Primary Adress
XORLW (1-1)^(2-1) ; CV2
BTFSC STATUS,ZERO ;
RETLW CV2 ; Vstart
XORLW (2-1)^(3-1) ; CV3
BTFSC STATUS,ZERO ;
RETLW CV3 ; Acceleration Rate
XORLW (3-1)^(4-1) ; CV4
BTFSC STATUS,ZERO ;
RETLW CV4 ; Deceleration Rate
XORLW (4-1)^(5-1) ; CV5
BTFSC STATUS,ZERO ;
RETLW CV5 ; Vhigh
XORLW (5-1)^(6-1) ; CV6
BTFSC STATUS,ZERO ;
RETLW CV6 ; Vmid
XORLW (6-1)^(17-1) ; CV17
BTFSC STATUS,ZERO ;
RETLW CV17 ; Extended Adress Low Byte
XORLW (17-1)^(18-1) ; CV18
BTFSC STATUS,ZERO ;
RETLW CV18 ; Extended Adress High Byte
XORLW (18-1)^(19-1) ; CV19
BTFSC STATUS,ZERO ;
RETLW CV19 ; Consist Adress
XORLW (19-1)^(29-1) ; CV29
BTFSC STATUS,ZERO ;
RETLW CV29 ; 0=DIR 1=14/28 2=PWSRC 3=ADVACK 4=SPEEDTAB 5=LADRE 6= 7=ACCDEC
XORLW (29-1)^(49-1) ; CV49
BTFSC STATUS,ZERO ;
RETLW CV49 ; Output F1-F8 to GP2
XORLW (49-1)^(50-1) ; CV50
BTFSC STATUS,ZERO ;
RETLW CV50 ; reserved to map FL/RL to F1-8
XORLW (50-1)^(51-1) ; CV51
BTFSC STATUS,ZERO ;
RETLW CV51 ; space
BSF ROMCV ;
XORLW (51-1)^(7-1) ; CV7
BTFSC STATUS,ZERO ;
RETLW CV7 ; Version No
XORLW (7-1)^(8-1) ; CV8
BTFSC STATUS,ZERO ;
RETLW CV8 ; Manufacturer
BCF ROMCV ;
BSF NOCV ;
RETLW 0xFF ; no CV's to program
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;....................................................................
PROG MOVF FSR,0 ;
ANDLW 00001111b ;
XORLW BT3 ;
BTFSS STATUS,ZERO ;
GOTO PROGREG ; 3 byte command
MOVF BT2,0 ;
CALL FINDCV ;
BTFSC NOCV ;
GOTO HOPP ;
BTFSC ROMCV ;
BTFSS BT1,3 ; write/verify bit
GOTO ROMNEXT ;
MOVWF MAPCV ;
MOVLW MAPCV ;
ROMNEXT BTFSS BT1,2 ;
GOTO BITMAN ; bit manipulation
BTFSS BT1,3 ; write/verify bit
GOTO EEVERI ;
;--------------------------------
EEPROG ANDLW 00001111b ;
MOVWF EEADDR ;
CALL READ_RANDOM ;
MOVF INDF,0 ;
XORWF EEDATA,0 ;
BTFSC STATUS,ZERO ;
BCF STATUS,SEITE ; auf ROM seite 0
BTFSC STATUS,ZERO ;
GOTO LOADREG ;
MOVF INDF,0 ;
MOVWF EEDATA ;
BTFSC PROGBIT ;
GOTO EEIN ;
BSF PROGBIT ; 2x prog
GOTO PROGEX ;
EEIN CALL WRITE_BYTE ;
BTFSC STATUS,ZERO ; ERROR?
GOTO EEIN ;
BCF STATUS,SEITE ; auf ROM seite 0
GOTO LOADREG ;
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;.........................
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -