Arduino-1602-LiquidCrystal库

前言:LiquidCrystal是一个1602的IIC库,使用IIC协议可以极大节约用线数量,十分方便。当然,前提是1602要使用LCD1602 I2C模块。

一、库函数快速查询

  1. LiquidCrystal()     //构造函数
  2. begin()                        //指定显示屏尺寸
  3. clear()                      //清屏并将光标置于左上角
  4. home()                    //将光标置于左上角(不清屏)
  5. setCursor()             //将光标置于指定位置
  6. write()                     //(在光标处)显示一个字符
  7. print()                     //显示字符串
  8. cursor()                  //显示光标(就是一个下划线)
  9. noCursor()             //不显示光标
  10. blink()                       //光标闪烁(和8,9一起使用时不保证效果)
  11. noBlink()                  //光标不闪烁
  12. noDisplay()              //关闭显示,但不会丢失内容
  13. display()                   //(使用noDisplay后)恢复显示
  14. scrollDisplayLeft()      //将显示的内容向左滚动一格
  15. scrollDisplayRight()    //将显示的内容向右滚动一格
  16. autoscroll()              //打开自动滚动
  17. noAutoscroll()         //关闭自动滚动
  18. leftToRight()           //从左向右显示内容(默认)
  19. rightToLeft()           //从右向左显示内容
  20. createChar()           //创造字符

二、库函数详细释义

2.1 LiquidCrystal()

内容:

  构造函数,创建一个LiquidCrystal的实例(LiquidCrystal是一个类)。可使用4线或8线方式作为数据线(请注意,还需要指令线).若采用四线方式,将d0-d3悬空不连接.RW引脚可接地而不用接在Arduino的某个引脚上;如果这样接,省略在函数中的rw参数.

语法:

    LiquidCrystal(rs, enable, d4, d5, d6, d7) 
    LiquidCrystal(rs, rw, enable, d4, d5, d6, d7) 
    LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7) 
    LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7)

参数设置:

    rs: rs连接的Arduino的引脚编号 
    rw: rw连接的Arduino的引脚编号 
    enable:enable连接的Arduino的引脚编号 
    d0, d1, d2, d3, d4, d5, d6, d7: 连接的Arduino的引脚编号

例子:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);    

void setup()
{
    lcd.print("hello, world!");
}

void loop() {}

2.2  begin ()

内容:

    指定显示屏的尺寸(宽度和高度)。

语句:

    lcd.begin(cols, rows)

参数设置:

    lcd: 液晶类型的名称变量 
    cols: 显示器可以显示的列数(1602是16列) 
    rows: 显示器可以显示的行数(1602是2行)

2.3  clear ()

简介:

    清除LCD屏幕上内容,并将光标置于左上角。

语法:

    lcd.clear()

参数:

    lcd:LiquidCrystal类的对象

2.4  home()

内容:

    将光标定位在屏幕左上角. 就是说,接下来的字符从屏幕左上角开始显示.如果同时要清除屏幕上的内容,请使用clear()函数代替.

语法:

    lcd.home()

参数设置:

    lcd: LiquidCrystal类的对象

2.5 setCursor()

简介:

    将光标定位在特定的位置。

语法:

    lcd.setCursor(col, row)

参数:

    lcd:LiquidCrystal类的对象
    col: 你要显示光标的列 (从0开始计数) 
    row: 你要显示光标的行 (从0开始计数)

2.6 write()

简介:

    向LCD写一个字符。

语法:

    lcd.write(data)

参数:

    lcd: LiquidCrystal类的对象 
    data: 你要显示的字符(仅限英文、数字和自定义字符)。

返回值:    

    byte     //write() 将返回写入的字节数,虽然读这个数字是可选

示例:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

void setup()
{
    Serial.begin(9600);
}

void loop()
{
    if (Serial.available())
    {
        lcd.write(Serial.read());
    }
}

2.7  print()

内容:

    将文本显示在LCD上.

语法:

    lcd.print(data) 
    lcd.print(data, BASE)

参数:

    lcd: 液晶类型的名称变量 
    data:要显示的数据,可以是char, byte, int, long或者string类型的 
    BASE (optional): 数制(可选),BIN,DEC,OCT,HEX分别将数字以二进制,十进制,八进制,十六进制方式显示出来.

返回值:

    byte     //这个返回值通常是用不到的

示例:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

void setup()
{
    lcd.print("hello, world!");
}

void loop() {}

2.8  cursor()

内容:

    显示光标(光标所在的位置, 就是下一个字符将会被显示的位置)。

语法:

    lcd.cursor()

参数设置:

    lcd: 液晶类型的名称变量

2.9  noCursor()

内容:

    隐藏光标。

语法:

    lcd.noCursor()

参数:

    lcd: 液晶类型的名称变量

2.10 blink()

内容:

    显示闪烁的光标。如果和cursor()一起使用,最终结果将取决于您使用的LCD屏幕.

语法:

    lcd.blink()

参数设置:

    lcd: 液晶类型的名称变量

2.11 noBlink()

内容:

    关闭 光标闪烁功能.

语句:

    lcd.noBlink()

参数设置:

    lcd: 液晶类型的名称变量

2.12 noDisplay()

内容:

    关闭液晶显示,但原先显示的内容不会丢失. 可使用display()恢复显示.

语法:

    lcd.noDisplay()

参数:

    lcd: 液晶类型的名称变量

2.13 display()

简介:

    调用noDisplay()隐藏LCD上显示内容后,调用本函数恢复显示.

语法:

    lcd.display()

参数:

    lcd: 液晶类型的名称变量

2.14 scrollDisplayLeft()

简介:

    使屏幕上内容(光标及文字)向左滚动一个字符。

语法:

    lcd.scrollDisplayLeft()

参数:

    lcd: 一个LiquidCrystal类的对象

2.15 scrollDisplayRight()

简介:

    使屏幕上内容(光标及文字)向右滚动一个字符。

语法:

    lcd.scrollDisplayRight()

参数:

    lcd: 一个LiquidCrystal类的对象

2.16 autoscroll()

简介:

  打开液晶显示屏的自动滚动,将会使得当一个字符输出到LCD时,令先前的文本移动一个位置.如果当前写入方向为由左到右(默认方向),文本向左滚动.反之,文本向右滚动.它的功能可以理解为,当输出单个字符时,会使得字符总是输出在LCD上的同一个位置.

语法:

    lcd.autoscroll()

参数:

    lcd: a variable of type LiquidCrystal

2.17 noAutoscroll()

简介:

    关闭自动滚动功能。(后输入的字符可能无法显示)

语法:

    lcd.noAutoscroll()

参数:

    LCD:LiquidCrystal类的对象

2.18 leftToRight()

内容:

    默认的方向,将文本从左到右写入屏幕.这意味着,后续字符的显示将是从左向右的,但是这不会影响先前已经显示的字符.

语法:

    lcd.leftToRight()

参数设置:

    lcd: a variable of type LiquidCrystal

2.19 rightToLeft()

简介:

    设置文本写入LCD的方向为从右向左(默认是从左向右)。这意味着,后续字符将会由右至左写入,但不影响先前的文本的显示。

语法:

    lcd.rightToLeft()

参数:

    lcd: 一个LiquidCrystal类的对象

2.20 createChar()

内容:

  创建用户自定义的字符.共可创建8个用户自定义字符,编号从0到7.字符外观由一个8字节数组定义,每行占用一个字节.最低的5个有效位决定像素点所在的行.若要在屏幕显示自定义字符,请使用write()函数.(参数为字符的编号0-7)

语法:

    lcd.createChar(num, data)

参数设置:

    lcd: a variable of type LiquidCrystal 
    num: 所创建字符的编号(0-7) 
    data: 字符的像素数据

例子:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

byte smiley[8] = {    //1表示亮,0表示不亮,此例显示一个笑脸
    B00000,
    B10001,
    B00000,
    B00000,
    B10001,
    B01110,
    B00000,
};

void setup() {
    int x=1;    //x可以为0~7的任何数字
    lcd.createChar(x , smiley);    //将x号字符设置为smiley数组表示的样子
    lcd.begin(16, 2);
    lcd.write(x);
}

void loop() {}

参考自:https://www.cnblogs.com/Dumblidor/p/5394302.html

和https://wenku.baidu.com/view/f0551a3deefdc8d376ee327d.html

-END-

原文地址:https://www.cnblogs.com/chendeqiang/p/10324463.html

时间: 2024-08-02 10:27:08

Arduino-1602-LiquidCrystal库的相关文章

Arduino下LCD1602综合探究(中)——如何减少1602的连线,LiquidCrystal库,LiquidCrystal库中bug的解决方法

一.前言: 上文中,笔者系统的阐述了1602的两种驱动方式,并简单的提到了Arduino的LiquidCrystal库.本文紧接上文,对以下两个问题进行更加深入的探讨:如何能够使1602对Arduino的端口占用降到最少?LiquidCrystal库到底应该如何学习?在Arduino下LCD1602综合探究(下)中,笔者拟介绍一个1602的综合性实验,以期对前文的内容加以综合应用和总结.闲话少说,下面开始进入正文. 二.减少1602对Arduino的端口占用 <1>不使用I2C 在上文中,笔者

Arduino 1602液晶屏实验和程序

在Arduino IDE中, 项目->加载库->管理库中搜索LiquidCrystal,然后安装即可 1.接线图 2.引脚图 3.最简单程序 #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); lcd.print("hello,world!"); } void loop() { } 4.升级版程序 通过串口读取字符串,

Arduino自己封装库

导言:以封装一个简单的LED库为例,当然这个库是没有必要的,这是测试!!   OK ,Let's Start! 1.新建一个文件夹:LED 在LED文件夹下创建examples文件夹.keywords.txt文件.LED.cpp文件和LED.h文件 2.编写LED.h     ......其实就是创建一个LED的类: #ifndef LED_H #define LED_H #include "arduino.h" class LED { public: LED(int pin); vo

Arduino利用TimerOne库产生固定频率和占空比的方波

TimerOne地址: https://code.google.com/archive/p/arduino-timerone/downloads ex: #include "TimerOne.h" void setup(){ pinMode(10, OUTPUT); Timer1.initialize(500000); // initialize timer1, and set a 1/2 second period Timer1.pwm(9, 512); // setup pwm o

如何编写自己的Arduino库?

一开始写Arduino 的时候很不习惯,没有main函数,因为好多东西都被隐藏了.一直想搞清楚,以便编写自己的库文件.于是研究一下午,下面是一些总结. Arduino工程的初步认识 一.目录规范 当你创建一个空的工程,先按下ctrl+s保存一下.这个时候弹出对话框,命名工程.假如命名为LED,并保存在 我自己的Arduino工作目录下  H:\Arduino\workspace\ 于是IDE会自动帮我们在workspace下创建1个文件夹,并将sketch主文件放在里面,而且主文件和文件夹同名.

深入学习 OLED Adafruit_SSD1306库(8266+arduino)

QQ技术互动交流群:ESP8266&32 物联网开发 群号622368884,不喜勿喷 单片机菜鸟博哥CSDN 1.前言 SSD1306屏幕驱动库,最出名应该就是u8g2,读者可以参考 玩转u8g2 OLED库,一篇就够. 但是u8g2有个弊端就是:一个超级庞大的第三方库,性能并不是非常好(但是基本上支持了市面上绝大部分的LED屏). 我们这里深入学习 Adafruit_GFX 和 Adafruit_SSD1306. 那么,读者可能就有疑问了?Adafruit_SSD1306是什么鬼? Adaf

Arduino调试温湿度传感器AM2321

AM2321是广州奥松电子生产的数字式温湿度传感器.虽是国产品牌,其精度也可以与国外的主流温湿度传感IC媲美. 尺寸:11.3x7.8x4mm(长x宽x高) 封装:0.05 pitch PTH 工作电压:2.6~5V 接口:I2C,最大速率100kbps,有特殊时序要求 分辨率:温度0.1°C,相对湿度0.1%RH 精度:室温时温度误差+/-0.3°C,相对湿度误差+/-3%RH 重复性:温度+/-0.2°C,相对湿度+/-0.1%RH 美中不足:与国外同精度产品相比,AM2321的重复性和漂移

x86 构架的 Arduino 开发板Intel Galileo

RobotPeak是上海的一家硬件创业团队,团队致力于民用机器人平台系统.机器人操作系统(ROS)以及相关设备的设计研发,并尝试将日新月异的机器人技术融入人们的日常生活与娱乐当中.同时,RobotPeak 将尽力为机器人技术在开源硬件.开源软件社区的普及做出贡献.陈士凯是 RobotPeak 联合创始人,他给我们带来了最新的  x86 构架的 Arduino 开发板 Intel Galileo 的深度使用报告. 1.前言 在今年(2013)罗马举办的首届欧洲 Make Faire 上,Intel

NFC:Arduino、Android与PhoneGap近场通信

NFC:Arduino.Android与PhoneGap近场通信(第一本全面讲解NFC应用开发的技术著作移动智能设备近距离通信编程实战入门) [美]Tom Igoe(汤姆.伊戈),Don Coleman(唐.科尔曼),Brian Jepson(布莱恩.杰普森) 著   金建刚 冯依 姚尚朗 译 ISBN 978-7-121-23997-7 2014年9月出版 定价:65.00元 244页 16开 编辑推荐 欢迎进入近场通信(NFC)的世界,这种飞速发展的新技术能通过无线信号在靠近的电子设备间进行

Arduino I2C + AC24C32 EEPROM

主要特性 AC24C32是Atmel的两线制串行EEPROM芯片,根据工作电压的不同,有-2.7.-1.8两种类型.主要特性有: 工作范围:-2.7类型范围4.5~5.5V,-1.8类型1.8~5.5V.本文用的为-2.7类型. 待机功耗:与工作电压有关,见下图 容量:4096 x 8bits,即32k bits 接口:I2C,工作在5V时支持最大时钟频率400kHz,其他电压时100kHz 允许一次写一页(32-byte page write mode) 一次写动作完成的时间:与工作电压有关,