Hi ronjodu,

I'm glad you figured it out.

The way I like to put it is ...

The only problem with Interrupts, is that they Interrupt things.

And, any statement that does it's timing in software (SerIn/Out, OWin/out, Debug, Freqout, Pulsin/out, etc) will have that timing disturbed by the interrupts. Synchronous commands like LCDOUT, I2C and ShifIn/Out don't care.

Had you been using a paralel interface to the LCD, it wouldn't have a problem.

However, As you've found out with Serout, 1 easy way is to just turn off GIE before those types of statements. But that can cause you to lose interrupts. I'm sure at some point you'll be doing more than just blinking lights, and the problem will become more evident.

If you use the USART on the 16F876 with HSEROUT, then you won't need to turn off the interrupts while sending serial data, and you won't lose any interrupts.

HTH,
  Darrel