El cristal es interno.
e ahi el problema.... pon un cristal de 4mhz y veras como funciona, te recuerdo que el rpoteus no simula ni osciladores internos ni externos, salvo en el caso que se le aplique una señal cuadrada con el generador de pulsos o generador de frequencia.... de ahi que posiblemente el proteus te lo simule sin problema....
creo que ahi esta tu error, para configurar el oscilador interno se usa el fuses #intrc. pero ese modelo de micro en particular no tiene oscilador interno
cierto...
esto es el encabezamiento de la libreria del ccs
//////// Standard Header file for the PIC16F877 device ////////////////
//////// Program memory: 8192x14 Data RAM: 367 Stack: 8
//////// I/O: 33 Analog Pins: 8
//////// Data EEPROM: 256
//////// C Scratch area: 77 ID Location: 2000
//////// Fuses: LP,XT,HS,RC,NOWDT,WDT,NOPUT,PUT,PROTECT,PROTECT_5%
//////// Fuses: PROTECT_50%,NOPROTECT,NOBROWNOUT,BROWNOUT,LVP,NOLVP,CPD
//////// Fuses: NOCPD,WRT,NOWRT
claramente no esta el fuse INTRC....