软件功能设置:画面清除、光标显示/隐藏、光标归位、显示打开/关闭、显示字符闪烁、光标移位、显示移位、垂直画面旋转、反白显示、液晶睡眠/唤醒、关闭显示、自定义字符、睡眠模式等。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的寄存器读写状态
忙标志位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~F7FFHGB码或A140H~D75FHBIG5码的编码。
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 DELAYLCALL DELAYLCALL DELAYMOV A #01H ;CLEAR DISPLAYLCALL WRITE_COMMOV A #00110000B ; FUNCTION SETTINGLCALL WRITE_COMMOV A #00000010B ; DDRAM SET TO ′00H′LCALL WRITE_COMMOV A #00000100BLCALL WRITE_COMMOV A #00001100B ; DISPLAY ONLCALL WRITE_COMMOV A #00000001B ; CLEAR IN G SCREENLCALL WRITE_COMMOV A #10000000B ; SET DDRAM ADDRESSLCALL WRITE_COMRETMOV A,#80H ;在LCD屏的第一行显示汉字:欢迎使用ST7920LCALL WRITE_COMMOV R4 #8MOV DPTR,#HZCODED CLR AMOVC A @A+DPTRI NC DPTRLCALL WRITE_DATCLR AMOVC A @A+DPTRINC DPTRLCALL WRITE_DATDJNZ R4 DDHZCODEDB ′欢迎使用ST7920′DB ′ST7920控制芯片′DB′有:图形、点阵、DB ′字符等多种模块。4、结束语由ST7920构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。因此,ST7920将得到广泛的应用。
| 欢迎光临 美丽的网站-英华家电维修论坛 (http://www.bsss.info/) | Powered by Discuz! X3.2 |