ST7920带汉字库芯片使用手册
1.清达光电液晶命名规则
HG | 12864 | 12 | - | □ | - | □ | □ | - | □ | - | □ | - | □ | - | □ |
① | ② | ③ | | ④ | | ⑤ | ⑥ | | ⑦ | | ⑧ | | ⑨ | | ⑩ |
① | 产品序列号:HC→点阵字符;HG→SMT/COB图形单色;HGT→TAB图形单色;HGO→COG图形单色;HGR→COLOR STN;HGQ→TFT; HGS→OLED |
② | 字符 →字符数(每行字符数*行数) 图形 → 点阵数 |
③ | 产品序列 |
④ | 显示模式:省略→STN黄绿模式;G→STN灰模式;B→STN蓝模式; F→FSTN半透半反; T→FSTN透射 |
⑤ | 背光类型:省略 → 无背光; LY→LED黄绿底光; SY→LED黄绿侧光; LW→LED白光;SW→LED高亮白光;LB→LED蓝光; LR→LED红光;LA→LED琥珀光;LG→LED绿光; EB→EL蓝光;EG→EL绿光;EW→EL白光; CW→CCFL白光 |
⑥ | 温度范围:省略→常温;H→宽温;EH→特宽温 |
⑦ | 电源:省略→5V单电源;NV→5V双电源;SV→5V带温度补偿; LV→3/3.3V单电源;LNV→3/3.3V双电源;LSV→3/3.3V带温度补偿; OV→5V单电源,VO脚空脚(部分型号PCB板上有电位器可微调对比度) LOV→5V单电源,VO脚空脚(部分型号PCB板上有电位器可微调对比度) |
⑧ | 背光输入电压说明,请参照液晶详细资料 |
⑨ | 特殊编号:TP→带触摸屏;S→串行通信;D→分屏 |
⑩ | 产品内部编号 |
备注:*具体背光电压值请参照液晶详细资料
2.清达光电液晶汇总
清达光电出品的内置ST7920控制器及兼容型控制器点阵液晶显示模块现按完整型号汇总成表,便于选型和查询。
Model NO. | ModelSize w*h(mm) | ViewArea w*h(mm) | Dotsize w*h(mm) | 背光方式 | 显示模式 |
led | el | STN GRAY | STN YELLOW | STN BLUE |
HG122329 | 84.0*44.0 | 60.0*18.0 | 0.40*0.45 | ● | | ● | ● | ● |
HG128322 | 110*65.0 | 76.0*25.0 | 0.52*0.52 | ● | | ● | ● | ● |
HG1286412 | 93.0*70.0 | 72.0*40.0 | 0.48*0.48 | ● | | ● | ● | ● |
HG1286412B | 93.0*70.0 | 72.0*40.0 | 0.48*0.48 | ● | | ● | ● | ● |
HG1286415 | 113.2*65.2 | 73.4*38.8 | 0.50*0.50 | ● | | ● | ● | ● |
HG160322 | 122.0*44.0 | 99.0*24.0 | 0.55*0.56 | ● | | ● | ● | ● |
HG19232B | 116.0*37.0 | 85.0*18.6 | 0.38*0.38 | ● | ● | ● | ● | ● |
**章 液晶显示模块的结构特点
清达光电出品的内置ST7920(Sitronix)控制器液晶显示模块按型号汇总成表(资料可向我公司索取),便于选型和查询,另结构尺寸图详见网站(www.tsingtek.com)或致电我公司查询。
图一图形显示模块系统的方框图(12864为例)
该类液晶模块的管脚定义见表一: 表一
管脚名称 | 说 明 |
符号 | 等效符号 |
VSS | GND | 电源地 |
VCC | VDD | 逻辑电源 |
V0 | VLCD | 液晶驱动电源 |
RS | | 寄存器选择1:数据;0:指令 |
R/W | | 读写信号1:读;0:写 |
E | | 使能信号 |
DB0~DB7 | | 显示数据 |
PSB | | 并行/串行选择 |
SCLK | | 串行时钟信号1:并行;0:串行 |
SID | | 串行数据输入信号 |
CS | | 串行片选信号 |
A | LED(+) | 背光电压正 |
K | LED(-) | 背光电压地 |
注:1.每种液晶接口顺序不同,详见各个液晶资料
液晶电特性
(1)***大值范围
项 目 | 符 号 | *小值 | *大值 | 备注 |
电路逻辑电压(V) | Vdd-Vss | 0 | 5.5 | |
液晶驱动电压(V) | V0-Vss | 0 | 7 | |
输入电压(V) | VI | Vss | Vdd | |
工作温度(℃) | | -20 | +70 | 宽温型 |
存储温度(℃) | | -30 | +80 | 宽温型 |
(2)电特性
项目 | 符号 | 条 件 | MIN | TYP | MAX | 单位 |
输入高电压 | VIH | | 0.7Vdd | - | - | V |
输入低电压 | VIL | | - | - | 0.8 | V |
输出高电压 | VOH | IOH = 0.2 mA | 0.8Vdd | - | - | V |
输出低电压 | VOL | IOL = 1.2 mA | - | - | 0.4 | V |
电源电流 | IDD | | - | 3 | 5 | mA |
第三章 液晶模块的供电说明
1. 模块应用一般有三种电源:逻辑电压、液晶驱动电压、背光电压。
2. 一般液晶模块都是单电源供电, 分二种情况
A.单电源-OV型(液晶型号后缀带-OV标志),那么V0脚要悬空
B.普通单电源型负压由Vee输出,通过10K电位器输入至V0来调节对比度,具体接法如下:
Vee
10K V0
GND
具体电源接法请参照每款液晶引脚说明
3. 在您调试液晶模块时,请注意正确接线,尤其是逻辑电压、液晶驱动电源的接线不能有错,否则烧电路上的芯片。为避免液晶模块的损坏,在加液晶驱动电压V0时,需要比加逻辑电压(VDD)滞后50 ms;在关电时,液晶驱动电压V0需要比逻辑电压(VDD)提前50ms关断。
4. 对于LED背光方式,供电为3.5-4.1V直流电源,严格限制5V电源直接供电(除非液晶模块内部已接限流电阻),否则不仅会增加您的功耗,更会增加损坏背光灯且缩短液晶模块的使用寿命。
第四章 液晶模块控制器介绍
一、ST7920控制器的特点
1. 提供8-位元4-位元及串行MPU界面。
2. 64 x 16-位元 字元显示RAM (DDRAM *多 16字元 x 4 行 , LCD显示范围为16字元 X 2行)。
3. 64 x 256-位元 绘图显示RAM(GDRAM)。
4. 2M-位元 中文字型 ROM (CGROM) 总共提供8192 个中文字型 (16x16 点阵)。
5. 16K-位元 半宽字型 ROM (HCGROM) 总共提供126 個符号字型 (16x8 点阵)。
6. 64 x 16-位元 字型产生 RAM (CGRAM) 。
7. 15 x 16-位元 总共240点的 ICON RAM(IRAM)
8. 自动电源启动复置(RESET)功能
9. 內建振荡器由外部电阻调整
10. 绘图及文字画面混合显示功能
11. 提供多功能指令:
-画面** (Display clear)
-游标归位 (Return home)
-显示打开/关闭 (Display on/off)
-游标显示/隐藏 (Cursor on/off)
-显示字元闪烁 (Display character blink)
-游标移位 (Cursor shift)
-显示移位 (Display shift)
-垂直画面旋转 (Vertical line scroll)
-反白显示 (By_line reversedisplay)
-睡眠模式 (Sleep mode)
12. 內建 Booster升压电路功能(2倍压)
二、ST7920控制驱动器的管脚图及引脚功能
表二 与微处理器的接口信号
引脚符号 | 编号 | 状态 | 功能描述 |
XRESET | 11 | 输入 | 系统重置输入脚(低电平有效) |
PSB | 23 | 輸入 | 微处理器控制介面选择: 0: 串列控制模式 1: 8/4-位元并行控制模式 |
RS(CS*) | 17 | 输入 | 指令数据选择寄存器(并行模式):0:指令或读Busy/位址寄存器 1:数据 片选(串行模式):1:片选致能 0:片选禁止 |
RW(SID*) | 18 | 输入 | 读写选择(并行模式):1:读0:写 数据输入(串行模式): |
E(SCLK*) | 19 | 输入 | 使能信号(并行模式) 时钟信号(串行模式) |
D4 toD7 | 28〜31 | 输入/输出 | 数据双向总线高4-位,DB7可以当作busy信号,当在串行模式,此4位数据线无作用。 |
D0 toD3 | 24〜27 | 输入/输出 | 数据双向总线低4-位,当在4-位元控制模式串行模式,此4位数据线无作用。 |
表三 与LCD接口信号和其它
引脚符号 | 编号 | 状态 | 功能描述 |
COM1~COM33 | 40〜72 | 输出 | 行信号 |
SEG1~SEG64 | 136〜73 | 輸出 | 列信号 |
VDD | 10,14 | 输入 | 内部逻辑电源2.7V 到5.5V |
VSS | 9,20 | 输入 | 内部逻辑电源0V |
V0~V4 | 1〜3,7,8 | - | LCD驱动电压 |
三、功能描述
并列介面资料传输讯号
当PSB脚接高电位时,ST7920将进入并列模式,在并列模式下可由指令DL FLAG 来选择8-位元或4-位元介面,主控制系统将配合( RS , RW , E , DB0..DB7)来达成传输动作。
从一个完整的流程来看,当下设定位址指令后(CGRAM,DDRAM,IRAM…..)若要读取资料时需先 DUMMYREAD一次才会读取到正确资料**次读取时则不需 DUMMY READ 除非又下设定位址指令才需再次 DUMMYREAD。
在4-位元传输模式下,每一个八位元的指令或资料都将被分为两个位元组动作:较高4位元(DB7~DB4)的资料将会被放在**个位元组的(DB7~DB4)部分,而较低4位元(DB3~DB0)的资料则会被放在**个位元组的(DB7~DB4)部分,至於相关的另四位元则在4-位元传输模式中DB3~DB0介面未使用。
串列介面与串列传输资料
当PSB脚接低电位时,ST7920将进入串列模式,在串列模式㆘将使用两条资料传输线作串列资料的传送,主控制系统将配合传输同步时脉线(SCLK)与接收串列资料线(SID),来达成串列传输的动作。
当需要同时连接数颗ST7920晶片时,晶片选择脚(CS)将要被配合使用,在晶片选择脚(CS)设为高电位时,同步时脉线(SCLK)输入的讯号才会被接收,另一方面,当晶片选择脚(CS)设为低电位时,ST7920的内部串列传输计数与串列资料将会被重置,也就是说在此状态下,传输中的资料将被终止**,并且将待传输的串列资料计数重设回**位元;在一个*小的系统架构下,由一个微处理器连接控制单一个ST7920晶片时,相关的连接介面只需要使用同步时脉线(SCLK)与接收串列资料线(SID)两隻脚,在这个模式下晶片选择脚(CS)将被固定接到高电位。
ST7920的同步时脉线(SCLK)具有独立的操作时脉,但是当有连续多个指令需要被传送时,指令执行的时间将需要被考虑,必须确实等到前一个指令完全执行完成才能传送下一笔资料,因为ST7920内部并没有传送/接收缓冲区。
从一个完整的串列传输流程来看,一开始先传输啟始位元组,它需先接收到五个连续的〝1〞(同步位元字串)在啟始位元组,此时传输计数将被重置并且串列传输将被同步,再跟随的两个位元字串分别指定传输方向位元(RW)及暂存器选择位元(RS),*后第八的位元则为〝0〞。
在接收到同步位元及RW和RS资料的啟始位元组后,每一个八位元的指令将被分为两个位元组接收到:较高4位元(DB7~DB4)的指令资料将会被放在**个位元组的LSB部分,而较低4位元(DB3~DB0)的指令资料则会被放在**个位元组的LSB部分,至於相关的另四位元则都为0。
八位并行模式数据传输
四位并行模式数据传输
串行模式时序图
功能说明
ST7920提供三种介面来连接微处理机:8-位元匯流排,4-位元匯流排及串列匯流排介面,经由外部PSB脚来选择介面的种类,当PSB脚接“1”时为选择8/4-位元介面模式,而当接“0”时为串列介面模式。
在读或是写ST7920的动作㆗,有两个8-位元的暂存器将会被使用到,一个是资料暂存器(DR)另一个是指令暂存器(IR)。透过资料暂存器(DR)可以存取DDRAM/CGRAM/GDRAM以及IRAM的值,待存取目标RAM的位址,透过指令命令来选择,每次的资料暂存器(DR)存取动作都将自动的以上回选择的目标RAM位址当主体来作写入或读取。
配合RS及RW可以选择决定控制介面的4种读写模式,详见下表:
RS | RW | 功能说明 |
L | L | MPU写指令到指令暂存器(IR) |
L | H | 读出忙碌标志(BF)及位址计数器(AC)的状态 |
H | L | MPU写入资料到资料暂存器(DR) |
H | H | MPU从资料暂存器(DR)㆗读出资料 |
●忙碌标志(BF)
当BF为“1”时,表示内部的操作正在进行中,即内部处于忙碌状态,此时并不接受新的指令动作,要输入新的指令前,必须先读取BF,一直要到BF“0”时,才能接受输入新的指令;一般而言任何的指令输入后ST7920内部都需要时间处置,在处置完成前并不接受下一个指令,而每一个指令的处置时间并不相同,所以要知道ST7920内部是否已处置完成,可以接受下一指令可以由读取BF标志来确认。
●位址计数器(AC)
位址计数器(AC)用来储存DDRAM/CGRAM/IRAM/GDRAM的位址,它可藉由设定指令暂存器(IR)来改变,之后只要读取或是写入DDRAM/CGRAM/IRAM/GDRAM的值时,位址计数器(AC)的值就会自动加一,当RS为“0”时而RW为“1”时,位址计数器(AC)的值会被读取到DB6〜DB0中。
●中文字型產生 ROM(CGROM)及半宽字型ROM(HCGROM)
ST7920字型发生 ROM 提供 8192个 16 x 16点的中文字形图像以及 126个 16 x 8 点的数字符号图像,它使用两个位元组来提供字型编码选择,配合DDRAM将要显示的字型码写入到 DDRAM上,硬体将自动的依照编码从 CGROM中将要显示的字型显示在萤幕上。
●字型产生 RAM (CGRAM)
ST7920字型产生 RAM提供使用者图像定义(造字)功能,可以提供四组16x16点的自订图像空间,使用者可以将内部字型没有提供的图像字型自行定义到 CGRAM中,并可和 CGRAM中的定义的字符一样透过DDRAM显示在萤幕中。
●ICON RAM(IRAM)
ST7920提供 240点的 ICON显示,它分别由 15组的IRAM位址来组成,每㆒组 IRAM位址由 16个位元构成,每次写入一组 IRAM时,需先指定IRAM的位址,再透过连续写入两个位元组的资料来完成,先写入高位元组(D15〜D8)再写入低位元组(D7〜D0)。
●显示资料RAM(DDRAM)
显示资料 RAM 提供 64x2个位元组的空间,*多可以控制 4行16字(64个字)的中文字型显示,当写入显示资料 RAM时,可以分别显示 CGROM,HCGROM与CGRAM的字型;ST7920可以显示三种字型,分别是半宽的 HCGROM字型、CGRAM字型及中文CGROM字型,三种字型的选择,由在 DDRAM中写入的编码选择,在 0000H〜0006H的编码将选择CGRAM的自定字型,02H〜7FH的编码将选择半宽英数字的字型,A1以上的编码将自动的结合下一个位元组,组成两个位元组的编码组成中文字型的编码BIG5(A140〜D75F) GB(A1A0〜F7FF),详细各种字型编码如下:
1. 显示半宽字型:将 8位元资料写入 DDRAM中,范围为02H〜7FH的编码。
2. 显示 CGRAM字型:将 16位元资料写入 DDRAM中,总共有0000H,0002H,0004H, 0006H四种编码。
3. 显示中文字形:将 16位元资料写入 DDRAM中。
范围为 A140H〜D75FH的编码(BIG5) , 范围为A1A0H〜F7FFH的编码(GB)。
将 16位元资料写入DDRAM方式为透过连续写入两个位元组的资料来完成,先写入高位元组(D15〜D8)再写入低位元组(D7〜D0)。
参照 表5 显示 CGRAM的位址、DDRAM资料以及显示图像的关系。
CGRAM字型与中文字形之编码只可出现在每一Addressconuter的起始位置(参考表4)
80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 8A | 8B | 8C | 8D | 8E | 8F |
H | L | H | L | H | L | H | L | H | L | H | L | H | L | H | L | H | L | H | L | H | L | H | L | H | L | H | L | H | L | H | L |
T | s | i | n | g | t | e | k | L | C | M | | | | | | | | | | | | | | | | | | | | | |
请 | 达 | 光 | 电 | | 中 | 文 | 字 | 库 | ( | 正 | 确 | ) | | | |
请 | 达 | 光 | 电 | | 中 | | 文 | 字 | 库 | | | | | | | |
表4
●绘图 RAM(GDRAM)
绘图显示 RAM 提供 64x32个位元组的记忆空间(由扩充指令设定绘图RAM位址),*多可以控制 256x64点的二维绘图缓冲空间,在更改绘图 RAM时,由扩充指令设定GDRAM位址先设垂直位址再设水平位址(连续写入两个位元组的资料来完成垂直与水平的坐标位址),再写入两个 8位元的资料到绘图RAM,而位址计数器(AC)会自动加一,整个写入绘图 RAM的步骤如下:
1. 先将垂直的位元组座标(Y)写入绘图 RAM位址。
2. 再将的水平座标(X)写入绘图 RAM位址。
3. 将 D15〜D8写入到 RAM中(写入第㆒个Bytes)。
4. 将 D7〜D0写入到 RAM中(写入第㆓个Bytes)。
绘图显示的记忆体对应分布请参考表8
表5 DDRAM资料(字元代码),CGRAM位址以及CGRAM资料(显示图像)的相互对照关系
附注:
1. DDRAM 资料(字元代码) 的位元 1到 2和CGRAM位址的位元 4到 5同步吻合(2位元:4组图像).
2. CGRAM 位址的位元 0到 3指定字型图像的列位址,总共指定16列(4位元),第 16列是游标的显示区域,游标的显示和第 16行的资料采用逻辑或(OR)的方式产生显示结果.
3. 显示图像的横列图素对应到 CGRAM资料的位元 0到 15 (位元15在*左边).
4. 选择到 CGRAM的图像资料,DDRAM资料的位元 4到15须设为 0,位元 0及位元 3则可为任意值。
表6 ICONRAM的位址,資料以及Segment接脚的对应表
表7 16x8 半宽字型符号表
表8 GDRAM坐标位址于资料排列顺序对照表
四、ST7920控制驱动器的时序
8位并行时序
写数据
8位并行写数据时序图
( TA = 25°C, VDD = 4.5V)
参数 | 符号 | *小值 | 典型值 | *大值 | 单位 | 信号 |
使能周期 | Tc | 1200 | ─ | ─ | ns | E |
使能脉冲宽度 | TPW | 140 | ─ | ─ | ns |
使能上升沿/下降沿时间 | TR,TF | ─ | ─ | 25 | ns |
地址建立时间 | TAS | 10 | ─ | ─ | ns | RS,RW,E |
地址保持时间 | TAH | 20 | ─ | ─ | ns |
数据建立时间 | TDSW | 40 | ─ | ─ | ns | DB0-DB7 |
数据保持时间 | TH | 20 | | | ns |
( TA = 25°C, VDD = 2.7V)
参数 | 符号 | *小值 | 典型值 | *大值 | 单位 | 信号 |
使能周期 | Tc | 1800 | ─ | ─ | ns | E |
使能脉冲宽度 | TPW | 160 | ─ | ─ | ns |
使能上升沿/下降沿时间 | TR,TF | ─ | ─ | 25 | ns |
地址建立时间 | TAS | 10 | ─ | ─ | ns | RS,RW,E |
地址保持时间 | TAH | 20 | ─ | ─ | ns |
数据建立时间 | TDSW | 40 | ─ | ─ | ns | DB0-DB7 |
数据保持时间 | TH | 20 | | | ns |
读数据
8位并行读数据时序图
( TA = 25°C, VDD = 4.5V)
参数 | 符号 | *小值 | 典型值 | *大值 | 单位 | 信号 |
使能周期 | Tc | 1200 | ─ | ─ | ns | E |
使能脉冲宽度 | TPW | 140 | ─ | ─ | ns |
使能上升沿/下降沿时间 | TR,TF | ─ | ─ | 25 | ns |
地址建立时间 | TAS | 10 | ─ | ─ | ns | RS,RW,E |
地址保持时间 | TAH | 20 | ─ | ─ | ns |
数据延迟时间 | TDDR | ─ | ─ | 100 | ns | DB0-DB7 |
数据保持时间 | TH | 20 | | | ns |
( TA = 25°C, VDD = 2.7V)
参数 | 符号 | *小值 | 典型值 | *大值 | 单位 | 信号 |
使能周期 | Tc | 1800 | ─ | ─ | 1800 | E |
使能脉冲宽度 | TPW | 320 | ─ | ─ | 320 |
使能上升沿/下降沿时间 | TR,TF | ─ | ─ | 25 | ─ |
地址建立时间 | TAS | 10 | ─ | ─ | 10 | RS,RW,E |
地址保持时间 | TAH | 20 | ─ | ─ | 20 |
数据延迟时间 | TDDR | ─ | ─ | 260 | ─ | DB0-DB7 |
数据保持时间 | TH | 20 | ─ | ─ | 20 |
串行时序
( TA = 25°C, VDD = 4.5V)
参数 | 符号 | *小值 | 典型值 | *大值 | 单位 | 信号 |
上升沿/下降沿时间 | TR,TF | - | - | 0.2 | µs | - |
时钟周期 | TSCYC | 400 | - | - | ns | E |
SCLK高脉冲宽度 | TSHW | 200 | - | - | ns |
SCLK低脉冲宽度 | TSLW | 200 | - | - | ns |
SID数据建立时间 | TSDS | 40 | - | - | ns | RW |
SID数据保持时间 | TSDH | 40 | - | - | ns |
CS建立时间 | TCSS | 60 | - | - | ns | RS |
CS保持时间 | TCSH | 60 | - | - | ns |
( TA = 25°C, VDD =2.7V)
参数 | 符号 | *小值 | 典型值 | *大值 | 单位 | 信号 |
上升沿/下降沿时间 | TR,TF | - | - | 0.2 | µs | - |
时钟周期 | TSCYC | 600 | - | - | ns | E |
SCLK高脉冲宽度 | TSHW | 300 | - | - | ns |
SCLK低脉冲宽度 | TSLW | 300 | - | - | ns |
SID数据建立时间 | TSDS | 40 | - | - | ns | RW |
SID数据保持时间 | TSDH | 40 | - | - | ns |
CS建立时间 | TCSS | 60 | - | - | ns | RS |
CS保持时间 | TCSH | 60 | - | - | ns |
第五章 液晶显示模块指令系统
一、指令表
1.指令简介
指令表1(RE=0,基本指令集)
指令表 2(RE=1,扩充指令集)
2.指令详细说明
基本指令集说明:
●**显示
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 | 0 0 0 0 0 0 0 1 |
将 DDRAM填满 "20H"(spacecode),并且设定 DDRAM的位址计数器(AC)到"00H",重设进入点设定将 I/D设为 "1"游标右移AC加1.
●位置归位
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 | 0 0 0 0 0 0 1 x |
设定DDRAM的位址计数器(AC)到"00H",并且将游标移到开头原点位置;这个指令并不改变 DDRAM的内容
●进入点设定
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 | 0 0 0 0 0 1 I/D S |
指定在资料的读取与写入时,设定游标的移动方向及指定显示的移位
I/D:位址计数器递增递减选择
当 I/D = "1", 游标右移,DDRAM位址计数器(AC)加1
当 I/D = "0", 游标左移,DDRAM位址计数器(AC)减1
S: 显示画面整体位移
●显示状态开关
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 | 0 0 0 0 1 D C B |
控制整体显示,游标,游标位置反白 ON/OFF
D : 整体显示ON/OFF控制位元
当 D = "1",整体显示 ON
当 D = "0",整体显示 OFF ,但不改变DDRAM的内容
C :游标ON/OFF控制位元
当 C = "1",游标显示 ON.
当 C = "0",游标显示 OFF.
B : 游标位置反白ON/OFF控制位元
当 B = "1",游标位置显示反白ON,将游标所在之位址上的资料反白显示.
当 B = "0",游标位置显示反白 OFF
●游标或显示移位控制
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 | 0 0 0 1 S/C R/L x x |
设定游标的移动与显示的移位控制位元;这个指令并不改变DDRAM的内容
S/C | R/L | 描述 | AC |
L | L | 游标向左移动 | AC=AC-1 |
L | H | 游标向右移动 | AC=AC+1 |
H | L | 显示(display)向左移动,且游标跟这移动 | AC=AC |
H | H | 显示(display)向右移动,且游标跟这移动 | AC=AC |
●功能设定
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 | 0 0 1 DL x RE x x |
DL : 4/8BIT界面控制位元
当 DL = "1", 为 8 BIT MPU 控制界面
当 DL = "0", 为 4 BIT MPU 控制界面
RE : 指令集选择控制位元
当 RE = "1", 为扩充指令集动作
当 RE = "0", 为基本指令集动作
同一指令之动作不可同时改变RE 及DL需先改变DL后再改变 RE 才可确保FLAG正确设定
●设定 CGRAM位址
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 | 0 1 AC5 AC4 AC3 AC3 AC1 AC0 |
设定 CGRAM位址到位址计数器(AC)
AC范围为 00H..3FH
需确认扩充指令中SR=0(卷动位址或RAM位址选择)
●设定 DDRAM位址
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 | 1 AC6 AC5 AC4 AC3 AC3 AC1 AC0 |
设定 DDRAM位址到位址计数器(AC)
**行 AC范围为 80H..8FH
**行 AC范围为 90H..9FH
第三行 AC范围为 A0H..AFH
第四行 AC范围为 B0H..BFH
●读取忙碌标志(BF)和位址
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 1 | BF AC6 AC5 AC4 AC3 AC3 AC1 AC0 |
读取忙碌标志(BF),可以确认内部动作是否完成,同时可以读出位址计数器(AC)的值
当 BF = “1”, 表示内部忙碌,此时不可写指令需等 BF =“0”才可写新指令.
●写入资料到RAM
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
1 0 | 数据 |
写入资料到内部的 RAM 当写入后会使 (AC) 改变
每个RAM位址(CGRAM,DDRAM,IRAM…..)都可连续写入两个位元组的资料(2-Bytes)当写入第㆓BYTE时位址计数器(AC)的值就会自动加一
●读取RAM的值
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
1 1 | 数据 |
从内部的 RAM读取资料, 当读取后会使 (AC)改变
当设定位址指令后(CGRAM,DDRAM,IRAM…..)若要读取资料时需先 DUMMYREAD一次才会读取到正确资料,**次读取时则不需 DUMMY READ 除非又写设定位址指令才需再次 DUMMYREAD。
扩充指令集说明:
●待命模式
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 | 0 0 0 0 0 0 0 1 |
进入待命模式,执行任何其他指令都可终止待命模式;这个指令并不改变RAM的内容
●卷动位址或 RAM位址选择
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 | 0 0 0 0 0 0 1 SR |
当 SR = "1",允许输入垂直卷动位址
当 SR = "0",允许输入 IRAM位址(扩充指令)及允许设定CGRAM位址(基本指令)
●反白选择
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 | 0 0 0 0 0 1 R1 R0 |
选择 4行中的任㆒行作反白显示,并可决定反白与否
R1,R0初值为 00当**次设定时为反白显示,再一次设定时为正常显示
R1 | R0 | 描述 |
L | L | **行反白或正常显示 |
L | H | **行反白或正常显示 |
H | L | 第三行反白或正常显示 |
H | H | 第四行反白或正常显示 |
●睡眠模式
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 | 0 0 0 0 1 SL 0 0 |
SL=1: 脱离睡眠模式
SL=0: 进入睡眠模式
●扩充功能设定
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 | 0 0 1 DL x RE G x |
DL : 4/8BIT界面控制位元
当 DL = "1", 为 8 BIT MPU 控制界面
当 DL = "0", 为 4 BIT MPU 控制界面
RE : 指令集选择控制位元
当 RE = "1", 为扩充指令集动作
当 RE = "0", 为基本指令集动作
G : 绘图显示控制位元
当 G = "1", 绘图显示 ON
当 G = "0", 绘图显示 OFF
同一指令之动作不可同时改变RE及DL、G需先改变DL或G 后再改变RE才可确保FLAG 正确设定
●设定IRAM位址或卷动位址
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 | 0 1 AC5 AC4 AC3 AC3 AC1 AC0 |
SR=1: AC5~AC0为垂直卷动位址
SR=0: AC3~AC0 为ICON RAM 位址
●设定绘图RAM位址
RS R/W | DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 |
0 0 | 1 AC6 AC5 AC4 AC3 AC3 AC1 AC0 |
设定 GDRAM位址到位址计数器(AC)
先设垂直位址再设水平位址(连续写入两个位元组的资料来完成垂直与水平的座标位址)
垂直位址范围 AC6...AC0
水平位址范围 AC3…AC0
绘图RAM之位址计数器(AC)只会对水平位址(X轴)自动加㆒,当水平位址=0FH时会重新设为00H但并不会对垂直位址做进位自动加㆒故当连续写入多笔资料时程式需自行判断垂直位址是否需重新设定
三、ST7920控制器液晶地址表分配
:
型号 | 行 | 1 2 .. 8 9 10..16 |
122*32 | 1 2 | 80H 81H ..87H 90H 91H…97H |
128*32 | 1 2 | 80H 81H ..87H 90H 91H…97H |
128*64 | 1 2 3 4 | 80H 81H ..87H 90H 91H…97H 88H 89H…8FH 98H 99H…9FH |
160*32 | 1 2 | 80H 81H ..89H 90H 91H…99H |
192*32 | 1 2 | 80H 81H ..8BH 90H 91H…9BH |
第六章 液晶模块接口技术及测试程序
本章所涉及电路均为清达光电测试板电路,其中8052时钟晶振为12M,程序均已经过调试。我公司除手册外还提供用8031汇编语言和C51语言编写的DEMO软件,以及在WINDOWS平台上提取点阵汉字字模软件、抓图软件等工具软件,因此更详细的例程,请参考软件包。
一、8位或4位并行模式接口电路及驱动程序
间接控制方式(仿时序)如下图所示:
驱动子程序如下:
RS EQU P3.0
RW EQU P3.1
E EQU P3.2
1. 读BF和AC值子程序
READ_BF:
MOV P1,#0FFH
CLR RS
SETB RW
SETB E
MOV A,P1
NOP
NOP
CLR E
RET
2. 写指令代码子程序
WRITE_COM: ;WRIT///cv
LCALLDELAY1 ;INSTEAD OF CHECKING BF STATE
CLR RS
CLR RW
MOV P1,A
SETB E
NOP
NOP
CLR E
RET
3. 写显示数据子程序
WRITE_DAT: ;WRITE DISPLAY DATAS TO ST79220
LCALLDELAY1; INSTEAD OF CHECKING BF STATE
SETBRS
CLR RW
MOV P1,A
SETB E
NOP
NOP
CLR E
RET
4. 读显示数据子程序
READ_DAT:
MOV P1,#0FFH
LCALL DELAY1; ; INSTEAD OF CHECKING BF STATE
SETB RS
SETB RW
SETB E
MOV A,P1
NOP
NOP
CLR E
RET
5. 判忙子程序
A:利用标志位BF
BF: LCALLREAD_BF
JBACC.7,BF
RET
B:加延时
DELAY1:
MOV R7,#010H
D11: MOV R6,#010H
DJNZ R6,$
DJNZ R7,D11
RET
二、串行模式接口电路及驱动程序
间接控制方式(仿时序)如下图所示:
串行模式的驱动子程序如下:
CS EQU P3.0 ;
SID EQU P3.1 ;
CLK EQU P3.2 ;
1、写指令代码子程序
WRITE_COM:
LCALLDELAY1 ;INSTEAD OF CHECKING BF STATE
SETB CS
PUSH ACC
MOV R0,#8
MOV A,#11111000B
COMM1:
CLR C
RLC A
CLR CLK
MOV SID,C
SETB CLK
DJNZ R0,COMM1
POP ACC
MOV R5,A
ANL A,#0F0H
MOV R0,#8
COMM2: CLR C
RLC A
CLR CLK
MOV SID,C
SETB CLK
DJNZ R0,COMM2
MOV A,R5
SWAP A
ANL A,#0F0H
MOV R0,#8
COMM3: CLR C
RLC A
; CLR CLK
CLR CLK
MOV SID,C
SETB CLK
DJNZ R0,COMM3
CLR CS
RET
2、写显示数据子程序
WRITE_DAT:
LCALL DELAY1
SETB CS
PUSH ACC
MOV R0,#8
MOV A,#11111010B
DATA1: CLR C
RLC A
CLR CLK
MOV SID,C
SETB CLK
DJNZ R0,DATA1
POP ACC
MOV R5,A
ANL A,#0F0H
MOV R0,#8
DATA2: CLR C
RLC A
CLR CLK
MOV SID,C
SETB CLK
DJNZ R0,DATA2
MOV A,R5
SWAP A
ANL A,#0F0H
MOV R0,#8
DATA3: CLR C
RLC A
CLR CLK
MOV SID,C
SETB CLK
DJNZ R0,DATA3
CLR CS
RET
三、应用程序
该程序是依据122*32液晶而编制的(8位并行方式)。其它规格的ST7920液晶显示模块都适用,仅是地址的改动而已。
示例一 初始化子程序
SETUP:
LCALLDELAY
LCALLDELAY
LCALLDELAY
MOV A,#01H ;CLEAR DISPLAY
LCALLWRITE_COM
MOV A,#00110000B ;FUNCTION SETTING
LCALLWRITE_COM
MOV A,#00000010B ;DDRAM SET TO '00H'
LCALLWRITE_COM
MOV A,#00000100B ;
LCALLWRITE_COM
MOV A,#00001100B ;DISPLAY ON
LCALLWRITE_COM
MOV A,#00000001B ;CLEARING SCREEN
LCALLWRITE_COM
MOV A,#10000000B ;SET DDRAM ADDRESS
LCALLWRITE_COM
RET
DELAY:
MOV R1,#00H
D2: MOV R2,#00H
DJNZ R2,$
DJNZR1,D2
RET
初始化演示程序
MAIN: MOV P3,#0FFH
LCALL SETUP
示例二 图形方式
;此为绘图程序
MOV A,#34H
LCALLWRITE_COM
MOV A,#80H
LCALLWRITE_COM
MOV A,#80H
LCALLWRITE_COM
MOV DPTR,#BMP
MOV R3,#64 ;
MOV R4,#32
MOV R2,#80H
WBMP: CLR A
MOVC A,@A+DPTR
LCALLWRITE_DAT
INC DPTR
DJNZ R4,WBMP
MOV R4,#16
MOV A,R2
INC A
MOV R2,A
LCALLWRITE_COM
MOV A,#80H
LCALLWRITE_COM
DJNZ R3,WBMP
MOV A,#36H ;绘图显示开,扩展功能
LCALLWRITE_COM
LCALLDELAY
LCALLDELAY
LCALLDELAY
LCALLDELAY
LCALLDELAY
MOV A,#34H ;绘图关,扩展功能
LCALLWRITE_COM
MOV A,#30H ;基本指令,绘图关
LCALLWRITE_COM
RET
示例三 文本方式
WRITE_HZ: ;WRITE 8 CHINESE TO LCD
MOV R4,#8
DD:CLR A
MOVC A,@A+DPTR
INC DPTR
LCALL WRITE_DAT
CLR A
MOVC A,@A+DPTR
INC DPTR
LCALL WRITE_DAT
DJNZ R4,DD
RET
示例四 建立自定义字符库
ST7920提供四组16x16点的自订图像空间.
自建立4个16*16点阵的图形,子程序如下:
DEF_CHAR: ;WRITE TO CGRAM
MOV A,#01000000B ;SET CGRAMADDRESS
LCALLWRITE_COM
MOV R3,#8
DEF1:
MOV A,#000H
LCALLWRITE_DAT
MOV A,#000H
LCALLWRITE_DAT
MOV A,#0FFH
LCALLWRITE_DAT
MOV A,#0FFH
LCALLWRITE_DAT
DJNZR3,DEF1
MOV R3,#8
DEF2:
MOV A,#0AAH
LCALLWRITE_DAT
MOV A,#0AAH
LCALLWRITE_DAT
MOV A,#0AAH
LCALL WRITE_DAT
MOV A,#0AAH
LCALLWRITE_DAT
DJNZR3,DEF2
MOV R3,#8
DEF3:
MOV A,#055H
LCALLWRITE_DAT
MOV A,#055H
LCALLWRITE_DAT
MOV A,#0AAH
LCALLWRITE_DAT
MOV A,#0AAH
LCALLWRITE_DAT
DJNZR3,DEF3
MOV R3,#8
DEF4:
MOV A,#0FFH
LCALLWRITE_DAT
MOV A,#0FFH
LCALLWRITE_DAT
MOV A,#0FFH
LCALLWRITE_DAT
MOV A,#0FFH
LCALLWRITE_DAT
DJNZR3,DEF4
RET
测试自定义字符库:
LCALLDEF_CHAR
MOV A,#80H
LCALLWRITE_COM
MOV R3,#8
TEST11:
MOV DPTR,#CGRAM1 ;CGRAMTEST
LCALLWRITE_CGRAM
DJNZR3,TEST11
MOV A,#90H
LCALLWRITE_COM
RET
WRITE_CGRAM: ;CGRAM TESTING
CLR A
MOVC A,@A+DPTR
LCALL WRITE_DAT
INC DPTR
CLR A
MOVC A,@A+DPTR
LCALL WRITE_DAT
RET
CGRAM1: DB000H,000H ;这里是自造字符地址表