“实验三十一:LCD1602 并行控制实验”的版本间的差异
来自丢石头百科
Yousimaier17(讨论 | 贡献) |
Yousimaier17(讨论 | 贡献) |
||
第1行: | 第1行: | ||
− | [[Basic Experiment Kits For Arduino | + | *[[Basic Experiment Kits For Arduino]] |
+ | *[[Basic Experiment Kits For Raspberry Pi]] | ||
== 显示原理 == | == 显示原理 == | ||
在数字电路中,所有的数据都是以0和1保存的。对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。而对于中文,常用却有6000以上,所以在ASCII表中,将高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如英文的'A'在字模的记载方式如图1所示. | 在数字电路中,所有的数据都是以0和1保存的。对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。而对于中文,常用却有6000以上,所以在ASCII表中,将高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如英文的'A'在字模的记载方式如图1所示. | ||
第90行: | 第91行: | ||
=== 电路连接 === | === 电路连接 === | ||
− | * | + | * |
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | LCD1602 Arduino UNO R3 | ||
+ | 八位并行 四位并行 | ||
+ | GND GND GND | ||
+ | VCC VCC VCC | ||
+ | VO 电位器滑动端 电位器滑动端 | ||
+ | RS D2 D2 | ||
+ | RW D3 D3 | ||
+ | EN D4 D4 | ||
+ | D0 D5 | ||
+ | D1 D6 | ||
+ | D2 D7 | ||
+ | D3 D8 | ||
+ | D4 D9 D5 | ||
+ | D5 D10 D6 | ||
+ | D6 D11 D7 | ||
+ | D7 D12 D8 | ||
+ | K VCC VCC | ||
+ | A GND GND | ||
=== 主要程序 === | === 主要程序 === | ||
第105行: | 第130行: | ||
lcd.clear(); //液晶清屏</pre> | lcd.clear(); //液晶清屏</pre> | ||
− | == | + | == 例程下载 == |
− | + | *[[:File:Basic Experiment Kits For Arduino.zip|Arduino例程]] | |
− | |||
− | |||
− | * | ||
− | |||
− | |||
− | |||
− | |||
− | |||
== 相关例程 == | == 相关例程 == | ||
{{Arduino and Raspberry Pi Case}} | {{Arduino and Raspberry Pi Case}} |
2024年12月3日 (二) 18:00的版本
显示原理
在数字电路中,所有的数据都是以0和1保存的。对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。而对于中文,常用却有6000以上,所以在ASCII表中,将高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如英文的'A'在字模的记载方式如图1所示.
而中文的“你”在字模中的记载却如图2所示。
模块说明
对比度调节
背光选择
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 Arduino UNO R3
八位并行 四位并行
GND GND GND
VCC VCC VCC
VO 电位器滑动端 电位器滑动端
RS D2 D2
RW D3 D3
EN D4 D4
D0 D5
D1 D6
D2 D7
D3 D8
D4 D9 D5
D5 D10 D6
D6 D11 D7
D7 D12 D8
K VCC VCC
A GND GND
主要程序
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(); //液晶清屏