基于stm32的游戏设计大学论文_第1页
基于stm32的游戏设计大学论文_第2页
基于stm32的游戏设计大学论文_第3页
基于stm32的游戏设计大学论文_第4页
基于stm32的游戏设计大学论文_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

沈阳理工大学学士学位论文绪论1.1设计背景近年来,社会发展十分迅速,我国的经济、科技等各领域都发展非常快,特别是以计算机技术、软件、通信等为核心的高新技术产业取得了十分迅速的发展。随着手机、电脑等各种智能产品产业的腾飞,嵌入式系统也深入到我们日常生活的方方面面。不仅仅是在日常生活当中我们离不开嵌入式产品,在工业、农业等各个领域都需要嵌入式产品的支持,嵌入式系统为人们的生活带来便捷,为工业、农业等生产提高效率[1]。嵌入式行业的兴起也带动了软件行业的发展,因为一个完整的嵌入式系统离不开硬件和软件的结合。单片机系统也属于嵌入式系统中的一种,它因为可靠性高、成本低、功能强大等因素,被广泛应用在工业、农业以及我们的日常生活之中。单片机不仅可以开发工业类产品,也经常用于开发消费类的电子产品,如电子表、MP3、MP4、掌上游戏机等等。如今掌上游戏机非常盛行,从繁华的城市到宁静的乡村,从成年人到小孩,都喜爱玩游戏机。游戏机带给人们成功的兴奋和失败懊恼,给人们一种现实生活无法满足的奇妙体验。除了顺应嵌入式开发热门的潮流和游戏机热门潮流以外,开发此游戏机还有以下几点原因:1.当下城市中的人们生活节奏快,压力大,需要通过游戏等娱乐方式来消遣。而此款游戏机设计成可以玩一些经典的小游戏,让人们在怀旧中体验游戏的乐趣。2.此游戏机也被设计成小型的开发板,而且硬件软件等资源将会在设计完成后开源,所有人都可以自己开发游戏,可以利用此游戏机学习嵌入式开发,可谓寓教于乐。结合上述几点,我认为此项目有着巨大发展潜力。1.2设计意义掌上游戏机诞生于上世纪80年代,最早的掌机系列是由Mattel公司推出的掌机系列,但是真正意义上的掌上游戏机室任天堂的Game&Watch系列。Game&Watch系列掌机把游戏的乐趣带到了广大的玩家身边。它也是第一款只有手掌大小的游戏机。从此以后,各个游戏硬件公司都相继推出了自己的掌上游戏机。由于掌上游戏机的硬件、软件速度发展十分迅速,所以游戏的趣味性和掌机的可玩性也得到大幅度提升。掌上游戏机一度成为游戏界的热门。由于现代半导体技术飞速发展,所以现在的处理器更新速度非常快。从早期的51单片机到现在的高级ARM处理器,微控制器从8位发展到32、64位,主频也从几MHz到现在的几GHz。现如今在微处理器领域,Cortex-M3内核芯片是最常用的一个系列。这种芯片性能较51内核单片机有大幅度的提升,外围的器件也十分丰富,但是价格却和8位单片机相差不多。所以现在的微控制器使用最多的就是Cortex-M3系列的芯片。所以,对于这种芯片的使用是现在电子类学生和从事电子行业的人员必须掌握的技能。本设计是采用Cortex-M3内核芯片--STM32作为主控设计了一款掌上游戏机。该掌上游戏机可以玩一些经典的游戏,十分富有趣味性。本设计最大的特点是掌上游戏机可以作为STM32芯片的开发板使用,并且软件、硬件全部开源。所有的使用者不仅可以体验到掌上游戏的乐趣,也可以把它当做学习编程和STM32芯片的一款开发板。并且使用者可以自行开发游戏并下载到此游戏机中运行。所以,本设计不仅能让使用者体验到游戏的乐趣,放松身心,而且寓教于乐,可以使得使用者学习到专业的知识。可以说趣味性和实用性并存,十分具有现实意义和研究价值。1.3国内外研究现状在电子方面,发达国家比国内起步早,技术更加先进,更加高度产业化。所以电子产品如掌上游戏机也是国外的较多较发达一点。国内市场上的掌上游戏机品牌众多,品质参差不齐。有众多的仿制国外的PSP、3DS等知名产品的游戏机出现,但是其产品不是开源的。国内基于单片机的开源硬件可以说非常之多,基本上涉及到了8、16、32位的单片机。但是也没有以掌上游戏机作为开源硬件平台的。可以说国内的掌上游戏开源的硬件市场还是一片空白。国外的开源掌上游戏机也屈指可数,WIZ是韩国GAMEPARKHoldings公司于2009年推出的开源掌机,除了官方游戏,玩家都可以开发自制软件或游戏,还能放上专属平台让人下载。Wiz整合了NDS跟PSP的功能,2.8寸触控屏幕,可听MP3、看AVi格式视频,内置1GBNANDFlash、支援SD卡,,具备3D加速、533MHz的CPU。Arduboy是由一位国外玩家开发的8位掌上游戏机,只有信用卡大小,厚度仅有5毫米,一块OLED黑白显示屏、六个按键、两个扬声器、金属材质的外壳,续航可以达到8小时。它是基于arduino的产品。现在是国外比较火爆的一个掌上游戏开源硬件。1.4本设计所做工作对于基于STM32的掌上游戏开源硬件的设计的设计这一课题,主要做了以下工作:(1)深入调查掌上游戏机的和开源硬件的市场现状及发展前景和国内外研究现状。(2)熟练掌握STM32的应用和开发。包括熟STM32芯片的I/O口,定时器,中断等知识。(3)根据设计要求选择合适的显示屏、外围芯片的器件。(4)完成硬件电路原理图设计和PCB图的绘制,并且正确搭建硬件电路。(5)完成软件系统的C语言程序编写。(6)对系统进行测试与分析,根据测试结果对系统软硬件进行相应的调整,使之达到设计要求。(7)撰写论文。1.5本章小结本章节主要是说明设计的背景和意义,以及研究的内容。首先,结合现实分析了掌上游戏机产生和发展的社会背景。其次,结合实际以及本设计的目标阐述了本设计的现实意义。然后,阐述了国内外的同类的研究的成果,并且简单预测了一下掌上游戏机的未来发展趋势。最后,阐述本论文的研究的主要内容和所需要做的主要工作。2系统方案设计2.1系统结构框图本设计主要以STM32F103系列微控制器作为主要控制单元,以LCD显示屏、陀螺仪/加速度计模块、按键和USB转串口芯片为主要应用,实现了一款简单的掌上游戏机的功能。陀螺仪(加速度计)和按键作为信号输入端,人通过重力感应或者按键输入来想系统发送控制信息。STM32接收控制信息并处理,运行游戏核心代码和算法,并控制LCD显示屏显示相应的游侠效果。USB转串口芯片和主控芯片自带的串口组成了下载模块,可以实现烧录程序的功能,所以本设计又可以作为一块STM32开发板使用。下面是本设计的系统结构框图。陀螺仪/加速度计陀螺仪/加速度计计STM32主控芯片STM32主控芯片LCD显示屏按键按键下载模块下载模块图2.1系统结构框图2.2系统主控芯片介绍STM32F103系列芯片是ST公司推出的新型的低功耗的32位微处理器。STM32F103的工作主频是72MHz,有数十K的片内RAM和众多的硬件通信接口和其他的外围设备[6]。STM32是基于ARM公司的Cortex-M3内核的一款芯片,它的处理性能相对于8位和16位的微控制器有着巨大的提升,但是功耗和成本却提升很小。STM32一般用在控制领域,能处理较为复杂的运算,丰富的外围设备为其提供了很好的控制能力和联接能力[5]。STM32F103系列处理器也有着不同的型号和规格。但是不同型号的芯片软件、外设有着极高的兼容性,这也为其应用带来更好的灵活性和便捷性。可以在不修改上层和中间层软件的情况下,仅仅修改下底层引脚、外围设备的初始化就可以实现不同型号的处理器的更换,或者改用不同的封装规格【7】。在stm32f103系列处理器中,stm32fl03zet6信号的处理器十分符合本设计的要求。该型号的处理器的特点如下:(1)宽电源电压输入,电源电压的范围时2.0-3.6V;(2)低功耗模式有:睡眠模式、停机模式和待机模式;(3)内部集成一个12位的AD转换器,拥有16个转换通道,1us转换时间;(4)可以使用SWD和JTAG接口对程序进行调试;(5)有多达7个通道的DMA控制器,DMA支持的外设有定时器、ADC、IIC、SPI和UART;(6)IO口数量较多,可以和5V器件兼容;(7)所有的IO口都可以映像到外部中断;(8)有多个定时器,定时器可以设置产生PWM信号;(9)有多个硬件通信接口:2个IIC硬件接口,3个串口、2个高速的SPI接口;(10)带有USB2.0接口。【4】正是因为stm32的这些特性,使得这款处理器十分符合嵌入式控制的要求,也十分符合本设计的控制要求。不仅如此,ST公司还专门为stm32系列处理器开发了相应的库函数,使得使用stm32的开发人员不用去操作底层的寄存器,大大加快了开发的进度。,节省了开发人员的时间【5】。所以本设计的主控芯片就是选择stm32f103zet6型号处理器,改型号处理器有多种封装,为了焊接方便,本设计选用的封装形式为LQFP封装形式,如图2.2所示:图2.2STM32芯片引脚图2.3显示屏介绍本设计中选用的显示屏幕是一款通用的TFTLCD模块,采用LCD模块和钢化外屏组成,质量好,便于开发,该模块有如下特点:2.8寸显示屏,显示区域为57.6mm*47.2mm。分辨率高,为320×240分辨率。3.3V工作电压。16位8080/6080并口接口方式。16位色(65K)显示支持。钢化玻璃外屏,坚固耐用。采用排针将接口扩展出,接口通用,方便开发。TFTLCD显示屏模块实物图如图2.3所示。图2.3TFTLCD显示屏模块实物图该驱动器具有26万色像素显示的能力。整个的芯片组成包括源极驱动器和栅极驱动器,一个用于显示图形的17K字节的GRAM。ILI9341支持多种数据总线的MCU接口,包括8、9、16、18位数据总线格式,支持RGB接口和SPI接口。由于ILI9341是封装在LCD显示屏中,所以只要关注LCD的引脚定义。ILI9341为和MCU接口提供了引脚IM[3:0]来控制,该引脚和接口选择的对应关系如表所示。表2.1LCD显示屏接口方式配置表IM3IM2IM1IM0MCU接口模式00008080并口8位数据总线接口I00018080并口16位数据总线接口I00108080并口9位数据总线接口I00118080并口18位数据总线接口I01013线9位SPI接口I01104线8位SPI接口10008080并口16位数据总线接口II10018080并口8位数据总线接口II10108080并口18位数据总线接口II10118080并口9位数据总线接口II11013线9位SPI接口II11104线8位SPI接口II本设计TFTLCD模块选用的是16位的8080并口方式与MCU连接,之所以使用16位的方式,是因为彩屏的数据量较大,8位数据口传输数据的速度较慢,大约是16位方式速度的二分之一以下,所以为了提高彩屏刷新的速度,本设计使用的是8080并口的16位的接口【2】。模块的8080并口读写数据或者命令的过程为:.根据要读写的信号类型来设置RS引脚的电平,高电平(数据),低电平(命令)。拉低CS片选信号,选中ILI9341。根据是要读数据还是写数据来相应的置RD/WR为低电平。在RD或者是WR的上升沿将数据锁存起来[5]。ILI9341的8080并口的写时序如图2.4所示:图2.4ILI9341的8080并口写时序ILI9341的8080并口的读时序如图2.5所示:图2.5ILI9341的8080并口读时序TFTLCD的复位引脚直接连接到STM32的复位引脚上面,这样当系统上电的时候,,TFTLCD的控制芯片ILI9341就会和STM32一起被复位了。2.4操作方式介绍本设计考虑到游戏机的可玩性和玩家的游戏体验,设计了两种不同的操作游戏的方式。一种是常见的按键模式,另外一种是可玩性较高的重力感应模式。首先介绍常见的按键模式。本设计中总共设计了9个按键,这9个按键按照功能可以分为方向按键、游戏按键、功能按键三类。其中方向按键为4个,分别是控制上、下、左、右的按键。游戏按键为2个,功能根据不同的游戏而不同。功能按键为3个,这3个按键主要的功能就是在菜单选择中,选择游戏模式和开始游戏。本设计选用的按键是常用的轻触按键,规格为6mm×6mm×5mm的4脚轻触按键。这种按键的优点是体积小、机械性能好【10】。下面是按键的实物图。图2.6按键实物图本设计中重力感应功能是通过运用陀螺仪(加速度计)来实现的。使用的陀螺仪(加速度计)传感器型号是MPU6050。这款传感器模块是三轴陀螺仪和三轴加速度计融合的一款集成型传感器模块。模块内部采用低压差稳压芯片,使得模块供电电压范围更加宽泛(3V-5V)。模块采用标准的IIC通信协议,芯片内置16位的AD转换器,16位数据输出,精度较高。陀螺仪范围可以软件配置为:±250°/s、±500°/s、±1000°/s、±2000°/s。加速度范围也可以通过软件配置为以下的精度:±2g、±4g、±8g、±16g。下面是mpu6050模块实物图。【1】图2.7MPU6050实物图2.5下载模块设计本设计的设计目标不仅仅是一个掌上游戏机,更重要的功能是作为一个开源硬件供使用者开发游戏和学习编程。所以本设计中设计了程序下载的功能。考虑到硬件的尺寸等因素,程序下载的方式是通过串口下载。串口下载程序需要使用USB转串口芯片来实现PC机与STM32芯片串口的通信。本设计使用的USB转串口芯片是CH340。这款芯片具有以下特点:外围器件需要少,只需要晶振和少量电容。全速USB设备接口,兼容USB2.0。硬件全双工串口,波特率支持范围50bps--2Mbps。宽电源电压:3.0-5.5V。具有多种封装。下面是ch340g芯片的实物图。图2.8ch340g芯片实物图2.6本章小结本章节主要是说明设计的方案和选用的主要器件的介绍。首先,根据设计要求确定系统的硬件框图,表明了各个硬件模块之间的联系和功能。其次,在系统框图的结构下,选择合适的符合设计要求的功能模块和芯片,并对这些功能模块和芯片进行简单介绍。首先介绍的是本设计的主控芯片STM32,介绍了该芯片的主要的特点,并说明选择该芯片做为设计系统主控的理由。其次,介绍了系统的显示模块--LCD显示屏。说明了显示屏幕驱动芯片的主要的特性及其和主控芯片的通信的方式。然后,介绍了本设计中两种操作方式的设计以及选用的器件的特点。本设计的操作方式分为按键操作和重力感应操作两种,并分别对选用的按键和mpu6050传感器模块作了简单的介绍。最后,介绍了本系统下载程序的模块的设计方案。重点介绍了USB转串口芯片的特点。3系统硬件设计3.1STM32核心电路STM32核心电路中包括STM32芯片与扩展的接口、晶振电路、手动/自动复位电路。其电路原理图如图3.1所示。图3.1STM32核心电路原理图(1)扩展接口由于STM32芯片引脚较多,本设计中使用的只是其中的一部分,如果需要外接其他器件进行功能测试,则需要用到扩展接口。通过扩展接口可以使用芯片的IO口、IIC接口、SPI接口、AD/DA转换接口等等芯片外围设备。这些扩展接口可以使用杜邦线和其他的功能模块进行连接,从而达到测试和使用其他功能模块的功能。(2)晶振电路STM32的OSCIN、OSCOUT引脚连接一个频率为8MHz的晶振,晶振两端分别连接一个20pf的电容,电容另一端接地。这个8M晶振作为芯片的主要的时钟来源,为芯片内部定时器、IO口等等提供精准的时钟。另外OSC32两个引脚连接一个频率为32.768KHz的晶振,晶振两端也分别连接一个20pf的电容,电容另一端接地。这个晶振是为芯片内部的实时时钟模块(RTC)提供时钟输入的。设计中,晶振两端的电容的取值是十分重要的,晶振两端的电容的值如果太小,电路虽然容易起振,但是不稳定;如果电容值取的过大,虽然稳定,但是不容易起振。所以本设计选择了一个比较合适的值。这样就构成了STM32核心电路中的晶振电路。(3)复位电路设计中采用上电自复位与手动复位电路。复位电路的原理是STM32的RESET引脚接收到一小段时间的低电平电平信号,单片机就会复位。而本设计使用的STM32复位需要RESET引脚被拉低至少300ns,所以只要电容的充放电时间比300ns要长,那么整个单片机就可以实现复位的功能。电路中的电容值是可以改变的。那么这里我们使用常用的10uf和10K电阻的组合。根据上图电路制作的复位电路,在系统上电时,单片机将被复位,如果按下按键,单片机也将被复位。由于人操作的速度不是很快,所以按下按键的时间理论上会大于300ns,所以在按下按键后,系统将复位。3.2LCD显示模块电路TFTLCD模块采用2*17的2.54公排针与外部连接,接口定义如图3.2所示。图3.2TFTLCD模块电路原理图从上图中可以看出,TFTLCD模块采用16位并口方式和STM32芯片相连接。该模块的16位的8080并口的有如下的信号线:CS:LCD显示屏片选信号。WR:向LCD显示屏写入数据标志信号。RD:从LCD显示屏读出数据标志信号。D15[15:0]:16位数据信号线。RST:硬件复位引脚。RS:命令/数据选择标志(0:命令、1:数据)。为了节省主控芯片的IO口,将模块的RST引脚直接连接到STM32的RESET引脚上,这样当系统上电的时候,TFTLCD模块会被硬件复位。另外还需要一个IO口来控制模块的背光。所以,总共需要21个IO口来控制TFTLCD模块。需要注意的是,上图标注的DB1--DB8、DB10--DB17,是相对于LCD控制IC标注的,实际上可以把它们就等同于D0~D15(按从小到大顺序)[4]。通过这16位的8080并口和其它几个控制端口,就可以实现主控芯片和TFTLCD驱动IC的通信了。主控芯片通过向驱动IC发送命令,可以设置驱动IC的相应的寄存器,从而设置TFTLCD显示屏的相关参数。通过向驱动IC发送相应的命令和数据,可以使得显示屏显示相应的图案或者字符。3.3按键电路如图3.3所示为键盘模块的电路原理图。图3.3键盘模块原理图本设计中总共有9个按键,分别是3个功能选择按键(WK_UP、KEY0、KEY1),4个游戏方向按键,(KEY_UP、KEY_DW、KEY_R、KEY_L)和2个游戏功能按键(KEY_P1、KEY_P2)。WK_UP按键连接的是芯片的PA0口,按键另外一端连接的3.3V电源正极,所以当WK_UP按键按下的时候,PA0口检测到的是高电平。其它的按键一端连接的主控芯片的IO口上,另外一端连接到电源地,所以这些按键按下的时候,相应的IO口检测到低电平。独立式键盘的组成是通过多个按键直接与主控芯片的IO口对应连接,程序扫描读取各个单片机串口的电平状态,通过单片机对相应端口电平的识别确定按键开关的闭合,一个按键只能对应一个单片机端口,但可以通过程序控制来实现一个按键对应多个功能。3.4陀螺仪接口电路陀螺仪接口电路原理图如图3.4所示。图3.4陀螺仪接口电路原理图由原理图可知,该模块总共有8个引脚,但是本设计中使用的是该模块的IIC总线接口来进行数据的传输,所以只需要使用到模块的SDA、SCL、VVC和GND这4个引脚。SDA是IIC总线的数据线,SCL是IIC总线的时钟线。这两根线都通过一个4.7K的定值电阻连接到系统的3.3V电源上去,即外加上拉电阻,这样可以使得在总线空闲的时候,SDA和SCL的电平都是高电平,符合IIC协议传输的规范。MPU6050模块通过IIC总线和主控芯片传输数据。主控芯片向MPU6050模块传输相应的命令和数据,设置MPU6050内部集成的寄存器,MPU6050自动将得出的原始数据传输给主控芯片。3.5程序下载电路程序下载电路原理图如图3.5所示。图3.5程序下载电路原理图STM32的程序下载有多种方法:USB、串口、JTAG、SWD等,这几种方式,都可以用来给STM32下载代码【2】。不过,其中最常用的,最经济的,就是通过串口给STM32下载代码。上图就是USB转串口模块的原理图,而USB转串口模块就是使用串口方式给STM32下载程序的硬件电路。STM32的串口下载一般是通过串口1下载的,本设计不是通过RS232串口下载的,而是通过自带的USB串口来下载。看起来像是USB下载(只需一根USB线,并不需要串口线)的,实际上,是通过USB转成串口,然后再下载的。既然功能是将USB转串口,那么就必须用到USB转串口芯片了。本设计选用的USB转串口芯片是ch340g,该芯片封装形式为SOP-16,下面对其引脚进行说明。表3.1ch340g引脚说明表编号引脚名称类型说明1GND电源公共接地端,直接连到USB总线的地线2TXD输出串行数据输出3RXD输入串行数据输入,内置可控的上拉和下拉电阻4V3电源在3.3V电源电压时连接VCC输入外部电源,5UD+USB信号直接连到USB总线的D+数据线6UD-USB信号直接连到USB总线的D-数据线7X1输入晶体振荡的输入端,需要外接晶体及振荡电容8X0输出晶体振荡的反相输出端,需要外接晶体及振荡电容9CTS#输入MODEM联络输入信号,清除发送,低(高)有效10DSR#输入MODEM联络输入信号,数据装置就绪,低(高)有效11RI#输入MODEM联络输入信号,振铃指示,低(高)有效12DCD#输入MODEM联络输入信号,载波检测,低(高)有效13DTR#输出MODEM联络输出信号,数据终端就绪,低(高)有效14RTS#输出MODEM联络输出信号,请求发送,低(高)有效15R232输入辅助RS232使能,高电平有效,内置下拉电阻16VCC电源正电源输入端由于STM32下载程序时需要选择启动模式。STM32三种启动模式对应的存储介质均是芯片内置的,它们是:1)用户闪存=芯片内置的Flash。2)SRAM=芯片内置的RAM区,就是内存啦。3)系统存储器在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序:BOOT1=xBOOT0=0从用户闪存启动,这是正常的工作模式。BOOT1=0BOOT0=1从系统存储器启动,这种模式启动的程序功能由厂家设置。BOOT1=1BOOT0=1从内置SRAM启动,这种模式可以用于调试。【2】所以在选择使用串口下载程序的时候,需要设置BOOT引脚。在上面的电路图中,通过一个S8550三极管和一个S8050三极管来实现对BOOT引脚的自动设置。当DTR#引脚置为高电平时,三极管Q2导通,如果此时RESET引脚拉低(系统复位),则三极管Q1导通,BOOT0连接到高电平。这样就可以实现从系统存储器启动,从而下载程序到系统存储器中。3.6供电电路系统的供电电路原理图如图3.6所示。图3.6供电电路原理图供电电路选用了两个MiniUSB母座作为电源输入的接口。其中一个MiniUSB母座的D+、D-引脚连接的USB转串口芯片的数据输入输出口,另外一个连接的STM32的USB引脚。两个MiniUSB母座的VCC引脚都连接到自锁开关的一端,自锁开关的另外一端连接到稳压芯片的输入端口。这样,当自锁按键接通时,USB口的VCC通过稳压芯片给系统供电。稳压芯片的型号为常用的asm1117-3.3,输入端如果是5V,那么输出端是稳定的3.3v,正好为主控芯片以及其他的器件供电。在稳压芯片的输入端和输出端,都连接了电容。电容在此电路中的作用是滤波,防止电源电压偶然发生抖动从而影响系统的正常工作。另外还接出了几个排针接口,方便为扩展的其他的功能模块供电。在USB母座的电源地一端,串联了一个500ma的自恢复保险丝,这样当系统中有短路发生,电流急剧增大,自恢复保险丝会自动切断电路,防止烧坏系统中的芯片。3.7系统电路原理图与PCBAltiumDesigner是电子工程师与电子专业学生等电子行业人士常用的EDA软件。它是由原Protel软件开发公司Altium公司开发的新的电子产品的开发系统。该软件功能强大,具有原理图设计、PCB绘制、电路仿真、信号完整性分析、拓扑逻辑自动布线和设计输出等功能[8]。根据设计要求与实际的情况,本设计采用AltiumDesigner软件绘制系统硬件电路的原理图和PCB图,如附录C所示。3.8本章小结本章分模块介绍了基于stm32的掌上游戏开源硬件的设计实现原理及方案。首先,介绍了STM32核心电路的设计,给出了核心电路的原理图,并分析了核心电路中各个电路的功能。其次介绍了LCD显示屏的接口电路,介绍了接口的各个引脚的功能。然后介绍了按键电路和陀螺仪电路的设计过程和原理。其次介绍了下载电路的设计,重点介绍了USB转串口芯片的引脚功能和电路设计的细节。最后介绍了系统的供电电路的设计过程和思路。最后,简单介绍了绘制原理图的软件工具AltiumDesigner,并且展示了系统的电路原理图和PCB图。4系统软件设计4.1keil开发环境介绍Keil公司是一家先进的MCU软件工具开发厂商。该公司由两家国外的先进的软件开发公司共同组成。这两家公司联合运营,共同开发了一系列的开发工具。其中包括实时操作系统核心、C编译器等。该公司开发的KEIL系列微控制器开发软件功能强大,集成度高。本设计使用的就是KEILuVision5集成开发环境。它能够在Windows系统下流畅运行,有可视化的操作界面,并且提供了众多的编译工具,还包含了丰富的库函数,使得我们单片机的开发更为便捷[3]。该集成开发环境优秀,受到单片机设计者的广泛使用。其KeilARM编译器受到众多的单片机的开发者的青睐,其可以支持几百种系列单片机。本系统软件设计全部在KeiluVision5集成开发环境下编写、调试,并且编译成功。4.2主程序设计系统以TFTLCD显示屏、陀螺仪/加速度计模块、按键模块、USB转串口模块为主要应用,实现了掌上游戏机及STM32开发板的功能。系统软件主要的功能是对各个功能模块进行初始化,配置相应的寄存器、设置相关的参数使得各个功能模块能够正常工作。首先显示系统界面,等待选择游戏操作模式和开始按键按下。游戏开始按键按下后,然后进行游戏初始化,初始化完毕游戏开始运行。同时采集输入的信号,根据输入的信号来操作游戏运行。由于系统的功能不是特别复杂,没有特别多的功能模块和需要同时循环执行的功能代码,所以本系统软件的架构是采用简单的前后台的架构。前后台的结构是单片机编程中比较常用的一种架构,这种架构适合于简单的且实时性要求不高的系统。这种架构的优点是编程简单、结构清晰明了等,缺点是不能做复杂的浮点计算等占用COU时间较长的功能,因为那可能会导致系统反应变慢。所以本系统软件采用前后台架构十分符合本设计要求[3]。系统软件主函数程序如下所示。//主函数intmain(void){ Stm32_Clock_Init(16); //系统时钟设置uart_init(72,9600); //串口初始化为9600delay_init(148); //延时初始化LED_Init(); //初始化与LED连接的硬件接口KEY_Init();//初始化与按键连接的硬件接口LCD_Init();TIM3_Int_Init(1000,719);//定时MPU_Init(); //初始化MPU6050mpu_dmp_init(); //初始化MPU6050KEY_Menu_Init();//板子上的按键初始化Disply_Menu();//显示开始菜单界面GAME_START=1;LCD_Clear(BLACK);Init_SNAKE();//贪吃蛇初始化 while(1) { Run_SNAKE();Key_Value=key_detector(Play_Type); }}系统主函数流程图如图4.1所示。图4.1主程序流程图4.3中断程序设计定时器中断的频率约为10ms中断一次,在中断程序中主要实现的功能是获取陀螺仪/加速度计的数据和控制游戏的进度,以及产生随机数。在系统初始化的时候,当系统初始化成功之后,会将一个开始标志位置1,在中断函数中首先对这个标志位进行判断,如果其为1,则运行上述的功能代码,否则,不运行。这样做的好处是当定时器初始化成功之后,如果其它的功能模块没有初始化成功,则在中断服务函数中不会做任何事情。只有系统全部初始化完成,才开始运行游戏,推进游戏进度和获取外部输入信号。整个中断服务函数的流程是首先对开始标志位判断,如果是1,则获取一次MPU6050的数据,其次将游戏进度标志自减1,然后产生随机数,对游戏标志位判断,保证游戏标志位大于等于0,最后清除中断标志位,退出中断服务函数。定时器中断服务函数流程图如图4.2所示。图4.2中断程序流程图4.4游戏程序设计由于时间等因素,本设计中游戏只设计了一个贪吃蛇游戏。这个贪吃蛇游戏共有20个关卡,可以通过重力感应和按键两种操作方式来实现游戏的控制。贪吃蛇游戏的流程大致是首先绘制游戏界面,然后对输入的方向进行判断,根据输入的方向数据来移动蛇身,在蛇身移动后,判断蛇是否死亡,如果死亡,则重新开始。如果蛇没有死亡,则判断是否吃到食物,如果吃到了食物,则相应的加分并显示在屏幕上。吃到食物之后,加完分之后,判断分数是否够升级,如果够升级的话就更新等级并且在屏幕上显示等级。游戏程序流程图如图4.3所示。图4.3游戏程序流程图4.5输入信号检测程序设计本设计中操作游戏的方式有两种,一种是重力感应模式,另外一种是常见的按键模式。这两种操作模式都可以控制游戏的运行。但是这两种游戏操作方式使用到的系统的硬件资源是完全不同的。按键方式主要使用的是系统硬件中的按键,重力感应方式主要使用的是陀螺仪(加速度计)。这两种硬件向上层传输的数据也是截然不同的,所以需要一个中间层来将底层的硬件的差异性屏蔽掉。所以就设计了输入信号检测函数。这个函数的功能主要就是将按键扫描获取的按键值与陀螺仪传输的值进行处理,向上层的提供的接口统一起来。程序的流程是首先对输入的参数进行判断,如果参数是代表按键模式,那么调用按键扫描函数来获取按键值,然后向上层传输按键值。如果参数是代表重力感应模式,那么调用陀螺仪(加速度计)数据处理函数,向上层传递经过处理之后的与按键模式功能对应的按键值。该段程序的流程图如图4.4所示。图4.4输入信号检测程序流程图4.6本章小结本章介绍了ARM芯片的集成开发环境Keil5,本系统软件均在此集成开发环境下进行编写和调试。首先介绍了系统程序的主要流程和软件的主要架构,并画出了整个主程序的流程图。其次,介绍了定时器中断服务函数的功能和程序流程,并画出了定时器中断服务函数程序的流程图。然后介绍了游戏的核心代码的设计思路,并画出了其程序流程图。最后介绍了输入信号检测子程序,介绍了它的实现过程和程序流程,并且画出了程序的流程图。将各个功能模块程序分别写出,然后再在主函数中根据需求调用,上述介绍的各个部分共同协调运行,组成了本系统的软件部分。该软件系统在Keil5集成开发环境中已编写完毕,经过多次的调试和修改,整个软件系统最终在Keil5软件中编译通过,没有出现错误。5系统调试与功能测试5.1系统调试系统的设计经过功能设计、硬件电路设计与制作、软件系统设计与编写、程序下载等步骤,理论上就可以实现相应的功能并正常工作了。但是在实际的操作过程中,几乎不可能一次性制作就能成功。所以我们需要对整个系统进行调试和测试,在调试过程中发现问题并且解决问题,使我们的系统更加完善,从而能达到设计的要求并且正常工作。5.1.1硬件检测(1)电路板线路检查电路板制作完毕以后,首先在不接通电源的情况下,目检电路板上的走线有没有短路的现象,目检有没有断路的现象。其次,目检电路板上焊接的元器件型号、正负极、参数是否正确,最后,目检焊接处有没有少锡、多锡等现象。在目检电路板没有发现问题之后,使用万用表检测线路中是否有短路、断路、虚焊等缺陷。如果检测出电路板有上述缺陷,应该对相应的线路用电烙铁与焊锡等工具进行修改,并重新检测直至检测无误。在使用目检和使用万用表检测无误之后,才可以接通电源。(2)显示模块检测将TFTLCD液晶屏模块按正确的方向插入电路板上的接口槽中,接通电源,观察LCD显示屏是否亮起。如果显示屏未亮起,则用对照原理图检查其各个引脚是否连接正确,并用万用表依次检测其线路是否有短路、断路等缺陷,发现问题,及时解决,使得LCD显示屏能正常亮起。当LCD显示屏正常亮起时,观察LCD屏幕的像素点有没有坏点,如果有坏点,则考虑更换屏幕。5.1.2软件调试软件调试在Keil5集成开发环境中进行,在Keil5中首先建立工程,选择相应的控制芯片,然后输入程序,程序输入完毕后进行编译,编译未通过会提示警告与错误,根据软件的提示对程序进行修改,直到程序编译成功。5.2系统功能测试5.2.1测试步骤(1)程序下载首先将Keil中的目标选项中的输出项勾选上输出.hex文件,如图5.1所示。图5.1keil输出选项界面编译成功后,相应的文件夹中会自动生成.hex文件。然后再用USB线连接电脑的USB接口和系统板上的MiniUSB接口,并在电脑设备管理器中查看其对应的COM口。如果电脑的设备管理器中没有显示出来相应的COM口,那么可能是ch340g的驱动没有安装,按照正确的方法安装ch340芯片的驱动。再打开STM32的下载器软件,在软件界面上点击打开程序文件选项,找到相应文件夹中的.hex文件并双击打开,然后选择正确的COM口,最后点击Download/下载按键,开始下载程序到单片机内。准备完毕后提示给芯片上电,此时给系统接通电源,下载成功软件会有提示。软件下载界面如图5.2所示。图5.2程序下载界面图(2)功能测试按照上述步骤将程序下载到STM32中,将TFTLCD液晶显示屏插入正确位置,USB线连接到正确的MiniUSB接口上去,检查没有短路等问题后给系统上电,开始测试。测试步骤如下:①将系统上电,观察系统运行状况。②选择重力感应模式,开始游戏,测试游戏机偏离水平的角度为多少度时,才能识别到方向的改变,记录数值并且与程序中设定的值进行对比。③选择按键模式,开始游戏,测试按键按下的次数和游戏画面反应的情况,记录下来数据。④选择任何一种方式进行游戏,观察游戏中吃到食物后,蛇身的变化和屏幕上显示的分值及等级的变化。⑤重复上述步骤多次,测量多组数据。⑥对测量的数据进行统计分析。5.2.2测试结果通过功能测试的步骤2的测试,统计了一组角度的数据如下表所示。表5.1重力感应角度测量数据表编号实际测得角度程序设定值偏差115.8°16°0.2°216.4°16°0.4°316.3°16°0.3°415.6°16°0.4°515.5°16°0.5°在以上的测试中,假设测量的角度值是实际游戏机与水平方向的夹角数值,那么就有:绝对误差=程序设定值-实际测量的数据;相对误差=(绝对误差/程序设定值)*100%。绝对误差能表示测量的数据与实际数据偏离的数值大小,而相对误差能表示测量数据的可靠程度。由上表数据可知,每一组的绝对误差很小,即表明系统测量的数据与实际数据相差很小。而每一组的相对误差都不超过4%,说明测量的数据准确可靠即实际的倾斜角度和程序设定的角度很接近,说明了陀螺仪的精度很高,重力感应的控制精度也达到了设计要求,说明系统达到设计要求。在功能测试的步骤3测试过程中,每一次按下按键,游戏进程都能够像相应的方向发展。并且多次试验均是如此,所以可以初步得出结论,按键控制游戏的方式经过测试没有发现问题。在功能测试的步骤4的测试过程中,屏幕显示的分数和等级会按照正确的规律来显示。蛇身每吃到一颗实物,则分数会相应的提高10分,每当分数满80分的时候,会显示游戏胜利的提示。而每当蛇身超出游戏的范围或者撞到自身的尾巴,则会显示游戏失败的提示。正常游戏界面和提示界面如下图所示。正常游戏界面如图5.3所示。图5.3正常游戏界面提示胜利过关界面如图5.4所示。图5.4提示过关界面提示失败界面如图5.5所示。图5.5提示失败界面5.3本章小结本章节主要介绍了对制作完成后的系统测试流程和测试结果。章节前面首先详细介绍了系统硬件和软件的调试方式和步骤。其次介绍了软件程序下载的步骤。最后介绍了系统调试的步骤,分析调试的结果,得出本系统工作正常的结论。6结论与展望6.1结论本次设计以stm32f103rct6为作为主控芯片,以TFTLCD显示屏模块、陀螺仪(加速度计)、按键模块、USB转串口芯片等为主要应用详细介绍了基于stm32的掌上游戏开源硬件的设计的原理与实现过程。系统设计完成,该系统能正常工作,可以使用多种方式操作游戏。经过多次试验测试,结果显示该系统的功能和指标均达到了设计要求,系统工作稳定。本次设计总体来说非常成功,设计的系统达到要求。在整个设计制作的过程中,本人的单片机知识得到了巩固,C语言编程更加熟练,Keil软件使用也更加得心应手。画原理图与PCB图的技能也得到了提升,制作电路板的技能也得到了锻炼。总结来说,通过这次设计,本人已经具备了独立开发小型单片机项目的能力。6.2展望由于时间和条件限制,以及本人的水平所限。本系统中还存在许多不足。希望通过以后的学习可以加以改进和完善。首先,系统的可扩展性和体积小型化方面的改善还有很大的提升空间。而且现在只设计出了一款简单的贪吃蛇游戏,游戏资源少,希望以后能开发出更多更好玩的游戏。然后可以设计一款对应的手持遥控器,通过无线方式与游戏机相互通信,手持遥控器的操作感会更好。然后,希望以后能设计出一整套的配套的小功能模块,可以扩展在系统硬件上面。这样系统作为游戏机的可玩性更加强,作为开发硬件的学习硬件资源也相对较多。7致谢本设计在指导老师的悉心指导下,经过几个月的努力已经完成。从题目的选择,方案的设计到具体的实施,都离不开老师倾注的心血,感谢老师的无私奉献,在这过程中,我受益良多,在此向老师表示我衷心的感谢和崇高的敬意。在这短短的几个月中,我也学习到了许多新的知识。从对STM32的一知半解到制作出整个单片机设计;从对PCB软件的模糊认识到自己真正画出完整的PCB图;对焊接线路板的不熟练到熟练焊接。一路走来,收获的不仅仅是知识的积累,还有纯真的友谊。感谢与我一起学习生活,共同进步的同学们。四年大学生活里,我们一起欢笑一起泪,一起高歌一起悲。在毕业设计的这段时间里也不例外,感谢同学们在我有困难的时候伸出援手,在我疲惫的时候给我肩膀,在我成功的时候为我鼓掌。谢谢一路有你们。不积跬步无以至千里。本设计能够这么顺利的完成,离不开大学四年里众多老师对我的教导。感谢老师们的认真负责的工作态度,一丝不苟的治学精神以及无私奉献的崇高品质,让我在这四年的大学生活中收获成长。谁言寸草心,报得三春晖。在这里我要感谢我的父母!养育之恩,无以为报,我唯有更加努力,不让父母失望。即将离开学校走向工作岗位,相信等待我的会是另一片充满欢笑与泪水,机遇与回报的天地。这篇毕业论文标志着一个终点,同时也是另一个起点,不论如何,我的脚步不会停下,加油。参考文献何立民.单片机高级教程[M].北京:北京航空航天大学出版社,2001..刘军例说STM32[M].北京:北京航空航天大学出版社出版,2011.4李宁.基于MDK的STM32处理器开发利用.北京:北京航空航天大学出版社,2008-10杜春雷.ARM体系结构与编程.北京:清华大学出版社,2003-02-01姚文详,宋岩.ARMCortex-M3权威指南.北京:北京航空航天大学出版社,2009-07范书瑞.Cortex-M3嵌入式处理器原理与应用.北京:电子工业出版社,2011-01-01周立功等.ARM嵌入式系统实验教程[M].北京:北京航空航天大学出版社,2005.1.徐向民.AltiumDesigner快速入门[M].北京:北京航空航天大学出版社,2008.罗浩等.一种新的基于ARM的数据采集系统设计[J].信阳师范学院学报(自然科学版),2006.4.赵亮,侯国锐.单片机C语言编程与实例[M],第一版.人民邮电出版社,2003.9.附录A:英文原文DesignandimplementationofGame-basedMCUSTC15YAOWei-peng,LIUAn-zhen,SUNShuaiAbstract:ThissystemisrealizedbasedonSTC15seriessingle‐chipcomputergamedesign.Suchgamesincludeclassicaltetris,snake,car,hittingtheplane.Themaincontentsofthedesigncoverthehardwareandsoftwareofgameconsoles.WithSTC15F2K60S2newsinglechipmicrocomputer,thehardwareisgreatlysimplifiedinthedesign.Comparedwiththetraditional51singlechipmicrocomputer,itdispenseswithoscillationcircuitandresetcircuit,andrunsfaste.PreviousMCUgameconsolesonlyprovide1-2games,butfourareavailableonthegameconsole.Theexperimentalresultsshowthattheconsoleisofsimplehardwarebutstrongentertainment,servingasagoodwayforbeginnerstolearnaboutSCM.Keywords:gameconsole;MCU;STC15Gamecannotonlyhelppeopleeasethestressofeverydaylife,youcanalsoexercisehand-eyecoordination,emergencyresponsecapacity,andthegamewillnottakeuptoomuchtimeinstudy,workspacecanbeusedasawayofrelaxing,suchasTetris,Snake,cars,planesandsoon.Thedesignisbasedonsingle-chipcontrollertocompletethecontent,andformicrocontrollerbeginnerscanalsoaccomplishthistask,themicrocontrollercontrolcircuitgeneratesinterest,therebyenhancingthelearningfun.Thesingle-chipdesignusesSTC15theentiresystemiscontrolledusingthedottoshowthedifferentinterfaceofthegame.Thesystemclockoscillationisgeneratedbythemicrocontrollerinternaloscillator,whilethereal-timeclocktothedisplaymoduletocompletethedisplay.ThisGamecanbeTetris,Snake,cars,planesandothergames,thegameiscontrolledbythekeyboard,whileplayingthegameaudiocircuitwillplaymusic,makinggameplaymorerealistic.1.SystemarchitectureandhardwaredesignTheSTC15seriesSCMhasthefollowingcharacteristics:InternalRAM,large-capacity,fasterspeedthanordinarysingle-chip,havingmultipleoperatingmodestoreducepowerconsumption,multi-channelPWM,ADCoutputfunctionalunit,alsohassixtimer,easytocontrol,butalsoonthesystemclockprogrammingoutput.ThisdesignusesSTC15F2K60S2SCMasthecontroller,usingtheinternaloscillatorprovidestheclock;intheuseoflarge-capacityEEPROMmicrocontrollerchiptocompletethecourseofthegameFLASHscreen;MCUexternalinterruptconstituteusethekeyboardtocontrolthegame;PWMfunctionreal.NowadjustthebrightnessoftheLEDdisplay.Figure1HardwarecircuitInordertofacilitatethedesignanddebugging,theGamesystemcanbeusedtocompletethesmallestsingle-chipsystem,comprising:adot-matrixscreencircuit,keyboardcircuitgames,gameaudiocircuit,LEDcircuitscoringgame.VideogamehardwarecircuitdiagramshowninFigure11.1Dot-matrixscreendisplaysthegamescreencircuitThedesignusesadotmatrixdisplay,theprincipleofdot-matrixscreendisplaycircuitshowninFigure2below.Tomaketheimagedisplayedmoreclearly,two8X8dotmatrixdisplaymodule.GivesalatticeanditsconnectionrelationshipfromFigure2,eachlatticemoduleconsistsof64light-emittingdiodes,andeachlight-emittingdiodeisplacedontheintersectionoftherowandcolumnlines.Whenacolumnissethigh,thecorrespondingrowissetlow,thecorrespondingLEDwilllightup.BycontrollingalgorithmrankstocompletethedynamicFlshanimationdisplay.STC15MCUI/Oporthasfouroperatingmodes:quasi-bidirectional,weakpullstrongpush-pull,strongpull.TheI/Oportasanoutput,chooseastrongpush-pullmode,eachportoutputcurrentupto20mA,enoughtolightemittingdiodesonthecorrespondingrow,noadditionalpull-upresistor.Thus,thelatticewiththemicrocontrollerI/Oportdirectlyconnectedtoreducethecomplexityofthecircuit,forbeginners,hardwareeasier.Figure2Dot-matrixscreendisplaycircuit1.2GamingkeyboarddesignGamingkeyboardcircuitshowninFigure3.InGamedesign,thekeyboardisanessentialinputdevice.Inthisdesign,theroleofthekeyboardisatthebeginningofthegame,throughthekeyboardtoselectthecorrespondinggameinterface;inthecourseofthegame,goingthroughthekeyboardtocontrolthegame.TheGamehasfivebuttons,whichareK0-K4.K0fortheselectionkeys,tocompletethestart,deformation,accelerationandotherfunctions;K1-K4forthearrowkeys,K1upwardkey,K3downwardkey,K4totheleft,K2totheright.R1-R5forthepull-upresistortoprovidethenecessarydrivefortheI/Oport.[4]Figure3GamingKeyboardcircuit1.3GameaudiocircuitdesignUnderthepremiseofmeetingapplications,thedesignusesordinarybuzzersoundasagamesoundelements.Buzzernormaloperatingcurrentisrelativelylarge,itrequiresatransistoramplifiertodriveit,gamesoundcircuitshowninFigure4.Buzzerpositivepolarity+5Vpowersupply,theotherendoftheemitterofthePNPtransistorbaseP5bythemicrocontroller.5controltothegametoprovidethenecessarymusic.Figure4Gameaudiocircuit1.4GamescoringcircuitdesignGamescoringthreeseven-segmentLEDcircuittoachieve.Trinityseven-segmentLEDdisplaycircuithasacodesegmentaddressandbitaddresscode,scoringcircuitshowninFigure5.Fig.A1,A2,A3bitscode,controldifferentdigitaltube,andD1-D7ofthecode,controldigitaldisplaydifferentcharacters.Thus,thethreedigitstobedisplayed,itmustbethroughtheuseofdynamicscanningimplementation.Simplythedifferentdigitaldisplayinadifferentposition,thenquicklycompletethedisplay,inordertoenablepeopletoseethefiguresabove,mustberepeatedseveraltimes.Thusbythehumaneyepersistenceofvisionanddigitalafterglowcharacteristicscanbeobservedonthethree-digitnumberofthedigitaltube.Threedigitallinedatamanagementcodesegmentanddotmatrixscreenisconnectedtotheportfortheuseofgamescoring.Figure5Scoringcircuit2.Systemsoftwaredesign2.1SoftwaredesignprocessBecausethesystemismorecomplex,sotheneedformodulardesign,inordertoverifythesubsequentcommissioning.Thedifferentgamesseparately,withdifferentfunctions,andtheninthemainfunctionselected.2.2ThemaindesignAccordancewiththeproceduresofstructuredprogramming,allfunctionsarecompletedbyasubroutinecall.MaindesignfeaturesincludecompletegameGUI,thegameinterfacetobuildthebasicmodeltoachievethepicturepanningeffect,theuseofLEDdotmatrixunderlyingdrive-by-pointscanning,thedisplaybrightness,usesoftwarePWMlayeredscanningscreen,thegamescreenisformedsothatthecontrastofthedisplayadjustablebrightness.Setaglobalvariableinthemainprogram,scanningkeyboardinput,controlthespeedofthegame,scoringthegame,thegameoflife,soundswitch,thedefaultscreenbrightness.2.3SnakegamesoftwaredesignSnakeissnakegamerulesinacertainspaceataconstantspeedforwardrunning,intheprocessofrunningasnake,youcancontrolthedirectionkeyssnakeheads,sothesnaketoeatfood.Ifthesnaketoeatthefood,thenthelengthofthesnakewillgrowaunit,butthescorewillincrease.Ifyouhitawallorsnakeheadshitanypartofhisbody,thegameisover.ThebasicideaistodesignthegameSnakeSnaketomakeasnakeasagamepoint,namelyabasiclattice.UsingthefunctionstaticvoidCreate_Foodrandomloadingsnakefood.Timer1Timer1s,1stimingwhenthetimeisreached,asnakeranforwardunits.Snakedesignmovement,weneedtopayattentiontothefollowingpoints:(1)motionprocessing.AccordingtothekeyvalueoftheuserkeyFlexdrive,youcanpresstheSelectkeytomakethesnakemotionacceleration;(2)toeatprocessedfood.Ifyoueatfood,thefoodflagissetto0,thesnakebodygrewagamepoint;(3)placethenewfoods.Analyzingfoodflagfoodifflagis0,thenitwouldplacethefood.Theprocessofplacingthefood,butalsoneedtodeterminewhetherthenewfoodandsnakeoverlap.Ifoverlap,youneedtorepositionandre-judgmentuntilthenewfoodwiththesnakedoesnotoverlapsofar;(4)thedeathprocess.Snakerunningprocess,orifhisbodyhitthewall.Body,thegameisover,thegamescoredisplay.3.conclusionSincethecircuitcontrolsectionisrelativelysimple,youcanuseminimumsystemST15MCUtocomplete,itisnotdifficulttocomplete.Butnotepindotmatrixscreenwithrowscorrespondencecolumntransistor,buzzerpayattentiontodirection.Software,sincethesystemisrelativelylarge,needstobedoneseparately,thatis,inthemainframetobuildagoodfuture,youcancompletethegameTetrisDebug,andthencombinedwithothersmallgameintothesystem.ThedesignforuseSTC15F2K60S2microcontroller,makingSnakegamehardwareschematicsandsoftwarelogicwereanalyzed,andwhichcompletedtheGameproduction.Thecircuitissimplevideogamehardware,software,programminglogicclear,easyforbeginnerstocompletethesystemofproduction,isthehands-onexercisesforbeginnersSCMSCMpowerfultool.附录B:中文翻译基于STC15系列单片机的游戏机设计与实现摘要:基于STC15系列单片机设计的游戏机包括俄罗斯方块、贪吃蛇、赛车、打飞机四款经

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论