piclist-bounces@mit.edu wrote: >> Note that the LCD controller is busy for approximately 10ms after >> power up, so you must wait at least this long before attemping to >> configure it! > > Very true. I've had to increase my delay after power-up from > the usual 15ms to 30ms with some (no-name) brands. They > simply don't play ball if you try to initialise too early. > Maybe start with 50ms, decrease until it fails if power-up > time is an issue I also use 30ms. I've pasted a snipped of my c-code for 4bit initialization which worked for me. should be easy enough to convert to asm... // Copywrite Craig Lee 1998 // // REVISION HISTORY // 08/19/02 P.O.E. [snip] LCD_TRIS_RS = 0; LCD_TRIS_EN = 0; LCD_EN = 0; // enable LCD_RS = 0; // register select LCD_TRIS_D4 = 0; LCD_TRIS_D5 = 0; LCD_TRIS_D6 = 0; LCD_TRIS_D7 = 0; DelayMs(30); // power on delay lcd_write_nybble(0x3); //DB5, DB4 = 1 DelayMs(5); lcd_write_nybble(0x3); //DB5, DB4 = 1 DelayMs(5); lcd_write_nybble(0x3); //DB5, DB4 = 1 DelayMs(5); //get 4 bit interface lcd_write_nybble(0x2); //DB5 = 1 DelayMs(5); //function set. 4 bit, 2 lines, 5x8 dots lcd_command(LCD_FUNCMODE | LCD_4BITS | LCD_2LINES | LCD_5x8); //display control, all off lcd_command(LCD_DISPCNTRL); //clear display lcd_command(0x01); DelayMs(5); //entry mode increment (advance) cursor lcd_command(LCD_ENTRYMODE | LCD_INC); //display control, display on lcd_command(LCD_DISPCNTRL | LCD_DISPLAY); -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist