Arduino教程 LCD 1602

Arduino教程 LCD 1602 

[复制链接]
   
 
跳转到指定楼层
楼主
 
 xuwei 发表于 2015-6-24 14:57 只看该作者 回帖奖励


练习使用HD44780 相容的文字型LCD(Liquid crystal display),在2×16 LCD 上显示”Hello World” 讯息。
2×16 LCD 简介
HD44780 相容的2×16 LCD 可以显示两行讯息,每行16 个字元,它可以显示英文字母、希腊字母、标点符号以及数学符号,除了显示讯息外,它还有其它功能,包括讯息卷动(往左和往右卷动)、显示游标和LED背光等。

 
LCD 总共有14 支接脚,如果内建背光的话是16 支,这些脚位的功能整理于下表:
脚位编号
名称
说明
1
Vss
接地(0V)
2
Vdd
电源(+5V​​)
3
Vo 或称Vee
对比(0-5V), 可接一颗1k 电阻,或利可变电阻调整适当的对比
4
RS
Register Select:
1: D0 – D7当作资料解释
0: D0 – D7当作指令解释
5
R/W
Read/Write mode:
1:从LCD读取资料
0:写资料到LCD 因为很少从LCD这端读取资料,可将此脚位接地以节省I/O脚位。
6
E
Enable
7
D0
Bit 0 LSB
8
D1
Bit 1
9
D2
Bit 2
10
D3
Bit 3
11
D4
Bit 4
12
D5
Bit 5
13
D6
Bit 6
14
D7
Bit 7 MSB
15
A+
背光(串接330R 电阻到电源)
16
K-
背光(GND)
 
日立HD44780 相容的LCD 有4-bit 和8-bit 两种使用模式,使用4-bit 模式主要的好处是节省I/O 脚位,通讯的时候只会用到4 个高位元(D4-D7 ),D0-D3 这四支脚位可以不用接。每个送到LCD 的资料会被分成两次传送– 先送4 个高位元,然后才送4 个低位元。
材料
  • 面包板x 1
  • Arduino 主板x 1
  • HD44780 相容LCD x 1 (本文所用的为14 pin 无背光LCD)
  • 旋转式可变电阻x 1
  • 单心线x N
接线
  • 将LCD 的RS, Enable, D4​​, D5, D6, D7 依序接到12, 11, 5, 4, 3, 2 等脚位上
  • 将LCD 的Vss 及R/W 接到​​GND,Vdd 接到+5V
  • 可变电阻中间脚位接到LCD 的Vo,剩下的两支脚位,一支接到5V,另外一支接到GND (注:也可以不使用可变电阻,只要在LCD 的Vo 上串接一颗1k ohm 电阻连到GND 即可)
电路图
程式码
要在LCD上显示讯息,会涉及初始化LCD 、下指令以及传送资料给LCD等工作,Arduino LiquidCrystal Library已经把这些工作简化了,所以你不需要知道这些低阶的指令。底下的程式在2×16 LCD上第一行显示”hello, world!”讯息,并在第二行不断更新Arduino重开之后经过的秒数,使用的是4-bit模式( HelloWorld.pde ):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

  /* Lab9 - 在2x16 LCD 上显示"Hello World" 讯息
    The circuit:
   * LCD RS pin to digital pin 12
   * LCD Enable pin to digital pin 11
   * LCD D4 pin to digital pin 5
   * LCD D5 pin to digital pin 4
   * LCD D6 pin to digital pin 3
   * LCD D7 pin to digital pin 2
   * 10K Potentiometer:
   * ends to +5V and ground
   * wiper to LCD VO pin (pin 3)
   
   This example code is in the public domain.
   http://www.arduino.cc/en/Tutorial/LiquidCrystal
   */

   
  // 引用LiquidCrystal Library
  #include <LiquidCrystal.h>
   
  // 建立LiquidCrystal 的变数lcd
  // LCD 接脚: rs, enable, d4, d5, d6, d7
  // 对应到Arduino 接脚: 12, 11, 5, 4, 3, 2
  LiquidCrystal lcd(12115432);
   
  void setup() {
    // 设定LCD 的行列数目(2 x 16)
    lcd.begin(162);
   
    // 列印"Hello World" 讯息到LCD 上
    lcd.print("hello, world!");
  }
   
  void loop() {
    // 将游标设到column 0, line 1
    // (注意: line 1 是第二行(row),因为是从0 开始数起):
    lcd.setCursor(01);
   
    // 列印Arduino 重开之后经过的秒数
    lcd.print(millis()/1000);
  }

如果讯息没有显示在萤幕上,或者是模糊朦胧的,首先应该做的事是检查可变电阻以调整对比。
注:这支是Arduino内建的范例程式,点选File > Examples > LiquidCrystal > HelloWorld就可以找到。
posted @ 2020-09-13 14:18  吃饭了吗  阅读(513)  评论(0编辑  收藏  举报