基于单片机的俄罗斯方块设计与实现毕设论文.doc

上传人:知****量 文档编号:28085455 上传时间:2022-07-26 格式:DOC 页数:69 大小:13.02MB
返回 下载 相关 举报
基于单片机的俄罗斯方块设计与实现毕设论文.doc_第1页
第1页 / 共69页
基于单片机的俄罗斯方块设计与实现毕设论文.doc_第2页
第2页 / 共69页
点击查看更多>>
资源描述

《基于单片机的俄罗斯方块设计与实现毕设论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的俄罗斯方块设计与实现毕设论文.doc(69页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 基于单片机的俄罗斯方块设计与实现摘 要随着单片机在手持娱乐设备上应用的开展,越来越多的应用在电子领域中,如:电子宠物,俄罗斯方块,智能IC卡等。俄罗斯方块是一款风行全球的电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克谢帕基特诺夫创造,故得此名。本文选用STC89C52RC单片机作为系统的芯片,实现人机交互、娱乐等功能。选用LCD12864实现俄罗斯方块游戏界面、图形显示;选用独立按键实现游戏控制。本设计实现的根本功能是:用按键控制目标方块的变换与移动;消除一行并计分,方块堆满时结束游戏等俄罗斯方块的根本功能。此次设计初期是在keil和proteus联合仿真中进行,编程语言为c语言,后期是进行

2、实物焊接。关键词:俄罗斯方块;单片机;控制;仿真AbstractWith the development of the single chip microcomputer application on handheld entertainment equipment, more and more application in the field of electronics.Such as: electronic pet, tetris, smart IC card, etc.Tetris is a popular global TV game and PSP games, it consis

3、ts of the Russian alexei palmer jeters invention, therefore the name.This article chooses STC89C52RC single-chip microcomputer as the system of chip, realize human-machine interaction, entertainment, etc.Selection of tetris game interface, graphical display LCD12864 implementation;Choose independent

4、 control game buttons.This design is to realize the basic function of: key control target square transformation and movement;Remove a row and scoring, square pile end game tetris, such as the basic functions.The early stage of design is done in keil and proteus simulation, programming language is th

5、e c language, is late for real welding.Keywords: Russian square;Microprocessor;Control;Simulation仅供学习参考沈阳航空航天大学北方科技学院毕业设计论文目录1绪 论11.1课题背景11.2课题的研究现状及意义11.3课题任务及要求22整体方案设计32.1设计方案32.2系统的核心局部单片机32.3程序整体思路42.4图形显示52.5消层算法52.6系统总体结构框图62.7系统的工作过程63俄罗斯方块的硬件设计73.1单片机电路73.1.1 STC89C52RC单片机介绍73.1.2 STC89C52R

6、C单片机的标准功能83.1.3 晶振特性103.1.4单片机的复位电路113.2 LCD12864液晶屏113.2.1液晶显示模块概述113.2.2 模块引脚说明123.2.3指令描述123.2.4汉字字模提取233.3 LCD的驱动方法243.4按键控制电路253.5 硬件总体设计254俄罗斯方块的软件设计264.1开发工具介绍264.2程序流程图274.2.1主程序流程图274.2.2游戏外观显示流程图294.2.3俄罗斯方块向左/右移开工作流程图304.2.4俄罗斯方块中按下键的流程图314.3本章小节315 系统仿真325.1 Proteus仿真软件介绍325.2显示屏系统仿真的效果3

7、35.2.1静态模式下的仿真效果335.2.2 向左移动的仿真效果345.2.3向右移动的仿真效果345.2.4向下移动的仿真效果图355.2.5 调节速度的仿真效果图355.2.6改变形状的仿真效果图365.2.7暂停的仿真效果图365.3俄罗斯方块的仿真效果图376 实物的制作与调试386.1电路的焊接386.1.1焊前准备386.1.2焊接顺序386.1.3元器件焊接要求386.2布线工艺与准那么396.3焊接实物照片396.4整体调试407 俄罗斯方块的整体调试417.1整体调试417.2实际显示效果图417.3系统升级方案探讨438 结 论44结束语45致 谢46附 录 电路原理图4

8、8附录 俄罗斯方块系统元件清单49附录 俄罗斯方块系统设计作品实物50附 录 主要程序511绪 论1.1课题背景如今,计算机系统的开展已明显地朝三个方向开展,这三个方向是:巨型化,单片化,网络化。对于解决复杂计算和高速数据处理的问题仍然是巨型机在起作用,因而,目前巨型机正在朝高速及高处理能力的方向开展。单片机在出现时Intel公司就给其单片机取名为嵌入式微控制器。单片机的最明显的优势,就是可以嵌入到各种仪器、设备中。这一点是巨型机和网络不可能做到的。单片机在内部已集成了越来越多的部件,这些部件包括一般常用的电路,例如:定时器,比拟器,EEPROM,D/A转换器,串行通信接口,Watchdog电

9、路等。俄罗斯方块是一款风行全球的电视游戏机和掌上游戏机游戏,目前在网络单机游戏和kele8等上都有它的身影。而它曾经造成的轰动与经济价值可以说是游戏史上一件大事。因此,对它的研究,无论从技术上,还是社会意义上看都是很有价值的。单片机在游戏上的应用是具有非常大的潜力的,它能将游戏带入到另一个阶段。单片机在游戏应用方面如模拟射击,贪吃蛇,推箱子等,它可以很好的说明单片机功能的强大,表达其更高的可控性和高集成度的好处,因此它可以在电子游戏方面成为一个不可计量的明日之星。1.2课题的研究现状及意义现今国内外的俄罗斯方块游戏设计主要有基于PC机上Windows平台的俄罗斯方块游戏,基于 平台的智能俄罗斯

10、方块游戏以及基于单片机平台的俄罗斯方块游戏等。前两种属于高端游机,性能优越,但本钱高,而且计算机编程已不是新命题,VB、VC版本的俄罗斯方块游戏都有发布。国内许多论文对俄罗斯方块游戏的教学意义做了深入讨论,主要集中于游戏中方块变换的算法研究,其中利用枚举算法和利用矩阵转置的算法最为多见。另外,还有许多文章探讨了游戏在嵌入式平台中的开发以及应用。单片机的应用很广泛,家用电器、办公室自动化、智能产品、商业营销、工业自动化等都有它的身影,如今在游戏领域里单片机的作用也愈创造显。虽然用单片机来设计一个简单的俄罗斯方块游戏程序似乎有点大材小用,但这仅仅是一个单片机在嵌入式游戏方面的简单应用,正因为它的前

11、景无可预计,所以才有这个设计,此次设计是一个单片机在游戏上应用的一个例子,它就可以很好的说明单片机功能的强大,更高的可控性和集成度高的好处,随着计算机技术、通信技术和软件技术的迅猛开展。再加上3C产业计算机、通讯、消费电子的合成及4G移动通信时代的到来,嵌入式软件发挥了更加重要的作用,它的开展为绝大多数电子设备注入了新的活力,各种装备与设备上由于有了嵌入式系统软件的参加,大大地推动了其行业渗透性应用,嵌入式技术不仅提高了产品的技术含量,更成为产品增值的关键,在整个软件产业中占据了重要地位,并受到世界各国的广泛关注。 1.3课题任务及要求单片机在手持娱乐设备上的应用具有非常大的潜力,它能将其带入

12、到一个新的阶段。本次毕业设计实现的主要内容是:应用按键来控制方块的变换与移动;消除一行并计分;方块堆满时结束游戏等俄罗斯方块的根本功能。该系统应具有以下功能:1、运用LCD进行显示; 2、通过按键可对相关的参数值进行设置,同时实现控制方块的变换与移动。2整体方案设计2.1设计方案本次设计初期是在keil和proteus联合仿真中进行,编程语言为C语言,后期是进行实物焊接。本次采用单片机STC89C52RC控制模块提供电源,LCD显示,采用独立按键,直接在I/O口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的口资源还比拟多,使用四个按键,分别是旋转键,下键,左键,右键。这种方案实现可行

13、,既满足系统功能要求,又减少了系统实现的复杂度。而由于STC89C52是一种带8K字节闪烁可编程可檫除只读存储器的低电压,高性能COMOS8的微处理器,该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。89C52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器ROM32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。2.2系统的核心局部单片机单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又

14、称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的根本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。目前,单片机正朝着高性能和多品种方向开展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面开展。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大局部功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。下面是单片机的主要开展趋势。单片

15、机经过3代的开展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性方向开展。其开展趋势不外乎以下几个方面:1.多功能 单片机中尽可能地把所需要的存储器和I/O口都集成在一块芯片上,使得单片机可以实现更多的功能。比方A/D、PWM、PCA可编程计数器阵列、WDT监视定时器-看家狗、高速I/O口及计数器的捕获/比拟逻辑等。有的单片机针对某一个应用领域,集成了相关的控制设备,以减少应用系统的芯片数量。例如,有的芯片以51内核为核心,集成了USB控制器、SMART CARD接口、MP3解码器、CAN或者I*I*C总线控制器等,LED、LCD或VFD显示驱动器也开

16、始集成在8位单片机中。2.高效率和高性能为了提高执行速度和执行效率,单片机开始使用RISC、流水线和DSP的设计技术,使单片机的性能有了明显的提高,表现为:单片机的时钟频率得到提高;同样频率的单片机运行效率也有了很大的提升;由于集成度的提高,单片机的寻址能力、片内ROMFLASH和RAM的容量都突破了以往的数量和限制。由于系统资源和系统复杂程度的增加,开始使用高级语言如C语言来开发单片机的程序。使用高级语言可以降低开发难度,缩短开发周期,增强软件的可读性和可移植性,便于改良和扩充功能。3.低电压和低功耗单片机的嵌入式应用决定了低电压和低功耗的特性十分重要。由于CMOS等工艺的大量采用,很多单片

17、机可以在更低的电压下工作1.2V或0.9V,功耗已经降低到uA级。这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。4.低价格单片机应用面广,使用数量大,带来的直接好处就是本钱的降低。目前世界各大公司为了提高竞争力,在提高单片机性能的同时,十分注意降低其产品的价格。综上所述采用型号为STC89C52RC的单片机。2.3程序整体思路单片机上的程序设计一般是一个大循环结构,对于俄罗斯方块的程序设计,首先产生一个伪随机数,其范围是0-6,分别对应俄罗斯方块中随机产生的七种方块,然后程序根据此数值所对应的图形模块装入RAM的固定区域内,紧接着将此图像写入LCD所对应的显示缓冲区中,显示程序将

18、缓冲区内的内容显示在显示屏上,如果没有控制键按下,图形将自动向下移动。如果有键按下,程序将根据按下的键来改变图形存储区的值,同时程序将判断图形是否已到达边界,当图形最上层到达显示区顶部,那么游戏结束,此时将去除显示缓冲的内容,游戏重新开始。2.4图形显示下坠物本质上为16个小砖块组成的正方形。下坠物一共有7种,比方有田字形的,L字形的等等。每种下坠物一共有4种旋转变化。 每种下坠物都有一个id,分别为1到7。因为对于一种下坠物来说,其颜色是固定的。我们同样可以用该种颜色在BRICK_COLORS数组中的下标值加上1,作为下坠物的id。例如L形下坠物的id为3,其变化形式为:因为每一个下坠物有四

19、种状态,所以我们可以考虑用一个长度为4的数组来存贮一个下坠物的4种状态,数组中每一个元素表示该下坠物的一种状态。从上图可以看出,用一个4X4的二维数组来存储一种下坠物的一种状态最适宜不过了。在有色砖块出现的位置,值为1,而只有背景颜色,无需绘制的位置,值为0。因此,整个L形下坠物的4种状态可以用一个3维数组来表示:protected int blockpattern3 = 0, 1, 0, 0,0, 1, 0, 0,0, 1, 1, 0,0, 0, 0, 0,0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 1, 1,

20、0, 0, 0, 1, 0, 0, 0, 1, 0,0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0;2.5消层算法设置循环变量数R2=128,即总共要扫描128次,每一次循环过程中检测此行是否已满,也就是检测这一行所对应的存储单元是否全为1,如果全为1那么将此行消去,即将此行对应的RAM清零。同时将此行上面RAM的内容按每列依次下移,下移完之后重新令R2=0,又从第一行开始检测。此行不全为零时只需令R2=R2+1,直到R2=128消层过程结束。2.6系统总体结构框图系统总体结构框图,如图2.1所示。本设计总体模块包括单片机中央主控模块、电源模块、按

21、键电路和显示模块组成。本设计由电源模块为电机,单片机提供能源;显示模块用来实现俄罗斯方块游戏界面、图形显示;按键电路用按键控制目标方块的变换与移动。图2.1 系统总体结构框图2.7系统的工作过程单片机在上电初始化完毕后会等待通信单片机发出启动信号,单片机检测到启动信号后,从FLASH存储器中读取控制信息,再根据控制信息执行对应模式的显示任务。开始让它显示个积木,在按键没实现控制的时候,每隔1S下移一次,有触底处理功能,当碰到底的时候图形不能下移,判断能否消行,能消行那么消行,不能再判断是否到顶,到底那么从新开始,没到底产生下个随即数,中间有5个按键控制,一个实现图形左移,一个实现图形右移,一个

22、实现下移,一个实现旋转,一个复位。3俄罗斯方块的硬件设计3.1单片机电路3.1.1 STC89C52RC单片机介绍STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改良使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路

23、,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构兼容传统51的5向量2级中断结构,全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6时钟/12时钟可选。1.STC89C52RC单片机的工作模式1掉电模式:典型功耗0.1A,可由外部中断唤醒,中断返回后,继续执行原程序。2空闲模式:典型功耗2mA。3正常工作模式:典型功耗4Ma7mA。4

24、掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备。2.在此我选用STC89C52单片机PDIP封装方式也就是双列直插封装的单片机此种封装有如下特点:1适合PCB的穿孔安装;2易于对PCB布线;3操作方便。3.1.2 STC89C52RC单片机的标准功能STC89C52RC单片机的引脚说明图,如图3.1所示。图3.1 DIP-40封装的STC89C52单片机引脚说明(1) VCC40引脚:电源电压(2) VSS20引脚:接地(3) P0端口P0.0P0.7,3932引脚:P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1时,可

25、以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在FlashROM编程时,P0端口接收指令字节;而在校验程序时,那么输出指令字节。验证时,要求外接上拉电阻。4P1端口P1.0P1.7,18引脚:P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动吸收或者输出电流方式4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流IIL。此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入P1.

26、0/T2和定时器/计数器2的触发输入P1.1/T2EX,具体如表3.1所示。在 FlashROM编程和校验时,P1口接收低8位地址字节。表3.1 P1.0和P1.1引脚复用功能引脚号功能特性P1.0T2定时器/计数器 T2 的外部计数输入,时钟输出P1.1T2EX定时器/计数器 T2 的捕捉/重载触发信号和方向控制5P2端口P2.0P2.7,2128引脚:P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动吸收或输出电流方式4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引

27、脚会输出一个电流IIL。在访问外部程序存储器和16位地址的外部数据存储器如执行“MOVXDPTR指令时,P2送出高8位地址。在访问8位地址的外部数据存储器如执行“MOVXR1指令时,P2口引脚上的内容就是专用存放器SFR区中的P2存放器的内容,在整个访问期间不会改变。在FlashROM编程和校验时,P2口也接收高8位地址字节和一些控制信号。6P3端口P3.0P3.7,1017引脚:P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动吸收或输出电流方式4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那

28、些被外部信号拉低的引脚会输入一个电流IIL。在对FlashROM编程或程序校验时,P3还接收一些控制信号。P3口除作为一般I/O口外,还有其他一些复用功能,如表3.2所示。表3.2 P3口引脚复用功能引脚号复用功能P3.0RXD串行输入P3.1TXD串行输出P3.2I(外部中断 0)P3.3I(外部中断 0)P3.4T0定时器 0 外部输入P3.5T1定时器 1 外部输入P3.6(外部数据存储器写选通)P3.7(外部数据存储器写选通)RST9引脚:复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST引脚输出96个晶振周期的高电平。特

29、殊存放器AUXR地址8EH上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/30引脚:地址锁存控制信号ALE是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址位8EH的SFR的第0位置“1,ALE操作将无效。这一位置“1,ALE仅在执行MOVX或MOV指令时有效。否那么,ALE将被微弱拉高。这个ALE使能标志位地址位8EH的SFR的第0位的设置对微

30、控制器处于外部执行模式下无效。29引脚:外部程序存储器选通信号是外部程序存储器选通信号。当 AT89C52从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而在访问外部数据存储器时,将不被激活。/VPP(31引脚):访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令, 必须接 GND。为了执行内部程序指令,应该接VCC。在flash编程期间,也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。3.1.3 晶振特性STC89C52单片机有一个用于构成振荡器的反相放大器,XTAL1和XTAL2

31、分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动器件的话,XTAL2可以不接,而从XTAL1接入,如图2.2所示。由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。如图3.2所示。图3.2振荡电路连接图3.1.4单片机的复位电路单片机通常采用上电自动复位和按钮复位两种方式。通常因为系统运行等需要,常常需要人工复位,本设计采用按钮复位的方式,即按下开关一定时间就能使RTS引脚端为高电平,从而使单片机复位。同时,简单复位电路中,干扰信号易串入复位端,

32、由此可能会引起内部某些存放器错误复位,这时可在RST引脚上接去耦电容。在STC12C5A60S2单片机中有两个复位端口,即RST/P4.7、RST2/P4.6,当晶振频率小于或等于12MHz时,使用RST端口。由于本设计使用外接12MHz的晶振作为振荡时钟。3.2 LCD12864液晶屏3.2.1液晶显示模块概述LCD12864汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字16X16点阵,128个字符8X16点阵及64X256点阵显示RAMGDRAM。主要技术参数和显示特性:电源:VDD 3.3V+5V(内置升压电路,无需负压);显示内容:128列 64行;LCD类型:ST

33、N;与MCU接口:8位或4位并行/3位串行;配置LED背光;多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等。液晶显示器件独具的低压,微功耗特性使它在单片机系统中得到了广泛的应用,常用的液晶显示模块分为数显液晶模块、点阵字符液晶模块和点阵图形液晶模块,其中图形液晶模块在我国应用较为广泛,因为汉字不能像 西文字符那样用字符模块即可显示,要想显示汉字必须用图形模块。本设计所选择的LCD是AMPIRE12864的汉字图形型液晶显示模块,可显示汉字及图形,图形液晶显示显示器接口。3.2.2 模块引脚说明APM12864引脚说明表,如表3.3所示。表 3.3AMPIRE12864 引脚说明表 管

34、脚号管脚电平说明1CS1H/L片选择信号,低电平时选择前 64 列2CS2H/L片选择信号,低电平时选择后 64 列3GND0V 逻辑电源地4VCC 5.0V逻辑电源正5V0 LCD 驱动电压,应用时在 VEE 与 V0 之间加一 2K 可调电阻6RSH/L数据指令选择:高电平:数据 D0-D7 将送入显示 RAM;低电平:数据 D0-D7 将送入指令存放器行7R/WH/L读写选择:高电平:读数据;低电平:写数据8EH/L读写使能,高电平有效,下降沿锁定数据9DB0 H/L数据输入输出引脚10 DB1H/L数据输入输出引脚11DB2 H/L数据输入输出引脚12 DB3 H/L数据输入输出引脚1

35、3 DB4 H/L数据输入输出引脚14 DB5 H/L数据输入输出引脚15 DB6 H/L数据输入输出引脚16 DB7 H/L数据输入输出引脚17 RST L 复位信号,低电平有效18 VOUT -10VLCD 驱动电源3.2.3指令描述1.显示开/关设置CODE: R/WRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLHHHHHH/L功能:设置屏幕显示开/关。DB0=H,开显示;DB0=L,关显示。不影响显示 RAM(DD RAM)中的内容。2.设置显示起始行CODE:R/WRSDB7DB6DB5DB4DB3DB2DB1DB0LLHH行地址063功能:执行该命令后,所设置的行将显

36、示在屏幕的第一行。显示起始行是由Z 地址计数器控制的,该命令自动将A0-A5位地址送入Z地址计数器,起始地址可以是0-63范围内任意一行。Z地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。3. 设置页地址CODE:R/WRSDB7DB6DB5DB4DB3DB2DB1DB0LLHLHHH页地址07功能:执行本指令后,下面的读写操作将在指定页内,直到重新设置。地址就是 DDRAM的行地址,页地址存储在X地址计数器中,A2-A0可表示8页,读写数据对页地址没有影响,除本指令可改变页地址外,复位信号(RST)可把页地址计数器内容清零。DDRAM地址映像表如表 3.4 所示。表

37、3.4 RAM 地址映像表Y 地址012616263DB0PAGE0DB7DB0PAGE1DB7X=0X=1DB0PAGE6DB7DB0PAGE7DB7X=6X=74.设置列地址CODE:R/WRSDB7DB6DB5DB4DB3DB2DB1DB0LLLH列地址063功能:DDRAM 的列地址存储在 Y 地址计数器中,读写数据对列地址有影响在对 DDRAM 进行读写操作后,Y 地址自动加一。5.状态检测CODE:R/WRSDB7DB6DB5DB4DB3DB2DB1DB0HLBFLON/OFFRSTLLLL功能:读忙信号标志位(BF)、复位标志位(RST)以及显示状态位(ON/OFF)。BF=H:

38、内部正在执行操作;BF=L:空闲状态。RST=H:正处于复位初始化状态; RST=L:正常状态。 ON/OFF=H:表示显示关闭;ON/OFF=L:表示显示开。6.写显示数据CODE:R/WRSDB7DB6DB5DB4DB3DB2DB1DB0LHD7D6D5D4D3D2D1D0功能:写数据到 DDRAM,DDRAM 是存储图形显示数据的,写指令执行后Y地址计数器自动加1。D7-D0位数据为1表示显示,数据为0表示不显示。写数据到DDRAM前要先执行“设置页地址及“设置列地址命令。7.读显示数据CODE: R/WRSDB7DB6DB5DB4DB3DB2DB1DB0HHD7D6D5D4D3D2D1

39、D0根本操作时序:1读状态:输入:RS=L,R/W=H,CS1 或CS2=H,E=H输出:D0D7=状态字2写指令:输入:RS=L,R/W=L,D0D7=指令码,CS1或CS2=H,E=高脉冲 输出:无3读数据:输入:RS=H,R/W=H,CS1 或CS2=H,E=H输出:D0D7=数据4写数据:输入:RS=H,R/W=L,D0D7=数据,CS1或CS2=H,E=高脉冲 输出:无由RAM地址映射表可知LCD显示屏由两片控制器控制,分别用CS1和CS2控制。每个内部带有64X64位512字节的RAM缓冲区,对应关系如图3.3所示。图3.3 LCD地址映射图整个屏幕分左、右两个屏,每个半屏右8页,

40、每页有8行,注意数据是竖行排列,如表3.4。显示一个字要16*16点,全屏有128*64个点,故可显示32个中文汉字。每两页显示一行汉字,可显示4行汉字,每行8个汉字,共32个汉字。而显示数据需要16*8个点,可显示数据是汉字的两陪。屏幕是通过CS1、CS2两信号来控制的,不同的组合方式所选的屏幕是不同的,对应关系如表3.5所示。表3.5屏幕选择表CS1CS2选屏00全屏01左屏10右屏11不沈阳航空航天大学北方科技学院毕业设计论文8.操作1设置开始页地址和列地址。2设定读写模式,进行读写操作。只有理解了液晶显示器各个指令的功能,再结合单片机的指令系统,就你编写C语言程序来到达混合显示汉子和数

41、字的目的。通过程序将字的代码写入相应的DDRAM地址,就可以在相应的位置显示相应的字。3.2.4汉字字模提取液晶显示器件LCD独具的低压、微功耗特性使他在单片机系统中特得到 了广泛的应用,常用的液晶显示模块分为数显液晶模块、点阵字符液晶模块和点 阵图形液晶模块,其中图形液晶模块在我国应用较为广泛,因为汉字不能象西文字符那样用字符模块即可显示,要想显示汉字必须用图形模块。液晶模块显示汉字方法:使用图形液晶模块以点阵形式来显示汉字和图形, 每8个点组成1个字节,每个点用一个二进制位表示,存1的点显示时在屏上显示一个亮点,存0的点那么在屏上不显示,最常用的1616的汉字点阵由32个字节组 成。以在我

42、国应用较为普及的液晶显示驱动控制器12864为例,在液晶屏上竖向8个点为1个字节数据,通过字模提取软件按照先左后右,先上后下的方式对汉字进行字模提取。由于 D0-D7 是从上到下排列的,最上面 8 行是上一页,我们先提取上面一 页的数据 16 个,在按照相同的方法提取下一页的数据 16 个,在分别写入对应的 DDRAM 地址,就可以显示我们所需要的字。简单的字可手工制作,也可以用起 模软件提取标准的宋体汉字,不过本文所用的液晶显示屏用这款软件 要设计纵向取模并且要反字节,否那么将显示乱码。数字只需起汉字的一半数据就可以了,如图 3-3 所示的左边 8 列或者右边 8 列。3.3 LCD的驱动方

43、法在很多资料以及书籍当中,通常介绍有两种LCD模块的连接方法:直接控制和间接控制;直接控制实际指的是LCD模块的总线接口直接与MCU端口连接,然后MCU通过程序控制端口来模拟LCD的总线时序来完成对其的控制操作;而间接控制指的是MCU本身就有外部总线拉出,与LCD的总线接口对应的连接上,程序中直接操作总线以控制LCD。目前有很多MCU都把总线密封起来了,都没有引出外部总线;所以通常在用MCU控制LCD模块时,时常会选择直接控制的方式,即利用端口来模拟总线时序;当然了,如果本身就有总线而且也与LCD模块的总线配得上的话,肯定会使用总线连接的间控方式。本设计的LCD12864模块中,用户程序对其进

44、行显示控制时,无非就是通过对LCD模块内部的驱动控制器当中的存放器进行设置操作;最常用的如LCD的显示开/关、操作显存地址行与列地址的设置等。3.4按键控制电路按键局部采用单独的六个按键,分别与单片机P3.0,P3.1,P3.2,P3.3,P3.4,P3.5。分别分别控制方块下,左,停止,右,变形的变化和确定功能。当按键按下时,与主控芯片连接的端口变为低电平,按键松开那么也升为高电平。按键具有自动弹回的功能,当我们按下按钮时,接点处于接通状态;松开按钮时,接点处于切断状态。如图3.4所示。图3.4按键控制电路图3.5 硬件总体设计硬件总体电路图见附录,硬件总体电路设计包括单片机电路、LCD12864显示单元电路显示俄罗斯方块的游戏界面等,按键电路用按键控制目标方块的变换与移动。正常工作需要每一电路模块的配合,缺一不可,完成了总体俄罗斯方块的设计。4俄罗斯方块的软件设计4.1开发工具介绍Keil C51 Vision3集成开发环境是Keil Software,Inc/Keil Elektronik GmbH开发的基于80C51内核的微处理器软件开发平台,内嵌多种符合当

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁