- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VHDL的乒乓球逻辑电路设计
基于VHDL的乒乓球游戏电路设计
1、 概述
两人乒乓球游戏机是由发光二极管代替球的运动。并按一定的规则进行对垒比赛。甲乙双方发球和接球分别用两只开关代替。当甲方按动发球开关时,球就向前运动(发光管向前移位),当球运动过网到一定位置以后,乙方就可接球。若在规定的时间内,乙方不接球或提前、滞后接球,都算未接着球,甲方的计分牌自动加分。然后重新按规则有一方发球,比赛才能继续进行。比赛一直要进行到一方记分牌达到11分,这一局才告结束。
2、 设计任务和要求
乒乓球游戏机逻辑电路控制任务和要求如下:
1、乒乓球游戏机甲、乙双方各有两只按钮,分别为发球按钮和击球按钮。
2、乒乓球的移动用14只LED灯模拟运行。亮着的灯表示乒乓球此时的位置,乒乓球可以向左和向右移动。
3、球过网到一定的位置方可接球,提前击球或出界击球均判为失分,对方的得分加1。
4、比赛采用11分制,任何一方先记满11分就获胜,比赛一局就结束。当计分牌清零后,又可开始新的一轮比赛。
5、利用VHDL写相应的代码,利用状态机来实现其功能。
3、 总体设计
总体设计框图:
该系统可由以下几个模块构成
(1). Fenpin模块(分频模块),用来产生球移动频率和得分显示动态扫描频率。
(2). Move模块(模拟运行模块),用来显示乒乓球的运动情况
(3). Control模块(控制模块),用来控制乒乓球的运动情况,包括发球、接球、复位,加分等的控制。
(4). Showscore模块(得分显示模块),用来记录和显示各方的得分情况,通过四个7段数码管显示出来。
(5). Pingpangqiu模块(顶层文件),最终的乒乓球逻辑电路的一切功能的顶层文件。
(2) Fenpin模块设计
ibrary ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity fenpin is
port(clk: in std_logic; -----输入频率,为10MHZ
clkscan: out std_logic; -----输出得分动态扫描频率,为8us
clkmove: out std_logic); -----球移动频率,为400ms
end;
architecture behavior of fenpin is
begin
process(clk)
variable cntscan: integer range 80 downto 0; -----80分频后得到8us脉冲
--variable cntmove: integer range 4000000 downto 0;
variable cntmove: integer range 400 downto 0;
-----为了仿真方便则使球的移动频率改为40us
begin
if clkevent and clk=1 then ------clk的上升沿到来时
if cntscan80 then
cntscan:=cntscan+1; ------计数器未满时加1
else
cntscan:=0; ------否则计数器清零
end if;
if cntmove400 then
cntmove:=cntmove+1;
else
cntmove:=cntmove+1;
end if;
if cntscan40 then -------使其占空比为50%
clkscan=0;
else
clkscan=1;
end if;
if cntmove200 then
clkmove=0;
else
clkmove=1;
end if;
e
您可能关注的文档
最近下载
- 肾动态显像dynamicrenalimaging.PPT
- 人教版(2024新版)英语七年级上册Unit 7 Happy Birthday!大单元整体教学设计.docx
- 《高等职业学校专业教学标准(试行)》存在的问题及改进建议--以财经大类、文化教育大类和旅游大类为例.pdf VIP
- 《小班美工区中幼儿教师指导问题及策略研究报告》9700字.docx
- 三级烟草专卖管理师岗位技能鉴定试卷答案.docx VIP
- 国家开放大学,地域文化,人文武隆形考一 (2).docx
- 2024年秋季新北师大版七年级上册数学全册教案.DOCX
- 手术讲解模板:睾丸扭转复位固定术.ppt
- 壹号土猪市场营销分析.doc VIP
- DELI得力 M201CR用户手册 说明书.pdf
文档评论(0)