Gracias por la respuesta.Explico un poco el codigo:
RB0-->Pulsos.
RB1--> Armado
RB2--> led armado
RC0-7 Salidas.
Las condiciones es que se dan pulsos por RB0 y es condicion indispensable que el pin RB1 este en alto, si RB1 esta en bajo y se dan pulsos en RB0,no haría nada.
RB2 es para saber si RB1 está en alto mediante un led.
Una vez que se cumple las dos condiciones, es decir, que se de un pulso en alto en RB0 y que RB1 esté en alto, se llamará a la funcion disparo1 y pondrá en alto, en este caso RC0 durante 1 segundo. Por consiguiente, se debe esperar a que RB0 esté en bajo para que no se activen dos disparos seguidos.
Encontré información por internet y he modificado el código.El problema que tengo ahora es que se activan todos los disparos con un solo pulso y creo que es debido al bit Z.
List p=16F876 ;Tipo de procesador
include "P16F876.INC" ;Definiciones de registros internos
temp equ 0x28
cuenta equ 0x29
cuenta1 equ 0x30
cuenta1min equ 0x31
B1 equ 0x32
B2 equ 0x33
B3 equ 0x34
B4 equ 0x35
B5 equ 0x36
B6 equ 0x37
B7 equ 0x38
B8 equ 0x39
B9 equ 0x40
B10 equ 0x41
;#### TRAMA DE SINCRONISMO A TRANSMITIR ######
; 0x01 0x84 0x7A 0x61 0xC5 0xA4 0x84 0x03
;Ajusta los valores de la palabra de configuración durante el ensamblaje:
;protección de código y datos=OFF, LVP=OFF, WDT=OFF y OSC=XT
__config _CP_OFF&_CPD_OFF&_LVP_OFF&_WDT_OFF&_XT_OSC
org 0x00 ;Vector de RESET
goto Inicio
org 0x04
; goto interrupcion
; org 0x05
;include "LCD_cxx.inc" ;Incluye las rutinas de manejo del LCD
Inicio
bsf STATUS,RP0 ;Selecciona banco 1
movlw b'00000000'
movwf TRISC ;Puerta C se configura como salida, RC6/Tx comunicacion a PC
movlw b'10010011'
movwf TRISB
movlw b'10000111'
movwf OPTION_REG ;Preescaler de 256 para el TMR0
;movlw b'01100100'
;movwf TXSTA ;TX en On, modo asíncrono con 8 bits, alta velocidad y activamos noveno bit para paridad
;movlw b'00100100'
;movwf TXSTA ;TX en On, modo asíncrono con 8 bits, alta velocidad y desactivamos noveno bit para paridad
;movlw .12
;movwf SPBRG ;19200 baudios con Fosc=4MHz
bcf STATUS,RP0 ;Selecciona banco 0
;movlw b'10000000' ;Activamos la comunicacion serie(PORTB<7> Rx y PORTB<6> Tx
;movwf RCSTA
clrf PORTA
clrf PORTB
clrf PORTC
movlw b'00000000' ;Sacamos por los pines correspondientes las señales
movwf PORTB
movlw b'00000000' ;Sacamos por los pines correspondientes las señales
movwf PORTC ; RB6: de 0v->5v, RB5: de 5v->0v
movlw 0x01
movwf B1
movlw 0x01
movwf B2
movlw 0x01
movwf B3
movlw 0x01
movwf B4
movlw 0x01
movwf B5
movlw 0x01
movwf B6
movlw 0x01
movwf B7
movlw 0x01
movwf B8
esperandoalto
inicio1
bcf PORTB,2
btfss PORTB,1 ;armado
goto inicio1
bsf PORTB,2
btfss PORTB,0 ;pulso en entrada 0
goto inicio1
call secuenciadorde6
goto inicio1
secuenciadorde6
BCF STATUS,Z
movlw 0x01
subwf B1,0
btfsc STATUS,Z
call disparar1
BCF STATUS,Z
movlw 0x01
subwf B2,0
btfsc STATUS,Z
call disparar2
BCF STATUS,Z
movlw 0x01
subwf B3,0
btfsc STATUS,Z
call disparar3
BCF STATUS,Z
movlw 0x01
subwf B4,0
btfsc STATUS,Z
call disparar4
BCF STATUS,Z
movlw 0x01
subwf B5,0
btfsc STATUS,Z
call disparar5
BCF STATUS,Z
movlw 0x01
subwf B6,0
btfsc STATUS,Z
call disparar6
cambiopulso
bcf PORTB,2
btfss PORTB,1 ;armado
goto cambiopulso
bsf PORTB,2
btfsc PORTB,0
goto cambiopulso
goto esperandoalto
disparar1
bsf PORTC,0
call unsegundo
bcf PORTC,0
movlw 0x00
movwf B1
return
disparar2
bsf PORTC,1
call unsegundo
bcf PORTC,1
movlw 0x00
movwf B2
return
disparar3
bsf PORTC,2
call unsegundo
bcf PORTC,2
movlw 0x00
movwf B3
return
disparar4
bsf PORTC,3
call unsegundo
bcf PORTC,3
movlw 0x00
movwf B4
return
disparar5
bsf PORTC,4
call unsegundo
bcf PORTC,4
movlw 0x00
movwf B5
return
disparar6
bsf PORTC,5
call unsegundo
bcf PORTC,5
movlw 0x00
movwf B6
return
disparar7
bsf PORTC,6
call unsegundo
bcf PORTC,6
movlw 0x00
movwf B7
return
disparar8
bsf PORTC,7
call unsegundo
bcf PORTC,7
movlw 0x01
movwf B1
movlw 0x01
movwf B2
movlw 0x01
movwf B3
movlw 0x01
movwf B4
movlw 0x01
movwf B5
movlw 0x01
movwf B6
movlw 0x01
movwf B7
movlw 0x01
movwf B8
return
;poner otra puerta
unsegundo
movlw 0xF
movwf cuenta
temp1s
bcf INTCON,T0IF ;Desconecta el flag de rebosamiento
clrf TMR0
sge btfss INTCON,T0IF ;Rebasamiento del TMR0 ??
goto sge ;Todavía no
decfsz cuenta
goto temp1s
return
end ;Fin del programa fuente
Voy a intentarlo como has dicho con una variable y cambiando sus 8 bits.
Gracias