Arduino--LCD1602(4bit)

(1)简介

如下图所示,LCD1602是工业现场中比较常用的一款液晶显示器,管脚比较多,本文介绍一种4位传输线的控制方法(可节省4个IO口)

可显示字母、数字等,不能显示汉字
在这里插入图片描述

(2)接线

LCD1602UNO
VSSGND
VDDVCC
VO接3k电阻接地,或10k电位器调节
RS12
RWGND
EN11
D45
D54
D63
D72
AVCC
KGND

其中,D0–D3这4个管脚悬空不使用

(3)程序

/*
 引脚说明
 * LCD VSS-----GND
 * LCD VDD-----VCC
 * LCD VO(接3k电阻然后接GND,实际阻值根据电流调节)
 * LCD RS-----12
 * LCD RW-----GND
 * LCD En-----11
 * LCD D4-----5
 * LCD D5-----4
 * LCD D6-----3
 * LCD D7-----2
 * LCD A-----VCC
 * LCD K-----GND
 */
 
#include <LiquidCrystal.h>    //液晶显示头文件
 
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//initialize the library with the numbers of the interface pins
 
void setup() {
        lcd.begin(16, 2);             // set up the LCD's number of columns and rows:
        lcd.print("hello, world!");  // Print a message to the LCD.
}

 
void loop() {
        // set the cursor to column 0, line 1
        // (note: line 1 is the second row, since counting begins with 0):
        lcd.setCursor(0,1);
        lcd.print(millis()/1000);  // print the number of seconds since reset:
}

(4)补充——Arduino中其他LCD语法

函数名功能语法其他
ps一些说明语法位置为空意味着默认加上函数即可例如lcd.clear()、lcd.home()
LiquidCystal()构造函数,用来初始化LCDLiquidCrystal(rs,rw,enable,d4,d5,d6,d7)rs为连接至RS引脚,rw同理,enable为E引脚
8线连接时LiquidCrystal(rs,rw,enable,d0,d1,d2,d3,d4,d5,d6,d7)
begin设置显示宽高led.bdgin(cols,rows)因为时1602,所以为begin(16,2)
clear清楚所有内容并把光标固定在左上角
home光标复位至左上角
print文本输出lcd.write(data,BASE)data为需要输出的数据(char、byte、int、string。。)BASE为输出进制形式
setCursor移动光标位置lcd. serCursor(col,row)setCursor(3,0)是将光标固定在第一排第四列
cursor显示光标,在光标所在位置划出一条线
noCursor隐藏光标
blink开启闪烁光标需提前开启显示光标
noBlink关闭闪烁光标
display开启LCD显示会显示noDisplay函数发生之前的内容
noDisplay关闭LCD显示
autoscroll自动滚屏
noAutoscroll关闭自动滚屏
leftToRight从左到右输入
rightToLeft从右到左输入
scrollDisplayLeft向左滚屏,将LCD上显示的所有内容都向左移动一格
scrollDisplayRight向右滚屏
createChar创建自定义字符,最多支持8个(num最多到8),每个自定义字符使用一个8B的数组进行保存lcd.createChar(num.date)num为自定义字符的编号,data为自定义字符的像素数据,但需要输出时还要用到write()函数
setRowOffsets应该是纵向滚屏,因为没有lcd,查看了下源码lcd.serRowOffsets(1,2,3,4)输入数字为多少,向下滚屏多少行
首先,你需要确保你的STM32F103C8T6芯片上有I2C总线并且你已经正确地初始化了I2C总线。接下来,你需要下载一个适合你的LCD1602的库程序,然后将其添加到你的项目中。最后,你需要根据库程序的指导,将LCD1602连接到I2C总线的正确引脚上。 以下是一个例子,演示如何使用STM32F103C8T6的I2C端口接LCD1602库程序的步骤: 1. 首先,你需要初始化I2C总线。你可以使用STM32的HAL库来完成这个任务,例如: ```c void I2C_Init(void) { hi2c.Instance = I2C1; hi2c.Init.ClockSpeed = 100000; hi2c.Init.DutyCycle = I2C_DUTYCYCLE_2; hi2c.Init.OwnAddress1 = 0; hi2c.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; hi2c.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; hi2c.Init.OwnAddress2 = 0; hi2c.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; hi2c.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; if (HAL_I2C_Init(&hi2c) != HAL_OK) { Error_Handler(); } } ``` 2. 下载一个适合你的LCD1602的库程序。这里我们以LiquidCrystal库为例。 3. 将LiquidCrystal库添加到你的项目中。你可以通过在Arduino IDE中包含库来实现这一点。 4. 连接LCD1602到I2C总线的正确引脚上。这里我们以PCF8574 I/O扩展器为例,它的I2C地址是0x27。连接如下: | PCF8574 | LCD1602 | |---------|---------| | SDA | SDA | | SCL | SCL | | VCC | VCC | | GND | GND | 5. 初始化LiquidCrystal库。你可以使用以下代码来完成这个任务: ```c #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address, columns, rows void setup() { lcd.begin(); lcd.backlight(); } void loop() { lcd.setCursor(0, 0); lcd.print("Hello, world!"); delay(1000); } ``` 这就是如何使用STM32F103C8T6的I2C端口接LCD1602库程序的步骤。请注意,这只是一个例子。具体的步骤可能会因为你的LCD1602和库程序的不同而有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

541板哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值