LiquidCrystal_I2C库函数

目录

主要资料来源:

一、函数一览:

二、具体解释:

三、综合示例:


LiquidCrystal_I2C库函数 

https://github.com/marcoschwartz/LiquidCrystal_I2C

Arduino IDE版本:2.3.3.4

主要资料来源:

LiquidCrystal库函数 - Dumblidor - 博客园

一、函数一览:

  1. LiquidCrystal_I2C ()     //构造函数
  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()           //大奥义·字符创造之术(往下拉)

二、具体解释:

 1    LiquidCrystal()

  内容:

  构造函数,创建一个LiquidCrystal_I2C的实例(LiquidCrystal_I2C是一个类)。LiquidCrystal_I2C(uint8_t lcd_Addr,uint8_t lcd_cols,uint8_t lcd_rows);.

  语法:

    LiquidCrystal_I2C(uint8_t lcd_Addr,uint8_t lcd_cols,uint8_t lcd_rows);

例子:

LiquidCrystal_I2C lcd(0x27,16,2);  // 设置LCD1602A的 地址为 0x27,16个字符,2行显示

2  begin ()

  内容:

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

  语句:

    lcd.begin(cols, rows)

  参数设置:

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

3  clear ()

  简介:

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

  语法:

    lcd.clear()

  参数:

    lcd:LiquidCrystal_I2C类的对象

4  home()

  内容:

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

  语法:

    lcd.home()

  参数设置:

    lcd: LiquidCrystal_I2C类的对象

5  setCursor()

  简介:

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

  语法:

    lcd.setCursor(col, row)

  参数:

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

6     write()

  简介:

    向LCD写一个字符。

  语法:

    lcd.write(data)

  参数:

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

  返回值:    

    byte     //write() 将返回写入的字节数,

  

7  print()

  内容:

    将文本显示在LCD上.

  语法:

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

  参数:

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

  返回值:

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

8  cursor()

  内容:

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

  语法:

    lcd.cursor()

  参数设置:

    lcd: 液晶类型的名称变量

9     noCursor()

  内容:

    隐藏光标。

  语法:

    lcd.noCursor()

  参数:

    lcd: 液晶类型的名称变量

10    blink()

  内容:

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

  语法:

    lcd.blink()

  参数设置:

    lcd: 液晶类型的名称变量

11     noBlink()

  内容:

    关闭 光标闪烁功能.

  语句:

    lcd.noBlink()

  参数设置:

    lcd: 液晶类型的名称变量

12   noDisplay()

  内容:

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

  语法:

    lcd.noDisplay()

  参数:

    lcd: 液晶类型的名称变量

13    display()

  简介:

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

  语法:

    lcd.display()

  参数:

    lcd: 液晶类型的名称变量

14    scrollDisplayLeft()

  简介:

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

  语法:

    lcd.scrollDisplayLeft()

  参数:

    lcd: 一个LiquidCrystal_I2C类的对象

15    scrollDisplayRight()

  简介:

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

  语法:

    lcd.scrollDisplayRight()

  参数:

    lcd: 一个LiquidCrystal_I2C类的对象

16    autoscroll()

  简介:

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

  语法:

    lcd.autoscroll()

  参数:

    lcd: a variable of type LiquidCrystal

17    noAutoscroll()

  简介:

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

  语法:

    lcd.noAutoscroll()

  参数:

    LCD:LiquidCrystal_I2C类的对象

18    leftToRight()

  内容:

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

  语法:

    lcd.leftToRight()

  参数设置:

    lcd: a variable of type LiquidCrystal

19    rightToLeft()

  简介:

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

  语法:

    lcd.rightToLeft()

  参数:

    lcd: 一个LiquidCrystal_I2C类的对象

 

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 <Wire.h>

#include <LiquidCrystal_I2C.h>



LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display



void setup()

{

  lcd.init();                // 初始化LCD

  lcd.backlight();           // 打开背光

  lcd.cursor();//显示光标

  delay(1000);

  // lcd.noBlink();//光标不闪烁

  delay(1000);

  lcd.blink();//光标闪烁(方形色块闪烁)

  delay(1000);

  lcd.noBlink();//光标闪烁(方形色块闪烁)

  delay(500);

  lcd.setCursor(3,1);       // 将光标设置到第4列(03)之后,第一行(对于1602来说,取值为0和1,如果不为0,其他任何数值都一直在第2行显示)

  //lcd.leftToRight();//从左到右显示文字

  lcd.rightToLeft();//从右到左显示文字

  //lcd.home(); //home()使光标回到(0,0),回到初始位置,从左到右执行

  lcd.setCursor(15,1);// 将光标设置到第15列,

  lcd.print("Hello, world!");  // 在LCD上打印"Hello, world!"

  delay(1000);

  lcd.autoscroll();//打开自动滚动

  lcd.scrollDisplayLeft();//显示内容整体向左移动一格

  delay(1000);

  lcd.scrollDisplayRight();//显示内容整体向右移动一格

  delay(1000);

  lcd.leftToRight();//从左到右显示文字

  lcd.clear();

 

  //lcd.setCursor(0,0);// 将光标设置到第15列,

  lcd.print("Hello, world!");

  lcd.noAutoscroll();//输出后字符不移动,光标位于下一个字符位置处

  //lcd.autoscroll();//滚动书写模式,输出后字符左移,光标位于下一个字符位置处

  delay(500);

  //lcd.clear();

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

      B00000,

      B10001,

      B00000,

      B00000,

      B10001,

      B01110,

      B00000,

  };

  int x=1;    //x可以为0~7的任何数字

  lcd.createChar(x , smiley);    //将x号字符设置为smiley数组表示的样子

  delay(500);

  lcd.home();

  lcd.write(x);

}



void loop()

{

}

四、LiquidCrystal_I2C库头文件节选

// commands

#define LCD_CLEARDISPLAY 0x01

#define LCD_RETURNHOME 0x02

#define LCD_ENTRYMODESET 0x04

#define LCD_DISPLAYCONTROL 0x08

#define LCD_CURSORSHIFT 0x10

#define LCD_FUNCTIONSET 0x20

#define LCD_SETCGRAMADDR 0x40

#define LCD_SETDDRAMADDR 0x80



// flags for display entry mode

#define LCD_ENTRYRIGHT 0x00

#define LCD_ENTRYLEFT 0x02

#define LCD_ENTRYSHIFTINCREMENT 0x01

#define LCD_ENTRYSHIFTDECREMENT 0x00



// flags for display on/off control

#define LCD_DISPLAYON 0x04

#define LCD_DISPLAYOFF 0x00

#define LCD_CURSORON 0x02

#define LCD_CURSOROFF 0x00

#define LCD_BLINKON 0x01

#define LCD_BLINKOFF 0x00



// flags for display/cursor shift

#define LCD_DISPLAYMOVE 0x08

#define LCD_CURSORMOVE 0x00

#define LCD_MOVERIGHT 0x04

#define LCD_MOVELEFT 0x00



// flags for function set

#define LCD_8BITMODE 0x10

#define LCD_4BITMODE 0x00

#define LCD_2LINE 0x08

#define LCD_1LINE 0x00

#define LCD_5x10DOTS 0x04

#define LCD_5x8DOTS 0x00



// flags for backlight control

#define LCD_BACKLIGHT 0x08

#define LCD_NOBACKLIGHT 0x00



#define En B00000100  // Enable bit

#define Rw B00000010  // Read/Write bit

#define Rs B00000001  // Register select bit



class LiquidCrystal_I2C : public Print {

public:

  LiquidCrystal_I2C(uint8_t lcd_Addr,uint8_t lcd_cols,uint8_t lcd_rows);

  void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS );

  void clear();

  void home();

  void noDisplay();

  void display();

  void noBlink();

  void blink();//光标闪烁(方形色块闪烁)

  void noCursor();

  void cursor();

  void scrollDisplayLeft();//显示内容向左移动一格

  void scrollDisplayRight();

  void printLeft();

  void printRight();

  void leftToRight();

  void rightToLeft();//从右到左显示文字

  void shiftIncrement();

  void shiftDecrement();

  void noBacklight();

  void backlight();

  void autoscroll();//打开自动滚动

  void noAutoscroll();

  void createChar(uint8_t, uint8_t[]);

  void setCursor(uint8_t, uint8_t);

#if defined(ARDUINO) && ARDUINO >= 100

  virtual size_t write(uint8_t);

#else

  virtual void write(uint8_t);

#endif

  void command(uint8_t);

  void init();



compatibility API function aliases

void blink_on();            // alias for blink()

void blink_off();                 // alias for noBlink()

void cursor_on();                 // alias for cursor()

void cursor_off();                // alias for noCursor()

void setBacklight(uint8_t new_val);       // alias for backlight() and nobacklight()

void load_custom_character(uint8_t char_num, uint8_t *rows);  // alias for createChar()

void printstr(const char[]);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

打酱油的工程师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值