Jason White wrote: > Problem: When I run it the LCD stays blank (backlight and everything else > turns on so its not a power issue) I've tried many diffrent code examples > and still got nothing ... 1) Your "delay_ms" routine doesn't delay anywhere near (1ms * value). It's more like (10us * value), meaning your delay_ms(100) startup delay is actually delaying about 1ms. 2) config at 0x2007 __CONFIG = _HS_OSC // internal high speed OSC & _IESO_OFF // no need for external OSC _HS_OSC is for an external high-speed (>=4MHz) oscillator crystal. You want one of the _INTRC_* osc settings, then you'll need to write to OSCCON to bring the core clock speed up to 4MHz (IIRC it defaults to 32kHz). Or leave it at 32kHz and your delays will be more or less right... 3) & _PWRTE_ON // no power up timer That turns the power up timer on. It's a good idea to use it, but maybe not what you were intending to do. 4) & _MCLRE_OFF // use external reset ? Set this to _MCLRE_ON or you might have problems reprogramming the chip. Also pull MCLR to Vcc through a 10k to 100k resistor. 5) #define ENABLE EN=1;EN=0; Ugh. You're raising the pin in one instruction, then lowering it immediately afterwards. The HD44780 isn't quick enough to pick up a 1us-wide EN pulse. You need a minimum of (IIRC) 4us. > you would notice the difference on the LCD even without a pot on the > contrast (V0) right ? Not necessarily. Low-voltage LCDs will usually work fine with the contrast pin grounded, though some larger displays (typically 20x2 and larger) need a negative voltage contrast supply (around -5V) and a pot to set the contrast. You can get this supply with a MAX660 or ICL7660 voltage converter, or a diode-capacitor voltage inverter tied to your PIC's PWM output (which then means you gain digital control of the contrast by varying the duty cycle). -- Phil. piclist@philpem.me.uk http://www.philpem.me.uk/ -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist