北邮打地鼠的游戏设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数电实验报告

题目:打地鼠的游戏设计与实现

姓名:

学号:

班级:

学院: 电子工程学院

2015年 11 月 8日

一、 任务要求

基本要求

1、设计一个挑战反应速度的“打地鼠”游戏,采用用 8×8双色点阵显示游戏界面,其中游戏边界采用绿色 LED 显示,随机出现的地鼠采用红色 LED 显示,游戏有 16个洞穴,如图 1所示。

2、游戏洞穴

每次随机出现一个地鼠,

每个地鼠的最长保持时间为 2 秒,2 秒后随机出现下一个地鼠。以 4×4键盘的按键代表锤子,16个洞穴与 16个按键一一对应,一旦锤子在 2秒内击中地鼠,地鼠消失,数码管计分器分数加 1分;若锤子一直没有击中地鼠,2秒后该地鼠消失。用两个数码管显示游戏成绩,当游戏成绩达到 10分时游戏结束,点阵显示字符“V”。 3、用两个数码管对整个游戏进行倒计时,当游戏时间超过 59秒而成绩未达到 10分时,游戏失败,点阵显示字符“X”。 4、按复位键重新开始游戏,并开始倒计时。 提高要求:

1、增加游戏难关,在边界内每次随机出现两个地鼠,两个地鼠的最长保持时间均为2秒,2

秒后随机出现下两个地鼠,锤子击中一个地

鼠加1分,当游戏成绩达到20分而且游戏时间未超过59秒时,游戏结束,显示字符“V”,否则显示字符“X”。

2、自拟其他功能。

二、系统设计

设计思路:

1、将该程序进行分模块设计。可以将程序分为:分频模块、随机数产生模块、比较模块、键盘电路、显示模块、计时模块、游戏结束模块。

2、分模块进行相应模块的编写。

3、对编好的模块进行测试。

4、编写主程序并进行调试。

总体框图:

分块设计:

1、分频模块

将50MHz的信号源分别分频为各难度所需频率的时钟信号。

2、随机数产生模块

本实验采用伪随机数产生方法,即在ROM中存入随机表中的数据,游戏开始后采用一个计数器不断从其中读取数据。

3、比较模块

判断选手得分或失分主要是由一个比较器完成的,将系统传给LED灯的信号与选手输入的信号作比较,相同则加分,否则扣分,这两个信号分别传给计分模块,从而完成系统判定得分的工作。

4、键盘电路

主要通过产生行扫描,来识别用户的按键,电路中已经对按键进行了消抖。其提供给控制器按键的编码。

5、显示模块

显示模块分为两部分,一为60s的倒计时,另一个为从0到10的记分模块,游戏开始时计时模块和比较模块分别将信号传递给显示模块,用来将BCD码转化为可以在七段数码管中显示的。

6、计时模块

在此模块中集合开始键,复位键。当复位键等于0,开始键等于1时,游戏开始。倒计时模块预置值为60,开始信号给出后,开始60s倒计时。

7、记分模块

计分模块接受来自比较模块的信号控制分数的加减,同时将当前的分数BCD码以电信号传递给显示模块显示分数,每一次加分时,判断当前分数是否超过10分,同时当前时间是否小于0。

8、游戏结束模块

接收来自计分模块的信号,判断是否结束,保存当前分数,时间通过显示模块显示。

三、仿真波形及波形分析:

一、随机数仿真波形

在等级为1的情况下产生0---16随机数,产生时间不定,根据当前数字,对应与点阵中的16个LED灯,同时点亮该点。

二、键盘输入(“锤子”仿真波形)

通过消抖,提高了键盘反应,当点阵数列和键盘相同时,判断为1,表示为加分信号

三、计时器

出始时刻设为60S, 通过频率为1Hz的时钟,每一次在时钟上升沿到来时,时间减一。

四、最高分保存模块

最高分保存模块和计分模块倒计时模块相连,当倒计时显示为0,分数小于10时保存,或者当分数等于10,倒计时小于60保存,其余情况下均输出0,该模块不工作。

五、比较计分模块波形

当计分信号显示为1时,分数u1加一,时钟频率为0.5Hz,在每一个时钟周期内为1,加一否则保持不变。

六、等级判断模块

四、源程序:

一、分频器

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY fenpinqi IS

PORT(clk_f,clear_f: IN STD_LOGIC;

clk_f_out10k, clk_f_out100, clk_f_out1, clk_f_out1d2: OUT STD_LOGIC);

END fenpinqi;

ARCHITECTURE a OF fenpinqi IS

SIGNAL tmp1: INTEGER RANGE 0 TO 24999; --50000分频

SIGNAL tmp2: INTEGER RANGE 0 TO 4;

SIGNAL tmp3: INTEGER RANGE 0 TO 49; --100分频

SIGNAL tmp4: INTEGER RANGE 0 TO 99; --200分频

SIGNAL clktmp1: STD_LOGIC;

SIGNAL clktmp2: STD_LOGIC;

SIGNAL clktmp3: STD_LOGIC;

SIGNAL clktmp4: STD_LOGIC;

BEGIN

P1: PROCESS(clear_f, clk_f)

BEGIN

IF clear_f = '1' THEN

tmp1<=0;

ELSIF clk_f'event AND clk_f='1' THEN

IF tmp1=24999 THEN

tmp1<=0;

clktmp1<=not clktmp1; -- 50000fenpin

ELSE

相关文档
最新文档