基于单片机的游戏机设计与实现毕业设计.doc

上传人:知****量 文档编号:43125543 上传时间:2022-09-16 格式:DOC 页数:52 大小:308.50KB
返回 下载 相关 举报
基于单片机的游戏机设计与实现毕业设计.doc_第1页
第1页 / 共52页
基于单片机的游戏机设计与实现毕业设计.doc_第2页
第2页 / 共52页
点击查看更多>>
资源描述

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

1、 基于单片机的游戏机设计与实现毕业设计目录1 引言12 课题任务与方案论证22.1主要任务22.2 方案论证22.2.1 主控制器的选择22.2.2 液晶屏的选择43 系统的硬件组成与接口介绍63.1电源部分63.2单片机部分73.2.1 AT89S52单片机的介绍73.2.2 复位电路73.2.3 晶振电路83.3液晶显示芯片与单片机接口电路93.4控键、蜂鸣器与单片机接口电路94 软件部分设计与调试104.1 C语言程序设计104.1.1 C语言简介104.1.2 C语言特点104.2游戏运行方式114.2.1游戏规则介绍114.2.2流程图114.3部分子程序134.3.1液晶屏初始化函

2、数134.3.2液晶屏写指令和写数据函数134.3.3方块生成函数144.3.4移动和旋转函数154.4程序调试过程164.4.1电路检测164.4.2调试步骤164.4.3调试遇到的问题与解决方案165程序调试和仿真软件175.1 Keil2介绍与编程175.1.1软件介绍175.1.2软件应用175.2 Proteus介绍与应用185.2.1软件介绍185.2.2软件应用19总结20参考文献21附录1 总电路图22附录2 系统程序23致谢5050 / 52 1 引 言如今,游戏机风行的程度,是第一台电子游戏机的研制者诺兰-布什纳尔先生始料不与的。在全世界最大的城市,直至最小的村庄,从纽约最

3、辉煌的游乐场,到高加索最小的乡镇儿童娱乐点,在千家万户,正在进行着千千万万这样的“战斗”,伴随着无数成功与失败,兴奋与懊丧。游戏机带来了一个全球性的疯狂症,其他任何娱乐与之相比都望尘莫与。然而,究竟是什么原因使游戏机如此风行呢? 在回顾了游戏机发展简史之后,我们不难悟出,技术进步在游戏机发展过程中起到了极大的促进作用。第二次世界大战以后,电子计算机技术得到了突飞猛进的发展。先是由晶体管代替了笨重的真空管,后来出现了集成电路和大规模集成电路,使电子计算机一代一代实现更新,同时软件技术也发展迅速。在美国,集中了许多计算机软件的设计人才,他们工作之余,时常喜爱编一种能与人斗智的“游戏”,以此来锻炼编

4、程的能力。这种“游戏”花样繁多,但其特点都是利用计算机软件事先设计好的“分析”、“判断”能力反过来与人较量。由于不断修改更新,使计算机的“智力”水平与人难分高低。随着深蓝计算机与人的棋类对决,到现在的PSP游戏机或者是家庭用的X-BOX游戏机,游戏机的技术是日益的发展、进步。但是,技术进步绝不是游戏机风行的唯一因素。随着终端设备开发能力的加强,作为娱乐终端的游戏机也得到了很大程度的发展。只有得到了游戏终端技术的支持,才能做出更新、更高难的游戏。这也加速了游戏机在全球风行程度,所以对于游戏机的研究和设计具有很重要的意义,这也是本课题研究的来源2课题任务与方案论证2.1主要任务现如今,游戏风靡全球

5、,各种游戏层出不穷,大到网络型的复杂游戏,小到手机游戏、单机游戏、智力游戏等简单游戏。但是这种简单也是相对于网络游戏等大型游戏而言的,小游戏本身的代码还是相当繁杂,它要执行一系列指令才能正确的完成一个简单的操作,才能按照玩家的意志工作。所以我们现在见到的游戏多是在基于电脑这种高速执行指令的平台上运行的,脱离了它就什么事都做不了了。那么推箱子这种小游戏能否在单片机上编出来呢?答案是肯定的,现从以下几个方面加以论证。2.2方案论证首先,我们编写的这个游戏是一个小型游戏,实现的功能比较简单,不像大型游戏那样功能复杂,它只要控制俄罗斯砖块放到正确的位置即可,难度随着砖块的增多而加大,对于实现这样一个功

6、能,程序不是太复杂,用一块单片机足以达到目的。其次,它的控件也比较少只有4个方向键和2个辅助的功能键,这些控键在Proteus中用弹跳式按键代替即可。第三,游戏地图相对比较小、画面简单,只有几个图形,这些在一块稍大的液晶屏上就足以显示,用不着电脑显示屏。第四,就编程语言方面来说,编写这样一个简单的小游戏不需要什么高级的语言,C语言或汇编语言就足以完成,C语言是一种通用型的语言,编程灵活、可读性强、移植性好;汇编语言是一种直接面向硬件的基础语言,最接近机器语言,执行速度快(本游戏采用C语言编写)。由以上几点可知:单片机上运行推箱子游戏在硬件和软件两个方面都是可行的。2.2.1主控制器的选择AT8

7、9S52是标准的40引脚双列直插式集成电路芯如图2-1所示,AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89S52具有以下标准功能:8K字节Flash,256字节RAM,3

8、2位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片晶振与时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。图2-1AT89S52的引脚图(1)管脚功能输入/输出口P0.0P0.7 P0口8位双向口P1.0P1.7 P1口8位双向口P2.0P2.7 P2口8位双向口P3.0P3.7 P3口8位双向口 ALE 地址锁存控制信号在系统扩展

9、时,ALE用于控制把P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。此外由于ALE是以六分之一晶振频率的固定频率输出的正脉冲,因此可作为外部时钟或外部定时脉冲使用。 PSEN 外部程序存储器读选通信号在读外部ROM时 PSEN有效(低电平),以实现外部ROM单元的读操作。EA 访问程序存储器控制信号当 EA 信号为低电平时,对ROM的读操作限定在外部程序存储器;而当 EA信号为高电平时,则对ROM的读操作是从部程序存储器开始,并可延续至外部程序存储器。RST 复位信号当输入的复位信号延续2个机器周期以上高电平时即为有效,用以完成单片机的复位操作。XTAL1和XTAL2

10、 外接晶体引线端当使用芯片部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。Vss 地线Vcc +5V电源(2) 常见的第二功能信号 P3口线的第二功能P3的8条口线都定义有第二功能如表2-1所示表2-1 端口第二功能口线第二功能信号名称P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2INT0外部中断0申请P3.3INT1外部中断1申请P3.4T0定时器/计数器0记数输入P3.5T1定时器/计数器1记数输入P3.6WR外部RAM写选通P3.7RD外部RAM读选通(3)EPROM存储器程序固化所需要的信号有部EPROM的单片机芯片(例如80C5

11、1),为写入程序需提供专门的编程脉冲和编程电源,它们也是由信号引脚以第二功能的形式提供的,即:编程脉冲:30脚(ALE/ PROG)编程电压(25V):31脚(EA/Vpp)2.2.2液晶屏的选择HS12864-1是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器与12864全点阵液晶显示器组成,可完成图形显示,也可以显示84个(16*16点阵)汉字。主要技术参数:1.电源VDD+5V模块自带-10V 负压用于LCD 的驱动电压2.显示容128(列)64(行) 3.全屏幕点阵4.七种指令5.与CPU接口采用8位数据总线并行输入输出和8条控制线6.占空比1/647.工作温度-10+55存储温度

12、-20+60模块的外部接口如表2-2所示:表2-2 管脚功能管脚管脚名称LEVER管脚功能描述1VSS0V电源地2VDD5V电源电压3V0-对比度,亮度调整4D/IH/LD/I=H 表示DB7DB0为显示数据D/I=L 表示DB7DB0为显示指令数据5R/WH/LR/W=H E=H 数据被读到DB7DB0R/W=L E=HL DB7DB0的数据被写到IR或DR6EH/L使能信号7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线10DB3H/L三态数据线11DB4H/L三态数据线12DB5H/L三态数据线13DB6H/L三态数据线14DB7H/L三态数据线15CS1H/L片

13、选,选左半屏16CS2H/L片选,选右半屏17RETH/L复位信号,低电平复位18VEE-LCD驱动电压输出端19AVDDLED背光正源20KVSSLED背光负源3系统的硬件组成与接口介绍3.1电源部分电源装置是电路的能量提供者,该设计中所制作的电源为单相小功率电源,它将50HZ、有效值为220V的单相交流电压转换为幅值稳定、输出电流为几十安以下的直流电压。单相交流电经过电源变压器、整流电路、滤波电路和稳压电路转换成稳定的直流电压,其方框图如图3.1所示。图3.1直流稳压电源的方框图直流电源的输入为220V的电网电压(即市电),一般情况下,所需直流电压的数值和电网电压的有效值相差很大,因而需要

14、通过电源变压器降压后,在对交流电压进行处理。变压器副边电压有效值决定于后面电路的需要。变压器副边电压通过整流电路从交流电压转换为直流电压,即将正弦波交流电压转换为单一方向的脉动电压,但由整流电路输出的电压含有较大的交流分量,会影响负载电路的正常工作。为了减少电压的脉动,需通过低通滤波电路滤波,使输出电压平滑。理想情况下,应将交流分量全部滤掉,使滤波电路的输出电压仅为直流电压。然而,由于滤波电路为无源电路,所以接入负载后势必影响其滤波效果。对于稳定性要求不高的电子电路,整流、滤波后的直流电压可以作为供电电源。交流电压通过整流、滤波后虽然变为交流分量较小的直流电压,但是当电网电压波动或者负载变化时

15、,其平均值也将随之变化。稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得足够高的稳定性。由于系统的要求,需要用5V的稳压直流电源对系统中的芯片进行供电,电路采用7805进行设计。7800系列的最后两位数字表示该集成稳压器的输出电压值,其输出电压的偏差在2%以。固定输出的集成稳压电源的基本电路如图3.2所示。Ui是整流滤波以后的未经稳压的输入电压;Uo是稳压电源的输出电压。总体电源电路如图3.3所示:7805UoUi图3.2 7805接线图图3.3 电源电路3.2单片机部分3.2.1AT89S52单片机的介绍AT89S52 是一种低功耗、高性能CMOS8位微控制器

16、,具有8K在系统可编程Flash 存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口, 片晶振与时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可

17、选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52。在硬件设计时用到了P1口、P2口、P3口,作为IO口进行数据的传输。3.2.2 复位电路单片机上电,当振荡器正在运行时,只要持续给RST引脚两个机器周期的电平便可完成系统复位。外部复位电路是为部复位电路提供两个几个机器周期以上的高电平而设计的。系统采用上电自动复位,上电瞬间电容器上的电压不能突变,RST上的电压是VCC和电容器上电压差,因而

18、RST电压大小与VCC相同。随着充电的进行,电容器上电压不断上升,RST电压就随着下降,RST引脚只要保持10ms以上高电平系统就会有效复位。电容C可取1033Uf,电阻R可取1.210K。系统设计中C取10uF,电阻R取10K,充电时间常数为100ms。上电复位采用电平方式开关复位。如图3-4所示。上电复位用RC电路,电容用10uF,电阻用10K。图3-4 复位电路3.2.3晶振电路XTAL1和XTAL2引脚分别构成片振荡器反相放大器的输入和输出端,外接石英晶体或陶瓷振荡器以与补偿电容C1、C2构成并联谐振电路。当外接石英晶体时,电容C1、C2选30pF;当外接陶瓷振荡器时,电容C1、C2选

19、47pF.AT89S52系统中晶振可在024MHz选择.外接电容C1、C2的大小会影响振荡器频率的高低、振荡频率的稳定度、起振时间与温度稳定性。在设计电路板时,晶振和电容应靠近单片机芯片,以便减少寄生电容,保证振荡器稳定可靠工作。在系统设计中,为保证串行通信波特率的误差应选择12MHz的标准石英晶振,电容C2、C3为33pF。如图3-5所示图3-5 晶振电路3.3液晶显示芯片与单片机接口电路液晶显示屏共有20个引脚,其中VDD接电源,VSS接地,RS接单片机的P1.0脚,RW接单片机的P1.1脚,使能端E接P1.2脚,片选端接P1.3和P1.4,D0D7数据段接口接P2.0P2.7。如图3-6

20、所示图3-6 液晶显示与单片机相连电路图其中传输数据和指令的时候需要配置P1.0,P1.1,P1.2口,其中P1.2口控制的是液晶显示的E使能端,下降沿有效。P1.0控制的是液晶显示的I/O端,高电平的时候传输数据,低电平的时候传输指令。3.4控键、蜂鸣器与单片机接口电路本游戏共有6个控键,分别是:三个方向键,用于控制俄罗斯方块的移动方向;一个确定键,用于刷新初始化界面进入游戏界面;一个暂停键,用于暂停,一个变形键,用于将方块转换方向。一个蜂鸣器,用于按键发声,以提示按键是否有效。控件、喇叭与单片机的接线是:下移键接P3.0;左移键接P3.1;右移键接P3.3;暂停键接P3.2;确定键接P3.

21、5;变形键接P3.4;蜂鸣器与P3.6相连。程序通过查询的方式检查是否有按键按下,调用移动或旋转函数。每次有按键按下都会触发蜂鸣器,提示按键有效按下。4 软件部分设计与调试4.1C语言程序设计4.1.1C语言简介C语言是在70年代初问世的。一九七八年由美国电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一书。通常简称为K&R,也有人称之为K&R标准。但是,在K&R中并没有定义一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C 语言标准,于一九八三年发表。通

22、常称之为ANSI C。 早期的C语言主要是用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。成为当代最优秀的程序设计语言之一。C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C

23、语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,形成了多种版本的C语言。C语言对操作系统和系统使用程序以与需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。4.1.2C语言特点(1)简洁紧凑、灵活方便: C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。(2)运算符丰富: C的运算符包含的围很广泛,共有种34个运算符。C语言把

24、括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。 (3)数据结构丰富: C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。 (4) C是结构式语言:结构式语言的显著特点是代码与数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以与调试。C语言是以函数形式提

25、供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 (5) C语法限制不太严格、程序设计自由度大:一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。 (6) C语言允许直接访问物理地址,可以直接对硬件进行操作:因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。(7) C语言程序生成代码质量高,程序执行效率高:一般只比汇编程序生成的目标代码效率低1020%。(8) C语言适用围大,可移植性好:C语言有一个突

26、出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。4.2游戏运行方式4.2.1游戏规则介绍游戏规则介绍:最开始显示开机画面并由按键B进入游戏,进入游戏后将会选择方块下降速度,然后由按键A控制游戏开始随机出现由四个小方块组成的一个图形,从屏幕上方落到下方,由按键左、右控制方块的左移和右移,由按键下控制方块快速下降,由按键A控制方块的形状,可以将方块进行旋转,用以放到适宜的位置。当某一行被摆满之后进行消除这一行,并在分数上加一。当某一列被摆满时,游戏完毕,显示完毕画面。在游戏过程中,由按键上暂停游戏,再次按下按键上可以继续游戏。当消够三十行时,速度会加一。4.2.2流程图单片

27、机控制电路采用AT89S52。主要实现对俄罗斯方块的控制,控制方块的移动和旋转,显著特点是用软件简便实现某些硬件功能。主流程图如图4-1所示:显示完毕画面YN游戏是否完毕执行移动或者旋转程序NY是否有按键按下扫面端口Y开始游戏N是否有按键按下扫面端口显示开机画面初始化液晶屏开始图4-1 主流程图接通电源后系统将初始化液晶屏,然后执行清屏程序。一切准备就绪后,显示开始画面。当按确定键后进入游戏,进入游戏时先通过左右键选择游戏速度,即方块下降的速度。然后按旋转键,进入游戏画面,系统随机生成方块形状。这时单片机查询按键是否按下,如果没有按键按下,画面上的方块将下降。一旦查询到按键按下,择调用相应的执

28、行函数。如果按下左、右或者下,则调用移动函数,如果按下旋转键,则调用旋转函数,如果按下暂停键,则调用暂停函数。如果一次按下的按键超过一个,则按预定的优先顺序执行,优先顺序为旋转、下、左、右、暂停。当有一行被填满时,执行消行函数,并计分,满三十行,速度将加一。当某一列被填满时,游戏完毕,显示完毕画面。按下开始键,返回开始画面。4.3部分子程序4.3.1液晶屏初始化函数void LCD_initialize()LCD_RST=0;_nop_();_nop_();LCD_RST=1;LCD_W_code(0x3f,0);/开显示设置LCD_W_code(0xc0,0);/设置显示起始行为第一行LCD

29、_W_code(0xb8,0);/页面地址设置LCD_W_code(0x40,0);/列地址设为0LCD_W_code(0x3f,1);LCD_W_code(0xc0,1);LCD_W_code(0xb8,1);LCD_W_code(0x40,1);液晶屏初始化函数可以将液晶开显示,然后准备好液晶的页地址、行地址和列地址,0x3f是开显示代码,0xb8是页地址,0x40是行地址0xc0是列地址。本设计只需开一次显示,之后就不再关显示了。页地址、行地址和列地址,分别是首页、首行和首列的地址,之后显示的时候需要在屏幕的哪个地方显示就加上它的页地址和列地址就可以了。经过循环就可以显示出字母、汉字或者

30、是图画了。4.3.2液晶屏写指令和写数据函数void LCD_W_code(unsigned char tpcode,bit cs)/LCD_check_busy();LCD_RS=0;LCD_RW=0;LCD_CS2=cs;LCD_CS1=cs;LCD_DATA=tpcode;LCD_E=1;_nop_();LCD_E=0;/写指令代码(cs为0选左屏,cs为1选右屏)void LCD_W_data(unsigned char tpdata,bit cs)/LCD_check_busy();LCD_RS=1;LCD_RW=0;LCD_CS2=cs;LCD_CS1=cs;LCD_DATA=tp

31、data;LCD_E=1;_nop_();LCD_E=0;/写数据(cs为0选左屏,cs为1选右屏)当LCD_RS和LCD_RW都为地电平的时候,单片机向液晶显示屏写指令即地址,准备向该地址写入数据,当LCD_RS为高、LCE_RW为低的时候,单片机向液晶显示屏写数据即显示容,然后再使能端E的下降沿传入液晶显示屏。4.3.3方块生成函数structunsigned char mode;/类型unsigned char shape;/形状unsigned char x;/x坐标unsigned char y;/y坐标unsigned int box;/定义方块缓存s_box;/定义方块结构体vo

32、id box_build()s_box.mode=next_mode;s_box.shape=next_shape;s_box.x=3;s_box.y=0;next_mode=TL0%7;/产生随机数,但是是伪随机的next_shape=TL0%4;/产生随机数,但是是伪随机的show_next_box();/方块生成函数先用结构体将方块的类型、形状和将出现时的位置用一个结构体储存起来,然后调用结构体,产生方块和下一方块。利用定时器0的第八位与7和4分别取模,得到下一方块的类型和形状,不是随机产生的方块,是伪随机的,但是定时器运转很快,所以可以看作是随机产生的方块。4.3.4移动和旋转函数vo

33、id game_button()switch(basic_button()case 1: if(s_box.y!=0)/1表示down被按下EA=0;/关中断,如果不关的话可能引起游戏显示混乱while(check_cover(s_box.x,s_box.y+1,s_box.box)/检测是否能下降,指导不能再下降为止s_box.y+;box_to_Box_Ram(s_box.x,s_box.y-1,s_box.box);destroy_row();box_build();box_load();box_to_Box_Ram(s_box.x,s_box.y,s_box.box);EA=1;/开中

34、断break;case 4: if(s_box.y!=0)/4表示left被按下EA=0;/关中断,如果不关的话可能引起游戏显示混乱speaker=1;if(check_cover(s_box.x-1,s_box.y,s_box.box)s_box.x-;box_to_Box_Ram(s_box.x+1,s_box.y,s_box.box);EA=1;/开中断speaker=0;break;case 5: if(s_box.y!=0)/5表示right被按下EA=0;/关中断,如果不关的话可能引起游戏显示混乱speaker=1;if(check_cover(s_box.x+1,s_box.y,

35、s_box.box)s_box.x+;box_to_Box_Ram(s_box.x-1,s_box.y,s_box.box);EA=1;/开中断speaker=0;break;因为键盘是直接接到P3口的,所以用扫描键盘的方式编程,当扫描到有左键、右键和下键被按下时,执行相应的移动函数,如果button_A键被按下,执行旋转函数。所有的函数都是对数组的编辑,对数组里的数进行运算,将一个方块看作一个整体,让它所占的数组进行变换,即可在屏幕上的到相应的变化。4.4程序调试过程4.4.1电路检测将电路各个部分按照电路图所示焊接好,如不能正常工作,按原理图分模块进行电路检测,是否有虚焊或漏焊现象;如焊接

36、正常,在按信号传递的方向逐级检测,找出出问题的一级,并向该级的上级进行检测,直到将故障排除。4.4.2调试步骤将液晶测试软件烧入到单片机中,检查液晶屏是否完好,电路是否错误。检查硬件线路是否有短路或焊接不牢的问题4.4.3调试遇到的问题与解决方案最开始焊接好的电路后发现程序不能被烧录到单片机中去,经过检查发现是由于有一根线的绝缘皮破裂,导致硬件电路短路,修改后可以成功烧录程序。调试液晶显示器的时候将液晶显示器的测试程序烧录到单片机中后,发现不能显示,经过检查后发现是由于液晶显示屏的对比对调节出现了问题,经过修改,可以成功显示。最初编程的时候不能生成HEX文件,不能烧录入单片机中,经过检查是由于

37、电脑的系统和Keil2软件兼容性差所导致的原因,将Keil2软件从新激活后问题得大了解决。5程序调试和仿真软件5.1Keil2介绍与编程5.1.1软件介绍Keil C51 Vision2集成开发环境是Keil Software,Inc/Keil Elektronik GmbH开发的基于80C51核的微处理器软件开发平台,嵌多种符合当前工业标准的开发工具,可以完成从工程建立到管理、编译、目标代码的生成、软件仿真、硬件仿真等完整的开发流程尤其是C编译工具在产生代码的准确性和效率方面达到了较高的水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。Keil C51集成开发环境的主要功能有以下几

38、点:1Vision2 for Windows:是一个集成开发环境,它将项目管理、源代码编辑和程序调试等组合在一个功能强大的环境中;2C51国际际准化C交叉编译器:从C源代码产生可重定位的目标模块;3A51宏汇编器:从80C51汇编源代码产生可重定位的目标模块;4BL51器/定位器:组合由C51和A51产生的可重定位的目标模块,生成绝对目标模块;5LIB51库管理器:从目标模块生成连接器可以使用的库文件;6OH51目标文件至HEX格式的转换器,从绝对目标模块生成Intel Hex文件;7RTX-51实时操作系统:简化了复杂的实时应用软件项目的设计。Vision2支持所有的Keil 80C51的工

39、具软件,包括C51编译器、宏汇编器、器/定位器和目标文件至Hex格式转换器,Vision2可以自动完成编译、汇编、程序等操作。5.1.2软件应用建立一个C项目,使用C语言需要要使用到C编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。编程之前先建立一个Project和一个后缀为.c的文件,用来编辑系统程序,选择系统用的AT89S52单片机,然后在编辑区编辑系统程序。编辑好程序后,进入调试阶段先编译程序,检查程序中是否有错误,当显示0错误、0警告时,就可以对整个程序运行并生成HEX文件,用ISP方式,将HEX文件烧录到单片机中,然后就可以进行硬件调试。5.2Proteus介

40、绍与应用5.2.1软件介绍Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线与电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示与输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,您不需要别的,Proteus为您建立了完备的电子设计开发环境!尤其重要的是Proteus Lite可以完全免费,也可以花微不足道的

41、费用注册达到更好的效果;功能最强的Proteus专业版也非常便宜,人人用得起,对高校还有更多优惠。 Proteus组合了高级原理布图、混合模式SPICE仿真,PCB设计以与自动布线来实现一个完整的电子设计系统。此系统受益于15年来的持续开发,被电子世界在其对PCB设计系统的比较文章中评为最好产品“The Route to PCB CAD”。Proteus 产品系列也包含了我们革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。 其功能模块:个易用而又功能强大的ISIS原理

42、布图工具;PROSPICE混合模型SPICE仿真; ARES PCB设计. PROSPICE 仿真器的一个扩展PROTEUS VSM:便于包括所有相关的器件的基于微处理器设计的协同仿真。此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LEDs甚至LCD显示CPU模型. 1支持许多通用的微控制器,如PIC,AVR,HC11以与8051. 最新支持ARM2交互的装置模型包括: LED和LCD显示,RS232终端,通用键盘,I2C,SPI器件3强大的调试工具,包括寄存器和存储器,断点和单步模式4IAR C-SPY 和Keil uVision2等开发工具的源层调试5应用特殊模型的DLL界面-提

43、供有关元件库的全部文件 6最新版支持非常丰富仿真元件共7000多种,还有很多第三方模型。如MMC卡,以太网卡,ATA硬盘,麦克风,等等。该软件的特点: 全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。 具有模拟电路仿真、数字电路仿真、单片机与其外围电路组成的系统的仿真、RS232 动态仿真、I2C 调试器、SPI 调试器、键盘和LCD 系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 目前支持的单片机类型有:68000系列、8051系列、AVR 系列、PIC12 系列、PIC16 系列、PIC18 系列、Z80 系列、HC11系列以与各种外围芯片。

44、支持大量的存储器和外围芯片。总之,该软件是一款 集单片机和SPICE 分析于一身的仿真软件,功能极其强大,是其他任何一款软件不能相比的。5.2.2软件应用 本软件是单片机仿真软件,在软件中绘制出系统电路图,并将Heil2生成的HEX文件调入到仿真软件的AT89S52单片机中。经检查仿真软件中的电路图无误后,可以进行仿真调试,电机仿真开始,可以在仿真界面里看到液晶显示出的图像,并可以对整个电路进行控制,仿真出硬件电路的调试过程。 总 结通过此次毕业设计,我不仅把知识融会贯通,而且丰富了大脑,同时在查找资料的过程中也了解了许多课外知识,开拓了视野,认识了将来电子的发展方向,使自己在专业知识方面和动手能力方面有了质的飞跃。“基于单片机的游戏机设计与实现”是从我们的日常生活而来的一个课题,该课题本身不是那么复杂,而且当今市场上卖的游戏机也是高级得多。选这个课题并不是要做多么高级的

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

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

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

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