LCD显示设计Word格式.docx
- 文档编号:21645434
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:19
- 大小:176.57KB
LCD显示设计Word格式.docx
《LCD显示设计Word格式.docx》由会员分享,可在线阅读,更多相关《LCD显示设计Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
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);
/*页内字节清零循环*/}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LCD 显示 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)