中文图形显示控制芯片ST7920的原理与应用
扫描二维码
随时随地手机看文章
关键词:串/并接口; 控制模块; 中文图形显示
1 概述
ST7920是台湾矽创电子公司生产的中文图形控制芯片,它是一种内置128×64-12汉字图形点阵的液晶显示控制模块,用于显示汉字及图形。该芯片共内置8192个中文汉字(16×16点阵)、128个字符的ASCII字符库(8×16点阵)及64×256点阵显示RAM(GDRAM)。
为了能够简单、有效地显示汉字和图形,该模块内部设计有2MB的中文字型CGROM和64×256点阵的GDRAM绘图区域;同时,该模块还提供有4组可编程控制的16×16点阵造字空间;除此之外,为了适应多种微处理器和单片机接口的需要,该模块还提供了4位并行、8位并行、2线串行以及3线串行等多种接口方式。
利用上述功能可方便地实现汉字、ASCII码、点阵图形、自造字体的同屏显示,所有这些功能(包括显示RAM、字符产生器以及液晶驱动电路和控制器)都包含在集成电路芯片里,因此,只要一个最基本的微处理系统就可以通过ST7920芯片来控制其它的芯片。ST7920的主要技术参数和显示特性如下:
电源:VDD (-2.7~+5.5V)+5V(内置升压电路,一般无需负压);
功耗:正常模式:450μA,睡眠模式:3μA,低功耗模式:30μA;
显示内容:128列× 64行;
显示颜色:黄绿;
显示角度:6:00钟直视;
LCD类型:STN;
与MCU接口:8位并行/3位串行;
配置有LED背光显示功能;
带有自动启动复位按钮(reset);
图1
软件功能设置:画面清除、光标显示/隐藏、光标归位、显示打开/关闭、显示字符闪烁、光标移位、显示移位、垂直画面旋转、反白显示、液晶睡眠/唤醒、关闭显示、自定义字符、睡眠模式等。
2 组成原理
ST7920 LCD驱动器由32个普通驱动器(common)及64个段驱动器?segment?组成,段驱动器的扩充可根据需要由ST7921的段驱动器来提供,一个ST7920可以显示一行8个字或两行4个字,或是配合ST7921来显示两行16个字。ST7920有两种结构形式:ST7920-0A和ST7920-0B,前者内置BIG-5码,用于显示繁体中文字型;而后者内置GB码,用于显示简体中文字型。
图1是ST7920的内部结构框图。在对ST7920读或写时,会用到两个8位的寄存器,一个是数据寄存器DR,另一个是指令寄存器IR。通过数据寄存器DR可以存取DDRAM、CGRAM、CGROM及IRAM的值。待存取的目标RAM的地址可通过命令来选择,每次数据寄存器DR的操作应以上次选择的目标RAM为主体来进行读出或写入。通过RS和RW的状态可以选择不同的读写模式,具体配置方法如表1所列。
表1 ST7920的寄存器读写状态
RS | RW | 功能说明 |
低电平0 | 低电平0 | MPU写指令到指令寄存器IR |
低电平0 | 高电平1 | 读出忙标志及地址计数器的状态 |
高电平1 | 低电平0 | MPU写指令到数据寄存器DR |
高电平1 | 高电平1 | MPU从数据寄存器DR读出指令 |
忙标志位BF为“1”时,表示内部操作正在进行,即处于忙状态而不接受新的指令,所以,每次接受新指令前,都要读取BF标志,只有当其为“0”时才可接受。
3 ST7920的应用
ST7920有自己的指令集,包括基本指令和扩充指令两大类,其中基本指令有11条,扩充指令有7条。下面以显示RAM(DDRAM)为例来说明ST7920的应用方法。
3.1 文本显示RAM(DDRAM)
ST7920的文本显示RAM中提供了8个×4行的汉字空间,当对文本显示RAM进行写入时,可以分别显示CGROM、HCGROM与CGRAM的字型;ST7920A可以显示三种字型,分别是半宽的HC-GROM字型、CGRAM字型及中文CGROM字型。三种字型的选择可通过在DDRAM中写入编码来进行设定,各种字型的详细编码如下:
显示半宽字型 :将一位字节写入DDRAM中,范围为02H~7FH的编码。
显示CGRAM字型:这种字型可通过将两个字节的编码写入DDRAM中来实现,总共有0000H、0002H、0004H、0006H四种编码方式。
显示中文字形:将两字节编码写入DDRAM,范围为A1A0H~F7FFH?GB码?或A140H~D75FH?BIG5码?的编码。
图2
3.2 绘图RAM(GDRAM)
绘图显示RAM提供128×8个字节的存储空间,在更改绘图RAM时,先连续写入水平与垂直的坐标值,再将两个字节的数据写入绘图RAM,地址计数器(AC)会自动加1;在写入绘图RAM期间,绘图显示必须关闭,写入绘图RAM的步骤如下:
①关闭绘图显示功能。
②将水平的位元组坐标(X)写入绘图RAM地址;
③将垂直的坐标(Y)写入绘图RAM地址;
④将D15~D8数据写入GDRAM中;
⑤将D7~D0数据写入GDRAM中;
⑥打开绘图显示功能。
3.3 显示两行16个汉字的应用举例
图2所示为用ST7920和ST7921显示两行16个汉字的结构原理图。在使用DDRAM显示汉字时,一行显示8个汉字的程序代码如下:
初始化SETUP:
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV A? #01H ;CLEAR DISPLAY
LCALL WRITE_COM
MOV A? #00110000B ; FUNCTION SETTING
LCALL WRITE_COM
MOV A? #00000010B ; DDRAM SET TO ′00H′
LCALL WRITE_COM
MOV A? #00000100B?
LCALL WRITE_COM
MOV A? #00001100B ; DISPLAY ON
LCALL WRITE_COM
MOV A? #00000001B ; CLEAR IN G SCREEN
LCALL WRITE_COM
MOV A? #10000000B ; SET DDRAM ADDRESS
LCALL WRITE_COM
RET
MOV A,#80H ;在LCD屏的第一行显示汉字:
欢迎使用ST7920
LCALL WRITE_COM
MOV R4? #8
MOV DPTR,#HZCODE
D? CLR A
MOVC A? @A+DPTR
I NC DPTR
LCALL WRITE_DAT
CLR A
MOVC A? @A+DPTR
INC DPTR
LCALL WRITE_DAT
DJNZ R4? DD
HZCODE?
DB ′欢迎使用ST7920′
DB ′ST7920控制芯片′
DB′有:图形、点阵、
DB ′字符等多种模块。
4 结束语
由ST7920构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。因此,ST7920将得到广泛的应用。