后庭电子网店技术文件 文件名称 :LCD1602 液晶使用指导版本号 :A 文件状态 : 已实施 拟制 / 日期 : 后庭电子 2009 年 3 月 26 日 审核 / 日期 : 2009 年 3 月 26 日 会签 : 批准 / 日期 : 2009 年 3 月 26 日 http://shop34916584.taobao.com 后庭电子网店版权所有 共 1 册第 1 册共 11 页
后庭电子网店技术文件 1 概述...1 2 电气连接...1 3 指令系统...1 3.1 指令集...3 4 液晶使用技巧...8 后庭电子网店版权所有 共 1 册第 1 册共 11 页
1 概述 LCD1602 液晶使用指导 --HD44780 中文资料 液晶显示器以其微功耗 小体积 使用灵活等诸多优点在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用 液晶显示器通常可分为两大类, 一类是点阵型, 另一类是字符型 点阵型液晶通常面积较大, 可以显示图形 ; 而一般的字符型液晶只有两行, 面积小, 只能显示字符和一些很简单的图形, 简单易控制且成本低 目前市面上的字符型液晶绝大多数是基于 HD44780 液晶芯片的, 所以控制原理是完全相同的, 为 HD44780 写的控制程序可以很方便地应用于市面上大部分的字符型液晶 2 电气连接 字符型 LCD 通常有 14 条引脚线 ( 市面上也有很多 16 条引脚线的 LCD, 多出来的 2 条线是电源线 VCC(15 脚 ) 和地线 GND(16 脚 ), 其控制原理与 14 脚的 LCD 完全一样 ), 定义如下表所示 : 字符型 LCD 的引脚定义 图 1 LCD 电气连接注 : 1. 液晶显示偏压信号 : 是指用于驱动 LCD 上的像素点改变颜色所用的电压, 此电压可能接近 GND 也可能接近 Vcc, 视芯片不同而有所不同 ( 本实验板所用的 1602 液晶是接近 GND) 2. 读写选择端是用于控制对液晶的读和写的信号, 在本实验板内被直接连接在 GND 上, 即采用只写不读的方式 ( 只要在两次写中间加适当的延时即可 ) 3 指令系统 HD44780 内置了 192 个常用字符, 存于字符产生器 CGROM(Character Generator ROM) 中, 另外还有几个允许用户自定义的字符产生 RAM, 称为 CGRAM(Character Generator RAM) 下图说明了 CGROM 和 CGRAM 与字符的对应关系 ( 由于本指导中未用到自定义特殊字符的功能, 所以本节不对 CGRAM 作详细介绍 以下如未特别说明, 则 " 字符码 " 指第 1 页
CGROM 的字符号," 地址 " 指 DDRAM 的地址 ) 字符码 0x00~0x0F 为用户自定义的字符图形 RAM( 对于 5X8 点阵的字符, 可以存放 8 组,5X10 点阵的字符, 存放 4 组 ),0x20~0x7F 为标准的 ASCII 码,0xA0~0xFF 为日文字 符和希腊文字符, 其余字符码 (0x10~0x1F 及 0x80~0x9F) 没有定义 图 2 CGROM 和 CGRAM 与字符的对应关系 除了 CGROM 和 CGRAM 外,LCD 内部还有一个 DDRAM(Display Data RAM), 用于存放待显示内容,LCD 控制器的指令系统规定, 在送待显示字符代码的指令之前, 先要送 DDRAM 的地址 ( 即待显示的字符显示位置 ) 16 2 的字符型 LCD 的 DDRAM 地址与显示位置的对应关系如下 : 图 3 DDRAM 与显示位置对应图 第 2 页
如果读者到现在对 DDRAM 的用法还是很迷惘, 希望下面这个简单的例子能帮助读者理解 假设要在第 1 行第 2 列写入字符 "A", 这时先写入第 1 行第 2 列对应的 DDRAM 的地址 :01H( 参见上图 ), 然后再往 DDRAM 中写入 "A" 的字符码 0x41( 参见字符与字符码对照表 ), 这样 LCD 的第 1 行第 2 列就会出现字符 A 了 也就是说,DDRAM 的内容对应于把要显示的字符地址, 而 DDRAM 的地址就对应于显示字符的位置 总而言之, 希望在 LCD 的某一特定位置显示某一特定字符, 一般要遵循 " 先指定地址, 后写入内容 " 的原则 ; 但如果希望在 LCD 上显示一串连续的字符 ( 如单词等 ), 并不需要每次写字符码之前都指定一次地址, 这是因为液晶控制模块中有一个计数器叫地址计数器 AC(Address Counter) 地址计数器的作用是负责记录写入 DDRAM 数据的地址, 或从 DDRAM 读出数据的地址 该计数器的作用不仅仅是 " 写入 " 和 " 读出 " 地址, 它还能根据用户的设定自动进行修改 比如, 如果规定地址计数器在 " 写入 DDRAM 内容 " 这一操作完成后自动加 1, 那么在第 1 行第 1 列定写入一个字符后, 如果不对字符显示位置 (DDRAM 地址 ) 重新设置, 再写入一个字符, 则这个新的字符会出现在第 1 行第 2 列 3.1 指令集 那么如何对 DDRAM 的内容和地址进行操作呢, 下面是 HD44780 的指令集及其设置说明, 请浏览该指令集, 并找出对 DDRAM 的内容和地址进行操作的指令 清屏指令 ㄧㄧ指令编码ㄧ执行ㄧㄧ指令功能 时间ㄧㄧㄧ RS ㄧ R/W ㄧ DB7 ㄧ DB6 ㄧ DB5 ㄧ DB4 ㄧ DB3 ㄧ DB2 ㄧ DB1 ㄧ DB0 ㄧ /ms ㄧ ㄧ清屏ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 1 ㄧ 1.64 ㄧ 功能 : <1> 清除液晶显示器, 即将 DDRAM 的内容全部填入 " 空白 " 的 ASCII 20H; <2> 光标归位, 即将光标撤回液晶显示屏的左上方 ; <3> 将地址计数器 (AC) 的值设为 0 指令码 0x01, 清屏 光标归位指令 ㄧㄧ指令编码ㄧ执行ㄧㄧ指令功能 时间ㄧㄧㄧ RS ㄧ R/W ㄧ DB7 ㄧ DB6 ㄧ DB5 ㄧ DB4 ㄧ DB3 ㄧ DB2 ㄧ DB1 ㄧ DB0 ㄧ /ms ㄧ ㄧ光标归位ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 1 ㄧ X ㄧ 1.64 ㄧ 功能 :<1> 把光标撤回到显示器的左上方 ; <2> 把地址计数器 (AC) 的值设置为 0; <3> 保持 DDRAM 的内容不变 指令码 0x02 或 0x03,X 表示 0 或 1 进入模式设置指令 ㄧ进入模式设置ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 1 ㄧ I/D ㄧ S ㄧ 40 ㄧ 第 3 页
功能 : 设定每次定入 1 位数据后光标的移位方向, 并且设定每次写入的一个字符是否移动 参数设定的 情况如下所示 : 位名 设置 I/D 0= 写入新数据后光标左移 1= 写入新数据后光标右移 S 0= 写入新数据后显示屏不移动 1= 写入新数据后显示屏整体右移 1 个字 符 指令码 0x06, 设置为 AC+1 模式, 显示不移动 显示开关控制指令 ㄧ ㄧ 指令编码 ㄧ执行ㄧ ㄧ指令功能 时间ㄧ ㄧ ㄧ RS ㄧ R/W ㄧ DB7 ㄧ DB6 ㄧ DB5 ㄧ DB4 ㄧ DB3 ㄧ DB2 ㄧ DB1 ㄧ DB0 ㄧ /us ㄧ ㄧ显示开关控制ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 1 ㄧ D ㄧ C ㄧ B ㄧ 40 ㄧ 功能 : 控制显示器开 / 关 光标显示 / 关闭以及光标是否闪烁 参数设定的情况如下 : 位名 设置 D 0= 显示功能关 1= 显示功能开 C 0= 无光标 1= 有光标 B 0= 光标闪烁 1= 光标不闪烁 指令码 0x0C, 设置为显示功能开, 无光标, 光标不闪烁 设定显示屏或光标移动方向指令 ㄧ ㄧ 指令编码 ㄧ执行ㄧ ㄧ指令功能 时间ㄧ ㄧ ㄧ RS ㄧ R/W ㄧ DB7 ㄧ DB6 ㄧ DB5 ㄧ DB4 ㄧ DB3 ㄧ DB2 ㄧ DB1 ㄧ DB0 ㄧ /us ㄧ ㄧ设定显示屏或ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 1 ㄧ S/C ㄧ R/L ㄧ X ㄧ X ㄧ 40 ㄧ ㄧ光标移动方向ㄧ ㄧ ㄧ ㄧ ㄧ ㄧ ㄧ ㄧ ㄧ ㄧ ㄧ ㄧ 功能 : 使光标移位或使整个显示屏幕移位 参数设定的情况如下 : S/C R/L 设定情况 0 0 光标左移 1 格, 且 AC 值减 1 0 1 光标右移 1 格, 且 AC 值加 1 1 0 显示器上字符全部左移一格, 但光标不动 1 1 显示器上字符全部右移一格, 但光标不动 指令码 0x14, 设置为 AC+1, 光标右移 1 格 ( 打字的效果 ) 功能设定指令 ㄧ ㄧ 指令编码 ㄧ执行ㄧ ㄧ指令功能 时间ㄧ ㄧ ㄧ RS ㄧ R/W ㄧ DB7 ㄧ DB6 ㄧ DB5 ㄧ DB4 ㄧ DB3 ㄧ DB2 ㄧ DB1 ㄧ DB0 ㄧ /us ㄧ ㄧ功能设定ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 1 ㄧ DL ㄧ N ㄧ F ㄧ X ㄧ X ㄧ 40 ㄧ 功能 : 设定数据总线位数 显示的行数及字型 参数设定的情况如下 : 位名 设置 DL 0= 数据总线为 4 位 1= 数据总线为 8 位 第 4 页
N 0= 显示 1 行 1= 显示 2 行 F 0=5 7 点阵 / 每字符 1=5 10 点阵 / 每字符 指令码 0x38, 设置为 8 位并行, 显示 2 行,5*7 点阵显示 设定 CGRAM 地址指令 ㄧ设定 CGRAM ㄧ 0 ㄧ 0 ㄧ 0 ㄧ 1 ㄧ CGRAM 的地址 (6 位 ) ㄧ 40 ㄧㄧ地址ㄧㄧㄧㄧㄧㄧㄧ 功能 : 设定下一个要存入数据的 CGRAM 的地址 指令码 0x40 + 地址,0x40 是设定 CGRAM 地址命令, 地址是指你要设置 CGRAM 的地址 设定 DDRAM 地址指令 ㄧ设定 CGRAM ㄧ 0 ㄧ 0 ㄧ 1 ㄧ DDRAM 的地址 (7 位 ) ㄧ 40 ㄧㄧ地址ㄧㄧㄧㄧㄧㄧ 功能 : 设定下一个要存入数据的 DDRAM 的地址 指令码 0x80 + 地址,0x80 是设定 DDRAM 地址命令, 地址是指要写入的 DDRAM 地址 读取忙信号或 AC 地址指令 ㄧ读取忙碌信号ㄧ 0 ㄧ 1 ㄧ FB ㄧ AC 内容 (7 位 ) ㄧ 40 ㄧㄧ或 AC 地址ㄧㄧㄧㄧㄧㄧ 功能 :<1> 读取忙碌信号 BF 的内容,BF=1 表示液晶显示器忙, 暂时无法接收单片机送来的数据或指令 ; 当 BF=0 时, 液晶显示器可以接收单片机送来的数据或指令 ; <2> 读取地址计数器 (AC) 的内容 数据写入 DDRAM 或 CGRAM 指令一览 ㄧ数据写入到ㄧㄧㄧㄧㄧㄧ DDRAM 或ㄧ 1 ㄧ 0 ㄧ要写入的数据 D7~D0 ㄧ 40 ㄧㄧ CGRAM ㄧㄧㄧㄧㄧ 功能 :<1> 将字符码写入 DDRAM, 以使液晶显示屏显示出相对应的字符 ; <2> 将使用者自己设计的图形存入 CGRAM 第 5 页
从 CGRAM 或 DDRAM 读出数据的指令一览 ㄧ从 CGRAM 或ㄧㄧㄧㄧㄧㄧ DDRAM 读出ㄧ 1 ㄧ 1 ㄧ要读出的数据 D7~D0 ㄧ 40 ㄧㄧ数据ㄧㄧㄧㄧㄧ 功能 : 读取 DDRAM 或 CGRAM 中的内容 细心的读者肯定发现了, 在上面的指令集中, 有 RS R/W 和 8 位数据总线, 却小了一个使能位 E 使能位 E 对执行 LCD 指令起着关键作用,E 有两个有效状态, 高电平 (1) 和下降沿 (1 0) 当 E 为高电平时, 如果 R/W 为 0, 则 LCD 从单片机读入指令或者数据 ; 如果 R/W 为 1, 则单片机可以从 LCD 中读出状态字 (BF 忙状态 ) 和地址 而 E 的下降沿指示 LCD 执行其读入的指令或者显示其读入的数据 下面是 HD44780 的时序图和时间参数表 : 图 4 写操作时序图 图 5 读操作时序图 第 6 页
图 6 时序归定 基本操作时序 : 读状态输入 :RS=L,RW=H,E=H 写指令输入 :RS=L,RW=L,E= 下降沿脉冲,DB0~DB7= 指令码读数据输入 :RS=H,RW=H,E=H 写数据输入 :RS=H,RW=L,E= 下降沿脉冲,DB0~DB7= 数据 输出 :DB0~DB7= 状态字输出 : 无输出 :DB0~DB7= 数据输出 : 无 对初学者来说, 只要记住, 在将 E 置高电平前, 先设置好 RS 和 R/W 信号, 在 E 下降沿到来之前, 准备好写入的命令字或数据 只需在适当的地方加上延时, 就可以满足要求了 文中所说的指令码是指本实验板内用到的指令码或建议使用的指令码, 自己可以根据实际需要来创造自己的指令码 第 7 页
4 液晶使用技巧 上电 上电后 ( 电压高于 4.5V) 等待 40ms 命令 0x38, 设定为 8 位接口, 两行显示模式,5*7 点阵显示 命令 0x0C, 设定显示开, 无光标模式 命令 0x01, 清除显示 命令 0x06, 设定 AC 为 +1 模式, 显示不移动 设定完成, 可以向 DDRAM 写入要显示的数据进行显示 图 7 初始化流程图在写入要显示的数据时可以直接采用 0x80+XX 的方式,0x80 即设定 DDRAM 的地址, XX 则为设定的地址, 例如想在第二行的第 3 例写入一个数据, 则可用 0x80+42,42 来源于图 3 中的对应关系 也可以理解为采用设定 DDRAM 地址指, 见设定 DDRAM 地址指令 第 8 页
5 MCU51 实验板介绍 功能和电气特性 CPU 型号供电电源 A/D 芯片 D/A 芯片 I/O 数量 MCU51 单片机实验板产品规格书 51 系列单片机及相关兼容型号 USB 口,5V±10% ADC0804 或其兼容型号 DAC0832 或其兼容型号 32 个独立 IO 口 键盘 16 键,4*4 矩阵键盘 LED 8 字数码管 4 连体 *2 组 +8 个独立发光二极管 LCD 1602 液晶和 12864 液晶接口 I2C 总线 AT24C02 或其兼容型号 温度传感器 DS18B20 蜂鸣器 1 个 串口 1 个 ISP 口 1 个 可调电位器 1 个 (10K) 晶体 1 个 (11.0592M) 物理特性 安装方式 4 个孔固定 尺寸 ( 长 宽 高 ) 130mm 100mm 20mm 环境 工作环境温度 10 ~40 工作环境相对湿度 10%~95%, 无凝结 储存环境温度 -20 ~70 储存环境相对湿度 10%~95%, 无凝结 http://shop34916584.taobao.com 第 9 页