乒乓球比赛游戏机的设计
实验题目:乒乓球比赛游戏机的设计
1. 课程简要信息
课程名称:电子电路综合设计
课程学时: 40
项目学时:20 学时(课内 14 学时 $+$ 课外 6 学时)
适用专业:通信工程专业
学生年级:二年级第二学期
2. 实验内容与任务(限 500 字,可与“实验过程及要求”合并)
(1)基础设计任务(要求所有学生完成):
设计一个由甲乙双方参赛,有裁判的三人乒乓球游戏机。
1)至少用8个 LED 排成直线,以中点为界,两边各代表参赛双方地位置,其中一个点亮地 LED(乒乓球)依次从左到右,或从由到左移动,“球”地移动速度能由时钟电路调节。
2)当球(被点亮地那只LED)移动到某方地最后一位时,参赛者应该果断按下自己地按扭使“球”转向,即表示启动球拍击中,若行动迟缓或超前,表示未击中或违规,则对方得一分。
3)设计手动计分电路,甲乙双方各用一位数码管显示得分,每记满 9 分为一局。
4) 每次开局由裁判从中间发球,向乙方移动。
5)按照仿真电路,在面包板上搭建实际测试电路。
(2)提高设计任务(要求班级内至少 $6 0 %$ 的学生完成):
设计一个由甲乙双方参赛,有计分报警功能的乒乓球游戏机。
1)设计自动计分电路,双方各用两位数码管来显示计分,每局 10 分。
2)每局到达 10 分时,产生报警信号,铃响三秒。
3)开局由甲先发球,若比赛过程中有一方未接到球则由胜利方发球。
(3)拓展设计任务(要求班级内有能力兴趣的学生完成,用硬件描述语言VHDL实现):
设计一个由甲乙双方参赛,有裁判的三人乒乓球游戏机。
1)用 8 个(或更多个)LED 排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的 LED 指示球的当前位置点亮的 LED 依此从左到右,或从右到左,其移动速度应能调节。
2)当“球”(点亮的那只 LED)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,既表示启动球拍击球,若未击中,球掉出桌外,则对方得一方。
3)设置自动计分电路,甲乙双方各用两位数码管进行记分显示,每记满 11 分为 1 局。
4)甲乙双方各设一个发光二极管表示拥有发球权,每隔两次自动交换发球权,拥有发球权的一方发球才有效。
3. 实验过程及要求(限 300 字)
1)实验课前进行知识点复习;
2)根据实验设计要求,分析电路功能,确定系统的原理框图,并且筛选合适的逻辑芯片,同时完成预习报告;
3)按照设计原理图,利用 Multisim软件对各单元电路进行功能仿真测试,并记录仿真结果;
4)根据选择的元件以及实验室现有的硬件设备,在面板上搭建实际电路;
5)按单元分块调试电路(球台电路、驱动控制电路、计分电路等);
6)进行整体电路调试,观察乒乓球比赛游戏机电路工作情况,并记录结果;
7)功能演示,分组交流,了解不同设计方法及其特点,拓宽知识面;
8)结合仿真和硬件测试数据,进行实验电路分析,最后撰写实验报告。
4. 相关知识及背景(限 150字)
乒乓球比赛游戏机的设计实验是一个运用数字电子技术知识,模拟生活中趣味游戏的综合性设计实验。学生需掌握 Multisim仿真软件的使用;掌握基本的逻辑电路设计方法,掌握芯片如四位双向移位寄存器芯片 74LS191 和 74LS194、双 D 触发器芯片 74LS74、十进制计数器芯片 74LS160 与非门电路芯片 74LS00 等的逻辑功能,实际操作中,需掌握芯片的选用、插接和连接方法,培养学生能够根据电路实测结果,分析、定位并排除所遇到实际问题的能力。
5. 实验环境条件
| 实验环境条件 | 仪器设备 | 电子技术综合实验箱,示波器,函数信号发生器,万用表 |
| 软件工具 | Multisim 仿真软件 | |
| 主要电子元器件 | 移位寄存器、计数器、逻辑门集成电路芯片、显示数码管、按钮、导线 |
6. 教学目标与目的(限 150 字)
利用较完整的乒乓球比赛游戏机的设计实验,使学生能根据任务要求,运用所学数字电路知识,引导学生设计满足要求的逻辑电路,选择元器件搭建实际电路并进行测试和分析,解决故障并做出评价,提高解决实际工程故障的能力。
7. 教学设计与实施进程
本实验作为电子电路的综合性实验,包含多个基础知识点的学习,需要经历功能分析、系统设计、电路仿真、系统调试、设计总结等过程。在实验教学中,各阶段的教学目标不同,分别采用“对比学习法”、“发现学习法”、“错误反推法”以及“软硬结合法”四种教学方法,同时需注意在以下几个方面加强对学生的引导:
1)实验课前,要求学生复习相关理论知识(移位寄存器、计数器、逻辑门等)。布置实验任务时,要交代清楚设置实验基本要求以及拓展要求的目的,并抛出问题,如何进行电路设计;学生通过网络或教科书查找相关知识,了解不同的实现方法,进行对比学习,可以加强学生知识运用的能力。
2)实验的第 1-14 次课程,先讲解电路的工作原理以及工程背景,与学生一起分析电路设计思路,引导学生将整体系统根据功能分解成各个单元模块进行设计;针对各个单元模块进行理论讲解,同时引导学生利用 Multisim软件,对各个模块进行仿真测试,能否达到设计要求,满足电路各模块功能,并记录仿真测试结果,教师进行阶段验收(包括预习报告、仿真电路以及测试结果);
3)实验的第15-20 次课程,引导学生根据分解的模块功能以及逻辑芯片的结构,进行面包板元件位置的排布以及电路的搭建;引导学生分别进行各单元模块的调试工作,重点在于计分器如何实现计分问题的研究。在满足各自模块功能后,进行整体系统的调试工作,同时注意硬件电路故障排除方法的讲解;学生通过软件仿真、硬件搭建的方式进行实验,了解电子产品的制作流程;通过对电路问题的反向举例教学,增强学生主动思考独立实践的能力。
4)引导学生分组进行电路功能演示,教师进行阶段验收(包括电路搭建效果以及电路功能实现效果)。最后以不同设计方法为主题进行交流学习,拓宽知识面,同时对比实验数据,以便完成实验报告。
实验中教师要以学生学习成果为导向进行教学环节的设计,以教学目标的实现为重点进行实验的引导,注意鼓励学生自主学习的积极性,重视理论指导实践、实践验证理论的联动性,同时尽可能消除学生对实验课程的应付了事的心态。
8. 实验原理及方案
8.1实验内容的组织结构

图1 实验内容组织结构
8.2 基础设计任务的实验原理及方案
一、系统工作原理
(1)球台电路:球迹移动电路可采用双向移位寄存器方法实现,由发光二极管作光点模拟乒乓球移动的轨迹。
(2)驱动控制电路:由双 D 触发器及逻辑门电路构成,通过此电路来控制并且实现球台灯的左右移位即实现乒乓球的运动。
(3)计分电路:使用十进制的计数器、逻辑门和集成的 4管脚的数码管来组成计分电路。
通过多次设计、画图及仿真实验,发现方案电路最简洁,原理简单易懂,操作也很方便,且实用性较强。故采用此方案进行设计。
用两个 74LS191 四位双向移位寄存器来模拟乒乓球台,其中第一个 74LS191 的 DL 输出端 QD接第二个的右移串行输入端 SR,这样当乒乓球往右准备移出第一个寄存器的时候就会在时钟脉冲的作用下被移入第二个寄存器。同样道理,第二个74LS191 的AR输出端接第一个的左移串行输入端。
用双 D 触发器 74LS74 及逻辑门电路构成驱动控制电路。
用十进制计数器74LS160、逻辑门电路和集成的4管脚的数码管组成计分电路。

图2 总体方框图
二、单元电路设计与参数计算
电路主要由时钟信号源、按键电路、球台驱动电路、控时钟信号源、发光二极管等组成。标出的各种信号的含义分别为:CP 表示球台驱动电路和计数器的时钟信号;S 表示灯(乒乓球)移动的信号;L表示发光二极管驱动信号,由 L1~L8 组成;CNT表示计数器的计数脉冲信号,由CNT1,CNT2组成;KA,KB 表示开关控制的外输入发球、击球信号。
(一)球台电路设计
球台电路如下图设计所示:

图3 球台控制电路图
功能说明:
(1)当 ${ \bf S } 1 { = } { \bf S } 0 { = } 1$ 时,不管各输入端原来是什么状态,在下一个时脉冲到来时,其输出分别是
预先输入到并行输入端的abcd,这种方式叫送数。
(2)当 $\mathbf { S } 1 { = } 0$ , ${ \bf S } 0 { = } 1$ 时,其工作方式叫右移,这时,每来一个时钟脉冲,输出端的数各向右移一位,而QA 端的输出则由加到 R端的数来补充。
(3)当 $\mathbf { S } 1 { = } 1$ , ${ \bf S } 0 { = } 0$ 时,其工作方式叫左移,情况正好与右移相反;QD 端的输出由加到 L 端的数来补充。
(4)当 $S 1 { = } S 0 { = } 0$ 时,不管是否有 CP 脉冲作用,输出保持不变,这叫保持方式。 $\mathrm { C P = 0 }$ 时也是保持方式。
表 1
| R | S1 S0 | 工作状态 | |||
| 0 | × ×0 | 置零保持右移左移并行输入 | |||
| 1 | ×00 | ||||
| 1 | 0 1 | ||||
| 1 | 1 0 | ||||
| 1 | 1 1 | ||||
(二) 控制电路设计
触发器是数字电路中的一种基本单元,它与门电路配合,能构成各种各样的时序逻辑部件,如记数器、寄存器、序列信号发生器等。
一个触发器具有如下的特点:
$\textcircled{1}$ 两个互补的输出端 Q 和 Q; $\textcircled{2}$ “O”和“1”两个稳态;
$\textcircled{3}$ 触发器翻转的特性; $\textcircled{4}$ 记忆能力。
1.对触发器的基本要求
1)应该具有两个稳定状态——0状态和1状态
2)能够接收、保存和输出信号
2.触发器的现态和次态
现态——触发器接收输入信号之前的状态叫做现态,用 Qn 表示。
次态——触发器接收输入信号之后的状态叫做次态,用 $\scriptstyle { \mathrm { Q n } } + 1$ 表示。
3.触发器的分类
1)按照电路结构和工作特点分基本触发器、同步触发器、主从触发器和边沿触发器
2)按照(在时钟控制下的)功能分RS型触发器、D触发器、JK触发器、T 触发器和 T´触发器
4.时序逻辑电路
组合逻辑电路的特点是电路的输出仅取决于当时的输入,与电路的历史状态无关。即 ${ \mathrm { Z } } { \mathrm { = F } } ( { \mathrm { X } } )$ 。
时序逻辑电路的输出状态不仅与该时刻的输入有关,而且还与电路的历史状态有关。
由现在的输入状态和现在的输出状态共同决定下一次的输出状态。
电路特点
$\textcircled{1}$ 输入、输出之间至少有一条反馈路径;
$\textcircled{2}$ 电路中含有贮存单元。
Q 为触发器的输出,称为状态变量。Q n表示现态, $\mathbf { Q } \mathbf { \ n } { + } 1$ 表示次态;状态是时序电路的一个重要概念。
W 为触发器的输入,也是时序电路的控制变量;CP 为时钟脉冲。
5.描述时序电路逻辑功能的方法
(1)方程式:
$\textcircled{1}$ 输出方程: $\mathrm { Z } mathrm { = F } 1$ (X,Q n) $\textcircled{2}$ 驱动方程: $\mathrm { { W } } { = } \mathrm { { F } } 2$ (X,Q n) $\textcircled{3}$ 状态方程: $\mathbf { Q } \mathbf { \ n } { + } \mathbf { l } { = } \mathbf { F } 3$ (W,Q n)
(2)状态表反映输入、输出、现态、次态之间的关系的表格。
(3)状态图反映时序逻辑电路的状态转换规律及相应输入出取值情况的几何图形。
(4)时序图表示各信号,电路状态等的取值在时间上的对应关系。构成时序逻辑电路常用存储单元是触发器。

图 4 控制电路图
图中74LS74为上升沿触发的 D 触发器,~PR 为置 1端(低有效),~CLR 为置0端(低有效)。当 $\scriptstyle { \mathrm { J } } 1 = 0$ 时,两片D触发器输出端均为 1即 $\mathbf { S } 1 { = } \mathbf { S } 0 { = } 1$ ,通过接入 74LS191,此时实现的是并行输入功能。当 $\mathrm { J } 1 { = } 1$ 时, $\scriptstyle \mathrm { L } 1 = \mathrm { J } 2 = 1$ , ${ \bf J } 3 { = } { \bf L } 8 { = } 0 .$ ,通过各门电路可知输出端分别为 0,1,1,则 D 触发器输出端分别为0,1即 $_ { \mathrm { S 1 = 0 } , \mathrm { S 0 = 1 } }$ 。相反情况时,当 $\mathrm { J } 1 { = } 1$ 时, $\scriptstyle \mathrm { L } 1 = \mathrm { J } 2 = 0$ , $J 3 \mathrm { = } \mathrm { L } 8 \mathrm { = } 1$ ,D触发器输出端分别为 1,0 即 $_ { \mathrm { S 1 = 1 } , \mathrm { S 0 = 0 } }$ 。通过此电路来控制并且实现球台灯的左右移位即实现乒乓球的运动。
(三) 计分电路设计
此部分电路主要完成的功能是实现记录分数,同时有相应数码管显示。74LS160 芯片同步十进制计数器(直接清零)用于快速计数的内部超前进位用于 $\mathbf { n }$ 位级联的进位输出 ·同步可编程序有置数控制线 ·二极管箝位输入直接清零。同步计数本电路是由 4 个主从触发器和用作除 2 计数器及计数周期长度为除5的 3位2 进制计数器所用的附加选通所组成。有选通的零复位和置 9输入。芯片74LS160 是十进制计数器,这种同步可预置十进计数器是由四个 D 型触发器和若干个门电路构成,内部有超前进位,具有计数、置数、禁止、直接(异步)清零等功能。对所有触发器同时加上时钟,使得当计数使能输入和内部门发出指令时输出变化彼此协调一致而实现同步工作。这种工作方式消除了非同步(脉冲时钟)计数器中常有的输出计数尖峰。缓冲时钟输入将在时钟输入上升沿触发四个触发器。
这种计数器是可全编程的,即输出可预置到任何电平。当预置是同步时,在置数输入上将建立一低电平,禁止计数,并在下一个时钟之后不管使能输入是何电平,输出都与建立数据一致。清除是异步的(直接清零),不管时钟输入、置数输入、使能输入为何电平,清除输入端的低电平把所有四个触发器的输出直接置为低电平。
超前进位电路无须另加门,即可级联出 $\mathbf { n }$ 位同步应用的计数器。它是借助于两个计数使能输入和一个动态进位输出来实现的。两个计数使能输入(ENP 和 ENT)计数时必须是高电平,且输入ENT必须正反馈,以便使能动态进位输出。
因而被使能的动态进位输出将产生一个高电平输出脉冲,其宽度近似等于 QA 输出高电平。此高电平溢出进位脉冲可用来使能其后的各个串联级。使能 ENP 和 ENT 输入的跳变不受时钟输入的影响。
电路有全独立的时钟电路。改变工作模式的控制输入(使能ENP、ENT或清零)纵使发生变化,直到时钟发生为止,都没有什么影响。计数器的功能(不管使能、不使能、置数或计数)完全由稳态建立时间和保持时间所要求的条件来决定。
表 2
| 输入 输出 | ||||||
| LD R | EP ET | CP | D D | D D | Q。 Q Q Q3 | |
| 1 | ×011 | ××10 ××1×0 | x←xx | xoxxx xxxxx | xxxx Xx | o d计保保 0数持持 d |
74LS160 是十进制计数器,也就是说它只能记十个数从 0000-1001(0-9)到 9 之后再来时钟就回到0,首先是clk,这是时钟。之后是 rco,这是输出,MR是复位低电频有效(图上接线前面花圈的都是低电平有效)load 是置数信号,当他为低电平时,在始终作用下读入 D0 到 D3。为了使 160正常工作ENP 和ENT 接1,另外D0到D3是置数端,Q0 到Q3是输出端。

图5 计分电路图
三、仿真调试
(一)控制状态仿真

图 6 控制状态
(二)计分状态测试

图 7 计分状态
(三)复位状态测试

图 8 教练复位状态
8.3 提高设计任务的实验原理及方案
一、设计思路及总体方案
两人乒乓球游戏机是由发光二极管代替球的运动,并按照一定的规则进行对垒比赛。甲乙双方击球用开关表示。
当甲乙按动开关时,球向前运动,当球运动到某方的最后一位时,参赛者应立即按下自己一方的按钮,即表示击球。若未击中则表示对方得分,利用计数器连接成十进制计数器记分每局十分。当二者任意一方得分为十分时发生警信号,并且自动停止球的运动,三秒的报警后,自动停止。
其结构框图如下:

图9 乒乓球比赛游戏结构框图
二、元器件选型及依据:
表 3
| 元器件 | 依据 |
| 74LS1944(2个) | 通过移位寄存器控制灯泡运动 |
| 74LS160(6个) | 利用加法计数器计分、计时 |
| 7473 (1个) | 利用J.K触发器改变灯泡运动方向 |
| 74LS00(与非门)74LS04(非门)74LS11(三输入与门)74LS08(与门)7432(或门) | 配合各部分电路实现与、或、非等逻辑功能 |
| 继电器(2个) | 用于控制、终止led 运动 |
| 数码管(DCD_HEX) | 用来与计数器组成显示电路 |
| 开关 | 作为甲乙双方控制端 |
| 蜂鸣器 | 报警器 |
三、电路的设计:
(一)总体设计思路如下:
1.用两个74LS194四位双向移位寄存器来模拟乒乓球台,其中第一个 74LS194 的DL输出端QD接第二个的右移串行输入端 SR,这样当乒乓球往右准备移出第一个寄存器的时候就会在时钟脉冲的作用下被移入第二个寄存器。同样道理,第二个74LS194 的QA输出端接第一个的左移串行输入端。
2.用 JK 触发器 7473、继电器及逻辑门电路构成驱动控制电路。
3.用十进制计数器74LS160D、逻辑门电路和集成的4管脚的数码管组成计分电路。
4.用十进制计数器74LS160D 改装3进制计数器、逻辑门电路和蜂鸣器组成3秒报警电路。
(二)单元电路设计:
1.球台电路设计:
球台电路设计如下图所示:

图 10 球台电路
上图中,两片 4 位 74LS194 双向移位寄存器接成 8 位双向移位寄存器。74LS194 功能表如表所示:
表 4 74LS194 功能表
| RD | S1 S0 | 工作状态 |
| 0 | X × | 置零 |
| 1 | 0 0 | 保持 |
| 1 | 0 1 | 右移 |
| 1 | 1 0 | 左移 |
| 1 | 1 1 | 并行输入 |
功能说明:
(1)当 $\mathrm { S } 1 = \mathrm { S } 0 = 1$ 时,不管各输入端原来是什么状态,在下一个时脉冲到来时,其输出分别是预先输入到并行输入端的 abcd ,这种方式叫送数。
(2)当 $\mathrm { ~ S ~ } 1 = 0$ , $\mathrm { { S } } \ 0 { = } 1$ 时,其工作方式叫右移,这时,每来一个时钟脉冲,输出端的数各向右移一位,而 Q A 端的输出则由加到 R 端的数来补充。
(3)当 $\mathrm { ~ S ~ } 1 = 1$ , ${ \textrm { S } } 0 = 0$ 时,其工作方式叫左移,情况正好与右移相反; Q D 端的输出由加到 L 端的数来补充。
(4)当 $\textrm { S } 1 = \textrm { S } 0 = 0$ 时,不管是否有 CP 脉冲作用,输出保持不变,这叫保持方式。 CP=0 时也是保持方式。
- 控制的电路的设计:
控制电路电路图如下:

图11 控制电路图
图中7473N 为下降沿触发的双 JK触发器,~1CLR 为置0 端(高有效)。当开关 S3打到上面是$\scriptstyle \mathbf { S } 1 = \mathbf { S } 0 = 1$ ,通过常闭继电器接入 74LS194,此时实现的是并行输入功能。当开关S3 打到下面是,且$\mathbf { J } { = } 1$ , $\mathrm { K } { = } 1$ 时,JK触发器输出端 $\scriptstyle { \mathrm { Q = 0 } }$ 即 $\mathbf { S } 1 { = } 0$ , ${ \bf S } 0 { = } 1$ ,通过常闭继电器接入74LS194,此时实现的是移位寄存器向右移动。当灯泡发亮位置移到最右端即 $\mathbf { l e d 8 } { = } 1$ ,此时按下 S2,led8 取反和按键 S2 接在或门 7432N 上,且其输出接到 JK 触发器的 1clk 端,产生一个下降沿脉冲,此时当 $\mathbf { J } { = } \mathbf { K } { = } 1$ 时, $\mathrm { Q } { = } 1$ ,即 $\mathbf { S } 1 { = } 1$ , ${ \bf S } 0 { = } 0$ ,分别通过继电器接到 74LS194 的S0、S端,使led运动方向反转。同理,左端控制也是如此接法,当led1 $^ { = 1 }$ 时,按下 S1产生个下降沿脉冲使 led流动方向反转。通过此电路可以在指定 led 亮的时候来控制并且实现球台灯的左右移位即实现乒乓球的运动,而其它时候则按键没有反应。
3.计分电路的设计:
计分电路设计如下图所示:

图 12 计分电路
本电路中使用的是DCD_HEX 内部自带译码的七段数码显示器。它的四个输入端,可以直接接到编码器的输出端,即直接可以连到 74LS160 的输出端。
同步十进制计数器74LS160 的功能表如下表所示:
表 5 74LS160 的功能表
| CP | R | LD | EP | ET | 工作状态 |
| × | 0 | × | X | X | 置零 |
| 打 | 1 | 0 | 预置数 | ||
| X | 1 | 1 | 0 | 1 | 保持 |
| × | 1 | 1 | X | 0 | 保持(但C=0) |
| 五 | 1 | 1 | 1 | 1 | 计数 |
由 74LS160 的功能表可知,当 ${ \scriptstyle \mathrm { \sim } } \mathrm { R D = \sim } \mathrm { L D = E P = E T = 1 }$ 时工作状态为计数,即图 4 中的$\scriptstyle \neg \mathrm { C L R } = \sim \mathrm { L O A D } = \mathrm { E N T } = \mathrm { E N P } = 1$ 时。选用ENP、ENT 作为 74LS160 的计数控制端,当 $\mathrm { E N T { = } E N P { = } 1 }$ 时计数,当 $\mathrm { E N T } { = } \mathrm { E N P } { = } 0$ 时计分电路处于保持状态。RCO 为进位输出端,即当选手计满 10 分时输出到下一个计数器。同时通过以下逻辑门电路的分别连接到控制电路中的继电器上,和报警电路的ENT上,使其计分计到 10 分就停止 led 的流动,和报警器的发生。

图13 计分电路
4.报警电路设计:
报警电路设计图如下:

图 14 计分电路
如上图所示,报警电路是由 74LS160 和逻辑门电路及蜂鸣器(仿真时由于硬件或软件问题,未发出声音,加一led来观察)组成,74LS160 通过与非门连接成 3进制计数器,以此来实现 3秒的报警。
5.总体电路设计
通过前面的单元电路的设计,将他们合理的组合连接起来,就可以得到总体设计电路图,其图如下图所示:

图15 总体电路
四、软件仿真与调试:
在进行仿真运行的过程中,先将开关S3 往上打,即打到“1”的位置。然后再打到下面接上JK触发器,由左边的A 先发球,球将会向右移动,当点亮的球移动到B 方的最后一位时,将 B的控制开关往下按,则球将反向移动,若行动迟缓或超前,表示未击中或违规,则 A 得一分。同样,当球由右到左运动时,点亮的球移动到A 方的最后一位时,将A 的控制开关往下按,则球将反向移动,若行动迟缓或超前,表示未击中或违规,则 B 得一分。当一方得分满 10 分时,逻辑门电路会产生高电平使继电器断开,则球将停止运动,同时也会给报警电路一个高电平,使其产生 3 秒的警报声。(仿真电路如下)

图 16 仿真全电路

图17 计分到10分是自动停止

图 18 计到十分后报警电路报警
8.4拓展设计任务的实验原理及方案(选做任务)
一、 设计思路
此设计问题可分为游戏控制模块,加减计数模块,译码模块,甲乙方得分显示模块四部分。
设置甲乙双方击球脉冲信号 int1/int2,一方的击球信号使加/减计数器加法计数,则另一方的击球信号就使加/减计数器减法计数,译码模块输出端 Y1-Y8 接 LED 模拟乒乓球的轨迹。经控制模块实现移位方向的控制,真值表 6所列。
设置发球权拥有显示信号 s1、s2。控制模块使每两次交换发球权。
加/减控制信号 $\overline { { \mathrm { ~ U ~ } } } _ { / \mathrm { ~ D ~ } }$ 由乒乓球到达 Y8、Y1 和击球信号 int1、int2 及发球权拥有信号 s1、s2 共同产生,真值表如表 7 所示。
当球到达 Y8 或 Y1 时,参赛者没有及时击中,则球掉出桌外,加/减计数模块停止计数,对方得一分。
设置捡球信号 reset1,通过加/减计数模块的异步置数端实现捡球。当甲方拥有发球权时捡球信号将球放到Y1,乙方拥有发球权时将球放到Y8.
在控制模块对甲乙双方的得分进行检测,只要一方的得分达到 11,则一局结束,设置裁判员复位信号reset.在每局结束后将双方得分清零。
由调节晶振产生的时钟脉冲信号的频率,可以调节球的运动速度。
表 6 加/减计数译码显示真值表
| 时钟 | 加/减控制 | 计数器输出 | 译码器输出 |
| CLK | UD | Q3Q2Q1Q0 | Y8Y7Y6Y5Y4Y3Y2Y1 |
| → | 0 | 0001 | 0OO00001 |
| → | 0 | 0010 | 00000010 |
| → | 0 | 0011 | O0000100 |
| → | 0 | 0100 | 00001000 |
| → | 0 | 0101 | 00010000 |
| → | 0 | 0110 | 00100000 |
| → | 0 | 0111 | 010000O0 |
| → | 0 | 1000 | 10O00000 |
| → | 1 | 0111 | 01000O00 |
| → | 1 | 0110 | O0100000 |
| → | 1 | 0101 | 00010000 |
| → | 1 | 0100 | 00001000 |
| → | 1 | 0011 | 00000100 |
| → | 1 | 0010 | 00000010 |
| → | 1 | 0001 | 00000001 |
表7 加减控制信号的产生
| Y8 | Y1 | Int1 | Int2 | S1 | S2 | U/D |
| 1 | 0 | 0 | → | 0 | 1 | 1 |
| 0 | 1 | 个 | 0 | 1 | 0 | 0 |
硬件系统示意图如下所示

图 19 硬件系统示意图
二、 乒乓球比赛游戏机的实现
(一) 乒乓球比赛游戏机的顶层原理图

图 20 顶层原理图
原理图中输入部分分别是:复位按键 res,时钟 clk_1,startbutton 开始游戏按键,serve[1..0]发球按键,serve0代表甲发球,serve1 代表乙发球,int1为甲击球按键,int2为乙击球按键,原理图中输出部分分别是:8 个 LED 灯 light[1..8],数码管段选信号 A、C、D、E、F、G、H,数码管进入译码器74LS138的位选信号sel[2..0],在数码管上显示了甲乙两个人的分数。
(二) 系统各功能模块的实现
1.比赛控制模块

图21 比赛控制模块元件框图
按下 startbutton 按键之后游戏开始,当按下 serve0 时甲发球,8 个一排的 LED 灯从左向右移动(从 1 到 8),当移动到第八个灯时按下 int2 按键代表乙击中,则乙得 1 分,提前或未来的及击球则甲得分。当按下serve1时乙发球从右向左移动,当移动到第一个灯时按下 int1代表甲击中球,甲得1分,提前或未来的击球及则乙得分。
2.记分模块

图22 记分模块元件框图
当选择好的信号 binaryin[4..1]进入 mydecoder 之后,相应的数据会选择到相应的信号中,并且通过 bcdout1[4..1]和 bcdout2[4..1]输出相应的分数在两位数码管上的显示数字。bcdout1 为十位数,bcdout2 为个位数。
3.数码管显示模块

图23 显示模块框图
数码管显示模块主要是由两个模块组成分别为 setime 以及 deled 这两个模块组成:setime 模块主要是将输入的分数进行动态扫描,显示到每一位数码管的位选上,通过高速的扫描后会将每一位选手的分数很清晰的显示在数码管上。
deled 模块是一个译码器的模块译码器的译码对照表如下所示:
表8 译码器的译码对照表
| 显示的数字 | BCD编码 | 七段共阳数码管 |
| 0 | 0000 | 1000000 |
| 1 | 0001 | 1111001 |
| 2 | 0010 | 0100100 |
| 3 | 0011 | 0110000 |
| 4 | 0100 | 0011001 |
| 5 | 0101 | 0010010 |
| 6 | 0110 | 0000010 |
| 7 | 0111 | 111000 |
| 8 | 1000 | 0000000 |
| 9 | 1001 | 0010000 |
| X | XXXX | 1111111 |
在程序中只考虑 0000-1001(即 0-9)的情况,将其转化为相应的七段显示器的码字,其他情况不予考虑。
三、各个模块的仿真以及系统仿真、分析
(一)比赛控制模块仿真波形

图24 比赛控制模块
(二)记分模块仿真波形图

图25记分模块仿真波形图
表9 对应分数的数码管显示
| binaryin | bcdout1 | bcdout2 |
| 0000 | 0000 | 0000 |
| 0001 | 0000 | 0001 |
| 0010 | 0000 | 0010 |
| 0011 | 0000 | 0011 |
| 0100 | 0000 | 0100 |
| 0101 | 0000 | 0101 |
| 0110 | 0000 | 0110 |
| 0111 | 0000 | 0111 |
| 1000 | 0000 | 1000 |
| 1001 | 0000 | 1001 |
| 1010 | 0001 | 0000 |
| 1011 | 0001 | 0001 |
在 图 24 中 可 以 看 出 当 得 分 为 2 ( 0010 ) 分 时 对 应 的 两 位 数 码 管 则 会 显 示 为02(bcoudt1:0000,bcoudt2:0010),当分数超过 11 分时数码管的显示全为为 00。
表 8 为具体的分数对应的数码管显示。
(三)管脚锁定
在验证出乒乓球比赛游戏机系统的功能之前,需要清楚实验箱与各个信号之间的对应关系,参照资料得出本设计中各引脚的对应情况如下:
| Node Name | Direction | Location | ||
| 20 | D s[14] | Input | ||
| 21 | D s[15] | Input | ||
| 22 | D sel[o] | Output | PIN_9 | |
| 23 | D sel[1] | Output | PIN_8 | |
| 24 | D sel[2] | Output | PIN_7 | |
| 25 | □ A | Unknown | PIN_10 | |
| 26 | B | Unknown | PIN_11 | |
| 27 | P C | Unknown | PIN_12 | |
| 28 | D | Unknown | PIN_13 | |
| 29 | A E | Unknown | PIN_14 | |
| 30 | 2 F | Unknown | PIN_15 | |
| 31 | G | Unknown | PIN_16 | |
| 32 | H | Unknown | PIN_17 | |
| 33 | dk1 | Unknown | PIN_79 | |
| 34 | dk2 | Unknown | PIN_80 | |
| 35 | int1 | Unknown | PIN_46 | |
| 36 | int2 | Unknown | PIN_53 | |
| 37 | light[1] | Unknown | PIN_31 | |
| 38 | light[2] | Unknown | PIN_36 | |
| 39 | light[3] | Unknown | PIN_37 | |
| 40 | light[4] | Unknown | PIN_38 | |
| 41 | light[5] | Unknown | PIN_39 | |
| 42 | light[6] | Unknown | PIN_40 | |
| 43 | light[7] | Unknown | PIN_41 | |
| 44 | 2 | light[8] | Unknown | PIN_44 |
| 45 | ? | reset | Unknown | PIN_54 |
| 46 | serve[1] | Unknown | PIN_56 | |
| 47 | serve[0] | Unknown | PIN_55 | |
| 48 | □ startbutton | Unknown | PIN_57 | |
| 49 | <<newnode>> | |||
(四)系统的波形仿真
图 27 所示为甲方发球,在恰当的时候乙方接到球,当球回到甲方时,甲方又接到球,但乙方再也没有接到球的仿真波形。

图 27 乒乓球仿真波形一
图28所示为甲方两次发球,乙方没有接到球,甲方得到 2分的仿真波形图。

图 28 乒乓球仿真波形二
图 29 所示为甲方发球,乙方提前击球的情况,此时,甲方得一分。图中还显示了甲方发球,乙方在规定的时刻没有接到球的情况,此时,甲方又得一分。

图29 乒乓球仿真波形三

图 30 所示为当清零信号按下时,得分清零,又开始新一局游戏
图 30 乒乓球仿真波形四
(五)显示结果的几种情况

图 31 验证结果 1

图 32 验证结果 2

图33 验证结果3
9. 实验报告要求
预习报告:
1)详细总结预习知识点,说明各电路的工作原理;
2)需要针对实验题目中各项功能,用文字进行描述,比如计数功能、报警功能等解释;
3)画出初步设计电路原理图,并列出元件清单,同时说明总体设计思路。
实验报告:
1)需将仿真电路及实际搭建电路截图粘贴在实验报告中,并简述其工作原理;
2)记录仿真测试以及系统调试数据,并介绍系统仿真及调试方法,在仿真测试以及电路调试过程中遇到的问题以及排查经过,包括记录问题现象,分析存在原因,以及排除方法和效果等;
3)简单叙述对实验项目的结论性意见,说明电路最终实现的功能,并通过资料查询,给出系统进一步完善或改进的意向性说明;
4)进行实验总结,详细叙述完成实验的收获、体会。
10.考核要求与方法(限 300 字)
成绩评定采用分阶段多元化考核方式,总成绩由各部分成绩总和构成,同时根据实际情况适当调整评定项目及其构成。
1)预习报告: $2 0 %$
在第一节实验课中进行预习报告验收,验收包括考察学生对相关知识的复习结果、初步的设计方案是否合理、功能是否完整、设计是否有创新性;
2)实验结果(功能完成情况、性能、连线、演示): $5 0 %$ 仿真结果:在第一次实验课结束时进行验收,验收包括检查 Multisim仿真软件的使用,各元件连接、信号输入以及芯片供电和接地等情况,检查各模块仿真功能实现程度以及仿真结果的正确性,若设计出拓展功能,可获得额外加分;实验结果:在第二次实验课结束时进行验收,验收包括检查电路搭建完成情况,器件选择的经济和合理性,搭线的美观度,电路功能完成情况,若拓展功能实现可获得额外加分;
3)设计总结报告: $3 0 %$
实验课结束后一周内以班级为单位上交,主要考察报告的规范性和完整性。
11.项目特色或创新(可空缺,限 150 字)
1)项目来源于现实生活,具有很强的实用性,能激发学生设计的兴趣和热情;
2)通过分层次教学,采用多种设计方案,设计要求有基本功能和拓展功能,由浅入深,逐步深入,有效的把电子电路移位寄存器电路和计时器电路结合起来,体现了综合性、设计性以及创新性。
3)学生在完成专业课课程后,可采用单片机或者 FPGA 硬件实现电路功能要求,起到了学科中各课程之间的引导作用。
附件 1:
《电子电路综合设计》实验教学预习报告
| 实现项目 | 乒乓球比赛游戏机的设计 | ||
| 学号 | 姓名 | ||
| 报告成绩 | |||
一、实验目的:
利用较完整的乒乓球比赛游戏机的设计实验,使学生能根据任务要求,运用所学数字电路知识,引导学生设计满足要求的逻辑电路,选择元器件搭建实际电路并进行测试和分析,解决故障并做出评价,提高解决实际工程故障的能力。
1.通过这次设计让我们了解和熟悉了乒乓球游戏机地原理和Multisim仿真设计软件地操作,也让我们加深了解了对双向移位寄存器、555触发器及、加法器及逻辑门电路地一些实际用途,并将理论与实践相结合。
2.提高了学生的逻辑思维能力,使我们、、学生在逻辑电路的分析与设计上有了很大的进步。加深了对组合逻辑电路与时序逻辑电路的认识,进一步增进了对一些常见逻辑器件的了解。
3.查阅参考书的独立思考的能力以及培养非常重要,在设计电路时,遇到很多不理解的东西,有的学生通过查阅参考书弄明白,有的通过网络查到,但由于时间和资料有限我们更多的还是独立思考。
4.相互讨论共同研究也是很重要的,经常出现一些问题,比如电路设计中的控制器的设计,以及乒乓球游戏机怎样计分等的分析。
二、实验内容:
1.基础设计任务:
设计一个由甲乙双方参赛,有裁判的三人乒乓球游戏机。
(1)至少用8个 LED 排成直线,以中点为界,两边各代表参赛双方地位置,其中一个点亮地 LED(乒乓球)依次从左到右,或从由到左移动,“球”地移动速度能由时钟电路调节。
(2)当球(被点亮地那只 LED)移动到某方地最后一位时,参赛者应该果断按下自己地按扭使“球”转向,即表示启动球拍击中,若行动迟缓或超前,表示未击中或违规,则对方得一分。
(3)设计手动计分电路,甲乙双方各用一位数码管显示得分,每记满 9分为一局。
(4)每次开局由裁判从中间发球,向乙方移动。
(5)按照仿真电路,在面包板上搭建实际测试电路。
2.提高设计任务:
设计一个由甲乙双方参赛,有计分报警功能的乒乓球游戏机。
(1)设计自动计分电路,双方各用两位数码管来显示计分,每局 10 分。
(2)每局到达 10 分时,产生报警信号,铃响三秒。
(3)开局由甲先发球,若比赛过程中有一方未接到球则由胜利方发球。
3.拓展设计任务:
设计一个由甲乙双方参赛,有裁判的三人乒乓球游戏机。
(1)用8个(或更多个)LED排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的 LED指示球的当前位置点亮的 LED依此从左到右,或从右到
左,其移动速度应能调节。
(2)当“球”(点亮的那只 LED)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,既表示启动球拍击球,若未击中,球掉出桌外,则对方得一方。
(3)设置自动计分电路,甲乙双方各用两位数码管进行记分显示,每记满 11分为1 局。
(4)甲乙双方各设一个发光二极管表示拥有发球权,每隔两次自动交换发球权,拥有发球权的一方发球才有效。
三、预习要求:
1.了对双向移位寄存器、555触发器及、加法器及逻辑门电路地一些实际用途。
2.了解和熟悉了乒乓球游戏机地原理和 Multisim 仿真设计软件地操作。
3.认真填写预习报告
四、预习成果:
五、电路设计
1.画出初步设计的电路并列出元件清单
2.简述工作原理
附件 2:
《电子电路综合设计》实验教学考核评价表
实验时间: 年 月 日
| 关验时: | ||||||
| 实验项目名称 | 乒乓球比赛游戏机的设计 | |||||
| 学生姓名 | 学号 | 专业、班级 | ||||
| 同组学员姓名 | 指导教师 | |||||
| 考核环节 | 考核内容 | 综合成绩 | ||||
| 实验态度(一票否决) | 学习态度是否端正,书写是否规范 | |||||
| 实验预习(20分) | 验证各种芯片的逻辑功能(5分) | |||||
| 各子项目的设计方案(10分) | ||||||
| 基础问题回答情况(5分) | ||||||
| 实验过程(50分) | 必做(30分) | 基本任务(10分) | ||||
| 功能测试(20分) | ||||||
| 选做(10分) | 扩展任务(5分) | |||||
| 功能测试(5分) | ||||||
| 任务实现方案的多样性(5分) | ||||||
| 回答问题流利(5 分) | ||||||
| 实验报告(30分) | 完成质量 | |||||
| 实验成绩 | ||||||
附件 3:
《电子电路综合设计》实验教学实验报告
| 课程名称 | 电子电路综合设计 | 实验项目名称 | 乒乓球比赛游戏机的设计 | |||
| 开课院系及实验室 | 实验日期 | |||||
| 学员姓名 | 学号 | 专业班级 | ||||
| 指导教师 | 实验报告成绩 | |||||
一、实验目的
二、实验任务
三、实验原理及框图
四、实验内容(请附仿真图及实物图)
1.基础设计任务:

2.提高设计任务:

3.拓展设计任务:

| 五、实验结果与分析 (仿真结果分析及问题回答) | |
| 六、实验心得 |