this is the code i change check and let me knw what i do wrong :
;***** FLASH COUNTER TIME *****
FLASHCNT EQU .45
;***** FIRERATES *****
FIRERATE1 equ .133 ;7.5 sps
FIRERATE2 equ .120 ;8.33 sps
FIRERATE3 equ .88 ;11.35 sps
FIRERATE4 equ .60 ;16.67 sps
FIRERATE5 equ .40 ;25 sps
;to get desired speed divide 1000 by your desired sps then enter
;it here and recompile and reprogram the code
;***** FLAGS *****
OFF EQU 0 ;set equ rf off
DBN EQU 1
DBN2 EQU 2
;***** GPIO *****
BUTTON EQU 4
LED EQU 2
RCOM EQU 1
;***** FLASH *****
ON1 EQU 0
OFF1 EQU 1
ON2 EQU 2
OFF2 EQU 3
ON3 EQU 4
OFF3 EQU 5
ON4 EQU 6
OFF4 EQU 7
ON5 EQU 8
OFF5 EQU 9
;**********************************************************************
ORG 0x000 ; processor reset vector
goto main ; go to beginning of program
ORG 0x004 ; interrupt vector location
movwf w_temp ; save off current W register contents
movf STATUS,w ; move status register into W register
movwf status_temp ; save off contents of STATUS register
btfsc FLAGS,OFF ;skip if mode 0
goto Offstate
bcf STATUS, RP0 ;bank 0
btfss SHADOW, 1
goto DwellRF
nop
decfsz PULSE1, f
goto EndInterupt
Clears
bcf SHADOW, 1
movfw FREQ
movwf PULSE1
goto EndInterupt2
DwellRF
decfsz DWELL1, f
goto EndInterupt
bsf SHADOW, 1
movfw FREQ
movwf DWELL1
goto EndInterupt2
Offstate
nop
nop
nop
nop
goto Clears
EndInterupt
nop
nop
nop
nop
EndInterupt2
nop
nop
bcf PIR1, TMR2IF
movf status_temp,w ; retrieve copy of STATUS register
movwf STATUS ; restore pre-isr STATUS register contents
swapf w_temp,f
swapf w_temp,w ; restore pre-isr W register contents
retfie ; return from interrupt
;********************subroutines****************************************
Wait500us
movlw 0x07
movwf TEMP01
movlw 0x12
movwf TEMP02
Loop01
decfsz TEMP01, f ;20usec loop
goto Loop01
movlw 0x07
movwf TEMP01
decfsz TEMP02, f
goto Loop01 ;25usec loop
return ;really 478us
FLASHOFF1
bcf GPIO,LED
decfsz COUNTER01
return
bcf FLASH,OFF1
bsf FLASH,ON1
return
FLASHON1
bsf GPIO,LED
bcf FLASH,OFF1
movlw FLASHCNT
movwf COUNTER01
return
FLASHOFF2
bcf GPIO,LED
decfsz COUNTER01
return
movlw FLASHCNT
movwf COUNTER01
bcf FLASH,OFF2
bsf FLASH,ON2
return
FLASHON2
bsf GPIO,LED
decfsz COUNTER01
return
movlw FLASHCNT
movwf COUNTER01
bcf FLASH,ON2
bsf FLASH,OFF1
return
FLASHOFF3
bcf GPIO,LED
decfsz COUNTER01
return
movlw FLASHCNT
movwf COUNTER01
bcf FLASH,OFF3
bsf FLASH,ON3
return
FLASHON3
bsf GPIO,LED
decfsz COUNTER01
return
movlw FLASHCNT
movwf COUNTER01
bcf FLASH,ON3
bsf FLASH,OFF2
return
FLASHOFF4
bcf GPIO,LED
decfsz COUNTER01
return
movlw FLASHCNT
movwf COUNTER01
bcf FLASH,OFF4
bsf FLASH,ON4
return
FLASHON4
bsf GPIO,LED
decfsz COUNTER01
return
movlw FLASHCNT
movwf COUNTER01
bcf FLASH,ON4
bsf FLASH,OFF3
return
FLASHOFF5
bcf GPIO,LED
decfsz COUNTER01
return
movlw FLASHCNT
movwf COUNTER01
bcf FLASH,OFF5
bsf FLASH,ON5
return
FLASHON5
bsf GPIO,LED
decfsz COUNTER01
return
movlw FLASHCNT
movwf COUNTER01
bcf FLASH,ON5
bsf FLASH,OFF4
return
Waitup
btfss GPIO,BUTTON
return
movlw 0x40
addwf STATER, f ;cyclic change in state manipulates
;last 2 bits in STATER.
movf STATER, w
btfsc STATER, 7 ;state 1 or 2
goto Continue01
btfsc STATER, 6
goto Continue02
btfsc STATER, 5
goto State2
State1 ;OFF
clrf FLASH
bcf GPIO,LED
bsf FLAGS,OFF
goto Startover
State2
movlw FIRERATE1
movwf FREQ
clrf FLASH
bsf GPIO,LED
bcf FLAGS,OFF
goto Startover
Continue01
btfss STATER, 7 ;state 3 or state 4
goto State4
State3
movlw FIRERATE3
movwf FREQ
clrf FLASH
bsf FLASH, OFF3
bcf FLAGS,OFF
goto Startover
State4
movlw FIRERATE2
movwf FREQ
clrf FLASH
bsf FLASH, OFF2
bcf FLAGS,OFF
goto Startover
Continue02
btfss STATER, 6 ;state 5 or state 6
goto State6
State5
movlw FIRERATE5
movwf FREQ
clrf FLASH
bsf FLASH, OFF5
bcf FLAGS,OFF
goto Startover
State6
movlw FIRERATE4
movwf FREQ
clrf FLASH
bsf FLASH, OFF4
bcf FLAGS,OFF
goto Startover
Startover
bcf FLAGS,DBN
return
;***********************************************************************
;***********************************************************************
;***********************************************************************
main
bsf STATUS, RP0 ;bank 1
movlw b'111011' ;all ports inputs
movwf TRISIO
movlw 0x02 ;GP1 analog
movwf ANSEL
movlw b'00010000'
movwf WPU ;enable week pullups
bcf OPTION_REG, 7 ;enable all week pullups
movlw 0x8F ;Vref on, highest setting
movwf VRCON
bcf STATUS, RP0 ;bank 0
movlw 0x04
movwf CMCON0 ;comparator on
bsf GPIO, 1 ;latch output high
bcf GPIO, LED
clrf FLASH
clrf SHADOW
clrf SHADOW2
clrf FLAGS
clrf STATER
bsf FLAGS,OFF
movlw FLASHCNT
movwf COUNTER01
movlw 0x01
movwf T2CON ;timer 2, prescale 1:4, no postscale
bsf STATUS, RP0 ;bank 1
movlw 0x7C
movwf PR2 ;setup 500us hardware interupt
bsf PIE1, TMR2IE ;enable timer2 interupt
bcf STATUS, RP0 ;bank 0
bsf T2CON, TMR2ON ;turn on timer2
movlw 0xC0
movwf INTCON
Start
btfss CMCON0, COUT
goto Start ;wait for falling edge of R2
call Wait500us ;skip over R2
movf SHADOW, w
movwf SHADOW2
nop
nop
nop
nop
nop
nop
nop
nop
bcf INTCON, GIE
movlw 0x07
movwf CMCON0 ;comp off
bsf STATUS, RP0 ;bank 1
bcf ANSEL, 1 ;digital
movf SHADOW2, w
xorwf TRISIO,f ;output
bcf STATUS, RP0 ;bank 0
bsf INTCON, GIE
call Wait500us ;wait out R1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop ;maintain 500 usec
bcf INTCON, GIE
bsf STATUS, RP0 ;bank 1
movf SHADOW2, w
xorwf TRISIO, f
bsf ANSEL, 1 ;analog
bcf STATUS, RP0 ;bank 0
bsf INTCON, GIE
call Wait500us ;wait out triangle
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
call Wait500us ;wait out circle
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
call Wait500us ;wait out X
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
call Wait500us ;wait out square
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
call Wait500us ;wait some more
bsf STATUS, RP0 ;bank 1
bsf TRISIO, 1 ;force input
bcf STATUS, RP0 ;bank 0
btfsc FLASH, ON1 ;Handling of LED flashing
call FLASHON1
btfsc FLASH, OFF1
call FLASHOFF1
btfsc FLASH, ON2
call FLASHON2
btfsc FLASH, OFF2
call FLASHOFF2
btfsc FLASH, ON3
call FLASHON3
btfsc FLASH, OFF3
call FLASHOFF3
btfsc FLASH, ON4
call FLASHON4
btfsc FLASH, OFF4
call FLASHOFF4
btfsc FLASH, ON5
call FLASHON5
btfsc FLASH, OFF5
call FLASHOFF5
btfss GPIO,BUTTON ;Button read
bsf FLAGS,DBN
btfsc FLAGS,DBN
call Waitup
bsf GPIO,RCOM ;Relatch RCOM high
movlw 0x04
movwf CMCON0 ;comparator on
goto Start
; initialize eeprom locations
ORG 0x2100
DE 0x00, 0x01, 0x02, 0x03
END ; directive 'end of program'
thax for the help dear!!!!