李 倩
正德职业技术学院 江苏南京 211106
基于PLD的打地鼠游戏的设计与实现
李 倩
正德职业技术学院 江苏南京 211106
打地鼠游戏是一款实用性小游戏,娱乐性很强,且能够锻炼孩子们的反应速度,现在市面上也出现了很多关于打地鼠的儿童玩具。本文实现了的打地鼠游戏的基本功能,讲述了此游戏的设计实现过程,通过整个详细的设计过程让学习者了解到基于PLD的系统设计流程。
PLD;打地鼠;游戏;数码管
本设计灵感来源于文曲星上风靡一时的打地鼠游戏,此游戏既能够锻炼玩游戏人的反应速度,也具有一定的娱乐功能。游戏开始后4×4的点阵中每隔一定秒数(由设计难度决定)会随机点亮一盏,以供选手进行游戏。当一盏灯点亮时,在下一盏灯亮之前按下对应的键盘即可得分,否则失分。游戏开始时难度初始值可设定,随后进行一分钟倒计时,一旦为0游戏结束。游戏会在规定时间内判断得分最高者胜出。
此游戏用单片机实现的案例较多,但是用PLD实现的却很少,本设计选择了以PLD进行打地鼠游戏的设计,为学习者提供另种方法与思路。
系统硬件部分由输入按键模块、4×4的点阵模块、4×4键盘模块和数码管输出模块等部分组成,系统总体面板示意图如图1所示。
1.1 系统面板
该系统的硬件设计采用了模块化的设计方法。核心芯片采用Altera公司的EP1C3T144C8,它们实现系统的功能要求。如图1所示,为系统面板示意图,地鼠界面用4×4的点阵实现,在点阵中用随机亮起的等表示探出的老鼠,按键用键盘来实现,由键盘4×4的键对应相应的点阵中的地鼠,控制器通过读取用户的按键及点阵输出代码并进行判断来相应的加减分。当玩家分数为零或者游戏时间倒计时置0时,游戏停止。在游戏过程中当玩家按了结束键之后推出进入游戏难度选择,这是用四个开关输入的。
图1 系统面板示意图
1.2 输入输出说明
表1 输入信号
表2 输出信号
2.1 系统总框图
如图2所示为系统总框图,根据此框图我们进行打地鼠各模块的软件设计。
图2 系统框图
2.2 各个模块功能
各个模块的功能描述如下所述:
2.2.1 分数判断模块
判断选手得分或失分主要是由一个比较器完成的,将系统传给LED灯的信号与选手输入的信号作比较,相同则加分,否则扣分,这两个信号分别传给计分模块,从而完成系统判定得分的工作。
2.2.2 系统时钟模块
将内部2 MHz的时钟分频为1 kHz及游戏时钟,供以后程序适使用。
2.2.3 键盘电路
主要通过产生行扫描,来识别用户的按键,电路中已经对按键进行了消抖。其提供给控制器按键的编码。
2.2.4 等级判断模块
判断等级,若游戏未开始时,将等级设为初始值,游戏开始后则判断是否按对五次或按错五次,并响应的加、减等级。
2.2.5 随机数产生模块
为使得测试结果的公平性,需要4×4等灯亮灭具有随机性,因而需要随机数产生过程,在本方案中,采用伪随机数产生方法,即在ROM中存入随机表中的数据,游戏开始后采用一个计数器不断从其中读取数据。
2.2.6 显示模块
用来将BCD码转化为可以在七段数码管中显示的。
2.2.7 计时模块
系统的计时部分需要一个能置初值的计数器即可,其控制信号应为start,stop。
2.3 系统状态流程图
如图3所示为系统状态流程图,此流程显示出了我们进行打地鼠各模块的核心设计思路。
图3 系统流程图
设计软件采用QuartusII,软件通过编译,并进行波形仿真。波形仿真在设计中起到至关重要的作用,通过仿真波形我们可以看出设计中存在的问题,并加以改正。而图4、图5、图6则是摘取的其中几个重要的仿真波形,它们同时也证明了此设计功能的实现。如图4所示为随机数产生模块仿真波形,图5所示为比较几分模块仿真波形,图6所示为等级判断模块仿真波形。
图4 随机数产生模块仿真波形
图5 比较计分模块仿真波形
图6 等级判断模块仿真波形
此设计完成了预期中的所有目标,将预设时间改为预设等级,这样做的原因是自定等级比自定时间对玩家更有娱乐意义。另外,如果继续扩展其功能,除了可以体现在提高两盏灯之间的亮灭速度,还可以缩短一个灯亮的时间。经过本次设计锻炼,既可以提升独立的完成项目的能力,又能熟悉VHDL语言这一标准硬件描述语言,为以后的一些相关学习打下了一定的基础。
[1] 李倩.基于FPGA的MP3音乐播放器设计[J].工业控制计算机,2014(4):159-160.
[2] 李倩,梁亮.基于微波光子六倍频的光载无线通信系统[J].光通信技术,2014(2):27-29.
[3] 李倩,梁亮.基于FPGA的电子密码锁的设计与实现[J].科技信息.2011(5):118,121.
[4] 李倩.F P G A小型实验板的开发与实现[J].科教文汇.2010(7):87,91.
Design and Implementation of Whac-a-mole Game Basd on PLD
Li Qian
Zhengde Polytechnic College, Nanjing, 211106, China
Whack-a-mole game is a practical small game, entertainment is very strong, and can exercise the children's reaction speed, now on the market also appeared a lot of children's toys about whack-a-mole. This paper realized the basic function of the game of whack-a-mole,tells the story of the game design process, through the detailed design process for a beginner to understand the system design process based on PLD.
PLD; Whac-a-mole; game; digital tube
2014-07-10
李倩,硕士,实验师。