数字逻辑实验总结.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北京邮电大学 数字电路与逻辑设计实验报告 实验题目:掷骰子游戏电路的设计与实现 学生姓名: 班级: 学号: 序号: 目录 设计课题的任务要求 系统设计 仿真波形及波形分析 源程序 功能说明及资源利用情况 故障及问题分析 总结和结论 设计课题的任务要求 设计并实现一个掷骰子游戏电路。 基本要求: 1、 电路可供甲乙二人游戏,游戏者甲使用的按键为 BTN0,游戏者乙使用的按键为 BTN1。 2、 每按一次按键,代表掷一次骰子,可随机得到 1~6 范围内的两个数字。 3、 甲乙按键产生的随机数字分别用数码管 DISP0-DISP1、DISP2-DISP3 显示,并用 DISP7 显示比赛局数,比赛结束用 8×8 点阵显示获胜方,并伴有声音效果。 4、 具体游戏规则如下: (1) 第一局比赛,甲乙依次各按一次按键,按键所得两数之和为7或11者胜;若无 人取胜,则进行第二局比赛; (2) 第二局比赛,甲乙每人各按一次按键,按键所得二数之和与第一局比赛相同者获 胜,若无人获胜,则进行第三局比赛,重复进行步骤(2),直到出现胜者为止。 (3) 游戏局数最多进行六局。在第六局比赛时,若重复进行步骤(2)仍未出现胜者, 以按键所得两数之和最大者为获胜方。 提高要求: 1、 增加多人游戏的功能,数码管可分时记录显示每个游戏者的骰子点数。 2、 点阵显示增加游戏开机动画、结束动画,并伴有乐曲播放。 3、 自拟其它功能。 二、系统设计 1、设计思路:按照实验要求,使用状态机分别表示游戏的不同状态;使用分频器来控制时钟;控制器实现具体的游戏规则;8*8LED点阵来显示胜负;数码管显示局数和甲乙掷出的随机数;随机数用一到六的循环产生。在编译时采用元件例化来生成各自的模块。流程图如下 显示 2、总体框图: 控制器 分频器 防抖器 输入 3、分块设计: 分别包括分频器、防抖器、随机数的产生、判断器、译码器和显示器等模块,综合起来实现所要求的功能。 分频器: 防抖器: 随机数的产生: 判断器: 译码器: 显示器: 仿真波形及波形分析 根据甲先乙后的顺序进行仿真如下: 从仿真中可以看出随机数的产生,若时间轴向后移可以将游戏看得更加清楚。 源程序 分频器: library ieee; use ieee.std_logic_1164.all; entity fenpingqi is port (clk:in std_logic; clktmp:out std_logic); end fenpingqi; architecture a of fenpingqi is signal tmp: integer range 0 to 499:=0; signal clktmp1: std_logic; begin p3:process(clk) --frequent time begin if clkevent and clk=1then if tmp=499 then tmp=0;clktmp1= not clktmp1; else tmp=tmp+1; end if; end if; end process p3; clktmp=clktmp1; end a ; 防抖器: library ieee; use ieee.std_logic_1164.all; entity fangdouqi is port (clk,btn1, btn2 :in std_logic; btn1_en,btn2_en :out std_logic); end fangdouqi; architecture a of fangdouqi is signal tempcount1:integer range 0 to 5 :=0; signal tempcount2:integer range 0 to 5 :=0; begin p5:process(clk,btn1,btn2) begin if clkevent and clk=1 then if btn1=1 then if tempcount1=5 then tempcount1=tempcount1; else tempcount1=tempcount1+1; end if; if tempcount1=4 then btn1_en=1; else btn1_en=0; end if; else tempcount1 =0;

文档评论(0)

a336661148 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档