乒乓球游戏机设计.doc_第1页
乒乓球游戏机设计.doc_第2页
乒乓球游戏机设计.doc_第3页
乒乓球游戏机设计.doc_第4页
乒乓球游戏机设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EDA课程设计 乒乓球游戏机 专业班级:自动化本科八班 姓名:翟军辉 学号:B08040828 指导老师:郭超 2010年12月目录一、设计任务与要求-二、总体框图-三、选择器件-四、功能模块-五、总体设计电路图-六、心得体会-乒乓球游戏机一、 设计任务与要求:设计一个能够模拟乒乓球比赛的基本过程和规则,并能自动裁判和记分的乒乓球游戏机。要求:比赛时甲乙双方各在不同的位置发球或击球;根据球的位置发出相应的动作,提前击球或出界均判失分;乒乓球的位置和移动方向有灯亮及依次点亮的方向决定,球移动的速度为0.10.5s移动一位;甲乙双方设置各自的记分牌,任何一方先记满21分该方就算胜了此局;当记分牌清零后,又可开始新的一局比赛。二、 总体框图1、 乒乓球游戏机的总体框图如下图所示:片选信号产生模块核心模块七段译码器数据转换模块2、 设计思路及各模块功能: 设计思路: 用816个发光二极管代表乒乓球台,在游戏机的两侧各设置两个开关,一个是发球开关,一个是击球开关。甲方按动发球开关时,靠近甲方的第一盏灯亮,然后发光二极管由甲向乙依次点亮,代表乒乓球在移动。当球过网后,按设计者规定的球位乙方就可以击球。若乙方提前击球或没有击到球,则判乙方失分,甲方自动加分,重新发球比赛继续进行到一方记分到21分,该局结束,记分牌清零,可以开始新的一局比赛。 片选信号产生模块片选信号产生模块是用来产生数码管的片选信号,将产生的片选信号输送到数据转换模块,以便其对输入数据进行选择。 核心模块 核心模块有两个功能,第一个是实现逻辑功能,即对甲方乙方的发球击球 情况进行判断,然后再对双方谁得分进行记录;第二个是将整数得计分转换成十进制数,以便译码显示。 数据转换模块数据转换模块是将核心模块输送过来的数据通过片选信号对其进行选择,并将符合要求的数据输送出去。 七段译码器七段译码器用来将输入数据进行翻译,便于数码管显示出数据。三、 选择器件:设计开发软件:MAX+plus10.2;CPLD/FPGA适配器板:EPF10K10接口板;主芯片:ALTERA EPF10K1084-4; MAX EPF10K10LC84-4是一种复杂可编程逻辑器件,IC管脚参阅原理图,是84pinPLCC封装,另外还有其它类型的管脚和封装,选择性强,该IC具有以下主要性能:嵌入式可编程逻辑器件,提供了集成系统于单个可编程逻辑器件中的性能; 高密度:提供10000250000个可用门,614440960位内部RAM;低功耗:多数器件在静态模式下电流小于0.5mA,在2.5V、3.3V或5.0v下工作; 高速度:时钟锁定和时钟自举选项分别用于减少时钟延时/过冲和时钟倍频;器件内建立树形分布的低失真时钟;具有快速建立时间和时钟到输出延时的外部寄存器; 灵活的互连方式:快速、互连延时可预测的快速通道(Fast Track)连续式布线结构;实现快速加法、计数、比较等算术逻辑功能的专用进位链;实现高速、多输入(扇入)逻辑功能的专用级联链;实现内部三态的三态模拟;多达六个全局的时钟信号和四个全局清除信号; 支持多电压I/O接口; 强大的引脚功能:每个引脚都有一个独立的三态输出使能控制及漏极开路配置选项及可编程输出压摆率控制;FLEX10KA、10LE、10KS器件都支持热插拔; 多种配置方式:内置JTAG边界扫描测试电路,可通过外部EPROM、智能控制或JTAG接口实现在电路重构(ICR); 多种封装形式:引脚范围为84600,封装形式有TQFP、PQFP、BGA和PLCC等,同一封装的FLEX 10K系列器件的引脚相兼容。 下载接口:数字芯片的下载接口(JANG),主要用于FPGA芯片的数据下载;所用器件:八个LED灯,五个按键,时钟源,代表扫描显示的驱动信号管脚SEL0、SEL1、SEL2和A、B、C、D、E、F、G。四、 功能模块 1、片选信号产生模块 上面模块为片选信号产生模块,用来产生数码管的片选信号。其与数据转换模块的对应关系如下表所示:接口序号数据转换模块SEL2SEL1SEL0选择数据000d2001d3010d3011d3100d0101d1110d3111d3 CLK是扫描时钟信号接CLK5时钟信号源,A2.0是代表扫描片选地址信号SEL2,SEL1,SEL0的管脚同四位扫描驱动地址的低三位相连。其VHDL程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sel isport(clk:in std_logic;sell:out std_logic_vector(2 downto 0);end sel;architecture sel_arc of sel isbeginprocess(clk)variable tmp:std_logic_vector(2 downto 0);beginif(clkevent and clk=1)thenif(tmp=000)thentmp:=001;elsif tmp=001thentmp:=100;elsif tmp=100thentmp:=101;elsif tmp=101thentmp:=000;end if;end if;sell=tmp;end process;end sel_arc;仿真波形如下所示:波形分析:当CLK的上升沿到达时,sell按照十进制数0、1、4、5、0变化,并且向端口外输出片选信号,符合设计模块的要求。 2、核心模块 COMA模块有两个功能,第一个是实现整个设计的逻辑功能,当游戏开始时,先通过CLR对整个系统进行清零,在输入CLK上升沿有效的条件下,甲方开始发球,在LED灯上从距离甲方最近的一个开始闪亮,并依次向乙方移动,再过了网后乙方就可以击球,若乙方击球成功,则球按原路返回,在再次过网后甲方就可击球,若甲击球成功,则按以上游戏一直进行下去,而若有一方击球失败则LED灯全部熄灭,并给对方在记分牌上记一分;倘若有一方发球失败,则给对方也在记分牌上记一分,当其中的一方记满21分时比赛结束,清零后可开始下一局。第二个是将整数得计分转换为十进制数,便于译码显示。当甲乙双方的记分低位到达9时使低位清零,同时使高位加1,以便正确地在数码管上显示得分。CLR为乒乓球游戏清零键,接按键;AF为甲方发球控制键,接按键;AJ为甲方接球控制键,接按键;BF为乙方发球控制键,接按键;BJ为乙方接球控制键,接按键;CLK为控制乒乓球行进速度的时钟信号,接CLK0时钟信号源;SHIFT7.0为LED灯显示输出端,接8个LED显示灯;AH3.0为甲方记分的高位,AL3.0为甲方记分的低位,BH3.0为乙方记分的高位,BL3.0为乙方记分的低位,以上四位都在经过译码器译码后接8位共阴极数码显示管。其VHDL程序如下所示:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity coma isport(clr,af,aj,bf,bj,clk:in std_logic; shift:out std_logic_vector(7 downto 0); ah,al,bh,bl:out std_logic_vector(3 downto 0);end coma;architecture com_arc of coma is signal amark,bmark:integer;begin process(clr,clk)variable a,b:std_logic;variable she:std_logic_vector(7 downto 0);begin if clr=0then a:=0; b:=0; she:=00000000; amark=0; bmark8 then if bj=0then amark=amark+1; a:=0; b:=0; she:=00000000; else she:=0&she(7 downto 1); end if; elsif she=0 then amark=amark+1; a:=0; b:=0; else if bj=0then a:=0; b:=1; else she:=0&she(7 downto 1); end if; end if; elsif a=0 and b=1then if she16 and she/=0 then if aj=0 then bmark=bmark+1; a:=0; b:=0; she:=00000000; else she:=she(6 downto 0)&0; end if; elsif she=0 then bmark=bmark+1; a:=0; b:=0; else if aj=0then a:=1; b:=0; else she:=she(6 downto 0)&0; end if; end if; end if; end if; shifttmp1 then if ala=1001then ala:=0000; aha:=aha+1; tmp1:=tmp1+1; else ala:=ala+1; tmp1:=tmp1+1; end if; end if; if bmarktmp2 then if bla=1001then bla:=0000; bha:=bha+1; tmp2:=tmp2+1; else bla:=bla+1; tmp2:=tmp2+1; end if; end if; end if; al=ala; bl=bla; ah=aha; bhqqqqqqqqqqqqqq=1101111; end case;end process;end dispa_arc; 仿真波形如下所示:波形分析:由上面仿真图可以看出,译码模块完成了对数据在数码管上正确地显示。波形符合要求。(注:系统仿真、综合、下载:在建立了波形文件、输入信号节点、波形参数、加输入信号激励电平并存盘之后,选择主菜单“MAX+plusII”中的仿真器项“Simulator”,弹出对话框之后单击“Start”进行仿真运算,完成之后就可以看到时序波形。)硬件实现:通过对每一模块的仿真和下载,可以实现各个模块的逻辑功能,验证了各个模块的正确性。五、总体设计电路图1、总体电路原理图如下图所示: 2、整体工作情况:sclk和clk分别接扫描时钟信号和时钟信号,其它端口接法如上所述,SEL产生片选信号并作用于数据转换模块CH41A,COMA为核心模块,实现逻辑功能,并且对数据进行数制转换。CH41A将所选数据送到七段译码器模块DISPA,使得分在数码管上显示。 3、仿真结果:结果分析:由上述仿真波形可以知道,并且通过硬件实现知道整个电路完成了设计要求的任务。4、管脚分配图:按照管脚分配图上所示,对各管脚在EDA试验箱上进行连接,sclk接clk5时钟信号源,rd为清零控制键,接按键,af接按键,aj接按键, bf接按键,bj接按键,clk接clk0时钟信号源,sell2.0接扫描SEL0、SEL1、SEL2,shift7.0接八个LED显示灯,q6.0接数码管a、b、c、d、e、f、g。在乒乓球游戏开始时,先按rd键对系统进行清零,然后甲或者乙就可以按发球键发球,在LED

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论