东北石油大学。
课程设计。2024年 3 月8日。
东北石油大学课程设计任务书。
课程 eda技术课程设计。
题目乒乓球比赛游戏机。
专业姓名学号
主要内容、基本要求、主要参考资料等。
主要内容:设计一个乒乓球游戏机,比赛由甲乙双方和裁判3人构成,能模拟比赛的基本过程和规则并能自动裁判和记分。
基本要求:1、设计一个由甲、乙双方参赛,有裁判的3人乒乓球游戏机。
2、用8个(或更多个)led排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的led指示球的当前位置,点亮的led依此从左到右,或从右到左,其移动的速度应能调节。
3、当“球”(点亮的那只led)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,即表示启动球拍击球。若击中,则球向相反方向移动;若未击中,则对方得1分。一方得分时,电路自动响铃3秒,这期间发球无效,等铃声停止后方能继续比赛。
4、设置自动记分电路,甲、乙双方各用2位数码管进行记分显示,每计满21分为1局。
5、甲、乙双方各设一个发光二极管,表示拥有发球权,每隔5次自动交换发球权,拥有发球权的一方发球才有效。
主要参考资料:
1] 潘松著。eda技术实用教程(第二版). 北京:科学出版社,2005.
2] 康华光主编。电子技术基础模拟部分。 北京:高教出版社,2006.
3] 阎石主编。数字电子技术基础。 北京:高教出版社,2003.
完成期限 2013.3.4
指导教师。专业负责人。
2024年 3月8日。
一、设计思想。
1、基本原理。
乒乓球比赛游戏机的设计的原理是应用可编程逻辑器件fpga芯片为控制核心,附加少量的外围电路,采用vhdl语言编程实现设计而成。此游戏机为由甲,乙双方参赛,裁判参与的3人乒乓球游戏机。用8个led排成一条直线,以中点为界,两边各自代表参赛双方的位置,其中一只点亮的led指示球的当前位置,点亮的led依此从左到右或从右到左。
当“球”(点亮的那只led)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,即表示启动球拍击球。若击中,则球向相反方向移动;若未击中,则对方得1分。一方得分时,电路自动响铃3秒,这期间发球无效,等铃声停止后方能继续比赛。
设置自动记分电路,甲、乙双方各用2位数码管进行记分显示,每计满21分为1局。游戏机的甲、乙双方各设一个发光二极管,表示拥有发球权,每隔5次自动交换发球权,拥有发球权的一方发球才有效。以此,来实现乒乓球比赛游戏机的游戏功能。
2、设计框图。
图1乒乓球比赛游戏系统设计框图。
该乒乓球比赛游戏系统由裁判端、选手端、控制端、译码器、数码管显示端、时钟及分频器、led发光二极管球台组成。
二、设计步骤和调试过程。
1、模块设计和相应模块**。
该乒乓球比赛游戏机主要包括:乒乓球游戏机外接端口模块设计,比赛状态进程模块设计,译码分数显示模块的设计以及构造体模块设计。
1)乒乓球游戏机外接端口设计
端口设计主要是指定义乒乓球游戏机的控制芯片外接输出与输入相连接的端口。其中包括:复位端口reset,它的作用是当系统出现错误或者无法恢复初始状态时使其复位;甲、乙发球输入端为pat1和pat2,逻辑‘1’分别表示甲方和乙方的发球,逻辑‘0’分别表示甲乙未发球;甲乙击球输入端hit1和hit2,逻辑‘1’分别表示甲击球和乙击球,逻辑‘0’分别表示甲乙未击球;比赛开始按钮start,逻辑‘1’表示开始游戏;逻辑‘0’表示不可以开始游戏;时钟输入端口clk。
发光二极管的输出端,逻辑‘1’表示亮,逻辑‘0’表示暗;甲乙各两个译码器。程序如下:
library ieee;
use use
use --引用必要的库函数和包集合。
entity ppyouxi is --实体名为ppyouxi
port(reset:in std_logic;
clk:in std_logic;
start:in std_logic;
pat1,pat2:in std_logic_vector(1 to 2);
hit1,hit2:in std_logic; -定义各输入输入端口
light:out std_logic_vector(1 to 8); 控制8个发光二极管的输出端口。
write11,write12,write21,write22:out std_logic_vector(1 to 7); 4 个用于控制 4 个 7 段译码器的输出端口
end ppyouxi;
2)比赛状态进程模块设计
比赛状态进程包括七个状态,分别是waitpat, lighton1, ball2, allow2,lighton8,ball1,和allow1它们代表的具体数值依次是0到6。在波形模拟图中是用数值来表示状态的。状态进程程序如下:
process(clk) -clk作为敏感信号触发进程
begin
if reset='1' then --异步置位。
i<=0;count1<="00000";count2<="00000";
elsif clk'event and clk='1' then
if count1="10101"or count2="10101"then
i<=0;count1<="00000";count2<="00000";
elsif start='0' then
i<=0;count1<="00000";count2<="00000";
else case state is
when waitpat=> 进程处于等待发球状态。
case serve is
when "10"=>i<=1;state<=lighton1;
when "01"=>i<=8;state<=lighton8;
when "11"=>i<=0;
when others=> i<=0;
end case;
when lighton1=> 进程处于第一盏灯亮状态。
i<=2
if hit2='1' then
i<=0;
count1<=count1+1;state<=waitpat;
elsestate<=ball2;
end if;
when lighton8=> 进程处于第八盏灯亮状态
i<=7;
if hit='1' then
i<=0;
count2<=count2+1;state<=waitpat;
elsestate<=ball1;
end if;
when ball1=> 进程处于球向乙移动状态。
if hit1='1' then
i<=0;
count2<=count2+1;state<=waitpat;
elsif i=2 then i<=1;
state<=allow1;
else i<=i-1;
end if;
when ball2=> 进程处于球向乙移动状态
if hit2='1'then
i<=0;
ount1<=count1+1;state<=waitpat;
elsif i=7 then i<=8;
state<=allow2;
else i<=i+1;
end if;
when allow1=> 进程处于允许甲击球状态
if hit1='1' then i<=2;
state<=ball2;
else count2<=count2+1;i<=0;
state<=waitpat;
end if;
when allow2=> 进程处于允许乙击球状态
if hit2='1'then i<=7;state<=ball1;
else count1<=count1+1;i<=0;
state<=waitpat;
end if;
end case;
end if;
end if;
end process;
3)译码分数显示模块
该模块由七段译码器组成,它是由7段发光二极管组成的用于显示数字的器件,称作记分译码器(mudecoder)。而状态进程中的记分是由5位二进制码来表示的,即count1和count2。以下程序就是实现从5位二进制码转换成七段译码显示。
library ieee;
use use
use entity mudecoder is —译码器实体定义。
port(binaryin:in std_logic_vector(1 to 5); 5位二进制码的输入端口。
bcdout1:out std_logic_vector(1 to 7); 七段译码器输出端口
bcdout2:out std_logic_vector(1 to 7)
end mudecoder;
architecture m of mudecoder is
signal tembinaryin:std_logic_vector(1 to 5);
beginprocess(binaryin)
begintembinaryin<=binaryin;
case tembinaryin is将二进制码转换成七段译码。
when"00000"=>bcdout1<="1111110";bcdout2<="1111110";
EDA课程设计
题目一 数字钟设计 学号1 15 一 实验目的。学习并掌握数字钟的原理 设计方法。二 实验内容。计数始终由模60秒计数器 模60分计数器 模24小时计数器 报时模块 分 时设定模块及输出显示模块构成。可以采用同步计数器或异步计数器设计方法。三 实验要求。计时范围为0小时0分0秒至23小时59分59秒...
eda课程设计
哈尔滨工业大学 威海 信电学院电子信息工程。一 软硬件介绍。1软件部分介绍。1.1 quartus ii 是altera公司的综合性pld fpga开发软件,支持原理图 vhdl veriloghdl以及ahdl altera hardware description language 等多种设计输...
eda课程设计
目录。1 引言 2 1.1 课程设计的目的与任务 2 1.2 课程设计的内容 2 1.3课程设计仪器设备 2 1.4 课程设计的题目 2 1.5 方案的选择 2 2设计方案 3 2.1 设计原理 3 2.2各功能模块的原理及其源程序 3 2.2.1控制模块 3 2.2.2分频模块 4 2.2.3计时...