Creo que encontre el error que estoy cometiendo en el hard. El pin tiene que tener una conexión pull up? . Es decir mediante una R tiene que ir a 5volts. cuando lo mando a masa al pin cuenta? O itene que estar permenente en masa. y cuando lo saco de ese estado cuenta. Algo de eso debe ser. Te paso el programa .
#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#include <lcd.c>
long int pulsos=0;
void main(void)
{lcd_init();
set_tris_b(0xfe);//Pin RB0 del puerto B como salida, el resto como entrada
disable_interrupts(global);// Toda las interrupciones desactivadas
do{
if(input(Pin_b1)){ // si se presenta un alto en el pin B1 del puerto
pulsos++;
}//incremento la variable
delay_ms(500);//Para que no incremente tan rápido
lcd_gotoxy(1,1);//Para escribir siempre en la misma posición
printf(lcd_putc,"pulsos= %lu",pulsos); //presento la variable por el lcd
}while(true); //ciclo infinito
}
Saludos