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
|