$programmer = 22 'ARDUINO (using stk500v1 protocol) ' ' *************************************** ' * PCF8574 I2C LCD アダプターのテスト * ' * (複数LCD用) 2021. 3.24 * ' *************************************** ' $regfile = "m328pdef.dat" '使用するAVRを設定。 $crystal = 16000000 'AVRクロックを設定。 ' $hwstack = 64 'ハードウェア・スタックの容量を設定。 $swstack = 10 'ソフトウェア・スタックの容量を設定。 $framesize = 24 'フレーム領域の容量を設定。 ' ' * PCF8574 I2C LCD アダプターの設定 * ' Const I2c_select = 1 '0:ソフトウェアI2C , 1:TWI #if I2c_select = 0 '------[ソフトウェアI2C用]------ Config I2cdelay = 10 'SCLのクロック周波数 = 約42KHz。(AVRクロック16MHz時) (*最大100KHz) 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 = 100000 'I2Cバスのクロック = 100KHz Config Scl = Portc.5 'SCLのピン名を指定する必要があります。 Config Sda = Portc.4 'SDAのピン名を指定する必要があります。 I2cinit 'I2CバスのSCL,SDAラインを初期化する。 '------------------------------- #endif Dim Pcf8574_lcd As Byte : Pcf8574_lcd = &H4E 'PCF8574のスレーブ・アドレス。(&H40,&H42,&H44,&H46,&H48,&H4A,&H4C,&H4E) Dim Backlight As Byte : Backlight = 1 'LCDのバックライト制御。(0:消灯, 1:点灯) $lib "lcd_i2c_PCF8574.LIB" 'I2C LCD PCF8574 Adapterのライブラリを組み込む。 Config Lcd = 20x4 'LCDを20文字4行に設定する。 Initlcd 'LCDを初期化する。 ' ' * 2台目以降のLCDを搭載する場合 * ' Pcf8574_lcd = &H4C '2台目のPCF8574のスレーブ・アドレス。(&H40,&H42,&H44,&H46,&H48,&H4A,&H4C,&H4E) Initlcd '2台目のLCDを初期化する。 ' Pcf8574_lcd = &H4A '3台目のPCF8574のスレーブ・アドレス。(&H40,&H42,&H44,&H46,&H48,&H4A,&H4C,&H4E) Initlcd '3台目のLCDを初期化する。 ' ' ************** ' * 表示テスト * ' ************** ' Pcf8574_lcd = &H4E '1台目のLCDを指定する。 ' Locate 1 , 1 'タイトルの表示。 Lcd "PCF8574" ' Locate 2 , 2 Lcd "I2C LCD Adapter" ' Deflcdchar 2 , &H02 , &H04 , &H0C , &H1E , &H0F , &H06 , &H04 , &H08 'カスタム文字[雷]をLCDへ書き込む。 Locate 1 , 15 'カスタム文字の表示。 Lcd Chr(2) ; "1" ' Locate 1 , 9 'PCF8574のスレーブ・アドレスを表示。 Lcd "[" ; Hex(pcf8574_lcd) ; "]" ' ' * 2台目のLCD * ' Pcf8574_lcd = &H4C '2台目のLCDを指定する。 ' Locate 1 , 1 'タイトルの表示。 Lcd "PCF8574" ' Locate 2 , 2 Lcd "I2C LCD Adapter" ' Deflcdchar 3 , &H02 , &H04 , &H0C , &H1E , &H0F , &H06 , &H04 , &H08 'カスタム文字[雷]をLCDへ書き込む。 Locate 1 , 15 'カスタム文字の表示。 Lcd Chr(3) ; "2" ' Locate 1 , 9 'PCF8574のスレーブ・アドレスを表示。 Lcd "[" ; Hex(pcf8574_lcd) ; "]" ' ' * 3台目のLCD * ' Pcf8574_lcd = &H4A '3台目のLCDを指定する。 ' Locate 1 , 1 'タイトルの表示。 Lcd "PCF8574" ' Locate 2 , 4 Lcd "I2C LCD Adapter" ' Deflcdchar 4 , &H02 , &H04 , &H0C , &H1E , &H0F , &H06 , &H04 , &H08 'カスタム文字[雷]をLCDへ書き込む。 Locate 1 , 19 'カスタム文字の表示。 Lcd Chr(4) ; "3" ' Locate 1 , 9 'PCF8574のスレーブ・アドレスを表示。 Lcd "[" ; Hex(pcf8574_lcd) ; "]" ' Locate 3 , 3 Lcd "-- 3rd Line --" ' Locate 4 , 4 Lcd "20x4 Display " ' Locate 4 , 20 'カーソルを表示する。 Cursor On , Blink End