LCD显示设计单片机课程设计.doc

上传人:文库蛋蛋多 文档编号:4146562 上传时间:2023-04-07 格式:DOC 页数:51 大小:3.73MB
返回 下载 相关 举报
LCD显示设计单片机课程设计.doc_第1页
第1页 / 共51页
LCD显示设计单片机课程设计.doc_第2页
第2页 / 共51页
LCD显示设计单片机课程设计.doc_第3页
第3页 / 共51页
LCD显示设计单片机课程设计.doc_第4页
第4页 / 共51页
LCD显示设计单片机课程设计.doc_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《LCD显示设计单片机课程设计.doc》由会员分享,可在线阅读,更多相关《LCD显示设计单片机课程设计.doc(51页珍藏版)》请在三一办公上搜索。

1、单片机及控制系统课程设计报告题 目: LCD显示设计 院 (系): 机电与自动化学院 专业班级: 电气1203 学生姓名: 金保华 学 号: 20121131116 指导教师: 雷丹 2015年 6 月 23日至2015年 7 月 3日华中科技大学武昌分校制单片机及控制系统课程设计任务书一、设计题目LCD显示设计二、设计主要内容(1)了解12232A点阵式LCD液晶显示的结构、工作原理、编程方法;SED1250的特性、内部结构、各个管脚的功能,以及获取字模的方法;编写一个完整的程序,能在LCD上显示汉字。(2)显示汉字“专业、姓名”,并实现显示内容的翻屏功能。(扩展:实现滚屏功能)(3)按规范

2、撰写设计说明书,含硬件设计及软件设计。三、原始资料(1) LCD显示的原理 液晶是一呈液体状的化学物质,象磁场中的金属一样,当受到外界电场影响时,其分子会产生精确的有序排列。如果对分子的排列加以适当的控制,液晶分子将会允许光线穿越。无论是笔记本电脑还是桌面系统,采用的LCD显示屏都是由不同部分组成的分层结构。位于最后面的一层是由荧光物质组成的可以发射光线的背光层。背光层发出的光线在穿过第一层偏振过滤层之后进入包含成千上万水晶液滴的液晶层。液晶层中的水晶液滴都被包含在细小的单元格结构中,一个或多个单元格构成屏幕上的一个像素。当LCD中的电极产生电场时,液晶分子就会产生扭曲,从而将穿越其中的光线进

3、行有规则的折射,然后经过第二层过滤层的过滤在屏幕上显示出来。 (2) LCD显示电路采用12232A点阵式LCD液晶显示模块,内置SED1520液晶显示控制器,电路如图1所示。图1 LCD显示电路(3) LCD与单片机的连接(如图2)图2 LCD与单片机的连接图四、要求的设计成果1、根据控制要求,分析LCD显示系统的硬件结构;2、分析LCD引脚功能及地址分配;3、在单片机实验箱上按要求显示汉子并进行实时演示。 4、提交字数不低于2000字的设计说明书一份。五、进程安排时 间课程设计内容学时分配第一周周一至第一周周二上午下达设计任务;查阅资料,理解参考程序1.5天第一周周二下午至第二周周三进单片

4、机实验室,理解硬件、编写程序,修改完善,达到设计要求6.5天第二周周四至第二周周五作品演示、撰写设计说明书、提交设计说明书并进行答辩(单片机实验室)2天合计10天六、主要参考资料1 李广弟单片机基础北京:北京航空航天大学,20092 李群芳微型计算机与接口技术北京:电子工业出版社,20123 单片机综合仿真实验系统Keil C实验指导书深圳:深圳市雷迈特科技有限公司,20124 沈庆阳8051单片机实践与应用机电一体化系统设计北京:化学工业出版社,20095 朱定华单片微机原理与应用北京:清华大学出版社,2006指导教师(签名): 2015年6月20日目 录1 设计目的1 1.1 设计要求11

5、.2 设计目的12 设计描述13 课程设计报告内容13.1 实验器材13.2 LCD显示器基本原理23.3 SED1520基本原理43.4 液晶显示模块指令系统73.5 程序编写思路103.6 LED液晶显示程序133.7 扩展程序334 课程设计总结44参考文献44(要求:目录题头用三号黑体字居中书写,隔行书写目录内容。目录中各级题序及题标用小四号黑1课程设计目的1.1设计要求 了解12232A点阵式LCD液晶显示的结构、工作原理、 编程方法;SED1250的特性、内部结构、各个管脚的功能,以及获取字模的方法;编写一个完整的程序,按要求在LCD上显示内容。 具体显示效果为: (1)显示汉字:

6、专业 、姓名。 (2)实现显示内容的翻屏功能。 具体显示效果为: (1)显示汉字:专业 、姓名。 (2)实现显示内容的翻屏功能。 1.2设计目的 1熟练掌握HK-51系统仿真开发系统的应用。2加强单片机的综合运用能力、提高单片机的软件编程和调试能力,为以后的学习和工作打下良好基础。 3掌握的液晶的工作原理以及应用设计。4掌握小系统开发设计的流程以及设计思路。5经过编写、调试在液晶(LCD)延迟黑白反显自己的班级、姓名、学号。2 课程设计描述 点阵式LCD液晶显示,即在了解12232A的内部结构、工作原理、编程方法,SED1250的特性、内部结构、时序特性、各个管脚的功能,以及获取字模的方法后,

7、编写一个完整的程序用HK-51仿真系统运行后确保无误,并要在12232A液晶显示屏上显示所要求显示的内容。3 课程设计报告内容3.1所需器材 1 超想-3000TB综合实验仪 1台 2 计算机1台 3 点阵式LCD在12232A液晶显示器1台3.2 LCD显示器基本原理3.2.1 所选的12232A液晶显示器类型表3.1 液晶显示器类型图3.2.2 12232A液晶显示器模块原理图 MGLS12232结构与他们基本相同,因考虑微型结构,采用了SED1520DAA或兼容型控制器,所以其时钟信号需由外部结构提供(频率为2KHz),而且为122*32点阵,两个SED1520都用了61个列驱动口(SE

8、G0-SEG60)。图3.1 模块原理图 由图可以看出,SED1520(1)为主要工作方式,OSC1和OSC2跨接一个电阻,并由OSC2输出时序信号;SED1520(2)为主要工作方式,时钟由SED1520FOA(1)提供,从OSC2输入。两个芯片的RES上电后经一定时间升为高电平,所以其控制时序为68系列MPU的时序。两个芯片的选通由E1,E2信号决定。对于这几种模块,ADC选择应设置为0,占空比设置成1/32。 3.2.3 接口端管脚说明LCD引脚说明表3.2 LCD引脚说明注: 对于单电源模块,标志为V0/POFF。当该管脚为高或悬空时,内部DC/DC功能开启;为低时,内部DC/DC功能

9、关闭。该功能可用作屏幕保护。如果用其直接替代双电源模块,该管脚直接悬空即可3.2.4 12232A电路图 LCD显示电路(采用12232A点阵式LCD液晶显示模块,内置SED1520液晶显示控制器)图3.2 LCD显示电路图3.3 SED1520基本原理3.3.1 SED1520的特性 (1)内置2560位显示RAM区。RAM中的1位数据控制液晶屏上的一个像素的亮暗状态;“1”表示亮、“0”表示暗; (2)具有16个行驱动输出和61个列驱动输出; (3)可直接与80系列为微处理器相连; (4)驱动占空比为16,132; (5)可与SED1520级联使用,以便扩展行列、驱动能力。3.3.2 SE

10、D1520的管脚功能介绍 SED1520功能原理图和管脚图分别见图3.3和图3.4。 SED1520有两种类型,即SED1520FAA和SED1520FOA,其引脚定义基本相同,区别在于后者内部有18KHz时钟发生器,因此不需要外部提供时钟发生器即可工作。图3.3 SED1520功能原理图图3.4 SED1520管脚图3.3.3 SED1520时序特性 SED1520有两种读写操作时序,分别对应于6800系列MPU和8080系列MPU8080系列的MPU操作时序(RES=0)如图3.5。:图3.5 SED1520时序图表3.3 SED1520时序特性图3.3.4 SED1520显示RAM结构

11、SED1520中显示RAM共有32行80列,其结构如图3.6。 图3.6 SED1520显示RAM结构图3.3.5 液晶模块接口 直接访问方式接口电路及驱动程序:图3.7直接访问方式接口原理图3.4 液晶显示模块指令系统1.读状态字R/W A0D7D6D5 D4D3 D2 D1 D010BUSY ADC OFF/ON REST 0000表3.4 读状态字 当SED1520 处状态时,除了读状态指令,其它指令均不起任何作用,因此在访问 SED1520都要先读一下状态,判断是否忙。BUSY1:忙状态0:准备好状态ADC1:正常输出(右向)0:反向输出(左向)(具体见 ADC 选择) OFF/ON1

12、:显示关闭0:显示打开RESET1:复位状态0:正常状2复位R/W A0D7D6D5D4D3 D2 D1 D0001 1 1 0 0 0 1 0表3.5 复位该指令为软件复位指令,行该指令后,使显示起始行置为第 0 行,列地址置为 0。页地址置为 3。3占空比选择R/W A0D7D6D5D4D3 D2 D1 D0001 0 1 0 1 0 0 0/1表3.6 占空比选择 D0 = 0 占空比为 1/16;D0 = 1 为 1/32;驱动 32 行液晶显示时,使 D0 为 1,驱动 16 行时 D0 为 0。4显示起始行设置R/W A0D7D6D5D4D3 D2 D1 D0001 1 0 显示起

13、始行(031)表3.7 显示起始行设置该指令设置了对应显示屏上首行的显示 RAM 中的行号,有规律地修改该行号,可实现滚屏功能。5休闲工作状态设置R/W A0 D7 D6 D5 D4 D3 D2 D1 D000 1010 0 1 0 0/1表3.8 休闲工作状态设置 该指令用软件停止 SED1520 的 LCD 驱动的输出。使系统处于低功耗休闲状态。休闲指令须在关显示状态下输入,D0 = 1 为休闲工作状态D0 = 0 为正常工作状态。6ADC 选择指令R/W A0 D7 D6 D5 D4 D3 D2 D1 D000 10 10 0 0 0 0/1表3.9 ADC选择指令 该指令用来设置列驱动

14、输出端与液晶显示屏的列驱动线的连接方式应根据厂方提供的模块实际接线设置,一般设为 ADC = 0。7显示开/关指令R/W A0D7D6D5D4D3 D2 D1 D0001 0 1 0 1 1 1 1/0表3.10 显示开/关指令 D0=1为开显示;D0=0为关显示。该指令不影响显示RAM内容。8设置页地址R/W A0D7D6D5D4D3 D2 D1 D0001 0 1 1 1 0 页地址(03)表3.11 设置页地址9设置列地址R/W A0D7D6D5D4D3 D2 D1 D0000 列地址(079)表3.12 设置列地址 由上图看出,显示 RAM 被分成四页每页 80 个字节,当设置了页地址

15、和列地址后就确定了显示RAM 中的唯一单元,该单元由低到高的各个数据位对应于显示屏上某一列的8行数据位。10改写方式设置指令R/W A0 D7 D6 D5 D4 D3 D2 D1 D000 1 1 1 0 0 0 0 0表3.13 改写方式设置指令 该指令发出后,使得每次写数据后列地址自动增 1 ,而读数据后列地址仍保持原值不变,这种称为改写模式(Read Modify Write)的方式。为逐个读取像素点状态进行修改提供了方便。在改写方式中SED1520不接受任何指令代码(除改写方式结束指令)。11改写方式结束指令R/W A0 D7 D6 D5 D4 D3 D2 D1 D000 11 1 0

16、 1 1 1 0表3.14 改写方式结束指令该指令执行后将结束改写方式以后无论读或写数据后列地址都增 112写数据R/W A0 D7 D6 D5 D4 D3 D2 D1 D000显示数据表3.15 写数据13读数据R/W A0 D7 D6 D5 D4 D3 D2 D1 D000 显示数据表3.16 读数据当读一个或一系列数据之前必须先完成一个空读操作。正常状态下,写数据或读数据后,列地址将自动增 1。3.5 程序编写思路1.LCD液晶显示子程序图3.8 LCD液晶显示子程序2.LCD液晶显示主程序图3.9 LCD液晶显示主程序3. 初始化程序图3.10 初始化程序4.清屏幕子程序图3.11 清

17、屏幕子程序3.6 LCD液晶显示程序#include reg51.h#include absacc.h#include intrins.h#define PD1 61 /* 122/2 分成左右两半屏(122x32) */unsigned char Column;unsigned char Page_ ; /* 页地址寄存器 D1,DO:页地址 */unsigned char Code_ ; /* 字符代码寄存器 */unsigned char Command; /* 指令寄存器 */unsigned char LCDData; /* 数据寄存器 */#define CWADD1 XBYTE0

18、xfa00 /* 写指令代码地址(E1) */#define DWADD1 XBYTE0xfa40 /* 写显示数据地址(E1) */#define CRADD1 XBYTE0xfa80 /* 读状态字地址(E1) */#define DRADD1 XBYTE0xfac0 /* 读显示数据地址(E1) */#define CWADD2 XBYTE0xf800 /* 写指令代码地址(E/2#define DWADD2 XBYTE0xf840 /* 写显示数进地址(E#define CRADD2 XBYTE0xf880 /* 读状态字地址(E2#define DRADD2 XBYTE0xf8c0

19、/* 读显示数据地址(E2#define _Nop() _nop_ (); _nop_ (); _nop_ (); _nop_ (); _nop_ ()/* 中文字模库 16x16点阵 */unsigned char code CCTAB32 =/* 点阵:16x16 提取点阵方向:纵向 字节掉转:是 字节方式:C语言 */0x20,0x20,0x24,0x24,0x24,0xE4,0x26,0x24, 0x20,0xFF,0x20,0x22,0x2C,0x20,0x20,0x00,/ 武 000x20,0x60,0x3F,0x20,0x20,0x1F,0x11,0x11,0x10,0x03,

20、0x1C,0x20,0x40,0x80,0xE0,0x00,0x00,0x00,0x00,0x7F,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x7F,0x80,0x00,0x00,0x00, / 昌 010x00,0x00,0xFF,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0xFF,0x01,0x00,0x00, 0x04,0x04,0x04,0xE4,0x25,0x26,0x34,0x2C,0x24,0x26,0x25,0xF4,0x24,0x06,0x04,0x00, / 首 020x00,0x00,0x00,

21、0xFF,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x30,0xC0,0x00,0x02,0x0C,0x00,0x80,0x60,0x18,0x06,0x00,0x00,0x00, / 义 030x00,0x80,0x80,0x40,0x20,0x11,0x0A,0x04,0x0A,0x11,0x10,0x20,0x60,0xC0,0x40,0x00,0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x5

22、0,0x30,0x00, / 学 04 0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0xFE,0x22,0x5A,0x96,0x0C,0x24,0x24,0x25,0x26,0x24,0x34,0xA4,0x14,0x0C,0x00, / 院 050x00,0xFF,0x04,0x08,0x87,0x81,0x41,0x31, 0x0F,0x01,0x3F,0x41,0x41,0x41,0x70,0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0x

23、FF,0x48,0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00, / 电 060x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,0x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00,0x40,0x20,0x58,0x47,0x54,0x54,0x54,0x54,0x54,0x54,0xD4,0x14,0x06,0x04,0x00,0x00, / 气 070x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x40,0x80,0x70,0x0

24、0,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0xFC, 0x04,0x04,0x04,0x04,0x06,0x04,0x00,0x00, / 工 080x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,0x24,0x24,0xA4,0xFE,0xA3,0x22,0x20,0x7E,0x42,0x42,0x42,0x42,0x42,0x7F,0x02,0x00, / 程 090x08,0x06,0x01,0xFF,0x00,0x43,0x41,0x49,0x4

25、9,0x49,0x7F,0x49,0x4D,0x69,0x41,0x00,0x80,0x80,0x40,0x20,0x50,0x48,0x44,0xC3,0x44,0x68,0x50,0x20,0x40,0xC0,0x40,0x00,0x00,0x40,0x40,0x4A,0x52,0x62,0x42,0x7F, / 金 0A0x42,0x62,0x52,0x4A,0x60,0x40,0x00,0x00,0x00,0x80,0x60,0xF8,0x07,0x00,0x7E,0x22,0x22,0xE2,0x22,0x22,0x3F,0x82,0x00,0x00, / 保 0B 0x01,0x0

26、0,0x00,0xFF,0x41,0x21,0x11,0x09,0x05,0xFF,0x05,0x09,0x31,0x61,0x21,0x00,0x00,0x40,0x20,0x10,0xFC,0x03,0x40,0x20,0x10,0xFF,0x08,0x04,0x06,0xC0,0x00,0x00, / 华 0C0x04,0x04,0x04,0x04,0x05,0x04,0x04,0xFF,0x04,0x04,0x05,0x05,0x05,0x05,0x04,0x00,; /* 中文字模库 8x16点阵 */unsigned char code CCTAB116 =/* 点阵:8x16 提

27、取点阵方向:纵向 字节掉转:是 字节方式:C语言 */0xF8,0xFC,0x04,0xC4,0x24,0xFC,0xF8,0x00, / -0- 000x07,0x0F,0x09,0x08,0x08,0x0F,0x07,0x00,0x00,0x10,0x18,0xFC,0xFC,0x00,0x00,0x00, / -1- 010x00,0x08,0x08,0x0F,0x0F,0x08,0x08,0x00,0x08,0x0C,0x84,0xC4,0x64,0x3C,0x18,0x00, / -2- 020x0E,0x0F,0x09,0x08,0x08,0x0C,0x0C,0x00,0x08,0

28、x0C,0x44,0x44,0x44,0xFC,0xB8,0x00, / -3- 030x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00,0xF0,0xF8,0x4C,0x44,0x44,0xC0,0x80,0x00, / -6- 040x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00, ;/* 1.写指令代码子程序(E1) */void WriteCommandE1() /while(IN(CRADD1) & 0x80); /实际的液晶操作中可以不判断是否忙 CWADD1=Command; _Nop();/* 2.写显示数据子程序(E1

29、) */void WriteDataE1() /while(IN(CRADD1) & 0x80); DWADD1=LCDData; _Nop();/* 4.写指令代码子程序(E2) */void WriteCommandE2() /while(IN(CRADD2) & 0x80); CWADD2=Command; _Nop();/* 5.写显示数据子程序(E2) */void WriteDataE2() /while(IN(CRADD2) & 0x80); DWADD2=LCDData; _Nop();/* 初始化程序 */void Init() Command = 0xe2; WriteCo

30、mmandE1(); WriteCommandE2(); Command = 0xa4; WriteCommandE1(); WriteCommandE2(); Command = 0xa9; WriteCommandE1(); WriteCommandE2(); Command = 0xa0; WriteCommandE1(); WriteCommandE2(); Command = 0xc0; WriteCommandE1(); WriteCommandE2(); Command = 0xaf; WriteCommandE1(); WriteCommandE2();/* 清屏 */void

31、 Clear() unsigned char i,j; i = 0; do Command = (i + 0xb8);/* 页地址设置 */ WriteCommandE1(); WriteCommandE2(); Command = 0x00; /* 列地址设置为0 */ WriteCommandE1(); WriteCommandE2(); j = 0x50; /* 一页清 80个字节 */ do LCDData = 0x00; /* 显示数据为0 */ WriteDataE1(); WriteDataE2(); while(-j !=0); /* 页内字节清零循环 */ while(+i

32、!=4); /* 页地址暂存器加一 */ /* 显示区清零循环 */*延时函数*/void delay()unsigned int i;for(i=0;i=5000;i+);void delay1()unsigned int i;for(i=0;i=35000;i+);void delay2()unsigned int i;for(i=0;i=5000;i+);/* 中文显示子程序 16*16*/void WriteCHN16x16() unsigned char i,j,k; i = 0; j = 0; while(j2) Command = (Page_ + j) & 0x03) | 0x

33、b8; /* 设置页地址 */ WriteCommandE1(); WriteCommandE2(); k = Column; /* 列地址值 */ while(k Column + 16) if (k = PD1 * 2) break; /* 列地址是否超出显示范围 */ ; j+; ;/* 数字显示子程序 8*16*/void WriteCHN8x16() unsigned char i,j,k; i = 0; j = 0; while(j2) Command = (Page_ + j) & 0x03) | 0xb8; /* 设置页地址 */ WriteCommandE1(); Write

34、CommandE2(); k = Column; /* 列地址值 */ while(k Column + 8) if (k = PD1 * 2) break; /* 列地址是否超出显示范围 */ ; j+; ;/* 中文显示子程序 16*16反显*/void WriteCHN16x161() unsigned char i,j,k; i = 0; j = 0; while(j2) Command = (Page_ + j) & 0x03) | 0xb8; /* 设置页地址 */ WriteCommandE1(); WriteCommandE2(); k = Column; /* 列地址值 */ while(k Column + 16) if (k = PD1 * 2) break; /* 列地址是否超出显示范围 */ ; j+; ;/* 数字显示子程序 8*16反显*/void WriteCHN8x161() unsigned char i,j,k; i = 0; j = 0; while(j2) Command = (Page_ + j) & 0x03) | 0xb8; /* 设置页地址 */ Writ

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号