This website requires JavaScript.
入驻
发布

复刻小霸王游戏机

鹏老师
发布于2023-06-12 15:32:18
CC BY-NC协议 分类:嵌入式 侵权投诉
销量: 203
13
40
0
简介:

该项目使用51单片机复刻了经典的小霸王游戏机,借用了原游戏机的外壳,屏幕,按键,扬声器,实现了俄罗斯方块的功能。另外升级了原游戏记机的电源系统,采用锂电池供电,TypeC接口充电,更符合当今社会的使用习惯。该项目最大的亮点是使用了原游戏的的屏幕,能够开发出原汁原味的游戏

应用场景:

个人娱乐,游戏开发,编程练习

一、产品简介

该项目使用51单片机复刻了经典的小霸王游戏机,借用了原游戏机的外壳,屏幕,按键,扬声器,实现了俄罗斯方块的功能。另外升级了原游戏记机的电源系统,采用锂电池供电,TypeC接口充电,更符合当今社会的使用习惯。该项目最大的亮点是使用了原游戏的的屏幕,能够开发出原汁原味的游戏。整个产品的核心部件如下图所示:

复刻小霸王游戏机硬件项目图1


二、应用场景

该产品对于小学生来说有点儿幼稚,对于大学生来说刚刚好 ~~~


可以作为电子爱好者的日常玩具,也能作为游戏的开发设备,锻炼简易游戏开发思维。


三、产品概述

该产品是使用现代常用的MCU复刻的童年经典游戏机,主要用于电子爱好者锻炼编程思维,提高初学者对电子,对编程的兴趣。

复刻小霸王游戏机硬件项目图2


四、产品参数

主控芯片 :STC8H8K64

运行频率 :30 MHz

Flash Size : 64KB

RAM Size : 8KB

屏幕分辨率 :10 * 20

按键数量 : 9

电池容量: 400 mAh

充电接口:TypeC


PCB层数:2层

PCB尺寸:7.04cm * 5.71cm

充电电压:5V

游戏数量:1(可自己开发游戏)


五、使用说明


复刻小霸王游戏机硬件项目图3



在关机状态下,长按开关机键2S即可开机,开机后即进入俄罗斯方块游戏界面。


左右方向键:控制方块左右移动


上方向键 :游戏暂停


下方向键:方块加速下落到底部


大圆键:方块旋转


开机状态下,轻触开关机键即可关机。


复刻小霸王游戏机硬件项目图4

设备的开关机按键是固定的,其他按键都可以通过修改代码自定义功能


六、备注


6.1 成本预算:

原游戏机:8.3¥

STC8H8K64:3¥

CH340N:1.5¥

电池:4¥

PCB&SMT:10¥


6.2 开发方式

集成开发环境:Keil5

编程语言:C

烧录软件:STC-ISP

烧录工具:板载USB转串口


6.3 烧录方式


该设备使用STC原厂提供的烧录软件STC-ISP进行烧录,最新版本的烧录软件可从STC官网下载。烧录配置参数如下图所示:


复刻小霸王游戏机硬件项目图5



游戏机的开关机是通过软硬件配合实现的,在关机状态下,长按开机键1S设备即可开机,在开机状态下,轻触开机键即可关机。


烧录固件时需要先配置好上述参数,将游戏机关机,点击【下载/编程】按钮,按住游戏机开机键不放,直到烧录完成。


6.4 附件中包含的内容

1. 位号图

2. 源代码

3. 测试固件

4. 原理图源文件


七、演示视频

试玩游戏机



八、制作过程


8.1 游戏机挑选

首先是采购了若干台同类型的游戏机,从中挑选出了这款适合改装的型号。

复刻小霸王游戏机硬件项目图6


然后对其进行拆解,分析其工作原理,这种游戏机几乎都采用专用的牛屎芯片,很难从芯片是获得信息。

复刻小霸王游戏机硬件项目图7


8.2 驱动原理分析


通过仪器对电路板上的信号进行测量,可以发现按键就是高低电平的变化,蜂鸣器是PWM信号,这些分析起来相对来说还比较简单。


复刻小霸王游戏机硬件项目图8


复杂的是LCD屏幕的驱动信号,这种类型的屏幕大多采用的是多电平扫描驱动,网上相关的资料也比较少,只能自己一点点去摸索。采用示波器分别查看这36个CD驱动引脚的波形,可以发现其电平形式大致分为两类,一类是如图所示的波形信号,规律性很强,共有4个电平段,分别是VCC,四分之三VCC,四分之一VCC和GND。另一类是相对无规律的波形信号,共有三个电平段,分别是VCC,二分之一VCC和GND。


复刻小霸王游戏机硬件项目图9



结合网上查阅到的零散资料,有规律的信号是COM引脚,无规律的信号是SEG引脚。简单来时就是COM控制当前屏幕扫描的哪一列,SEG引脚控制当前屏幕扫描那一行。


8.3 LCD 驱动电路的实现


搞清楚的LCD驱动的型号形式,接下来的难点是如何使用单片机的引脚产生这样的信号。普通的单片机引脚只有高低两种电平,要想产生上述信号,可以借助电阻分压来实现。


复刻小霸王游戏机硬件项目图10

对于SEG信号,只需要使用一个单片机引脚和两个10K电阻即可,如图所示,当单片机引脚A输出低电平时,SEG端的电压为GND,当单片机的引脚悬空时,SEG端的电压为二分之一VCC,当单片机引脚A输出高电平时,SEG端电压为VCC。

复刻小霸王游戏机硬件项目图11

COM信号的实现稍微复杂一些,需要使用两个单片机引脚和三个电阻,连接方式如图所示,电阻阻值分别是9K,3K和24K。当单片机引脚A悬空,引脚B输出低电平时,COM端的电压为GND,当单片机引脚A和B都悬空时,COM端的电压为四分之一VCC,当单片机引脚B悬空,引脚A输出高电平时,COM端的电压为1四分之三VCC,当单片机引脚A悬空,引脚B输出高电平时,COM端的电压为VCC。


8.4 原理图设计


有了上述的理论基础,接下来就可以设计电路图了。LCD屏幕上一共有10个COM引脚和26个SEG引脚,所以采用上述方式驱动LCD一共需要46个单片机引脚。本项目采用了LQFP封装的51单片机STC8H8K64,一共有60个可用的IO口,恰好能满足该项目的需求。LCD驱动电路采用了庞大的电阻网络,其次还给整个系统添加额USB转串口,锂电池充电,单键开关机等功能电路。


复刻小霸王游戏机硬件项目图12


原理图PDF及源文件可从附件中下载!!!


8.5 PCB 设计


设计完原理图后,拆下原有游戏机的电路板,测量外框尺寸,以及螺丝孔,按键的位置,确定我们要设计的PCB的形状。


复刻小霸王游戏机硬件项目图13


布线还算简单,基本上就是体力活,设计完成的PCB渲染图如下所示:


复刻小霸王游戏机硬件项目图14


PCB设计好之后拿到嘉立创下单打样,并且进行STM贴片。贴片的时候为了节省费用,我这里只贴了立创基础库里面的元器件,剩下的元器件就拿回来自己手焊。下图是焊接好的PCB正反面:


复刻小霸王游戏机硬件项目图15

8.6 LCD驱动程序设计


首先是LCD的驱动程序,采用定时器,2mS扫描一个COM引脚,同时将要显示的数据放到SEG引脚上。10个COM引脚扫描一遍需要20mS,所以屏幕刷新率为50Hz。

复刻小霸王游戏机硬件项目图16

8.7 蜂鸣器驱动程序设计


采用定时器配合GPIO引脚产生方波驱动蜂鸣器。首先根据要播放的音符的频率,计算定时器的参数,将其内置到数组中,然后制定音乐数据的格式。


复刻小霸王游戏机硬件项目图17


本项目中一共内置了16个音高,16阶时值。音乐数据中每个音符用一个字节表示,比如0x47,高四位的4表示音高为587Hz(中音2),低字节的7表示时值为(7 + 1) * 16分音符,即二分音符。


8.8 俄罗斯方块游戏设计


驱动完成后就可以编写游戏了,由于时间有限,我这里只实现了俄罗斯方块的游戏,具体的实现过程是先对游戏中出现的方块进行分类,将各个放款及其旋转镜像的变形都转换成二进制数据,然后在程序里面通过定时器控制方块的下落,同时对方块的旋转,左右移动进行处理。最后当方块下降到最底部时,检查时候有完整的行,如果有,则将其消除,然后随机生成下一个方块,循环往复。


详细的代码请参考附件!!!


复刻小霸王游戏机硬件项目图18


其实游戏的逻辑相比于很多程序都要复杂很多,尝试自己独立实现一款游戏对编程思维的提升有很大的帮助。早在我读书的时候就尝试实现过俄罗斯方块的游戏,当时实验是的老师看到后批评我不务正业,后来就不了了之了。现在我有延续之前的工作,把这个游戏给完成了,并且使用的还是入门较简单的51单片机,就是希望能够激起同学们对电子,对编程的兴趣,参考我这个设计,自己尝试实现一个坦克大战,贪吃蛇之类的游戏,相信对你们的成长会有比较大的帮助。

小霸王游戏机 俄罗斯方块 51单片机 LCD屏幕 鹏老师
最近更新时间 2023-06-26 11:45:00
描述
PCB
元件清单
原理图
附件
讨论