系统基于C51的LCD12864液晶动画显示.docx

上传人:b****5 文档编号:12225054 上传时间:2023-04-17 格式:DOCX 页数:21 大小:88.92KB
下载 相关 举报
系统基于C51的LCD12864液晶动画显示.docx_第1页
第1页 / 共21页
系统基于C51的LCD12864液晶动画显示.docx_第2页
第2页 / 共21页
系统基于C51的LCD12864液晶动画显示.docx_第3页
第3页 / 共21页
系统基于C51的LCD12864液晶动画显示.docx_第4页
第4页 / 共21页
系统基于C51的LCD12864液晶动画显示.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

系统基于C51的LCD12864液晶动画显示.docx

《系统基于C51的LCD12864液晶动画显示.docx》由会员分享,可在线阅读,更多相关《系统基于C51的LCD12864液晶动画显示.docx(21页珍藏版)》请在冰豆网上搜索。

系统基于C51的LCD12864液晶动画显示.docx

系统基于C51的LCD12864液晶动画显示

【关键字】系统

课程论文

题目:

基于C51的LCD12864液晶动画显示

课程名称:

单片机系统设计与Proteus仿真

电子工程学院制

2015年5月

基于C51的液晶显示动画设计

 

1.4设计的应用领域及发展…………………………………………………….6

2单片机控制液晶显示系统设计……………………………………………………..7

2.1单片机控制液晶显示系统框图设计………………………………………7

2.2单片机控制液晶显示系统功能设计………………………………………7

3单片机控制液晶显示系统的硬件设计………………………………………………7

3.1Proteus画图软件介绍……………………………………………………7

3.2单片机控制液晶显示子系统的电路设计…………………………………8

…………8

……………10

…………………11

3.3单片机控制液晶显示子系统的电路设计………………………………11

……………………………11

……………………………12

3.3.3LCD12864液晶显示系统………………...……………………12

……………………………13

3.4单片机控制液晶显示系统的整体电路实现……………..………………13

3.5单片机控制液晶显示系统电路的PCB设计…………….………………14

4单片机控制液晶显示系统的软件设计………………...…………………………14

4.1单片机控制液晶显示系统开发环境介绍………………...……………14

4.2单片机控制液晶显示系统程序流程图设计………………...…………16

4.3单片机控制液晶显示系统程序实现………………...……………………17

5单片机控制液晶显示系统的仿真实现………………...…………………………21

5.1单片机控制液晶显示系统的仿真实现………………...………………21

5.2单片机控制液晶显示系统的仿真数据………………...………………23

5.3数据分析…………….……………………………………………………26

5.4结论………………...………………………………………………………26

参考文献………………...………………………………………………………27

致谢…………………………………………………………………………………………28

摘要

本文针对基于C51单片机的protues仿真在LCD12864在动画方面应用相对较为稀缺而当代大学生在这方面能力又为欠缺的的情况下,在单片机液晶显示系统和动画设计在车内广告、智能广告、可视电话、仪表盘、空调、洗衣机和其它低功耗电子产品中得到广泛应用。

而且老式七段LCD显示的字符数量有限,只能用于简单显示,而对于比较复杂的字符、图形无法表达,然而在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字的背景下提出了动画显示(要求用LED点阵或液晶显示)的设计,本系统设计主要采用AT89C51单片机作为系统的控制核心,LCD12864液晶显示器作为显示平台的动画设计,首先利用“画图”软件绘制需要显示的动画图像的各个静态内容并进行取模,然后编写相应的控制程序通过单片机控制着液晶显示器屏幕,使得液晶显示器上可以动态显示每张通过图片,从而实现动画显示的功能,达到了设计的目的。

解决了用基于C51单片机的protues仿真在LCD12864在动画方面应用相对较为稀缺而当代大学生在这方面能力有没有进行练习的问题,对后继大学生在动画方面的设计和以后就业后进行相关的工作产生了重要意义

关键字:

LCD12864取模小鸡吃米蜂鸣器

前言

本文在基于C51单片机的protues仿真在LCD12864在动画方面应用相对较为稀缺而当代大学生在这方面能力又为欠缺的的情况下,提出怎么样解决动画方面应用相对较为稀缺而当代大学生在这方面能力又为欠缺问题,本文基于此即将做基于C51单片机的protues仿真在LCD12864在动画设计方面的设计,解决当代大学生在这方面能力有没有进行练习的问题。

单片机的应用非常广泛,导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。

本课程设计主要面向单片机控制的液晶显示功能,实现图片的动态显示。

根据人类眼球的视觉暂留效应,可以感受到动画的效果

1绪论

1.1设计的研究背景

本课题设计的LCD图片显示主要指的是单片机以及单片机驱动的点阵式液晶显示屏所组成的一个显示系统。

LCD与阴极射线管、LED或等离子显示器相比是一种低功耗的平面显示器件。

在在车内广告、智能广告、可视电话、仪表盘、空调、洗衣机和其他低功耗电子厂品中得到了广泛应用。

一直以来,追求更完美的视觉享受都是我们桌面显示设备的目标,09年LED背光的液晶产品得到了消费者强烈的关注。

在外观上还是功耗上,它比传统的CCFL背光都有不小的优势,相信随着技术的越来越成熟,LED背光的液晶产品必然会在市场上取得很大的成功,市场的潜力也非常巨大的,而且对于大多数人来说外观还是选择显示器的首要因素,超薄时尚节能也是未来的主流。

1.2设计国内的研究现状

在国内,液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其它显示器无法相比的优点。

近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。

液晶显示器分为字符型LCD显示模块和点阵型LCD显示模块。

字符型LCD是一种用5×7点阵图形来显示字符的液晶显示器。

点阵型液晶可显示用户自定义的任意符号和图形,并可卷动显示,它作为便携式单片机系统人机交互界面的重要组成部分被广泛应用于实时检测和显示的仪器仪表中。

支持汉字显示的点阵型液晶在现代单片机应用系统中是一种十分常用的显示设备,汉字BP机、手机上的显示屏就是点阵型LCD。

点阵型LCD是现代单片机应现代单片机应用系统中最常用的人机交互界面之一。

1.3设计国外的研究现状

在国外,随着电子技术发展的日新月异,越来越多的电子产品正走进我们的日常生活,小到儿童玩具、家用电器,大到伴随我们生活的交通工具设施、大型科研工程。

电子技术正在逐渐改变我们的生活方式,让我们的生活更加便捷,充满乐趣。

所以,本课程设计旨在运用电子技术,提高我们对于电子技术的兴趣,再者带给人们一点生活上的乐趣,美日居世界前两位。

1.4设计的应用领域及发展

针对动画设计在高端方面的研究已经相对成熟,而在低端器件方面的设计方面则相对欠缺,因此在低端器件方面的动画设计有着较为广阔的发展前景,因此提出针对基于C51单片机控制液晶显示动画的设计。

2单片机控制液晶显示系统设计

2.1单片机控制液晶显示系统框图设计

图1系统框图

2.2单片机控制液晶显示系统功能设计

本系统设计的主要功能是以单片机为控制中心在LCD12864液晶上实现图片的逐个显示,从而实现动画显示的效果。

该系统在以单片机最小系统的基础上,扩展电路,并通过按键控制单片机的开始停止工作,以此来控制动画的播放与停止和峰鸣器是否响起从而来模拟小鸡啄米的声音效果和动画效果。

3.单片机控制液晶显示系统的硬件设计

3.1Proteus画图软件介绍

Protues软件是由英国LabCenterElectronics公司开发的EDA工具软件。

从1989年问世至今已有20年的历史,在全球得到广泛使用。

Protues软件除具有和其他EDA工具软件一样的原理编辑、PCB制作外,还具有交互式的仿真功能。

它不仅是模拟电路、数字电路、模/数混合电路的设计与仿真平台,更是目前世界上最先进、最完备的多种型号微处理器系统的设计与仿真平台,真正实现了在计算机上完成原理图设计,电路分析与仿真,微处理器程序设计与仿真,系统测试与功能验证,到形成PCB的完整电子设计,研发过程。

Protues软件由ISIS(IntelligentSchematicInputSystem)和ARES(AdvancedRoutingandEditingSoftware)两个软件构成,其中ISIS是一款智能原理图输入系统软件,可以作为电子系统仿真平台:

ARES是一款高级布线编辑软件,用于制作PCB。

安装Protues软件时,对计算机的配置要求如下所述。

1.CPU的频率为200MHZ及以上;

2.操作系统为Windows98/ME/2000/XP或更高版本;

3.硬盘空间不小于64MB;

4.内存RAM容量不小于64MB。

3.2单片机控制液晶显示子系统的电路设计(包括根据子系统的功能参数选择器件类型,具体方案等,最终形成电路图)

3.2.1简介AT89C5

图2AT89C51外形及引脚排列

管脚说明

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P0口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为低八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:

口管脚备选功能

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2/INT0(外部中断0)

P3.3/INT1(外部中断1)

P3.4T0(计时器0外部输入)

P3.5T1(计时器1外部输入)

P3.6/WR(外部数据存储器写选通)

P3.7/RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。

/PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:

当/EA保持低电平时,外部程序存储器(0000H-FFFFH)不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

图3LCD12864引脚

SMG12864A是一种图形点阵液晶显示起,也可以完成字符、数字、汉字与图形显示。

引脚功能:

1GND电源地

2VCC+5v

3VO亮度调节1,与10KΩ电位器的可调端连接

4D\I数据\指令选择,高电平为数据,低电平为控制指令

5R\W读写操作,高电平为读数据,低电平为控制指令

6E读写使能端,下降沿锁存

7D0数据总线

8D1数据总线

9D2数据总线

10D3数据总线

11D4数据总线

12D5数据总线

13D6数据总线

14D7数据总线

15CS1片选,高电平选择左屏

16CS2片选,高电平选择右屏

17RES复位,低电平有效

18VEE亮度调节2,接10KΩ电位器固定一端,另一端接地

19VCC背光电源+5v

20GND背光电源地0v

基本操作时序

(1)读状态

(2)写指令

(3)读数据

(4)写数据

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。

;蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

3.3单片机控制液晶显示子系统的电路设计

图4单片机最小系统

图5蜂鸣器驱动系统

3.3.3LCD12864液晶显示系统

图6LCD12864液晶显示系统

图7开始结束按键系统

3.4单片机控制液晶显示系统的整体电路实现

图8系统原理图

3.5单片机控制液晶显示系统电路的PCB设计

图9

4单片机控制液晶显示系统的软件设计

4.1单片机控制液晶显示系统开发环境介绍

KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。

运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。

如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil的优势。

下面详细介绍KeilC51开发系统各部分功能和使用。

⒉KeilC51单片机软件开发系统的整体结构

C51工具包的整体结构,uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。

开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。

然后分别由C51及C51编译器编译生成目标文件(.OBJ)。

目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。

ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

2009年2月发布KeilμVision4,KeilμVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。

新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。

新版本支持更多最新的ARM芯片,还添加了一些其他新功能。

图10Keil界面

2011年3月ARM公司发布最新集成开发环境RealViewMDK开发工具中集成了最新版本的KeiluVision4,其编译器、调试工具实现与ARM器件的最完美匹配。

4.2单片机控制液晶显示系统程序流程图设计

图11系统程序流程图

4.3单片机控制液晶显示系统程序实现

voidwrite_LCD_command(ucharvalue)//写命令函数

{Read_busy();//对LCD的每次读写都要读忙

RS=0;//选择命令

RW=0;//读操作

LCD_databus=value;

EN=1;//EN由1----0锁存有效数据

delay

(2);

EN=0;

}

voidwrite_LCD_data(ucharvalue)//写数据函数

{

Read_busy();

RS=1;//选择数据

RW=0;

LCD_databus=value;

EN=1;//EN由1----0锁存有效数据

delay

(2);

EN=0;

}

voidSet_page(ucharpage)//设置“页”LCD12864共8页,一页是8行点阵点

{

page=0xb8|page;//页的首地址为0xB8

write_LCD_command(page);

}

voidSet_line(ucharstartline)//设置显示的起始行

{

startline=0xC0|startline;//起始行地址为0xC0

write_LCD_command(startline);//设置从哪行开始:

共0--63;一般从0行开始显示

}

voidSet_column(ucharcolumn)//设置显示的列

{

column=column&0x3f;//列的最大值为64

column=0x40|column;//列的首地址为0x40

write_LCD_command(column);//规定显示的列的位置

}

voidSetOnOff(ucharonoff)//显示开关函数:

0x3E是关显示,0x3F是开显示

{

onoff=0x3e|onoff;//0011111x,onoff只能为0或者1

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);//0--全屏;1---左半屏;2---右半屏

for(i=0;i<8;i++)//控制页数0-7,共8页

{

Set_page(i);

Set_column(0);

for(j=0;j<64;j++)//控制列数0-63,共64列

{

write_LCD_data(0x00);//写入0,地址指针自加1

}

}

}

voidInitLCD()//LCD的初始化

{

Read_busy();

SelectScreen(0);

SetOnOff(0);//关显示

SelectScreen(0);

SetOnOff

(1);//开显示

SelectScreen(0);

ClearScreen(0);//清屏

Set_line(0);//开始行:

0

}

voidDisplay(ucharss,ucharpage,ucharcolumn,uchar*p)

{

uchari;

SelectScreen(ss);

Set_page(page);//写上半页

Set_column(column);//控制列

for(i=0;i<16;i++)//控制16列的数据输出

{

write_LCD_data(p[i]);//汉字的上半部分

}

Set_page(page+1);//写下半页

Set_column(column);//控制列

for(i=0;i<16;i++)//控制16列的数据输出

{

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()

{

int_init();

InitLCD();//初始12864

ClearScreen(0);//清屏

Set_line(0);//显示开始

/*EA=1;

TMOD=0X01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

ET0=1;*/

while

(1)

{

display_BMP(table19);

if(a)

{

display_BMP(table1);

display_BMP(table2);

display_BMP(table3);

speak=0;

display_BMP(table4);

speak=1;

display_BMP(table5);

speak=0;

display_BMP(table6);

speak=1;

display_BMP(table7);

speak=0;

display_BMP(table8);

speak=1;

display_BMP(table9);

speak=0;

display_BMP(table10);

speak=1;

display_BMP(table11);

speak=0;

display_BMP(table12);

speak=1;

display_BMP(table13);

speak=0;

display_BMP(table14);

speak=1;

display_BMP(table15);

speak=0;

display_BMP(table16);

speak=1;

display_BMP(table17);

display_BMP(table18);

display_BMP(table19);

display_BMP(table19)

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

当前位置:首页 > 工程科技 > 纺织轻工业

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

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