• 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就可以找到。
  • 相关阅读:
    nginx
    不再想写博客的大众集合教程
    数据结构与算法之算法
    数据结构与算法
    yii2的安装使用
    git的使用方法总结
    php生成图片验证码
    git推送失败的问题
    配置nginx支持thinkphp框架
    centos下的lnmp环境搭建
  • 原文地址:https://www.cnblogs.com/developer-ios/p/13661286.html
Copyright © 2020-2023  润新知