77范文网 - 专业文章范例文档资料分享平台

乒乓电路—终稿(5)

来源:网络收集 时间:2019-06-11 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

聊城大学本科毕业论文(设计)

极管使之点亮,这样就可以通过发光二极管模拟乒乓球的运动轨迹。可以看到,在甲不该击球的时候击球,也就是hit1在除state状态6(allow1hit,允许甲击球状态)的时候有高电平‘1’输入,则算乙得分,bcdouta2的值随之变化,二进制“11111001”,就是七段译码器显示?1?,之后state回到状态0(waitserve,等待发球状态)。当甲在allow1hit时击球,乒乓球就会从乙端运动到甲端。

总结

电子技术的飞速发展,智能设备的日益增多,有力地推动了社会生产力的发展和社会信息化程度的提高。在这同时,这些发展变化也要求电子产品性能进一步提高,产品更新换代的节奏加快。因此,对电子产品的设计开发就提出了更高的要求。为适应这样的要求,业界大量可编程逻辑器件(PLD),尤其是现场可编程逻辑门阵列(FPGA)应运而生,促进了电子设计自动化技术快速发展。这不仅为电子系统设计带来了一场革命性变化,而且为网络化、智能化测控系统的研制创造了条件。

本次设计论文主要包括:EDA概述;硬件描述语言VHDL;QuartusII系统平台,介绍了这些基本的知识以后,便开始进行乒乓球游戏的电路设计。论文比较全面的分析了乒乓球游戏机的基本原理,符合乒乓球运动的各项规则。使用模块化设计方法,最终实现了乒乓球运动的基本功能。

在这个设计中,初步体现了状态机的中心控制作用。通过状态机进程传出的信号,驱动了发光二极管以及七段译码器等外围设备。状态机进程传出的i信号,控制了发光二极管的状态,状态机进程传出的count1和count2信号,控制了七段译码器的显示。

在几个月的学习和实践过程中,遇到了很多问题。刚开始由于对VHDL语言不是很熟悉,所以编程的过程中出现了很多的问题,也走了很多弯路。而且当编译出现了很多错误,怎样调整都无法实现的时候,我对我自己都失去了信心,但经过老师的指导和自己的探索,终于克服了在实际操作中出现的种种问题。通过这样的学习,我有很大的收获,不仅在学识上进步不小,而且加强了我的独立操作能力和克服困难的决心和信心。我会把毕业设计中学习到的知识和精神用到以后的学习和工作中,去实现自己理想和灿烂的人生。

17

聊城大学本科毕业论文(设计)

参考文献

[1]《EDA技术实用教程》黄继业 潘松编著 科学出版社 [2]《微机原理与接口技术》钱晓捷主编 机械工业出版社

[3]《微处理器(CPU)的结构与性能》易建勋编著 清华大学出版社

[4]《FPGA数字电子系统设计与开发实例导航》刘韬 楼兴华编著 人民邮电出版社 [5]《EDA技术及其创新实践》潘松 黄继业编著 电子工业出版社

[6]《VHDL硬件描述语言与数字逻辑》侯伯亨编著 西安电子科技大学出版社

[7]《电子设计自动化(EDA)课程设计与项目实例》李莉 路而红编著 中国电力出版社 [8]《数字系统的VHDL设计》江国强编著 机械工业出版社 [9]《CPLD/FPGA设计及应用》罗朝霞 高书莉编著 人民邮电出版社 [10]《VHDL设计实例与仿真》姜雪松 吴钰淳编著 机械工业出版社 [11]《.EDA技术综合应用实例与分析》谭会生编著 西安电子科技大学出版社

附录

源程序代码 1 分频器

library IEEE;

use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity division is

port( clk:in std_logic; clk_1:out std_logic ); end division;

architecture division_body of division is signal count1:integer range 0 to 5999999; signal count2:integer range 0 to 2999999; signal clk1:std_logic; begin

process(clk) begin if(clk'event and clk='1')then if(count1=2)then count1<=0; clk1<=not clk1;

18

聊城大学本科毕业论文(设计)

else count1<=count1+1; end if; end if;

end process; clk_1<=clk1; end division_body; 2 主体模块

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all; --引用必要的库函数和包集合 entity compete is

port(reset:in std_logic; clk_1:in std_logic;

startbutton:in std_logic; --开始游戏输入端口

serve:in std_logic_vector(1 downto 0); --发球输入端口 hit1,hit2:in std_logic; --甲和乙的击球输入端口

light:out std_logic_vector(1 to 8);--控制8个发光二极管的输出端口

counta,countb:out std_logic_vector(3 downto 0)); --2个用于控制4个7段译码

器的输出端口

end compete;

architecture one of compete is

type pingpong is (waitserve,light1on,ballmoveto2,allow2hit, light8on,ballmoveto1,allow1hit);

---设置7个状态,为枚举数据类型,记为pingpong signal state:pingpong;

signal i:integer range 0 to 8;

signal count1,count2,count3,count4:std_logic_vector(3 downto 0):=\---内部计数器,是4位二进制变量 begin

process(clk_1) --状态机进程 --clk_1作为敏感信号触发进程 begin --进程开始 if reset='1' then --异步置位

i<=0;count1<=\elsif clk_1'event and clk_1='1' then --当处于时钟inclock上升沿时 if count1=\

i<=0;count1<=\elsif count2=\

i<=0;count1<=\elsif startbutton='0' then

i<=0;count1<=\else --以下case语句是程序中最关键的状态机部分 case state is

19

聊城大学本科毕业论文(设计)

when waitserve=> --进程处于等待发球状态 case serve is

when \

when \when \when \when others => i<=0; end case;

when light1on => i<=2; if hit2='1' then i<=0;

count1<=count1+1;state<=waitserve; else

state<=ballmoveto2; end if;

when light8on => i<=7; if hit1='1' then i<=0;

count2<=count2+1;state<=waitserve; else

state<=ballmoveto1; end if;

when ballmoveto1 => if hit1='1' then i<=0;

count2<=count2+1;state<=waitserve; elsif i=2 then i<=1; state<=allow1hit; else i<=i-1; end if;

when ballmoveto2 => if hit2='1' then i<=0;

count1<=count1+1;state<=waitserve; elsif i=7 then i<=8; state<=allow2hit; else i<=i+1; end if;

when allow1hit =>

if hit1='1' then i<=2;state<=ballmoveto2; else count2<=count2+1;i<=0; state<=waitserve; end if;

20

聊城大学本科毕业论文(设计)

when allow2hit =>

if hit2='1' then i<=7;state<=ballmoveto1; else count1<=count1+1;i<=0; state<=waitserve; end if; end case; end if; end if;

end process;

counta<=count1;countb<=count2;

--进程处i信号控制发光二极管的亮暗 light<=

\\\\\\\\

\ --其他情况所有发光二极管都暗 end one; 3 显示译码模块

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all; entity decoder is

port(binaryin:in std_logic_vector(3 downto 0); --4位二进制码的输入端口

bcdout1:out std_logic_vector(6 downto 0); --译码器高位输出端口 bcdout2:out std_logic_vector(6 downto 0) --译码器低位输出端口 );

end decoder;

architecture one of decoder is

signal tembinaryin:std_logic_vector(3 downto 0); begin

process(binaryin) begin

tembinaryin<=binaryin; case tembinaryin is

--把0到9的4位二进制码转换成高低位译码

when\

21

聊城大学本科毕业论文(设计)

when\when\when\when\when\when\when\when\when\when\when\when others=>bcdout1<=not\end case; end process; end one;

致谢

本文的主要工作是在XXX老师悉心指导下的以完成的,无论是在理论学习阶段,还是在论文的资料查询、研究和撰写的每一个环节无不得到导师的悉心指导和帮助。X老师治学严谨,学识渊博,品德高尚,平易近人,在我学习期间不仅传授了做学问的秘诀,还传授了做人的准则,这些都将使我终身受益。他对事业的执著追求、诲人不倦的教师风范和对问题的独到见解,都给我留下深刻印象。我愿借此机会向导师表示衷心的感谢!

感谢文中引用过文献的所有作者们,感谢所有关心、支持和帮助过我的老师和同学们!

22

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库乒乓电路—终稿(5)在线全文阅读。

乒乓电路—终稿(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/657446.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: