《第8章 LCD显示器原理及应用》由会员分享,可在线阅读,更多相关《第8章 LCD显示器原理及应用(16页珍藏版)》请在金锄头文库上搜索。
1、 第八章 LCD 显示器原理及应用 【Proteus中LCD的选择,用“Optoelectronics” ,在其中有较多的LCD器件】 8.1 液晶显示器模块的原理 1. 字符型液晶显示模块 RT-1602C 的外观与引脚 图 8-1 LCD 外观 显示容量: 16 个 2 排 字符 ;工作电流 2.0mA(5.0V);字符尺寸: 2.954.35mm。 【能够看到的是2排,各16个字符,不是汉字】 RT-1602C 采用标准的 16 脚接口,各引脚情况如下: 第 1 脚: VSS 为电源 地 ; 第 2 脚: VDD 为 +5V 电源; 【从高频的角度,应该1电源,2地】 第 3 脚: VE
2、E 为液晶显示 对比度调整 端,接正电源时对比度最弱,接地时对比度最高,对比度过高时,会产生“鬼影” , 使用时可以通过一个 10K 的电位器调整对比度。 【仿真时,可以不用考虑对比度的问题】 第 4 脚: RS 为数据 /命令选择端, 高电平 时选择 数据寄存器 、 低电平 时选择命令寄存器 。 RS: Register Selection 第 5 脚: /R W ,读写操作选择( 1-读, 0-写) 。 RS /R W 寄存器及操作 0 0 指令 寄存器 写入 0 1 忙信号和地址计数器 读出 1 0 数据 寄存器 写入 1 1 数据 寄存器 读出 第 6 脚: E 端 为使能端,当 E
3、端由高电平变成低电平时 ( 负跳变 ) ,液晶模块执行命令。 执行一条命令或写入一个数据,都要使 E 有一个负跳变。 【相当于触发器,数据的锁存,需要一个 CP 脉冲】 第 7 14 脚: D0 D7,为 8 位 双向 数据总线,与单片机的数据总线相连,三态 。 第 15 脚: BLA,背光电源,通常为 5V,并联一个电位器, 调节背光亮度 。 第 16 脚: BLK,背光电源地。 2. 字符型液晶显示模块 RT-1602C 的内部结构 液晶显示模块 RT-C1602C 的内部结构可以分成三部分:一为 LCD 控制器,二为 LCD 驱动器,三为 LCD 显示装置,如图所示: 图 8-2 控制器
4、 采用 HD44780, 驱动器 采用 HD44100。 HD44780 是集控制器、驱动器于一体,专用于字符显示控 制驱动集成电路。 HD44100 是作扩展显示字符位的。 HD44780 是字符型液晶显示控制器的代表电路。 HD44780 控制器的特点: (1) 可选择 5 7 或 5 10 点字符。 【X方向为5个点,Y方向为7或10点】 (2) HD44780 不仅作为控制器而且还具有驱动 40 16 点阵液晶像素的能力,并且 HD44780 的驱动能力可通过外接驱动器扩展 360 列驱动。 HD44780 可控制的字符高达每行 80 个字,也就是 5 80=400 点 , HD447
5、80 内部有 16 路行驱动器和 40 路列驱动器,所以 HD44780 本身就具驱动有 1640点阵 LCD 的能力 (即单行 16 个字符或两行 8 个字符) 。 如果在外部加一 HD44100外扩展多 40 路 /列驱动,则可驱动 162LCD。 (3) HD44780 的 显示缓冲区 DDRAM、 字符发生存储器( ROM) 【具体的内容如图 8-4】 及用户自定义的 字符发生器 CGRAM 全部集成在芯片内。 【如果用户不自定义字符,则字符发生器CGRAM可以不管】 HD44780 有 80 个字节的显示缓冲区,分两行 ,地址为: 第一行为 00H27H; ( 0 39 40 个)
6、第二行为 40H67H。 ( 64 103 40 个) 显示位置的排列顺序跟 LCD 的型号有关, RT-1602C 液晶显示模块的 显示地址与实际显示位置 的关系如图 8-3 所示。 【注意:理解“0X00”和“0X40” 】 图 8-3 【 27H=2 16 7=39 40H=4 16=64 67H=6 16 7=96 7=103 103 64=39】 (4) HD44780 具有 8 位数据和 4 位数据传输两种方式, 可与 4/8 位 CPU 相连。【采用 8 位 CPU 时,应该采用 8 位数据传输方式,在 51 系列中,用 8 位方式】 (5) HD44780 具有简单而功能较强的
7、指令集,可实现 字符移动、 闪烁等 显示功能。 HD44780 内部的字符发生存储器( ROM)已经存储了 160 个不同的点阵字符图形,如图 8-4 所示: 【从这些点阵字符数据可以看出,显示时,需要用 ASCII 码】 这些 字符有 : 阿拉伯数字 、 英文字母的大小写 、 常用的符号 和 日文假名 等,每一个字符都有一个固定的代码。比如数字“ 1”的代码是 00110001B( 31H) ,又如大写的英文字母“ A”的代码是 01000001B( 41H) , 【上面的数字在前,左边的数字在后】 可以看出英文字母的代码与 ASCII 编码相同。要显示“ 1”时,只需将 ASCII 码 3
8、1H 存入 DDRAM 指定位置,显示模块将在相应的位置把数字“ 1”的点阵字符图形显示出来,就可以看到数字“ 1” 。 图 8-4 3. 指令格式与指令功能 LCD 控制器 HD44780 内有多个寄存器, 通过 RS 和 /R W 引脚上的电平 决定对 (命令和数据) 寄存器的选择和读 /写 , DB7 DB0 决定命令功能。 选择情况如表: RS /R W 寄存器及操作 0 0 指令 寄存器 写入 0 1 忙信号和地址计数器 读出 1 0 数据 寄存器 写入 1 1 数据 寄存器 读出 E 端,当 E 出现负跳变的时候, LCD 执行命令或执行数据。 总共有 11 条指令,它们的格式和功
9、能如下 : 【表格中红色“ 1”代表每一个指令的特征】 (1) 清屏命令格式 【 指令寄存器写入,RS=0,R/W=0, 指令码0X01 】 RS /R W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 0 0 0 1 功能: 清除屏幕显示,将显示缓冲区 DDRAM 的内容全部写入空格( ASCII 20H) ,也就是 LCD 上无显示。 光标复位,回到显示器的左上角( 光标复位到地址 00H 位置, 相当于地址计数器 AC 清零) 。 【AC 和单片机中的 PC 类似】 (2) 光标复位命令格式 【 指令寄存器写入, 指令码0X10 】 RS /R W D7 D6
10、D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 0 0 1 功能 :光标返回到地址 00H 位置。 【数据指针清零】 (3) 光标移动方式设置命令格式: 【 指令寄存器写入 】 RS /R W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 0 1 I/D S 功能 :设定光标的移动方向,并指定整体显示是否移动。 其中: I/D 光标移动方向: 当 I/D=1,光标从左向右移动;当读或写一个字符后,地址指针加 1,且光标加 1 向右移动一个字符位置。 【一般采用从左到右】 当 I/D=0,光标从右向左移动;当读或写一个字符后,地址指针减 1,且光标减 1 向
11、左移动一个字符位置。 【外国习惯】 S 屏幕上所有文字是否左移或者右移: 当 S=1 时 ,写入一个字符,整屏显示左移( I/D=1)或右移( I/D=0) ,以得到光标不移动而屏幕移动的效果; 当 S=0 时 ,写入一个字符,整屏显示不移动。 (4) 显示开关控制命令格式: 【 指令寄存器写入 】 RS /R W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 1 D C B 显示控制开关。其中: D 位 控制整体显示的开与关, D=1,开显示; D=0,关显示。 C 位 控制光标的开与关, C=1,有光标; C=0,无光标。 B 位 控制光标字符闪烁, B=1,字符
12、闪烁; B=0,字符不闪烁。 例如: RS=0, RW=0,显示开关控制字 OCH=0000 1100 表示: D=1 开显示, C=0 无光标, B=0 字符不闪 例如: RS=0, RW=0,显示开关控制字 OEH=0000 1110 表示: D=1 开显示, C=1 有光标, B=0 字符不闪 (5) 光标或显示移位置命令格式: 【 指令寄存器写入 】 RS /R W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 1 S/C R/L 功能:移动光标或整体显示, DDRAM 中内容不变。 其中: S/C=1 时,移位显示的文字; S/C=0 时,移动光标。 R/L=1
13、 时,向右移位; R/L=0 时,向左移位。 (6) 功能设置命令格式: 【 指令寄存器写入 】 RS /R W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 1 DL N F DL 位 设置接口数据位数, DL=1 为 8 位数据接口; DL=0 为 4 位数据接口。 【MCS-51为 8 位,所以应该用 8位方式“1” 】 【和教材上的不一样】 N 位 设置显示行数, N=0,单行显示; N=1 双行显示。 F 位 设置字型大小, F=1 时为 5 10 点阵字符, F=0 时为 5 7 点阵字符。 例如:功能设置命令 38H=0011 1000 表示:设置 8 位数据接
14、口, 16 2( 2 行显示 ,N=1) , F=0, 5 7 点阵字符 (7) 设置字库 CGRAM 地址命令格式: 【 指令寄存器写入 】 RS /R W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 1 A A A A A A 功能:设置 CGRAM 的地址,地址范围 0 63。 【字符发生器 RAM 地址设置。 】 【用户自定义的字符,如果没有自定义的 字符,此命令可以不用】 (8) 显示缓冲区 DDRAM 地址设置命令格式: 【 指令寄存器写入 】 RS /R W D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 A A A A A A A 功能: DDRAM
15、 地址设置,地址范围为 0 127。 【不能任意取值】 【 控制器内设有一个数据地址指针,用户可通过它们来访问内部的全部 80字节 RAM,80H地址码( D7=1,-80H ,地址码为 027H,40H67H) 】 【这个命令在编程时肯定要使用,主要用来设置在第一或第二行显示内容】 (9) 读忙标志 BF 及光标地址 AC 命令格式: 【 指令寄存器, 忙标志读出】 RS /R W D7 D6 D5 D4 D3 D2 D1 D0 0 1 BF AC 功能: BF( Busy Flag)位 为忙标志。 BF=1,表示忙 , LCM 不能接收命令和数据; BF=0,表示 LCM 不忙 ,可以接收
16、命令和数据。 AC 位为地址计数器的值,范围为 0 127。 【 00 7FH】 例如: (Busy_Check() & 0x80) = = 0x80); / 取出最高位,判断是否忙。 【通常就是用来判断最高位是否为“1” ,表示 LCD 忙; “0”表示不忙】 (10) 写 DDRAM 或 CGRAM 命令格式: 【 数据寄存器写入 】 RS /R W D7 D6 D5 D4 D3 D2 D1 D0 1 0 DATA 功能:将数据写入 CGRAM 或 DDRAM 中,应与 CGRAM 或 DDRAM 地址设置命令结合使用。 【命令9和命令10,肯定使用】 (11) 读 DDRAM 或 CGRAM