1、 成绩课程论文题 目: 基于C51的LCD12864液晶动画显示 课程名称:单片机系统设计与Proteus仿真 成绩 电子工程学院制2015年5月基于C51的液晶显示动画设计目录摘要4前言51 绪论6 1.1 设计的研究背景6 1.2 设计的国内的研究现状6 1.3 设计的国外的研究现状61.4 设计的应用领域及发展.62 单片机控制液晶显示系统设计.72.1单片机控制液晶显示系统框图设计72.2 单片机控制液晶显示系统功能设计73 单片机控制液晶显示系统的硬件设计73.1 Proteus画图软件介绍73.2 单片机控制液晶显示子系统的电路设计8 3.2.1简介AT89C5. 83.2.2简介
2、LCD1286. 103.2.3简介蜂鸣器SOUNDER. 113.3 单片机控制液晶显示子系统的电路设计113.3.1单片机最小系统. 113.3.2峰鸣器驱动系统. 123.3.3 LCD12864液晶显示系统. 123.3.4开始结束按键系统. 133.4单片机控制液晶显示系统的整体电路实现. 133.5 单片机控制液晶显示系统电路的PCB设计. 144 单片机控制液晶显示系统的软件设计. 144.1 单片机控制液晶显示系统开发环境介绍. 144.2 单片机控制液晶显示系统程序流程图设计. 164.3单片机控制液晶显示系统程序实现. 175 单片机控制液晶显示系统的仿真实现. 215.1
3、 单片机控制液晶显示系统的仿真实现. 215.2 单片机控制液晶显示系统的仿真数据. 235.3 数据分析. 265.4 结论. 26参考文献. 27致谢28摘要 本文针对基于C51单片机的protues仿真在LCD12864在动画方面应用相对较为稀缺而当代大学生在这方面能力又为欠缺的的情况下,在单片机液晶显示系统和动画设计在车内广告、智能广告、可视电话、仪表盘、空调、洗衣机和其它低功耗电子产品中得到广泛应用。而且老式七段LCD显示的字符数量有限,只能用于简单显示,而对于比较复杂的字符、图形无法表达,然而在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字的背景下提
4、出了动画显示(要求用LED点阵或液晶显示)的设计,本系统设计主要采用AT89C51单片机作为系统的控制核心,LCD12864液晶显示器作为显示平台的动画设计,首先利用“画图”软件绘制需要显示的动画图像的各个静态内容并进行取模,然后编写相应的控制程序通过单片机控制着液晶显示器屏幕,使得液晶显示器上可以动态显示每张通过图片,从而实现动画显示的功能,达到了设计的目的。解决了用基于C51单片机的protues仿真在LCD12864在动画方面应用相对较为稀缺而当代大学生在这方面能力有没有进行练习的问题,对后继大学生在动画方面的设计和以后就业后进行相关的工作产生了重要意义关键字:LCD12864 取模 小
5、鸡吃米 蜂鸣器前言本文在基于C51单片机的protues仿真在LCD12864在动画方面应用相对较为稀缺而当代大学生在这方面能力又为欠缺的的情况下,提出怎么样解决动画方面应用相对较为稀缺而当代大学生在这方面能力又为欠缺问题,本文基于此即将做基于C51单片机的protues仿真在LCD12864在动画设计方面的设计,解决当代大学生在这方面能力有没有进行练习的问题。单片机的应用非常广泛,导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物
6、等等,这些都离不开单片机。本课程设计主要面向单片机控制的液晶显示功能,实现图片的动态显示。根据人类眼球的视觉暂留效应,可以感受到动画的效果1绪论11 设计的研究背景本课题设计的LCD图片显示主要指的是单片机以及单片机驱动的点阵式液晶显示屏所组成的一个显示系统。LCD与阴极射线管、LED或等离子显示器相比是一种低功耗的平面显示器件。在在车内广告、智能广告、可视电话、仪表盘、空调、洗衣机和其他低功耗电子厂品中得到了广泛应用。一直以来,追求更完美的视觉享受都是我们桌面显示设备的目标, 09年LED背光的液晶产品得到了消费者强烈的关注。在外观上还是功耗上,它比传统的CCFL背光都有不小的优势,相信随着
7、技术的越来越成熟,LED背光的液晶产品必然会在市场上取得很大的成功,市场的潜力也非常巨大的,而且对于大多数人来说外观还是选择显示器的首要因素,超薄时尚节能也是未来的主流。1.2 设计国内的研究现状 在国内,液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其它显示器无法相比的优点。近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。液晶显示器分为字符型LCD显示模块和点阵型LCD显示模块。字符型LCD是一种用57点阵图形来显示字符的液晶显示器。点阵型液晶可显示用户自定义的任意符号和图形,并可卷动显示,它作为便携式单片机系统人机交互界面的重要组成部分被广泛应用于实时检测和显示
8、的仪器仪表中。支持汉字显示的点阵型液晶在现代单片机应用系统中是一种十分常用的显示设备,汉字BP机、手机上的显示屏就是点阵型LCD。点阵型LCD是现代单片机应现代单片机应用系统中最常用的人机交互界面之一。1.3 设计国外的研究现状在国外,随着电子技术发展的日新月异,越来越多的电子产品正走进我们的日常生活,小到儿童玩具、家用电器,大到伴随我们生活的交通工具设施、大型科研工程。电子技术正在逐渐改变我们的生活方式,让我们的生活更加便捷,充满乐趣。所以,本课程设计旨在运用电子技术,提高我们对于电子技术的兴趣,再者带给人们一点生活上的乐趣,美日居世界前两位。1.4 设计的应用领域及发展针对动画设计在高端方
9、面的研究已经相对成熟,而在低端器件方面的设计方面则相对欠缺,因此在低端器件方面的动画设计有着较为广阔的发展前景,因此提出针对基于C51单片机控制液晶显示动画的设计。2 单片机控制液晶显示系统设计2.1单片机控制液晶显示系统框图设计 S O U N D E R 开 始 停 止 按键LCD 12864AT89C51单 片 机 时 钟 复 位 电 路图1 系统框图2.2 单片机控制液晶显示系统功能设计 本系统设计的主要功能是以单片机为控制中心在LCD12864液晶上实现图片的逐个显示,从而实现动画显示的效果。该系统在以单片机最小系统的基础上,扩展电路,并通过按键控制单片机的开始停止工作,以此来控制动
10、画的播放与停止和峰鸣器是否响起从而来模拟小鸡啄米的声音效果和动画效果。 3. 单片机控制液晶显示系统的硬件设计3.1 Proteus画图软件介绍Protues软件是由英国Lab Center Electronics公司开发的EDA工具软件。从1989年问世至今已有20年的历史,在全球得到广泛使用。Protues软件除具有和其他EDA工具软件一样的原理编辑、PCB制作外,还具有交互式的仿真功能。它不仅是模拟电路、数字电路、模/数混合电路的设计与仿真平台,更是目前世界上最先进、最完备的多种型号微处理器系统的设计与仿真平台,真正实现了在计算机上完成原理图设计,电路分析与仿真,微处理器程序设计与仿真,
11、系统测试与功能验证,到形成PCB的完整电子设计,研发过程。Protues软件由ISIS(Intelligent Schematic Input System)和ARES(Advanced Routing and Editing Software)两个软件构成,其中ISIS是一款智能原理图输入系统软件,可以作为电子系统仿真平台:ARES是一款高级布线编辑软件,用于制作PCB。安装Protues软件时,对计算机的配置要求如下所述。1. CPU的频率为200MHZ及以上;2. 操作系统为Windows98/ME/2000/XP或更高版本;3. 硬盘空间不小于64MB;4. 内存RAM容量不小于64M
12、B。 3.2 单片机控制液晶显示子系统的电路设计(包括根据子系统的功能参数选择器件类型,具体方案等,最终形成电路图)32.1简介AT89C5 图2 AT89C51 外形及引脚排列 管脚说明VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL
13、门电流。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
14、)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(计时器0外部输入)P3.5 T1(计时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。/PSEN:外部程
15、序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,外部程序存储器(0000H-FFFFH)不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.2.2简述LCD12864图3 LCD12864引脚是一种图形点阵液晶显示起,也可以完成字符、数字、汉
16、字与图形显示。引脚功能:1 GND 电源地2 VCC +5v3 VO 亮度调节1,与10K电位器的可调端连接4 DI 数据指令选择,高电平为数据,低电平为控制指令5 RW 读写操作,高电平为读数据,低电平为控制指令6 E 读写使能端,下降沿锁存7 D0 数据总线8 D1 数据总线9 D2 数据总线10 D3 数据总线11 D4 数据总线12 D5 数据总线13 D6 数据总线14 D7 数据总线15 CS1 片选,高电平选择左屏16 CS2 片选,高电平选择右屏17 RES 复位,低电平有效18 VEE 亮度调节2,接10K电位器固定一端,另一端接地19 VCC 背光电源+5v20 GND 背
17、光电源地0v基本操作时序(1) 读状态(2) 写指令(3) 读数据(4) 写数据3.2.3简介蜂鸣器蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 ;蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。3.3 单片机控制液晶显示子系统的电路设计3.3.1单片机最小系统 图4单片机最小系统3.3.2峰鸣器驱动系统图5蜂鸣器驱动系统3.3.3 LCD12864液晶显示系统图6 LCD12864液晶显示系统3.3.4开始结束按键系统图7 开始结束按键系统3.4单片机控制液晶显示系统的整体电路
18、实现图8 系统原理图3.5 单片机控制液晶显示系统电路的PCB设计图94 单片机控制液晶显示系统的软件设计4.1 单片机控制液晶显示系统开发环境介绍Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就
19、是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil 的优势。下面详细介绍Keil C51开发系统各部分功能和使用。Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C
20、或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。 2009年2月发布Keil Vision4,Keil Vision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提
21、供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。图10 Keil界面2011年3月ARM公司发布最新集成开发环境RealView MDK开发工具中集成了最新版本的Keil uVision4,其编译器、调试工具实现与ARM器件的最完美匹配。4.2 单片机控制液晶显示系统程序流程图设计开 始结 束变量初始化中断初始化初始化清屏等待按键动画显示,啄米声响起是否按下按键动画消失是否按下按键否是否是图11 系统程序流程图4.3单片机控制液晶显示系统程序实现void write_LCD_command(uchar value)/写命令函数 Read_busy(
22、);/对LCD的每次读写都要读忙 RS=0; /选择命令 RW=0; /读操作 LCD_databus=value; EN=1;/EN由1-0锁存有效数据 delay(2); EN=0;void write_LCD_data(uchar value)/写数据函数 Read_busy(); RS=1; /选择数据 RW=0; LCD_databus=value; EN=1;/EN由1-0锁存有效数据 delay(2); EN=0;void Set_page(uchar page)/设置“页”LCD12864共8页,一页是8行点阵点 page=0xb8|page; /页的首地址为0xB8 writ
23、e_LCD_command(page);void Set_line(uchar startline) /设置显示的起始行 startline=0xC0|startline; /起始行地址为0xC0 write_LCD_command(startline); /设置从哪行开始:共0-63;一般从0 行开始显示void Set_column(uchar column)/设置显示的列 column=column & 0x3f; /列的最大值为64 column= 0x40|column; /列的首地址为0x40 write_LCD_command(column);/规定显示的列的位置 void Se
24、tOnOff(uchar onoff)/显示开关函数:0x3E是关显示,0x3F是开显示 onoff=0x3e|onoff; /0011 111x,onoff只能为0或者1write_LCD_command(onoff);void SelectScreen(uchar screen)/选择屏幕 switch(screen) case 0: CS1=0;CS2=0;break; /全屏 case 1: CS1=0;CS2=1;break;/左半屏 case 2: CS1=1;CS2=0;break;/右半屏 default:break; void ClearScreen(uchar screen
25、)/清屏函数 uchar i,j; SelectScreen(screen);/0-全屏;1-左半屏;2-右半屏 for(i=0;i8;i+) /控制页数0-7,共8页 Set_page(i);Set_column(0); for(j=0;j64;j+) /控制列数0-63,共64列 write_LCD_data(0x00); /写入0,地址指针自加1 void InitLCD() /LCD的初始化 Read_busy();SelectScreen(0);SetOnOff(0); /关显示SelectScreen(0);SetOnOff(1); /开显示SelectScreen(0);Clea
26、rScreen(0);/清屏Set_line(0); /开始行:0void Display(uchar ss,uchar page,uchar column,uchar *p)uchar i;SelectScreen(ss);Set_page(page);/写上半页Set_column(column); /控制列for(i=0;i16;i+) /控制16列的数据输出write_LCD_data(pi); /汉字的上半部分 Set_page(page+1);/写下半页Set_column(column);/控制列 for(i=0;i16;i+)/控制16列的数据输出write_LCD_data(
27、pi+16);/汉字的下半部分 void display_BMP(uchar a64)/显示图形的左边部分 uchar i,j;for(j=0;j8;j+)SelectScreen(1);Set_page(j);Set_column(0);for(i=0;i64;i+)write_LCD_data(a2*ji);/每隔一行取一次数组中的数据SelectScreen(2);Set_page(j);Set_column(0);for(i=0;i64;i+)write_LCD_data(a2*j+1i);/每隔一行取一次数组中的数据void main() int_init(); InitLCD();
28、/初始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
29、=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;d
30、isplay_BMP(table17); display_BMP(table18);display_BMP(table19); display_BMP(table19); display_BMP(table19);5 单片机控制液晶显示系统的仿真实现5.1 单片机控制液晶显示系统的仿真实现(1)动画显示的图片 图12 动画显示图片(2)对动画图片取模图13 图片取模界面(3)利用Keil软件编写并调试程序图14 Keil运行界面5.2 单片机控制液晶显示系统的仿真数据(要求记录具体数据,方便分析)(1)打开ISIS软件界面 图15 (2)向单片机烧写程序 图16(3)运行程序,按下开始按键前
31、图17(4).按下开始按键 图18图19(5) 按下结束按键图205.3 数据分析打开ISIS软件后,点击单片机进行烧写hex文件如图16,运行程序后,如图17,当按下开始按键时显示动画效果,如图18和如图19,当按下结束按键时显示如图205.4 结论本次课程设计的系统功能是基于C51单片机的LCD12864液晶动画显示,并用Proteus软件仿真实现。其主要是利用单片机控制,通过LCD12864液晶显示屏显示动画效果。通过程序的编写,烧写到单片机中,驱动LCD12864液晶显示屏,显示动画效果。以小鸡吃米图为例,通过LCD12864显示动画效果,并利用蜂鸣器模拟小鸡吃米的声音,惟妙惟肖的效果
32、。参考文献1谢维成,杨加国.单片机原理与应用及C51程序设计-2版.-北京 :清华大学出版社,2009.7:24-282陈忠平.基于Proteus 的51系列单片机设计与仿真(第2版)电子工业出版社,2012.5:260-3023康光华.电子技术基础. 数字部分-5版.-北京:高等教育出版社,2006.1(2010重印)4康光华.电子技术基础. 模拟部分-5版.-北京:高等教育出版社,2006.1(2011.5重印)5胡汉才.单片机原理及接口系统设计M.清华大学出出版社,20026郭天祥.新概念51单片机C语言-放门、提高、开发、扩展全攻略 电子工业出版社,2009.17谭浩强.张基温.C语言
33、程序设计教程(第3版)高等教育出版社 2010.128苏伟斌,8051系列单片机应用手册,科学出版社,北京,19979 郭强,液晶显示应用技术,电子工业出版社,北京,200010 李维諟、郭强等, 液晶显示应用手册, 电子工业出版社, 北京,2002致谢本设计的完成是在我们的老师徐老师的细心指导下学习过Protues后进行的。在学习过程中,每次遇到问题老师不辞辛苦的讲解才使得我的设计顺利的进行有了较好的基础。从理论学习到实验实践学习的整个过程中,话费了徐老师很多精力,在此向老师表示最衷心的感谢!老师严谨的治学态度,开拓的进取精神和高度的责任心都使学生受益良多。此外还要感谢帮助我的同学们,没有你们的帮助,我是不会如此顺利的完成,是你们给我提出了大量的建议,使得我能够在设计方面有所突破,拥有自己独特的风格。在此都一并表示感谢!
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100