数字电路实验-打地鼠游戏设计与实现

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

信息与通信工程学院数字电路实验报告

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

班级:

学号:

班内序号:

指导教师:

实验日期:

目录

一、设计课题的任务与要求 (3)

二、系统设计 (3)

2.1 设计思路 (3)

2.2 总体框图 (3)

2.3 分块设计 (3)

三、仿真波形及波形分析 (4)

3.1 分频器 (4)

3.2 随机数产生模块 (4)

3.3 防抖模块 (5)

3.4 点阵显示模块 (5)

3.5 键盘控制模块 (6)

3.6 计分模块 (6)

3.7 计时模块 (6)

3.8 译码器模块 (7)

四、源程序 (7)

4.1 分频器 (7)

4.2 随机数产生模块 (8)

4.3 防抖模块 (10)

4.4 点阵显示模块 (10)

4.5 键盘控制模块 (12)

4.6 计分模块 (13)

4.7 计时模块 (14)

4.8 译码器模块 (15)

五、功能说明及资源利用情况 (16)

六、故障及问题分析 (16)

七、总结与结论 (17)

一、设计任务与要求

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

2、游戏洞穴每次随机出现一个地鼠,每个地鼠的最长保持时间为2 秒,2 秒后随机出现下一个地鼠。以4×4 键盘的按键代表锤子,16 个洞穴与16 个按键一一对应,一旦锤子在2 秒内击中地鼠,地鼠消失,数码管计分器分数加1 分;若锤子一直没有击中地鼠,2 秒后该地鼠消失。用两个数码管显示游戏成绩,当游戏成绩达到10 分时游戏结束,点阵显示字符“V”。

3、用两个数码管对整个游戏进行倒计时,当游戏时间超过59 秒而成绩未达到10 分时,游戏失败,点阵显示字符“X”。

4、按复位键重新开始游戏,并开始倒计时。

二、系统设计

2.1 设计思路

地鼠显示:4*4的红色点阵

边界显示:6*6的绿色点阵

结束画面:绿色的“V”形胜利画面,红色的“X”形失败画面

计时和计分显示:各用2个数码管,共4个数码管

锤子控制:4*4的键盘

开关控制:1个拨码开关

用拨码开关开始游戏,6*6绿色点阵常亮,红色点阵亮的位置表示地鼠出现,按下相应的键盘即算打中,计1分,记到10分游戏结束显示绿色“V”。游戏时间共计60秒,时间为0,分数未到10分,游戏结束显示红色“X”。用50MHz作为基本信号源,分频得到500Hz和1Hz。

2.2 总体框图

2.3 分块设计

A.游戏准备模块:

1.随机数产生模块:将一个4位的二进制数的第一位与最后一位进行异或运算后,作为随机

数种子,并且每次运算完将前三位与种子进行合并,产生周期为21的伪随机数,通过计数控制地鼠持续2秒,通过返回的得分信号改变得分后地鼠的位置。

B.游戏核心模块:

1.点阵显示模块:用于显示地鼠和边界,以及结束时胜利或失败的画面。

2.键盘控制模块:通过对地鼠对应位置的列进行扫描,比较返回的键盘行信号,打到地鼠

即输出得分脉冲信号。

C.进程显示模块:

1.计分模块:通过接收得分脉冲信号,进行计分,每次开始预制值为‘0’。

2.计时模块:使用1Hz的时钟信号进行倒计时,每次减1,开始时预制值为‘60’。

D.辅助模块:

1.分频器模块:将50MHz的信号分频成1Hz用于计时和500Hz用于其他功能。

2.防抖模块:用500Hz的信号进行计数,只有持续6个时钟周期以上的按键信号才会进入

按键控制模块,从而达到防抖的作用。

3.译码器模块:将计分和计时模块传来的信号进行译码,输出到数码管,实现计分和计时

的显示。

三、仿真波形及波形分析

3.1 分频器模块

clk:50MHz的时钟信号

clk_1Hz:1Hz的时钟信号

clk_500Hz:500Hz的时钟信号

reset:复位信号

波形分析:

为便于仿真,这里clk使用的是周期为1us的信号,clk_500Hz为clk的10分频信号,clk_1Hz为clk_1Hz的6分频信号。实际中的分频器是先将50MHz信号进行100000分频,得到500Hz信号,再对500Hz信号进行500分频得到1Hz信号。

3.2 随机数产生模块

clk:500Hz时钟信号

num:4位二进制随机数

score:得分信号

波形分析:

1.通过12个自制D触发器的连接及其中4位的异或,产生12位的二进制随机数,从中取出4位作为地

鼠位置的随机数。

2.通过计500Hz信号1000次,从而控制地鼠持续2秒。

3.只要打中地鼠,即接收到得分的脉冲信号,立即产生新的随机数。

3.3 防抖模块

clk:500Hz时钟信号

keyin:键盘输入信号

keyout:键盘输出信号

reset:复位信号

波形分析:

当输入信号持续时间小于6个时钟周期(即12ms)时,视为抖动不输出。当信号持续时间多于6个时钟周期时,视为正常按键,输出。

3.4 点阵显示模块

图一

图二

相关文档
最新文档