北邮数字电路实验下猜数字l
更新时间:2023-10-19 14:06:01 阅读量: 综合文库 文档下载
- 北邮数字电路与逻辑设计推荐度:
- 相关推荐
数字电路与逻辑设计实验(下)
实验报告
简易猜数字游戏机的设计与实现
班级: 姓名: 学号: 班内序号:
2015 年11 月 05 日
1
一、 简易猜数字游戏机设计与实现的任务要求????????3
二、 简易猜数字游戏机系统设计??????????????4
1. 设计思路 2. 总体框图 3. 分块设计
三、 仿真波形及波形分析?????????????????5
四、 源程序(要有注释)?????????????????8
1. 顶层源码(GuessNum.vnd) 2. 键盘源码(Keyboard.vhd) 3. 消抖源码(xiaodou.vhd) 4. 点阵源码(DotMatrix.vhd) 5. 数码管源码(Display.vhd) 6. 随机数源码(random.vhd) 7. 蜂鸣器源码(beep_t.vhd)
五、 功能说明及资源利用情况???????????????26
六、 故障及问题分析???????????????????27
七、 实验总结??????????????????????30
2
一、 简易猜数字游戏机设计与实现的任务要求 实验基本要求:
1. 游戏规则:通常由两个人玩,一方出数字,另一方猜。出数字的人要想好一
个没有重复数字的4 位数,不能让猜的人知道。
2. 数字设置:通过 4*4键盘进行 4位数字输入,在数码管(DISP0~DISP3)上
显示当前所输入的数字。通过设置确定键(BTN1键)进行锁定,此时数码管上的数值消失,同时用点阵开始倒计时,即:初始状态点阵全亮,然后从右下角开始,由右到左、由下到上逐点逐排依次熄灭,间隔时间为 1s,共计64s。
3. 猜数字:可以通过 4*4 键盘进行 4 位数字输入进行猜数字,且每输入一位
数字在数码管(DISP0~DISP3)上显示当前所输入的数字,按确定键(BTN2键)进行确认,此时要根据输入的这组数字给出几A几 B,其中: ~ A前面的数字表示位置正确的数的个数,用DISP5显示
~ B前的数字表示数字正确而位置不对的数的个数,用DISP4显示
~ 如正确答案为2134,而猜的人猜5314,则是1A2B,其中有一个4的位置
对了,记为1A,而1和3这三个数字对了,而位置没对,因此记为2B,合起来就是1A2B;
~ 接着猜的人再根据出题者的几A几B继续猜,直到猜中(即 4A0B)为
止。
4. 若数字正确则显示猜数字成功,点阵显示“?”笑脸;若输入数字错误系统
仍然处于猜数字状态,点阵显示“X” ,并用蜂鸣器或led闪烁报警。 5. 若到点阵全灭时(64s结束)仍未猜出正确数字,游戏失败,点阵显示“囧” 。 6. 设置游戏机开关。
实验提高要求:
1. 若数字正确则显示猜数字成功,用蜂鸣器播放一段乐曲。
2. 随机产生数字,并不在数码管上显示,进行猜数字游戏,用点阵进行 64s
计时,即点阵轮询熄灭两次,其他要求同基本功能 3、4 和5。 3. 自拟其他功能。
二、 简易猜数字游戏机系统设计
1. 设计思路
这次实验主要用到了4×4键盘、8×8点阵、七段显示数码管及蜂鸣器。实验整体设计流程是:
Step1:编写并调试键盘;
Step2:编写并调试数码管和键盘; Step3: 编写并调试点阵; Step4:遍写并调试随机数;
Step5:编写并调试比较(随机数测); Step6:编写顶层并调试。
3
2. 总体框图
4×4键盘 顶层 消抖 随机数 输入控制信号 8×8点阵 七段译码管显示 蜂鸣器
3. 分块设计
首先,键盘输入数字(顶层文件获取键盘输入的数字并根据不同的输入信号做出相关判断与处理操作),通过列扫描(扫描频率为10k)的方式检测键盘的输入信号,根据扫描频率做一个计数器,计数周期为4,依次扫描列(1110、1101、1011、0111),列与行合并为一个八位数组,当八位数组中出现两个0时,表示键盘输入了数字,此时需将key_pressed(数码管显示信号)置1,对比出现八位数组中两个0出现的位置,可得出输入的数值。 其次是防抖,由于按键按下,理想状态会根据按键时间的长短产生一个方波,但是实际上会产生很多毛刺,不利于检测按键的输入信号,对此需要做消抖处理。这部分代码的书写参考了网络上的资料,通过RS触发器,对按键输入信号做消抖处理。在本次试验中,按键均用到了消抖。
第三个则是,数码管显示六位数字(顶层文件发送给数码管disp0-5六个数字,六位数码管分别显示六个数字),数码管扫描频率为10k,根据扫描频率做一个计数器,计数周期为8,当计数器数值为0-5时,分别显示0-5六个数码管的值,其他两个状态数码管不工作。数码管部分的另一功能则是对数字做七段译码处理。 点阵模块(扫描频率10k,倒计时频率1Hz),输入信号有dz、start、 wrong、 success(均由顶层文件赋值)。其中,dz为点阵开始工作的信号(持续高电平),由顶层文件赋值,start为一个只有一段为1的冲激,与dz信号同步。点阵开始工作后,64s倒计时开始,与此同时给列一个64位的数组,初始值都是1,每过1s,数组左移一位,赋值为0。点阵一共有四个状态,64s倒计时,从右到左,从下到上依次熄灭;成功显示“笑脸”;错误显示“X”;64s之后显示“囧”。点阵采用行扫描的显示方式,也是用扫描频率控制一个周期为8的计数器,每一个计数状态对应单个行工作,也对应着此时点阵显示效果中列需要的数值。 随机数部分(伪随机),程序主要部分是随机产生0-15这16个数字,由于实验只需要0-9十个数字,在取值之后使用case对10-15这六个数字分别赋成0-9中的数值,并将二进制数字转换成BCD码。
最后是蜂鸣器,顶层发送给蜂鸣器的信号,控制蜂鸣器的输出与否。
4
三、 仿真波形及波形分析
1. 键盘
Clk_50m上升沿到来时,列赋值以4为周期变化。
当行&列=“11100111”对应4×4键盘输入数字1;当行&列=“11010111”对应4×4键盘输入数字2??由上述仿真图可以看出键盘只支持输入0-9十个数字,其他情况不输出数字。
2. 点阵
点阵行跟列都是根据clk_scan的上升沿变化的 在dz=0时,点阵并不现实,行=“11111111”,列=“00000000”;dz=1时点阵开始工作,同时start有了冲激,64s倒计时开始:
64s倒计时点阵全亮
5
正在阅读:
北邮数字电路实验下猜数字l10-19
不拘一格教语文读后感精选10篇12-12
筛网目数与孔径对照表07-24
电话客服工作职责02-25
2011年度东财会计人员继续教育题库之《财务管理》04-21
同济大学工程地质学期末模拟试卷05-02
2010江苏卷《溜索》问题详解05-02
周报告07-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 数字
- 北邮
- 电路
- 实验
- 程序改错
- 2018版产业园区项目商业计划书(目录) - 图文
- 计算机信息技术教程复习 - 图文
- 2019年清华大学经济管理学院金融硕士考研拟录取名单 - 图文
- 卷内目录(样本)
- 2015福建公务员考试行测备考简单实用技巧:代入排除法
- 生物化学重点
- 临床检验总结1 - 图文
- 2019大学植树节活动策划书
- 无线通信综述试卷
- 中西方时间观念的不同
- 红绿灯实验报告 - 图文
- 磷酸铁锂电池与绿色能源
- 水专项太湖项目无锡市湿地资源调查报告-2010-7-1 - 图文
- 2019-2020年高考数学一轮复习第九章导数及其应用9.1导数的概念及几何意义导数的运算讲义
- 生理学习题
- 六年高考(2013-2018)英语真题分项版解析专题非谓语动词(解析版)原卷版附后 doc
- 做一名“德艺双馨”的好老师
- 新药研发思考题
- 成都信息工程大学科技英语翻译课后习题答案