欢迎来到天天文库
浏览记录
ID:15822431
大小:179.02 KB
页数:14页
时间:2018-08-05
《eda技术课程设计-乒乓球比赛游戏机》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、东北石油大学课程设计课程EDA技术课程设计题目乒乓球比赛游戏机院系电子科学学院专业班级电子信息工程学生姓名学生学号070901140438指导教师2011年3月11日东北石油大学课程设计任务书课程EDA技术课程设计题目乒乓球比赛游戏机专业电子信息工程姓名学号070901140438主要内容、基本要求、主要参考资料等主要内容:设计一个乒乓球游戏机,比赛由甲乙双方和裁判3人构成,能模拟比赛的基本过程和规则并能自动裁判和记分。基本要求:1、设计一个由甲、乙双方参赛,有裁判的3人乒乓球游戏机。2、用8个(或更多个)LE
2、D排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的LED指示球的当前位置,点亮的LED依此从左到右,或从右到左,其移动的速度应能调节。3、当“球”(点亮的那只LED)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,即表示启动球拍击球。若击中,则球向相反方向移动;若未击中,则对方得1分。一方得分时,电路自动响铃3秒,这期间发球无效,等铃声停止后方能继续比赛。4、设置自动记分电路,甲、乙双方各用2位数码管进行记分显示,每计满21分为1局。5、甲、乙双方各设一个发光二极管,表示拥
3、有发球权,每隔5次自动交换发球权,拥有发球权的一方发球才有效。主要参考资料:[1]潘松著.EDA技术实用教程(第二版).北京:科学出版社,2005.[2]康华光主编.电子技术基础模拟部分.北京:高教出版社,2006.[3]阎石主编.数字电子技术基础.北京:高教出版社,2003.完成期限2011.3.11指导教师专业负责人2011年3月7日12一、总体设计思想1.基本原理根据乒乓球比赛的过程和规则,首先游戏开始,如果一方非正确击球则另一方加分,当分数大于21时获胜,游戏结束,我们把设计流程规定如图1.1所示。状态
4、机设置了7个状态,分别是“等待发球状态”,“第一盏灯亮状态”,“第八盏灯亮状态”,“球向乙移动状态”,“球向甲移动状态”,“允许甲击球状态”,“允许乙击球状态”。这是该程序中起决定作用的七个状态。开始的时候处于“等待发球状态”,若甲发球则状态转移到“第一盏灯亮状态”,若乙发球则转移到“第八盏灯亮状态”,具体说明以甲球为例。若发球后乙没有提前击球----规定球移动到对方第一个发光二极管时允许击球,那么状态机从“第一盏灯亮状态”转移到“球向乙移动状态”。若在“球向乙移动状态”乙仍然没有提前击球,状态就转移到“允许乙
5、击球状态”,在此状态下,如果乙击球了,那么状态就转移到“球向甲移动状态”。在“第一盏灯亮状态”,“球向乙移动状态”中,如果乙击球了,就算提前击球,这样甲得分,状态转移到“等待发球状态”等待发球,“球向甲移动状态”之后的过程和前面的过程只不过是甲乙角色的调换而已。状态转移规则都是一样的。图1.2给出了乒乓球游戏机的原理图。2.设计框图游戏开始正确接发球?大于21?甲乙否否大于21?乙方胜利甲方胜利甲方加分乙方加分NNYY游戏结束图1.1设计流程图12等待发球甲得分乙得分甲发球乙发球第一盏灯亮第八盏灯亮允许甲发球球
6、向甲移动乙击球甲击球球向乙移动乙击球甲击球允许乙发球乙没击球甲没击球图1.2乒乓球游戏机原理图二、设计步骤和调试过程1、总体设计电路该乒乓球游戏机的设计主要包括的模块与内容有:乒乓球游戏机实体的设计,游戏机编程的实现,记分译码器的设计以及构造体的设计。直接对状态机进行描述,所有的状态均可表达为CASE_WHEN结构中的一条CASE语句,而状态的转移则通过IF_THEN_ELSE语句实现。以下我们就详细解析各个板快的设计与实现。2、模块设计和相应模块程序(1)乒乓球游戏机实体的设计设计该乒乓球游戏机的输入与输出端
7、口。首先考虑输入端口,一般应该设置一个异步置位端口reset,用于在系统不正常时回到初始状态:两个发球输入端serve1和serve2,逻辑‘1’分别表示甲方和乙方的发球;两个击球输入端hit1和hit2,逻辑‘1’分别表示甲击球和乙击球;一个开始游戏按钮startbutton,处于逻辑‘1’表示可以游戏;还得有一个时钟输入端口clk。其次考虑输出端口,芯片应该有8个输出端口来控制8个发光二极管,输出逻辑‘1’12即输出一个高电平,可以使发光二极管点亮;另外,要直观地表示双方的得分,就得用到4个七段译码器,每方
8、用到2个,可以表示0到21的数字,每个七段译码器需要芯片的7个输出端口来控制,总共28个输出端口。实体的设计如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;//引用必要的库函数和包集合entitypingponggameis--实体名
此文档下载收益归作者所有