Hi,
Yeah, sorry about that, it should of course be CMCON0 = 7 and ANSEL = 0.

You have D7 on the LCD connected to RA3 which is also the MCLR pin on the 16F688. There are two issues with that.
1) The MCLR functionallity would have to be disabled via the CONFIG bits in order for that pin to work as anything but MCLR.
2) On the 16F688, even with MCLR disabled, RA3 can only work as an inputs as it lacks output driver circuitry.

You'll be better off moving the datalines to PortC.0-3, put the Enable signal on PortC.4 and RS on PortC.5. Use the DEFINE directive to change the pin-mapping, just as you did for the Enable signal.

/Henrik.