《数字逻辑》

课 程 设 计 报 告

 

 

 

题目:拔河游戏机

 

 

 

 

 

专业:计算机科学与技术

班级: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

数字逻辑课程设计拔河游戏机相关推荐

  1. 数字逻辑课程设计,简单的8位模型计算机verilog设计

    简单8位模型计算机 0.摘要 1.绪论 1.1 模型计算机简介 1.2 设计主要内容 1.2.1 设计指标 1.2.2 设计思路 2.系统设计 2.1模型计算机原理 2.2 模型计算机组成 2.3 模 ...

  2. 电路与数字逻辑课程设计-电子钟功能

    以下内容为我电路与数字逻辑实验的实验报告内容. 实验部分采用的是logisim实现 本实验因时间问题做的比较仓促,有许多不足之处,还请谅解. 想要完整代码的可以在我的博客资源进行下载 电路与数字逻辑课 ...

  3. 数字逻辑课程设计-数字时钟时分秒的设计

    数字逻辑课程设计-数字时钟 ------------- 课程设计的三个简单要求 1.设计一个能显示日期.小时.分钟.秒的数字电子钟,并具有整点报时的功能. 2.由晶振电路产生1HZ标准的信号.分.秒为 ...

  4. 数字逻辑课程设计-加法器设计(三位十进制+八位二进制)

    首页 寒假期间做的数字逻辑课设,现在整理出来分享给大家. 本文内容参照WUST2019届课程设计报告要求. 课设题目 三位十进制加法器,需要用三位数码管显示 八位二进制加法器,也需要用三位数码管显示 ...

  5. 数字逻辑 课程设计 多功能电子钟 Quartus II

    设计方案 1.系统功能描述 (1)      系统输入:系统状态及校时.定时转换的控制信号为k.set:时钟信号clk,采用1024Hz:系统复位信号为reset.输入信号由按键产生. (2)     ...

  6. 数字逻辑课程设计#Quartus II

    一.设计任务及要求: 设计任务:用Verilog HDL对CPLD芯片EPM240T100C5进行编程,并增加适当的电子元件,设计一个数字电子时钟电路 要求: 1.具有"时"&qu ...

  7. 数字电子钟设计制作——数字逻辑课程设计 Verilog HDL CPLD

    目的: 1.进一步掌握数字电子技术的理论知识,培养工程设计能力和综合分析问题.解决问题的能力: 2.基本掌握常用电子电路的一般设计方法,提高电子电路的设计和实验能力: 3.掌握复杂可编程逻辑器件CPL ...

  8. 数字逻辑课程设计——自动售货机

    选题:自动售货机 一.设计任务 1.允许向售货机投入1元的硬币,有4种商品可以选择(商品号从1到4号).首先,用一个键选择商品,在数码管上显示商品号和单价:然后投币,投币时,按一次键模仿投入1元硬币. ...

  9. multisim数字逻辑课程设计

    具体要求: 1.按下启动按钮,进入时钟运行模式:按下停止按钮,系统清零停止工作(全部显示内容也都熄灭): 2.系统包括时钟.秒表和计时器三种功能模式,用三盏灯分别指示三种模式:设置一个模式切换按钮,按 ...

最新文章

  1. vs2012常用快捷键
  2. linux查看nginx并发连接情况
  3. html网页大小自动调整大小,根据电脑屏幕分辩率大小自动调整网页宽度
  4. 一道没人搞得定的趣味Shell编程游戏题!,看看你会不会?
  5. 目瞪口呆!台湾豪门美女过如此奢华生活?
  6. 《程序员修炼之道》读后感02
  7. codevs 5958 无
  8. 将一个数转化为二进制java_java将一个整数转化成二进制代码示例
  9. 基于wireshark和NetAssist的单机模拟抓TCP包:三次握手、四次挥手、长连接
  10. EDK2 UDK2018的环境搭建
  11. Matlab GUI界面设计
  12. 核心单词Word List 2
  13. 做过启动盘的U盘怎么复原?三种方法教你
  14. 个人学习笔记——庄懂的技术美术入门课(美术向)06
  15. LTE: 小区特定参考信号功率与RRU发射功率的计算
  16. 《周一清晨的领导课》读书笔记
  17. 软件开发岗位职责描述
  18. github官网访问太慢
  19. Linux系统如何下载CityScape/KITTI-STEP数据集
  20. 如何给Pepper机器人配置ROS使其可以到达指定地点

热门文章

  1. 哲学家就餐问题学习笔记
  2. linux下oracle端口修改,Oracle 修改监听端口号1521
  3. 他其实没那么喜欢你 豆瓣影评2
  4. 【实用技巧】输入法那些你不知道的秘密
  5. 记一次 es 嵌套索引 查询优化
  6. python 爬虫 获取bilibili search搜索数据,返回json格式
  7. 软件测试基本理论(一)
  8. git冲突解决(命令行)大全CTMD
  9. 【leetcode刷题记录】26.删除有序数组中的重复项
  10. 利用网络劫持解决微信远程真机调试Api问题