基于VHDL篮球计时器课程设计.doc_第1页
基于VHDL篮球计时器课程设计.doc_第2页
基于VHDL篮球计时器课程设计.doc_第3页
基于VHDL篮球计时器课程设计.doc_第4页
基于VHDL篮球计时器课程设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

eda技术课程设计课题:篮球竞赛30秒计时器设计系 别: 电气与电子工程系专 业: 电子信息工程姓 名: 朱亚辉学 号: 123408155指导教师: 梁成武河南城建学院2011年6月24日成绩评定一、指导教师评语(根据学生设计报告质量、答辩情况及其平时表现综合评定)。二、评分(按下表要求评定)评分项目设计报告评分答辩评分平时表现评分合 计 (100分)任务完成情 况(20分)课程设计报告质量(40分)表达情况(10分)回答问题情 况(10分)工作态度与纪律(10分)独立工作能力(10分)得分课程设计成绩评定班级 姓名 学号成绩: 分(折合等级 )指导教师签字 年 月 日一、设计目的 随着生活水平的提高,人们对于生活品质的高要求。对于时间的准确越来越发期盼。比如在田径,足球等体育运动中时间的分秒必争显的更加的不可或缺。在这样的大背景下,计时器也应运而生。特别在于篮球比赛中通常是零点几秒可以决定各方的悲喜。人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。在篮球比赛中,规定了球员的持球时间不能超过30秒,否则就犯规了。本课程设计的“篮球竞赛30秒计时器”,可用于篮球比赛中,用于对球员持球时间30秒限制。二、设计要求1、具有30s计时功能,并且能够实时显示计数结果。2、设有外部操作开关,控制计数器实现直接清零、启动以及暂停/连续工作等操作。3、计时器为30s递减计时,计时间隔为1s。4、计时器递减计时到零时,数码显示器不能灭灯,同时发出光电报警信号。三、总体设计原理与内容1、设计的总体原理30秒计时器的总体参考方案框图如图31所示。它包括秒脉冲发生器、计数器、译码显示电路、报警电路和辅助时序控制电路(简称控制电路)等五个模块组成。其中计数器和控制电路是系统的主要模块。计数器完成30秒计时功能,而控制电路完成计数器的直接清零、启动计数、暂停/连续计数、译码显示电路的显示与灭灯、计时时间到进行报警。 图31 总设计框图2、设计内容分析设计任务,计数器和控制电路是系统的主要部分。计数器完成30s计时功能,而控制电路具有直接控制计数器的启动计数、暂停连续计数、译码显示电路的显示和灭灯功能。为了满足系统的设计要求,在设计控制部分时,应正确处理各个信号之间的时序关系。在操作直接清零开关时,要求计数器清零,数码显示器灭灯。当启动开关闭合时,计数器完成置数,译码显示电路显示“30”字样;当启动开关断开时,计数器开始计数;当暂停连续开关拨在暂停位置上时,计数器停止计数,处于保持状态;当暂停连续开关拨在连续时,计数器继续递减计数。3、设计方案方案一:通过对要求的分析,在译码显示时若采用静态显示时,需要对两个七段数码管的引脚进行设置,而不需要动态扫描。此时再进行倒计时时,显示部分的两个数码管同时点亮。注意此种方案所用的时钟信号为1hz,若大于或小于1hz,则会使时间间隔大于或小于1秒。方案二:本方案采用动态扫描来进行译码显示,这种方法可以只对一个数码管的引脚进行设置,这样可以节省能源。此种方案需要用两个时钟信号,第一个时钟信号要为1hz,和方案一相同。但第二个时钟要远远大于时钟一,因为动态扫描利用了人的视觉停留原理,从而造成两个一起亮的假象。 通过方案的对比,我选择了方案一进行设计,但方案二在本报告的后面也给出了设计的源代码,这里着重进行方案一的设计实现。四、eda设计及仿真1、倒计时源程序通过设计,以下给出方案一及方案二的源程序。方案一:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;-entity cnt30 is -令设计的实体名为cnt30port(clk,clr: instd_logic; -输入时钟信号、清零信号rst,enb : instd_logic; -复位、开始/暂停输入端 warn: out std_logic; -报警信号输出端 s1,s0 : out std_logic_vector(6 downto 0);-译码输出end cnt30;-architecture a of cnt30 issignal dd: std_logic_vector (3 downto 0); -定义两个中间信号signal ss : std_logic_vector (3 downto 0) ;beginpro1: process (clk,clr,enb) variable tmpa: std_logic_vector (3 downto 0); variable tmpb: std_logic_vector (3 downto 0); variable tmpwarn: std_logic;begin if clr=1 then tmpa:=0000;tmpb:=0000;tmpwarn:=0; -清零 elsif clkevent and clk=1 then if rst=1 then tmpb:=0011;tmpa:=0000;tmpwarn:=0; -上升沿且复位键为1时,对变量赋初始值30 elsif enb=1 then if tmpa=0000 then if tmpb/=0000 then tmpa:=1001; tmpb:=tmpb-1; -开始键按下后,当个位为零且十位不为零时,十位数字减一,个位数字变为九 else tmpwarn:=1; -若十位、个位都为0时,报警信号为1 end if; else tmpa:=tmpa-1; -若刚开始个位不为0,则个位数减一 end if; end if; end if; ss=tmpa;dd=tmpb;warn s1 s1 s1 s1 s1 s1 s1 s1 s1 s1 s1 s0 s0 s0 s0 s0 s0 s0 s0 s0 s0 s0=0000000; -其它不显示 end case ;end process;end a;方案二:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;-entity cnt30 isport(clk,clk1,clr: in std_logic;rst,enb : in std_logic; sel : out std_logic_ vector(1 downto 0); -片选信号 warn: out std_logic; s:out std_logic_vector(6 downto 0);-译码输出end cnt30;-architecture a of cnt30 issignal dd: std_logic_vector (3 downto 0);signal ss : std_logic_vector (3 downto 0) ;beginpro1: process (clk,clr,enb) variable tmpa: std_logic_vector (3 downto 0); variable tmpb: std_logic_vector (3 downto 0); variable tmpwarn: std_logic;begin if clr=1 then tmpa:=0000;tmpb:=0000;tmpwarn:=0; elsif clkevent and clk=1 then if rst=1 then tmpb:=0011;tmpa:=0000;tmpwarn:=0; elsif enb=1 then if tmpa=0000 then if tmpb/=0000 then tmpa:=1001; tmpb:=tmpb-1; else tmpwarn:=1; end if; else tmpa:=tmpa-1; end if; end if; end if; ss=tmpa;dd=tmpb;warn=tmpwarn;end process;por2: process(clk1,ss,dd) variable sg:std_logic_vector(3 downto 0); variable q:std_logic_ vector(1 downto 0); begin if clk1=1 then q:= 01;sg:=ss;-高电平选择第一个数码管显示,否则选择第二个; else q:= 10; sg:=dd; end if;sel s s s s s s s s s s s =0000000; end case ;end process;end a;2、时序仿真结果及数据分析打开quartus ii 新建立一个文件项目,将程序拷入并仿真,对于波形仿真图形如图41所示 图41 波形仿真图有波形仿真图形可知道,当clr为低电平,enb为高电平且有rst进行了触发后,显示器由30逐渐减到00并输出warn为高电平。可知仿真结果与设计要求刚好相吻合,设计成功。五、硬件实现 1、硬件实现 在波形仿真之后对各个引脚进行如图51的配置. 根据我们所学习的eda课程实验与实验室现有的实验条件,本设计选择方式6进行引脚锁定。输出s1锁定为数码管6,s0锁定为数码管5,clr,enb,rst,warn分别引用pio13,pio12,pio11,pio23管脚。 图 51 引脚设定图在引脚设置仿真之后,对文件进行下载,如图52所示: 图52 文件下载2、硬件实现照片及说明在下载之后,通过改变按键的不同,可以进行正确的功能实行现象,其对应的各个状态如下各图所示 图 53 清零显示在刚开始的时候,首先按下最左端的清零键,则所选择的数码管显示00,此时最左端的数码管上方的小灯泡为熄灭状态。 图54 复位显示状态 在清零之后按下左端第三个键,该键为复位键,按下之后数码管显示最初给它赋的初始值30,则显示为上图。 图55 倒计时进行时 在复位之后,先按下复位键使之为低电平,然后按下第二个键,此时两个数码管开始倒计时显示,时间变化间隔为一秒,因为所时钟信号为1hz。当然在倒计时的过程中可以通过控制第二个键的开通与关断来控制数码管的开始与暂停。 图56 报警显示当倒计时计到00时,此时开始光电报警,我们可以看到最左端数码管上方的小灯泡开始点亮,达到了设计的目的。在这之后按清零键或复位键,报警显示的小灯泡都将熄灭,如此可以循环操作。六、设计总结1、设计过程中遇到的问题及解决方法在进行源程序的仿真时,出现某一行的符号出现错误,仔细检查发现没有注意在对信号与变量赋值时,没有注意到赋值符号的不同,同时在引用单个数字与多个数字时所加的引号也不相同,因此引发一些错误。通过改变赋值符号,单引号,双引号等使程序得以更正。在进行引脚的锁定时,没有选择正确的方式,最终得到的是乱码,经过各种方式的分析、论证,选择了方式六,最终得以成功。当然在进行硬仿真时,所有的步骤都没有错误的情况下,依然没有预期的结果,通过对实验箱的熟悉,发现在显示方式的数码管旁边短路帽连接错误,应将短路帽置于上两位。2、设计体会在这一周的eda课程设计的实训中,在此次课程设计之前我对quartus软件有很好的了解,在此次课程设计时我将梁老师上课的内容在复习理解,在老师的指导帮助下进一步了解了vhdl语音的语法还有编程时需要了解的问题,并完成了此次课程设计,在此表示衷心的感谢。本次课程设计是将模拟电子技术基础和数字电子技术基础以及电工电子技术的内容相结合,在此次设计的过程中发现了自己对理论知识认识的不足还有在动手操作方面还欠缺锻炼,因此我在此次课程设计的时候加深对老师所教的内容进一步复习,并且在实验箱操作的时候我就更加加强了对实践的重视。通过这次课程设计我还知道了在学习这条道路上我们不断要加强学习,还要有坚持不懈的学习精神。要将理论知识与实践相结合,要用理论指导实践,用实践来验证理论,让我们学于所用。在此次课程设计中我还更加体会到团结的重要性,要有协助精神,这样我们才能事半功倍!但是由于时间关系,还是有很多做的不对的地方。比如说在调试的时候要考虑功能仿真和时序仿真,在功能仿真的时候我能得到正确的仿真结果,但是到了功能仿真的时候就要考虑到器件的延迟问题,但是我们此次所做的课程设计用的是比较小的器件,所以功能仿真就没有好多的延迟问题。我们要更好的考虑到延时问题,这样既会让所设计的器件的功能更加完善。3、对设计的建议本课程所做篮球竞赛计时器功能过于单调简单,在现实应用中不能得到广泛的应运。考虑到这一问题,我们应该在此基础上添加新的功能。例如在倒计时的同时可

温馨提示

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

评论

0/150

提交评论