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 的变数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就可以找到。