2022年乒乓球比赛游戏机设计总结报告 .docx
精品_精品资料_现代电子与系统设计总结报告工程名称: 乒乓球竞赛嬉戏机班 级: 物科院 1005姓 名: 周* 沈*学 号: 071005* 071005*指导老师: 倪 *提交日期: 2022/12/23可编辑资料 - - - 欢迎下载精品_精品资料_封面 1一、设计要求3二、设计的具体实现 .31、系统框图 .32、甲乙方得分显示模块43、加减计数模块 64、译码模块 85、掌握模块 96、核心问题 12三、结果 分析15四、附件 161、完整电路图 162、各个自制元件的VHDL程序 16可编辑资料 - - - 欢迎下载精品_精品资料_一、设计要求设计一个乒乓球竞赛嬉戏机(1)设计一个由甲乙双方参与,有裁判的三人乒乓球嬉戏机.( 2)用 8 个(或更多个) LED排成一条直线,以中点为界,两边各代表参赛双方位置置,期中一只点亮的LED 指示球的当前位置,点亮的LED 依次从左到右,或从右到左, 其移动的速度应能调剂.( 3)当 “球”(点亮的那支LED )运动到某方的最终一位时,参赛者应能坚决的按下位于自己一方的按钮开关,即表示启动球拍击球,如击中就球向相反方向移动,如未击中,球 掉出桌外,就对方得一分.(4) 设计自动计分电路,甲乙双方各用两位数码管进行计分显示,每记满11 分为 1 局.(5) 甲乙双方各设一个发光二极管表示拥有发球权,每隔2 次自动交换发球权,拥有发球权的一方发球才有效.(6)其他 .可编辑资料 - - - 欢迎下载精品_精品资料_二、设计的详细实现1、系统框图此系统框图分为掌握模块,加/减计数模块,译码显示模块和甲乙方得分显示模块.2、甲乙方得分显示模块甲乙双方各用两位数码管进行计分显示,通过掌握模块加以掌握甲乙得分的计数:.图形:jifenresetclkq3.0instVHDL语言:LIBRARY ieee .USE ieee.std_logic_1164.all .use ieee.std_logic_unsigned.all .可编辑资料 - - - 欢迎下载精品_精品资料_ENTITY jifen ISPORT END jifen .reset : IN STD_LOGIC .clk : IN STD_LOGIC.q : buffer STD_LOGIC_VECTOR3 downto 0可编辑资料 - - - 欢迎下载精品_精品资料_xianshia3.0y16.0y06.0inst1甲乙得分的显示: 图形:VHDL语言:LIBRARY ieee .USE ieee.std_logic_1164.all .use ieee.std_logic_unsigned.all .ENTITY xianshi ISPORT 可编辑资料 - - - 欢迎下载精品_精品资料_.END xianshi .a : IN STD_LOGIC_VECTOR3 downto 0. y1 : OUT STD_LOGIC_VECTOR6 downto 0.y0 : OUT STD_LOGIC_VECTOR6 downto 0可编辑资料 - - - 欢迎下载精品_精品资料_ARCHITECTURE xianshi_architecture OF xianshi IS BEGINprocessa begin可编辑资料 - - - 欢迎下载精品_精品资料_甲乙方得分显示模块图形输入为:jishu3、通过ud sresetd3 d2 d1 d0clkq3.0加减计数模块U / D 的取值实现加或者减的计数.图形:inst2可编辑资料 - - - 欢迎下载精品_精品资料_说明:ud= 1时,计数器进行减计数. ud= 0时,计数器进行加计数. s= 0时,计数器正常工作. s= 1时,计数器停止工作. reset=时1,计数器正常计数. reset=时0,计数器置数操作 .VHDL语言:LIBRARY ieee .USE ieee.std_logic_1164.all .use ieee.std_logic_unsigned.all .可编辑资料 - - - 欢迎下载精品_精品资料_ENTITY jishu ISPORT .END jishu .ud : IN STD_LOGIC.s : IN STD_LOGIC .reset : IN STD_LOGIC .d3,d2,d1,d0 : IN std_logic .clk : IN STD_LOGIC.q : buffer STD_LOGIC_VECTOR3 downto 0可编辑资料 - - - 欢迎下载精品_精品资料_ARCHITECTURE jishu_architecture OF jishu IS BEGINprocessud,s,reset,clkbeginifreset='0' then q3<=d3 .q2<=d2 .q1<=d1 .q0<=d0 .可编辑资料 - - - 欢迎下载精品_精品资料_end if .elseq<=q .end if .end if .end if .end process.END jishu_architecture .4、译码模块通过加减计数得到译码器输出.时钟加/ 减掌握Ud计数器输出译码器输出clkQ3 Q2 Q1 Q0Y8 Y7 Y6 Y5 Y4 Y3 Y2 Y1加减计数、译码显示真值表:可编辑资料 - - - 欢迎下载精品_精品资料_000010000000100010000000100001100000100001000000100000101000100000011000100000001110100000001000100000001011101000000101100010000010101000100001010000001000100110000010010010000000101000100000001译码图形:yimaa3.0y9.0inst3VHDL语言:LIBRARY ieee .USE ieee.std_logic_1164.all .use ieee.std_logic_unsigned.all .可编辑资料 - - - 欢迎下载精品_精品资料_ENTITY yima ISPORT .END yima .a : IN STD_LOGIC_VECTOR3 downto 0.y : OUT STD_LOGIC_VECTOR9 downto 0可编辑资料 - - - 欢迎下载精品_精品资料_ARCHITECTURE yima_architecture OF yima IS BEGINprocessa begin case a iswhen "0000" => y<="0000000001".when "0010" => y<="0000000100".when "0001" => y<="0000000010".可编辑资料 - - - 欢迎下载精品_精品资料_5、掌握模块1、设置甲乙两方击球脉冲信号in1 、in2,甲方击球信号使得加减计数器加法计数,乙方击球信号使得加减计数器减法计数,译码模块输出端Y1-Y8接 LED模拟乒乓球的轨迹, Y0 、Y9 为球掉出桌外信号,掌握模块实现移位方向的掌握.2、设置发球权拥有显示信号S1、S2,掌握模块使每两次交换发球权.3、设置捡球信号reset1,通过加减计数模块的异步置数端实现捡球,当甲方拥有发球权时,捡球信号将球放到Y1 .乙方拥有发球权时,捡球信号将球放到Y8.4、对甲、乙双方的得分进行检测,只要有一方的得分达到11,就一局终止 .5、设置裁判复位信号reset,在每局终止后将双方得分清零.掌握模块与译码模块和加减计数模块的连接:部分掌握模块中 VHDL 语言及图形:1、jishu2可编辑资料 - - - 欢迎下载精品_精品资料_LIBRARY ieee .USE ieee.std_logic_1164.all .jishu2clkq1.0inst4xuanzeaq1 q2qinst5use ieee.std_logic_unsigned.all .可编辑资料 - - - 欢迎下载精品_精品资料_ENTITY jishu2 ISPORT downto 0.END jishu2 .clk : IN STD_LOGIC.q:bufferSTD_LOGIC_VECTOR1可编辑资料 - - - 欢迎下载精品_精品资料_ARCHITECTURE jishu2_architecture OF jishu2 IS BEGINprocessclk beginifclk'event and clk='1' then ifq="11" thenq<="00" .elseq<=q+1 .end if .end if .end process.2、xuanzeLIBRARY ieee .USE ieee.std_logic_1164.all .use ieee.std_logic_unsigned.all .ENTITY xuanze ISPORT 可编辑资料 - - - 欢迎下载精品_精品资料_.END xuanze .a : IN STD_LOGIC .q1: in std_logic .q2: in std_logic .q : out STD_LOGIC可编辑资料 - - - 欢迎下载精品_精品资料_ARCHITECTURE xuanze_architecture OF xuanze IS BEGINprocessa beginifa='1' then q<=q2 .else可编辑资料 - - - 欢迎下载精品_精品资料_3、dchufaqi可编辑资料 - - - 欢迎下载精品_精品资料_LIBRARY ieee .USE ieee.std_logic_1164.all .use ieee.std_logic_unsigned.all .ENTITY dchufaqi ISPORT d : IN STD_LOGIC .clk : IN STD_LOGIC.q : buffer STD_LOGIC. END dchufaqi .ARCHITECTURE dchufaqi_architecture OF dchufaqi IS BEGINprocessclk beginifclk'event and clk='0' then q<=d .elseq<=q .end if .end process.END dchufaqi_architecture .dchufaqidqclkinst6可编辑资料 - - - 欢迎下载精品_精品资料_可编辑资料 - - - 欢迎下载精品_精品资料_6、yanshi核心问题可编辑资料 - - - 欢迎下载精品_精品资料_1 、 由于试验箱上的频率为50MHz ,译码器输出变可编辑资料 - - - 欢迎下载精品_精品资料_化太clk y24.0快,显示在试验箱上的8 个 LED 闪亮变化太可编辑资料 - - - 欢迎下载精品_精品资料_快 , 以致无法识别 .因此需要降低频率后在接到加减计 数 模块的 clk 端.图形:inst7可编辑资料 - - - 欢迎下载精品_精品资料_VHDL语言:library ieee .use ieee.std_logic_1164.all.use ieee.std_logic_unsigned.all .可编辑资料 - - - 欢迎下载精品_精品资料_entity yanshi is port.end yanshi.clk: in std_logic .y: buffer std_logic_vector24 downto 0可编辑资料 - - - 欢迎下载精品_精品资料_architecture behave of yanshi isbegin processclk beginifclk'event and clk='1' thenify="1000000000000000000000000" or y="1111111111111111111111111" then y<="0000000000000000000000000" .elsey<=y+1 .end if .end if .end process.end behave.2、在数码管上动态显示甲乙双方的得分.动态显示模块:可编辑资料 - - - 欢迎下载精品_精品资料_1、dongtaixianshi1 的 VHDL 语言:library ieee .use ieee.std_logic_1164.all.use ieee.std_logic_unsigned.all .entity dongtaixianshi1 is portclk: IN STD_LOGIC.y: buffer std_logic_vector1 downto 0.end dongtaixianshi1 .architecture behave of dongtaixianshi1 is beginprocessclk beginifclk'event and clk='1' thenify="11" then y<="00" .elsey<=y+1 .end if .end if .end process.end behave.可编辑资料 - - - 欢迎下载精品_精品资料_2、dongtaixianshi2 的 VHDL 语言:library ieee .use ieee.std_logic_1164.all.use ieee.std_logic_unsigned.all .entity dongtaixianshi2 is porta: in std_logic_vector1 downto 0 .yjia1,yjia0,yyi1,yyi0: in STD_LOGIC_VECTOR6 downto 0.y: out std_logic_vector6 downto 0 .pianxuan: out std_logic_vector3 downto 0.end dongtaixianshi2 .architecture behave of dongtaixianshi2 is beginprocessa begin case a iswhen "00" => y<=yjia1.pianxuan<="0111" .when "01" => y<=yjia0.pianxuan<="1011" .when "10" => y<=yyi1.pianxuan<="1101" .when OTHERS => y<=yyi0.pianxuan<="1110" .end case.end process.end behave.三、结果分析注:本试验实行实际测试的方法.采纳 Altera 新一代的 MAX 器件 EPM570T100C5.程序下载方法采纳ByteBlaster.1、安排引脚:符号安排引脚名称备注in1pin_27K201选手甲,按下即为击球.in2pin_30K204选手乙,按下即为击球.resetpin_33S205裁判,拨盘开关拨到左边即为将双方得分清零.clkpin_62CLK时钟信号 .reset1pin_34S206裁判,拨盘开关先拨到左边后拨到右边即为分y18pin_50D208配发球权 .Y18.1 连到试验箱的8可编辑资料 - - - 欢迎下载精品_精品资料_y17pin_49D207个 LED. 当 Y18 亮时,y16pin_48D206要 求 乙 迅 速 击 球 , 当y15pin_47D205Y11 亮,要求甲快速击y14pin_42D204球. 如击中,点亮的LEDy13pin_41D203会依次从左到右或从右y12pin_40D202到左.如未击中,球跳y11pin_38D201出桌外,对方得一分 .y6pin_81ay5pin_82by4pin_83cy3pin_84dy2pin_85e显示计分y1pin_86fy0pin_87gpianxuan3pin_91S0pianxuan2pin_92S1pianxuan1pin_99S6pianxuan0pin_100S72、分析:(1)经测试,完全符合要求.( 2)上述设计的乒乓球竞赛嬉戏机用到了自下而上的层次化设计方法,用到了VHDL语言设计输入方法和原理图设计输入方法.(3)由调剂晶振产生的时钟脉冲信号的频率,可以调剂球的运动速度.四、附件1、完整电路图可编辑资料 - - - 欢迎下载精品_精品资料_2、各个自制元件的VHDL程序(1) dchufaqiLIBRARY ieee .USE ieee.std_logic_1164.all .use ieee.std_logic_unsigned.all .ENTITY dchufaqi ISPORT d : IN STD_LOGIC .clk : IN STD_LOGIC.q : buffer STD_LOGIC. END dchufaqi .ARCHITECTURE dchufaqi_architecture OF dchufaqi IS BEGINprocessclk beginifclk'event and clk='0' then q<=d .elseq<=q .end if .end process.END dchufaqi_architecture .可编辑资料 - - - 欢迎下载精品_精品资料_(2) dongtaixianshi1library ieee .use ieee.std_logic_1164.all.use ieee.std_logic_unsigned.all .entity dongtaixianshi1 is portclk: IN STD_LOGIC.y: buffer std_logic_vector1 downto 0.end dongtaixianshi1 .architecture behave of dongtaixianshi1 is beginprocessclkbeginifclk'event and clk='1' then ify="11" theny<="00" .elsey<=y+1 .end if .end if .end process.end behave.(3) dongtaixianshi2library ieee .use ieee.std_logic_1164.all .use ieee.std_logic_unsigned.all .entity dongtaixianshi2 is port可编辑资料 - - - 欢迎下载精品_精品资料_downto 0 .a: in std_logic_vector1 downto 0 .yjia1,yjia0,yyi1,yyi0:inSTD_LOGIC_VECTOR6y: out std_logic_vector6 downto 0 .可编辑资料 - - - 欢迎下载精品_精品资料_.end dongtaixianshi2 .architecture behave of dongtaixianshi2 is beginprocessabegin case a is可编辑资料 - - - 欢迎下载精品_精品资料_(4) fenpinlibrary ieee .use ieee.std_logic_1164.all .use ieee.std_logic_unsigned.all .entity fenpin is portclk: in std_logic .clk1: out std_logic.end fenpin .architecture behave of fenpin issignal cnt1: std_logic_vector25 downto 0.beginprocessclk beginifclk'event and clk='1' thencnt1<=cnt1+1 .end if .end process.clk1<=cnt115 .end behave.(5) jifenLIBRARY ieee .USE ieee.std_logic_1164.all .use ieee.std_logic_unsigned.all .ENTITY jifen ISPORT 可编辑资料 - - - 欢迎下载精品_精品资料_(6) jishuLIBRARY ieee .USE ieee.std_logic_1164.all .use ieee.std_logic_unsigned.all .可编辑资料 - - - 欢迎下载精品_精品资料_ENTITY jishu ISPORT ud : IN STD_LOGIC.s : IN STD_LOGIC .reset : IN STD_LOGIC .d3,d2,d1,d0 : IN std_logic .clk : IN STD_LOGIC.q : buffer STD_LOGIC_VECTOR3 downto 0可编辑资料 - - - 欢迎下载精品_精品资料_.END jishu .ARCHITECTURE jishu_architecture OF jishu IS BEGINprocessud,s,reset,clkbegin可编辑资料 - - - 欢迎下载精品_精品资料_(7) jishu2LIBRARY ieee .USE ieee.std_logic_1164.all .use ieee.std_logic_unsigned.all .可编辑资料 - - - 欢迎下载精品_精品资料_ENTITY jishu2 ISPORT .END jishu2 .clk : IN STD_LOGIC.q : buffer STD_LOGIC_VECTOR1 downto 0可编辑资料 - - - 欢迎下载精品_精品资料_(8) xianshiLIBRARY ieee .USE ieee.std_logic_1164.all .use ieee.std_logic_unsigned.all .ENTITY xianshi ISPORT 可编辑资料 - - - 欢迎下载精品_精品资料_.END xianshi .a : IN STD_LOGIC_VECTOR3 downto 0. y1 : OUT STD_LOGIC_VECTOR6 downto 0.y0 : OUT STD_LOGIC_VECTOR6 downto 0可编辑资料 - - - 欢迎下载精品_精品资料_ARCHITECTURE xianshi_architecture OF xianshi IS BEGINprocessa begin case a iswhen "0000" => y1<="1111110" .y0<="1111110" .when "0001" => y1<="1111110" .y0<="0110000" .when "0010" => y1<="1111110" .y0<="1101101" .when "0011" => y1<="1111110" .y0<="1111001" .when "0100" => y1<="1111110" .y0<="0110011" .when "0101" => y1<="1111110" .y0<="1011011" .when "0110" => y1<="1111110" .y0<="1011111" .when "0111" => y1<="1111110" .y0<="1110000" .when "1000" => y1<="1111110" .y0<="1111111" .可编辑资料 - - - 欢迎下载精品_精品资料_(8) xuanzeLIBRARY ieee .USE ieee.std_logic_1164.all .use ieee.std_logic_unsigned.all .ENTITY xuanze ISPORT a : IN STD_LOGIC .q1: in std_logic .q2: in std_logic .q : out STD_LOGIC.END xuanze .ARCHITECTURE xuanze_architecture OF xuanze IS BEGINprocessa beginifa='1' then q<=q2 .elseq<=q1 .end if .end process.END xuanze_architecture .(9) yimaLIBRARY ieee .USE ieee.std_logic_1164.all .use ieee.std_logic_unsigned.all .ENTITY xuanze ISPORT a : IN STD_LOGIC .可编辑资料 - - - 欢迎下载精品_精品资料_(10) yanshilibrary ieee .use ieee.std_logic_1164.all.use ieee.std_logic_unsigned.all .可编辑资料 - - - 欢迎下载精品_精品资料_entity yanshi is port.end yanshi.clk: in std_logic .y: buffer std_lo