TOPWAYのLM6059BCWというグラフィックLCDが入手できたので試してみたいと思います。大きさの割には解像度があり、バックライトもついていて視認性も悪くないです。
※注意:マイコンボードは3.3Vを使用して下さい。




使用機器
使用機器は下記のとおり。他、パソコンや電源、PICKIT2又はPICKIT3も当然ながら必要です。使い方はいたってシンプル。lm6059bcw.cを頭でインクルードし、起動時にlcd_ini()で初期化し、lcd_write(lcd_image);で書き込みます。表示内容はlcd_imageの中身を更新するかlcd_start(0);で行を指定してprintf(lcd_char,”abcdefghijklmnopqrstu”);でテキストを表示します。その他詳細はソースをご確認ください。
使用機器は下記のとおり。他、パソコンや電源、PICKIT2又はPICKIT3も当然ながら必要です。使い方はいたってシンプル。lm6059bcw.cを頭でインクルードし、起動時にlcd_ini()で初期化し、lcd_write(lcd_image);で書き込みます。表示内容はlcd_imageの中身を更新するかlcd_start(0);で行を指定してprintf(lcd_char,”abcdefghijklmnopqrstu”);でテキストを表示します。その他詳細はソースをご確認ください。 | ||||||
|
||||||
プロジェクトファイルも含めたサンプル zt-16f194701_lm6059bcw.zip | ||||||
接続ハーネスの図面 Harness_LM6059BCW-1.zip Harness_LM6059BCW-1.pdf | ||||||
開発環境:MPLAB_IDE_8_92 + CCS-C PCMコンパイラVer.4.132 |
/***************************************************************************************** グラフィックLCDモジュール(TOPWAY LM6059BCW)用ライブラリ 2016/10/29作成 □提供元 ZEATEC co.,ltd. □ご利用について 転載・無断使用可です。このライブラリを使用した上での不具合等に関しては、いかなる内容におい ても一切の責任を追わないものとします。 □使用方法 lcd_ini()をスタートアップに入れ、用途に合わせて下記を定期的(0.1sec単位ぐらい)に実行する。 フォントのデータはfont_data.cを修正することで記号なども追加できます。イメージデータの場合は、 image_data.cデータを修正してください。1バイト単位のデータ作成は伊藤 哲雅様作のLCD_Imageが 便利です。 1バイト単位のビットマップデータの場合 lcd_bitmap8(); 4バイト単位のビットマップデータの場合 lcd_bitmap32(); テキストの場合は行番号を指定してからテキストを送信。 lcd_start(0); printf(lcd_char,"///////////////////// "); lcd_start(1); printf(lcd_char,"/ ZEATEC co.,ltd. / "); lcd_start(2); printf(lcd_char,"/ ジーテック / "); lcd_start(3); printf(lcd_char,"/ / "); lcd_start(4); printf(lcd_char,"/AN0=%04lumV , RA1=%u / ",analog_value,port1_ra1); lcd_start(5); printf(lcd_char,"/TOPWEY LM6059BCW / "); lcd_start(6); printf(lcd_char,"/Dot128x64,Text21x8 / "); lcd_start(7); printf(lcd_char,"///////////////////// "); □接続方法 RE0 = DB0 RE1 = DB1 RE2 = DB2 RE3 = DB3 RE4 = DB4 RE5 = DB5 RE6 = DB6 RE7 = DB7 RF0 = /RES 1:Run 0:ini RF1 = A0 1:DisplayData 0:ControlData RF2 = E 上記以外の配線はLCDモジュール上またはハーネスによってVDDおよびVSSと接続する。 /CS1 = Vss R/W = Vss BLA = Vdd *****************************************************************************************/ int const contrast_lavel = 0x18; //LCDにコマンド送信 void lcd_cmd(int cmd){ output_bit(PIN_F1,0);// A0 0:Control data. output_e(cmd);// DB0-7 output_bit(PIN_F2,1);// E Enable trigger output_bit(PIN_F2,0);// E Enable trigger } //LCDにデータ送信 void lcd_data(int cmd){ output_bit(PIN_F1,1);// A0 0:Control data. output_e(cmd);// DB0-7 output_bit(PIN_F2,1);// E Enable trigger output_bit(PIN_F2,0);// E Enable trigger } //LCDを初期化 void lcd_ini(){ //初期値 output_bit(PIN_F0,!0);// /RES 0:stop. output_bit(PIN_F1,1);// A0 1:Display data. 0:Control data. output_bit(PIN_F2,0);// E Enable trigger //hardware reset LCD module output_bit(PIN_F0,1);// /RES SET output_bit(PIN_F0,0);// /RES RESET delay_ms(1); output_bit(PIN_F0,1);// /RES SET delay_ms(1); lcd_cmd(0xaf);//Display ON lcd_cmd(0x40);//Set display Start line=0 lcd_cmd(0xa0);//ADC = 0:Normal 1:Reverse lcd_cmd(0xa6);//Normal display lcd_cmd(0xa4);//Disible display all point lcd_cmd(0xa2);//Bais = 0xa2:1/9 0xa3:1/7 lcd_cmd(0xc8);//SHL Select 0xc8:Flipped in y direction 0xc0:Normal display lcd_cmd(0x2f);//Power control = all on lcd_cmd(0x26);//RA/RB setting lcd_cmd(0xf8);//Booster Rabit = 4x lcd_cmd(0x00);//(tow byte command) lcd_cmd(0x81);//E-Vol setting lcd_cmd(contrast_lavel);//(tow byte command) } void lcd_start(int row){ lcd_cmd(0xb0+row);//select page 0-3 lcd_cmd(0x10);//start form colum 4 lcd_cmd(0x00);//(tow byte command) } void lcd_char(char c){ lcd_data(font[c-0x20][0]); lcd_data(font[c-0x20][1]); lcd_data(font[c-0x20][2]); lcd_data(font[c-0x20][3]); lcd_data(font[c-0x20][4]); lcd_data(0x00); } //表示データ送信 void lcd_bitmap8(){ int tmp_data; long i,j; for(i=0;i<8;i++){ lcd_cmd(0xb0 | i);//select page 0-7 lcd_cmd(0x10);//start form colum 4 lcd_cmd(0x00);//(tow byte command) for(j=0;j<128;j++){ tmp_data = lcd_image8[(i*128)+j]; //tmp_data=lcd_image[0]; //tmp_data=(*(lcd_image+(i*132)+j)); lcd_data(tmp_data); } } }