Arduino--LCD1602(4bit)

(1)简介

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

可显示字母、数字等,不能显示汉字
Arduino--LCD1602(4bit)_第1张图片

(2)接线

LCD1602 UNO
VSS GND
VDD VCC
VO 接3k电阻接地,或10k电位器调节
RS 12
RW GND
EN 11
D4 5
D5 4
D6 3
D7 2
A VCC
K GND

其中,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 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() 构造函数,用来初始化LCD LiquidCrystal(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) 输入数字为多少,向下滚屏多少行

你可能感兴趣的:(Arduino)