液晶显示课程设计.docx
- 文档编号:23413070
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:21
- 大小:157.90KB
液晶显示课程设计.docx
《液晶显示课程设计.docx》由会员分享,可在线阅读,更多相关《液晶显示课程设计.docx(21页珍藏版)》请在冰豆网上搜索。
液晶显示课程设计
液晶显示课程设计
专业:
班级:
姓名:
学号:
指导教师:
年月日
1.设计背景及内容……………………………………………………………3
1.1设计背景………………………………………………………………………3
1.2设计目的………………………………………………………………………3
1.3设计内容………………………………………………………………………3
2.设计方案…………………………………………………………3
2.1总体设计方案描述……………………………………………………………3
2.2设计要求………………………………………………………………………4
3.系统硬件设计……………………………………………………………………5
3.1STC89C52的引脚及功能………………………………………………………6
3.2SED1520液晶显示器……………………………………………………………7
3.3S1520控制指令…………………………………………………………………9
4.系统软件设计……………………………………………………………………14
5.总结……………………………………………………………………………16
参考文献…………………………………………………………………………17
1.设计背景及内容
1.1设计背景
液晶作为一种显示器件,以其特有的优势正广泛应用于仪器、仪表、电子设备等低功耗产品中。
以往的测控仪器的显示部分大都采用LED式液晶显示屏进行参数设定和结果显示,其显示信息量少、形式单一、人机交互性差、操作人员要求较高。
而液晶显示器(LCD)具有功耗低、体积小、质量轻、超薄和可编程驱动等其他显示方式无法比拟的优点,不仅可以显示数字、字符,还可以显示各种图形、曲线、及汉字,并且可实现屏幕上下左右滚动、动画、闪烁、文本特征显示等功能;人机界面更加友好,使用操作也更加灵活、方便,使其日益成为智能仪器仪表和测试设备的首选显示器件。
1.2设计目的
掌握单片机应用开发全套基本技能,明确单片机应用开发中的要点与难点,掌握电气工程领域的自动化/智能化控制手段(工具),训练技能。
1.3设计内容
液晶显示设计与实现:
要求自制单片机小系统板(或在单片机小系统开发板上),选定具体一款液晶,在液晶上实现显示任意中文、英文、数字或图形;或进一步实现滚屏,翻屏,闪烁,黑白反显,汉字倒转等功能。
设计要求:
编制程序,利用标准字库,在液晶上显示汉字。
2.设计方案
2.1总体设计方案描述
本实验系统分为单片机最小系统板和液晶显示两部分。
单片机最小系统负责接收个人计算机所编辑的文本及内容,通过串行接口完成单片机与PC机之间的数据传送,而个人计算机,主要完成显示内容编辑、字模数据的查找、显示程序的发送(烧写)等工作。
文本编编辑软件有多种,本次试验我们选用的是集编辑、编译、纠错等多种功能于一体的KeilC。
我们先将要显示的内容(包括汉字、中英文字母等)编辑成一个文本文件,然后通过已经编写好的应用程序在特定的字库中依次搜索到文本文件中的内容,并且取出该字符的字模数据。
整个程序建立好后通过编译就可以生成一个可烧录的hex文件存放在PC机的硬盘上,等到需要的时候通过串行通信软件将该可烧录文件烧入给液晶显示系统模块的单片机中。
因此在单片机的选择上我们选用了STC89C52。
显示系统模块上电后,单片机小系统就会按照所编辑的固定一步步运行。
在其控制下使液晶不断接收需要显示字符的字模数据。
在液晶显示屏上显示出内容。
由于12232比较常见,故本次原则RT12232的液晶显示器。
根椐设计题目要求选用的是STC89C52单片机芯片和内置控制器为RT12232的液晶显示屏,总体设计共分为3个模块:
将在PC机上编译的可执行程序烧录进单片机的串行烧录模块;储存程序以及处理程序的STC89C52芯片;显示效果的LCD液晶电路模块。
这3种模块协同工作,组成了整个显示系统。
在整个系统中,STC89C52单片机是最重要的核心部件,与其它模块一起协作,构成了整个显示系统。
而单片机与复位电路,晶振电路,三者一起构成了单片机最小系统,只有在复位电路,晶振电路相辅助的情况下,单片机才能构正常工作。
复位电路提供给单片机的复位引脚一个确定的信号,在单片机在死机,程序跑偏等情况下,可以通过复位电路使单片机恢复到初始状态重新开始工作。
在单片机正常运行时可以保证单片机不会误复位。
晶振电路提供给单片机一个固定的时钟频率。
保证整个单片机各单元间协调统一地运行。
串口烧录电路是单片机与PC机之间通信的桥梁。
通过烧录电路,用户可以将要显示的字符程序烧进单片机的Flash保存起来。
在脱离PC的状态下,给系统通电时,单片机就会自动运行,控制显示屏显示出在程序中设定好的字符。
2.2设计要求
(1)根据课题设计内容进行硬件电路调试(硬件需带串口下载功能);
(2)掌握Keil或HK-51开发仿真系统,进行软件编程与调试;
(3)软件编程选择Asm或C51语言均可,要求绘制程序流程图,对所编写的软件进行相应的注释;
(4)完成作品并进行功能验收,完成课程设计说明书(列出元器件清单);
3.系统硬件设计
12232液晶与STC89C52单片机电路连接图如下图1所示:
图1液晶与STC89C52单片机电路连接图
由上图可以看出,在本系统中只用到STC89C52单片机的P1口与P3口资源,系统采用最简单的直接访问方式,P1作为数据口向12232液晶传送待显示的图形符号字模数据,P3口的P3.4、P3.5、P3.6、P3.7分别独立由单片机控制。
来使液晶模块按指定要求正常工作。
液晶显示器RT12232由两片SED1520构成,下面将详细介绍STC89C52单片机和SED1520液晶的功能和用法。
3.1STC89C52的引脚及功能
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则执行内部程序存储器的指令。
3.2SED1520液晶显示器
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三态数据总线(最高位)
3.3SED1520控制指令
要使内置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.4电源模块
图3、电源电路
从USB接口获取+5V电源,用相应配套的USB线从电脑主机获取+5V直流电源,在电源模块中加有保护电路,即电路中有短路.
上拉电阻如图4所示。
图4上拉电阻
上拉电阻的功能:
电阻作用:
1.接电组就是为了防止输入端悬空
2.减弱外部电流对芯片产生的干扰
3.加大输出引脚的驱动能力
4.上拉和下拉、限流
5.改变电平的电位
6.在引脚悬空时有确定的状态
7.增加高电平输出时的驱动能力。
8.为OC门提供电流
4.系统软件设计
程序开始运行后,要对液晶显示进行初始化,初始化后清屏,为输出数据准备。
然后调用显示程序,在显示屏上显示数据。
如果有按键的话,程序会进行相应的处理,如此循环。
主程序框图如下图3所示:
图5主程序流程图
下面将详细描述各块程序:
4.1初始化程序
初始化主要是完成对于SED1520控制器的设置,由于采用C51语言进行编程,使得初始化十分简捷,只需调用初始化程序分别对两块SED1520液晶进行复位、关休闲,进入正常工作状态、占空比选择1/32、adc选择、设置起始行、开显示、清屏等操作。
在液晶显示信息之前,必须先对液晶进行初始化。
初始化的流程如图5所示
图6初始化程序流程图
4.2显示程序
如下图5所示,程序运行至中文显示程序时,会在中文字库中查找字符码并计算字模地址。
然后设置显示屏的页地址。
在计算一列的位置后,程序依次从字库中调出一列字模的数据输出到显示屏上,直到这一页写完为止。
写完一页后,程序会调用换屏程序。
换屏程序进行清屏,然后继续依次调一列字模数据输出到显示屏上,直到写完这一页。
程序可以不停运行,可以调用延时来控制。
图7显示程序流程图
4.3实验调试与问题
这次课程设计主要是用STC89C52单片机控制由两块SED1520集成块组合成的12232点阵液晶显示器。
调试过程中由于接线一些接触不良和串口线的问题花费了我们很多的时间,发现问题出在驱动上后,我们及时更换了一个新的串口线,然后改良了接线稳定性的问题,液晶上终于出现了显示结果。
此次系统的设计与制作工作已经全部完成,基本达到了预期的目的与要求。
但是在系统的调试方面还不够健全。
汉字的动态显示、显示内容的实时更新等方面做得不够好,但是由于时间仓促、条件有限,设计结果并不是很好,诸如:
显示内容单一,亮度不够、动态显示效果不明显等问题。
5总结
通过这次对课程设计,让我们了解了单片机液晶显示的原理与设计方法。
要设计好首先要查阅相关资料,只有弄清楚了原理才能顺利的设计出来。
通过这次学习让我了解了只有自己动手才实际操作会有深刻理解。
在这次试验中发现了一个问题,那就是程序的设计一定要细心,耐心。
这两点是很重要的。
在调试过程中,任何小问题都可能导致错误,所以我们必须一点一点细心检查,这就需要我们有足够的耐心。
自己觉得这次课程设计十分的有意义。
我们在课堂上掌握的仅仅是专业基础课的理论面而只有通过类似的课程才能将理论与现实结合起来,加深我们对理论的而理解,而且能使我们更灵活的在实际中运用它。
这门课程为我们提供了良好的实践平台。
在做本次实验中,我查阅了很多书籍,也给了我很大收获,发现在学习过程中带着问题去学习的效率很高,边学边思考这样学习效率才会高。
这次课程设计顺利完成是得到了老师和同学的帮助,在此,我要真诚的感谢老师和同学们。
希望以后还能有这样的机会进行深入的学习。
参考文献:
[1]尹耕钦,唐绪伟城市交通信号灯模拟控制系统,微计算机信息,2005.
[2]周立功,ARM嵌入式系统基础教程[M].北京:
北京航空航天大学出版社,2005.
[3]张立强,于伟.电路原理图与PCB板设计教程ProtelDXP[M].北京:
科学出版社,2005.
[4]王立权.机器人创新设计与制作[M].北京:
清华大学出版社,2007.
[5]杨靖.《用单片机控制的直流电机调速系统》,机床电路,2008.1.
[6]高国富,谢少荣,罗均.机器人传感器及其应用[M].北京:
化学工业出版社,2005.
[7]何勇,王生泽.光电传感器及其应用[M].北京:
化学工业出版社,2004.
[8]周立功.MagicARM2200-S教学实验开发平台实验指导[M].北京:
北京航空航天大学出版社,2005.
[9]郭天祥.新概念51单片机C语言教程[M].北京:
电子工业出版社,2008.
[10]张睿.AltiumDesigner6.0原理图与PCB设计[M].北京:
电子工业出版社,2007.
附录1:
程序清单
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
比如要显示一个“曾”字。
它的字库是:
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
执行完着一段后,整个“曾”字就显示出来了。
附录2:
元器件目录表
液晶显示课程设计元器件目录表3:
元器件清单
类型
型号
个数
单片机
STC89C52
1
晶振
12.00MHZ
1
电阻
8K
2
1K
8
磁片电容
30P
2
电解液电容
20F
1
滑动变阻器
20K
2
液晶显示屏
SED1520
2
按键
1
开关
1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 液晶显示 课程设计