搜档网
当前位置:搜档网 › 乒乓球游戏机的设计

乒乓球游戏机的设计

乒乓球游戏机的设计
乒乓球游戏机的设计

乒乓球游戏机的设计

学生:xxx 指导老师:胡滨

摘要:本课程设计制作了一个乒乓球游戏机。在课程设计中,系统开发平台为MAX+PLUSII,程序设计语言为VHDL。设计的乒乓球游戏机能够正确判断与显示乒乓球的位置,并能自动裁判和记分的装置。本课程设计了乒乓球游戏机程序并进行了程序仿真,从而实现一个完整的乒乓球游戏机。程序通过调试运行,初步实现了设计目标,可应用于实际的乒乓球游戏比赛中。本论文对系统的功能设计、实现流程及正确使用都做了详细的描述。

关键词:乒乓球游戏机;VHDL;MAX+PLUSⅡ;程序仿真;

目录

1 引言 (1)

1.1 课题设计的目的 (1)

1.2 课题设计的内容 (1)

2 EDA、VHDA简介 (3)

2.1 EDA的发展概况 (3)

2.2 硬件描述语言---VHDL (3)

3 乒乓球游戏机设计过程 (5)

3.1设计规划 (5)

3.2各个模块原理及程序 (6)

3.2.1乒乓球实体的设计 (6)

3.2.2 状态机编程实现 (7)

3.2.3 记分译器的设计 (10)

3.2.4 构造体的设计 (12)

4 系统编译和波形仿真 (14)

4.1系统编译 (14)

4.2系统有关波形的仿真 (14)

结束语 (17)

致谢 (17)

参考文献 (18)

唐艳丽《乒乓球游戏机的设计》第 1 页共 16 页

1 引言

随着科学技术的发展,人类社会已进入到高度发达的信息化社会, 信息社会的发展离不开电子产品的进步。现代电子产品的发展越来越快, 各种新型电子元器件和智能化的电子产品已经在国民经济的各个领域和人民生活的各个方面得到了日益广泛的应用。实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。其中电子玩具的发展也是在日益成熟。乒乓球游戏机控制电路是有甲、乙双方参赛,有裁判控制发“球”的三人乒乓球游戏机;它能完成自动裁判和自动计分是一个带数字显示的模拟游戏机。其结构简单、成本低、易操作,安全性强、无污染。乒乓球游戏机还能在娱乐的同时提高我们的反应、应变能力。具有良好的市场发展前景[1]。

1.1课题设计的目的

本文应用状态机,设计了一个乒乓球游戏机的状态机。状态机的实现是符

合人的思维逻辑的,且简单明了[2]。计算机组成原理课程设计是重要的综合性

实践教学环节。

(1)通过该课程设计,结合计算机科学的理论、抽象和设计三种形态,进一步掌握计算机中各功能部件的工作原理和逻辑实现,熟悉乒乓球游戏机

的基本工作原理。

(2)通过该课程设计的学习,总结计算机组成原理课程的学习内容,运用所学的数字电路以及计算机组成和状态机的基本原理、基本知识和基本技

巧,解决某一个具体的实际问题,培养综合分析和解决问题的能力。(3)为今后分析、设计、开发以及使用计算机打下坚实的基础。

1.2课题设计的内容

本文设计的是一个乒乓球游戏机的状态机。利用VHDL,不需要按照传统的设计方法进行烦琐的状态分配、绘制状态、化简状态方程等,就可以简单地根据MDS图直接对状态机进行描述。该设计可以实现的功能如下:

(1)该设计一个由甲、乙双方参赛,有裁判的3人乒乓球游戏机。

(2)用8个(或更多个)LED排成一条直线,以中点为界,两人乒乓游戏机是用8个发光二极管代表乒乓球台,中间两个发光二极管兼做乒乓球网,用点亮

的发光二极管按一定方向移动来表示球的运动,在游戏机的两侧个设置发球和击球开关,甲乙双方按乒乓球比赛规则来操作开关。

(3)当“球”(点亮的那只LED)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,即表示启动球拍击球。当甲方按动乒乓球开关时,靠近甲方的第一个发光二极管亮,然后发光二极管由甲方方向依次点亮,代表乒乓球的移动。当球过网后按照设计者规定的球位乙方就可以击球。若乙方提前击球或者未击到球,则甲方得分。然后重新发球进行比赛。

(4)设置自动记分电路,甲、乙双方各用7段译码管进行记分显示,每计满21分为1局,然后记分清零,重新开始新一局比赛。

2 EDA、VHDL简介

2.1 EDA发展概况

电子设计技术的核心就是EDA技术,EDA是指以计算机为工作台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作,即IC设计、电子电路设计和PCB设计。EDA 技术已有30年的发展历程,大致可分为三个阶段。70年代为计算机辅助设计(CAD)阶段,人们开始用进行IC版图编辑、PCB布局布线,取代了手工操作。80年代为计算机辅助工程(CAE)阶段。与CAD相比,CAE除了有纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计。CAE的主要功能是:原理图输入,逻辑仿真,电路分析,自动布局布线,PCB后分析。90年代为电子系统设计自动化(EDA)阶段[2]。

硬件描述语言HDL是相对于一般的计算机软件语言,如:C、PASCAL而言的。HDL语言使用与设计硬件电子系统的计算机语言,它能描述电子系统的逻辑功能、电路结构和连接方式。设计者可利用HDL程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式;然后利用综合器和适配器将此程序编程能控制FPGA和CPLD内部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。目前,就FPGA/CPLD开发来说,比较常用和流行的HDL主要有ABEL-HDL、AHDL和VHDL[3]。

2.2硬件描述语言——VHDL

VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE 对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA 公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。专家认为,

在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。

VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分[4]。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的[4]。

(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。

(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。

(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。

(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计[4]。

3乒乓球游戏机设计过程

3.1设计规划

根据乒乓球比赛的过程和规则,首先游戏开始,如果一方非正确击球则另一方加分,当分数大于21时获胜,游戏结束,我们把设计流程规定如图3.1所示。

图3.1设计流程图

状态机设置了7个状态,分别是“等待发球状态”,“第一盏灯亮状态”,“第八盏灯亮状态”,“球向乙移动状态”,“球向甲移动状态”,“允许甲击球状态”,“允许乙击球状态”。这是该程序中起决定作用的七个状态。开始的时候处于“等待发球状态”,若甲发球则状态转移到“第一盏灯亮状态”,若乙发球则转移到“第八盏灯亮状态”,具体说明以甲球为例。

若发球后乙没有提前击球----规定球移动到对方第一个发光二极管时允许击球,那么状态机从“第一盏灯亮状态”转移到“球向乙移动状态”。若在“球向乙移动状态”乙仍然没有提前击球,状态就转移到“允许乙击球状态”,在此状态下,如果乙击球了,那么状态就转移到“球向甲移动状态”。在“第一盏灯亮状态”,“球向乙移动状态”中,如果乙击球了,就算提前击球,这样甲得

分,状态转移到“等待发球状态”等待发球,“球向甲移动状态”之后的过程和前面的过程只不过是甲乙角色的调换而已。状态转移规则都是一样的。图3.2给出了乒乓球游戏机的原理图。

图3.2 乒乓球游戏机原理图

3.2 各模块原理及程序

该乒乓球游戏机的设计主要包括的模块与内容有:乒乓球游戏机实体的设计,游戏机编程的实现,记分译码器的设计以及构造体的设计。直接对状态机进行描述,所有的状态均可表达为CASE_WHEN结构中的一条CASE语句,而状态的转移则通过IF_THEN_ELSE语句实现。以下我们就详细解析各个板快的设计与实现。

3.2.1乒乓球游戏机实体的设计

设计该乒乓球游戏机的输入与输出端口。首先考虑输入端口,一般应该设置一个异步置位端口reset,用于在系统不正常时回到初始状态:两个发球输入端serve1和serve2,逻辑‘1’分别表示甲方和乙方的发球;两个击球输入端hit1和hit2,逻辑‘1’分别表示甲击球和乙击球;一个开始游戏按钮startbutton,处于逻辑‘1’表示可以游戏;还得有一个时钟输入端口clk。

其次考虑输出端口,芯片应该有8个输出端口来控制8个发光二极管,输出逻辑‘1’即输出一个高电平,可以使发光二极管点亮;另外,要直观地表示双方的得分,就得用到4个七段译码器,每方用到2个,可以表示0到21的数字,

每个七段译码器需要芯片的7个输出端口来控制,总共28个输出端口。实体的设计如下:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all; //引用必要的库函数和包集合

entity pingponggame is --实体名为pingponggame

port(reset:int std_logic;

clk:int std_logic;

startbutton:int std_logic; --开始游戏输入端口

serve:in std_logic_vector(1 to 2); --发球输入端口

hit1,hit2:int std_logic; --甲和乙的击球输入端口--控制8个发光二极管的输出端口

light:out std_logic_vector(1 to 8);

score11,score12,score21,score22:out std_logic_vector(1 to

7)); --4个用于控制4个7段译码器的输出端口

end pingponggame;

3.2.2 状态机编程实现

状态机设置了7个状态,分别是waitserve, light1on, ballmoveto2, Allow2hit,light8on,ballmoveto1,和allow1hit它们代表的具体数值依次是0到6。在波形模拟图中是用数值来表示状态的。

在整个程序中,状态机起的是中央控制器的作用,由它控制的信号来影响整个程序中的其他相关部分,如记分部分,发光二极管部分。乒乓球游戏机中有两个计数器count1和count2,分别记忆甲和乙的得分,用发光二极管的轮流发光表示球的移动轨迹。状态机的进程如下:

process(clk) --clk作为敏感信号触发进程

begin --进程开始

if reset='1' then --异步置位

i<=0;count1<"00000";count2<="00000";

elsif clk'event and clk='1' then --当处于时钟inclock上升沿时

if count1="10101"or count2="10101"then

i<=0;count1<"00000";count2<="00000";

elsif startbutton+'0' then

i<=0;count1<"00000";count2<="00000";

else --以下case语句是程序中最关键的状态机部分case state is

when waitserve=> --进程处于等待发球状态

case serve is

when "10'=> i<=1;state<=light1on;

when "01'=> i<=8;state<=light8on;

when "i1"=>i<=0;

when others=> i<=0;

end case;

when light1on=> --进程处于第一盏灯亮状态i<=2

if hit2='1' then

i<=0;

count1<=count1+1;state<=waitserve;

else

state<=ballmoveto2;

end if;

when light8on=> --进程处于第八盏灯亮状态

i<=7;

if hit='1' then

i<=0;

count2<=count2+1;state<=waitserve;

else

state<=ballmoveto1;

end if;

when ballmoveto1=> --进程处于球向乙移动状态

if hit1='1' then

i<=0;

count2<=count2+1;state<=waitserve;

elsif i=2 then i<=1;

state<=allow1hit;

else i<=i-1;

end if;

when ballmoveto2=> --进程处于球向乙移动状态if hit2='1'then

i<=0;

ount1<=count1+1;state<=waitserve;

elsif i=7 then i<=8;

state<=allow2hit;

else i<=i+1;

end if;

when allow1hit=> --进程处于允许甲击球状态if hit1='1' then i<=2;

state<=ballowto2;

else count2<=count2+1;i<=0;

state<=waitserve;

end if;

when allow2hit=> --进程处于允许乙击球状态if hit2='1'then i<=7;state<=ballmoveto1;

else count1<=count1+1;i<=0;

state<=waitserve;

end if;

end case;

end if;

end if;

end process;

3.2.3.记分译码器的设计

七段译码器是在数学电路设计中经常用到的显示电路。所谓七段译码器,其实是由7段发光二极管组成的用于显示数字的器件。记分译码器(mydecoder):由于记分需要显示出来,所以要使用七段译码器。而状态机中的记分是由5位二进制码来表示的,即count1和count2。以下程序就是实现从5位二进制码转换成七段译码显示。

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsingned.all;

entity mudecoder is

port(binaryin:int std_logic_vector(1 to 5);

--5位二进制码的输入端口

bcdout1:out std_logic_vector(1 to 7); --七段译码器输出端口

bcdout2:out std_logic_vector(1 to 7)

);

end mydecoder;

architecture m of mydecoder is

signal tembinaryin:std_logic_vector(1 to 5);

begin

process(binaryin)

begin

tembinaryin<=binaryin;

case tembinaryin is

--把0到9的5位二进制码转换成七段译码

when"00000"=>bcdout1<="1111110";bcdout2<="1111110";

when"00001"=>bcdout1<="1111110";bcdout2<="0110000";

when"00010"=>bcdout1<="1111110";bcdout2<="1101101";

when"00011"=>bcdout1<="1111110";bcdout2<="1111001";

when"00100"=>bcdout1<="1111110";bcdout2<="0110011";

when"00101"=>bcdout1<="1111110";bcdout2<="1011011";

when"00110"=>bcdout1<="1111110";bcdout2<="1011111";

when"00111"=>bcdout1<="1111110";bcdout2<="1110000";

when"01000"=>bcdout1<="1111110";bcdout2<="1111111";

when"01001"=>bcdout1<="1111110";bcdout2<="1111011";

--把10到19的5位二进制码转换成七段译码

when"01010"=>bcdout1<="0110000";bcdout2<="1111110";

when"01011"=>bcdout1<="0110000";bcdout2<="0110000";

when"00000"=>bcdout1<="0110000";bcdout2<="1101101";

when"01100"=>bcdout1<="0110000";bcdout2<="1111001";

when"01101"=>bcdout1<="0110000";bcdout2<="0110011";

when"01111"=>bcdout1<="0110000";bcdout2<="1011011";

when"10000"=>bcdout1<="0110000";bcdout2<="1011111";

when"10001"=>bcdout1<="0110000";bcdout2<="1110000";

when"10010"=>bcdout1<="0110000";bcdout2<="1111111";

when"10011"=>bcdout1<="0110000";bcdout2<="1111011";

--把20到21的5位二进制码转换成七段译码

when"10100"=>bcdout1<="1101101";bcdout2<="1111110";

when"10101"=>bcdout1<="1101101";bcdout2<="0110000";

--如果5位二进制码不在0到21范围内,那么两个七段译码器都显示0 when others=>bcdout1<="1101101";bcdout2<="1111110";

end case;

end process;

end m;

这个记分译马电路是针对乒乓球游戏机的特点进行的特别设计,采用的是全部列举的方法。

3.2.

4. 构造体的设计

该构造体紧跟在实体设计之后,这样就完成了数字乒乓球游戏机的VHDL源程序编写。

rchitecture game of pingponggame is

type pingpong is (waitserve,light1on,ballmoveto2,allow2hit, light8on,ballmoveto1,allow1hit);

---设置7个状态,为枚举数据类型,记为pingpong signal state:pingpong;

signal i:integer range 0 to 8;

signal count1,count2:std_logic_vector(1 to 5):="00000";

---内部计数器,是5位二进制变量

component mydecoder is

port(binaryin: in std_logic_vector(1 to 5);

bcdout1:out std_logic_vector(1 to 7);

bcdout2:out std_logic_vector(1 to 7);

);

end component;

---调用记分译码器

begin

process(clk) --状态机进程

begin

……

end process;

--进程处i信号控制发光二极管的亮暗

light<="10000000"when(i=1) else

"01000000" when(i=2) else

"00100000" when(i=3) else

"00010000" when(i=4) else

"00001000" when(i=5) else

"00000100" when(i=6) else

"00000010" when(i=7) else

"00000001" when(i=8) else

"00000000"; --其他情况所有发光二极管都暗

u0:mydecoder port map(count1,score11,score12);

--用七段译码器显示甲的分数

u1:mydecoder port map(count2,score21,score22);

----用七段译码器显示乙的分数

end game;

从构造体设计中可以看到,控制整个乒乓球游戏机运转的就是状态机进程,它队各个外围部分起控制作用。它是整个程序的核心,起到一个中心控制器的作用。而外围的部分,比如分数显示,球的轨迹,都是通过它传出的信号来控制。状态机中的i信号和count1,count2信号的变化同时就可以影响到外围的显示部分---发光二极管和七段译码器,从而表示出当时的乒乓球位置和双方分数情况。

4.系统编译和波形仿真

4.1系统的编译

编译时选择所要下载的芯片为EPM7128SLC84-15,在编译完成以后,会出现两个警告,信息是这样的:“Primitive ‘score112’is stuck at VCC”和“Primitive ‘score212’is stuck at VCC”。这说明score11(2)和score21(2)端口输出一直是‘1’。 score11(2)是用来表示甲得分的十位数字的七段译码器的b段的,由于在记分译码器设计中,十位数字只会显示0,1或者2,无论是这三个数字中的那一个,b段的发光二极管都是亮的,所以就相当于接着高电平VCC。Score21(2)同理。提示信息如图4.1所示。

图4.1 编译时警告信息图

4.2 系统有关波形的仿真

编译完成后,进行波形仿真,仿真波形图如图4.2所示。

图4.2 乒乓球游戏机波形仿真图一

在这个仿真图中,看到serve数组为1,代表乙发球。I从8开始依次递减计数,控制发光管亮暗light信号也随着i的数值变化,见图4.3所示。由light 端口输出的高电平驱动芯片以外的发光二极管使之点亮,这样就可以通过发光二极管模拟乒乓球的运动轨迹。可以看到,在甲该击球的时候没有击球,也就是hit1在state状态6的时候没有高电平‘1’输入,则乙得分,count2由0变1,score22的值随之变化。从最后一行state值的变化,可以清楚分析状态转移。

图4.3 乒乓球游戏机仿真波形图一中的乒乓球移动状况图4.4是乙发球以后,甲在正确时刻接球的波形仿真图。

图4.4 乒乓球游戏机波形仿真图二

甲在state为状态6的时候击球了,在图上hit1在此时刻出现高电平,看到state转移到了状态2。当到了状态3乙没有击球,所以甲得分了,count1由0变到1,而七段译码器随之改变。在图4.5中可以清楚地看到球的移动轨迹。

图4.5 乒乓球游戏机仿真波形图二中的乒乓球移动状况下面仿真甲提前击球的情况,如图4.6所示。

在不允许甲击球的状态下,即state处在状态5时,hit1输入逻辑‘1’,表示甲击球了,所以乙得分。这种情况下球的移动状况如图4.7所示。

图4.6 乒乓球游戏机波形仿真图三

图4.7 乒乓球游戏机仿真波形图三中的乒乓球移动状况

在课题设计中,通过使用MAX+PLUSⅡ这个完全集成化、易学易用的可编程逻辑设计环境,利用VHDL语言设计的乒乓球游戏机,较成功的完成了预期的效果,能够正确判断与显示乒乓球的位置,并能自动裁判和记分的装置。在具体设计过程中还需要改进的是控制系统的纠错功能。由于时间关系,系统功能实现不够完善,这些都需要不断的改进和补充。

这次课程设计总的说来收获很大。在最初的设计过程中,一共整理出好几个方案。但在实际的过程中发现,设计的情况和实际中还是有些差异的,通过比较得出最优方案。此外,也学会了使用MAX+PLUS软件。

这次课程设计虽然短暂。但却是我独立自主的从设计电路到得出结论。书本上的内容第一次完完全全的综合运用。在设计过程中。遇到了书本中不曾学到的知识,经过请教老师和同学,以及查阅相关的资料,最终攻克。

致谢

本文是在指导老师胡滨老师的悉心指导下完成的,胡滨老师在学术上严格要求,老师的教诲和鼓励,及在学术上一丝不苟的精神,本人受益匪浅,在此向胡滨老师表示衷心的感谢和敬意!

同时,也要感谢本设计小组的同学,感谢他们在我遇到困难时的热情帮助,在课程设计中,我们积极的交流与探讨也使我受益非浅,希望在以后的学习道路中我们能够共同进步。

[1] 刘艳. EDA 技术在数字系统电路设计实验中的应用[J]. 实验室研究与探索,2002,21(3): 63264

[2] 徐颖.Protel 99 SE EDA技术及应用[M].西安:机械工业出版社.2005

[3] 杨恒,卢飞成. FPGA/VHDL快速工程实践入门与提高[M].北京航空航天大学出版社.2003

[4]甘历.VHDL应用与开发实践[M].科学出版社.2003

电子技术乒乓球比赛游戏机课程设计报告书

1绪论 1.1选题背景 1.1.1 课题目的及意义 本次课程设计的容是独立完成一个乒乓球比赛游戏机的设计,采用EWB电路仿真设计软件完成乒乓球比赛游戏机电路的设计及仿真调试,在微机上仿真实现乒乓球比赛游戏机的设计。通过这次课程设计让我们了解和熟悉了乒乓球游戏机的原理和Multisim仿真设计软件的操作,也让我们加深了解了对双向移位寄存器、双D触发器及、加法器及逻辑门电路的一些实际用途,并将理论与实践相结合。 1.1.2 课题的容和要求 独立完成一个乒乓球比赛游戏机的设计,采用EWB电路仿真设计软件完成乒乓球比赛游戏机电路的设计及仿真调试,在微机上仿真实现乒乓球比赛游戏机的设计。 课程设计具体容如下:乒乓球比赛是由甲乙双方参赛,加上裁判的三人游戏(也可以不用裁判),乒乓球比赛模拟机是用发光二极管(LED)模拟乒乓球运 乒乓球比赛模拟机框图 设计要求:

1、基本部分 (1) 至少用8个LED排成直线,以中点为界,两边各代表参赛双方的位置,其中一个点亮的LED(乒乓球)依次从左到右,或从由到左移动,“球”的移动速度能由时钟电路调节。 (2) 当球(被点亮的那只LED)移动到某方的最后一位时,参赛者应该果断按下自己的按扭使“球”转向,即表示启动球拍击中,若行动迟缓或超前,表示未击中或违规,则对方得一分。 (3) 设计自动记分电路,甲乙双方各用一位数码管显示得分,每记满9分为一局。 2、发挥部分(选做) (1) 甲乙双方各设一个发光二极管表示拥有发球权,每得5分自动交换发球权,拥有发球权的一方发球才能有效。 (2) 发球次数能由一位数码管显示。 (3) 一方得分,电路自动响铃3秒,此期间发球无效,等铃声停止后方可比赛。 课题任务要求 1、画出总体设计框图,以说明乒乓球比赛游戏机由哪些相对独立的功能模块组成,标出各个模块之间互相联系,时钟信号传输路径、方向和频率变化。并以文字对原理作辅助说明。 2、设计各个功能模块的电路图,加上原理说明。 3、选择合适的元器件,在EWB上连接验证、仿真、调试各个功能模块的电路。在连接验证时设计、选择合适的输入信号和输出方式,在充分电路正确性同时,输入信号和输出方式要便于电路的仿真、调试和故障排除。 4、在验证各个功能模块基础上,对整个电路的元器件和连接,进行合理布局,进行整个数字钟电路的连接验证、仿真、调试。 5、自行接线验证、仿真、调试,并能检查和发现问题,根据原理、现象和仿真结果分析问题所在,加以解决。学生要解决的问题包括元器件选择、连接和整体设计引起的问题。 1.2 方案选择 根据设计任务,对照图乒乓球比赛模拟及1.1,可以分为三个模块进行设计:

乒乓球比赛游戏机设计报告

乒乓球比赛游戏机 姓名:___***____ 学号:___201114040215__ 班级: ___11表二____

一、设计题目及要求: 题目:乒乓球比赛游戏机。 要求:(1)设计一个甲乙双方参赛,裁判参与的乒乓球比赛游戏机用8个发光二极管排成一条直线,以中点为界,两边各代表参赛双方的位置,其中点亮的发光二极管代表“乒乓球”的当前位置,点亮的发光二极管依次由左向右或由右向左移动。 (2)当球运动到某方的最后一位时,参赛者应立即按下自己一方的按钮表示击球,若击中,则“球”向相反方向运动,若未击中,对方得一分。 (3)设置自动计分电路,双方各用两位数码管来显示计分,每局10分,到达10分时,产生报警信号,铃响三秒。 二、设计思路及总体方案 两人乒乓球游戏机是由发光二极管代替球的运动,并按照一定的规则进行对垒比赛。甲乙双方击球用开关表示。 当甲乙按动开关时,球向前运动,当球运动到某方的最后一位时,参赛者应立即按下自己一方的按钮,即表示击球。若未击中则表示对方得分,利用计数器连接成十进制计数器记分每局十分。当二者任意一方得分为十分时发生警信号,并且自动停止球的运动,三秒的报警后,自动停止。 图1:乒乓球比赛游戏结构框图

三、元器件选型及依据: 四、电路的设计: (1)总体设计思路如下: 1.用两个74LS194四位双向移位寄存器来模拟乒乓球台,其中第一个74LS194的DL输出端QD接第二个的右移串行输入端SR,这样当乒乓球往右准备移出第一个寄存器的时候就会在时钟脉冲的作用下被移入第二个寄存器。同样道理,第二个74LS194的QA输出端接第一个的左移串行输入端。 2.用JK触发器7473、继电器及逻辑门电路构成驱动控制电路。 3.用十进制计数器74LS160D、逻辑门电路和集成的4管脚的数码管组成计分电路。 4.用十进制计数器74LS160D改装3进制计数器、逻辑门电路和蜂鸣器组成3秒报警电路。 (2)单元电路设计: 2.1、球台电路设计: 球台电路设计如下图所示:

数电课程设计报告 乒乓球游戏设计

电子线路综合设计 乒乓球比赛模拟及计分器设计 2014年6月

摘要 在信息社会高速发展的今天,数字电路芯片已经实现高度集成化,并逐步渗透到医学、计算机等各个领域,对人类的生活有着深远的影响。本设计采用基本门电路以及74LS系列芯片的搭建,以multisim 12.0软件为平台进行仿真,实现了对乒乓球游戏的模拟。主要解决的问题有: (1)模拟乒乓球的轨迹:用双向移位4位寄存器74194以及基本门电路实现;(2)球速的调节:利用555电路实现; (3)球被击中、犯规的判断; (4)计数器的使用:采用74LS90和74LS161的组合,给玩家计分; (5)关于比分的显示:通过CD4511译码芯片将计数器的输出状态显示到2位共阴极数码管上。 关键词:双向移位4位寄存器、555电路、译码电路、计数器系统

目录 1 设计任务 (1) 2 电路整体设计 (2) 2.1 译码显示电路设计 (4) 2.2 555定时器组成脉冲发生器 (5) 2.3模拟乒乓球电路的设计 (6) 3 电路整体性能的检测 (7) 3.1 译码显示电路的检测 (7) 3.2 脉冲发生器电路的检测················································································· 3.3模拟乒乓球电路的检测··················································································4实验结论····················································································································5课程设计心得体会以及建议····················································································6 Abstract ······················································································································7附录(包含元器件清单以及各元器件功能表) ······················································8参考文献····················································································································

乒 乓 球 游 戏 机 设 计

Shaanxi University of Technology 通信工程专业课程设计Ⅱ 题目乒乓球游戏机设计 学生贾潇洒学号0713024056 所在院(系)陕西理工学院电信工程系 专业班级通信工程专业0 7 2 班 指导教师争兵 完成地点陕西理工学院电信工程系实验室 2010年 3 月 19 日

通信工程专业课程设计Ⅱ任务书 院(系) 电信工程系专业班级通信工程专业 072班学生贾潇洒 一、课程设计Ⅱ题目乒乓球游戏机设计 二、课程设计Ⅱ工作自 2010 年 3 月 1 日起至 2010 年 3 月 19 日止 三、课程设计Ⅱ进行地点: 电信工程系实验室 四、课程设计Ⅱ的容要求: [1]本课程设计的目的 本次课程设计为计算机类综合课程设计,通过计算机这个平台使我们将所学习的理论知识应用到实践中的一次尝试,同时也是对计算机辅助软件Max-pulsII的进一步熟悉。 [2]本课程设计的容 采用EDA技术---可采用VHDL或原理图输入法,设计一个乒乓球游戏电路,进行声光模拟,结果应有仿真波形、流程图、并下载在EDA开发板上,测试验证无误。 [3]本课程设计要实现的功能 用8个(或更多个)发光二极管排成一条直线代表乒乓球台,中间两个发光二极管兼做乒乓球网,两边各有两个开关控制双方的发球和接球,并能自动完成裁判、记分等功能。 [4]课程设计时间安排:3月1日-3月3日,熟悉容,方案论证; 3月4日-3月10日,编写程序、运行及仿真; 3月11日-3月12日,下载并验证其功能; 3月16 日,验收课程设计; 3月16日-3月19日,撰写、修改、提交课程设计报告。 指导教师系(教研室) 通信工程教研室接受任务开始执行日期 2010年3月1日学生签名

数电课程设计乒乓球比赛word文档

乒乓球比赛游戏机 一、设计任务与要求 1 课题目的及意义 本次课程设计的内容是独立完成一个乒乓球比赛游戏机的设计,采用EWB 电路仿真设计软件完成乒乓球比赛游戏机电路的设计及仿真调试,在微机上仿真实现乒乓球比赛游戏机的设计。通过这次课程设计让我们了解和熟悉了乒乓球游戏机的原理和Multisim仿真设计软件的操作,也让我们加深了解了对双向移位寄存器、双D触发器及、加法器及逻辑门电路的一些实际用途,并将理论与实践相结合。 2 课题的内容和要求 设计一个甲、乙双方参赛,裁判参与的乒乓球比赛游戏模拟机。 基本要求: (1)用8个发光二极管排成一条直线,以中点为界,两边各代表参赛双方的位置,其中点亮的发光二极管代表“乒乓球”的当前位置,点亮的发光二极管依次由左向右或由右向左移动。 (2)当球运动到某方的最后一位时,参赛者应立即按下自己一方的按钮,即表示击球,若击中,则“球”向相反方向运动,若未击中,则对方得1分。(3)设置自动计分电路,双方各用二位数码管来显示计分,每局11分。到达11分时产生报警信号。 提高要求: (4)一方得分时,电路自动响铃3s,这期间发球无效,等铃声停止后方能继续比赛。 (5)设置局数显示,5局结束后有声响提示比赛结束。 课题任务要求 1、画出总体设计框图,以说明乒乓球比赛游戏机由哪些相对独立的功能模块组成,标出各个模块之间互相联系,时钟信号传输路径、方向和频率变化。并以文字对原理作辅助说明。

2、设计各个功能模块的电路图,加上原理说明。 3、选择合适的元器件,在EWB上连接验证、仿真、调试各个功能模块的电路。在连接验证时设计、选择合适的输入信号和输出方式,在充分电路正确性同时,输入信号和输出方式要便于电路的仿真、调试和故障排除。 4、在验证各个功能模块基础上,对整个电路的元器件和连接,进行合理布局,进行整个数字钟电路的连接验证、仿真、调试。 二、方案设计与论证 根据设计任务,对照图乒乓球比赛模拟及1.1,可以分为三个模块进行设计: 1. 球台电路:球迹移动电路可采用双向移位寄存器方法实现,由发光二极管作光点模拟乒乓球移动的轨迹。 2. 驱动控制电路:由双D触发器及逻辑门电路构成,通过此电路来控制并且实现球台灯的左右移位即实现乒乓球的运动。 3. 计分电路:使用十进制的计数器、逻辑门和集成的4管脚的数码管来组成计分电路。 通过多次设计、画图及仿真实验,我们发现方案电路最简洁,原理简单易懂,操作也很方便,且实用性较强。故采用此方案进行设计。 三、单元电路设计

基于VHDL的乒乓球游戏机设计

1引言 EDA(Electronic Design Automation,电子设计自动化)技术是现代电子工程领域的一门新技术。它提供了基于计算机和信息技术的电路系统设计方法。EDA技术的发张和推广应用极大地推动了电子工业的发展。EDA技术就是以计算机为工具,在EDA软件平台上,对以硬件描述语言VHDL为系统逻辑描述手段完成的设计文件自动地完成逻辑编译,逻辑化简,逻辑分割,逻辑综合及优化,逻辑布局布线,逻辑仿真,直至对于特定目标芯片的适配编译,逻辑映射和编程下载等工作。设计者的工作仅限于利用软件的方式,即利用硬件描述语言来完成对系统硬件功能的描述,在EDA工具的帮助下就可以得到最后的设计结果[1]。近年来,集成电路制造技术的快速发展, 一方面促进了相应设计技术的发展, 另一方面也对设计技术提出了更高的要求。当前集成电路设计, 面临着功能强、性能好、规模大、成本低、设计周期短等一系列要求和挑战, 这些要求和挑战引起了集成电路设计方法的全面革新。当今, 以行为设计为主要标志的新一代数字系统设计理论已形成并得到发展。在集成电路的数字系统的系统级设计中, VHDL 硬件描述语言构造的描述模型优化设计, 有利于高效利用设计空间, 实现设计结构的精确分析, 使芯片资源得以充分利用。 1.1课题的背景、目的 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。而休闲时间越来越少的人们越来越没太多的时间出去搞户外活动,于是众多电子游戏相应而出,成为大家的娱乐节目。因此设计了这个两人的乒乓球游戏。而电子信息类产品的开发明显地出现了两个特点:一是开发产品的复杂程度加深;二是开发产品的上市时限紧迫。而伴随着如上两个特点的产生,相应的出现了设计上的两个问题。其一,在电子系统日趋数字化、复杂化和大规模集成化的今天,电子厂商们越加迫切地追求电子产品的高功能、优品质、低成本、微功耗和微小封装尺寸,从而使得电子设计日趋复杂。那么如何去完成这些高复杂度的电子设计呢?其二,电子产品设计周期短和上市快是电子厂商们坚持不懈的追求,那么面对日趋复杂的设计,又如何能够缩短开发时间呢?解决以上两个问题的唯一途径是电子设计自动化(EDA),即用计算机帮助设计人员完成繁琐的设计工作。

数电课程设计基于Multisim的乒乓球游戏机控制电路设计

课程设计(论文) 课程名称:数字电子技术基础 题目:基于Multisim的乒乓球游戏机控制电路设计院(系): 专业班级: 姓名: 学号: 指导教师:

任务书 设计题目:基于Multisim乒乓球游戏机的控制设计电路 课题目的: 该乒乓球游戏机电路主要由3块组成:球台驱动电路,控制电路和计分电路组成。其中球台电路主要实现游戏者击球完毕后球的左右移动显示位置功能;控制电路实现游戏者A和B击球,裁判对系统初始化的功能;计分电路具有当A 或B击球有效时加分和当游戏者的分数累计超过10时报警通知裁判对系统初始化以便重新开始比赛计分功能。 课题主要内容与要求: 内容:本课题设计一个以8个二极管的依次被点亮代表球的移动位置双向选择开关J2,J3控制发球,击球信号,在Multisim软件上测试结果。 要求:1、熟悉Multisim软件 2、用8个发光二极管表示球,用俩个按钮分别表示AB俩个球员的球拍; 3、A,B各有一个数码管计分。 4、裁判有一个按钮,用来对系统初始化,每次得分后按下一次。

摘要 乒乓球游戏机通过十分巧妙地设计采用数字芯片实现乒乓球左右移动,选手击球得分,累计得分超10报警灯功能。该设计三个双向开关J1,J2,J3分别作为裁判和游戏者A,B,且选手可以译码显示器上直接读出自己的得分,具有操作简单,结构清晰的优点。 对与模电课题的研究离不开电路图,不过现在都在实行电子化,所以需要借助电子产品。Multisim软件就是一款画电路图的电子软件,在此对不太熟悉或未接触过Multisim软件的朋友简短的介绍下: Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。同时具备可以根据自己的需求制造出真正属于自己的仪器;所有的虚拟信号都可以通过计算机输出到实际的硬件电路上;所有硬件电路产生的结果都可以输回到计算机中进行处理和分析等特点。该乒乓球游戏机电路主要有3块电路:台球驱动电路,控制电路和计分电路组成。其中台球驱动电路主要实现游戏者击球完毕后球的左右移动显示位置功能;控制电路实现游戏者A和B击球,裁判对系统初始化的功能;积分电路具有当A和B击球有效时加分和当游戏者的分数累计超过10分时报警通知裁判对系统进行初始化以便重新开始比赛积分的功能。 关键词:游戏机控制电路系统初始化

乒乓球比赛游戏机设计

目录 1 引言 0 1.1设计背景 0 1.2VHDL简介 0 1.3Q UARTUSⅡ简介 (1) 2 乒乓球比赛游戏机的设计 (1) 2.1系统设计要求 (1) 2.2设计思路 (2) 3 乒乓球比赛游戏机的实现 (4) 3.1乒乓球比赛游戏机的顶层原理图 (4) 3.2系统各功能模块的实现 (5) 3.2.1 比赛控制模块 (5) 3.2.2 记分模块 (5) 3.2.3 数码管显示模块 (6) 4 各个模块的仿真以及系统仿真、分析 (7) 4.1比赛控制模块仿真波形 (7) 4.2记分模块仿真波形图 (8) 4.3管脚锁定 (9) 4.4系统的波形仿真 (9) 4.5显示结果的几种情况 (12) 5 总结 (13) 5.1设计制作过程中遇到的问题及解决方案 (13) 5.2本设计有以下几个可以改进的地方 (13) 参考文献................................................................................................................... 错误!未定义书签。附录 (13) 游戏控制模块的VHDL程序 (13) 记分模块的VHDL程序 (16) 动态扫描模块的VHDL程序 (17) 译码器模块的VHDL程序 (18)

1 引言 1.1 设计背景 1.2 VHDL简介 硬件描述语言已经有几十年的发展历史,并且在系统的仿真、验证和设计、综合等方面得到成功的应用。目前常用的硬件描述语言有VHDL、Verilog HDL、ABEL等[2][3][4]。VHDL则起源于20世纪70年代末和80年代初,美国国防部提出的VHSIC计划,目标是为下一代集成电路的生产、实践阶段性的工艺极限和完成10万门级以上的电路设计而建立一种新的描述方法[5]。VHDL的英文全称为Very-High-Speed Integrated Circuit Hardware Description Language,是IEEE 标准化的硬件描述语言,并且已经成为系统描述的国际公认标准,得到众多EDA 公司的支持。 VHDL具有很多的优点使它能够被大多数人认可,被广泛应用在逻辑电路的设计方面,并且成为了标准化的硬件描述语言,其优点如下: (1)功能强大和设计灵活。一个简洁的使用VHDL语言编写的程序就可以描述一个复杂的逻辑电路,因为VHDL拥有强大的语言结构[6]。VHDL多层次的设计描述功能可以有效地控制设计的实现,支持设计库和可重复使用的元件生成,还支持多种设计方式,如层次化设计、模块化设计和同步、异步和随机电路设计。 (2)与具体器件无关。用VHDL设计硬件电路时不用先确定设计要用到哪种器件,也不用特别熟悉器件的内部结构,这样可以使设计人员专注于进行系统设计。设计完成后,可以根据消耗的资源选择合适的器件,而不造成资源的浪费。 (3)很强的移植能力。VHDL由很多不同的工具支持,同一个设计的程序可以在包括综合工具、仿真工具、系统平台等工具中使用。 (4)强大的硬件描述能力。VHDL可以描述系统级电路和门级电路,而且描述方式多样,可以采用行为描述、寄存器传输描述或者结构描述,也可以用其混合描述方式。同时,VHDL可以准确地建立硬件电路模型,因为它支持惯性延迟和

乒乓球游戏电路课程设计最终完成版

电子课程设计 ——基于Verilog的乒乓游戏设计电路 学院: 专业、班级: 姓名: 学号: 指导教师: 2014年12月

引言 可编程器件的广泛应用,为数字系统的设计带来了极大的灵活性。可编程器件可以通过软件编程对硬件的结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样快捷方便。高速发展的FPGA、CPLD兼有串、并行工作方式和高速、高可靠性的特点,在电子系统设计中得到了广泛应用。 通常使用硬件描述语言 (Hardware Description Language,HDL)进行数字电子系统设计。目前应用广泛的硬件描述语言有:VHDL语言,Verilog HDL语言,AHDL语言。Verilog语言由于具有强大的行为描述能力和丰富的仿真语句从而成为系统设计领域最佳的硬件描述语言。 鉴于如上所述,本系统使用Verilog语言进行设计,采用自上向下的设计方法。利用Quartus II 9.1 进行Verilog 程序的编译与综合,然后用Modelism SE 6.0进行功能仿真和时序仿真,并使用EDA实验箱进行下载验证。

基于Verilog的乒乓游戏设计电路 一、设计任务与要求 任务: 设计一个乒乓球游戏机,模拟乒乓球比赛的基本过程和规则,并能裁判和自动计分。 要求如下: 1.使用乒乓球游戏机的甲乙双方在不同的位置罚球或击 球。 2.乒乓球的位置和移动方向可由发光二极管和依次点亮的 方向决定,为球的移动速度为一定值(我们设计中设为0.5秒移动一位)。使用者可按乒乓球的位置发出相应的动作,在其他时候击球视为犯规,给对方加一分;都犯规双方各加一分。二、总体框图 设计思路 根据乒乓球比赛的过程和规则,首先游戏开始,如果一方非正确击球则另一方加分,当分数大于11时获胜,游戏结束,系统设计流程图如图1所示。

EDA课程设计--乒乓球游戏机

EDA课程设计一乒乓球游戏机

EDA技术课程设计课题:乒乓球比赛游戏机 系别:电气与电子工程系 专业: _______ 姓名: __________________________ 学号: __________________________ 指导教师: _______________________

河南城班学院 2012年6月日 成绩评定? 一、指导教师评语(根据学生设计报告质量、答辩情况及其平时表现综合评定)。

录 一、设计目的 (2) 二、设计要求 (6) 三、总体设计方案要求 (4) 1、设计的总体原理 (4) 2、设计内容 (6) 四、EDA设计与仿真 (6) 1、系统程序设计 (6) 2、系统程序各功能介绍 (12) 3、仿真结果及数据分析 (13) 五、硬件实现 (14) 1、硬件实现步骤 (14) 2、硬件实现结果 (66) 六、设计总结 (20) 七、参考文献 (21) 八、设计生成的电路总图 (21)

一、设计目的 通过对FPGA (现场可编程门阵列)芯片的设计实践,使学生掌握一般的PLD (可编程逻辑器件)的设计过程、设计要求、设计内容、设计方法,能根据用户的要求及工艺需要进行电子芯片设计并制定有关技术文件。培养学生综合运用已学知识解决实 际工程技术问题的能力、査阅图书资料和各种工具书的能力、工程绘图能力、撰写技术 报告和编制技术资料的能力,受到一次电子设计自动化方面的基本训练。 培养学生利用EDA技术知识,解决电子设计自动化中常见实际问题的能力, 使学生积累实际EDA编程。通过本课程设计的学习,学生将复习所学的专业知识,使课堂学习的理论知识应用于实践,通过本课程设计的实践使学生具有一定的实践操作能力。 二、设计要求 1、设计一个由甲、乙双方参赛,有裁判的3人乒乓球游戏机。 2、用8个(或更多个)LED排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的LED指示球的当前位置,点亮的LED依此从左到右, 或从右到 左,其移动的速度应能调节。 3、当“球”(点亮的那只LED)运动到某方的最后一位时,参赛者应能果断 地按下位于自己一方的按钮开关,即表示启动球拍击球。若击中,则球向相反方向移动;若未击中,则对方得1分。

电子技术乒乓球比赛游戏机课程设计模板

电子技术乒乓球比赛游戏机课程设计

1绪论 1.1选题背景 1.1.1 课题目的及意义 本次课程设计的内容是独立完成一个乒乓球比赛游戏机的设计, 采用EWB电路仿真设计软件完成乒乓球比赛游戏机电路的设计及仿真调试, 在微机上仿真实现乒乓球比赛游戏机的设计。经过这次课程设计让我们了解和熟悉了乒乓球游戏机的原理和Multisim仿真设计软件的操作, 也让我们加深了解了对双向移位寄存器、双D触发器及、加法器及逻辑门电路的一些实际用途, 并将理论与实践相结合。 1.1.2 课题的内容和要求 独立完成一个乒乓球比赛游戏机的设计, 采用EWB电路仿真设计软件完成乒乓球比赛游戏机电路的设计及仿真调试, 在微机上仿真实现乒乓球比赛游戏机的设计。 课程设计具体内容如下: 乒乓球比赛是由甲乙双方参赛, 加上 二极管

设计要求: 1、基本部分 (1) 至少用8个LED排成直线, 以中点为界, 两边各代表参赛双方的位置, 其中一个点亮的LED( 乒乓球) 依次从左到右, 或从由到左移动, ”球”的移动速度能由时钟电路调节。 (2) 当球( 被点亮的那只LED) 移动到某方的最后一位时, 参赛者应该果断按下自己的按扭使”球”转向, 即表示启动球拍击中, 若行动迟缓或超前, 表示未击中或违规, 则对方得一分。 (3) 设计自动记分电路, 甲乙双方各用一位数码管显示得分, 每记满9分为一局。 2、发挥部分(选做) (1) 甲乙双方各设一个发光二极管表示拥有发球权, 每得5分自动交换发球权, 拥有发球权的一方发球才能有效。 (2) 发球次数能由一位数码管显示。 (3) 一方得分, 电路自动响铃3秒, 此期间发球无效, 等铃声停止后方可比赛。 课题任务要求 1、画出总体设计框图, 以说明乒乓球比赛游戏机由哪些相对独立

乒乓球游戏机--EDA课程设计--完整版本

目录 1 设计目的 (1) 2 设计要求和任务 (1) 2.1设计任务 (1) 2.2设计要求 (1) 3 总体设计思路及原理描述 (1) 4 分层次方案设计及代码描述 (2) 4.1控制模块的设计 (2) 4.1.1 cornal模块分析 (2) 4.1.2 cornal模块VHDL程序描述 (3) 4.2送数据模块的设计 (7) 4.2.1 ch41a模块分析 (7) 4.2.2 ch41a模块VHDL程序描述 (7) 4.3产生数码管片选信号模块的设计 (8) 4.3.1 sel模块分析 (8) 4.3.2 sel模块VHDL程序描述 (9) 4.4 七段译码器模块的设计 (10) 4.4.1 disp模块分析 (10) 4.4.2 disp模块VHDL程序描述 (10) 4.5 顶层原理图设计 (11) 5 各模块的时序仿真图 (12) 6 总结 (14) 7 参考文献 (14)

乒乓游戏机 1 设计目的 掌握熟悉的使用Quartus II 9.1软件的原理图绘制,程序的编写,编译以及仿真。体会使用EDA综合过程中电路设计方法和设计思路的不同。掌握使用EDA工具设计乒乓游戏机的的设计思路和设计方法。 2 设计要求和任务 2.1设计任务 设计一个乒乓球游戏机,该机模拟乒乓球比赛的基本过程和规则,并能自动裁判和几分。 2.2设计要求 (1)甲乙双方各在不同的位置发球或击球。 (2)乒乓球的位置和移动方向由灯亮及依次点亮的方向决定,球移动的速度为0.1-0.5秒移动一位。 (3)11分为一局,甲乙双方都应设置各自的几分牌,任何一方先记满11分,该方胜出。当记分牌清零后,重新开始。 3 总体设计思路及原理描述 由乒乓游戏机功能,用原理图作为顶层模块,再将底层划分成四个小模块来实现:(1)cornal模块:整个程序的核心,它实现了整个系统的全部逻辑功能; (2)ch41a模块:在数码的片选信号时,送出相应的数据; (3)sel模块:产生数码管的片选信号; (4)disp模块:7段译码器。

基于某Verilog地乒乓球游戏电路设计

大学EDA课程设计 : 学号: 班级: 专业: 学院:

目录 0 引言............................................................................................................................. - 2 - 1 设计要求..................................................................................................................... - 2 - 2 设计思路..................................................................................................................... - 2 - 3 Verilog程序 ................................................................................................................ - 3 - 4 功能仿真..................................................................................................................... - 9 - 5 总结........................................................................................................................... - 11 - 致...............................................................................................................................- 11 - 参考文献.......................................................................................................................- 11 -

乒乓球比赛游戏机设计总结报告

现代电子与系统设计总结报告 项目名称:乒乓球比赛游戏机 班级:物科院1005 姓名:周** 沈** 学号:071005** 071005** 指导老师:倪** 提交日期:2012/12/23

封面 (1) 一、设计要求 (3) 二、设计的具体实现 (3) 1、系统框图 (3) 2、甲乙方得分显示模块 (4) 3、加减计数模块 (6) 4、译码模块 (8) 5、控制模块 (9) 6、核心问题 (12)

三、结果分析 (15) 四、附件 (16) 1、完整电路图 (16) 2、各个自制元件的VHDL程序 (16) 一、设计要求 设计一个乒乓球比赛游戏机 (1)设计一个由甲乙双方参加,有裁判的三人乒乓球游戏机; (2)用8个(或更多个)LED排成一条直线,以中点为界,两边各代表参赛双方的位置,期中一只点亮的LED指示球的当前位置,点亮的LED依次从左到右,或从右到左,其移动的速度应能调节; (3)当“球”(点亮的那支LED)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,即表示启动球拍击球,若击中则球向相反方向移动,若未击中,球掉出桌外,则对方得一分; (4)设计自动计分电路,甲乙双方各用两位数码管进行计分显示,每记满11分为1局;(5)甲乙双方各设一个发光二极管表示拥有发球权,每隔2次自动交换发球权,拥有发球权的一方发球才有效;

(6)其他。 二、设计的具体实现 1、系统框图 此系统框图分为控制模块,加/减计数模块,译码显示模块和甲乙方得分显示模块。 2、甲乙方得分显示模块 甲乙双方各用两位数码管进行计分显示,通过控制模块加以控制。 甲乙得分的计数: 图形: VHDL语言: LIBRARY ieee; USE ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;

数电课设-乒乓球游戏机

《数字电子技术基础》课程设计说明书题目:乒乓球游戏机 学生姓名: 学号: 院(系):理学院 专业:信息与计算科学 指导教师:陈敏歌 2012 年 5 月 19 日

目录 1﹑设计题目 (1) 2、设计任务 (1) 2.1选题意义 (1) 2.2设计目标 (1) 2.3设计要求 (1) 3、程序设计与实现 (1) 3.1电路结构 (1) 3.2球台电路设计 (2) 3.3驱动控制电路设计 (3) 3.4计分电路设计 (4) 3.5总电路的设计 (5) 4、设计难点与解决方法 (6) 5、设计不足之处 (6) 6、收获与体会 (7) 文献参考 (8) 附录1:元器件清单﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍9

1.设计题目 乒乓球游戏机 2.设计任务 2.1选题背景 乒乓球游戏机通过十分巧妙的设计采用数字芯片实现乒乓球左右移动、选手击球、得分、累计得分超10报警等功能。该设计三个双向开关J1、J2、J3分别作为裁判和游戏者A、B,且选手可以从译码显示器上直接读出自己的得分,具有操作简单、结构清晰的优点。 2.2设计目标 该乒乓球游戏机电路主要有3块电路:球台驱动电路、控制电路和计分电路组成。其中球台驱动电路主要实现游戏者击球完毕后球的左右移动显示位置功能;控制电路实现游戏者A和B击球、裁判对系统初始化的功能;积分电路具有当A或B击球有效时加分和当游戏者的分数累计超过10分时报警通知裁判对系统进行初始化以便重新开始比赛计分的功能。 2.3设计要求 1).用8个发光二极管表示球,用两个按钮分别表示AB两个球员的球拍; 2).一方发球后,球一固定的速度向另一方运动(发光二极管依次点亮),当球达到最后一个二极管时,对方击球(按下按钮)球向相反的反方向运动,在其他时候击球视为犯规,给对方加1分;都犯规双方各加1分; 3).A、B各有一个数码管计分; 4).裁判有一个按钮,用来对系统初始化,每次得分后按下一次。 3.电路设计与实现 3.1电路结构 根据设计要求,该电路须设计3块短路完成球台驱动、控制和计分功能。当裁判按下启动按钮时,游戏机电路开始运作。系统以CP信号作为球台驱动电路和计数器计分的时钟信号,以8个二极管的依次被点亮代表球的移动位置,双向选择开关J2、J3控制发球、击球信号。电路设计原理图如下图1:

乒乓球比赛游戏机设计

目录 1 引言 (1) 1.1设计背景 (1) 1.2VHDL简介 (1) 1.3Q UARTUSⅡ简介 (3) 2 乒乓球比赛游戏机的设计 (3) 2.1系统设计要求 (3) 2.2设计思路 (4) 3 乒乓球比赛游戏机的实现 (6) 3.1乒乓球比赛游戏机的顶层原理图 (6) 3.2系统各功能模块的实现 (6) 3.2.1 比赛控制模块 (6) 3.2.2 记分模块 (7) 3.2.3 数码管显示模块 (8) 4 各个模块的仿真以及系统仿真、分析 (9) 4.1比赛控制模块仿真波形 (9) 4.2记分模块仿真波形图 (9) 4.3管脚锁定 (10) 4.4系统的波形仿真 (11) 4.5显示结果的几种情况 (14) 5 总结 (15) 5.1设计制作过程中遇到的问题及解决方案 (15) 5.2本设计有以下几个可以改进的地方 (15) 参考文献 (16) 附录 (17) 游戏控制模块的VHDL程序 (17) 记分模块的VHDL程序 (19) 动态扫描模块的VHDL程序 (20) 译码器模块的VHDL程序 (21)

1 引言 1.1 设计背景 1.2 VHDL简介 硬件描述语言已经有几十年的发展历史,并且在系统的仿真、验证和设计、综合等方面得到成功的应用。目前常用的硬件描述语言有VHDL、Verilog HDL、ABEL等[2][3][4]。VHDL则起源于20世纪70年代末和80年代初,美国国防部提出的VHSIC计划,目标是为下一代集成电路的生产、实践阶段性的工艺极限和完成10万门级以上的电路设计而建立一种新的描述方法[5]。VHDL的英文全称为Very-High-Speed Integrated Circuit Hardware Description Language,是IEEE 标准化的硬件描述语言,并且已经成为系统描述的国际公认标准,得到众多EDA 公司的支持。 VHDL具有很多的优点使它能够被大多数人认可,被广泛应用在逻辑电路的设计方面,并且成为了标准化的硬件描述语言,其优点如下: (1)功能强大和设计灵活。一个简洁的使用VHDL语言编写的程序就可以描述一个复杂的逻辑电路,因为VHDL拥有强大的语言结构[6]。VHDL多层次的设计描述功能可以有效地控制设计的实现,支持设计库和可重复使用的元件生成,还支持多种设计方式,如层次化设计、模块化设计和同步、异步和随机电路设计。 (2)与具体器件无关。用VHDL设计硬件电路时不用先确定设计要用到哪种器件,也不用特别熟悉器件的内部结构,这样可以使设计人员专注于进行系统设计。设计完成后,可以根据消耗的资源选择合适的器件,而不造成资源的浪费。 (3)很强的移植能力。VHDL由很多不同的工具支持,同一个设计的程序可以在包括综合工具、仿真工具、系统平台等工具中使用。 (4)强大的硬件描述能力。VHDL可以描述系统级电路和门级电路,而且描述方式多样,可以采用行为描述、寄存器传输描述或者结构描述,也可以用其混合描述方式。同时,VHDL可以准确地建立硬件电路模型,因为它支持惯性延迟和

模拟乒乓球游戏机控制电路课程设计

目录 一、基本设计要求 二、STC89C52芯片介绍 三、程序流程图 四、“乒乓球”比赛系统数码管部分 五、“乒乓球”比赛系统模拟“兵乓球”部分 六、“乒乓球”比赛系统控制开关部分 七、程序设计 八、参考文献

一、基本设计要求: 1、设计一个由甲、乙双方参赛。 2、用8个LED排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的LED指示球的当前位置,点亮的LED依此从左到右,或从右到左,其启动的方向可以由任意一方开始。 3、当“球”(点亮的那只LED)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,即表示启动球拍击球。若击中,则球向相反方向移动;若未击中,则对方得1分。由失分的一方开球。 4.设置自动记分电路,甲、乙双方各用2位数码管进行记分显示,每计满21分为1局,一局到的时候蜂鸣器响起,并显示局数之比。5、随时可以复位比赛,比赛的比分和状态可以复位。 摘要: 为了实现模拟乒乓球比赛的过程和规则,我们采用了STC89C52单片机来控制模拟,采用用8个LED排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的LED指示球的当前位置,用蜂鸣器来实现响铃,比赛双方用按钮开关来模拟启动球拍击球,用数码管来显示比赛分数,和局数之比。 关键词:AT89C51 LED 蜂鸣器。 二、芯片介绍 2.1、 89C52芯片介绍 STC89C52是51系列单片机的一个型号,它是ATMEL公司生产的。

STC89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes 的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash 存储单元。 STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,STC89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 兼容MCS51指令系统· 8k可反复擦写(>1000次)Flash ROM · 32个双向I/O口· 256x8bit内部RAM · 3个16位可编程定时/计数器中断· 时钟频率0-24MHz · 2个串行中断· 可编程UART串行通道 · 2个外部中断源· 共5个中断源 · 2个读写中断口线· 3级加密位 · 低功耗空闲和掉电模式· 软件设置睡眠和唤醒功能 STC89c52为40脚双列直插封装的8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试

数电实验报告乒乓球游戏机

数字系统与逻辑设计 综合实验 ——10秒倒计时+简易乒乓球游戏机

设计课题的任务要求 课题任务: 1.设计实现一个10 秒倒计时电路,使用8×8 点阵显示计时结果。 2.自拟功能:简易乒乓球游戏机,倒计时至0 后开始执行该功能。 两人乒乓游戏机是以8个发光二极管代表乒乓球台,中间两个发光管兼作球网,用发光管按一定的方向依次闪亮来表示球的运动。在游戏机两侧各设一个发球/击球开关,当甲方发球时,靠近甲方的第一个发光管亮,然后依次点亮第二个……球向乙方移动,球过网后到达设计者的规定的球位乙方即可击球,若乙方提前击球或未击到球,则甲方得分。然后重新发球进行比赛,直到某一方记分达到规定分,比赛结束。 1.以8个发光二极管代表乒乓球台,中间两个是球网,乒乓球的位置和移动方向由灯亮及依次点亮的方向决定; 2.球移动的速度0.5s; 3.用4个数码管分别显示双方的得分; 4.发3个球后换发球,最边上的发光二极管亮表示发球方; 5.设置复位键,按下后比分清零,重新10秒倒计时,双方重新开始比赛; 6.当某一方比分达到11分时,比赛结束。 设计思路及总体框图 总体电路外部框图: 总体电路外部接口说明: 框图中左边部分为输入信号,右边为输出信号。

输入信号中,clk 为全局时钟信号,由实验板的晶振产生,频率为1MHz ;h1、h2为双方的发球、击球按键,分别锁定到实验板的BTN4及BTN1上;reset 为全局复位,当reset 为高电平时,比分全部清零,重新倒计时,然后比赛重新开始,reset 锁定到BTN2上。 输出信号中,row[7..0]为点阵行选择信号,col[7..0]为列选择信号,table[7..0]控制7个发光二极管(表示球的移动)、catch[3..0] 为数码管选通信号,score[6..0] 控制七段数码管(用来显示比分)。 总体框图: 各模块间电路连接图: (详见电子版) 设计思路: 1. 考虑到系统的功能比较多且复杂,故采用分块设计的方式,先设计好底层各模块,再到顶层进行综合。根据功能,将系统分为六个底层模块: ①分频模块,将高频时钟(1Mhz)分频,输出两个低频时钟clk1(2hz )和clk2(1hz ),供倒计时模块和乒乓球控制模块使用; ②10秒倒计时模块,从9秒开始倒计时,一直到0,利用逐列扫描的方式,对行像素分别编码,利用人眼视觉暂留效应,以1MHZ 的频率扫描列,点阵上就会出现稳定的数字。若按下”reset” 后,重新开始计时,然后开始兵乓球游戏。 球台控制 电路 倒计时 模块 分频 电路 时钟 输入 译码 显示

相关主题