乒乓球比赛游戏机设计
最新基于VHDL的乒乓球游戏机设计--课程设计说明书doc

最新基于VHDL的乒乓球游戏机设计--课程设计说明书
doc
一、乒乓球游戏机简介
乒乓球游戏机是一款集休闲娱乐和智力结合于一体的游戏机,它模拟
了非常真实的乒乓球比赛,采用VHDL语言实现了游戏机本身的控制系统,用户可以通过操作杆来控制屏幕上的球拍,体验乒乓球比赛的激烈对抗。
二、课程设计目标
1.了解VHDL语言的基本原理
2.掌握系统的基本结构
3.基于VHDL语言实现乒乓球游戏机的控制系统
4.通过操作杆实现游戏控制
三、课程设计内容
1.基本原理
可编程逻辑基础:必须掌握VHDL的基本原理,以及基本的数字电路
原理,包括可编程逻辑器件,基本的逻辑门,运算器,状态机等的基本知识,能够熟练编写VHDL程序,并理解其原理。
2.基本结构
设计开发PCB:根据设计需要,设计开发PCB外型,可以实现PCB组装,板载电源,实现游戏机基本功能。
3.实现控制系统
编写VHDL程序:基于VHDL语言,实现乒乓球游戏机的控制系统,主要包括实现芯片内部部件的交互,实现模拟屏幕的更新,以及实现外设的控制,如操作杆的输入。
4.游戏控制。
乒乓球游戏机EDA课程设计本

目录1 设计目旳 02 设计规定和任务 02.1设计任务 02.2设计规定 03 总体设计思绪及原理描述 04 分层次方案设计及代码描述 (2)4.1控制模块旳设计 (2)4.1.1 cornal模块分析 (2)4.1.2 cornal模块VHDL程序描述 (3)4.2送数据模块旳设计 (9)4.2.1 ch41a模块分析 (7)4.2.2 ch41a模块VHDL程序描述 (10)4.3产生数码管片选信号模块旳设计 (11)4.3.1 sel模块分析 (11)4.3.2 sel模块VHDL程序描述 (11)4.4 七段译码器模块旳设计 (13)4.4.1 disp模块分析 (13)4.4.2 disp模块VHDL程序描述 (13)4.5 顶层原理图设计 (14)5 各模块旳时序仿真图 (15)6 总结 (18)7 参照文献 (18)乒乓游戏机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段译码器。
最新基于VHDL的乒乓球游戏机设计--课程设计说明书doc

最新基于VHDL的乒乓球游戏机设计--课程设计说明书doc课程设计说明书设计目的:本课程设计的目的是设计一个基于VHDL的乒乓球游戏机。
通过该设计,可以提高学生对VHDL语言的应用能力,理解数字电路的设计原理以及掌握乒乓球游戏机的相关设计技术。
设计原理:乒乓球游戏机主要由显示模块、控制模块和逻辑模块组成。
其中,显示模块负责将乒乓球游戏界面实时显示在屏幕上,控制模块负责接收游戏操作输入并进行相应的操作控制,逻辑模块则负责处理游戏规则和判断输赢。
设计步骤:1.确定显示模块的功能:显示游戏界面包括乒乓球、球拍和边界等元素,并实现实时更新。
2.设计乒乓球的运动控制逻辑:根据乒乓球的速度和方向,通过控制模块实现乒乓球的运动控制。
3.实现球拍的控制逻辑:通过控制模块,实现对球拍的移动控制,以便玩家能够操控球拍进行游戏。
4.设计游戏规则判断逻辑:根据乒乓球与球拍的碰撞判断,判断球拍的位置和乒乓球的运动方向,并根据规则进行相应的判断判定输赢。
5.进行功能测试和调试:对设计的乒乓球游戏机进行功能测试和调试,确保其能够正常运行。
设计要求:1.采用VHDL语言进行设计,能够熟练使用VHDL语言进行数字电路的设计与实现。
2.设计的乒乓球游戏机能够实现显示游戏界面和实时更新,能够进行游戏操作并判断输赢。
3.设计的乒乓球游戏机的控制逻辑和判断逻辑要简洁明了,能够确保游戏的流畅性和真实性。
设计方案:1.显示模块:使用VGA显示模块,将游戏界面实时显示在屏幕上,包括乒乓球、球拍和边界等元素。
2.控制模块:使用按键扫描模块获取游戏操作输入,并根据输入进行相应的操作控制,控制乒乓球运动和球拍移动。
3.逻辑模块:设计碰撞判断逻辑,判断乒乓球与球拍的碰撞情况,并根据碰撞情况判断球拍的位置和乒乓球的运动方向,以及根据规则进行输赢的判断。
实现计划:1.第一周:完成功能分析和设计方案的制定,明确设计的总体思路和目标。
2.第二周:完成显示模块的设计和测试,确保游戏界面能够实时显示在屏幕上。
基于单片机的乒乓球游戏机设计方案

基于单片机的乒乓球游戏机设计1、系统方案乒乓球比赛是由甲乙双方参赛,再加上裁判的三人游戏。
乒乓球比赛模拟机是一种用发光二极管模拟乒乓球运动的电子游戏机,同时可以容纳三人玩耍。
1. 用8个LED排成一条直线,以中点为界,两边各代表参赛双方的位置。
其中一只点亮的LED指示球的当前位置。
点亮的LED依次从左到右,或从右到左移动,其移动速度应能进行调节。
2. 当球(点亮的那只LED)运动到某方德最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,即表示启动球拍击球,若击中则使球向相反方向移动,若未击中,则对方得一分。
3. 一方得分时,电路自动响铃3s,这期间发球无效,等铃声停止后方能继续比赛。
4. 设置自动计分电路。
甲乙双方各用两位数码管进行计分显示,每记满11分为1局。
最好考虑双方各10分之后,领先2分者为胜。
5. 甲乙双方各设置一个发光二极管表示拥有发球权,每得2分自动交换发球权,拥有发球权的一方发球才能有效。
2、硬件设计原理图如下:3、单片机软件设计1、首先是系统初始化:InitTimer(); //初始化定时器EA=1; //全局中断开关TR0=0;TR1=0;ET0=1; //开启定时器0ET1=1;EX0=0;EX1=0;2、中断服务程序void timer1(void) interrupt 3 //用于产生报警信号{TH1=0x4c;TL1=0x00; //50msTR1=1;count_1miao++;if(count_1miao==60){count_1miao=0;flag_1miao=1;ALAM=1;TR1=0;}}3、数码管程序/*****显示分数子程序*****/void Disp_score(void) //显示温度{P0=LEDData[scoreL/10];P2=0x7F;Delay(200);P2=0xFF;P0=LEDData[scoreL%10];P2=0xBF;Delay(200);P2=0xFF;P0=LEDData[scoreR/10];P2=0xDF;Delay(200);P2=0xFF;P0=LEDData[scoreR%10];P2=0xEF;Delay(200);P2=0xFF;}4、核心算法程序if((start==0)&&(run==0)&&flag_1miao==1) //停止状态下,控下start键{Disp_score(); //调用数码管显示{if(start==0) //开始按键按下{if(((scoreL==11)&&(scoreR<10))||((scoreR==11)&&(s coreL<10))||((scoreL>11)&&(scoreL-scoreR==2))||((scoreR>11)&(scoreR-scoreL==2)))// 判断左右方到11,另一方小于10,或者大于12,两方差大于2,这局结束{TR1=0;ALAM=1;scoreL=0;scoreR=0;}run=1; // 运行标志位置1jiqiu_l=0;jiqiu_r=7;zongjiqiushu=0;if((scoreL+scoreR)%4<=1) //所得分数和4取余,(比如1+1和为2和4取余余数为2大于1)余数小于1就是左侧发球,大于一就是右侧发球,就是每侧发球两次,L_R=0;elseL_R=1;if(L_R==0){countt0=0;P1=PPQdata[0];EX0=1;EX1=0;}else{countt0=7;P1=PPQdata[7];EX0=0;EX1=1;}}}}4、proteus仿真设计Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。
基于VHDL的乒乓球游戏机设计--课程设计说明书

基于VHDL的乒乓球游戏机设计--课程设计说明书
一、背景介绍
游戏是世界上最受欢迎的娱乐形式之一,它能够激发人们的学习兴趣,增强他们的积极性和自信心。
此外,游戏能够让用户有趣地获得知识和乐趣,从而增进了他们的思维能力。
在促进个人发展和社会发展的同时,乒
乓球游戏也是一个有趣的游戏,游戏机可以随时随地为用户提供游戏,满
足用户的需求。
二、设计目标
本课程设计的目标在于使用VHDL设计一个基于乒乓球游戏的游戏机,游戏双方的玩家可以分别操作乒乓球机器人,以得分。
该游戏机必须具备
实时检测玩家输入的功能,当玩家输入指令时,游戏机钟能够及时响应,
从而实现玩家的要求,从而达到实现游戏功能的目的。
三、VHDL设计内容
1.乒乓球机器人控制系统:此系统使用VHDL编程,对乒乓球机器人
的运动进行控制,控制机器人的移动方向、速度等,使乒乓球机器人能够
按照玩家的输入运动。
2.控制芯片:主控芯片采用VHDL语言编程,实现控制乒乓球机器人
的运动方向和速度的控制,使乒乓球机器人按照玩家的输入运动,从而实
现游戏机功能的实现。
乒乓球比赛游戏机设计

乒乓球比赛游戏机设计引言:乒乓球作为一项受广大群众喜爱的体育运动,已经有了很长的历史。
而如今,电子游戏也成为了人们娱乐生活中不可或缺的一部分。
本文将设计一种乒乓球比赛游戏机,使玩家能够在游戏中体验到真实的乒乓球比赛的乐趣。
一、功能设计:1.游戏模式选择:玩家可根据自己的喜好选择不同的游戏模式,包括单人对战、双人对战和网络对战等。
2.游戏难度设置:根据玩家的水平和喜好,设置不同的游戏难度,包括初级、中级、高级等。
3.球拍控制:玩家可以通过操控游戏机上的球拍进行比赛。
球拍可以根据玩家的需求调整高度和角度,以适应不同的球速和方向。
4.球速控制:游戏机可以通过设置不同的球速,提供给玩家不同的游戏体验。
玩家可以根据自己的能力和喜好选择适合自己的球速。
5.比赛计分:游戏机能自动记录比赛得分,并显示在游戏界面上,方便玩家随时了解比赛进展和成绩。
6.球拍震动:当球与球拍碰撞时,游戏机可以根据碰撞力度和方向产生相应的震动,增加游戏的实际感受。
7.球拍灵活性:球拍可以根据玩家的想法和需要进行调整,如增加球拍的长度、改变球拍的形状等,以提供更好的游戏体验。
8.画面显示:游戏机设计高清晰度的屏幕,使玩家能够清晰地看到球拍和球的位置和轨迹。
二、外观设计:1.外形简洁:游戏机整体设计简洁大方,外形小巧,方便携带和存放。
2.球网模拟:在游戏机的顶部或侧面,设置一个透明的球网,使玩家能够更直观地了解球拍与球的碰撞情况。
3.流线型设计:球拍的外形设计流线型,增加球拍的稳定性,提高球拍的灵活性。
4.舒适的握把:球拍的握把设计人体工程学,提供舒适的握持感,减轻玩家的疲劳感。
5.球与球拍颜色对比:球和球拍的颜色进行明确的对比,以便玩家更好地观察球的位置和轨迹。
三、技术实现:1.传感器技术:通过在球拍上安装传感器,可以准确检测球拍与球的碰撞力度和方向,并传输给游戏机进行处理。
2.碰撞检测算法:游戏机使用精确的碰撞检测算法,能够准确判断球与球拍的碰撞情况,并根据情况做出相应的反应。
乒乓球游戏机课程设计

乒乓球游戏机课程设计一、课程目标知识目标:1. 学生理解乒乓球游戏机的基本结构和工作原理,掌握相关电子元件的功能和连接方式。
2. 学生掌握编程控制乒乓球游戏机的技能,能够运用所学知识编写程序,实现乒乓球游戏机的运行和交互。
3. 学生了解乒乓球游戏机在现实生活中的应用,认识到科技与日常生活的紧密联系。
技能目标:1. 学生能够运用所学的电子知识和编程技能,独立完成乒乓球游戏机的搭建和编程。
2. 学生能够在团队协作中发挥自己的专长,共同解决制作过程中遇到的问题,提高团队协作能力。
3. 学生通过动手实践,培养创新思维和问题解决能力。
情感态度价值观目标:1. 学生培养对科学技术的兴趣和好奇心,激发学习电子和编程的热情。
2. 学生在学习过程中,培养坚持不懈、勇于挑战的精神,增强自信心。
3. 学生通过团队协作,学会尊重他人、沟通合作,培养良好的团队精神和人际交往能力。
4. 学生认识到科技发展对生活的影响,激发为我国科技创新贡献力量的责任感。
课程性质:本课程为实践性较强的综合课程,结合电子、编程和团队合作等元素,旨在培养学生的动手能力、创新思维和团队协作能力。
学生特点:六年级学生对电子和编程有一定的基础,好奇心强,喜欢动手操作,具备一定的团队合作能力。
教学要求:注重理论与实践相结合,关注学生的个体差异,提高学生的动手实践能力和创新精神,培养团队协作能力。
在教学过程中,将目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 电子元件知识:介绍乒乓球游戏机中涉及的电子元件,如电源、微控制器、传感器等,结合课本相关知识,让学生了解各元件的作用和连接方式。
2. 编程技能:教授学生使用编程软件,如Arduino或Scratch,编写控制乒乓球游戏机的程序。
内容包括基本语法、逻辑控制、传感器数据读取等。
3. 乒乓球游戏机结构:讲解乒乓球游戏机的整体结构,分析各部分的功能和相互关系,指导学生进行实际搭建。
4. 团队合作:组织学生分组,进行团队协作,共同完成乒乓球游戏机的制作,培养学生团队协作能力。
基于VHDL的乒乓球游戏机设计

基于VHDL的乒乓球游戏机设计乒乓球游戏机是一种基于硬件设计的电子游戏机,它模拟了乒乓球比赛的规则和玩法。
本文将介绍一个基于VHDL(Very High Speed Integrated Circuit Hardware Description Language)的乒乓球游戏机设计。
首先,我们需要确定游戏机的硬件组成和功能。
一个基本的乒乓球游戏机包括以下组件:1.显示屏:用于显示游戏画面和分数。
2.键盘:用于输入玩家控制信号,例如乒乓球拍的移动方向和发球。
3.乒乓球拍:控制球的移动方向。
4.乒乓球:游戏的主要元素,通过球拍反弹到对手的场地。
5.游戏逻辑控制:用于判断球拍和球的移动逻辑,以及计分和游戏结束的判定。
在VHDL中,我们可以将这些组件抽象为各种信号和实体(entity)。
下面是一个乒乓球游戏机的VHDL设计示例:```vhdl--乒乓球游戏机VHDL设计entity PongGame isportclk : in std_logic; -- 时钟信号reset : in std_logic; -- 复位信号ball_x : out std_logic_vector(7 downto 0); -- 球的X坐标ball_y : out std_logic_vector(7 downto 0); -- 球的Y坐标paddle_left_y : in std_logic_vector(7 downto 0); -- 左边乒乓球拍的Y坐标paddle_right_y : in std_logic_vector(7 downto 0); -- 右边乒乓球拍的Y坐标score_left : out std_logic_vector(7 downto 0); -- 左边玩家的分数score_right : out std_logic_vector(7 downto 0) -- 右边玩家的分数end entity PongGame;architecture rtl of PongGame is--在这里定义各种信号和内部变量begin--在这里编写游戏逻辑和硬件连接end architecture rtl;```在architecture部分,我们可以编写游戏逻辑和硬件连接的代码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1 引言 01.1设计背景 01.2VHDL简介 01.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可以准确地建立硬件电路模型,因为它支持惯性延迟和传输延迟。
VHDL的数据类型很丰富,支持标准定义的数据类型,当标准定义的数据类型不能满足用户的需求时,用户可以自己定义的所需要的数据类型,增加了设计的自由度。
(5)语法规范,易于共享。
当把用VHDL编写的代码文件看作是程序时,它可以作为设计人员之间的交流内容;当把它看作是文档时,可以作为签约双方的合同文本。
VHDL易于共享的特点,使得大规模的协作开发容易实现。
同时,这些特点也促进了VHDL的发展和完善。
综上所述,VHDL有很多其他的硬件描述语言所不具备的优点。
但是,VHDL 仍然存在一些缺点,主要是3个方面。
(1)要求设计者对硬件电路知识甚至是芯片结构方面的知识了解较多。
应该摆脱一般的高级语言程序设计思路,因为在电路世界里的事件很多是并行发生的,并且硬件电路系统内部的模块可以是互相独立的,也可以是互为因果的,所以,在用VHDL设计硬件电路时应摆脱一般的高级语言程序设计思路。
在设计电路时,应先构思电路,然后才能描述。
(2)不能进行太抽象的系统描述。
因为EDA工具无法综合抽象性太强的系统,故用VHDL描述系统电路时不能太抽象。
目前的VHDL很难综合实际的硬件电路,只能适用于系统建模。
(3)不能描述模拟电路。
对于模拟电路而言,VHDL并不是一种理想的硬件描述语言。
但可以预见,未来硬件描述语言的发展方向是模拟电路和数模混合电路的描述方式。
1.3 QuartusⅡ简介2 乒乓球比赛游戏机的设计2.1 系统设计要求设计一个由甲乙双方参赛,有裁判的三人乒乓球游戏机。
用8个(或更多个)LED排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的LED指示球的当前位置点亮的LED依此从左到右,或从右到左,其移动速度应能调节。
当“球”(点亮的那只LED)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,既表示启动球拍击球,若未击中,球掉出桌外,则对方得一方。
设置自动记分电路,甲乙双方各用两位数码管进行记分显示,每记满11分为1局。
甲乙双方各设一个发光二极管表示拥有发球权,每隔两次自动交换发球权,拥有发球权的一方发球才有效。
系统框图如图2-1所示:图2-1 乒乓球比赛游戏机系统框图2.2 设计思路此设计问题可分为游戏控制模块,加减计数模块,译码模块,甲乙方得分显示模块四部分。
设置甲乙双方击球脉冲信号int1/int2,一方的击球信号使加/减计数器加法计数,则另一方的击球信号就使加/减计数器减法计数,译码模块输出端Y1-Y8接LED模拟乒乓球的轨迹。
经控制模块实现移位方向的控制,真值表2-2所列。
设置发球权拥有显示信号s1、s2。
控制模块使每两次交换发球权。
加/减控制信号U/D由乒乓球到达Y8、Y1和击球信号int1、int2及发球权拥有信号s1、s2共同产生,真值表如表2-3所示。
当球到达Y8或Y1时,参赛者没有及时击中,则球掉出桌外,加/减计数模块停止计数,对方得一分。
设置捡球信号reset1,通过加/减计数模块的异步置数端实现捡球。
当甲方拥有发球权时捡球信号将球放到Y1,乙方拥有发球权时将球放到Y8.在控制模块对甲乙双方的得分进行检测,只要一方的得分达到11,则一局结束,设置裁判员复位信号reset.在每局结束后将双方得分清零。
由调节晶振产生的时钟脉冲信号的频率,可以调节球的运动速度。
硬件系统示意图如下所示图2-4 硬件系统示意图3 乒乓球比赛游戏机的实现3.1 乒乓球比赛游戏机的顶层原理图图3-1 顶层原理图原理图中输入部分分别是:复位按键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],在数码管上显示了甲乙两个人的分数。
3.2 系统各功能模块的实现3.2.1 比赛控制模块图3-2 比赛控制模块元件框图按下startbutton按键之后游戏开始,当按下serve0时甲发球,8个一排的LED灯从左向右移动(从1到8),当移动到第八个灯时按下int2按键代表乙击中,则乙得1分,提前或未来的及击球则甲得分。
当按下serve1时乙发球从右向左移动,当移动到第一个灯时按下int1代表甲击中球,甲得1分,提前或未来的击球及则乙得分。
3.2.2 记分模块图3-3 记分模块元件框图当选择好的信号binaryin[4..1]进入mydecoder之后,相应的数据会选择到相应的信号中,并且通过bcdout1[4..1]和bcdout2[4..1]输出相应的分数在两位数码管上的显示数字。
bcdout1为十位数,bcdout2为个位数。
3.2.3 数码管显示模块图3-4 显示模块框图数码管显示模块主要是由两个模块组成分别为setime以及deled这两个模块组成:setime模块主要是将输入的分数进行动态扫描,显示到每一位数码管的位选上,通过高速的扫描后会将每一位选手的分数很清晰的显示在数码管上。
deled模块是一个译码器的模块译码器的译码对照表3-5如下所示:表3-5 译码器的译码对照表显示的数字BCD编码七段共阳数码管0 00001 00012 00103 00114 01005 01016 01107 01118 10009 1001X XXXX在程序中只考虑0000-1001(即0-9)的情况,将其转化为相应的七段显示器的码字,其他情况不予考虑。
4 各个模块的仿真以及系统仿真、分析4.1 比赛控制模块仿真波形图4-1 比赛控制模块4.2 记分模块仿真波形图图4-2记分模块仿真波形图表4-3 对应分数的数码管显示binaryin bcdout1 bcdout20000 0000 00000001 0000 00010010 0000 00100011 0000 00110100 0000 01000101 0000 01010110 0000 01100111 0000 01111000 0000 10001001 0000 10011010 0001 00001011 0001 0001在图4-2中可以看出当得分为2(0010)分时对应的两位数码管则会显示为02(bcoudt1:0000,bcoudt2:0010),当分数超过11分时数码管的显示全为为00。
表4-3为具体的分数对应的数码管显示。
4.3 管脚锁定在验证出乒乓球比赛游戏机系统的功能之前,需要清楚实验箱与各个信号之间的对应关系,参照资料得出本设计中各引脚的对应情况如下:图4-4 各引脚的对应情况4.4 系统的波形仿真图4-5所示为甲方发球,在恰当的时候乙方接到球,当球回到甲方时,甲方又接到球,但乙方再也没有接到球的仿真波形。
图4-5 乒乓球仿真波形一图4-6所示为甲方两次发球,乙方没有接到球,甲方得到2分的仿真波形图。
图4-6 乒乓球仿真波形二图4-7所示为甲方发球,乙方提前击球的情况,此时,甲方得一分。
图中还显示了甲方发球,乙方在规定的时刻没有接到球的情况,此时,甲方又得一分。
图4-7 乒乓球仿真波形三图4-8所示为当清零信号按下时,得分清零,又开始新一局游戏图4-8 乒乓球仿真波形四4.5 显示结果的几种情况图4-9 验证结果1图4-10 验证结果2图4-11 验证结果35 总结5.1 设计制作过程中遇到的问题及解决方案1.VHDL语法使用不规范:当我们编写软件程序的时,遇到了编译错误。