8574_1602_i2c
i2c_1602程序:rem Main.bas file generated by New Project wizard
rem
rem Created: 周一 7月 4 2022
rem Processor: ATmega328P
rem Compiler: BASCOM-AVR
rem Write your code here
$programmer = 22 'ARDUINO(使用 stk500v1 協議)
'
' *************************************
' * PCF8574 I2C LCD Adapter test *
' * For multiple LCDs 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 =64 '&H40 '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 適配器庫。
Config Lcd = 20x4 '將 LCD 設置為 20 個字符和 4 行。
Initlcd '初始化液晶顯示器。
'
' * 安裝第二個及后續 LCD 時 *
'
pcf8574_lcd = &H4c '第二個PCF8574的從機地址。 (&H40,&H42,&H44,&H46,&H48,&H4A,&H4C,&H4E)
Initlcd '初始化第二個 LCD。
'
Pcf8574_lcd = &H4A '第三個PCF8574的從機地址。 (&H40,&H42,&H44,&H46,&H48,&H4A,&H4C,&H4E)
Initlcd '初始化第三個 LCD。
'
' ****************
' * 顯示測試 *
' ****************
'
Pcf8574_lcd =64 '&H40 '指定第一個 LCD。
'
Locate 1 , 1 '標題的顯示。
Lcd "PCF8574"
'
Locate 2 , 2
Lcd "I2C LCD Adapter"
'
Deflcdchar 2 , &H02 , &H04 , &H0C , &H1E , &H0F , &H06 , &H04 , &H08 'Write the custom character [Lightning] to the LCD.
Locate 1 , 15 '顯示自定義字符。
Lcd Chr(2) ; "1"
'
Locate 1 , 9 '顯示 PCF8574 的從機地址。
Lcd "[" ; Hex(pcf8574_lcd) ; "]"
'
' * 第二個液晶顯示器 *
'
Pcf8574_lcd = &H4C 'Specify the second LCD.
'
Locate 1 , 1 'Display of title.
Lcd "PCF8574"
'
Locate 2 , 2
Lcd "I2C LCD Adapter"
'
Deflcdchar 3 , &H02 , &H04 , &H0C , &H1E , &H0F , &H06 , &H04 , &H08 'Write the custom character [Lightning] to the LCD.
Locate 1 , 15 'Display custom characters.
Lcd Chr(3) ; "2"
'
Locate 1 , 9 '顯示 PCF8574 的從機地址。
Lcd "[" ; Hex(pcf8574_lcd) ; "]"
'
' * 第三液晶顯示器 *
'
Pcf8574_lcd = &H4A 'Specify the third LCD.
'
Locate 1 , 1 'Display of title.
Lcd "PCF8574"
'
Locate 2 , 4
Lcd "I2C LCD Adapter"
'
Deflcdchar 4 , &H02 , &H04 , &H0C , &H1E , &H0F , &H06 , &H04 , &H08 'Write the custom character [Lightning] to the LCD.
Locate 1 , 19 'Display custom characters.
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
|