16f628 acionando quando liga a fonte

Pessoal, me ajudem ...
to com esse codigo abaixo, que simplemente fica monitorando a porta B3, para quando ela receber o nivel 1, vindo de um 7805, ele aciona o rele. so que quando ligo a fonte, ele já aciona o relé, mesmo a B3 estando ligada direto em 0V.
#include <16f628A.h>
//#device ADC=8 //Seleciona canal analógico AN0(RA0) e AN1(RA1)
#use delay(clock=4000000)
#fuses INTRC_IO, NOWDT, NOPROTECT, NOMCLR, NOPUT, NOBROWNOUT, NOLVP, NOCPD
#use rs232(baud=9600, parity=N,xmit=PIN_B2, rcv=PIN_B1,bits=8,stream=OUT32) // pinos 7 e 8 ligados ao max 232
int disparo = 0;
int teste = 0;
void main(void)
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
//set_tris_a(0b11111110); // portB (RA0 como saída e as demais desativadas)
//set_tris_b(0b11111110); // portB (RB0 como saída e as demais desativadas)
setup_vref(FALSE);
setup_comparator(NC_NC_NC_NC);
disable_interrupts(GLOBAL); //todas as interrupções desativadas
output_low(PIN_B3); // reset pino b3
while (true)
{
// faz uma verificação de segurança, analisando 5 vezes o disparo para detectar se não foi falso
if ( input(PIN_B3) == 1 )
{ teste++;
if ( teste == 5 )
{ disparo = 1;
teste = 0;
}
}
if ( disparo == 1 )
{
// dar 4 vezes um end para limpar qualquer tela
output_high(PIN_B6);
delay_ms(100);
output_low(PIN_B6);
delay_ms(500);
output_high(PIN_B6);
delay_ms(100);
output_low(PIN_B6);
delay_ms(500);
output_high(PIN_B6);
delay_ms(100);
output_low(PIN_B6);
delay_ms(500);
output_high(PIN_B6);
delay_ms(100);
output_low(PIN_B6);
delay_ms(500);
// pressiona para abrir agenda
///XXXXXXXXXXXXXXXXXXXX
// dar um send para pegar o primeiro numero da agenda
output_high(PIN_B4);
delay_ms(100);
output_low(PIN_B4);// desliga as portas
delay_ms(500);
// faz a discagem para o numero escolhido
output_high(PIN_B4);
delay_ms(100);
output_low(PIN_B4);// desliga as portas
delay_ms(500);
// faz uma longa espera
//delay_ms(30000); // 30 SEGUNDOS
//delay_ms(60000); // 60 SEGUNDOS
delay_ms(120000);
// desliga (pressina end) para fazer novo teste se continua disparo
output_high(PIN_B6);
delay_ms(100);
output_low(PIN_B6);
output_low(PIN_B3); // reset pino b3
delay_ms(500);
disparo = 0;
}
}
}
to com esse codigo abaixo, que simplemente fica monitorando a porta B3, para quando ela receber o nivel 1, vindo de um 7805, ele aciona o rele. so que quando ligo a fonte, ele já aciona o relé, mesmo a B3 estando ligada direto em 0V.
#include <16f628A.h>
//#device ADC=8 //Seleciona canal analógico AN0(RA0) e AN1(RA1)
#use delay(clock=4000000)
#fuses INTRC_IO, NOWDT, NOPROTECT, NOMCLR, NOPUT, NOBROWNOUT, NOLVP, NOCPD
#use rs232(baud=9600, parity=N,xmit=PIN_B2, rcv=PIN_B1,bits=8,stream=OUT32) // pinos 7 e 8 ligados ao max 232
int disparo = 0;
int teste = 0;
void main(void)
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
//set_tris_a(0b11111110); // portB (RA0 como saída e as demais desativadas)
//set_tris_b(0b11111110); // portB (RB0 como saída e as demais desativadas)
setup_vref(FALSE);
setup_comparator(NC_NC_NC_NC);
disable_interrupts(GLOBAL); //todas as interrupções desativadas
output_low(PIN_B3); // reset pino b3
while (true)
{
// faz uma verificação de segurança, analisando 5 vezes o disparo para detectar se não foi falso
if ( input(PIN_B3) == 1 )
{ teste++;
if ( teste == 5 )
{ disparo = 1;
teste = 0;
}
}
if ( disparo == 1 )
{
// dar 4 vezes um end para limpar qualquer tela
output_high(PIN_B6);
delay_ms(100);
output_low(PIN_B6);
delay_ms(500);
output_high(PIN_B6);
delay_ms(100);
output_low(PIN_B6);
delay_ms(500);
output_high(PIN_B6);
delay_ms(100);
output_low(PIN_B6);
delay_ms(500);
output_high(PIN_B6);
delay_ms(100);
output_low(PIN_B6);
delay_ms(500);
// pressiona para abrir agenda
///XXXXXXXXXXXXXXXXXXXX
// dar um send para pegar o primeiro numero da agenda
output_high(PIN_B4);
delay_ms(100);
output_low(PIN_B4);// desliga as portas
delay_ms(500);
// faz a discagem para o numero escolhido
output_high(PIN_B4);
delay_ms(100);
output_low(PIN_B4);// desliga as portas
delay_ms(500);
// faz uma longa espera
//delay_ms(30000); // 30 SEGUNDOS
//delay_ms(60000); // 60 SEGUNDOS
delay_ms(120000);
// desliga (pressina end) para fazer novo teste se continua disparo
output_high(PIN_B6);
delay_ms(100);
output_low(PIN_B6);
output_low(PIN_B3); // reset pino b3
delay_ms(500);
disparo = 0;
}
}
}