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

合集下载

电子乒乓球课程设计

电子乒乓球课程设计

电子乒乓球课程设计一、课程目标知识目标:1. 学生能够理解电子乒乓球的基本原理,掌握相关电子元件的功能和使用方法。

2. 学生能够描述电子乒乓球的电路连接和工作过程。

3. 学生能够解释电子乒乓球游戏中涉及到的物理现象,如电路、电磁感应等。

技能目标:1. 学生能够运用所学知识,独立完成电子乒乓球的搭建和调试。

2. 学生能够运用编程思维,设计并实现简单的电子乒乓球游戏功能。

3. 学生能够通过团队协作,解决电子乒乓球制作过程中遇到的问题。

情感态度价值观目标:1. 学生能够对电子技术产生兴趣,培养创新意识和探索精神。

2. 学生能够在团队协作中,学会沟通、分享和承担责任。

3. 学生能够在电子乒乓球制作过程中,体会到科技与生活的紧密联系,增强环保意识和实践能力。

课程性质:本课程为实践性较强的综合课程,结合电子技术、物理知识和编程思维,培养学生的动手能力和创新能力。

学生特点:六年级学生具备一定的物理知识和电子技术基础,对动手实践和团队协作有较高的兴趣。

教学要求:教师需引导学生主动探索、动手实践,注重培养学生的创新思维和问题解决能力。

在教学过程中,关注学生的个体差异,提供个性化的指导和支持。

通过课程学习,使学生能够将所学知识应用于实际情境,提高综合素养。

二、教学内容本课程依据课程目标,结合教材内容,制定以下教学内容:1. 电子元件认知:介绍常用电子元件如电阻、电容、二极管、三极管等的功能和用途。

2. 电路原理:讲解电路的基本连接方式,分析简单电路的工作原理。

3. 电磁感应:引导学生探究电磁感应现象,理解电磁感应在实际应用中的作用。

4. 编程思维:学习基础编程知识,运用编程思维设计电子游戏功能。

5. 电子乒乓球制作:按照以下步骤进行制作:a. 设计电路图,搭建电路。

b. 编写程序,实现游戏功能。

c. 调试电路,优化游戏体验。

6. 团队协作与沟通:学生在制作过程中,进行有效沟通,共同解决问题。

教学大纲安排如下:第一课时:电子元件认知,电路原理介绍。

数电课设-乒乓球游戏机

数电课设-乒乓球游戏机

数电课设-乒乓球游戏机乒乓球游戏机数电课设一、课设目的本课设的目的是通过设计并实现一个乒乓球游戏机的电子电路模型,来巩固和应用学生在数字电路实验课上所学习到的知识,提高他们的电子电路设计与实现能力。

二、设计思路乒乓球游戏机是一种非常经典的游戏机,它的原理很简单,就是通过两个滑块控制球的移动方向,利用球拍击球来达到得分的目的。

基于这个原理,我们可以设计一个乒乓球游戏机的电子电路模型。

具体的设计思路如下:1、显示系统:使用LED点阵来显示游戏界面。

设计一个4*4的LED 点阵,通过控制LED点阵的亮灭来显示游戏界面的各个元素,如球、滑块等。

2、控制系统:使用两个按键来控制滑块的上下移动。

通过按键的触发来改变滑块的位置,从而实现对球的控制。

3、碰撞检测:使用逻辑门电路来判断球与滑块之间是否发生碰撞。

当球与滑块相碰时,逻辑门输出高电平信号,触发得分操作。

4、计分系统:使用计数器电路来实现游戏的计分功能。

当球与滑块相碰时,计数器加一,同时更新LED点阵上的分数显示。

三、电路实现1、显示系统:设计一个4*4的LED点阵电路模型,使用74HC595移位寄存器来驱动LED点阵。

将74HC595的输出接入到LED点阵的行线上,通过移位寄存器的控制信号来控制LED点阵的亮灭。

通过连续地改变LED 点阵的亮灭状态,可以显示游戏界面上的各个元素。

2、控制系统:使用两个按键作为滑块的上下移动控制信号。

当按键按下时,滑块的位置向相应方向移动。

可以使用74HC165移位寄存器来实现按键输入的检测和转换。

3、碰撞检测:使用逻辑门电路来判断球与滑块之间是否发生碰撞。

可以使用与门和反相器来实现碰撞检测。

当球与滑块相碰时,逻辑门输出高电平信号。

4、计分系统:使用计数器电路来实现游戏的计分功能。

可以使用74HC191或74HC163等计数器芯片来实现,通过设置计数器的初始值和计数模式,来实现游戏的计分功能。

四、功能实现乒乓球游戏机的基本功能有:1、选择游戏模式功能:可以通过添加一个模式选择开关,来实现选择不同的游戏难度。

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

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

电子技术课程设计乒乓球游戏机
包括题目、任务要求、系统设计、操作用户界面设计、单片机程序设计、程序流程图、实验结果等部分。

二、任务要求
1.硬件系统
(1)硬件系统的组成:硬件主要由9个8*8的LED显示屏,2个按键盘,1个电源、1个继电器等组成;
(2)LED显示屏:有9块8*8点阵LED屏,用来显示乒乓球游戏的界面;
(3)按键盘:用于接受用户的按键输入,当用户有相应动作时,发出控制信号;
(4)电源:电源给系统提供相应的电力;
2.软件模块
(1)内核模块:内核模块由单片机程序设计,接收用户的按键输入,确定游戏运行的状态;
(2)操作用户界面模块:其功能是负责处理和游戏有关的界面显示,将单片机发出的控制信号转换为相应界面显示;
三、系统设计
1.硬件设计
(1)乒乓球游戏机的硬件系统:由9个8*8的LED显示屏,2个按键盘,1个电源、1个继电器组成,以单片机为控制核心;
(2)LED显示屏:由9块8*8点阵LED屏组成,每块LED显示屏通过24个数据线与单片机连接,同时接通电源,实现LED显示屏的控制;。

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

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

乒乓球游戏机EDA课程设计完整版本
本文主要介绍了一款基于FPGA可编程硬件的乒乓球游戏机的设计。

本文将重点介绍
如何利用FPGA技术来搭建可编程硬件电路,如何使用Verilog HDL语言来设计数字电路,如何使用Quartus II环境来实现复杂任务,以及如何利用FPGA来完成乒乓球游戏机的EDA课程设计。

首先,在设计乒乓球游戏机的FPGA可编程硬件系统时,最重要的是硬件架构设计,
选择固定板来作为FPGA控制器,能够有效地根据游戏需求控制其各个功能,保证游戏机
运行稳定性和可靠性。

为了满足乒乓球游戏机的需求,FPGA控制器引入Verilog HDL语言,用数字电路的方式进行设计,从而构建出模拟端口,使用I/O 端口对乒乓球系统进行控制,其内部控制器模块实现了所有的乒乓球游戏逻辑功能。

在设计主板的时候,FPGA
中实现的硬件电路会结合安装在主板上的器件,比如七段LED显示器、微型键盘、LED灯等,从而使乒乓球游戏机更加复杂,实现更多的功能。

接下来,使用Quartus II环境,实现乒乓球游戏机的EDA课程设计。

首先,在Quartus II中编写Verilog HDL语言编程,利用FPGA可编程硬件系统设计乒乓球游戏逻辑,构建出特定的模块,实现系统的功能。

其次,编写控制逻辑,运用Verilog HDL语言
编程,在FPGA硬件中得到设计的图像图案,以及搭建复杂的乒乓球游戏的系统结构,实
现乒乓球游戏的控制逻辑功能。

最后,完成了乒乓球游戏机的EDA课程设计。

乒乓球比赛游戏机数电课程设计

乒乓球比赛游戏机数电课程设计

河北理工大学轻工学院信息科学技术部课程设计说明书设计题目乒乓球比赛游戏机班级08测控1班姓名杨洋学号200815020115指导教师许金刚2011年1月6日第二部分设计过程如上图1所示,该电路主要由球台驱动电路,控制电路,计数器,显示译码器和LED数码管等组成。

图中标出的各种信号的含义:CP表示球台驱动电路和计数器的时钟信号;S表示灯(乒乓球)移动的信号;L表示发光二极管驱动信号,由L1~L8组成;CNT表示计数器的计数脉冲信号,由CNT1,CNT2组成;KA,KB表示开关控制的外输入发球、击球信号。

一、单元电路的设计1.球台电路由两片4位74LS194双向移位寄存器接成8位双向移位寄存器。

74LS194功能表如下R D S1 S0工作状态0 1 1 1 1 ××0 00 11 01 1置零保持右移左移并行输入功能说明:(1)当S1 = S0 =1 时,不管各输入端原来是什么状态,在下一个时脉冲到来时,其输出分别是预先输入到并行输入端的 abcd ,这种方式叫送数。

(2)当 S 1 =0 ,S 0 =1 时,其工作方式叫右移,这时,每来一个时钟脉冲,输出端的数各向右移一位,而 Q A 端的输出则由加到 R 端的数来补充。

(3)当 S 1 =1 ,S 0 =0 时,其工作方式叫左移,情况正好与右移相反; Q D 端的输出由加到 L 端的数来补充。

(4)当 S 1 = S 0 =0 时,不管是否有 CP 脉冲作用,输出保持不变,这叫保持方式。

CP=0 时也是保持同步十进制计数器74LS160的功能表如下:CP R D LD EP ET 工作状态×××01111×111××××0 1×01 1置零预置数保持保持(但C=0)计数由74LS160的功能表可知,当~RD=~LD=EP=ET=1时工作状态为计数,即图4中的~CLR=~LOAD=ENT=ENP=1时。

电子课程设计乒乓球比赛

电子课程设计乒乓球比赛

电子课程设计乒乓球比赛一、教学目标本课程旨在通过学习电子课程设计乒乓球比赛,让学生掌握电子课程设计的基本原理和方法,培养学生的创新意识和团队协作能力。

知识目标:使学生了解乒乓球比赛的规则和技巧,理解电子课程设计的基本原理和方法。

技能目标:培养学生运用电子课程设计乒乓球比赛的能力,提高学生的动手实践能力和问题解决能力。

情感态度价值观目标:培养学生对电子课程设计的兴趣和热情,培养学生的创新意识和团队协作精神,使学生认识到电子课程设计在实际生活中的应用价值。

二、教学内容本课程的教学内容主要包括乒乓球比赛的规则和技巧,以及电子课程设计的基本原理和方法。

具体安排如下:第1周:乒乓球比赛的规则和技巧介绍第2周:电子课程设计的基本原理和方法讲解第3周:乒乓球比赛设计的实践操作第4周:乒乓球比赛设计的改进和优化三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

通过讲授法,使学生了解乒乓球比赛的规则和技巧,理解电子课程设计的基本原理和方法。

通过讨论法,培养学生的团队协作能力和创新意识,激发学生的学习兴趣。

通过案例分析法,使学生能够将理论知识运用到实际中,提高学生的问题解决能力。

通过实验法,培养学生的动手实践能力,使学生能够熟练掌握电子课程设计的方法和技巧。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备适当的教学资源。

教材:选用《电子课程设计》作为主教材,系统介绍电子课程设计的基本原理和方法。

参考书:推荐学生阅读《乒乓球比赛技巧》等参考书籍,以加深对乒乓球比赛规则和技巧的理解。

多媒体资料:制作乒乓球比赛规则和技巧的PPT,以及电子课程设计的实验步骤和操作演示视频,以辅助教学。

实验设备:准备乒乓球桌、乒乓球、电子元件等实验设备,以便进行乒乓球比赛设计的实践操作。

教学资源的选择和准备,将为学生的学习提供全面的支持,帮助学生更好地理解和掌握电子课程设计乒乓球比赛的知识和技能。

乒乓球比赛游戏机电路

乒乓球比赛游戏机电路

数字电子技术课程设计一:课程设计名称:乒乓球比赛游戏机电路二:设计目的1.掌握设计乒乓球游戏机控制系统的方法。

2.熟悉掌握移位寄存器,计数器,译码器的用法。

3.在已学知识的基础上,根据实际情况融会贯通。

三:设计任务和设计要求1.设计任务(1)设计一个由甲、乙双方参赛,裁判参与的乒乓球比赛游戏模拟机。

(2)用八只(或更多)排成长串的指示灯(发光二极管)用来代表球的轨迹,其中一个亮的指示灯用来显示球的当前位置,用一个时钟脉冲源使点亮的指示灯依次从左向右,或从右向左移动,其速度应能调节,一般为1s转换一次。

(3)用两个按钮开关作为球拍,甲乙两人参加比赛。

当球到达甲方时,应立即按动开关(电路应只能响应按钮信号的前沿,若重复按动或持续按下去,将不起作用),表示回球,球到达乙时,同样也应立即按动乙方的开关,将球回击到对方去。

若击中,则乒乓球向相反方向移动,若未击中,则对方得一分。

(4)一方得分时,电路自动响铃3s,此时发球无效,等铃声停止后方能继续比赛。

(5)设置自动计分电路,双方各用二位数码管进行计分显示,每计满11分为一局。

(6)甲、乙双方各设一个发光二极管,表示拥有发球权,每隔5次自动交换发球权,拥有发球权的一方发球有效。

2.设计要求(1) 确定总体设计方案画出总方框图。

(2) 确定各单元电路的功能,进行单元电路的设计,画出逻辑图。

(3) 选择芯片确定型号。

(4) 画出总逻辑图和装配图,并在实验板上组装电路。

(5) 进行电路调试,达到设计要求。

(6) 写出总结报告。

三、基本工作原理和设计方案乒乓球游戏模拟机电路框图如图所示。

频率可调的时钟发生器为双向移位寄存器提供时钟脉冲,用双向移位寄存器的输出端控制指示灯来模拟乒乓球的运动轨迹。

先点亮位于某一方的第1个指示灯,由击球者通过按钮输入“击球”开关信号,实现移位方向的控制。

本电路设计的核心为控制电路,它决定整个系统的动作,必须掌握各信号之间的关系。

框图中的双向移位寄存器也可用计数译码方式实现乒乓球运动轨迹的模拟,如利用加减计数器的两个时钟信号来实现甲乙双方的击球,由表示球拍“击打”按钮产生计数时钟,计数器的输出状态经译码器驱动指示灯发光。

数电乒乓球游戏课程设计

数电乒乓球游戏课程设计

数电乒乓球游戏课程设计一、教学目标本课程的教学目标是使学生掌握数字电路的基本知识和技能,通过设计一个乒乓球游戏电路,培养学生运用所学知识解决实际问题的能力。

具体目标如下:1.知识目标:–掌握数字电路的基本概念和原理;–熟悉逻辑门、逻辑函数、逻辑电路的设计方法;–了解乒乓球游戏的规则和电路设计要求。

2.技能目标:–能够运用逻辑门电路设计简单的数字电路;–能够根据乒乓球游戏的规则,设计出相应的电路;–能够运用数字电路的知识,解决实际问题。

3.情感态度价值观目标:–培养学生的创新意识和团队合作精神;–培养学生对数字电路的兴趣和好奇心;–培养学生的自主学习和解决问题的能力。

二、教学内容本课程的教学内容主要包括数字电路的基本概念、逻辑门电路的设计、逻辑函数的化简、逻辑电路的设计方法以及乒乓球游戏的电路设计。

具体安排如下:1.数字电路的基本概念:介绍数字电路的定义、特点和分类,理解数字信号与模拟信号的区别。

2.逻辑门电路的设计:学习逻辑门的原理和功能,掌握逻辑门电路的设计方法,包括与门、或门、非门等。

3.逻辑函数的化简:学习逻辑函数的定义和性质,掌握逻辑函数的化简方法,包括卡诺图化简法、逻辑代数化简法等。

4.逻辑电路的设计方法:学习逻辑电路的定义和功能,掌握逻辑电路的设计方法,包括组合逻辑电路、时序逻辑电路等。

5.乒乓球游戏的电路设计:根据乒乓球游戏的规则,设计相应的电路,包括得分电路、计分电路等。

三、教学方法为了实现本课程的教学目标,我们将采用多种教学方法,包括讲授法、案例分析法、实验法等。

具体方法如下:1.讲授法:通过讲解数字电路的基本概念、原理和设计方法,使学生掌握相关知识。

2.案例分析法:通过分析乒乓球游戏的电路设计案例,使学生理解和运用所学知识解决实际问题。

3.实验法:通过实验室的实践操作,使学生亲手设计、搭建和测试数字电路,提高学生的实践能力。

四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的数字电路教材,为学生提供系统、科学的学习材料。

EDA课程设计_7

EDA课程设计_7

乒乓球游戏电路设计一、乒乓球设计方案(1)我们设计的乒乓球游戏是以一排发光二极管交替发光指示乒乓球的行进路径, 其行进的速度可由输入的时钟信号控制。

乒乓球比赛是甲乙双方的比赛, 所以用两个按键模拟左右两个球拍;我们还要设计一个乒乓球控制模块, 即当发光二极管到最后一个的瞬间, 若检测到对应的表示球拍的键的信号, 立即使“球”反向运行, 如果此瞬间没有接到按键信号, 将给出失败鸣叫, 同时为对方记1分, 并将记分显示出来, 然后由对方重新发球以此类推;还要设计失球计数器的高低位计数模块;乒乓球行进方向控制模块, 主要由发球键控制;还要有一个失球提示发生模块。

(2)要知道乒乓球的游戏规则, 以多少分为一局, 谁先得到一定的分数谁就赢一局, 以此来判断输赢。

(3)用数码管显示双方的得分, 还要设计一个十进制计数器, 来显示分数。

(4)在乒乓球设计方案时还要考虑球速的问题。

二、乒乓球游戏电路的设计程序1.LIBRARY IEEE;--乒乓球游戏顶层文件use ieee.std_logic_1164.all;entity TENNIS isport(bain,bbin,clr,clk,souclk:in std_logic;ballout:out std_logic_vector(7 downto 0);countah,countal,countbh,countbl:out std_logic_vector(3 downto 0);lamp,speaker:out std_logic);end entity TENNIS;architecture ful of TENNIS iscomponent soundport(clk,sig,en:in std_logic;sout:out std_logic);end component;component ballctrlport(clr,bain,bbin,serclka,serclkb,clk:in std_logic; bdout,serve,serclk,ballclr,ballen:out std_logic);end component;component ballport(clk,clr,way,en:in std_logic;ballout:out std_logic_vector(7 downto 0));end component;component boardport(ball,net,bclk,serve:in std_logic;couclk,serclk:out std_logic);end component;component cou10port(clk,clr:in std_logic;cout:out std_logic;qout:out std_logic_vector(3 downto 0));end component;component cou4port(clk,clr:in std_logic;cout:out std_logic;qout:out std_logic_vector(3 downto 0));end component;component mwayport(servea,serveb:in std_logic;way:out std_logic);end component;signalnet,couclkah,couclkal,couclkbh,couclkbl,cah,cbh:std_logic; signalserve,serclka,serclkb,serclk,ballclr,bdout,way,ballen:std_lo gic;signal bbll:std_logic_vector(7 downto 0);beginnet<=bbll(4);ballout<=bbll;lamp<=clk;uah:cou4 port map(couclkah,clr,cah,countah);ual:cou10 port map(couclkal,clr,couclkah,countal);ubh:cou4 port map(couclkbh,clr,cbh,countbh);ubl:cou10 port map(couclkbl,clr,couclkbh,countbl); ubda:board port map(bbll(0),net,bain,serve,couclkal,serclka);ubdb:board port map(bbll(7),net,bbin,serve,couclkbl,serclkb);ucpu:ballctrlportmap(clr,bain,bbin,serclka,serclkb,clk,bdout,serve,serclk, ballclr,ballen);uway:mway port map(serclka,serclkb,way);uball:ball port map(clk,ballclr,way,ballen,bbll);usound:sound port map(souclk,ballen,bdout,speaker);end ful;2.library ieee;use ieee.std_logic_1164.all;entity sound isport(clk:in std_logic; --发声时钟sig:in std_logic; --正确接球信号en:in std_logic; --球拍接球脉冲sout:out std_logic); --提示声输出, 接小喇叭end entity sound;architecture ful of sound isbeginsout<=clk and (not sig) and en;--球拍接球, 没接到时, 发提示声end ful;3.library ieee; --总控制模块use ieee.std_logic_1164.all;entity ballctrlisport(clr:in std_logic; --系统复位bain:in std_logic; --左球拍bbin:in std_logic; --右球拍seclka:in std_logic; --左拍准确接球或发球serclkb:in std_logic; --右拍准确接球或发球clk:in std_logic; --乒乓球灯移动时钟bdout:out std_logic; --球拍接球脉冲serve:out std_logic; --发球状态信号serclk:out std_logic; --球拍正确接球信号ballclr:out std_logic; --乒乓球灯清零信号ballen:out std_logic); --乒乓球灯使能end entity ballctrl;architecture ful of ballctrl issignal bd:std_logic;signal ser:std_logic;beginbd<=bain or bbin;ser<=serclka or serclkb;serclk<=ser;--球拍正确接球信号bdout<=bd; --球拍接球脉冲process(clr,clk,bd)beginif(clr='1')then --系统复位serve<='1'; --系统处在职发球状态ballclr<='1'; --乒乓球灯清零elseif(bd='1')then --系统正常--球拍发球或接球时ballclr<='1'; --乒乓球灯清零if(ser='1')then --球拍发球或准确接球ballen<='1'; --乒乓球灯使能允许serve<='0'; --系统处在接球状态else ballen<='0';serve<='1'; --系统处在发球状态end if;else ballclr<='0';--没发球或接球时乒乓球灯不清零end if;end if;end process;end ful;4.--乒乓球灯模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ball isport(clk:in std_logic; --乒乓球灯前进时钟clr:in std_logic; --乒乓球灯清零way:in std_logic; --乒乓球灯前进方向en:in std_logic; --乒乓球灯使能ballout:out std_logic_vector(7 downto 0));--乒乓球灯end entity ball;architecture ful of ball issignal lamp:std_logic_vector(9 downto 0);beginprocess(clk,clr,en)beginif(clr='1') then lamp<="1000000001";--清零elsif en='0' thenelsif (clk'event and clk='1')then--使能允许, 乒乓球灯前进时钟上升沿if(way='1') then lamp(9 downto 1)<=lamp(8 downto 0);lamp(0)<='0';--乒乓球灯右移else lamp(8 downto 0)<=lamp(9 downto 1); lamp(9)<='0';--乒乓球灯左移end if;end if;ballout<=lamp(8 downto 1);end process;end ful;5.--乒乓拍模块library ieee;use ieee.std_logic_1164.all;entity board isport(ball:in std_logic; --接球点, 也就是乒乓球灯的末端net:in std_logic; --乒乓球灯的中点, 乒乓球过中点时, counclk、serclk复位bclk:in std_logic; --球拍接球信号serve:in std_logic; --发球信号couclk:out std_logic;serclk:out std_logic);end entity board;architecture ful of board isbeginprocess(bclk,net)beginif(net='1')then serclk<='0';couclk<='0';--乒乓球过中点时, counclk、serclk复位elsif(bclk'event and bclk='1')then—球拍接球时if(serve='1')then serclk<='1';--系统处于发球状态时—发球成功else—系统处于接球状态if(ball='1')then serclk<='1';--乒乓球刚落在接球点上, 接球成功else serclk<='0';couclk<='1';end if;end if;end if;end process;end ful;6.--十进制计数器用来做失球低位计数library ieee;use ieee.std_logic_1164.all;entity mway isport(servea:in std_logic;serveb:in std_logic;way:out std_logic);end entity mway;architecture ful of mway isbeginprocess(servea,serveb)beginif(servea='1')then way<='1';elsif(serveb='1')then way<='0';end if;end process;end ful;7、--四进制计数器用来做失球高位计数library ieee;use ieee.std_logic_1164.all;entity mway isport(servea:in std_logic;serveb:in std_logic;way:out std_logic);end entity mway;architecture ful of mway isbeginprocess(servea,serveb)beginif(servea='1')then way<='1';elsif(serveb='1')then way<='0';end if;end process;end ful;8、--乒乓球前进方向产生模块library ieee;use ieee.std_logic_1164.all;entity mway isport(servea:in std_logic;--左选手发球信号serveb:in std_logic;--右选手发球信号way:out std_logic);--乒乓球灯前进方向信号end entity mway;architecture ful of mway isbeginprocess(servea,serveb)beginif(servea='1')then way<='1';--左选手发球方向向右elsif(serveb='1')then way<='0';--右选手发球方向向左end if;end process;end ful;三、乒乓球游戏程序的仿真波形仿真波形图四、硬件测试方法然后我们就要测试硬件, 下载文件。

电路课程设计乒乓球游戏机

电路课程设计乒乓球游戏机

电路课程设计乒乓球游戏机
摘要
本文描述了一种用于实现实时电路课程设计乒乓球游戏机的硬件电路设计,以及该系统的控制程序。

该系统由处理器、存储器、按键等组成。

处理器使用可编程的芯片和控制程序,根据按钮的不同状态控制输出设备的动作,实现乒乓球游戏机的功能。

存储器主要由EEPROM和RAM构成,存储系统的控制程序,以及游戏信息;输出的驱动电路及电机马达,实现游戏机投球的动作,以及乒乓球游戏的发挥。

关键词:乒乓球游戏机,可编程,控制程序,EEPROM,RAM,电机马达
1绪论
乒乓球游戏机是一种受欢迎的实时电路课程设计。

它的功能可以通过电路设计来模拟,以实现趣味的实时游戏。

该系统可以实现电子乒乓球的真实效果,受到了广大玩家的喜爱。

本文对乒乓球游戏机的硬件电路设计和控制程序进行了详细介绍,主要包括:处理器系统、存储器系统、按键系统、输出系统以及控制程序。

本文着重介绍了系统的各个子系统的功能、组成以及工作原理,以实现乒乓球游戏机的功能。

2处理器系统。

数电设计乒乓球游戏机

数电设计乒乓球游戏机

数字电路课程设计报告设计二乒乓球游戏机姓名:陈元专业:信息工程年级:2015班级:信工二班学号:201532010161. 设计题目及要求1.1题目:乒乓球游戏机1.2要求:1)用8个发光二极管表示球;用两个按钮分别表示甲乙两个球员的球拍;2)一方发球后,球以固定速度向另一方运动(发光二极管依次点亮),当球达到最后一个发光二极管时,对方击球(按下按钮)球将向相反方向运动,在其他时候击球视为犯规,给对方加1分;都犯规,各自加1分;3)甲、乙各有一数码管计分;4)裁判有一个按钮,是系统初始化,每次得分后,按下一次。

2. 设计过程及软件仿真2.1设计方案:1)球台电路:用8个发光二极管表示球,采用双向移位寄存器控制灯的流向;2)控制电路:用双D触发器及逻辑门电路组成,通过此电路控制球台电路的左右移位;3)计分电路:用十进制计数器,逻辑门,译码器,数码管组成;4)时钟电路:用555定时器构建多谐振荡器产生时钟脉冲;5)电源电路:用usb串口与5v移动电源向电路板供电,并在电路板设置电源指示灯指示供电情况。

2.2.总电路设计:2.3单元电路设计1)球台电路设计球台电路是整个乒乓球游戏机的终端,是最终打乒乓球的球台。

上图中,两片4位74LS194双向移位寄存器接成8位双向移位寄存器。

74LS194功能表如表1所示:2)开关电路开关电路是整个乒乓球游戏机的灵魂,是使乒乓球游戏能进行的核心。

开关电路由两片74ls74(D触发器)、两个与非门,两个与门和一个或门组成。

图中74LS74为上升沿触发的D触发器,~PR为置1端(低有效),~CLR为置0端(低有效)。

当J1=0时,两片D触发器输出端均为1即S1=S0=1,通过接入74LS194,此时实现的是并行输入功能。

当J1=1时,Qa=J3=1,J2=Qd=0,通过各门电路和D触发器输出端分别为0,1即S1=0,S0=1。

相反情况时,当J1=1时,Qa=J3=0,J2=Qd=1,D触发器输出端分别为1,0即S1=1,S0=0。

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

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

乒乓球游戏电路课程设计最终完成版第一篇:乒乓球游戏电路课程设计最终完成版电子课程设计——基于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所示。

图2给出了乒乓球游戏机的原理图。

用5个发光二极管代表乒乓球,在游戏机两侧各设置二个开关,一个是发球开关,一个是击球开关。

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

乒乓球游戏机--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段译码器。

乒乓球游戏电路设计

乒乓球游戏电路设计

模 式 3 的 电 路 结 构
选手B比 赛按键8
选手B比 赛按键8
实验10-2 乒乓球游戏电路设计
程序设计与硬件实验
KX
RTL电路
康芯科技
数码管7/6显示选手B的得分
数码管3/2显示选手A的得分
KX
康芯科技
击球失误鸣叫
8个发光管亮的次序 表示球行进得路径
CLK:球行进速度控 制时钟CLOCK2接pin17
模 式 3 的 电 路 结 构
SOUCLK:失球警告声音 时钟CLOCK5接pin16
选手B比 赛按键8 选手B下载
注意此示例存放的路径
其余设置默认!
选择模式3
KX
康芯科技
击球失误鸣叫时钟CLK5接1024Hz
球运行速度控制时 钟CLK2,选择4Hz
KX
康芯科技
数码管3/2显示选手A的得分 数码管7/6显示选手B的得分
8个发光管亮的次序 表示球行进得路径

数字兵兵球_课程设计终极版

数字兵兵球_课程设计终极版

华南农业大学电子线路综合设计乒乓球游戏模拟设计班级:组别:3指导教师:霞2012年12月摘要兵兵球比赛现场激烈紧,为了让兵兵球裁判员更加专注于观察比赛情况,和做到和做到兵兵球比赛评分规化,公平化,而避免由于过于投入观察而发生忘记计分的情况,需要设计一个智能机器来完成专门针对于兵兵球比赛的模拟系统和计分器来协助裁判对双方队员计分,那样裁判就可以将注意力全部集中在现场的比赛中,而无需要因为计分而耽搁赛事,做到赛事组织科学化,减少由于误差而造成的赛后纷争,或者提供比赛判决证据。

兵兵球游戏模拟机器,同时可作为启蒙儿童的教育工具。

可以使用该兵兵球模拟机器来为儿童演示和讲解兵兵球比赛的计分规则和犯规条件,同时也可以激发学前班儿童对简单电子小制作的兴趣,为他们讲解和介绍一些电子元器件能够增长他们的见识和开发智商。

本设计采用双向移位寄存器方法实现球迹移动电路,由发光二极管作光点模拟乒乓球移动的轨迹。

采用双D触发器及逻辑门电路构成按键组成驱动控制电路,通过此电路来控制并且实现球台灯的左右移位即实现乒乓球的运动。

使用十进制的计数器、逻辑门和集成的4管脚的数码管来组成计分电路。

关键词:74LS90 双向移位寄存器多谐振荡器D触发器目录1 设计目的 (1)2 设计任务 (1)2.1 设计指标 (1)2.2 设计要求 (1)3 方案选择 (2)3.1 方案选择一 (2)3.2 方案选择二 (2)3.3 方案的选择 (3)4 兵兵球模拟计分器的设计 (4)4.1 电路的总方案图 (4)4.2电路实现的原理 (4)4.3 单元电路解说 (4)5 电路的装配与调试过程 (8)5.1 电路的仿真 (8)5.2 电路焊接 (11)5.3 元件的布局 (11)5.4 电路的调试 (12)6 课程设计的结论、收获、体会 (12)致 (14)参考文献 (15)附录 (16)附录1元器件清单 (16)附录2 电路总图 (17)图2 电路总图 (17)附录3 芯片引脚图 (18)1 设计目的(1) 加深对模拟电子技术数字电子技术对模拟电子技术知识的理解,拓宽知识面,巩固电子工艺实习的成果。

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

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

电子线路综合设计乒乓球比赛模拟及计分器设计2023年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参照文献 ·······················································································1.设计任务本次我们小组选择旳设计是乒乓球比赛模拟及计分器设计,重要任务是用数字电路模拟乒乓球比赛并能给比赛计分。

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

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

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、设计各个功能模块的电路图,加上原理说明。

数电课设乒乓球游戏机电路设计

数电课设乒乓球游戏机电路设计

数电课设乒乓球游戏机电路设计引言乒乓球游戏机是一种非常受欢迎的电子游戏设备,通过模拟真实的乒乓球游戏,带给玩家极佳的游戏体验。

本文将详细介绍乒乓球游戏机的电路设计方案,包括硬件电路和软件设计,并对电路的工作原理进行了详细的分析与解释。

一、硬件电路设计1.中央处理器(CPU):采用单片机AT89S52来实现游戏机的计算和控制功能。

AT89S52是一款8051系列的单片机,具有丰富的外设接口和强大的计算能力,非常适合用于游戏机的控制处理。

2.显示屏:采用1602液晶显示屏进行游戏画面的显示。

液晶显示屏具有功耗低、分辨率高等优点,非常适合用于游戏机的显示。

3.输入设备:包括2个操纵杆和4个按钮。

操纵杆用于控制球拍的移动,按钮用于控制游戏的开始和重置等功能。

4.声音输出:采用蜂鸣器进行游戏音效的输出。

通过控制蜂鸣器的频率和占空比,可以实现不同的音效效果。

5.电源供应:采用直流电源供应电路,将市电的交流电转换为游戏机所需的直流电。

同时还需要设计适当的保护电路,以确保游戏机的正常工作和安全使用。

二、软件设计1.游戏控制:通过编程实现游戏逻辑的控制。

主要包括乒乓球的运动轨迹、球拍的移动控制和判定游戏胜负等。

2.输入处理:通过编程读取操纵杆和按钮的输入信号,实时更新球拍的位置和游戏开始、重置等状态。

3.显示处理:通过编程实现游戏画面的实时显示。

包括乒乓球的位置、球拍的位置、分数和时间等信息的显示。

4.音效控制:通过编程控制蜂鸣器的频率和占空比,实现游戏音效的输出。

根据游戏状态不同,可以播放不同的音效,增加游戏的乐趣和真实感。

三、电路工作原理在乒乓球游戏机的电路设计中,中央处理器(CPU)起着核心的作用,负责处理游戏的逻辑、控制输入输出和保护电路等。

具体工作原理如下:1.CPU通过与输入设备的接口连接,实时读取操纵杆和按钮的输入信号。

根据不同的输入信号,CPU更新球拍的位置和游戏状态。

2.CPU通过与液晶显示屏和蜂鸣器的接口连接,实时控制液晶显示屏和蜂鸣器的输出。

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

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

目录一、基本设计要求二、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系列的才支持在线编程)。

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

电子课程设计——基于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所示。

图2给出了乒乓球游戏机的原理图。

用5个发光二极管代表乒乓球,在游戏机两侧各设置二个开关,一个是发球开关,一个是击球开关。

即若A方按动发球开关时,靠近A方的第一灯亮,然后二极管由A向B逐次点亮,代表乒乓球在移动。

当过网后,B就可以击球,否则判B方失分,A方自动加分,重新发球比赛继续进行到一方计分到11分,该局结束,计分牌清零,可以开始新的一局比赛。

反之B发球时也一样。

将核心模块分俩个进程:第一个实现逻辑功能,第二个将整数记分转换为十进制数,便于译码显示;得分显示模块用七段译码器。

各个状态间的转移控制要根据要求来改变转移的状态由于设计要求实现LED灯依此从左到右,或从右到左的移动,同时球拍击球。

若击中,则球向相反方向移动,若未击中,则对方得1分。

就其功能,若要实现记分,就得用到7段数码管,考虑到硬件要求,考虑用动态扫描技术来解决。

动态扫描前要进行译码,即把记数得分的结果译码成七段码。

设计方案完全用Verilog HDL语言编写程序。

三、器件选择1、装有QuartusII软件的计算机一台。

2、EDA实验箱一个(1)7段数码显示管。

(2)5个LED灯。

(3)芯片:使用Altera公司生产的CycloneIV芯片,选用EP4CE6E22C8片。

四、功能模块1、实现整个设计的逻辑功能,当游戏开始时,先通过clr对整个系统进行清零,在输入clk上升沿有效的条件下,甲方开始发球,LED灯从距离甲方最近的一个开始闪亮,并依次向乙方移动,过了网后乙方就可以击球,若乙方击球成功,则球按原路返回,再次过网后甲方就可击球,若甲击球成功,则按以上游戏一直进行下去,若有一方击球失败或提前击球,对方在记分牌上自动记一分;当其中的一方记满11分时比赛结束,清零后可开始下一局。

2、将整数计分转换为十进制数,便于译码显示。

当甲乙双方的记分低位到达9时使低位清零,同时使高位加1,以便正确地在数码管上显示得分。

clr为乒乓球游戏清零键,af为A方发球控制键,aj接球键;bf为乙方发球控制键,bj接球键;clk为控制乒乓球行进速度的时钟信号,接50MHZ时钟信号源;shift为LED灯显示输出端,接5个LED显示灯;计分要经过译码器译码后接8位共阴极数码显示管。

Verilog HDL程序module lqq (shift,scan,seg7,clk50Mhz,clr,af,aj,bf,bj); output[4:0] shift;output[3:0] scan;output[6:0] seg7;input clk50Mhz; //50Mhz时钟信号input af; //A方发球input aj; //A方击球input bf; //B方发球input bj; //B方击球input clr; //系统复位段reg[4:0] shift; //5个LED代表乒乓球甲左乙右)reg[3:0] scan; //数码管地址选择信号reg[6:0] seg7; //7段显示控制信号(abcdefg)reg clk1,clk2;reg[3:0] a_score,b_score;reg[1:0] cnt;reg[3:0] data;reg[3:0] a_one,a_ten,b_one,b_ten;reg[23:0] count,count1;reg a,b; //A和B的控制位reg[4:0] shift_1;//-------------2hz分频--------------always@(posedge clk50Mhz)beginif(count==24'd25000)begin clk1<=~clk1;count=0;endelse begin count<=count+1;endendalways@(posedge clk1)beginif(count1==24'd250)begin clk2<=~clk2;count1=0;endelse begin count1<=count1+1;endif(cnt==2'b11)begin cnt<=2'b00;endelsebegin cnt<=cnt+1;endend//乒乓球游戏规则always@(posedge clk2)beginif(clr)begin a_score<=0;b_score<=0;a<=0;b<=0;shift_1<=0;endelsebeginif(!a&&!b&&af) //如果A发球begin a<=1;shift_1<=5'b10000;end //A的控制位置1else if(!a&&!b&&bf)begin b<=1;shift_1<=5'b00001;end //B的控制位置1 else if(a&&!b) //球从A向B移动beginif(shift_1>5'b00100) //如果没到球网B击球,则A加分beginif(bj)begina_score<=a_score+1;a<=0;b<=0;shift_1<=5'b00000;endelse //如果B一直没有接球,则A加分begin shift_1[4:0]<=shift_1[4:0]>>1;endendelse if(shift_1==5'b0)begin a_score<=a_score+1;a<=0;b<=0;endelsebeginif(bj) //如果B击球成功,则B的控制位置1,A的控制位清零begin a<=0;b<=1;endelsebegin shift_1[4:0]<=shift_1[4:0]>>1;endendendelse if(b&&!a) // 球从B向A移动beginif(shift_1<5'b00100&&shift_1!=5'b0)beginif(aj) //如果没到球网A击球,则B加分beginb_score<=b_score+1;a<=0;b<=0;shift_1<=5'b00000;endelsebegin shift_1[4:0]<=shift_1[4:0]<<1;endendelse if(shift_1==5'b0) //如果A一直没接球,则B加分begin b_score<=b_score+1;a<=0;b<=0;endelsebeginif(aj) //如果A击球成功,则A的控制位置1,B的控制位置清零begin a<=1;b<=0;endelsebegin shift_1[4:0]<=shift_1[4:0]<<1;endendendendshift<=shift_1;if(a_score==4'b1011&&!clr)begin a_score<=a_score;b_score<=b_score;endif(b_score==4'b1011&&!clr)begin a_score<=a_score;b_score<=b_score;endend//---------将A和B的计分换成BCD码---------- always@(posedge clk2)begincase(a_score[3:0])4'b0000:begin a_one<=4'b0000;a_ten<=4'b0000;end 4'b0001:begin a_one<=4'b0001;a_ten<=4'b0000;end 4'b0010:begin a_one<=4'b0010;a_ten<=4'b0000;end 4'b0011:begin a_one<=4'b0011;a_ten<=4'b0000;end 4'b0100:begin a_one<=4'b0100;a_ten<=4'b0000;end 4'b0101:begin a_one<=4'b0101;a_ten<=4'b0000;end 4'b0110:begin a_one<=4'b0110;a_ten<=4'b0000;end 4'b0111:begin a_one<=4'b0111;a_ten<=4'b0000;end 4'b1000:begin a_one<=4'b1000;a_ten<=4'b0000;end 4'b1001:begin a_one<=4'b1001;a_ten<=4'b0000;end 4'b1010:begin a_one<=4'b0000;a_ten<=4'b0001;end 4'b0011:begin a_one<=4'b0001;a_ten<=4'b0001;end default:begin a_one<=4'bx;a_ten<=4'bx;end endcaseendalways@(b_score[3:0])case(b_score[3:0])4'b0000:begin b_one<=4'b0000;b_ten<=4'b0000;end4'b0001:begin b_one<=4'b0001;b_ten<=4'b0000;end 4'b0010:begin b_one<=4'b0010;b_ten<=4'b0000;end 4'b0011:begin b_one<=4'b0011;b_ten<=4'b0000;end 4'b0100:begin b_one<=4'b0100;b_ten<=4'b0000;end 4'b0101:begin b_one<=4'b0101;b_ten<=4'b0000;end 4'b0110:begin b_one<=4'b0110;b_ten<=4'b0000;end 4'b0111:begin b_one<=4'b0111;b_ten<=4'b0000;end 4'b1000:begin b_one<=4'b1000;b_ten<=4'b0000;end 4'b1001:begin b_one<=4'b1001;b_ten<=4'b0000;end 4'b1010:begin b_one<=4'b0000;b_ten<=4'b0001;end 4'b0011:begin b_one<=4'b0001;b_ten<=4'b0001;end default:begin b_one<=8'bx;b_ten<=8'bx;end endcase//----------数码管动态扫描--------------always@(posedge clk1)begincase(cnt[1:0])2'b00:begin data<=b_one;scan<=4'b1110;end2'b01:begin data<=b_ten;scan<=4'b1101;end2'b10:begin data<=a_one;scan<=4'b1011;end2'b11:begin data<=a_ten;scan<=4'b0111;end default:begin data<=4'bx;scan<=4'bx;endendcase//----------------七段译码---------------- case(data[3:0])4'b0000: seg7[6:0]=7'h3f;4'b0001: seg7[6:0]=7'h06;4'b0010: seg7[6:0]=7'h5b;4'b0011: seg7[6:0]=7'h4f;4'b0100: seg7[6:0]=7'h66;4'b0101: seg7[6:0]=7'h6d;4'b0110: seg7[6:0]=7'h7d;4'b0111: seg7[6:0]=7'h07;4'b1000: seg7[6:0]=7'h7f;4'b1001: seg7[6:0]=7'h6f;default: seg7[6:0]=7'hx;endcaseendendmodule五、总体设计电路图硬件连接情况:af、aj、bf、bj连接实验箱上的K1、K2、K4、K5 clr连接K12作为系统复位端shift[0]……shift[4]连接实验箱上的L1、L2、L3、L4、L5scan[0]……scan[3]连接实验箱上的LED_C1 、LED_C2、 LED_C3、LED_C4seg[0]……seg[6]连接实验箱上的LED_A、LED_B、LED_C、LED_D、LED_E、LED_F、LED_G管脚分配图波形仿真图A方发球B方不接球A方发球B提前接球犯规B方发球A不接球B方发球A提前接球犯规AB僵持球实验箱连接图:六、心得体会Verilog HDL硬件描述语言打破了硬件和软件设计人员之间互不干涉的界限,可使用语言的形式来进行数字系统的硬件结构、行为的描述,直接设计数字电路硬件系统,通过编程、下载后,该芯片已经具备了原来需要使用复杂的数字电路实现的功能;这样,使用语言描述大大缩短了开发周期,减少了开发难度,并使得系统更加灵活、稳健。

相关文档
最新文档