版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、任务描述1设计要求左、右双方各持一按键作为“球拍”,实验板上一行8只发光二极管为乒乓球台,其中那只发设计如图1所示的乒乓球游戏实物图的模拟控制器。发球方最后一位LED点亮,按下键表示发球,亮的灯依次向对方移动,当到达对方最后一位时0.5s内对方必须按下按键表示接球,接球后LED灯向对方移动,否则输球。接球时,LED没有亮到最后一位时就按下接球按键为犯规。俞球或者犯规,对方加1分,率先加到11分者游戏胜出这一局。乙方BifAjA)AjlAjLED01LED02LED03LEDOdLED05LEDOSLEDO7LEDOS光的发光二极管代表乒乓球所在位置。2设计思路考虑到游戏的复杂度,采用状态机来实
2、现这些模式转换。用到8个状态,如下所示:状态功能S0复位状态,也是判断发球权的状态S1甲方发球S2球从甲方向乙方右移,若此时乙方接球就给甲方加一分,并将球权给甲方S3开始判断乙方是否在0.5S内接球S4乙方发球S5球从乙方向甲方左移,若此时甲方接球就给S6S7乙方加一分,并将球权给乙方开始判断甲方是否在0.5S内接球用于接球后判断发球程序还加入了蜂鸣、用数码管显示分数和发球权等功能。二结构框图1状态转移图2程序流程图3系统模块LIL?lk2kzStat2.、:r=t曲西剧Jf7s20-DJJf7535.3J二laf7s4e.Ols5p.0j=-p2aK=rIRStn厂ParameterVafl
3、iATvnsOoaoUnsignedBinary呂1oaiUnsignedBinarys201QUnsignedBinary011UnsignstfBinarys41OTUnsienstfBinarysE-101UnsignedBinary咄11QUnsignedBinarymUnsignedBinary系统程序modulepingpangok(state,clk2hz,rst,k_a,k_b,led8s,led7s1,led7s2,led7s3,led7s4,led7s5,speaker);clk2hz指一个2Hz的时钟输入,rst异步复位,k_a和k_b是比赛双方按键,speaker是蜂鸣
4、器led8s是一排8个发光二极管代表球场,led7s14是4个显示分数的数码管,led7s5是显示发球权的数码管inputclk2hz,rst,k_a,k_b;output7:0led8s;output6:0led7s1,led7s2,led7s3,led7s4,led7s5;outputspeaker;output2:0state;reg7:0led8s;reg6:0led7s1,led7s2,led7s3,led7s4,led7s5;reg3:0score_a,score_b;reg2:0state;regspeaker;parametersO=3bOOO,复位状态,也是判断发球权的状态;
5、s1=3bOO1,甲方发球;s2=3b010,球从甲方向乙方右移,若此时乙方接球就给甲方加一分,并将球权给甲方;s3=3bO11,开始判断乙方是否在0.5S内接球;s4=3b100,乙方发球;s5=3b101,球从乙方向甲方左移,若此时甲方接球就给乙方加一分,并将球权给乙方;s6=3b110;开始判断甲方是否在0.5S内接球;s7=3b111;用于判断接球后发球;/游戏逻辑控制核心always(posedgeclk2hz)begincase(state)s7:beginif(k_a)state=s1;/甲发球;elseif(k_b)state=s4;乙发球;elseif(speaker)spe
6、aker=1b0;elsespeaker=1b0;ends0:beginled7s5=7b0111111;第五个数码管显示数字0,表示发球权可以开始判断了;state=s7;led8s=7b00000000;score_a=0;score_b=0;给甲乙双方的分数复位;if(k_a)beginspeaker=1b1;因为按键k_a要持续按着保持高电位1,蜂鸣器鸣叫是提示可以松手了;state=s7;endelseif(k_b)beginspeaker=1b1;state=s7;endelsestate=s0;ends1:beginled7s5=7b0000110;第五个数码管显示数字1,表示发
7、球权现在是甲方的;if(led8s=8b00000000)led8s=8b10000000;点亮的灯出现在最右边,即甲方发球;state=s2;if(speaker)speaker=1b0;将刚才鸣叫的蜂鸣器关闭;ends2:beginif(led8s=8b00000010)beginled8s1;state=s3;进入判断乙方接球的状态;endelsebeginled8s1;state=s7;endif(k_b)beginscore_a=score_a+1;speaker=1b1;若在此期间乙方抢先按键,就判断乙方输,给甲方加1分,并让蜂鸣器鸣叫;led8s=8b00000000;enden
8、ds3:beginif(k_b)beginstate=s7;乙方接球成功,并进入乙方发球的s7状态;led8s=8b00000000;endelsebeginscore_a=score_a+1;speaker=1b1;state=s7;乙方接球不成功,则甲方加一分,并进入甲方发球的s7状态,蜂鸣器鸣叫;led8s=8b00000000;endends4:beginled7s5=7b1011011;第五个数码管显示数字2,表示发球权现在是乙方的;if(led8s=8b00000000)led8s=8b00000001;点亮的灯出现在最左边,即乙方发球;state=s5;if(speaker)sp
9、eaker=1b0;将刚才鸣叫的蜂鸣器关闭;ends5:beginif(led8s=8b01000000)beginled8s=led8s1;state=s6;进入判断甲方接球的状态;endelsebeginled8s=led8s1;state=s7;endif(k_a)beginscore_b=score_b+1;speaker=1b1;若在此期间甲方抢先按键,就判断甲方输,给乙方加1分,并让蜂鸣器鸣叫;led8s=8b00000000;endends6:beginif(k_a)beginstate=s7;甲方接球成功,并进入甲方发球的s7状态;led8s=8b00000000;endels
10、ebeginscore_b=score_b+1;speaker=1b1;state=s7;甲方接球不成功,则乙方加一分,并进入乙方发球的s7状态,蜂鸣器鸣叫;led8s=8b00000000;endenddefault:state=s0;endcase/甲乙双方的分数各用2个数码管显示if(score_a=11&score_b=11)beginscore_a=0;score_b=0;如果任一方得11分,一局结束,计分清零;endcase(score_a)8b0000:beginled7s1=7b0111111;led7s2=7b0111111;数码管显示0分;end8b0001:beginle
11、d7s1=7b0111111;led7s2=7b0000110;数码管显示1分;end8b0010:beginled7s1=7b0111111;led7s2=7b1011011;数码管显示2分;end8b0011:beginled7s1=7b0111111;8-bolo9begin_ed7s2介7-bloollll;二齊於越知3匕end_ed7sl佥7-bollllllj一ed7s2佥7-blloollo*、博於end8-bolorbegin一ed7sl佥7-bollllllj一ed7s2佥7-bllolloly、博於越知end8-boll9begin一ed7slA7-bollllllj一ed
12、7s2佥7-blllllolw6vjend8-bollrbegin一ed7slA7-bollllllj一ed7s2介70=0000111齊於知7匕end8-bloo9begin一ed7slA7-bollllllj一ed7s2介7-blllllllwEw8vjend8-bloorbegin一ed7slA7-bollllllj一ed7s2介70=1101111齊於知9匕一end8-blol9begin一ed7slA7-booooll一ed7s2介70=0111111齊於知10匕end8-blolrbegin一ed7slA7-booooll一ed7s2介70=0000110齊於知11匕enddefa
13、u-rrbegin一ed7slA7-bollllllj一ed7s2今7-bollllll、齊於印0endendcasecase(scorelb)8-booopbegin一ed7s3今7-bollllllj一ed7s4A7-bollllll;、齊於削知end8-booorbegin_ed7s3介7-bollllllj一ed7s4介7-boooollo、齊於越知IVend80=0019begin一ed7s3今7-bollllllj一ed7s4佥7-blolloll;、齊於印2步end8-boolrbegin一ed7s3介7-bollllllj一ed7s4介70=1001111齊於知3匕end8-b
14、oloobegin一ed7s3介7-bollllllj一ed7s4介70=1100110齊於知4匕end8-bolorbegin一ed7s3介7-bollllllj一ed7s4介70=1101101齊於知5匕end8-bollobegin一ed7s3介7-bollllllj一ed7s4介70=1111101齊於知6匕end8-bollrbegin一ed7s3介7-bollllllj一ed7s4介70=0000111齊於知7匕end8-bloo9begin一ed7s3介7-bollllllj一ed7s4介7-blllllllwEw8vjend8-bloorbegin一ed7s3介7-bollll
15、llj一ed7s4介70=1101111齊於知9匕一end8-blol9begin一ed7s3介7-boooolloj一ed7s4介70=0111111齊於知10匕end8-blolrbegin一ed7s3介7-boooolloj一ed7s4介70=0000110齊於知11匕enddefau-rrbegin一ed7s3介7-bollllllj一ed7s4介70=0111111齊於nWavlorfFijTUTTTJTLrT_rTrTTTJFTTTTT_rT_rLJirTTTTTTTTlTTJTTTrTTT_rTTT_rLrL_rLijj$:E.0uZZD.DnsE4D.卩uZHl.pojlZH0
16、JJJri;雷中J%0WP449r则网437159TSni:Jial:clKZhc0lsTalEl1亡丽点EjIi37zElled?s4QlS?占14iiI:和mg3神I.】y用dzr洋35Jh52昏fflfflsffl田k-bltdllllsDsE“mmliwnsq1JTe515ret町-1:=5fSIFKK5BEO1(LOxKM:OS):5LxnoX01XOEXMXWX10KEOXixJX閃1L:rUr:TYnT7TYiYi7TXrxTTYWyWXDTYlYr:nTiYin:(KTTTYnYTKWXW:nr:MB发球A未接球SirnuhbenWavfforrrisKi1F0dlh:*1_-W2it加J14JTLExILEli191亡冊田:少?L1=1ra“时占1454-庄|aLkLi-B发球A接球B发球A接球B再发球:11n-nr.-r.-.一:.国5UtSA英国田思4#S凹011铀告./SEimulAliQPWJMfrlcrrYrtSi/wl4.UEriHOije::r引机2営旬!Znr-lk2hTEKi.au3T0.Dtu总结通过这次大作业的练习,我对EDA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年初级新能源车辆制动年检检测基础考试试卷及答案
- 2026年公务员招考申论国潮文化发展创新模拟试卷及答案
- 注册土木工程师(水利水电工程)水工结构考前速记清单
- 2026年保安员模拟试题(含答案)
- 2026秋小学赣美版美术一年级上册(新教材)教学计划附教学进度表
- 2026年公务员考试申论真题及模拟卷
- 2026工商银行软件开发中心秋季校园招聘押题模拟卷带答案
- 2026年继续教育公需科目试题及答案
- 2026年动物实验考试题库及答案
- 2026年人工智能训练师(四级)专业能力考核试题及答案
- 2026湖南大学事业编制管理辅助岗位招聘约53人笔试备考试题及答案解析
- 四川省环境政策研究与规划院2026年下半年公开招聘工作人员笔试参考题库及答案详解
- CSCO肝癌诊疗指南(2026版)
- 气体灭火系统安装规范
- 2026年社会医学与卫生事业管理题库(含参考答案)
- 2026年新行政执法证考试题库及答案
- 备战高考数学之985高校强基计划入围资格(新高考通.用)专题04 函数的基本性质及导数综合(40题难题)(原卷版)
- 公安专业科目考试题目及答案
- 2025年中化集团招聘中的高频考点及备考指南
- 2025版老旧小区集中供热改造工程合同
- 商铺招商佣金考核方案(3篇)
评论
0/150
提交评论