深圳市组创微电子有限公司
咨询电话
0755-8299 4126

个人消费类电子

游戏机电路板单片机方案开发


小游戏不仅可以帮助人们缓解日常生活压力,还可以锻炼手眼协调能力、应急反应能力,并且小游戏不会占用太多的时间,在学习、工作间隙,可以作为一种放松的方式,例如俄罗斯方块、贪吃蛇、赛车、打飞机等。本设计是以单片机为控制器完成这些内容,并且对于单片机初学者,也可以完成这项任务,对微控制器控制电路产生兴趣,从而提高学习的乐趣。

此次设计采用STC15单片机对整个系统进行控制,利用点阵来显示游戏的各个不同界面。本系统的时钟是由单片机内部振荡器振荡产生,该实时时钟同时提供给显示模块,完成显示功能。此款游戏机可以进行俄罗斯方块、贪吃蛇、赛车、打飞机等游戏,通过键盘对游戏进行控制,游戏音效电路会同时播放游戏音乐,使得游戏玩起来更加逼真。

一、游戏机系统结构和硬件设计

本次采用的STC15系列单片机具有以下特点:大容量的片内RAM存储器,运行速度比普通单片机更快,具有多种工作模式以降低功耗,多路PWM、ADC功能单元输出,同时还具有6个定时器,方便控制,还可对系统时钟进行编程输出。本次设计采用STC15F2K60S2单片机作为控制器,使用内部振荡器提供的时钟;利用单片机片内大容量EEPROM完成游戏过程中的FLASH画面;利用单片机外部中断构成键盘控制游戏;PWM功能实现LED显示屏的亮度调节。

为了设计和调试方便,该游戏机系统可以采用单片机的最小系统来完成,包括:点阵屏电路、游戏键盘电路、游戏音效电路、LED游戏计分电路。游戏机硬件电路图如图1所示。

图1 游戏机硬件电路图


1.1点阵屏显示游戏画面电路

本设计采用点阵显示,其原理如图2点阵屏显示电路所示。为了使显示的图像较为清晰,需要两个88点阵显示模块。从图2中给出了一块点阵及其连接关系,每个点阵模块由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上。当某一列置高电平,对应的行置低电平,则相应的二极管就点亮。通过行列的控制算法,即可完成动态Flsh动画的显示。STC15系列单片机的I/O口有四种工作模式:准双向口、弱上拉、强推挽、强上拉。将I/O口作为输出时,选择强推挽模式,每个口的输出电流可达到20mA,这足以点亮对应行上的发光二极管,无需额外的上拉电阻。因此,可将点阵与单片机的I/O口直接相连,降低了电路的复杂程度,对于初学者而言,硬件更加简单。

图2 点阵屏显示电路


1.2游戏键盘设计

在游戏机的设计中,键盘是必备的输入设备。本设计中,键盘的作用是在游戏开始时,通过键盘选择对应的游戏界面;在游戏过程中,通过键盘对正在进行的游戏进行控制。本游戏机共有五个按键,分别是K0与K4。K0为选择键,完成开始、变形、加速等功能;K1与K4为方向键,K1为向上键,K3为向下键,K4为向左键,K2为向右键。R1与R5为上拉电阻,为I/O口提供必要的驱动。

1.3游戏音效电路设计

在满足应用的前提下,本设计采用普通的蜂鸣器作为游戏音效的发声元件。蜂鸣器通常工作电流比较大,需要一个三极管放大电路来驱动它。蜂鸣器正极性接+5V电源,另一端接PNP管的发射极,三极管基极由单片机的P5.5口控制,给游戏提供必要的音乐。

1.4游戏计分电路设计

游戏计分电路采用三位七段数码管来实现。三位一体的七段数码管显示电路有段码地址和位码地址。控制数码管显示不同的字符。这样,要显示三位数字,就必须通过采用动态扫描实现方式。简单地说就是在不同的位上显示不同的数码,然后快速完成显示,为了使人能够看见上面的数字,必须重复多次。这样就通过人眼视觉暂留效应及数码管余辉特性,可以观察到数码管上的三位数字了。三位数码管的段码与点阵屏的行数据口相连,供游戏计分使用。

游戏机控制板方案设计


二、游戏机系统软件设计

2.1软件设计流程

由于系统较为复杂,所以需要进行模块化设计,以便于后续的调试验证。将不同的游戏分开,用不同的函数实现,然后在主函数里进行选择。

2.2主程序的设计

程序按照结构化程序设计,所有功能都通过子程序调用完成。主程序完成功能包括设计游戏GUI,构建游戏界面基本模型,达到画面平移效果,利用LED点阵底层驱动逐点扫描,使显示亮度均匀,用软件PWM分层扫描画面,形成游戏画面对比度使显示屏亮度可调。在主程序中设置全局变量,扫描键盘的输入、控制游戏速度、游戏计分、游戏生命、音效开关、显示屏默认亮度等。

2.3俄罗斯方块游戏软件设计

俄罗斯方块游戏的规则是在限定的空间范围内,各种形状的方块组合依次往下掉落,在方块的掉落过程中,玩家通过控制按键,控制方块的下落形状,尽可能的使落下的方块和已经在下面的方块紧密结合,不留空隙。当方格在下降过程中遇到其它方格的阻挡,将会在当前位置停留下来。当某横向的一层全部被方块占满时,此层的方块将会全部消失。通过按键控制方块的合理摆放位置,使方块填满一行而自行消失,这样就可以得分,它是俄罗斯方块的主要玩点及玩法。

依据上述规则,程序设计思路如下。先利用函数staticvoidRandBox随机装载一个方块,下落时间到达后,当前方块向下方向移动一个单位,然后读取键盘按键值。如果按下了移动键,判断能否左移或右移,如果可以,则方块向左或右移动一个单位。如果为变形键,则根据函数tmpbuf[i]=blocks[tmpid][3-i]按规定对当前方块进行变形。方块每下落一个单元后,都要判断是否死亡,是否规定的楼层已填满。根据函数staticvoidRowFull{uint8p,k;uint8tmps=0;for(p=0;p<16;p++)}检测是否满行并进行相应处理。如满行则消行,同时分数将会作相应的变化;若规定范围内堆满方块则游戏结束,显示游戏分数。

2.4贪吃蛇游戏软件设计

贪吃蛇游戏的规则是蛇在一定的空间内以一定的速度向前跑动,在蛇跑动的过程中,可以通过按键控制蛇头的方向,使蛇吃到食物。要是蛇吃到食物,那么蛇的长度就会长大一个单位,同时得分也会增加。如果蛇头碰到墙或是碰到自己身体的任一部分,游戏就结束。

设计贪吃蛇游戏的基本思路是先为贪吃蛇制作一块蛇身作为一个游戏点,即一个基本点阵。利用函数staticvoidCreate_Food随机加载蛇的食物。用定时器1定时1s,当1s的定时时间达到时,蛇向前跑一个单位。设计蛇的运动过程,需要注意以下几点:(1)运动处理。根据用户按键的按键值进行柔体传动,可以通过按下选择键使蛇的运动加速;(2)吃到食物的处理。如果吃到食物,则置食物标志位为0,蛇身体长大一个游戏点;(3)放置新的食物。判断食物标志位,若食物标志位为0,那么就要放置食物。放置食物的过程,还需要判断新的食物是否和蛇身重叠。如果重叠,则需要重新放置并且再次判断,直到新的食物与蛇身不重叠为止;(4)死亡处理。蛇跑动的过程中,若碰到墙或自己的身体,则游戏结束,显示游戏分数。

2.5赛车游戏软件设计

赛车的规则是赛车在一定的时间内向前跑动,在跑动的时候前面出现其他赛车,玩家可以控制赛车速度,并且左、右移动赛车位置前进,躲避其他赛车。随着赛车前进的距离,得分也会相应增加。游戏中,如果赛车撞到其他赛车,游戏结束。

设计赛车游戏的基本思路是先利用函数voidRAC_Game设计赛车结构图形,设置一个全局变量RAC_flag,其类型定义为无符号字符型,用于记录赛车位置和赛车移动方向等信息。接下来用定时器2定时1s,当1s的定时时间到后,赛车和其它赛车同时向前跑动一个单位。通过函数实现赛车随即产生,当按选择键时,汽车加速(0.2s/单位),同时按左、右键躲避其它赛车前进,游戏分数相应增加。赛车跑动过程中,若撞到其他赛车则游戏结束,并显示游戏得分。

2.6打飞机游戏软件设计

打飞机的规则是飞机上方随机出现一个单位点阵的方块,用户通过控制左、右键及选择键(射击),对随机出现的方块进行射击,当击中时方块消除,同时分数增加。如果飞机撞到方块,那么游戏结束。

设计打飞机游戏基本设计思路是先利用函数staticvoidShot_Game_Init绘制飞机图形,同时初始化显示画面,然后随机出现射击方块。每方块对应一个游戏点,即一个基本点阵。设置一个全局变量Shot_flag,其类型定义为无符号字符型,用于记录飞机位置、方块位置、产生弹道等信息。接着对随机出现的方块进行射击,被击中后的方块消失,游戏分数增加。方块每隔1s下降一个单位。若飞机撞到方块,游戏结束,并显示游戏分数。

结论

由于电路控制部分相对简单,可以采用ST15单片机的最小系统来完成,完成起来难度不大。但是需要注意点阵屏的管脚与行、列的对应关系,三极管、蜂鸣器注意方向即可。软件方面,由于系统比较庞大,需要分开完成,即在主程序框架搭建好以后,可以先完成俄罗斯方块游戏的调试,然后再加其它的小游戏到系统里面。

本设计对采用STC15F2K60S2单片机,制作俄罗斯方块、贪吃蛇、赛车、打飞机游戏的硬件原理图及软件逻辑进行了分析,并完成了该款游戏机的制作。本游戏机硬件电路简单,软件程序编程逻辑清晰,便于初学者完成系统的制作,是单片机初学者动手练习单片机的有利工具。

以上就是我们深圳市组创微电子有限公司为您介绍的游戏机开发示例。如果您有游戏方案开发需求,可以放心交给我们。我们代理多种单片机、语音芯片、双模蓝牙IC、wifi芯片。品牌有松翰单片机、应广单片机、杰理蓝牙、安凯蓝牙、全志、瑞昱(realtek)。我们的技术服务范围有:PCB设计、单片机开发、蓝牙方案、软硬件定制开发、APP开发、小程序开发、微信公众号开发等。还可以承接智能电子产品方案设计、生活电器开发、美容仪器研发、物联网平台应用、智能家居控制系统、TWS耳机、蓝牙耳机音箱开发、儿童益智玩具方案开发、电子教育产品方案设计等。

注:部分图片内容来源于网络,如有侵权,请联系删除。

  • 返回顶部