数字逻辑课程设计拔河游戏机
《数字逻辑》
课 程 设 计 报 告
题目:拔河游戏机
专业:计算机科学与技术
班级:14计科2班
组长:张钦颖(1414080901218)
成员:无
成员:无
惠州学院计算机科学系
二○一五 年 一 月 八 日
1 设计任务书
设计题目:拔河游戏机
拔河游戏机用7个发光二极管排列成一行,开机后只有中间一个发亮,以此作为拔河的中心线,游戏双方各持一个按键,迅速地、不断地按动产生脉冲,谁按得快,亮点向谁方向移动,每按一次,亮点移动一次。任一方终端二极管发亮时这一方获胜,此时双方按键被锁住,只有经复位后才使亮点恢复到中心线。
2 总体方案设计
2.1 功能和逻辑需求分析
(1)本课程设计的拔河游戏机由7个电平指示灯排列成一行,开机之后只有中间一个电平指示灯亮,以此作为拔河的中心线,游戏双方各持一个按键,迅速地、不断地按动产生脉冲,谁按得快,亮点向谁移动,每按一次,亮点移动一次。移到任一方终端指示灯点亮,这一方就获胜,此时双方按键均无效,输出保持,只有经裁判置位后才使亮点恢复到中心线。
(2)当一局比赛结束后,由点亮该终点灯的信号使电路封锁加减脉冲信号的作用。即实现电路自锁,使加减脉冲无效。同时,使电路自动加分。
(3)控制电路部分应能控制计数器的计数,可以使计数器停止计数。(其进入方向则由参赛双方的按键信号决定)
2.2 总体方案设计
2.2.1 模五计数器:
分设两个计数器比较选手快慢,对选手输入的手动脉冲进行计数,用预置法设初始值为0101,即5,使十进制计数器改成五进制计数器,先输入五个脉冲信号的将传一个进位信号到可逆计数器。
2.2.2 可逆计数器:
若甲选手对应可逆计数器的加法,乙选手对应可逆计数器的减法,若甲的速度比乙快(即甲所用计数器先输出进位信号),则控制可逆计数器进行加法,反之,则进行减法.
2.2.3 译码器:
译码器有三个输入和7个输出。每个输入都有和它唯一对应的输出。例如输入为001时对应l1这个灯亮,输入为111时对应l7这个灯亮。
2.2.4 异或门:
由于TDS-4实验箱只有两个手动脉冲,考虑到两个人比赛,那么这两个手动脉冲必然是要接入到计数器中,而比分显示器和可逆计数器都是需要脉冲触发的,而我们用异或门提供一个脉冲给可逆计数器,使得它们可正常计数。
3单元模块设计
3.1 十进制计数器(2个)
整形电路由两个模为5带进位信号的计数器组成。按键AB为别作为两个计数器的时钟脉冲,这样来实现AB按键哪个按得快,它所对应的计数器就会先产生一个进位信号,在把这个进位信号作为7模计数器的加减信号。这样可以减小AB按键直接作为计数器的加减信号对计数器正常计数的影响。
3.2 可逆计数器
简要原理说明:使用GAL16V8实现,接受来自两个模五计数器的进位信号,以及一个人工脉冲,输出4位二进制码,此外,设有一个复位开关及使能开关。
实现代码:
MODULECOUTER
TITLE'COUTER'DECLARATIONS
CLK,EN,CO1,CO2,MPIN 1,11,2,3,4;
Q0..Q3PIN 12..15 ISTYPE 'REG';
Q=[Q3..Q0];
EQUATIONS
Q.CLK=CLK;
Q.OE=!EN;
WHEN(M==1)
THENQ:=3;
ELSEWHEN(M==0)&(CO1==1)
THENQ:=Q-1;
ELSEWHEN(M==0)&(CO2==1)
THENQ:=Q+1;
ELSEQ:=Q;END
3.3 译码器
简单原理说明:使用GAL16V8制作,接受可逆计数器的输出的4位二进制码作为输入,以下面真值表进行译码,输出直接连接7个二极管。另有一个输出控制两个模五计数器的使能端,当满足某一方胜利条件时输出0,使两个模五计数器不能工作。
实现代码:
MODULE YIMATITLE 'YIMA'
DECLARATIONS
A0..A3 PIN 2..5;
RES PIN 6;
L6,L5,L4,L3,L2,L1,L0 PIN 13..19;
E PIN 12;
A=[A3..A0];
L=[L6..L0];
EQUATIONS
WHEN(RES==1)
THEN{L=8;E=1;}
ELSE WHEN(RES==0)
THEN{
WHEN(A==0)
THEN{L=64;E=0;}
ELSE WHEN(A==1)
THEN{L=32;E=1;}
ELSE WHEN(A==2)
THEN{L=16;E=1;}
ELSE WHEN(A==3)
THEN{L=8;E=1;}
ELSE WHEN(A==4)
THEN{L=4;E=1;}
ELSE WHEN(A==5)
THEN{L=2;E=1;}
ELSE WHEN(A==6)
THEN{L=1;E=0;}
}END
3.4 异或门
简单原理说明:用来产生脉冲信号给可逆计数器以及比分显示器,另外产生模五计数器的预置信号。
3.5 总体电路设计
4电路调试与测试
4.1模五计数器单元模块
将74LS162计数器的输出接二极管,脉冲接手动脉冲,并用预置法将计数器改为模五计数器,按动脉冲测试是否可以实现模五计数器并输出进位信号。
测试结果如下:
脉冲次数 |
DCBA现态 |
DCBA次态 |
进位输出 |
1 |
0101 |
0110 |
0 |
2 |
0110 |
0111 |
0 |
3 |
0111 |
1000 |
0 |
4 |
1000 |
1001 |
0 |
5 |
1001 |
0101 |
1 |
DCBA为计数器输出的4位2进制数
由真值表可知,与理想要求一样。
4.2 可逆计数器单元模块
将RES、X、Y、EN接开关,并接一个手动脉冲,Q3、Q2、Q1、Q0接输出,分别按动RES、X、Y和脉冲,测试当复位开关无效时,X=1,是否可以实现加法,X=0,是否可以实现减法,再测试当复位开关有效时,是否可以实现输出为0011。
当X=1时,可逆计数器实现加法
脉冲 |
RES |
X |
Y |
使能端EN |
Q3Q2Q1Q0 |
1 |
1 |
× |
× |
0 |
0011 |
2 |
0 |
1 |
0 |
0 |
0100 |
3 |
0 |
1 |
0 |
0 |
0101 |
4 |
0 |
1 |
0 |
0 |
0110 |
当Y=1时,可逆计数器实现减法
脉冲 |
RES |
X |
Y |
使能端EN |
Q3Q2Q1Q0 |
1 |
1 |
× |
× |
0 |
0011 |
2 |
0 |
0 |
1 |
0 |
0010 |
3 |
0 |
0 |
1 |
0 |
0001 |
4 |
0 |
0 |
1 |
0 |
0000 |
RES:复位开关
X:模五计数器输出的进位信号
Y:模五计数器输出的进位信号
Q3Q2Q1Q0:输出的4位2进制数
由真值表可知,与理想要求一样。
4.3 译码器单元模块
把烧制的芯片接入实验箱。
步骤1:把输入端a2、a1、a0接入001到111之间所有的可能,发现输出端y7为1时,输入为111;y6=1时,输入为110;y5=1时,输入为101;y4=1时,输入为100;y3=1 时,输入为011;y2=1时,输入为010;y1=1时,输入为001。而且y7到y1只有一个灯亮,不存在两个或者两个灯同时亮的情况。
步骤2:重复步骤1,进行多次测试,发现该芯片符合实验要求。
开关 |
输入 |
Q |
L6 |
L5 |
L4 |
L3 |
L2 |
L1 |
L0 |
1 |
× |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0000 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0001 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0010 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0011 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0100 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0101 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0110 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
4.4 异或门
X:甲使用的计数器的进位信号
Y:乙使用的计数器的进位信号
RES:复位开关
Q0:传给计数器预置端的值,当复位开关有效时,将两个计数器均进行预置,当复位开关无效时,若两个计数器中有一个输出了进位信号,表示灯将往其方向跳一格,这 时,将两个计数器进行预置,以示公平。
Q1:传给可逆计数器的值,为可逆计数器提供脉冲,当没有进位信号且开关无效时,输出0,当有进位信号或者开关有效时,输出1,输出值由0变为1相当于为可逆计数器提 供了一个脉冲,使可逆计数器可以正常使用。
输入 |
输出 |
||
X |
Y |
RES |
Q |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
5总结
经历这次实验,虽然只用到计数器和译码器这两个基本的功能,但是在实际的实验中,通过自己写代码烧制出来的芯片有时不会实现我们预想的功能。对于怎么解决AB按键的信号会影响7模计数器的计数,为此我们耗费了很多时间,最后才找到合理的、可行的、贴合实际的解决方法。对于这样一个简单的实验,对于第一次做的我们来说却是困难重重,由于经验的不足,对于很多简单的问题都想不出解决方法,需要花大量的时间。由于实验过程所需的线路比较多,所以需要很大的耐心,也需要我们每个组员细心接线,既不能接重复又不能接漏哪怕一根线。不过经过耐心的接线和检验之后,我们的实验倒是挺成功的,预期的实验结果都达到了,不过可惜的是在反复的调试过程中烧坏了一个芯片,起初我们还不知道怎么回事好端端的输出结果就错了,后来把线全拆了,又测试每个芯片才知道用GAL编写的可逆计数器坏了才导致整个电路出错。因此我们明白了一个道理,即使是最简单的事情,如果没有经验也是很难完成。另一方面,即使是理论上可以得出的结果,在实践过程中却出现错误,所以必须经过实践的考验才能证明我们所做的实验是成功的。
附录
芯片:GAL16V8D*2、74LS86、74ls162*2
《数字 逻 辑》课 程 实 验 芯 片 汇 集
GAL16V8D 的外引线排列图、设计方法
同步十进制计数器74LS162的外外引线排列图、逻辑电路图、功能表
数字逻辑(第六版.立体化教材)北京科学出版社 2013年3月
《数字逻辑》实验指导书2013版
惠州学院计算机科学系硬件教研室数字系统设计实验室 2015年1月
脉冲 |
RES |
X |
Y |
使能端EN |
Q3Q2Q1Q0 |
1 |
1 |
× |
× |
0 |
0011 |
2 |
0 |
1 |
0 |
0 |
0100 |
3 |
0 |
1 |
0 |
0 |
0101 |
4 |
0 |
1 |
0 |
0 |
0110 |
数字逻辑课程设计拔河游戏机相关推荐
- 数字逻辑课程设计,简单的8位模型计算机verilog设计
简单8位模型计算机 0.摘要 1.绪论 1.1 模型计算机简介 1.2 设计主要内容 1.2.1 设计指标 1.2.2 设计思路 2.系统设计 2.1模型计算机原理 2.2 模型计算机组成 2.3 模 ...
- 电路与数字逻辑课程设计-电子钟功能
以下内容为我电路与数字逻辑实验的实验报告内容. 实验部分采用的是logisim实现 本实验因时间问题做的比较仓促,有许多不足之处,还请谅解. 想要完整代码的可以在我的博客资源进行下载 电路与数字逻辑课 ...
- 数字逻辑课程设计-数字时钟时分秒的设计
数字逻辑课程设计-数字时钟 ------------- 课程设计的三个简单要求 1.设计一个能显示日期.小时.分钟.秒的数字电子钟,并具有整点报时的功能. 2.由晶振电路产生1HZ标准的信号.分.秒为 ...
- 数字逻辑课程设计-加法器设计(三位十进制+八位二进制)
首页 寒假期间做的数字逻辑课设,现在整理出来分享给大家. 本文内容参照WUST2019届课程设计报告要求. 课设题目 三位十进制加法器,需要用三位数码管显示 八位二进制加法器,也需要用三位数码管显示 ...
- 数字逻辑 课程设计 多功能电子钟 Quartus II
设计方案 1.系统功能描述 (1) 系统输入:系统状态及校时.定时转换的控制信号为k.set:时钟信号clk,采用1024Hz:系统复位信号为reset.输入信号由按键产生. (2) ...
- 数字逻辑课程设计#Quartus II
一.设计任务及要求: 设计任务:用Verilog HDL对CPLD芯片EPM240T100C5进行编程,并增加适当的电子元件,设计一个数字电子时钟电路 要求: 1.具有"时"&qu ...
- 数字电子钟设计制作——数字逻辑课程设计 Verilog HDL CPLD
目的: 1.进一步掌握数字电子技术的理论知识,培养工程设计能力和综合分析问题.解决问题的能力: 2.基本掌握常用电子电路的一般设计方法,提高电子电路的设计和实验能力: 3.掌握复杂可编程逻辑器件CPL ...
- 数字逻辑课程设计——自动售货机
选题:自动售货机 一.设计任务 1.允许向售货机投入1元的硬币,有4种商品可以选择(商品号从1到4号).首先,用一个键选择商品,在数码管上显示商品号和单价:然后投币,投币时,按一次键模仿投入1元硬币. ...
- multisim数字逻辑课程设计
具体要求: 1.按下启动按钮,进入时钟运行模式:按下停止按钮,系统清零停止工作(全部显示内容也都熄灭): 2.系统包括时钟.秒表和计时器三种功能模式,用三盏灯分别指示三种模式:设置一个模式切换按钮,按 ...
最新文章
- vs2012常用快捷键
- linux查看nginx并发连接情况
- html网页大小自动调整大小,根据电脑屏幕分辩率大小自动调整网页宽度
- 一道没人搞得定的趣味Shell编程游戏题!,看看你会不会?
- 目瞪口呆!台湾豪门美女过如此奢华生活?
- 《程序员修炼之道》读后感02
- codevs 5958 无
- 将一个数转化为二进制java_java将一个整数转化成二进制代码示例
- 基于wireshark和NetAssist的单机模拟抓TCP包:三次握手、四次挥手、长连接
- EDK2 UDK2018的环境搭建
- Matlab GUI界面设计
- 核心单词Word List 2
- 做过启动盘的U盘怎么复原?三种方法教你
- 个人学习笔记——庄懂的技术美术入门课(美术向)06
- LTE: 小区特定参考信号功率与RRU发射功率的计算
- 《周一清晨的领导课》读书笔记
- 软件开发岗位职责描述
- github官网访问太慢
- Linux系统如何下载CityScape/KITTI-STEP数据集
- 如何给Pepper机器人配置ROS使其可以到达指定地点