А на
Цитата
#include "P16F84.INC"
компилятор ничего вроде "Processor-header file mismatch. Verify selected processor." не говорит?
Если все-таки подключается P16F877A.INC, то, как уже сказал
LordN, нужно проверить наличие генережки на OSC2.
Обратите внимание на примечание 2 к картинке 14-1 в даташите:
Цитата
2: A series resistor (Rs) may be required for AT strip cut crystals.
Для 32 кГц кварцев я вешал 3-5 кОм (стояла задача экономии электроэнергии), для 12 МГц кварца будет достаточно 30-50 Ом.
Ну и самый быстрый способ проверки - подать на OSC1 тактуху с какого-нибудь более другого генератора (на логике/транзисторах/тактовой кнопке

. См. картинку 14-2.), убедиться в работоспособности программы и сосредоточиться на борьбе с генератором.
ЗЫЖ без бациллоскопа борьба с такими непонятками затруднительна - желательно проконтролировать форму сигнала на OSC2.