实验三十一:LCD1602 并行控制实验

来自丢石头百科
Yousimaier17讨论 | 贡献2024年8月22日 (四) 17:04的版本 →‎Arduino

首页

显示原理

在数字电路中,所有的数据都是以0和1保存的。对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。而对于中文,常用却有6000以上,所以在ASCII表中,将高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如英文的'A'在字模的记载方式如图1所示.

LCD Display Module 显示原理字符.jpg

而中文的“你”在字模中的记载却如图2所示。

LCD Display Module 显示原理汉字.jpg

首页

模块说明

对比度调节

  • 通过在VO引脚接入电位器进行对比度调节,其中:
    • 对比度最大时显示:
      • 实验三十二:LCD1602 IIC显示实验 对比度1.png
    • 对比度最小时显示:
      • 实验三十二:LCD1602 IIC显示实验 对比度2.png
  • 当调节电位器至合适位置后,显示如下情况时:
    • 实验三十二:LCD1602 IIC显示实验 对比度3.png
    • 检查接线是否松动
    • 检查初始化程序是否正确

背光选择

  • 可通过A K引脚是否接入VCC和GND,来控制是否背光显示。
    • 引脚A接入VCC,引脚K接入GND,打开背光时
      • 实验三十二:LCD1602 IIC显示实验 背光2.png
    • 引脚A断开VCC或者引脚K端开GND,关闭背光时
      • 实验三十二:LCD1602 IIC显示实验 背光1.png

Arduino

实验现象

  • LCD1602刚上电显示Welcome to use!
  • LCD1602第一行显示Hello,Diustou!
  • LCD1602第二行滚屏显示Hello,Diustou!

部分函数说明

  • 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的引脚编号
  • begin()——指定显示屏尺寸
    • 内容:指定显示屏的尺寸(宽度和高度)。
    • 语句:lcd.begin(cols, rows)
    • 参数设置:
      • lcd: 液晶类型的名称变量
      • cols: 显示器可以显示的列数(1602是16列)
      • rows: 显示器可以显示的行数(1602是2行)
  • clear())——清屏并将光标置于左上角
    • 简介:清除LCD屏幕上内容,并将光标置于左上角。
    • 语法: lcd.clear()
  • home()——将光标置于左上角(不清屏)
    • 内容:将光标定位在屏幕左上角. 就是说,接下来的字符从屏幕左上角开始显示.如果同时要清除屏幕上的内容,请使用clear()函数代替.
    • 语法: lcd.home()
  • setCursor())——将光标置于指定位置
    • 简介:将光标定位在特定的位置。
    • 语法: lcd.setCursor(col, row)
    • 参数:
      • lcd: 液晶类型的名称变量
      • col: 你要显示光标的列 (从0开始计数)
      • row: 你要显示光标的行 (从0开始计数)
  • write())——显示一个字符(在光标处)
    • 简介:向LCD写一个字符。
    • 语法:lcd.write(data)
    • 参数:
      • lcd: LiquidCrystal类的对象
      • data: 你要显示的字符(仅限英文和数字和你自己定义的字符)。
  • print())——显示字符串
    • 内容:将文本显示在LCD上.
    • 语法:
      • lcd.print(data)
      • lcd.print(data, BASE)
    • 参数:
      • lcd: 液晶类型的名称变量
      • data:要显示的数据,可以是char, byte, int, long或者string类型的
      • BASE (optional): 数制(可选),BIN,DEC,OCT,HEX分别将数字以二进制,十进制,八进制,十六进制方式显示出来.

电路连接

  • 实验三十一:LCD1602并行显示实验 接线1.png

主要程序

  int i = 0;
  lcd.setCursor(1,0);             //设置液晶开始显示的指针位置
  lcd.print("Hello,Diustou!");    //液晶显示Hello,Diustou!
  for(i=16;i >=0;i--)
  {
    lcd.setCursor(i,1); 
    lcd.print("Hello,Diustou!");    //液晶显示温度整数值
    delay(1000);
  } 
  lcd.clear();                    //液晶清屏

树莓派

实验现象

电路连接

程序运行

C语言

Python

例程下载

相关例程

Arduino和树莓派基础实验套件例程
教程名2
  • 列表2
教程名3
  • 列表3
教程名4
  • 列表4
教程名5
  • 列表5
教程名6
  • 列表6