液晶显示设计与实现.docx

上传人:b****2 文档编号:1963655 上传时间:2023-05-02 格式:DOCX 页数:18 大小:141.51KB
下载 相关 举报
液晶显示设计与实现.docx_第1页
第1页 / 共18页
液晶显示设计与实现.docx_第2页
第2页 / 共18页
液晶显示设计与实现.docx_第3页
第3页 / 共18页
液晶显示设计与实现.docx_第4页
第4页 / 共18页
液晶显示设计与实现.docx_第5页
第5页 / 共18页
液晶显示设计与实现.docx_第6页
第6页 / 共18页
液晶显示设计与实现.docx_第7页
第7页 / 共18页
液晶显示设计与实现.docx_第8页
第8页 / 共18页
液晶显示设计与实现.docx_第9页
第9页 / 共18页
液晶显示设计与实现.docx_第10页
第10页 / 共18页
液晶显示设计与实现.docx_第11页
第11页 / 共18页
液晶显示设计与实现.docx_第12页
第12页 / 共18页
液晶显示设计与实现.docx_第13页
第13页 / 共18页
液晶显示设计与实现.docx_第14页
第14页 / 共18页
液晶显示设计与实现.docx_第15页
第15页 / 共18页
液晶显示设计与实现.docx_第16页
第16页 / 共18页
液晶显示设计与实现.docx_第17页
第17页 / 共18页
液晶显示设计与实现.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

液晶显示设计与实现.docx

《液晶显示设计与实现.docx》由会员分享,可在线阅读,更多相关《液晶显示设计与实现.docx(18页珍藏版)》请在冰点文库上搜索。

液晶显示设计与实现.docx

液晶显示设计与实现

1.课程设计目的…………………………………………………………………3

2.课程设计题目描述和要求……………………………………………3

3.课程设计报告内容……………………………………………………………3

3.1元器件选型及总体设计方案描述…………………………………………4

3.2硬件连接设计部分…………………………………………………………5

3.3程序设计部分………………………………………………………………9

3.4实验调试与问题……………………………………………………………16

4.总结……………………………………………………………………………16

参考文献…………………………………………………………………………17

1.课程设计的目的

掌握单片机应用开发全套基本技能,明确单片机应用开发中的要点与难点,掌握电气工程领域的自动化/智能化控制手段(工具),训练技能。

 

2.课程设计题目描述和要求

2.1课程设计题目描述

液晶显示设计与实现:

要求自制单片机小系统板(或在单片机小系统开发板上),选定具体一款液晶,在液晶上实现显示任意中文、英文、数字或图形;或进一步实现滚屏,翻屏,闪烁,黑白反显,汉字倒转等功能。

2.2课程设计要求

(1)根据课题设计内容进行元器件选型、列出元器件清单、自行购买、硬

件电路制作与调试(硬件需带串口下载功能),并且使用Protell软件绘制电路

原理图;

(2)掌握Keil或HK-51开发仿真系统,进行软件编程与调试;

(3)软件编程选择Asm或C51语言均可,要求绘制程序流程图,对所编写的软件进行相应的注释;

(4)程序调试成功后,要求烧录(固化)到程序存储器中;

(5)完成作品并进行功能验收,完成课程设计说明书(列出元器件清单、Protell软件绘制电路原理

 

3.课程设计报告内容

3.1元器件选型及总体设计方案描述

(1)元器件选型:

武汉恒科电子教仪MCS-51仿真实验开发板;

STC89C52单片机

RT12232液晶显示器

(2)总体设计方案描述

本实验系统分为单片机最小系统板和液晶显示两部分。

单片机最小系统负责接收个人计算机所编辑的文本及内容,通过串行接口完成单片机与PC机之间的数据传送,而个人计算机,主要完成显示内容编辑、字模数据的查找、显示程序的发送(烧写)等工作。

文本编编辑软件有多种,本次试验我们选用的是集编辑、编译、纠错等多种功能于一体的KeilC。

我们先将要显示的内容(包括汉字、中英文字母等)编辑成一个文本文件,然后通过已经编写好的应用程序在特定的字库中依次搜索到文本文件中的内容,并且取出该字符的字模数据。

整个程序建立好后通过编译就可以生成一个可烧录的hex文件存放在PC机的硬盘上,等到需要的时候通过串行通信软件将该可烧录文件烧入给液晶显示系统模块的单片机中。

因此在单片机的选择上我们选用了STC89C52。

显示系统模块上电后,单片机小系统就会按照所编辑的固定一步步运行。

在其控制下使液晶不断接收需要显示字符的字模数据。

在液晶显示屏上显示出内容。

由于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

显示开关设置

00

1010111DI

地址排序设置

00

1010000A

休闲状态设置

00

1010010S

占空比设置

00

1010100DU

显示起始行设置

00

110L4L3L2L1L0

页面地址设置

00

101110P1P2

列地址设置

00

0C6C5C4C3C2C1C0

启动改写方式

00

11100000

结束改写方式

00

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;关闭休闭状态

LCALLPR0

LCALLPR3

MOVCOM,#0A9H;设置1/32占空比

LCALLPR0

LCALLPR3

MOVCOM,#0A0H;正向排序设置

LCALLPR0

LCALLPR3

MOVCOM,#0C0H;设置显示起始行为第一行

LCALLPR0

LCALLPR3

MOVCOM,#0AFH;开显示设置

LCALLPR0

LCALLPR3

RET

 

(2)清屏程序

CLEAR:

MOVR4,#00H;页面地址暂存器设置

CLEAR1:

MOVA,R4;取页地址值

ORLA,#0B8H;"或"页面地址设置代码

MOVCOM,A;页面地址设置

LCALLPR0

LCALLPR3

MOVCOM,#00H;列地址设置为"0"

LCALLPR0

LCALLPR3

MOVR3,#50H;一页清80个字节

CLEAR2:

MOVDAT,#00H;显示数据为"0"

LCALLPR1

LCALLPR4

DJNZR3,CLEAR2;页内字节清零循环

INCR4

CJNER4,#04H,CLEAR1;RAM区清零循环

RET

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;判"忙"标志为"0",否再读

CLRR_W;R_W=0

MOVP1,COM;写指令代码

SETBE1;E1=1

CLRE1;E1=0

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;=字模库首地址+代码×32

MOVA,B

ADDCA,DPH

MOVDPH,A

PUSHCOLUMN;列地址入栈

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;设置列地址值

MOVA,PAGE_;判区域标志以确定设置哪个控制器

JNBACC.3,CCW_3

LCALLPR3;区域E2

LJMPCCW_4

CCW_3:

LCALLPR0;区域E1

CCW_4:

MOVA,CODE_;取间址寄存器值

MOVCA,@A+DPTR;取汉字字模数据

MOVDAT,A;写数据

MOVA,PAGE_

JNBACC.3,CCW_5

LCALLPR4;区域E2

LJMPCCW_6

CCW_5:

LCALLPR1;区域E1

CCW_6:

INCCODE_;间址寄存器加一

INCCOLUMN;列地址寄存器加一

MOVA,COLUMN;判列地址是否超出区域范围

CJNEA,#PD1,CCW_7

CCW_7:

JCCCW_8;未超出则继续

MOVA,PAGE_;超出则判是否在区域E2

JBACC.3,CCW_8;在区域E2则退出

SETBACC.3;在区域E1则修改成区域E2

MOVPAGE_,A

MOVCOM,#00H;设置区域E2列地址为”0”

LCALLPR3

CCW_8:

DJNZCOUNT,CCW_4;当页循环

MOVA,PAGE_;读页地址寄存器

JBACC.7,CCW_9;判完成标志D7位,”1”则完成退出

INCA;否则页地址加一

SETBACC.7;置完成位为”1”

CLRACC.3

MOVPAGE_,A

MOVCODE_,#10H;间址寄存器设置为16

LJMPCCW_1;大循环

CCW_9:

RET

执行完着一段后,整个“曾”字就显示出来了。

 

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年月日

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2