logo资料库

Protues仿真12864液晶显示.doc

第1页 / 共40页
第2页 / 共40页
第3页 / 共40页
第4页 / 共40页
第5页 / 共40页
第6页 / 共40页
第7页 / 共40页
第8页 / 共40页
资料共40页,剩余部分请下载后查看
1LCD12864简介
2 LCD12864显示原理
2.1汉字和英文显示原理
2.2图形显示 
2.3应用说明
2.4指令描述
3软件仿真
3.1汉字显示
3.2图形显示
3.3同时显示多个汉字
3.4向上滚动显示
4小结
Protues 仿真液晶显示 目录 1 LCD12864 简介........................................................................................................................2 2 LCD12864 显示原理...................................................................................................................6 2.1 汉字和英文显示原理.......................................................................................................6 2.2 图形显示...........................................................................................................................7 2.3 应用说明...........................................................................................................................8 2.4 指令描述...........................................................................................................................9 3 软件仿真....................................................................................................................................12 3.1 汉字显示.................................................................................................................................12 3.2 图形显示.........................................................................................................................18 3.3 同时显示多个汉字.........................................................................................................23 3.4 向上滚动显示.................................................................................................................30 4 小结............................................................................................................................................40
1 LCD12864 简介 (1) ST7920 类 这种控制器带中文字库,为用户免除了编制字库的麻烦,该控制器的液 晶还支持画图方式。该类液晶支持 68 时序 8 位和 4 位并口以及串口。 (2)KS0108 类 这种控制器指令简单,不带字库。支持 68 时序 8 位并口。 (3)T6963C 类 这种控制器功能强大,带西文字库。有文本和图形两种显示方式。 有文本和图形两个图层,并且支持两个图层的叠加显示。支持 80 时序 8 位并口。 (4)COG 类 常见的控制器有 S6B0724 和 ST7565,这两个控制器指令兼容。支 持 68 时序 8 位并口,80 时序 8 位并口和串口。COG 类液晶的特点是结构轻便, 成本低。 ST7920 GND VCC V0 RS R/W E DB0-DB7 PSB RES VOUT BLA BLK KS0108 GND VCC V0 RS R/W E DB0-DB7 CS1 CS2 RES VOUT BLA BLK T6963C FG GND VCC V0 WR RD DB0-DB7 RS CS RES FS BLA BLK S6B0724 GND VCC RS WR RD CS DB0-DB7 RES BLA BLK 12864 是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及 128×64 全点阵液 晶显示器组成。可完成图形显示,也可以显示 8×4 个(16×16 点阵)汉字。 LEVER 0 +5.0V - H/L H/L H/L H/L H/L H/L H/L H/L H/L 管脚名称 VSS VDD V0 D/I(RS) R/W E DB0 DB1 DB2 DB3 DB4 DB5 管脚功能描述 电源地 电源电压 液晶显示器驱动电压 D/I=“H”,表示 DB7∽DB0 为显示数据 D/I=“L”,表示 DB7∽DB0 为显示指令数据 R/W=“H”,E=“H”数据被读到 DB7∽DB0 R/W=“L”,E=“H→L”数据被写到 IR 或 DR R/W=“L”,E 信号下降沿锁存 DB7∽DB0 R/W=“H”,E=“H”DDRAM 数据读到 DB7∽DB0 数据线 数据线 数据线 数据线 数据线 数据线
数据线 数据线 H/L H/L H/L H/L H/L -10V DB6 DB7 CS1 CS2 RET VOUT LED+ LED- 在使用 12864LCD 前先必须了解以下功能器件才能进行编程。12864 内部功能器件及相 LCD 驱动负电压 LED 背光板电源 LED 背光板电源 H:选择芯片(右半屏)信号 H:选择芯片(左半屏)信号 复位信号,低电平复位 - - IR 是用于寄存指令码,与数据寄存器数据相对应。当 D/I=0 时,在 E 信号下降沿的作用 关功能如下: 1. 指令寄存器(IR) 下,指令码写入 IR。 2.数据寄存器(DR) DR 是用于寄存数据的,与指令寄存器寄存指令相对应。当 D/I=1 时,在下降沿作用下, 图形显示数据写入 DR,或在 E 信号高电平作用下由 DR 读到 DB7∽DB0 数据总线。DR 和 DDRAM 之间的数据传输是模块内部自动执行的。 3.忙标志:BF BF 标志提供内部工作情况。BF=1 表示模块在内部操作,此时模块不接受外部指令和数 据。BF=0 时,模块为准备状态,随时可接受外部指令和数据。 利用 STATUS READ 指令,可以将 BF 读到 DB7 总线,从检验模块之工作状态。 4.显示控制触发器 DFF 此触发器是用于模块屏幕显示开和关的控制。DFF=1 为开显示(DISPLAY OFF),D DRAM 的内容就显示在屏幕上,DFF=0 为关显示(DISPLAY OFF)。 DDF 的状态是指令 DISPLAY ON/OFF 和 RST 信号控制的。 5.XY 地址计数器 XY 地址计数器是一个 9 位计数器。高 3 位是 X 地址计数器,低 6 位为 Y 地址计数器, XY 地址计数器实际上是作为 DDRAM 的地址指针,X 地址计数器为 DDRAM 的页指针, Y 地址计数器为 DDRAM 的 Y 地址指针。 X 地址计数器是没有记数功能的,只能用指令设置。 Y 地址计数器具有循环记数功能,各显示数据写入后,Y 地址自动加 1,Y 地址指针 从 0 到 63。 6.显示数据 RAM(DDRAM) DDRAM 是存储图形显示数据的。数据为 1 表示显示选择,数据为 0 表示显示非选择。 DDRAM 与地址和显示位置的关系见 DDRAM 地址表。 7.Z 地址计数器 Z 地址计数器是一个 6 位计数器,此计数器具备循环记数功能,它是用于显示行扫描同 步。当一行扫描完成,此地址计数器自动加 1,指向下一行扫描数据,RST 复位后 Z 地址 计数器为 0。 Z 地址计数器可以用指令 DISPLAY START LINE 预置。因此,显示屏幕的起始行就由 此指令控制,即 DDRAM 的数据从哪一行开始显示在屏幕的第一行。此模块的 DDRAM 共 64 行,屏幕可以循环滚动显示 64 行。 12864LCD 的指令系统 模块控制芯片提供两套控制命令,基本指令和扩充指令如下:
指令表 1:(RE=0:基本指令) 指 令 清除 显示 地址 归位 显示状 态开/ 关 进入点 设定 游标或 显示移 位控制 功能 设定 设定 CGRAM 地址 设定 DDRAM 地址 读取忙 标志和 地址 写数据 到 RAM 读出 RAM 的 值 指 令 码 RS R/W D7 0 0 0 0 0 0 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 1 0 0 0 0 0 1 X 功 能 将DDRAM填满"20H",并且设定DDRAM的地 址计数器(AC)到"00H" 设定 DDRAM 的地址计数器(AC)到"00H", 并且将游标移到开头原点位置;这个指令 不改变 DDRAM 的内容 D=1: 整体显示 ON 0 0 0 0 0 0 1 D C B C=1: 游标 ON 0 0 0 0 0 0 0 0 0 0 1 I/D S B=1:游标位置反白允许 指定在数据的读取与写入时,设定游 标的移动方向及指定显示的移位 0 0 1 S/C R/L X X 设定游标的移动与显示的移位控制 位;这个指令不改变 DDRAM 的内容 DL=0/1:4/8 位数据 0 0 0 0 1 DL X RE X X RE=1: 扩充指令操作 RE=0: 基本指令操作 0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0 设定 CGRAM 地址 0 0 1 0 AC5 AC4 AC3 AC2 AC1 AC0 第一行:80H-87H 设定 DDRAM 地址(显示位址) 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 1 1 0 数据 1 数据 第二行:90H-97H 读取忙标志(BF)可以确认内部动作 是否完成,同时可以读出地址计数器 (AC)的值 将数据 D7——D0 写入到内部的 RAM (DDRAM/CGRAM/IRAM/GRAM) 从内部 RAM 读取数据 D7——D0 (DDRAM/CGRAM/IRAM/GRAM)
指令表 2:(RE=1:扩充指令) 指 令 指 令 码 R/W RS 待命 模式 卷动地址 开关开启 0 0 0 0 D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 SR 0 0 0 0 0 0 0 1 R1 R0 功 能 进入待命模式,执行其他指令都棵终止 待命模式 SR=1:允许输入垂直卷动地址 SR=0:允许输入 IRAM 和 CGRAM 地址 选择 2 行中的任一行作反白显示,并可决定 反白与否。初始值 R1R0=00,第一次设定为 反白显示,再次设定变回正常 反白 选择 睡眠 模式 扩充 功能 设定 设定绘 图 RAM 0 0 0 0 0 0 1 SL X X SL=1:脱离睡眠模式 SL=0:进入睡眠模式 0 0 0 0 1 CL X RE G 0 CL=0/1:4/8 位数据 RE=1: 扩充指令操作 RE=0: 基本指令操作 G=1/0:绘图开关 设定绘图 RAM 地址 0 0 1 0 0 0 AC3 AC2 AC1 AC0 先设定垂直(列)地址 AC6AC5…AC0 AC6 AC5 AC4 AC3 AC2 AC1 AC0 再设定水平(行)地址 AC3AC2AC1AC0 将以上 16 位地址连续写入即可 备注:当 IC1 在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取 BF 标志时,BF 需为零,方可接受新的指令;如果在送出一个指令前并不检查 BF 标志,那么在前 一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。
2、字符显示 带中文字库的 128X64-0402B 每屏可显示 4 行 8 列共 32 个 16×16 点阵的汉字,每个显 示 RAM 可显示 1 个中文字符或 2 个 16×8 点阵全高 ASCII 码字符,即每屏最多可实现 32 个中文字符或 64 个 ASCII 码字符的显示。带中文字库的 128X64-0402B 内部提供 128×2 字节的字符显示 RAM 缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符 显示 RAM 实现的。根据写入内容的不同,可分别在液晶屏上显示 CGROM(中文字库)、 HCGROM(ASCII 码字库)及 CGRAM(自定义字形)的内容。三种不同字符/字型的选择 编码范围为:0000~0006H(其代码分别是 0000、0002、0004、0006 共 4 个)显示自定义 字型,02H~7FH 显示半宽 ASCII 码字符,A1A0H~F7FFH 显示 8192 种 GB2312 中文字 库字形。字符显示 RAM 在液晶模块中的地址 80H~9FH。字符显示的 RAM 的地址与 32 个字符显示区域有着一一对应的关系,其对应关系如下表所示。 80H 90H 88H 98H 81H 91H 89H 99H 82H 92H 8AH 9AH 83H 93H 8BH 9BH 84H 94H 8CH 9CH 85H 95H 8DH 9DH 86H 96H 8EH 9EH 87H 97H 8FH 9FH 2 LCD12864 显示原理 2.1 汉字和英文显示原理 在数字电路中,所有的数据都是以 0 和 1 保存的,对 LCD 控制器进行不同的数据操 作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要 8 位(一 字节)即可。而对于中文,常用却有 6000 以上,于是我们的 DOS 前辈想了一个办法,就 是将 ASCII 表的高 128 个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩 下的低 128 位则留给英文字符使用,即英文的内码。 那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉 及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化, 它是用数字的各位信息来记载英文或汉字的形状,如英文的'A'在字模的记载方式如图 1 所 示:
而中文的“你”在字模中的记载却如图 2 所示: 图 1 “A”字模图 图 2 “你”字模图 根据芯片的不同取模的方式不同,有多种取模方式:单色点阵液晶字模,横向取模, 字节正序,单色点阵液晶字模,横向取模,字节倒序,单色点阵液晶字模,纵向取模,字 节正序,单色点阵液晶字模,纵向取模,字节倒序等等。 2.2 图形显示 先设垂直地址再设水平地址(连续写入两个字节的资料来完成垂直与水平的坐标地址) 垂直地址范围 AC5...AC0 水平地址范围 AC3…AC0 绘图 RAM 的地址计数器(AC)只会对水平地址(X 轴)自动加一,当水平地址=0FH 时 会重新设为 00H 但并不会对垂直地址做进位自动加一,故当连续写入多笔资料时,程序需自行判断垂
直地址是否需重新设定。GDRAM 的坐标地址与资料排列顺序如下图: 2.3 应用说明 用带中文字库的 128X64 显示模块时应注意以下几点: ①欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地 址,再写入中文字符编码。 ②显示 ASCII 字符过程与显示中文字符过程相同。不过在显示连续字符时,只 须设定一次显示地址,由模块自动对地址加 1 指向下一个字符位置,否则,显示的字符中 将会有一个空 ASCII 字符位置。 ③当字符编码为 2 字节时,应先写入高位字节,再写入低位字节。 ④模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取 BF 标志 时 BF 需为“0”,方可接受新的指令。如果在送出一个指令前不检查 BF 标志,则在前一个 指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。指令执 行的时间请参考指令表中的指令执行时间说明。 ⑤“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维 持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE” 位。
分享到:
收藏