第一章 ST7920控制器中文图形液晶显示模块的主要特性
ST7920控制器系列中文图形液晶模块的软件特性主要由ST7920控制驱动器决定。ST7920同时作为控制器和驱动器,它可提供33路com输出和64路seg输出。在驱动器ST7921的配合下,最多可以驱动256×32点阵液晶。
我公司的ST7920系列产品有:122×32点阵系列、128×32点阵系列、144×32点阵系列、160×32点阵系列、128×64点阵系列(原理即是256×32点阵)。
ST7920系列产品硬件特性如下:
z 提供8位,4位并行接口及串行接口可选 z 并行接口适配M6800时序 z 自动电源启动复位功能 z 内部自建振荡源
z 64×16位字符显示RAM(DDRAM最多16字符×4行,LCD显示范围16
×2行)
z 2M位中文字型ROM(CGROM),总共提供8192个中文字型(16×16点阵) z 16K位半宽字型ROM(HCGROM),总共提供126个西文字型(16×8点阵) z 64×16位字符产生RAM(CGRAM)
z 15×16位总共240点的ICON RAM(ICONRAM)
ST7920系列产品软件特性如下: z 文字与图形混合显示功能 z 画面清除功能 z 光标归位功能 z 显示开/关功能 z 光标显示/隐藏功能 z 显示字体闪烁功能 z 光标移位功能功能 z 显示移位功能 z 垂直画面旋转功能 z 反白显示功能 z 休眠模式
中文字库选择:
ST7920-0A内建BIG-5码繁体中文字型库 ST7920-0B内建GB码简体中文字型库
用户在选用之前务必注明。
1
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
第二章 模块的硬件说明
1. ST7920与MCU的接口
功能描述
并口 串口
VCC I - 模块电源输入(未注明为5V) GND I - 电源地 V0 I - 对比度调节端 VEE I - 液晶驱动电压(或名Vout) * PSB I H/L 并口/串口选择:H 并口; L 串口** RST I H/L 复位信号,低有效 RS(CS) I H/L 寄存器选择端: H 数据; L 指令 片选,低有效 R/W(SID) I H/L 读/写选择端: H 读 ; L 写 串行数据线 E(SCLK) I H/L 使能信号 串行时钟输入 DB0-DB3 I/O H/L 数据总线低四位 空接 DB4-DB7 I/O H/L 数据总线高四位,4位并口时空接 空接
A I - 背光正(或名LEDA、BLA) K I - 背光负 (或名LEDK、BLK)
* 并非所有的模块都有VEE脚,参考第二章第3部分 ** 详见第二章第5部分
2. 电气特性:(测试条件 Ta=25,Vdd=5.0±10%)
1)输入高电平(Vih):0.7Vdd~Vdd
2)输入低电平(Vil): 0.6Vmax 3)输出高电平(Voh): 0.8Vdd~Vdd 4)输出低电平(Vol): 0.4Vmax
5)模块工作电流: 1.14~1.18mA (不含背光) 6)侧白光工作电流: --
名称 型态电平
2
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
3. ST7920系列产品接口表:
12232-9 12832-2 12864-12 12864-1512864-1912864G16032A GND VCC 1 GND GND GND GND GND LEDK2 VCC VCC VCC VCC VCC LEDA3 V0 V0 4 RS RS 6 E E V0 RS E V0 RS E V0 GND V0 RS VCC RS E RS E E DB1 5 R/W R/W R/W R/W R/W NC R/W 7 DB0 DB0 DB0 DB0 DB0 R/W DB0 8 DB1 DB1 DB1 DB1 DB1 10 DB3 DB3 DB3 11 DB4 DB4 DB4 12 DB5 DB5 DB5 13 DB6 DB6 DB6 14 DB7 DB7 DB7 15 LEDA PSB 16 LEDK NC PSB NC DB3 DB4 DB5 DB6 DB7 PSB NC 9 DB2 DB2 DB2 DB2 DB2 DB0 DB2 DB3 DB1 DB3 DB4 DB2 DB4 DB5 DB3 DB5 DB6 DB4 DB6 DB7 DB5 DB7 PSB NC DB6 DB7 PSB RST 17 - RST RST RST RST PSB Vout 18 - NC NC Vout Vout RST LEDA 19 - LEDA LEDK BLK LEDA Vout LEDK 20 - LEDK LEDA BLA LEDK V0 NC* * NC为空脚 4. LCD驱动电压即对比度调节电路 ST7920内带倍压电路,生成2倍于 VCC的电压。倍压通过Vout脚引出,通过电位器调节后,从V0引回模块用来驱动LCD。直接驱动LCD的是V0,V0电压越高,对比度越深。通过调节电位器来调节V0值以改变对比度。 某些模块没有Vout脚。Vout电压直接通过降压处理供给V0。对比度已经锁定。如果一定要调节对比度,可以通过V0对地接一可调电阻,拉低V0值。 特别提出12864-12的LCD驱动电压为5V,部分产品没有配置倍压电路,而是V0直接接VCC,用作LCD驱动,对比度不可调。 +VOUTCAP3MCAP1PCAP1MCAP2PCAP2MST79203334353738394.7uF+4.7uFVOUT20KV0 3ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
5. PSB电路
PSB接高时选择并口,接低时选择串口。模块上一般都有跳线方式将PSB接高或接低,用户可以不再处理PSB脚(用户事先需声明是用并口还是串口)。也可以选择不在模块上处理,而由客户自己选择并口还是串口。
特别说明:12232-9没有将PSB引出,只能在模块上处理;
16032A模块上不可处理PSB脚,只能由用户自己处理。 6. 原理简图
1) 122×32系列原理简图
VDDVSSV0VOUT
32COMLCDControllerST7920OR Eqv64SEGLCD PANEL122X32 dots58SEGDB0-DB7RS(CS)RSTE(SCLK)RW(SID)PSB
LEDALEDK
ST7921OR EqvLED Backlight
2) 128×32系列原理简图
VDDVSSV0VOUT
32COMLCDControllerST7920OR Eqv64SEGLCD PANEL144X32 dots80SEGDB0-DB7RS(CS)RSTE(SCLK)RW(SID)PSB
LEDALEDK
ST7921OR EqvLED Backlight 4
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
3) 144×32系列原理简图
VDDVSSV0VOUT
32COMLCDControllerST7920OR Eqv64SEGLCD PANEL128X32 dots64SEGDB0-DB7RS(CS)RSTE(SCLK)RW(SID)PSB
LEDALEDK
ST7921OR EqvLED Backlight
4) 160×32系列原理简图
VDDVSSV0VOUT
32COMLCDControllerST7920OR Eqv64SEGLCD PANEL160X32 dots96SEGDB0-DB7RS(CS)RSTE(SCLK)RW(SID)PSB
LEDALEDK
ST7921OR EqvLED Backlight
5) 128×64系列原理简图
ST7921VDDVSSV0VOUT
96SEGLCDControllerST7920OR Eqv32COM32SEGDB0-DB7RS(CS)RSTE(SCLK)RW(SID)PSB
128X32 dots128X32 dots64SEG64SEGLEDALEDK
LED BacklightST7921
5
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
第三章 ST7920内置硬件说明
1. 中文字型产生ROM(CGROM)及半宽字型ROM(HCGROM)
ST7920的字型产生ROM通过8192个16×16点阵的中文字型,以及126个16×8点阵的西文字符,它用2个字节来提供编码选择,将要显示的字符的编码写到DDRAM上,硬件将依照编码自动从CGROM中选择将要显示的字型显示再屏幕上。
2. 字型产生RAM(CGRAM)
ST7920的字型产生RAM提供用户自定义字符生成(造字)功能,可提供4组16×16点阵的空间,用户可以将CGROM中没有的字符定义到CGRAM中。 3. 显示RAM(DDRAM)
显示RAM提供64×2字节的空间,最多可以控制4行16字的中文字型显示。当写入显示资料RAM时,可以分别显示CGROM,HCGROM及CGRAM的字型。
三种字型的选择:
1) 显示半宽字型 将一个字节的编码写入DDRAM中,范围是02~7FH 2) 显示CGRAM字型 将2个字节的编码写入DDRAM中,共有0000H,0002H,0004H及0006H四种编码
3) 显示中文字型 将2字节的编码写入DDRAM中,先写高8位,后写低8位范围是A140H~D75FH(BIG5),A1A0H~F7FFH(GB) 4. ICON RAM(IRAM)
ST7920提供240点的ICON显示,它由15个IRAM单元组成,每个单元有
16位,每写入一组IRAM时,需先写入IRAM地址,然后连续送入2个字节的数
6
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
据,先高8位(D15~D8),后低8位(D7~DD)。 5. 绘图RAM
提供64×32个字节的空间(由扩充指令设定绘图RAM地址),最多可以控制256×64点阵的二维绘图缓冲空间,在更改绘图RAM是,由扩充指令设置GDRAM地址先垂直地址后水平地址(连续2个字节的数据来定义垂直和水平地址),再2个字节的数据给绘图RAM(先高8位后低8位)。
7
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
6. DDRAM内容,CGRAM地址以及CGRAM内容的对照关系
8
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
7. CGRAM与中文字型的编码只能出现在adress counter的起始位置(见下表)
80
81
82
83
84
HG
85
L
H
86
L
H
87
L
H
88
L
H
89
L
H
8A
8B
8C
H L H L H L H L H LO N C A 1 2 3 3 2
L H L H L
汉 汉
升 升
液 液
晶 ……AB12晶 … AB12
中 文 (正 (错
确 )
中 文 误 ) 8. 16×8半宽字型表
9
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
第四章 时序
1. 8位并口写操作时序图
2. 8位并口读操作时序图
3. 4位并口时序图图
10
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
4. 串口时序图
5. 外部复位时序图
第五章 指令说明
1. 指令表1(RE=0,基本指令集)
指 令 名 称清除显示 地址归0 进入设定点 显示开关设置 移位控制 功能设定 设定CGRAM地址设定DDRAM地址
控制信号 RS 0 0 0 0 0 0 0 0
R/W 0 0 0 0 0 0 0 0
D70 0 0 0 0 0 0 1
D6 0 0 0 0 0 0 1 0
控 制 代 码 D5 0 0 0 0 0 1 A5 A5
D4 0 0 0 0 1 DL A4 A4
D3 0 0 0 1 S/CX A3 A3
D2 0 0 1 D R/L0/REA2 A2
D1 0 1 I/D C X X A1 A1
D0 1 X S B X X A0 A0
执 行 时 间 1.6 ms 72us 72us 72us 72us 72us 72us 72us
11
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
读忙标志和地址写显示数据 读显示数据
0 1 1
1 0 1
BFA6 A5 A4 A3 A2 A1 A0 72us 72us 72us
显 示 数 据 显 示 数 据
2. 指令表2(RE=1,扩充指令集)
指 令 名 称 待命模式 卷动地址或RAM地
址选择
反白显示 睡眠模式 扩充功能设定 设定IRAM地址或
卷动地址 设定绘图RAM地址
控制信号 RS 0 0 0 0 0 0 0
R/W 0 0 0 0 0 0 0
D7 0 0 0 0 0 0 1
D6 0 0 0 0 0 1 0 A6
D5 0 0 0 0 1 A5 0 A5
控制代码 D4 0 0 0 0 DL A4 0 A4
D3 0 0 0 1 X A3 A3 A3
D2 0 0 1 SL 1/REA2 A2 A2
D1 0 1 R1 X G A1 A1 A1
D0 1 SR R0 X 0 A0 A0 A0
执行时间72us 72us 72us 72us 72us 72us 72us
备注:当ST7920在接受指令前,MCU必须先确认ST7920处于非忙状态。即读取BF=0,才能接受新的指令;如果在送出一条指令前不检查BF状态,则需要延时一段时间,以确保上一条指令执行完毕,具体指令执行时间参照指令表。
“RE”是基本指令集与扩充指令集的选择控制位,当变更 “RE”的状态后,以后的指 令维持在最后的状态。除非再次变更“RE”的状态,否则使用相同的指令集时,不需要重新设置“RE”。
3. 基本指令详细说明表
1)清除显示(CLEAR)
格 式 0 0 0 0 0 0 0 1 将DDRAM填满“20H”(空格)代码,并且设定DDRAM的地址计数器(AC)为00H;更新设置进入设定点将I/D设为1,游标右移AC加1。
2)地址归0(HOME)
格 式 0 0 0 0 0 0 1 X 设定DDRAM的地址寄存器为00H,并且将游标移到开头原点位置;这个指令并不改变DDRAM的内容。
3)进入设定点(ENTRY MODE SET) 初始值:06H
格 式 0 0 0 0 0 1 I/D S 指定在显示数据的读取与写入时,设定游标的移动方向及指定显示的移位
12
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
I/D=1,游标右移,DDRAM地址计数器(AC)加1 I/D=0,游标左移,DDRAM地址计数器(AC)减1 S:显示画面整体位移
S I/D 功能描述 H H 画面整体左移H L 画面整体右移
4)显示开关设置(DISPLAY STATUS) 初始值:08H
格 式 0 0 0 0 1 D C B 控制整体显示开关,游标开关,游标位置显示反白开关
D=1,整体显示开;D=0,整体显示关,但是不改变DDRAM内容 C=1,游标显示开;C=0,游标显示关
B=1,游标位置显示反白开,将游标所在地址上的内容反白显示;B=0,正常显示
5)游标或显示移位控制(CURSOR AND DISPLAY SHIFT CONTORL) 初始值:0001 XXXX B (X=0,1)
格 式 0 0 0 1 S/CR/LX X 这条指令不改变DDRAM的内容
S/C R/L 方向 AC的值 L L 游标向左移动 AC=AC-1 L H 游标向右移动 AC=AC+1 H L 显示向左移动,游标跟着移动 AC=AC H H 显示向右移动,游标跟着移动 AC=AC
6)功能设定(FUNCTION SET) 初始值:0011 X0XX B (X=0,1)
格 式 0 0 1 DL X 0/REX X DL:8/4位接口控制位
DL=1,8位MPU接口;DL=1,4位MPU接口 RE:指令集选择控制位
RE=1,扩充指令集;RE=0,基本指令集
同一指令的动作不能同时改变DL和RE,需先改变DL再改变RE才能确
保设置正确
7)设定CGRAM 地址
格 式 0 1 A5 A4 A3 A2 A1 A0 设定CGRAM 地址到地址计数器(AC),AC范围为00H~3FH需确认扩充指令中SR=0(卷动位置或RAM地址选择)
8)设定DDRAM地址
格 式 1 0 A5 A4 A3 A2 A1 A0 设定DDRAM 地址到地址计数器(AC) 第一行AC范围 80H~8FH
13
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
第二行AC范围 90H~9FH
备注:ST7920控制器的128×64点阵液晶其实原理上等同256×32点阵,第三行对应的DDRAM地址紧接第一行;第四行对应的DDRAM地址紧接第二行。 用户在使用行反白功能时,如果第一行反白,第三行必然反白。第二行反白,第四行必然反白。这是正常现象。
9)读取忙标志和地址(RS=0,R/W=1)
格 式 BF A6 A5 A4 A3 A2 A1 A0 读取忙标志以确定内部动作是否完成,同时可以读出地址计数器(AC)的值
10) 写显示数据到RAM(RS=1,R/W=0)
格 式 D7 D6 D5 D4 D3 D2 D1 D0 当显示数据写入后会使AC改变,每个RAM(CGRAM,DDRAM,IRAM)地址都可以连续写入2个字节的显示数据,当写入第二个字节时,地址计数器(AC)的值自动加一。
11) 读取显示RAM数据(RS=1,R/W=1)
格 式 D7 D6 D5 D4 D3 D2 D1 D0 读取后会使AC改变
设定RAM(CGRAM,DDRAM,IRAM)地址后,先要Dummy read一次后才能读取到正确的显示数据,第二次读取不需要Dummy read,除非重新设置了RAM地址
4. 扩充指令详细说明表
1) 待命模式
格 式 0 0 0 0 0 0 0 1 进入待命模式,执行如何其它指令都可以结束待命模式;该指令不能改变RAM的内容。
2) 卷动位置或者RAM地址选择 初始值:02H
格 式 0 0 0 0 0 0 1 SR 当SR=1时,允许输入垂直卷动地址
当SR=0时,允许输入IRAM地址(扩充指令)及允许设定CGRAM地址(基本指令)
3) 反白显示 初始值:04H
格 式 0 0 0 0 0 1 0 R0 选择2行中的任意一行作反白显示,并可决定反白与否。R0初始值为0,第一次执行时为反白显示,再次执行时为正常显示 通过R0选择要作反白处理的行: R0=0 第一行, R0=1 第二行
说明:参考基本指令详细说明中的DDRAM地址说明
14
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
128×64点阵的液晶执行反白功能时实用意义不大,因为一三行连在一起,二四行连在一起,用户对第一行执行反白显示操作时,第三行必然也反白显示。
4) 睡眠模式 初始值:0000 10XXB(X=0,1)
格 式 0 0 0 0 1 SL 0 0 SL=1,脱离睡眠模式 SL=0,进入睡眠模式
5) 扩充功能设定
初始值:001 DL X100 B (DL=1,8BIT并口;DL=0,4BIT并口 X=0,1)
格 式 0 0 1 DL X RE G X DL:8/4位接口控制位
DL=1,8位MPU接口;DL=1,4位MPU接口 RE:指令集选择控制位
RE=1,扩充指令集;RE=0,基本指令集 G:绘图显示控制位
G=1,绘图显示开;G=0,绘图显示关
同一指令的动作不能同时改变RE及DL、G,需先改变DL或G再改变RE才
能确保设置正确
6) 设定IRAM地址或卷动地址
格 式 0 1 A5 A4 A3 A2 A1 A0 SR=1,A5~A0为垂直卷动地址;SR=0,A3~A0为IRAM地址
7) 设定绘图RAM地址
0 0 0 A3 A2 A1 A0 格 式 1 A6 A5 A4 A3 A2 A1 A0 设定GDRAM地址到地址计数器(AC),先设置垂直位置再设置水平位置(连续写入2字节数据来完成垂直与水平坐标的设置)。
垂直地址范围:AC6~AC0 水平地址范围:AC3~AC0
15
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
5. 初始化流程
开电源显示开/关控制字 0C0H延时>40msXRESET 低-->高延时>100us功能设定控制字 30H清除屏幕控制字 01H延时>100us延时>10ms功能设定控制字 30H进入设定点控制字 06H延时>37us初始化完成 第六章 MCU接口图 1. 并口直接访问方式 1234567891011121314151617181920P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RESETP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7OS1OS2GND89C52VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7/EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.04039383736353433323130292827262524232221DB0DB1DB2DB3DB4DB5DB6DB7DB0DB1DB2DB3DB4DB5DB6DB7RSR/WDB0DB1DB2DB3DB4DB5DB6DB7RSR/WERSTLCMRSR/W10K0.1uFVCC74HC00 16ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113 2. 并口间接访问方式 DB0DB1DB2DB3DB4DB5DB6DB7RSR/WE1234567891011121314151617181920P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RESETP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7OS1OS2GND89C52VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7/EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.04039383736353433323130292827262524232221DB0DB1DB2DB3DB4DB5DB6DB7RSR/WEDB0DB1DB2DB3DB4DB5DB6DB7RSR/WERSTLCM10K0.1uFVCC 3. 串口接线图 12345678910CSSID11SCLK121314151617181920P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RESETP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7OS1OS2GND89C52VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7/EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.04039383736353433323130292827262524232221CSSIDSCLKDB0DB1DB2DB3DB4DB5DB6DB7RSR/WERSTLCM10K0.1uFVCC 17ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
第七章 示例程序
1. 并口直接访问方式
;************************************* ;CONTROLLER:ST7920(8BIT INTERFACE) * ;EDITOR:张炎 * ;MCU=89C52
;CRYSTAL:12MHz * ;RS=P2.0 RW=P2.1 E=/(WR*RD) * ;DB0-DB7=P0 * ;*************************************
DATWP EQU 0100H ;写数据通道 DATRP EQU 0300H ;读数据通道 COMWP EQU 0000H ;写数据通道 COMRP EQU 0200H ;读忙通道
COM EQU 30H ;控制字暂存单元 DAT EQU 31H ;显示数据暂存单元 CODER EQU 32H ;字符代码暂存单元 ADDR EQU 33H ;地址暂存单元
ORG 0000H AJMP MAIN ORG 0030H MAIN:
MOV SP,#60H LCALL DEL_20MS LCALL DEL_20MS
LCALL INI ;进入初始化子程序
MOV ADDR,#80H MOV DPTR,#WEL_1 LCALL W_LINE MOV ADDR,#90H MOV DPTR,#WEL_2 LCALL W_LINE MOV ADDR,#88H MOV DPTR,#WEL_3 LCALL W_LINE MOV ADDR,#98H MOV DPTR,#WEL_4
18
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
LCALL W_LINE LCALL DEL_1500MS
MOV ADDR,#80H MOV DPTR,#WEL_5 LCALL W_LINE MOV ADDR,#90H MOV DPTR,#WEL_6 LCALL W_LINE MOV ADDR,#88H MOV DPTR,#WEL_7 LCALL W_LINE MOV ADDR,#98H MOV DPTR,#WEL_8 LCALL W_LINE LCALL DEL_1500MS
MOV ADDR,#80H ; MOV DPTR,#HZ_1 LCALL W_LINE
MOV ADDR,#90H ; MOV DPTR,#HZ_2 LCALL W_LINE
MOV ADDR,#88H ; MOV DPTR,#HZ_3 LCALL W_LINE
MOV ADDR,#98H ; MOV DPTR,#HZ_4 LCALL W_LINE
LCALL DEL_1500MS ;
MOV ADDR,#80H ; MOV DPTR,#HZ_5 LCALL W_LINE
MOV ADDR,#90H ; MOV DPTR,#HZ_6 LCALL W_LINE
MOV ADDR,#88H ; MOV DPTR,#HZ_7 LCALL W_LINE
MOV ADDR,#98H ; MOV DPTR,#HZ_8 LCALL W_LINE LCALL DEL_1500MS
; ; ; ; 延时后显示下一页 ; ; ; ; 19
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
LJMP MAIN INI:
MOV COM,#30H ;功能设定,基本指令 LCALL WCOM
MOV COM,#30H ;基本指令,8-bit模式,基本指令 LCALL WCOM
MOV COM,#0CH ;显示开,游标关,反白关 LCALL WCOM
MOV COM,#01H ;清除显示 LCALL WCOM
MOV COM,#06H ;进入设定点,游标7右移,画面不移动 LCALL WCOM RET
W_LINE:
MOV COM,ADDR ; LCALL WCOM ;
MOV R2,#16 ;16个循环,连续写入8个汉字或是16个西文字符 W_L1:
MOV A,#00H MOVC A,@A+DPTR MOV CODER,A LCALL WCODE INC DPTR DJNZ R2,W_L1 RET WCOM:
PUSH DPH PUSH DPL
MOV DPTR,#COMRP WCOM1:
MOVX A,@DPTR JB ACC.7,WCOM1 MOV DPTR,#COMWP MOV A,COM MOVX @DPTR,A POP DPL POP DPH RET WCODE:
20
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
PUSH DPH PUSH DPL
MOV DPTR,#COMRP WCODE1:
MOVX A,@DPTR JB ACC.7,WCODE1 MOV DPTR,#DATWP MOV A,CODER MOVX @DPTR,A POP DPL POP DPH RET
DEL_20MS:
MOV R0,#20 D2:
MOV R1,#200 D1: NOP NOP NOP
DJNZ R1,D1 DJNZ R0,D2 RET
DEL_100MS:
LCALL DEL_20MS LCALL DEL_20MS LCALL DEL_20MS LCALL DEL_20MS LCALL DEL_20MS RET
DEL_500MS:
LCALL DEL_100MS LCALL DEL_100MS LCALL DEL_100MS LCALL DEL_100MS LCALL DEL_100MS RET
DEL_1500MS:
LCALL DEL_500MS LCALL DEL_500MS
21
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
LCALL DEL_500MS RET WEL_1:
DB \"欢迎使用汉升液晶\" WEL_2:
DB \"WWW.HSLCM.COM.CN\" WEL_3:
DB \"86-0755-86114312\" WEL_4:
DB \"128X64全点阵显示\" WEL_5:
DB \"图形以及字符显示\" WEL_6:
DB \"可显示8X4 个中文\" WEL_7:
DB \"内带标准中文字库\" WEL_8:
DB \"含8192个中文字型\" HZ_1:
DB \"锦瑟无端五十弦,\" HZ_2:
DB \"一弦一柱思华年。\" HZ_3:
DB \"庄生晓梦迷蝴蝶,\" HZ_4:
DB \"望帝春心托杜鹃。\" HZ_5:
DB \"沧海月明珠有泪,\" HZ_6:
DB \"蓝田日暖玉生烟。\" HZ_7:
DB \"此情可待成追忆,\" HZ_8:
DB \"只是当时已惘然。\" END
2. 并口间接访问方式
;************************************* ;CONTROLLER:ST7920(8BIT INTERFACE) ;128×64点阵
22
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
;EDITOR:张炎 ;CRYSTAL:12MHz ;RS=P3.0 RW=P3.1 E=P3.2 D0-D7=P1 ;*************************************
RS EQU P3.0 ;H=DATA,L=COM RW EQU P3.1 ;H=READ,L=WRITE E EQU P3.2 ;
COM EQU 30H ;控制字暂存单元 DAT EQU 31H ;显示数据暂存单元 CODER EQU 32H ;字符代码暂存单元 ADDR EQU 33H ;地址暂存单元
ORG 0000H AJMP MAIN ORG 0030H MAIN:
MOV SP,#60H MOV P3,#0F8H LCALL DEL_20MS LCALL DEL_20MS
LCALL INI ;进入初始化子程序
MOV ADDR,#80H MOV DPTR,#WEL_1 LCALL W_LINE MOV ADDR,#90H MOV DPTR,#WEL_2 LCALL W_LINE MOV ADDR,#88H MOV DPTR,#WEL_3 LCALL W_LINE MOV ADDR,#98H MOV DPTR,#WEL_4 LCALL W_LINE LCALL DEL_1500MS
MOV ADDR,#80H MOV DPTR,#WEL_5 LCALL W_LINE MOV ADDR,#90H MOV DPTR,#WEL_6
23
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
LCALL W_LINE MOV ADDR,#88H MOV DPTR,#WEL_7 LCALL W_LINE MOV ADDR,#98H MOV DPTR,#WEL_8 LCALL W_LINE LCALL DEL_1500MS
MOV ADDR,#80H ; MOV DPTR,#HZ_1 LCALL W_LINE
MOV ADDR,#90H ; MOV DPTR,#HZ_2 LCALL W_LINE
MOV ADDR,#88H ; MOV DPTR,#HZ_3 LCALL W_LINE
MOV ADDR,#98H ; MOV DPTR,#HZ_4 LCALL W_LINE
LCALL DEL_1500MS ;
MOV ADDR,#80H ; MOV DPTR,#HZ_5 LCALL W_LINE
MOV ADDR,#90H ; MOV DPTR,#HZ_6 LCALL W_LINE
MOV ADDR,#88H ; MOV DPTR,#HZ_7 LCALL W_LINE
MOV ADDR,#98H ; MOV DPTR,#HZ_8 LCALL W_LINE LCALL DEL_1500MS
LJMP MAIN INI:
MOV COM,#30H ; LCALL WCOM
MOV COM,#30H ; LCALL WCOM
; ; ; ; 延时后显示下一页 ; ; ; ; 功能设定,基本指令 基本指令,8-bit模式,基本指令 24
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
MOV COM,#0CH ;显示开,游标关,反白关 LCALL WCOM
MOV COM,#01H ;清除显示 LCALL WCOM
MOV COM,#06H ;进入设定点,游标7右移,画面不移动 LCALL WCOM RET
W_LINE: ;写入一行8汉字子程序 MOV COM,ADDR ; LCALL WCOM ;
MOV R2,#16 ;16个循环,连续写入8个汉字或是16个西文字符 W_L1:
MOV A,#00H MOVC A,@A+DPTR MOV CODER,A LCALL WCODE INC DPTR DJNZ R2,W_L1 RET
WCOM: ;写指令子程序 CLR RS SETB RW WC1:
MOV P1,#0FFH SETB E MOV A,P1 CLR E
JB ACC.7,WC1 ;查忙 CLR RW MOV P1,COM SETB E CLR E RET
WCODE: ;写代码子程序 CLR RS SETB RW WCO1:
MOV P1,#0FFH SETB E MOV A,P1 CLR E
25
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
JB ACC.7,WCO1 SETB RS CLR RW MOV P1,CODER SETB E CLR E RET
DEL_20MS:
MOV R0,#20 D2:
MOV R1,#200 D1: NOP NOP NOP
DJNZ R1,D1 DJNZ R0,D2 RET
DEL_100MS:
LCALL DEL_20MS LCALL DEL_20MS LCALL DEL_20MS LCALL DEL_20MS LCALL DEL_20MS RET
DEL_500MS:
LCALL DEL_100MS LCALL DEL_100MS LCALL DEL_100MS LCALL DEL_100MS LCALL DEL_100MS RET
DEL_1500MS:
LCALL DEL_500MS LCALL DEL_500MS LCALL DEL_500MS RET WEL_1:
DB \"欢迎使用汉升液晶\"
26
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
WEL_2:
DB \"WWW.HSLCM.COM.CN\" WEL_3:
DB \"86-0755-86114312\" WEL_4:
DB \"128X64全点阵显示\" WEL_5:
DB \"图形以及字符显示\" WEL_6:
DB \"可显示8X4 个中文\" WEL_7:
DB \"内带标准中文字库\" WEL_8:
DB \"含8192个中文字型\" HZ_1:
DB \"昨夜星辰昨夜风,\" HZ_2:
DB \"画楼西畔桂堂东。\" HZ_3:
DB \"身无彩凤双飞翼,\" HZ_4:
DB \"心有灵犀一点通。\" HZ_5:
DB \"隔座送钩春酒暖,\" HZ_6:
DB \"分曹射覆蜡灯红。\" HZ_7:
DB \"嗟余听鼓应官去,\" HZ_8:
DB \"走马兰台类转蓬。\" END
3. 4位并口模式
请参照8位并口间接访问方式以及4位并口时序图。不同之处只是将每个字节分两次送入,第一次送入高四位,第二次送入低四位。 4. 串口程序
PSB接低时,串口模式被选择。在该模式下,只用两根线(SID与SCLK)来完成数据传输。当同时使用多颗ST7920时,CS线被配合使用,CS是高有效。
ST7920的他不时钟SCLK有独立的操作时序,当多个连续的指令需要被送入时,指令执行时间需要被考虑。必须等待上一个指令执行完毕才送入下一个指
27
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
令,因为ST7920内部没有传送/接收缓冲区。
一个完整的串行传输周期由一下部分组成:
首先送入启动字节,送入5个连续的“1”用来启动一个周期,此时传输计数被重置,并且串行传输被同步。紧接的两个位指定传输方向(RW,确定读还是写)和传输性质(RS,确定是命令寄存器还是数据寄存器),最后的第八位是一个“0”。
送完启动字节之后,可以送入指令或是显示数据(或是字型代码)。指令或者代码是以字节为单位的,每个字节的内容(指令或数据)在被送入时分为两个字节来处理:高四位放在第一个字节的高四位,低四位放在第二个字节的高四位。无关位都补“0”。请参照第四章串行通讯时序图。
示例程序如下:
;************************************* ;CONTROLLER:ST7920(串行接口) ;128×64点阵
;EDITOR: 张炎
;CRYSTAL:12MHz ;CS=P3.0 SID=P3.1 SCLK=P3.2 ;************************************** CS EQU P3.0 ;H=DATA,L=COM SID EQU P3.1 ;H=READ,L=WRITE SCLK EQU P3.2 ;
COM EQU 30H ;控制字暂存单元 DAT EQU 31H ;显示数据暂存单元 CODER EQU 32H ;字符代码暂存单元 ADDR EQU 33H ;地址暂存单元
ORG 0000H AJMP MAIN ORG 0030H MAIN:
MOV SP,#60H LCALL DEL_40MS LCALL INI
MOV ADDR,#80H MOV DPTR,#WEL_1 LCALL W_LINE MOV ADDR,#90H MOV DPTR,#WEL_2 LCALL W_LINE MOV ADDR,#88H
28
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
MOV DPTR,#WEL_3 LCALL W_LINE MOV ADDR,#98H MOV DPTR,#WEL_4 LCALL W_LINE LCALL DEL_1500MS
MOV ADDR,#80H MOV DPTR,#WEL_5 LCALL W_LINE MOV ADDR,#90H MOV DPTR,#WEL_6 LCALL W_LINE MOV ADDR,#88H MOV DPTR,#WEL_7 LCALL W_LINE MOV ADDR,#98H MOV DPTR,#WEL_8 LCALL W_LINE LCALL DEL_1500MS
MOV ADDR,#80H ; MOV DPTR,#HZ_1 LCALL W_LINE
MOV ADDR,#90H ; MOV DPTR,#HZ_2 LCALL W_LINE
MOV ADDR,#88H ; MOV DPTR,#HZ_3 LCALL W_LINE
MOV ADDR,#98H ; MOV DPTR,#HZ_4 LCALL W_LINE
LCALL DEL_1500MS ;
MOV ADDR,#80H ; MOV DPTR,#HZ_5 LCALL W_LINE
MOV ADDR,#90H ; MOV DPTR,#HZ_6 LCALL W_LINE
MOV ADDR,#88H ; MOV DPTR,#HZ_7 LCALL W_LINE
; ; ; ; 延时后显示下一页 ; ; ; 29
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
MOV ADDR,#98H ; MOV DPTR,#HZ_8 ; LCALL W_LINE LCALL DEL_1500MS
LJMP MAIN INI:
MOV COM,#30H ;功能设定,基本指令 LCALL WCOM
MOV COM,#30H ;基本指令,8-bit模式,基本指令 LCALL WCOM
MOV COM,#0CH ;显示开,游标关,反白关 LCALL WCOM
MOV COM,#01H ;清除显示 LCALL WCOM
MOV COM,#06H ;进入设定点,游标7右移,画面不移动 LCALL WCOM RET
W_LINE:
MOV COM,ADDR LCALL WCOM
MOV R4,#16 ;连续写入8个中文或者16个西文字符 W_L1:
MOV A,#00H MOVC A,@A+DPTR MOV CODER,A LCALL WCODE INC DPTR DJNZ R4,W_L1 RET WCOM:
LCALL STWC MOV A,COM
LCALL W4_D ;送入高四位指令 LCALL W4_0 ;连续送入四个0 LCALL W4_D ;送入高四位指令 LCALL W4_0 ;连续送入四个0 CLR CS LCALL DEL_2MS RET
30
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
WCODE:
LCALL STWD MOV A,CODER LCALL W4_D LCALL W4_0 LCALL W4_D LCALL W4_0 CLR CS LCALL DEL_2MS RET STWC: SETB CS SETB SID
MOV R3,#5 STWC1:
SETB SCLK CLR SCLK DJNZ R3,STWC1 CLR SID MOV R3,#3 STWC2:
SETB SCLK CLR SCLK DJNZ R3,STWC2 RET STWD: SETB CS SETB SID
MOV R3,#5 STWD1:
SETB SCLK CLR SCLK DJNZ R3,STWD1
CLR SID SETB SCLK CLR SCLK
SETB SID SETB SCLK CLR SCLK
CLR SID SETB SCLK CLR SCLK
;连续送入5个\"1\起始 ;RW=0,RS=0,第八位\"0\" ;连续送入5个\"1\起始 ;RW=0 ;RS=1 ;第八位\"0\" 31
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
RET W4_D:
MOV R3,#4 W4_D1: RLC A MOV SID,C SETB SCLK CLR SCLK DJNZ R3,W4_D1 RET W4_0:
MOV R3,#4 W4_01: CLR SID SETB SCLK CLR SCLK DJNZ R3,W4_01 RET
DEL_2MS: MOV R0,#2 D1:
MOV R1,#200 D2: NOP NOP NOP
DJNZ R1,D2 DJNZ R0,D1 RET
DEL_40MS:
MOV R2,#20 D3:
LCALL DEL_2MS DJNZ R2,D3 RET
DEL_200MS:
MOV R2,#100 D4:
LCALL DEL_2MS
32
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
DJNZ R2,D4 RET
DEL_500MS:
MOV R2,#250 D5:
LCALL DEL_2MS DJNZ R2,D5 RET
DEL_1500MS:
LCALL DEL_500MS LCALL DEL_500MS LCALL DEL_500MS RET WEL_1:
DB \"WWW.HSLCM.COM.CN\" WEL_2:
DB \"欢迎使用汉升液晶\" WEL_3:
DB \"086-755-86114312\" WEL_4:
DB \"支持图形和文本显\" WEL_5:
DB \"示,可显示8X4 行\" WEL_6:
DB \"共32个中文,内带\" WEL_7:
DB \"标准中文字库,内\" WEL_8:
DB \"含8192个中文字型\" HZ_1:
DB \" 桃 夭 \" HZ_2:
DB \"诗经·国风·周南\" HZ_3:
DB \"桃之夭夭灼灼其华\" HZ_4:
DB \"之子于归宜其室家\" HZ_5:
DB \"桃之夭夭有蕡其实\" HZ_6:
33
ST7920控制器系列中文字库液晶模块中文说明书 版本号:20070113
DB \"之子于归宜其家室\" HZ_7:
DB \"桃之夭夭其叶蓁蓁\" HZ_8:
DB \"之子于归宜其家人\" END
34
因篇幅问题不能全部显示,请点此查看更多更全内容