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”);でテキストを表示します。その他詳細はソースをご確認ください。
LCDのデータシート LM6059BCW.zip
マイコンボード(PIC16F1947搭載)
ZEATEC co.,ltd. ZT-PIC16F194701(3.3V仕様)
プロジェクトファイルも含めたサンプル
zt-16f194701_lm6059bcw.zip
接続ハーネスの図面
Harness_LM6059BCW-1.zip Harness_LM6059BCW-1.pdf
開発環境:MPLAB_IDE_8_92 + CCS-C PCMコンパイラVer.4.132
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
/******************************************************************************* グラフィック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); } } } |
©ZEATEC co.,ltd.