$programmer = 22 'ARDUINO (using stk500v1 protocol) ' ' ****************************************** ' * MCP23017 I2C G-LCD アダプターのテスト * ' * (複数G-LCD用) 2021. 4.21 * ' ****************************************** ' $regfile = "m328pdef.dat" '使用するAVRを設定。 $crystal = 16000000 'AVRクロックを設定。 ' $hwstack = 64 'ハードウェア・スタックの容量を設定。 $swstack = 10 'ソフトウェア・スタックの容量を設定。 $framesize = 24 'フレーム領域の容量を設定。 ' ' * MCP23017 I2C G-LCD アダプターの設定 * ' Const I2c_select = 1 '0:ソフトウェアI2C , 1:TWI #if I2c_select = 0 '------[ソフトウェアI2C用]------ ' $lib "i2cV2.LBX" '修正版のI2Cライブラリを組み込む。 Config I2cdelay = 1 'SCLのクロック周波数。 Config Scl = Portd.2 'I2CバスのSCLラインを接続するポートピンを設定。 Config Sda = Portd.3 'I2CバスのSDAラインを接続するポートピンを設定。 I2cinit 'I2CバスのSCL,SDAラインを初期化する。 '------------------------------- #else '------[TWI用]------------------ $lib "i2c_twi.lib" 'ハードウェア I2C/TWI ライブラリを組み込む。 Config Twi = 400000 'I2Cバスのクロック = 400KHz Config Scl = Portc.5 'SCLのピン名を指定する必要があります。 Config Sda = Portc.4 'SDAのピン名を指定する必要があります。 I2cinit 'I2CバスのSCL,SDAラインを初期化する。 '------------------------------- #endif Const Mcp23017_multi = 1 '複数G-LCDモードにする。 Dim Glcd_address As Byte : Glcd_address = &H40 'MCP23017のスレーブ・アドレス。(&H40,&H42,&H44,&H46,&H48,&H4A,&H4C,&H4E) Dim Backlight As Byte : Backlight = 1 'LCDのバックライト制御。(0:消灯, 1:点灯) Dim Dummy As Byte : I2creceive &H00 , Dummy '[_I2C_READ]ルーチンを組み込むためのダミー命令。 $lib "glcdKS108_I2C_MCP23017.lib" 'KS0108チップ用のライブラリを組み込む。 Config Graphlcd = 128 * 64sed 'グラフィックLCDの画面設定。 ' ' * 2台目以降のG-LCDを搭載する場合 * ' Glcd_address = &H42 '2台目のG-LCDを指定する。 !CALL _set_display 'グラフィックLCDを初期化する。 ' ' * 描画のテスト * ' Dim Y As Byte ' Glcd_address = &H40 '1台目のG-LCDを指定する。 Cls 'グラフィックLCDの全画面を消去する。 Setfont Font8x8 'フォントを設定する。 Lcdat 1 , 1 , "MCP23017 I2C" '文字列を表示。 Lcdat 2 , 20 , "G-LCD adapter" , 1 '文字列を反転表示。 ' For Y = 23 To 63 Step 5 Line(3 , 23) -(35 , Y) , 1 '直線を描画。 Next Y ' Box(45 , 30) -(80 , 55) , 1 'ボックスを描画。 Cls 6 , 53 , 73 , &HCA 'ブロック消去のテスト。 ' Circle(105 , 40) , 16 , 1 '円を描画。 Pset 105 , 40 , 1 '円の中心に点を描画。 ' ' * 2台目のG-LCD * ' ' ' * SHOWPIC命令のテスト * ' Glcd_address = &H42 '2台目のG-LCDを指定する。 Cls 'グラフィックLCDの全画面を消去する。 Showpic 0 , 0 , Plaatje 'BGFファイルを描画する。 ' End 'プログラムの終了。 ' $include "font8x8.font" 'フォント・ファイルを組み込む。 ' Plaatje: 'BGFファイルのラベル名。 $bgf "KS108.bgf"