液晶显示模块应用系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

液晶显示模块应用系统

设计任务: 设计完成一个液晶显示系统。

设计要求: 能够在液晶显示块上显示文字、图形、符号等。完成以左移、 右移、上移、下移的方式循环显示任意长度的文字。

三、仪器、仪表:单片机、仿真机、万用表等。 四、元件清单:

液晶显示块 1块 电阻10K

2个

5.1K 3 个

五、完成时间:一周 六、评分标准:

七、原理:

本系统以单片机为核心,辅以 12864液晶显示模块电路,构成了基于汉字 库应用技术的点阵型液晶显示器。硬件结构简单,其功能主要由单片机来完成。

按钮 3个 电容22uF

1个

并根据人眼的滞留时间不超过20ms,利用定时记数器T0定时控制。能够循环显示要显示的内容。

GXM —12864的电路结构特点

GXM —12864是使用HD61202作为列驱动器,同时使用HD61203作为行驱

动器的液晶模块。由于HD61203不与MPU发生联系,只要提供电源就能产生行驱动信号和各种同步信号,结构比较简单。GXM —12864共有两片HD61202

和一片HD61203。其显示区分为两部分(左区和右区)。因此,在写入程序时要先判断在哪个区,所写的数据是否超出当前所在区的地址范围。

GXM —12864一共有64行,128列。GXM —12864的内部结构电路如下图:

。HD61202 的时

能与微处理器直接接口的时序。各种信号波形对照如上图所示:

读写数据指令每执行完一次读写操作,列地址就自动加一。必须注意的是,进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的数据。

八、程序原理图设计:

HD61202共有20个引脚。/CSA,/CSB分别为芯片片选端低电平有效。E 为读写使能端其在下降沿时,数据被锁存即写入HD61202;高电平期间,数据

被读出。R/W为读写选择信号端,当R/W=1时为读选通,当R/W=0时为写选通。D/I 为数据,指令选择信号端,当D/I=1时为数据操作,D/I=0时为写指令或读状态。RST为复位端。DB0~DB7为数据总线。

GXM —12864液晶显示的明暗度是可调节的,主要是通过调节连接在LEDK,VEE.VO 上的电位器连入电路的电阻就可以了。另外还有电源和接地端。其和单片机的连接如下图所示:

九、系统流程图:

本系统采用模块化设计。GXM —12864共64行,分为8页每页又包含8 行,在编程过程当中汉字采用16*16的点阵符,英文采用8*8点阵。因此,每个汉字占2页用寄存器R0设置其值。本程序先给程序初始化再清显示RAM区,为了使程序结构简单化,在汉字库对输入的汉字生成的点阵ASM 数据前添加三个数据,其分别为显示起始页显示起始列所写入的汉字的长

度。用查表指针取得相应的数据,并把它放在寄存器中保存起来。为了便于区别还设置了一个当前的列寄存器,以实现字符的左移,右移。设置了一个行寄存器,通过加减其值实现上下移动。

本程序通过查表取得相应字符的点阵ASM数据,并根据这个数据确定查表指针应该指向哪个表确定表的地址。从显示起始列寄存器取得起始列的值,由这个值判断它在哪个区,如果它小于#40H则在左区,如果它大于#40H 小于80H则在右区,大于80H则转为左区。通过定时器定时,控制字符移

动的速度。由于GXM —12864共128列,64行,所以显示区一次一行只能 写8个汉字。在给每个区写数据和指令代码时,首先要判断状态字的标志位 是否“忙”。如果不忙则继续写指令代码或显示数据,反之,则继续读状态 字。为了避免出现从复,还设置了完成标志位,通过判断标志位是否为“ 来确定其是否已经写完了。其具体流程图如下:

清显示RAM 区

设置列地址间接寄存器

COLADD #0

]—

指针指向字符表并设置字高

设置完成标志位

主程序流程图:

开始

程序初始化

查表取数据

N

丫 进入另一页

写各区的代码

判完成标志位是否为 0

N

查表取数据

判是否在左区?

判是否在右区?

(2)

Y

写代码直到字符长度和页数均为

(

1

(1)

N

(2)

指针指向西文字符表

确定字符表地址

26H=?

Y

END

N

是否在右区?

N

取数据给各区写代码把字 符长度放在计数器中

取字符表数据和列地

址值

指针指向下一个表

判是否在 左区?

指向另1字符数据表

判是否为表的 最后一个数?

判是否为表的 最后一个数?

取字符长度值指

入堆栈

实现左移

V

设置定时长度定时

十、程序如下:

ORG 0000H

COM EQU 20H

COLUMN EQU 21H

MODLE EQU 22H

DAT EQU 23H

COLADD EQU 24H

START_LINE EQU 25H

COUNT EQU R5

CWADD2 EQU 0800H

CRADD2 EQU 0A00H

DWADD2 EQU 0900H

DRADD2 EQU 0B00H

CWADD3 EQU 0400H

CRADD3 EQU 0600H

DWADD3 EQU 0500H

DRADD3 EQU 0700H

DRADD2 EQU 0B00H

;///////////////////// 主程序

MAIN:MOV SP,#40H

LCALL INT ;///////////调初始化子程序

LCALL CLEAR ;/////////// 调清显示RAM 区子程序

相关文档
最新文档