|
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 協(xié)議)
'
' *************************************
' * PCF8574 I2C LCD Adapter test *
' * For multiple LCDs 2021/ 3/24 *
' *************************************
'
$regfile = "m328pdef.dat" '設(shè)置要使用的 AVR。
$crystal = 16000000 '設(shè)置 AVR 時(shí)鐘。
'
$hwstack = 64 '設(shè)置硬件堆棧的容量。
$swstack = 10 '設(shè)置軟件堆棧的容量。
$framesize = 24 '設(shè)置框架區(qū)域的容量。
'
' * PCF8574 I2C LCD 適配器設(shè)置 *
'
Const I2c_select = 1 '0:軟件 I2C,1:TWI
#if I2c_select = 0
'------[對(duì)于軟件 I2C]------
Config I2cdelay = 10 'SCL 時(shí)鐘頻率 = 大約 42KHz。 (在 AVR 時(shí)鐘 16MHz 時(shí))(* 最大 100KHz)
Config Scl = Portd.2 '設(shè)置端口引腳連接 I2C 總線的 SCL 線。
Config Sda = Portd.3 '設(shè)置端口引腳連接 I2C 總線的 SDA 線。
I2cinit '初始化 I2C 總線的 SCL 和 SDA 線。
'-------------------------------
#else
'------[對(duì)于 TWI]------------------
$lib "i2c_twi.lib" '結(jié)合硬件 I2C/TWI 庫(kù)。
Config Twi = 100000 'I2C 總線時(shí)鐘 = 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 從機(jī)地址。 (&H40,&H42,&H44,&H46,&H48,&H4A,&H4C,&H4E)
Dim Backlight As Byte : Backlight = 1 'LCD背光控制。 (0:關(guān)閉,1:開啟)
$lib "lcd_i2c_PCF8574.LIB" '包含 I2C LCD PCF8574 適配器庫(kù)。
Config Lcd = 20x4 '將 LCD 設(shè)置為 20 個(gè)字符和 4 行。
Initlcd '初始化液晶顯示器。
'
' * 安裝第二個(gè)及后續(xù) LCD 時(shí) *
'
pcf8574_lcd = &H4c '第二個(gè)PCF8574的從機(jī)地址。 (&H40,&H42,&H44,&H46,&H48,&H4A,&H4C,&H4E)
Initlcd '初始化第二個(gè) LCD。
'
Pcf8574_lcd = &H4A '第三個(gè)PCF8574的從機(jī)地址。 (&H40,&H42,&H44,&H46,&H48,&H4A,&H4C,&H4E)
Initlcd '初始化第三個(gè) LCD。
'
' ****************
' * 顯示測(cè)試 *
' ****************
'
Pcf8574_lcd =64 '&H40 '指定第一個(gè) LCD。
'
Locate 1 , 1 '標(biāo)題的顯示。
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 的從機(jī)地址。
Lcd "[" ; Hex(pcf8574_lcd) ; "]"
'
' * 第二個(gè)液晶顯示器 *
'
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 的從機(jī)地址。
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 的從機(jī)地址。
Lcd "[" ; Hex(pcf8574_lcd) ; "]"
'
Locate 3 , 3
Lcd "-- 3rd Line --"
'
Locate 4 , 4
Lcd "20x4 Display "
'
Locate 4 , 20 '顯示光標(biāo)。
Cursor On , Blink
End
|
|