- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北邮数电实验猜拳游戏讲述
17班05号侯智超数电实验设计报告
数字电路与逻辑设计实验报告
题目:猜拳游戏的设计与实现
姓名:
学院:
专业: 通信工程
学号:
班内序号:
摘要说明:
本实验在QuartusⅡ软件环境下,利用实验室集成芯片,使用VHDL语言编写程序实现一个猜拳小游戏的功能。整个系统的设计过程中,采用了up _to_ down的设计思想,完成了编码和译码输出到8X8点阵和数码管显示分数的功能,对应共有三个模块。
关键词:编码译码 VHDL 模块
设计课题实验目的及任务要求:
本电路可供甲乙二人进行猜拳游戏。通过不同的按键控制,选择多种出拳方式,显示猜 拳的结果,实现猜拳游戏,防止了作弊的可能。
基本要求:
1、甲乙双方各用 4×4 键盘中的三个按键模拟“石头”、“剪刀”、“布”,一个按键为“确 ??”。4×4 键盘第一行为甲,第二行为乙;
2、裁判用 4×4 键盘第三行的一个按键模拟“开”,一个按键为“准备”,一个按键为“复 位”;
3、裁判宣布“准备”后,甲乙双方分别选择出拳方式并确认; 4、裁判“开”以后,用点阵的左右三列同时显示甲乙双方的猜拳选择(如下图所示), 并用两个数码管显示甲乙的猜拳比分;
甲“布”,乙“剪刀” 甲“剪刀”,乙“石头”
5、猜拳游戏为五局三胜制。若甲乙双方出拳一致,则比分保持不变,双方重新出拳;
6、比赛结束后,用 8×8 点阵显示甲乙获胜方;
7、复位后游戏重新开始。
提高要求:
1、 点阵显示增加游戏开机动画、结束动画;
2、 为游戏增加音效;
3、 在 LCD1602 液晶屏上显示甲乙双方的猜拳比分;
4、 自拟其他功能。
系统设计:
(1)设计思路:
根据实验的要求,首先控制器是键盘,构思键盘的控制方式:
1、假设4X4键盘第一个到最后一个按键编号为1-16,本实验用到了1-11,共十一个按键,对这十一个按键进行键值编码:
第一行 1 2 3 4
0001 0101 1001 1101
第二行 5 6 7 8
1000 1001 1010 1011
第三行 9 10 11
1111 0110 1100
123代表甲方出“石头”“剪刀”“布”,4代表“已选好(确认)”;
567代表乙方出“石头”“剪刀”“布”,8代表“已选好(确认)”;
9代表“准备”,10代表“开结果”,11代表“复位”
注:此处复位的是按键的操作,对后面的分数不会有影响。
2、键盘编好了每个键的码,进行按键操作以后,传入点阵模块
点阵是8X8的,列输出用红色,列是共阳极,需要扫描显示,按照给出的图案要求,进行图案的扫描显示,比较简单,之后详见代码。
3、根据赛制,五局三胜,也就是谁先达到三分谁就是赢家,故计分模块只需要分别最大分数技术为3就符合了计分目的,计分独立模块,根据按键模块输出的键值,进行译码,根据“开结果”以后之前的甲乙出拳组合得出不同分数计数,通过数码管的左侧两位显示出来,当一方达到三分后,将甲或者乙的计分3输出,输入到点阵模块,此时显示一方胜利图案。
至此设计思路完整清晰。
(2)系统总体框图:
分块设计程序及仿真分析
按键模块
由于我们的4X4按键模块的端口是:四行的每行四个键分别公用一个行输入,四列的四个键分别公用一个列输出,这就需要我们扫描按键来控制输出。
四位计数对列进行扫描,每次扫描单列时,再对行进行扫描,这样就可以对使用到的所有键分别有各自的输入输出控制。具体实现如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity caiquan is
port(
kb_row_in:in std_logic_vector(3 downto 0);
kb_col_out:out std_logic_vector(3 downto 0);
showa,showb,showc,showd:out std_logic_vector(3 downto 0);
clk:in std_logic
);
END caiquan;
architecture cai of caiquan is
signal counta,countb:std_logic_vector(1 dow
您可能关注的文档
最近下载
- 升压站(35KV、站用变、施工变、接地变、SVG)设备安装施工方案.docx
- 新教科版六上科学4.4《电能和磁能》优质课件.pptx
- 浅谈暖棚法施工冬季桥梁混凝土施工质量控制.doc VIP
- 消防安全主题班会课件——生命至上预防火灾.pptx
- 2024年资料员考试题库含答案(综合题).docx
- 战场救护知识培训PPT课件.pptx VIP
- 3.3.2 C-2.1 卫生院手术部位识别标识相关制度与流程(2024年4月修订).docx
- 【中文翻译版】美国居民膳食指南2020-2025.pdf
- 部编人教版五年级下册语文教案全册教学设计及教学反思.doc
- 学习铸牢中华民族共同体意识心得(15篇).docx VIP
文档评论(0)