1/19
文档分类:通信/电子

单片机之LCD显示原理.docx


下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

特别说明:文档预览什么样,下载就是什么样。

下载所得到的文件列表
单片机之LCD显示原理.docx
文档介绍:
5.自制单片机之五LCD1602 的驱动
LCD1602 已很普遍了,具体介绍我就不多说了,市面上字符液晶绝大多数是基于HD44780 液晶芯片的,控制原理是完全相同的,因此 HD44780 写的控制程序可以很方便地应用于市面上大部分的字符型液晶。字符型LCD 通常有 14 条引脚线或 16 条引脚线的LCD,多出来的2 条线是背光电源线VCC(15 脚)和地线GND(16 脚),其控制原理与 14 脚的LCD 完全一样,定义如下表所示:

字符型LCD 的引
脚定义




































HD44780 内置了DDRAM、CGROM 和CGRAM。

DDRAM 就是显示数据RAM,用来寄存待显示的字符代码。共 80 个字节,其地址和屏幕的对应


关系如下表:










也就是说想要在LCD1602 屏幕的第一行第一列显示一个"A"字,就要向DDRAM 的00H 地址写入“A”字的代码就行了。但具体的写入是要按LCD 模块的指令格式来进行的,后面我会说到的。那么一行可有 40 个地址呀?是的,在 1602 中我们就用前 16 个就行了。第二行也一样
用前 16 个地址。对应如下:
DDRAM 地址与显示位置的对应关系









我们知道文本文件中每一个字符都是用一个字节的代码记录的。一个汉字是用两个字节的代码记录。在PC 上我们只要打开文本文件就能在屏幕上看到对应的字符是因为在操作系统里和 BIOS 里都固化有字符字模。什么是字模?就代表了是在点阵屏幕上点亮和熄灭的信息数据。例如“A”


字的字模:


01110
○■■■○

10001
■○○○■

10001
■○○○■

10001
■○○○■

11111
■■■■■

10001
■○○○■

10001
■○○○■
上图左边的数据就是字模数据,右边就是将左边数据用“○”代表 0,用“■”代表 1。看出是个“A”字了吗?在文本文件中“A”字的代码是 41H,PC 收到 41H 的代码后就去字模文件中将代表A 字的这一组数据送到显卡去点亮屏幕上相应的点,你就看到“A”这个字了。刚才我说了想要在LCD1602 屏幕的第一行第一列显示一个"A"字,就要向DDRAM 的00H 地址写入“A”字的代码 41H 就行了,可 41H 这一个字节的代码如何才能让LCD 模块在屏幕的阵点上显示“A”字呢?同样,在LCD 模块上也固化了字模存储器,这就是CGROM 和 CGRAM。HD44780 内置了 192 个常用字符的字模,存于字符产生器CGROM(Character Generator ROM) 中,另外还有 8 个允许用户自定义的字符产生RAM,称为 CGRAM(Character Generator RAM)。下图说明了CGROM 和 CGRAM 与字符的对应关系。































































从上图可以看出,“A”字的对应上面高位代码为 0100,对应左边低位代码为 0001,合起来就是 01000001,也就是 41H。可见它的代码与我们PC 中的字符代码是基本一致的。因此我们在向DDRAM 写 C51 字符代码程序时甚至可以直接用P1='A'这样的方法。PC 在编译时就把“A”先转为 41H 代码了。
字符代码 0x00~0x0F 为用户自定义的字符图形RAM(对于 5X8 点阵的字符,可以存放 8 组, 5X10 点阵的字符,存放 4 组),就是CGRAM 了。后面我会详细说的。
0x20~0x7F 为标准的ASCII 码,0xA0~0xFF 为日文字符和希腊文字符,其余字符码(0x10~
0x1F 及 0x80~0x9F)没有定义。

那么如何对DDRAM 的内容和地址进行具体操作呢,下面先说说 HD44780 的指令集及其设置说

明,请浏览该指令集,并找出对DDRAM 的内容和地址进行操作的指令。共 11 条指令:
清屏指令






功能:<1> 清除液晶显示器,即将DDRAM 的内容全部填入"空白"的 ASCII 码 20H;
<2> 光标归位,即将光标撤回液晶显示屏的左上方;
<3> 将地址计数器(AC)的值设为 0。

光标归位指
内容来自淘豆网www.taodocs.com转载请标明出处.