打地虫游戏的设计.doc

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目录 一、 课设题目及目的 二、 课设任务 三、 设计分析及系统方案设计 四、 系统VHDL设计 五、 各模块的VHDL程序设计 六 、小组分工 七、 课程设计总结及体会 一、 课设题目及目的 课设题目:打地虫游戏设计 课设目的:通过课设,使我们进一步弄懂所学到的课本知识,巩固和深化对VHDL语言的运用,提高其应用于技术的实践操作技能,掌握VHDL语言应用于系统设计、研制的方法,充分掌握MAXPLUS2的使用方法,培养利用科技革新、开发和创新的基本能力,为毕业后从事与其相关的工作打下一定的基础。 二、课设任务 本课题为利用VHDL语言设置打地虫游戏设的程序,其显示效果为: 1、功能:由8只LED代表虫洞,8个按键代表打虫棒,虫子随机在8虫洞随机出现(LED亮)1s,1s内按相应的虫棒即算打中地虫,得一分,按错或1S内按过其他键或未按键即丢1分。间隔2S出现下一只虫子。10只虫算一关,得分0即进入下一关,重新从0积分,否则游戏结束。 2、要求:上电时数码管显示“STAr--00”,按“开始” 打关时数码管显示 关数和分数; 过关时数码管显示“STAr--XX”(XX为下一关数),按“开始”键,进入下一关; 每过一关,虫子出现的时间为上一关的3/4,共设计8关。 8关全过时显示“--end --” 3、发挥:声效、过关音乐等。 三、设计分析及系统方案设计 随机信号模块设计 为满足每关亮一个灯的设计要求,方案采用初始值八位移位寄存器。移位寄存器输出一个高电平,能满足设计要求。 为满足每回合灯亮随机,采用伪随机数发生器,产生一个高低电平随机的信号作为上述移位寄存器的时钟。由于时钟是随机的,故移位寄存器的输出也是随机的。 开始显示以及过关显示模块 开始模块,在上电开始时,先显示一段字幕,当按开始键后才会显示,第一关并开始击打。第一关结束后数码管上会显示关数当按开始键后才会进入下一关。 击打计分过关模块 击打模块的原理,用一个变量 jian作为寄存器,来存储键值。然后和随机给出的灯值比较。利用关数来实现对每关灯亮的时间计时,在灯亮的期间击打才会有效,灯灭的时候击打无效。 蜂鸣器模块设计 蜂鸣器时钟与随机信号时钟保持一致,当有击打信号时,或者关数加一时,蜂鸣器发出声音,以实现附加功能。 元件例化模块 最后对四个模块进行元件例化,利用端口映射,整合到一个实体里面,实现对各个模块的调用。 系统VHDL设计 引脚绑定 接口 名称 类型 (输入/输出) 结构图上 的信号名 引脚号 Hitout[7··0] 输入 Hitout[7··0] 73,71,70,69,68,67,65,64, Start 输入 Start 89 Clk 输入 Clk 79 Clk1 输入 Clk1 183 Bellout 输出 Bellout 63 Ledout[7··0] 输出 Ledout[7··0] 196,197,198,199,200,202,203,205 Wei[7··0] 输出 Wei[7··0] 170,172,173,174,175,176,177,179,169 Duan[7··0] 输出 Duan[7··0] 179,187,189,190, 191,192,193,195 各模块的VHDL程序设计 Clk1 output Clk1 output [7··0] Counter VHDL语言描述: LIBRARY IEEE; --随机信号产生部分 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY COUNTER IS PORT(CLK1:IN STD_LOGIC; --时钟信号输入 OUTPUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); --随机数输出 END COUNTER; ARCHITECTURE BEHAV OF COUNTER IS SIGNAL Q1:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN PROCESS(CLK1) BEGIN IF CLK1EVENT AND CLK1 =1THEN --clk1的周期为随机的,故高电平的位是随机的 CASE Q1 IS WHENQ1 --输出高电平表示对应的灯亮 WHENQ1 WHENQ1=0000

文档评论(0)

189****6140 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档