北京邮电大学数字电路实验迷宫游戏

合集下载

北邮数字电路与逻辑设计实验-实验报告(下)

北邮数字电路与逻辑设计实验-实验报告(下)

北京邮电大学电路实验中心<数字电路与逻辑设计实验(下)>实验报告班级: xxx 学院: xxx实验室: xxx 审阅教师:姓名(班内序号): xxx 学号: xxx实验时间: xxx评定成绩:目录一、任务要求 (2)1.基本要求 (2)2.提高要求 (2)二、系统设计 (2)1.设计思路 (2)2.总体框图 (4)3.分块设计 (5)(1)分频器模块 (5)(2)4×4键盘输入模块 (5)(3)数码管显示模块 (6)(4)8×8 LED点阵显示模块 (6)(5)LCD液晶屏显示模块 (6)(6)中心模块 (6)三、仿真波形及波形分析 (6)1.分频器模块 (6)2.4×4键盘输入模块 (7)3.数码管显示模块 (7)4.8×8 LED点阵显示模块 (8)5.LCD液晶屏显示模块 (8)6.中心模块 (8)四、源程序 (9)1.分频器模块 (9)2.4×4键盘输入模块 (9)3.数码管显示模块 (11)4.8×8 LED点阵显示模块 (12)5.LCD液晶屏显示模块 (19)6.中心模块 (23)五、功能说明及资源利用情况 (26)六、故障及问题分析 (27)七、总结和结论 (27)一、任务要求本电路可供甲乙二人进行猜拳游戏。

通过不同的按键控制,选择多种出拳方式,显示猜拳的结果,实现猜拳游戏,防止了作弊的可能。

1.基本要求1、甲乙双方各用4×4 键盘中的三个按键模拟“石头”、“剪刀”、“布”,一个按键为“确认”。

4×4 键盘第一行为甲,第二行为乙;2、裁判用4×4 键盘第三行的一个按键模拟“开”,一个按键为“准备”,一个按键为“复位”;3、裁判宣布“准备”后,甲乙双方分别选择出拳方式并确认;4、裁判“开”以后,用点阵的左右三列同时显示甲乙双方的猜拳选择(如下图所示),并用两个数码管显示甲乙的猜拳比分;图1甲“布”,乙“剪刀”;甲“剪刀”,乙“石头”5、猜拳游戏为五局三胜制。

数电实验报告-贪吃蛇-北邮

数电实验报告-贪吃蛇-北邮

1 / 13简易贪食蛇游戏机学院:信息与通信工程专业:班级:姓名:学号:班内序号:简易贪食蛇游戏机一.设计课题的任务要求基本任务:用一个 8×8 点阵做为基本显示屏,4 个连续移动的的发光点表示一条蛇,用任意出现的一个亮点表示老鼠,用4 个排成一条线的发光点表示“墙”,用四个按键控制蛇的运动方向,完成贪食蛇游戏,蛇撞“墙”、边或者游戏时间到,则游戏结束。

1. 老鼠出现的地方是随机的,在某个地点出现的时间是5 秒钟,如果5 秒钟之内没有被吃掉,它就会在其它地方出现;2. 用数码管显示得分情况和游戏的剩余时间,每吃掉一只老鼠就加一分;提高要求:1. 游戏时间和速度可以手动设置。

2. 增加游戏难度或自拟其它功能。

二.系统设计1.设计思路当复位键置为1时, 8*8点阵也初始化为全不亮,每来一个时钟脉冲就对8*8点阵进行一次扫描,并依次点亮四个蛇身点、一个老鼠点、四个墙点,由于扫描频率远远超出人眼所能分辨的范围,故人眼看来蛇身是连续的。

在数码管上显示得分与倒计时情况。

用四个按键分别控制蛇的运动方向“上下左右”,每次按键时通过和蛇原来的运动方向进行比较来控制蛇接下来的运动方向。

当蛇撞墙、出界、游戏时间到时游戏结束,点阵全亮。

每当蛇吃到一个老鼠时则自动加一分并重设老鼠位置。

老鼠存活5秒钟时重设老鼠位置。

用M序列发生器实现老鼠位置的随机变化。

2.总体框架图:复位开关方向输入按键3.逻辑划分框图4.6.分块电路设计⑴点阵显示模块此模块采用频率为1Mhz的时钟clk3。

每来一个时钟就对整个8*8点阵全部扫描一次,当某个点的行为低电平,列为高电平时被点亮。

由于蛇身有4个移动的点,墙有4个固定的点以及一个老鼠的亮点,那么一共有9个点需要在8*8点阵上显示。

所以我将时钟用point分成9个周期,每个周期扫描一个点。

clk3频率很高,虽然是逐点扫描,但由于视觉暂留我们看到的是9个点同时亮。

当复位信号clear置为1时,点阵全不亮。

北邮数电实验报告

北邮数电实验报告

北邮数电实验报告北邮数电实验报告一、引言数电实验是电子信息类专业学生必修的一门实验课程,通过实践操作,帮助学生巩固理论知识,培养实际动手能力。

本次实验旨在通过设计和搭建一个简单的数字电路,来理解数字电路的基本原理和工作方式。

二、实验目的本次实验的目的是设计一个4位二进制加法器,实现两个4位二进制数的相加运算。

通过实验,我们可以加深对于数字电路的理解,掌握数字电路的设计和搭建方法。

三、实验原理1. 二进制加法器二进制加法器是一种用于计算二进制数相加的数字电路。

它由若干个逻辑门和触发器组成,可以实现二进制数的加法运算。

在本次实验中,我们将设计一个4位二进制加法器,即可以计算两个4位二进制数的相加结果。

2. 逻辑门逻辑门是数字电路中常用的基本元件,用于实现逻辑运算。

常见的逻辑门有与门、或门、非门、异或门等。

在本次实验中,我们将使用与门和异或门来构建4位二进制加法器。

四、实验步骤1. 设计4位二进制加法器的电路图根据实验要求,我们需要设计一个能够计算两个4位二进制数相加的电路。

首先,我们可以将两个4位二进制数分别用D0~D3和E0~E3表示,其中D0和E0分别为最低位。

然后,我们需要使用与门和异或门来实现加法器的功能。

通过逻辑运算,我们可以得到每一位的和以及进位。

最后,将每一位的和连接起来,即可得到最终的结果。

2. 搭建电路根据电路图,我们可以开始搭建实验电路。

首先,将所需的逻辑门和触发器连接起来,形成一个完整的电路。

然后,将所需的输入信号和电源连接到电路上。

最后,使用示波器等工具检查电路的工作状态,确保电路正常运行。

3. 进行实验测试在搭建好电路后,我们可以进行实验测试。

首先,将两个4位二进制数的输入信号连接到电路上。

然后,通过观察输出信号,判断电路是否正确计算了两个二进制数的相加结果。

如果输出信号与预期结果一致,说明电路设计和搭建成功。

五、实验结果与分析在进行实验测试后,我们可以得到实验结果。

通过观察输出信号,我们可以判断电路是否正确计算了两个二进制数的相加结果。

北邮数电实验--打地鼠实验报告

北邮数电实验--打地鼠实验报告

数字电路与逻辑设计实验(下)实验报告课题名称:打地鼠游戏的设计与实现学院:电子工程学院班级:2013211202姓名:学号:目录一.设计课题及任务要求 (4)1.课题名称:打地鼠游戏的设计及实现 (4)二.系统设计 (4)1.设计思路:采用自顶向下的设计原则。

(4)2.整体分析: (4)3.整体设计框图: (4)三.分模块设计 (5)1.分频模块设计 (5)1)需求分析: (5)2)模块代码: (5)3)模块仿真波形 (5)2.倒计时模块: (6)1)功能分析: (6)2)模块代码: (6)3)模块仿真 (7)3.计分模块 (9)1)功能分析:。

(9)2)模块代码: (9)3)模块仿真 (10)4.数码管控制模块 (12)1)功能分析: (12)2)模块代码: (12)5.控制模块 (13)1)功能分析: (13)2)模块代码 (13)3)模块仿真 (13)6.随机地鼠生成模块 (14)1)功能分析: (14)2)模块代码 (14)3)模块仿真: (15)7.点阵显示模块 (16)1)功能分析: (16)2)点阵显示原理:原理图: (16)3)模块代码: (17)4)模块仿真 (18)8.键盘模块 (20)1)功能分析: (20)2)原理分析 (20)3)模块代码: (20)4)模块仿真 (22)9.总体模块 (24)1)元件实例连接分析 (24)2)RTL VIEWS (25)3)部分代码 (26)四.功能说明及资源利用情况 (30)1.功能说明: (30)2.资源利用情况 (30)3.总工程 (30)五.故障及问题分析 (31)1.问题分析: (31)2.解决办法 (31)六.总结和结论 (32)一.设计课题及任务要求1.课题名称:打地鼠游戏的设计及实现2.任务要求:1)设计“打地鼠”游戏,采用8X8双色点阵显示游戏界面,其中游戏边界采用绿色LED显示,随机出现的地鼠采用红色LED显示,游戏有十六个洞穴。

数据结构_迷宫求解_实验报告 北邮

数据结构_迷宫求解_实验报告 北邮

数据结构实验报告实验名称:实验二——利用栈结构实现迷宫求解问题学生姓名:班级:班内序号:学号:日期:2012年11月19日一、实验目的1、进一步掌握指针、模板类、异常处理的使用2、掌握栈的操作的实现方法3、掌握队列的操作的实现方法4、学习使用栈解决实际问题的能力5、学习使用队列解决实际问题的能力二、实验要求:利用栈结构实现迷宫求解问题。

迷宫求解问题如下:心理学家把一只老鼠从一个无顶盖的大盒子的入口赶进迷宫,迷宫中设置很多隔壁,对前进方向形成了多处障碍,心理学家在迷宫的唯一出口放置了一块奶酪,吸引老鼠在迷宫中寻找通路以到达出口,测试算法的迷宫如下图所示。

提示:1、可以使用递归或非递归两种方法实现2、老鼠能够记住已经走过的路,不会反复走重复的路径3、可以自己任意设置迷宫的大小和障碍4、使用“穷举求解”的方法三、程序分析1、存储结构栈存储结构;示意图;2、关键算法分析A、绘制迷宫;伪代码:1、输出迷宫的大小及全部设置为障碍;2、根据键盘的输入绘制迷宫的路线,起始点和终点;void draw()//绘制迷宫障碍{k=getch();switch(int(k)){case 105://上if(by>5){by--;j--;}break;case 107://下if(by<M+4){by++;j++;}break;case 106://左if(bx>2){bx=bx-2;i--;}break;case 108://右if(bx<2*N){bx=bx+2;i++;}break;case 114://'R'路map[i][j]=0;cout<<".";break;case 119://'W'墙map[i][j]=-3;cout<<"■";break;case 115://'S'起点s[0].x=i;//起点入栈s[0].y=j;top=1;map[i][j]=-1;cout<<k;break;case 101://'E'终点map[i][j]=-2;cout<<k;break;}gotoxy(bx,by);}B、路径寻找伪代码;1、向某一方向查找是否有路;2、如有遍历一下栈,看是否已经进栈,一进栈就舍弃,寻求下一个;无就让其进栈。

北邮数字电路实验-投骰子游戏

北邮数字电路实验-投骰子游戏

数电综合实验报告掷骰子游戏电路的设计与实现姓名:xxx班级:xxx学号:xxx目录数电综合实验报告掷骰子游戏电路的设计与实现 (1)一、实验要求: (3)基本要求: (3)提高要求: (3)二、系统设计 (3)设计思路 (3)总体框图 (3)三、仿真波形及波形分析 (7)四、源程序 (7)五、功能说明及资源利用情况 (19)功能说明 (19)资源利用情况 (20)六、故障及问题分析 (20)七、实验结果显示 (21)八、总结和结论 (22)一、实验要求:基本要求: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、游戏规则:通常由两个人玩,一方出数字,另一方猜。

出数字的人要想好一个没有重复数字的 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、随机产生数字,并不在数码管上显示,进行猜数字游戏,用点阵进行 128s 计时,即点阵轮询熄灭两次,其他要求同基本功能3、4 和 5。

3、自拟其他功能。

二、系统设计设计思路:首先是状态机的设定,设定了5个状态,分别是idle、s1、s2、s3和over。

数字电路实验报告_北邮

数字电路实验报告_北邮

一、实验目的本次实验旨在通过实践操作,加深对数字电路基本原理和设计方法的理解,掌握数字电路实验的基本步骤和实验方法。

通过本次实验,培养学生的动手能力、实验技能和团队合作精神。

二、实验内容1. 实验一:TTL输入与非门74LS00逻辑功能分析(1)实验原理TTL输入与非门74LS00是一种常用的数字逻辑门,具有高抗干扰性和低功耗的特点。

本实验通过对74LS00的逻辑功能进行分析,了解其工作原理和性能指标。

(2)实验步骤① 使用实验箱和实验器材搭建74LS00与非门的实验电路。

② 通过实验箱提供的逻辑开关和指示灯,验证74LS00与非门的逻辑功能。

③ 分析实验结果,总结74LS00与非门的工作原理。

2. 实验二:数字钟设计(1)实验原理数字钟是一种典型的数字电路应用,由组合逻辑电路和时序电路组成。

本实验通过设计一个24小时数字钟,使学生掌握数字电路的基本设计方法。

(2)实验步骤① 分析数字钟的构成,包括分频器电路、时间计数器电路、振荡器电路和数字时钟的计数显示电路。

② 设计分频器电路,实现1Hz的输出信号。

③ 设计时间计数器电路,实现时、分、秒的计数。

④ 设计振荡器电路,产生稳定的时钟信号。

⑤ 设计数字时钟的计数显示电路,实现时、分、秒的显示。

⑥ 组装实验电路,测试数字钟的功能。

3. 实验三:全加器设计(1)实验原理全加器是一种数字电路,用于实现二进制数的加法运算。

本实验通过设计全加器,使学生掌握全加器的工作原理和设计方法。

(2)实验步骤① 分析全加器的逻辑功能,确定输入和输出关系。

② 使用实验箱和实验器材搭建全加器的实验电路。

③ 通过实验箱提供的逻辑开关和指示灯,验证全加器的逻辑功能。

④ 分析实验结果,总结全加器的工作原理。

三、实验结果与分析1. 实验一:TTL输入与非门74LS00逻辑功能分析实验结果表明,74LS00与非门的逻辑功能符合预期,具有良好的抗干扰性和低功耗特点。

2. 实验二:数字钟设计实验结果表明,设计的数字钟能够实现24小时计时,时、分、秒的显示准确,满足实验要求。

北邮 数电实验报告

北邮 数电实验报告

北邮数电实验报告北邮数电实验报告数电实验是电子信息科学与技术专业的一门重要课程,通过实验可以帮助学生巩固理论知识,培养实践能力。

本次实验我们进行了基于数字逻辑电路的设计与实现,探索了数字电路的原理和应用。

以下是对本次实验的总结和分析。

1. 实验目的本次实验的主要目的是学习数字逻辑电路的设计与实现,了解数字电路的基本原理和应用。

通过实验,我们可以熟悉数字电路的搭建过程,掌握数字电路的设计方法和测试技巧。

2. 实验原理本次实验主要涉及到的数字逻辑电路有与门、或门、非门、异或门等。

这些逻辑门可以通过逻辑运算实现各种功能,如加法器、减法器、比较器等。

我们需要根据实验要求,设计并搭建相应的数字电路,然后通过示波器等仪器进行测试,验证电路的正确性。

3. 实验步骤首先,我们根据实验要求,设计了一个4位全加器电路。

通过逻辑门的组合,实现了4位二进制数的加法运算。

然后,我们搭建了一个4位比较器电路,用于比较两个4位二进制数的大小关系。

最后,我们设计了一个4位减法器电路,实现了4位二进制数的减法运算。

4. 实验结果通过实验,我们成功搭建了4位全加器、4位比较器和4位减法器电路,并进行了测试。

实验结果表明,我们设计的电路能够正确地完成加法、比较和减法运算,符合预期的逻辑规则。

5. 实验总结通过本次实验,我们深入了解了数字逻辑电路的设计与实现过程。

我们学会了使用逻辑门进行电路设计,并通过实验验证了电路的正确性。

实验过程中,我们也遇到了一些问题,如电路连接错误、示波器读数不准确等。

但通过仔细分析和调试,我们最终解决了这些问题,并取得了满意的实验结果。

6. 实验感想数电实验是一门非常重要的实践课程,通过实验我们不仅巩固了理论知识,还培养了实践能力和解决问题的能力。

在实验过程中,我们需要细心观察、仔细分析,并灵活运用所学的知识。

实验不仅考验了我们的动手能力,还锻炼了我们的思维能力和团队合作精神。

7. 实验的意义数电实验的意义在于将理论知识与实际应用相结合,帮助我们更好地理解和掌握数字电路的原理和应用。

北邮java智能卡哈利波特走迷宫实验报告

北邮java智能卡哈利波特走迷宫实验报告

北邮智能卡实验报告哈利波特走迷宫学院:电子工程学院班号:2011211204学号:2011210986姓名:班内序号:15一、需求分析:1、题目要求:哈利波特走迷宫,只能向右和向下MxN<15x15,权值-10~10(十进制)。

超出要提示不对APDU INS取0082设置棋盘P1:M ,P2:N。

每个一字节717273()。

取0071获取一个可行的路径。

若成功则返回9000和路径;若错误返回6A01.取0072获取最优路径从左上到右下,吃到最多,权值最大,返回的第一字节未结束的(最大)权值。

取0073(反推的)最优需求的最小权值(初值)。

取0080返回学号十字节字符串表示。

取0081返回姓名GB2312,把中文转成编码。

每个字两字节。

设计:包含逻辑框架每部分流程图每部分测试数据,包括走空的全空的等各种关键代码和测试结果2、INS描述项目APDU INS 其他说明设置棋盘SET_MAP:0x82成功则返回9000,错误则返回6A02获取可行路径GET_ROUTE:0x71 成功则返回生命值及路径,错误则返回6A01获取权值最大路径GET_MAXWEIGHT:0x72成功则返回生命值及路径,错误则返回6A01获取权值最小路径GET_MINWEIGHT:0x73成功则返回生命值及路径,错误则返回6A03返回学号GET_SNUMBER:0x80返回学号及9000返回姓名GET_SNAME:0x81返回姓名及9000二、程序设计(修改后的程序框图):1、整体程序框图:2、创建地图模块:CLA INS P1 P2 LC DATA LE 00 70 M N M*N 略—3、返回姓名模块:CLA INS P1 P2 LC DATA LE 00 81 00 00 00 —0a 4、返回学号模块:CLA INS P1 P2 LC DATA LE00 81 00 00 00 —85、获取随机路径模块:CLA INS P1 P2 LC DATA LE00 71 00 00 ——2*(M+N-2)6、输出最大权值路径:CLA INS P1 P2 LC DATA LE00 72 00 00 ——2*(M+N-1)7、输出最小权值生命值路径:CLA INS P1 P2 LC DATA LE00 73 00 00 ——2*(M+N-1)三、测试数据:1、选中卡2、返回学号:3、返回结果说明:2011210986 9000返回学号结果执行成功4、返回姓名:5、返回结果说明:4585 4893 9000对应姓名:王旋执行成功6、建立一个权值不合要求的3X3迷宫:说明:FD为-11,权值超过规定范围,返回错误6A02。

院校资料-北京邮电大学数字逻辑设计实验报告

院校资料-北京邮电大学数字逻辑设计实验报告

北京邮电大学数字逻辑设计实验报告北京邮电大学数字电路与逻辑设计实验实验报告实验名称:足球比赛游戏机班级:2012211117学号:2012210485姓名:宋恺2014年11月8号一、实验目的(1)进一步掌握VHDL和Quartus II软件的使用;(2)理解状态机的工作原理和设计方法;(3)掌握利用EDA工具进行自顶向下的电子系统设计方法。

二、实验所用仪器及元器件(1)计算机;(2)EDA开发板及相应元器件。

三、实验内容(1)基本内容1、按下开始键后,点阵显示球场初始状态,黄色点表示球,红、绿点表示甲、乙双方的球员,上下各有四个点表示双方的球门。

2、甲、乙双方各有一组上下左右按键来控制自己的球员,当球员位于足球的上下左右四个点时,按下方向键可带球向对应的方向移动,如果移动方向正前方有对方球员,则球不能移动。

3、在没有球员踢球的时候,足球每秒随机向四个方向移动一格。

4、足球到四周边界线(点阵最外一圈的点)时,再继续向外踢球时,可以球不移动,等待球随机移动;也可以自己设定相关的出界规则。

5、足球进入球门,则胜方自动加1 分,每方的分数用2 位数码管显示。

6、每场比赛时间为90 秒,用数码管倒计时显示时间。

计时到0 后,比赛停止,点阵显示胜利方(甲、乙或者平),直到再次按下比赛开始键后重新开始。

(2)提高要求1、进球和比赛结束后点阵显示动画或者蜂鸣器播放音乐庆祝。

2、自拟其它功能。

四、系统设计本次试验我把电路分为中心逻辑模块(center)和外围硬件驱动模块(按键keyboard,点阵显示screen,数码管显示digit,倒计时countdown,分频器clkgen)。

各部分把信号送给center,center对信号做出反应。

五.程序设计(1)点阵模块点阵分成了两个小块,一部分负责扫描,即通过扫描显示输入图形,一部分负责图像的输入,这样做能简化程序结构,让程序思路更清晰。

扫描模块在1kHz的上升沿,列移位输出由中心部件传过来的信号shenfu(胜负)为000时未分胜负,则显示甲乙球的对应坐标,否则根据胜负显示结果。

北邮数字电路与逻辑设计实验课程要求及题目

北邮数字电路与逻辑设计实验课程要求及题目

2015~2016学年第一学期《数字电路与逻辑设计实验(下)》课程要求一、课程安排及要求:本学期数字实验教学内容为综合课题设计,教学方式采用开放式实验教学模式,第6周和第9周实验按班上课,第7周和第8周实验室全开放,学生根据开放实验安排自行选择实验时间和地点,要求每人至少参加2次课内开放实验。

课程具体安排如下:周次内容4 召开课程说明会,介绍课程安排和题目,要求学生第6周上课前选好实验题目,每个题目每班不超过6人。

6 讲授内容:系统设计方法、综合题目要求等实验内容:学生确定题目,每个题目不超过6人;讨论确定设计方案,下课前交设计方案,包括:系统结构框图、方框图(模块划分)、模块之间信息传递关系、各模块的输入输出信号、主要模块的详细设计(ASM图、MDS图)等。

7、8 开放实验,要求每个学生至少参加2次课内开放实验,根据选定题目的要求完成电路的设计、仿真与调试,在实验板上实现电路功能9 验收答辩二、成绩评定数字综合实验成绩由三部分组成:●平时成绩:占总成绩的30%●验收答辩:占总成绩的40%●报告成绩:占总成绩的30%实验报告评分标准如下(按百分制批改,占总成绩的30%):内容分数1 设计课题的任务要求 52 系统设计(包括设计思路、总体框图、分块设计)153 仿真波形及波形分析254 源程序(要有注释)155 功能说明及资源利用情况106 故障及问题分析157 总结和结论108 报告格式规范、清晰 5三、实验题目题目一基于CPLD的简易洗衣机控制器的设计与实现基本要求:1、洗衣机的工作步骤为洗涤、漂洗和脱水三个过程,工作时间分别为:洗涤30秒(进水5秒,洗衣15秒,排水5秒,甩干5秒),漂洗25秒(进水5秒,漂洗10秒,排水5秒,甩干5秒),脱水15秒(排水5秒,甩干10秒);2、用一个按键实现洗衣程序的手动选择:A、单洗涤;B、单漂洗;C、单脱水;D、漂洗和脱水;E、洗涤、漂洗和脱水全过程;3、用发光二极管显示洗衣机的工作状态(洗衣、漂洗和脱水),并倒计时显示每个状态的工作时间,全部过程结束后,应有声音提示使用者,并保持在停止状态,直至再次开始;4、用点阵动画显示洗衣机工作过程中进水、波轮或滚筒转动、排水和甩干等的工作情况,四种工作情况的动画显示要有区别且尽可能的形象。

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

数字电路综合实验报告学院:信息与通信工程学院班级:班内序号:姓名:学号:选作题目:简易迷宫游戏一、课题的任务要求1、基本要求:1)用8×8点阵进行游戏显示。

2)迷宫游戏如下图所示,采用双色点阵显示,其中红色LED为迷宫墙壁,绿色LED表示人物。

通过BTN0~BTN3四个按键控制迷宫中的人物进行上下左右移动,使人物从起始点出发,走到迷宫的出口,游戏结束。

3)普通计时模式:通过按键BTN7启动游戏,必须在30秒内找到出口,否则游戏失败,用两个数码管进行倒计时显示。

游戏胜利或者失败均要在8×8点阵上有相应的画面出现。

4)迷宫中的人物在行走过程中,如果碰到墙壁,保持原地不动。

2、提高要求:1)多种迷宫地图可以选择。

2)在计时的基础上增加计步的功能,每按一次控制按键步数加1,碰壁不计算步数,计步结果用数码管显示。

3)为游戏增加提示音乐,在不同时间段采用不同频率的信号控制蜂鸣器发声报警。

4)增加其他游戏模式。

5)自拟其它功能。

二、系统设计(包括设计思路、总体框图、分块设计)1、整体设计思路:通过分析迷宫游戏的特点,将迷宫游戏的实现分为三大核心功能模块,一是控制模块controller,是整个游戏的“枢纽”,负责处理玩家的输入信号,控制整个游戏阶段的跳转,游戏胜负的判断,以及输出相应显示模块的控制信号。

二是计时兼数码管显示模块timer,负责倒计时以及倒计时的显示,游戏已走步数的显示,并产生蜂鸣器的控制信号。

三是点阵显示模块lattice,通过接收控制模块的控制信号,控制不同游戏模式或状态下的点阵输出。

其他次要模块主要为:分频模块,防抖模块,蜂鸣器驱动模块。

迷宫游戏的划分方框图如下:图2.1 迷宫游戏的逻辑划分方框图2、总体框图:顶层连接图如下:图2.2 系统顶层设计图3、分块设计:1)控制模块(controller)通过分析控制模块的随着游戏进程的状态变化,可将控制器分为七个状态,分别是①WaitMsg:待机状态,等待玩家BTN0(进入游戏)的输入,跳转至ChoModes。

②ChoModes:选择游戏模式状态,等待玩家BTN0(模式1)或BTN1(模式2)的输入,跳转至ChoLevel。

③ChoLevle:选择游戏难度状态,等待玩家BTN0(难度1)或BTN1(难度2)的输入,跳转至ChoMaps。

④ChoMaps:选择游戏地图状态,等待玩家BTN0(地图1)、BTN1(地图2)、BTN2(地图3)、BTN3(随机选择)其中之一的输入,跳转至Moving。

⑤Moving:游戏状态,等待玩家BTN0(上)、BTN1(下)、BTN2(右)、BTN3(左)其中之一的输入,通过判断游戏终止条件,如是否时间到,步数用尽,或到达终点,来转移状态至Win,或Lose。

⑥Win:游戏胜利状态,玩家在规定时间与步数内到达终点,等待玩家BTN7(复位键)的输入,跳转至WaitMsg。

⑦Lose:游戏失败状态,时间用尽或步数到达上线,等待玩家BTN7(复位键)的输入,跳转至WaitMsg。

在任何状态下,只要收到BTN7(复位)的信号,状态都会转移到WaitMsg。

对应的逻辑流程图如下:图2.3 迷宫游戏控制器逻辑流程图图2.4 controller模块元件图2)计时兼数码管显示模块(timer)timer模块受到controller模块的控制,controller模块将传递游戏状态信号、计时控制信号、游戏难度信号以及已走步数信号给timer。

timer 模块利用case选择语句对相应的控制信号做出相应。

并利用视觉暂留效应,将时间与已走步数显示在数码管上。

图2.5 timer元件图以下是控制数码管显示的代码,负责同时显示时间和已走步数:IF cont_display =4 THEN –模为5的计数器,轮流显示5个数字cont_display<=0;ELSEcont_display<= cont_display+1;END IF;CASE cont_display IS –通过选择计数器的状态,来显示相应的数字WHEN 0 =>con_nixietube<= "101111";nixietube<=nixietube1; --时间的个位WHEN 1 =>con_nixietube<= "011111";nixietube<=nixietube2;--时间的十位WHEN 2 =>con_nixietube<= "111110";nixietube<=nixietubex; --已走步数的个位WHEN 3 =>con_nixietube<= "111101";nixietube<=nixietubey;--已走步数的十位WHEN 4 =>con_nixietube<= "111011";nixietube<=nixietubez;--已走步数的百位END CASE;3)点阵显示模块(lattice)Lattice模块同样也受到controller模块的控制,controller模块将传递游戏状态信号,游戏模式信号,游戏地图信号,根据不同的游戏阶段显示出不同的图案。

其中迷雾模式的显示是一个小难点,首先通过判断y的值,给相邻两行赋上地图,其他置零,然后判断x的值给相邻两行中的部分元素置零,最后达到只显示坐标点周围一格内有地图的显示的效果。

图2.6 lattice模块元件图迷雾显示部分代码如下:CASE y IS ---根据y的取值给临时列向量赋值,只给y临近三列赋值,其他为零,临时列向量最终给输出向量赋值WHEN 0 =>colg_tmp0<=colg0;colg_tmp1<=colg1;WHEN 1 =>colg_tmp0<=colg0;colg_tmp1<=colg1;colg_tmp2<=colg2;WHEN 2 =>colg_tmp1<=colg1;colg_tmp2<=colg2;colg_tmp3<=colg3;WHEN 3=>colg_tmp2<=colg2;colg_tmp3<=colg3;colg_tmp4<=colg4;WHEN 4=>colg_tmp3<=colg3;colg_tmp4<=colg4;colg_tmp5<=colg5;WHEN 5=>colg_tmp4<=colg5;colg_tmp5<=colg5;colg_tmp6<=colg6;WHEN 6=>colg_tmp5<=colg5;colg_tmp6<=colg6;colg_tmp7<=colg7;WHEN 7=>colg_tmp6<=colg6;colg_tmp7<=colg7;END CASE;CASE x IS --根据x的值,对横向部分进行处理,只留下x临近三个的值,其他置零。

WHEN 0=>colg_tmp0(7 DOWNTO 2)<="000000";colg_tmp1(7 DOWNTO 2)<="000000";colg_tmp2(7 DOWNTO 2)<="000000";colg_tmp3(7 DOWNTO 2)<="000000";colg_tmp4(7 DOWNTO 2)<="000000";colg_tmp5(7 DOWNTO 2)<="000000";colg_tmp6(7 DOWNTO 2)<="000000";colg_tmp7(7 DOWNTO 2)<="000000";WHEN 1=>colg_tmp1(7 DOWNTO 3)<="00000";colg_tmp2(7 DOWNTO 3)<="00000";colg_tmp3(7 DOWNTO 3)<="00000";colg_tmp4(7 DOWNTO 3)<="00000";colg_tmp5(7 DOWNTO 3)<="00000";colg_tmp6(7 DOWNTO 3)<="00000";colg_tmp7(7 DOWNTO 3)<="00000";WHEN 2=>colg_tmp0(7 DOWNTO 4)<="0000";colg_tmp0(0)<='0';colg_tmp1(7 DOWNTO 4)<="0000";colg_tmp1(0)<='0';colg_tmp2(7 DOWNTO 4)<="0000";colg_tmp2(0)<='0';colg_tmp3(7 DOWNTO 4)<="0000";colg_tmp3(0)<='0';colg_tmp4(7 DOWNTO 4)<="0000";colg_tmp4(0)<='0';colg_tmp5(7 DOWNTO 4)<="0000";colg_tmp5(0)<='0';colg_tmp6(7 DOWNTO 4)<="0000";colg_tmp6(0)<='0';colg_tmp7(7 DOWNTO 4)<="0000";colg_tmp7(0)<='0';WHEN 3=>colg_tmp0(7 DOWNTO 5)<="000";colg_tmp0(1 DOWNTO 0)<="00";colg_tmp1(7 DOWNTO 5)<="000";colg_tmp1(1 DOWNTO 0)<="00";colg_tmp2(7 DOWNTO 5)<="000";colg_tmp2(1 DOWNTO 0)<="00";colg_tmp3(7 DOWNTO 5)<="000";colg_tmp3(1 DOWNTO 0)<="00";colg_tmp4(7 DOWNTO 5)<="000";colg_tmp4(1 DOWNTO 0)<="00";colg_tmp5(7 DOWNTO 5)<="000";colg_tmp5(1 DOWNTO 0)<="00";colg_tmp6(7 DOWNTO 5)<="000";colg_tmp6(1 DOWNTO 0)<="00";colg_tmp7(7 DOWNTO 5)<="000";colg_tmp7(1 DOWNTO 0)<="00"; WHEN 4=>colg_tmp0(7 DOWNTO 6)<="00";colg_tmp0(2 DOWNTO 0)<="000";colg_tmp1(7 DOWNTO 6)<="00";colg_tmp1(2 DOWNTO 0)<="000";colg_tmp2(7 DOWNTO 6)<="00";colg_tmp2(2 DOWNTO 0)<="000";colg_tmp3(7 DOWNTO 6)<="00";colg_tmp3(2 DOWNTO 0)<="000";colg_tmp4(7 DOWNTO 6)<="00";colg_tmp4(2 DOWNTO 0)<="000";colg_tmp5(7 DOWNTO 6)<="00";colg_tmp5(2 DOWNTO 0)<="000";colg_tmp6(7 DOWNTO 6)<="00";colg_tmp6(2 DOWNTO 0)<="000";colg_tmp7(7 DOWNTO 6)<="00";colg_tmp7(2 DOWNTO 0)<="000"; WHEN 5=>colg_tmp0(7)<='0';colg_tmp0(3 DOWNTO 0)<="0000";colg_tmp1(7)<='0';colg_tmp1(3 DOWNTO 0)<="0000";colg_tmp2(7)<='0';colg_tmp2(3 DOWNTO 0)<="0000";colg_tmp3(7)<='0';colg_tmp3(3 DOWNTO 0)<="0000";colg_tmp4(7)<='0';colg_tmp4(3 DOWNTO 0)<="0000";colg_tmp5(7)<='0';colg_tmp5(3 DOWNTO 0)<="0000";colg_tmp6(7)<='0';colg_tmp6(3 DOWNTO 0)<="0000";colg_tmp7(7)<='0';colg_tmp7(3 DOWNTO 0)<="0000";WHEN 6=>colg_tmp1(4 DOWNTO 0)<="00000";colg_tmp2(4 DOWNTO 0)<="00000";colg_tmp3(4 DOWNTO 0)<="00000";colg_tmp4(4 DOWNTO 0)<="00000";colg_tmp5(4 DOWNTO 0)<="00000";colg_tmp6(4 DOWNTO 0)<="00000";colg_tmp7(4 DOWNTO 0)<="00000";WHEN 7=>colg_tmp0(5 DOWNTO 0)<="000000";colg_tmp1(5 DOWNTO 0)<="000000";colg_tmp2(5 DOWNTO 0)<="000000";colg_tmp3(5 DOWNTO 0)<="000000";colg_tmp4(5 DOWNTO 0)<="000000";colg_tmp5(5 DOWNTO 0)<="000000";colg_tmp6(5 DOWNTO 0)<="000000";colg_tmp7(5 DOWNTO 0)<="000000";END CASE;4)分频模块(div_cl)系统中的各个模块的输入时钟频率不全部相同,且得满足一定的要求,如点阵显示与数码管显示输入频率不能太高,实验板提供的50Mhz频率太高,需要分频。

相关文档
最新文档