LCD显示设计Word格式.docx

上传人:b****5 文档编号:21645434 上传时间:2023-01-31 格式:DOCX 页数:19 大小:176.57KB
下载 相关 举报
LCD显示设计Word格式.docx_第1页
第1页 / 共19页
LCD显示设计Word格式.docx_第2页
第2页 / 共19页
LCD显示设计Word格式.docx_第3页
第3页 / 共19页
LCD显示设计Word格式.docx_第4页
第4页 / 共19页
LCD显示设计Word格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

LCD显示设计Word格式.docx

《LCD显示设计Word格式.docx》由会员分享,可在线阅读,更多相关《LCD显示设计Word格式.docx(19页珍藏版)》请在冰豆网上搜索。

LCD显示设计Word格式.docx

4、提交字数不低于2000字的设计说明书一份。

五、进程安排

时间

课程设计内容

学时

分配

第一周周一

第一周周二上午

下达设计任务;

查阅资料,理解参考程序

1.5天

第一周周二下午

第二周周三

进单片机实验室,理解硬件、编写程序,修改完善,达到设计要求

6.5天

第二周周四

第二周周五

作品演示、撰写设计说明书、

提交说明书并进行答辩

(单片机实验室)

2天

合计

10天

六、主要参考资料

[1]李广弟.单片机基础.北京:

北京航空航天大学,2009.

[2]李群芳.微型计算机与接口技术.北京:

电子工业出版社,2012.

[3]单片机综合仿真实验系统KeilC实验指导书.深圳:

深圳市雷迈特科技有限公司,2012.

[4]沈庆阳.8051单片机实践与应用.机电一体化系统设计.北京:

化学工业出版社,2009.

[5]朱定华.单片微机原理与应用.北京:

清华大学出版社,2006.

指导教师(签名):

2015年6月20日

目录

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

2.课程设计题目及要求…………………………………………………………2

2.1课程设计题目………………………………………………………………………2

2.2课程设计要求……………………………………………………………2

3.课程设计主要内容……………………………………………………………33.1LCD显示原理………………………………………………………………3

3.2LCD显示电路……………………………………………………………3

3.3LCD引脚说明………………………………………………………4

3.4SED1520的基本原理………………………………………………………4

3.5SED1520的13条指令………………………………………………………6

3.6LCD与单片机的连接………………………………………………………6

3.7汉字字模的获取……………………………………………………………………7

3.8课程设计程序流程………………………………………………………………8

3.8.1显示子程序…………………………………………………8

3.8.2初始化程序………………………………………………………………8

3.8.3显示程序…………………………………………………………………………9

3.8.4清屏子程序………………………………………………………………………9

3.9课程设计具体程序………………………………………………………………10

3.9.1翻屏…………………………………………………………………………10

4.课程设计总结………………………………………………………………………16

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

1.课程设计目的

随着科技的高速发展,液晶显示设备越来越多,各种各样的液晶显示产品走进我们生活中。

为了进一步巩固学习的理论知识,增强我们对所学知识的实际应用能力和运用所知识解决实际问题的能力,开始为期两周的单片机课程设计。

单片机课程设计的目的是培养我们综合设计的能力,训练我们灵活运用所学知识,独立完成问题分析、总体设计和编程实现等软件开发过程的综合实践能力,巩固深化学生的理论知识,提高编程水平,并在此过程中培养我们严谨的科学态度和良好的学习作风。

为今后其他计算机课程打下基础。

按照教学计划的要求,利用二周时间,综合应用所学知识,设计具有一定功能的LCD显示,培养我们一定的自学能力和独立分析问题、解决问题的能力,要求我们能通过独立思考、查阅工具书、参考文献,提出自己的设计方案。

2.课程设计题目及要求

2.1课程设计题目

2.2课程设计要求

了解122×

32A点阵式LCD液晶显示的结构、工作原理、编程方法;

编写一个完整的程序,按要求在LCD上显示内容。

具体显示效果为:

(1)显示汉字:

华中科技大学武昌分校自己的姓名。

(2)实现显示内容的翻屏功能。

拓展:

实现显示内容的滚动功能。

3.课程设计主要内容

3.1LCD显示原理

液晶是一呈液体状的化学物质,像磁场中的金属一样,当受到外界电场影响时,其分子会产生精确的有序排列。

3.2LCD显示电路

采用122×

32A点阵式LCD液晶显示模块,内置SED1520液晶显示控制器。

LCD显示电路如图3-1所示。

图3-1LCD显示电路

图3-2LCD显示屏

3.3LCD引脚说明

序号

符号

电平

功能

1

GND

0v

逻辑电源地

2

Vcc

5v

逻辑电源正

3

V0

可调

液晶显示驱动电源

4

A0

H/L

H:

数据L:

指令

5

R/W

H:

读L:

6

E1

H,H→L

主工作方式IC的使用信号

7

E2

从工作方式IC的使用信号

8

NC

未用

9

DB0

数据总线(最低位)0

10

DB1

数据总线1

11

DB2

数据总线2

12

DB3

数据总线3

13

DB4

数据总线4

14

DB5

数据总线5

15

DB6

数据总线6

16

DB7

数据总线(最高位)7

3.4SED1520的基本原理

SED为内置液晶显示器控制器,集行、列驱动器和控制器与一体,广泛应用于小型液晶显示模块中,内置2560位显示RAM区(32行80列),RAM中的1位数据控制液晶屏上一个像素的亮暗,“1”为亮,“0”为暗。

(1)1-61列为左半屏;

62-122为右半屏。

(2)每半屏页数分配一致。

(3)每页含8行80列(80个字节)。

(前61列有效)

(4)每半屏为32行,共4页。

(5)每个汉字占16行,即用2页才能写完。

(6)液晶屏上最多能显示两行汉字(静态时最多显示16字)。

图3-3SED液晶显示控制器

3.5SED1520的13条指令

表1

指令名称

控制信号

控制代码

A0R/W

D7D6D5D4D3D2D1D0

复位

00

11100010

显示开关设置

10101110/1

地址排序设置

10100000

体闲状态设置

10100100

占空比设置

10101000

起始行设置

110L4L3L2L1L0

页面地址设置

101110P1P0

列地址设置

0C6C5C4C3C2C1C0

启动改写方式

11100000

结束改写方式

11101110

读取状态字

01

BUSYADCON/OFFRESET0000

写显示数据

10

数据

读显示数据

11

3.6LCD与单片机的连接

单片机与LCD模块之间有四种基本操作:

写命令:

R/W接低电平即A7为0

读状态:

R/W接高电平即A7为1

写显示数据:

A0接高电平

读显示数据:

A0接低电平

表3-4E1和E2的四个地址

写指令代码地址

FA00H

F800H

读状态地址

FA80H

F880H

写显示数据地址

FA40H

F840H

读显示数据地址

FACOH

F8C0H

图3-5单片机与LCD连接电路

3.7汉字字模的获取

(1)打开字模软件

(2)在“取模方式”中选择“纵向8点下高位”

(3)点击“参数确认”

(4)输入字串

(5)得到字模代码

(6)粘贴到程序中即可

图3-6字模获取示意图

3.8课程设计程序流程

3.8.1显示子程序

程序流程为“开始”→“确定字符字模块首地址”→“取代”→“计算字符字模块首地址”→“取间址寄存器”→“取汉字字模数”→“写数据”。

图3-7显示子程序流程图

3.8.2初始化程序

写初始化程序时,要根据SED1520的13条指令得到控制代码。

程序流程为“开始”→“分别置COM=0E2H,复位;

COM=0E2H,关闭空闲状态;

COM=0A4H,设置占空比;

COM=0A9H,正向排序;

COM=0A0H,设置显示起始行;

COM=0C0H,开显示设置”→“调用E1写指令代码子程序”→“调用E2写指令代码子程序”。

图3-8初始化程序流程图

3.8.3显示程序

显示主程序流程为:

“调用LCD初始化子程序”→“调用LCD清屏子程序”→“设置页地址=03H,列地址=30H,字符代码寄存器”→“调用显示‘陈’字子程序”→“设置页地址=03H,列地址=40H,字符代码寄存器”→“用显示‘泽’字子程序”。

图3-9显示主程序流程图

3.8.4清屏幕子程序

清屏幕子程序流程为“开始”→“页面地址0,列地址0”→“显示数据为0”→“判断一页是否满80个字节,否,跳转到‘显示数据为0’,是,顺序执行”→

“页面地址加1”→“判断是否满4页,否,跳转到‘显示数据为0’,是,顺序执行”→“结束”。

图3-10清屏幕子程序流程图

3.9课程设计具体程序

3.9.1翻屏

在第一页显示“武昌首义学院郑明亮”。

在第二页显示“电气工程及自动化”。

程序如下:

#include<

reg51.h>

absacc.h>

intrins.h>

#definePD161/*122/2分成左右两半屏(122x32)*/

unsignedcharColumn;

unsignedcharPage_;

/*页地址寄存器D1,DO:

页地址*/

unsignedcharCode_;

/*字符代码寄存器*/

unsignedcharCommand;

/*指令寄存器*/

unsignedcharLCDData;

/*数据寄存器*/

#defineCWADD1XBYTE[0xfa00]/*写指令代码地址(E1)*/

#defineDWADD1XBYTE[0xfa40]/*写显示数据地址(E1)*/

#defineCRADD1XBYTE[0xfa80]/*读状态字地址(E1)*/

#defineDRADD1XBYTE[0xfac0]/*读显示数据地址(E1)*/

#defineCWADD2XBYTE[0xf800]///*写指令代码地址(E//2

#defineDWADD2XBYTE[0xf840]///*写显示数进地址(E

#defineCRADD2XBYTE[0xf880]///*读状态字地址(E2

#defineDRADD2XBYTE[0xf8c0]///*读显示数据地址(E2

#define_Nop()_nop_();

_nop_();

_nop_()

/*中文字模库16x16点阵*/

unsignedcharcodeCCTAB[][32]={

/*点阵:

16x16

提取点阵方向:

纵向

字节掉转:

字节方式:

C语言*/

0x20,0x20,0x24,0x24,0x24,0xE4,0x26,0x24,

0x20,0xFF,0x20,0x22,0x2C,0x20,0x20,0x00,

0x20,0x60,0x3F,0x20,0x20,0x1F,0x11,0x11,

0x10,0x03,0x1C,0x20,0x40,0x80,0xE0,0x00,//

0x00,0x00,0x00,0x7F,0x49,0x49,0x49,0x49,

0x49,0x49,0x49,0x7F,0x00,0x00,0x00,0x00,

0x00,0x00,0xFF,0x49,0x49,0x49,0x49,0x49,

0x49,0x49,0x49,0x49,0xFF,0x00,0x00,0x00,//

0x04,0x04,0x04,0xE4,0x25,0x36,0x2C,0x24,

0x24,0x26,0x25,0xF4,0x24,0x04,0x04,0x00,

0x00,0x00,0x00,0xFF,0x49,0x49,0x49,0x49,

0x49,0x49,0x49,0xFF,0x00,0x00,0x00,0x00,//

0x40,0x44,0x54,0x54,0x55,0x56,0x54,0x7C,

0x54,0xD6,0x55,0xD4,0x54,0x44,0x40,0x00,

0x40,0x44,0x25,0x25,0x95,0x7F,0x0D,0x05,

0x84,0x5F,0x24,0x54,0x8D,0x84,0xC4,0x00,//

0x00,0xC0,0x7F,0x55,0x55,0x40,0x55,0x4A,

0x55,0x40,0x55,0x55,0x7F,0x40,0xC0,0x00,

0x09,0x08,0x08,0x09,0x09,0x49,0x89,0x7D,

0x0D,0x0B,0x09,0x08,0x08,0x09,0x08,0x00,//

0x00,0xFE,0x22,0x5A,0x86,0x0C,0x24,0x24,

0x25,0x26,0x24,0x24,0xA4,0x14,0x0C,0x00,

0x00,0xFF,0x04,0x08,0x87,0x81,0x41,0x31,

0x0F,0x01,0x7F,0x81,0x81,0x81,0xF0,0x00,//

0x00,0xFE,0x22,0x5A,0x86,0x00,0xF4,0x54,

0x54,0xFF,0x54,0x54,0x54,0xF4,0x00,0x00,

0x00,0xFF,0x04,0x08,0x27,0x10,0x09,0x05,

0x01,0xFF,0x01,0x05,0x09,0x31,0x10,0x00,//

0x10,0x21,0x62,0x06,0x80,0xAE,0xAA,0xAE,

0xAA,0xFA,0xAE,0xAA,0xAA,0x8E,0x00,0x00,

0x04,0x04,0xFE,0x01,0x10,0x14,0x15,0x16,

0x14,0xFC,0x16,0x15,0x14,0x10,0x10,0x00,//

0x00,0x00,0xF8,0xF0,0x90,0x90,0x90,0xFF,

0xFE,0x90,0x90,0x90,0xF0,0xF8,0x10,0x00,

0x00,0x00,0x0F,0x07,0x04,0x04,0x04,0x7F,

0xFF,0xC4,0xC4,0xC4,0xCF,0xC7,0xF0,0x40,//

0x00,0x40,0x20,0x70,0x5C,0x4F,0x56,0x54,

0x54,0x54,0xD4,0xFC,0x56,0x04,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x0F,0x3F,0x60,0xC0,0xF0,0x40,//

0x00,0x00,0x04,0x04,0x04,0x04,0x04,0xFC,

0xFC,0x04,0x04,0x04,0x06,0x04,0x00,0x00,

0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x7F,

0x7F,0x40,0x40,0x40,0x40,0x60,0x40,0x00,//

0x00,0x20,0x22,0xE2,0xFE,0xFF,0xA3,0x22,

0x3F,0x9E,0x92,0x92,0x92,0xBE,0x9F,0x02,

0x00,0x08,0x07,0x01,0xFF,0xFF,0x01,0x03,

0x80,0x84,0x84,0xFF,0xFF,0x84,0xC4,0x80,//

0x00,0x00,0x00,0x02,0x82,0xFE,0xFE,0x02,

0x42,0x62,0x72,0x5E,0xCF,0xE2,0x40,0x00,

0x00,0x80,0x60,0x3C,0x8F,0x83,0x40,0x61,

0x36,0x1C,0x18,0x3E,0x67,0xE1,0xC0,0x40,//

0x00,0x00,0x00,0xFC,0xF8,0x88,0x8C,0x8F,

0x8A,0x88,0x88,0x88,0xF8,0xFC,0x08,0x00,

0x00,0x00,0x00,0xFF,0x7F,0x44,0x44,0x44,

0x44,0x44,0x44,0x44,0xFF,0x7F,0x00,0x00,//

0x00,0x40,0x44,0x44,0xC4,0xC4,0x46,0x64,

0x50,0x10,0xFF,0xFE,0x10,0xF0,0xF8,0x10,

0x00,0x08,0x1C,0x1F,0x0B,0x08,0x9E,0x6C,

0x30,0x1C,0x0F,0x43,0xC0,0x7F,0x3F,0x00,//

0x00,0x00,0x80,0xE0,0xF8,0xFE,0x07,0x02,

0x00,0xFF,0xFE,0x82,0xE0,0x7C,0x18,0x00,

0x00,0x02,0x01,0x00,0xFF,0x7F,0x00,0x10,

0x0C,0x7F,0xFF,0xC1,0xC0,0xC0,0xF8,0x60//

};

//汉字表:

//武昌首义学院郑明亮

//电气工程及自动化

voidWriteCommandE1()/*1.写指令代码子程序(E1)*/

{//while(IN(CRADD1)&

0x80);

//实际的液晶操作中可以不判断是否忙

CWADD1=Command;

Nop();

}

voidWriteDataE1()/*2.写显示数据子程序(E1)*/

DWADD1=LCDData;

voidWriteCommandE2()/*4.写指令代码子程序(E2)*/

{//while(IN(CRADD2)&

CWADD2=Command;

_Nop();

voidWriteDataE2()/*5.写显示数据子程序(E2)*/

DWADD2=LCDData;

/*初始化程序*/

voidInit(){

Command=0xe2;

WriteCommandE1();

WriteCommandE2();

Command=0xa4;

Command=0xa9;

Command=0xa0;

Command=0xc0;

Command=0xaf;

/*清屏*/

voidClear(){unsignedchari,j;

i=0;

do{

Command=(i+0xb8);

/*页地址设置*/

Command=0x00;

/*列地址设置为"

0"

*/

j=0x50;

/*一页清80个字节*/

do{LCDData=0x00;

/*显示数据为"

WriteDataE1();

WriteDataE2();

while(--j!

=0);

/*页内字节清零循环*/}

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

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1