LCD 动态图片显示课程设计.docx
- 文档编号:10400340
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:18
- 大小:93.89KB
LCD 动态图片显示课程设计.docx
《LCD 动态图片显示课程设计.docx》由会员分享,可在线阅读,更多相关《LCD 动态图片显示课程设计.docx(18页珍藏版)》请在冰豆网上搜索。
LCD动态图片显示课程设计
第1章本设计的研究背景及目的要求
1.1单片机的介绍
自单片机出现至今,单片机技术已走过了近20年的发展路程。
纵观20年来单片机发展里程可以看出,单片机技术的发展以微处理器(MPU,MicroprocessorUnit)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域拉动,表现出比微处理器更具个性的发展趋势。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
作为嵌入式系统控制核心的单片机具有其体积小、功能全、性价比高等诸多优点。
51系列单片机是国内目前应用最广泛的单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用,51系列单片机的发展又进入了一个新的阶段。
在今后很长一段时间内51系列单片机仍将占据嵌入式系统产品的中低端市场。
一般说来,单片机开发的产品可以稳定可靠地工作10年、20年;另外,与微处理器相比,单片机的长寿命表现在它不会像386、486、586等MPU一样,随着半导体技术的飞速发展,更新换代的速度越来越快,很短的时间内就被淘汰出局。
传统的单片机如68HC05、8051等年龄已有十几年的历史,但产量仍是上升的,这是因为它们在其对相应应用领域的适应性强,并且与之兼容的I/O功能模块的扩展接口技术也层出不穷。
长期以来,单片机技术的发展是以8位机为主的。
随着移动通信、网络技术、多媒体技术等高科技产品进入家庭,32位单片机应用得到了长足的发展,而16位单片机的发展无论从品种和产量方面,近年来也有较大幅度的增长。
1.2单片机液晶显示系统设计课题背景
单片机液晶显示系统主要是指单片机以及由单片机驱动的点阵式液晶显示屏所组成的一个显示系统。
液晶显示器与CRT(cathode-raytube,阴极射线管)、LED(light-emittingdiode,发光二级管)或等离子显示器相比是一种低功耗的平面显示器件。
它在车内广告、在型智能广告、可视电话、仪表盘、空调、洗衣机和其它低功耗电子产品中得到广泛应用。
老式七段LCD(LiquidCrystalDisplay液晶显示屏)显示的字符数量有限,只能用于简单显示,而对于比较复杂的字符、图形无法表达。
然而在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字。
物探仪器的多功能化、智能化、并且普遍采用人机对话的交互方式。
对于在跟高端的适用场合需要能够显示更丰富信息和通用性较强的显示器,便于开发和应用,并要求其体积小、重量轻、功耗小。
图形点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕画面滚动、分区开窗口、反转、位操作等功能,可以显示用户自定义的任意符号以及曲线、图形等,是信息输出的重要手段之一,具有广泛的应用前景。
1.3开发单片机液晶显示系统的意义
液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其它显示器无法相比的优点。
近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。
液晶显示器分为字符型LCD显示模块和点阵型LCD显示模块。
字符型LCD是一种用5×7点阵图形来显示字符的液晶显示器。
点阵型液晶可显示用户自定义的任意符号和图形,并可卷动显示,它作为便携式单片机系统人机交互界面的重要组成部分被广泛应用于实时检测和显示的仪器仪表中。
支持汉字显示的点阵型液晶在现代单片机应用系统中是一种十分常用的显示设备,汉字BP机、手机上的显示屏就是点阵型LCD。
点阵型LCD是现代单片机应用系统中最常用的人机交互界面之一。
我选择的单片机液晶显示系统的开发,是基于AMPIRE12864液晶显示控制器,本次课程设计基于AT89C52为核心控制器。
AMPIRE12864是点阵型液晶显示控制器,利用单片机控制液晶显示系统的原理,完成单片机液晶显示系统的设计,我希望能够触类旁通,灵活应用其他型号的液晶显示控制器。
将来如果有机会从事这方面的工作,要运用的液晶显示控制器不一定是AMPIRE12864,但这次课程设计中学到的东西为此打下了良好的基础,相信自己能做好这方面的工作。
第2章设计的基本原理和方案
2.1AT89C52单片机介绍
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
AT89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。
功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。
其引脚图和51系列单片机的最小应用系统如图2-1和图2-2所示。
图2-1单片机引脚图图2-2单片机最小系统外部电路
2.2液晶显示原理
液晶显示的原理是利用液晶的物理特性,即当通电时导通,排列变的有秩序,使光线容易通过;不通电时排列混乱,阻止光线通过。
让液晶如闸门般地阻隔或让光线穿透。
当光束通过这层液晶时,液晶本身会排排站立或扭转呈不规则状,因而阻隔或使光束顺利通过。
大多数液晶都属于有机复合物,由长棒状的分子构成。
在自然状态下,这些棒状分子的长轴大致平行。
将液晶倒入一个经精良加工的开槽平面,液晶分子会顺着槽排列,所以假如那些槽非常平行,则各分子也是完全平行的。
通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。
液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用移动通信工具等众多领域。
液晶显示的分类方法有很多种,除了黑白显示外,液晶显示器还有多灰度有彩色显示等。
如果根据驱动方式来分,可以分为静态驱动、单纯矩阵驱动和主动矩阵驱动三种。
显示一张静态的图片没有问题,那么就能显示一个动画了其实动画就是一张张静态的图片不断的刷新就可以了,根据人的视觉暂留效果就可以做出一个动画。
在写程序的时候主要注意两个函数,一个是写数据函数和写命令函数,不管让液晶显示什么,我们都要不断的调用这两个函数,,如果这两个函数执行的时间过长,就会造成图片的刷新频率过低,就没办法显示动画。
对于12864LCD与单片机连接的电路图如图2-3所示。
图2-3液晶显示器连接电路图
2.3设计方案
基于51系列单片机实现12864LCD的动态图片显示需要硬件和软件的结合来实现,利用proteus软件来实现硬件电路的搭建。
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
对于程序的编写是在Keil软件下实现的。
将编写好的程序烧录到单片机中,进行调试达到仿真的目的。
方案设计的显示流程图如图2-4。
图2-4显示流程图
第3章程序设计
3.1单片机与LCD接口电路
在进行硬件电路设计的时候,需在元件库中找到所对应的原件,使用Proteus软件进行单片机系统仿真设计,是虚拟仿真技术和计算机多媒体技术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力。
实践证明,在使用Proteus进行系统仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。
随着科技的发展,计算机仿真技术已成为许多设计部门重要的前期设计手段。
它具有设计灵活,结果、过程的统一的特点。
可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。
相信在单片机开发应用中Proteus也能茯得愈来愈广泛的应用。
12864LCD有两种访问方式即直接访问方式和间接访问方式。
在本次课程设计中,选用直接访问方式。
所谓直接访问方式就是将液晶显示模块的接口作为存储器或I/O设备直接挂在单片机总线上,单片机以访问存储器或I/O设备的方式操作液晶显示模块工作,直接访问方式的接口实用电路如图3-1所示。
图3-1接口实用电路
3.2主程序流程图
LCD显示流程图如图3-2所示。
图3-2LCD显示流程图
第4章调试结果及分析
4.1系统调试
本次调试采用Protues软件仿真。
首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件经过仿真调试。
本次课程设计我在液晶显示器上将显示出鸽子飞翔的效果,将每一张图片在液晶显示器上显示,用编程将每张图片显示的间隔设定成0.2秒,将图片连续显示便会出现鸽子飞翔的动态效果。
硬件电路上电后,先显示初始化界面及两幅图像,然后停止显示第二幅图像依次显示出九张图片。
在编程中先运用字模提取软件将每张图片对应于液晶显示器中的数字编码进行提取,液晶是先显示左半屏,再显示右半屏,但是取数组中的元素是逐个往下取出的,所以是对于一个半屏而言,每隔一行取数组中的元素,而隔去的那一行是另一个半屏要取的数据。
对于所用的取模软件来说,这个取模软件只能识别BMP和ICO格式的单色图片,如果我们选择的图片不是128*64大小的话,可以通过软件将其改成128*64大小的。
显示一个动态图片,其实动态图片就是一张张静态的图片不断的刷新就可以了。
系统调试之后运行的结果如图4-1所示。
图4-1运行结果图
4.2分析与体会
通过本次课程设计,我对于12864液晶带字库和不带字库两种类型都有较深的了解,带字库的液晶对于日常用于人机界面的设计会比较多,操作比较简单,只需要写地址,写字符或文字即可;而不带字库液晶用于设计图像的显示,图像的动态效果显示会好些。
在此次设计中我们必须首先熟悉和掌握单片机的结构及工作原理,单片机的接口技术及相关外围芯片的特性,控制方法。
以及单片机核心电路设计的基本方法和技术,了解有关电路参数的计算方法。
单片机不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
所以掌握单片机的使用方法对我们这些与此相关的专业显得尤为的重要。
当然在本次课程设计中我也遇到了很多的问题,有的是知识方面的欠缺,有的是能力方面的不足。
所以,我要学的东西真的还有很多很多,只有把所学的理论知识与实践相结合起来,在实际的操作过程中,我们才能够体会到其中意义,从而提高自己的实际动手能力和独立思考的能力。
必然,在本次课程设计过程中难免会遇到过各种各样的问题,同时发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编及C语言掌握得不好,不过我能够充分利用网络的优势去查阅资料。
通过这次课程设计之后,一定把以前所学过的知识好好温故一下。
通过这次对该课题的研究,加深了我们对所学知识的理解,提高了对课外知识的学习和解决实际问题的能力,也增强了知识的应用能力。
培养自我创新意识,积累实践经验,为我们以后的发展打下基础,并能够在这方面培养一定的兴趣。
设计过程中,总会遇到各种调试错误,还有设计出来的效果不对,只有认真的比对程序和下到板子上显示的效果,以及显示中出错的情况进行分析,修改程序才能够事半功倍。
这对于将来的工作或者学习中,遇到调试问题,将会有很大的帮助。
参考文献
[1]赵晓安.MCS-51单片机原理及应用[M].天津:
天津大学出版社,2001.[2]肖洪兵.跟我学用单片机[M].北京:
北京航空航天大学出版社,2002.
[3]杨国田.51单片机实用C语言程序设计[M].北京:
中国电力出版社,2009.
[4]杨居义.单片机课程设计指导[M].北京:
清华大学出版社,2009.
[5]周润景.Proteus入门实用教程[M].北京:
机械工业出版社,2011.
[6]夏继强.单片机实验与实践教程[M].北京:
北京航空航天大学出版社,2001.
附录
#include
#include
#include"BMP1.h"
#include"BMP2.h"
#include"BMP3.h"
#include"BMP4.h"
#include"BMP5.h"
#include"BMP6.h"
#include"BMP7.h"
#include"BMP8.h"
#include"BMP9.h"
#defineucharunsignedchar
#defineuintunsignedint
#defineLCD_databusP0
sbitRS=P2^2;
sbitRW=P2^1;
sbitEN=P2^0;
sbitCS1=P2^4;
sbitCS2=P2^3;
voiddelay(uinti)
{
while(--i);
}
voidRead_busy()
{
P0=0x00;
RS=0;
RW=1;
EN=1;
while(P0&0x80);
EN=0;
}
voidwrite_LCD_command(ucharvalue)
{
Read_busy();
RS=0;
RW=0;
LCD_databus=value;
EN=1;
delay
(2);
EN=0;
}
voidwrite_LCD_data(ucharvalue)
Read_busy();
RS=1;
RW=0;
LCD_databus=value;
EN=1;
delay
(2);
EN=0;
}
voidSet_page(ucharpage)
{
page=0xb8|page;
write_LCD_command(page);
}
voidSet_line(ucharstartline)
{
startline=0xC0|startline;
write_LCD_command(startline);
}
voidSet_column(ucharcolumn)
{
column=column&0x3f;
column=0x40|column;
write_LCD_command(column);
}
voidSetOnOff(ucharonoff)
{
onoff=0x3e|onoff;
write_LCD_command(onoff);
}
voidSelectScreen(ucharscreen)
{
switch(screen)
{
case0:
CS1=0;CS2=0;break;
case1:
CS1=0;CS2=1;break;
case2:
CS1=1;CS2=0;break;
default:
break;
}
}
voidClearScreen(ucharscreen)
{
uchari,j;
SelectScreen(screen);
for(i=0;i<8;i++)
{
Set_page(i);
Set_column(0);
for(j=0;j<64;j++)
{
write_LCD_data(0x00);
}
}
}
voidInitLCD()
{
Read_busy();
SelectScreen(0);
SetOnOff(0);
SelectScreen(0);
SetOnOff
(1);
SelectScreen(0);
ClearScreen(0);
Set_line(0);
}
voidDisplay(ucharss,ucharpage,ucharcolumn,uchar*p)
{
uchari;
SelectScreen(ss);
Set_page(page);
Set_column(column);
for(i=0;i<16;i++)
{
write_LCD_data(p[i]);
}
Set_page(page+1);
Set_column(column);
for(i=0;i<16;i++)
{
write_LCD_data(p[i+16]);
}
}
voiddisplay_BMP(uchara[][64])
{
uchari,j;
for(j=0;j<8;j++)
{
SelectScreen
(1);
Set_page(j);
Set_column(0);
for(i=0;i<64;i++)
{
write_LCD_data(a[2*j][i]);
}
SelectScreen
(2);
Set_page(j);
Set_column(0);
for(i=0;i<64;i++)
{
write_LCD_data(a[2*j+1][i]);
}
}
}
voidmain()
{
InitLCD();
ClearScreen(0);
Set_line(0);
while
(1)
{
display_BMP(table1);
display_BMP(table2);
display_BMP(table3);
display_BMP(table4);
display_BMP(table5);
display_BMP(table6);
display_BMP(table7);
display_BMP(table8);
display_BMP(table9);
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LCD 动态图片显示课程设计 动态 图片 显示 课程设计