まずはオシロでVlcdを計りましたが、Vddと同じ電圧しか出ません。コマンドがうまく入っていない。ではこの間表示が出たのは何なのか・・・。
i2cのやりとりが不安定なのかもという心配も出てきたので、別途アイデアを考えることにします。
追加修正
このあと、お店の方に問い合わせたり、試行錯誤したりして2.5Vでの動かし方わかりました。閾値コマンドは結局不明なままです。次を参照してください。
http://d.hatena.ne.jp/nobcha23/20120704/1341383345
ところで、このブログにググッたり、リンクをたどったりして、いらした方で過去書き込みを参照になりたい場合、次のホームページにまとめ情報も一部ありますので、覗いてみてください。
http://chitose6thplant.web.fc2.com/
その後さらに追記次のような連続コマンドでイニシャライズするとよいようです。
/******************************* * LCD初期化処理 連続バイト *******************************/ void lcd_init2(void) { // PCF2119マニュアル掲載お約束 __delay_ms(100); // 100mS delay 電源安定まで待つ lcd_cmd(0x30); // 8bit long IF __delay_ms(5); // 5mS delay lcd_cmd(0x30); // 8bit __delay_ms(5); // 5mS delay lcd_cmd(0x30); // 8bit __delay_us(40); // 40uS delay i2c_writeto(LCD_AD); // LCDアドレスをOPEN i2c_putbyte(0x00); // CO:0(STOP),RS:0 コマンドです i2c_putbyte(0x35); // FUNCTION_set 8bit M:1:2line H:1 i2c_putbyte(0x41); // voltage multi i2c_putbyte(0x80|VLCD); // Vlcd Va Set i2c_putbyte(0xC0|VLCD); // Vlcd Vb Set i2c_putbyte(0x34); // FUNCTION_set 8bit M:1:2line H:0 i2c_stop(); // stop lcd_cmd(0x01); // Clear display __delay_ms(100); // 100mS待ち __delay_ms(100); // 100mS待ち __delay_ms(100); // 100mS待ち __delay_ms(100); // 100mS待ち lcd_cmd(0x0F); // DISP on, Cursor on lcd_cmd(0x06); // Entry mode I_D:1 S:0 }