液晶显示设计与实现文档格式.docx
《液晶显示设计与实现文档格式.docx》由会员分享,可在线阅读,更多相关《液晶显示设计与实现文档格式.docx(18页珍藏版)》请在冰点文库上搜索。
在其控制下使液晶不断接收需要显示字符的字模数据。
在液晶显示屏上显示出内容。
由于12232比较常见,故本次原则RT12232的液晶显示器。
根椐设计题目要求选用的是STC89C52单片机芯片和内置控制器为RT12232的液晶显示屏,总体设计共分为3个模块:
将在PC机上编译的可执行程序烧录进单片机的串行烧录模块;
储存程序以及处理程序的STC89C52芯片;
显示效果的LCD液晶电路模块。
这3种模块协同工作,组成了整个显示系统。
在整个系统中,STC89C52单片机是最重要的核心部件,与其它模块一起协作,构成了整个显示系统。
而单片机与复位电路,晶振电路,三者一起构成了单片机最小系统,只有在复位电路,晶振电路相辅助的情况下,单片机才能构正常工作。
复位电路提供给单片机的复位引脚一个确定的信号,在单片机在死机,程序跑偏等情况下,可以通过复位电路使单片机恢复到初始状态重新开始工作。
在单片机正常运行时可以保证单片机不会误复位。
晶振电路提供给单片机一个固定的时钟频率。
保证整个单片机各单元间协调统一地运行。
串口烧录电路是单片机与PC机之间通信的桥梁。
通过烧录电路,用户可以将要显示的字符程序烧进单片机的Flash保存起来。
在脱离PC的状态下,给系统通电时,单片机就会自动运行,控制显示屏显示出在程序中设定好的字符。
3.2硬件连接设计部分
12232液晶与STC89C52单片机电路连接图如下图1所示:
图1液晶与STC89C52单片机电路连接图
由上图可以看出,在本系统中只用到STC89C52单片机的P1口与P3口资源,系统采用最简单的直接访问方式,P1作为数据口向12232液晶传送待显示的图形符号字模数据,P3口的P3.4、P3.5、P3.6、P3.7分别独立由单片机控制。
来使液晶模块按指定要求正常工作。
液晶显示器RT12232由两片SED1520构成,下面将详细介绍STC89C52单片机和SED1520液晶的功能和用法。
(1)STC89C52的引脚及功能
STC89C52的外观及引脚图如下图2所示:
图2STC89C52引脚图
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位驱动8个TTL逻辑电平。
对PO口端口写“1”时,引脚作高阻抗输入。
当访问外部程序和数据存储时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0口具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;
在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,与P1口相同。
P3口:
与P2口相同。
ALE/PROG—当访问外部程序储器时,ALE输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/16输出固定的脉冲信号,因些它可对外输出时钟或用于定时目的。
PSEN—程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序储器器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP—外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH)EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
(2)SED1520液晶显示器
SED1520液晶显示驱动器是一种点阵图形式液晶显示驱动器,它可直接与8位微处理器相连,集行、列驱动器于一体,因此使用起来十分方便,作为内藏式控制器被广泛应用于点阵数较少的液晶显示模块。
SED1520液晶显示器的特性有
(1)内部显示RAM容量为2560b。
其每一位数据控制液晶屏上一点的亮灭状态。
“1”表示亮,“0”表示暗;
(2)具有16个行驱动输出和61个列驱动输出;
(3)可直接与80系列微处理器相连,亦可直接与68系列微处理器相连;
(4)驱动占空比为1/16或1/32;
(5)可以与SED1520级联使用,以便扩展行、列驱动能力。
序号符号状态功能:
1.Vcc---逻辑电源正,9.DB0三态数据总线(最低位),
2.GND---逻辑电源地,10.DB1三态数据总线,
3.V0---液晶显示驱动电源,11.DB2三态数据总线,
4.RES---复位,12.DB3三态数据总线,
5.E1输入主工作方式IC的使用信号,13.DB4三态数据总线,
6.E2输入从工作方式IC的使用信号,14.DB5三态数据总线,
7.R/W输入读/写选择信号,15.DB6三态数据总线,
8.A0输入寄存器选择信号,16.DB7三态数据总线(最高位)
SED1520控制指令
要使内置SED1520图形液晶显示模块还需要了解其软件特性,即SED1520的指令功能。
SED1520指令一览表如下表1所示:
表1SED1520控制指令
指令名称
控制信号
控制代码
A0R/W
D7D6D5D4D3D2D1D0
复位
00
11100010
显示开关设置
1010111DI
地址排序设置
1010000A
休闲状态设置
1010010S
占空比设置
1010100DU
显示起始行设置
110L4L3L2L1L0
页面地址设置
101110P1P2
列地址设置
0C6C5C4C3C2C1C0
启动改写方式
11100000
结束改写方式
11101110
读取状态字
01
BUSYADCON/OFFRESET0000
写显示数据
10
数据
读显示数据
11
SED1520的13条指令从作用上可以分为两大类:
一类为显示方式的设置指令,前六条指令为这一类指令,它们只需在初始化程序中写入一次就可以了。
另一类为显示数据读/写操作的指令,从第七条往下(包括状态字)都是这类指令,它们需要经常地使用。
3.3程序设计部分
程序开始运行后,要对液晶显示进行初始化,初始化后清屏,为输出数据准备。
然后调用显示程序,在显示屏上显示数据。
如果有按键的话,程序会进行相应的处理,如此循环。
主程序框图如下图3所示:
图3主程序流程图
下面将详细描述各块程序:
(1)初始化程序
初始化主要是完成对于SED1520控制器的设置,由于采用C51语言进行编程,使得初始化十分简捷,只需调用初始化程序分别对两块SED1520液晶进行复位、关休闲,进入正常工作状态、占空比选择1/32、adc选择、设置起始行、开显示、清屏等操作。
在液晶显示信息之前,必须先对液晶进行初始化。
初始化的流程如图4所示
图4初始化程序流程图
程序如下:
INIT:
MOVCOM,#0E2H;
LCALLPR0
LCALLPR3
MOVCOM,#0A4H;
关闭休闭状态
MOVCOM,#0A9H;
设置1/32占空比
MOVCOM,#0A0H;
正向排序设置
MOVCOM,#0C0H;
设置显示起始行为第一行
MOVCOM,#0AFH;
开显示设置
RET
(2)清屏程序
CLEAR:
MOVR4,#00H;
页面地址暂存器设置
CLEAR1:
MOVA,R4;
取页地址值
ORLA,#0B8H;
"
或"
页面地址设置代码
MOVCOM,A;
MOVCOM,#00H;
列地址设置为"
0"
MOVR3,#50H;
一页清80个字节
CLEAR2:
MOVDAT,#00H;
显示数据为"
LCALLPR1
LCALLPR4
DJNZR3,CLEAR2;
页内字节清零循环
INCR4
CJNER4,#04H,CLEAR1;
RAM区清零循环
PR0:
CLRA0;
AO=0
SETBR_W;
R_W=1
PR01:
MOVP1,#0FFH;
P1口置"
1"
SETBE1;
E1=1
MOVA,P1;
读状态字
CLRE1;
E1=0
JBACC.7,PR01;
判"
忙"
标志为"
,否再读
CLRR_W;
R_W=0
MOVP1,COM;
写指令代码
RET
(2)显示程序
如下图5所示,程序运行至中文显示程序时,会在中文字库中查找字符码并计算字模地址。
然后设置显示屏的页地址。
在计算一列的位置后,程序依次从字库中调出一列字模的数据输出到显示屏上,直到这一页写完为止。
写完一页后,程序会调用换屏程序。
换屏程序进行清屏,然后继续依次调一列字模数据输出到显示屏上,直到写完这一页。
程序可以不停运行,可以调用延时来控制。
图5显示程序流程图
比如要显示一个“曾”字。
它的字库是:
db00h,00h,0F0h,11h,52h,14h,10h,0F0h;
曾
db10h,14h,52h,11h,0F8h,10h,00h,00h
db00h,00h,01h,01h,0FDh,55h,55h,55h
db55h,55h,0FFh,05h,01h,00h,00h,00h
要在液晶屏上显示出来,要执行下面的程序:
AAA:
MOVA,#0D8H;
显示起始行为第16行
MOVCOM,A;
COM是指令寄存器通过COM写指令
LCALLPR0;
调用写指令代码子程序
LCALLPR1;
调用写数据子程序
MOVCTEMP,#0;
列初值
MOVPAGE_,#01H;
页面是第一页
MOVA,CTEMP;
设置这个字要从哪一列显示,这里是从00H就是0列
ADDA,#00H
MOVCOLUMN,A
MOVCODE_,#00H;
CODE是字符代码寄存器,写入要显示字符的位置,00H是第0个字符,也就是首字符
LCALLCCW_PR;
调用中文显示子程序;
;
-------------中文显示子程序
CCW_PR:
MOVDPTR,#CCTAB;
确定字符字模块首地址
MOVA,CODE_;
取代码
MOVB,#20H;
字模块宽度为32个字节
MULAB;
代码×
32
ADDA,DPL;
字符字模块首地址
MOVDPL,A;
=字模库首地址+代码×
MOVA,B
ADDCA,DPH
MOVDPH,A
PUSHCOLUMN;
列地址入栈
MOVCODE_,#00H;
代码寄存器借用为间址寄存器
CCW_1:
MOV
COUNT,#10H;
计数器设置为16
MOVA,PAGE_;
读页地址寄存器
ANLA,#03H
ORLA,#0B8H;
”或”页地址设置代码
MOVCOM,A;
写页地址设置指令
LCALLPR0
LCALLPR3
POPCOLUMN;
取到地址值
MOVA,COLUMN;
读列地址寄存器
CLRC
SUBBA,#PD1;
列地址减模块参数
JCCCW_2;
<0为左半屏显示区域(E1)
MOVCOLUMN,A;
≥0为右半屏显示区域(E2)
MOVA,PAGE_
SETBACC.3;
设置区域标志位。
MOVPAGE_,A;
”0”为E1,”1”为E2
CCW_2:
MOVCOM,COLUMN;
设置列地址值
判区域标志以确定设置哪个控制器
JNBACC.3,CCW_3
LCALLPR3;
区域E2
LJMPCCW_4
CCW_3:
LCALLPR0;
区域E1
CCW_4:
MOVA,CODE_;
取间址寄存器值
MOVCA,@A+DPTR;
取汉字字模数据
MOVDAT,A;
写数据
JNBACC.3,CCW_5
LCALLPR4;
LJMPCCW_6
CCW_5:
LCALLPR1;
CCW_6:
INCCODE_;
间址寄存器加一
INCCOLUMN;
列地址寄存器加一
判列地址是否超出区域范围
CJNEA,#PD1,CCW_7
CCW_7:
JCCCW_8;
未超出则继续
超出则判是否在区域E2
JBACC.3,CCW_8;
在区域E2则退出
在区域E1则修改成区域E2
MOVPAGE_,A
MOVCOM,#00H;
设置区域E2列地址为”0”
CCW_8:
DJNZCOUNT,CCW_4;
当页循环
JBACC.7,CCW_9;
判完成标志D7位,”1”则完成退出
INCA;
否则页地址加一
SETBACC.7;
置完成位为”1”
CLRACC.3
MOVCODE_,#10H;
间址寄存器设置为16
LJMPCCW_1;
大循环
CCW_9:
执行完着一段后,整个“曾”字就显示出来了。
3.4实验调试与问题
这次课程设计主要是用STC89C52单片机控制由两块SED1520集成块组合成的12232点阵液晶显示器。
调试过程中由于接线一些接触不良和串口线的问题花费了我们很多的时间,发现问题出在驱动上后,我们及时更换了一个新的串口线,然后改良了接线稳定性的问题,液晶上终于出现了显示结果。
此次系统的设计与制作工作已经全部完成,基本达到了预期的目的与要求。
但是在系统的调试方面还不够健全。
汉字的动态显示、显示内容的实时更新等方面做得不够好,但是由于时间仓促、条件有限,设计结果并不是很好,诸如:
显示内容单一,亮度不够、动态显示效果不明显等问题。
4.总结
通过这次对课程设计,让我们了解了单片机液晶显示的原理与设计方法。
要设计好首先要查阅相关资料,只有弄清楚了原理才能顺利的设计出来。
通过这次学习让我了解了只有自己动手才实际操作会有深刻理解。
在这次试验中发现了一个问题,那就是程序的设计一定要细心,耐心。
这两点是很重要的。
在调试过程中,任何小问题都可能导致错误,所以我们必须一点一点细心检查,这就需要我们有足够的耐心。
自己觉得这次课程设计十分的有意义。
我们在课堂上掌握的仅仅是专业基础课的理论面而只有通过类似的课程才能将理论与现实结合起来,加深我们对理论的而理解,而且能使我们更灵活的在实际中运用它。
这门课程为我们提供了良好的实践平台。
在做本次实验中,我查阅了很多书籍,也给了我很大收获,发现在学习过程中带着问题去学习的效率很高,边学边思考这样学习效率才会高。
这次课程设计顺利完成是得到了老师和同学的帮助,在此,我要真诚的感谢老师和同学们。
希望以后还能有这样的机会进行深入的学习
参考文献
[1]胡汉才﹒单片机原理及接口技术﹒北京:
清华大学出版社,1996
[2]卢艳军﹒单片机基本原理及应用系统﹒北京:
机械工业出版社,2005
[3]陈宝江﹒MCS单片机应用系统指南﹒北京:
机械工业出版社,1997
[4]张毅刚等﹒MCS-51单片机应用设计﹒哈尔滨:
哈尔滨工业大学出版社,1997.12
[5]高海生等﹒单片机应用技术大全.西安﹒西安交通大学出版社,1991.12
课程设计成绩:
项目
业务考核成绩(70%)
(百分制记分)
平时成绩(30%)
综合总成绩
注:
教师按学生实际成绩(平时成绩和业务考核成绩)登记并录入教务MIS系统,由系统自动转化为“优秀(90~100分)、良好(80~89分)、中等(70~79分)、及格(60~69分)和不及格(60分以下)”五等。
指导教师评语:
指导教师(签名):
2011年月日