> Thanks for this Jinx, I will try it out. Is there anything I need to > change as far as timings are concerned, I am using a 4mhz oscillator Not really, as long as you make 1ms = 1ms etc. Initialisation timing for the LCD is important, and it's often the cause of a blank screen. And of course make the changes that you need for a 16F The macro I use for 1 usec (seeing as it's generally a 452 and space isn't tight so a few of these won't be a problem) usec macro ;1us delay movff temp,temp movff temp,temp movff temp,temp movff temp,temp movff temp,temp endm is based on a 200ns instruction cycle. Yours is 1us per IC, so you can use a single NOP. It's generally OK with an LCD to have as little as 1us between BCF/BSF etc on a port driving RS/RW/EN, but more won't hurt and, although I've never had a problem, would be safer. The 44780 is fast-ish, for example Enable cycle time, 1000ns min Enable pulse width, 450ns min A reference http://www.doc.ic.ac.uk/~ih/doc/lcd/ -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist