数字电路与系统课程设计设计题目:数字秒表的设计_第1页
数字电路与系统课程设计设计题目:数字秒表的设计_第2页
数字电路与系统课程设计设计题目:数字秒表的设计_第3页
数字电路与系统课程设计设计题目:数字秒表的设计_第4页
数字电路与系统课程设计设计题目:数字秒表的设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、大连理工大学城市学院数字电路与系统课程设计设计题目:数字秒表的设计学院:电子与自动化学院专业:电子信息工程学生:梁哲伟同组人:成海彬指导教师:许少娟完成日期:2015年4月16日目录第一章设计任务1.1项目名称1.2项目设计说明1.2.1设计任务和要求1.2.2进度安排1.3项目总体功能图第二章需求分析2.1问题基本描述2.2系统问题分析及功能基本要求2.3设计原理2.4分解设计第三章调试并分析结果3.1输入说明3.2仿真预计输出3.3测试结果记录3.4测试结果分析第四章结论心得体会参考文献第一章设计任务1.1项目名称:数字秒表的设计1.2项目设计说明1.2.1设计任务和要求设计用于体育比赛的

2、数字秒表要求:(1计时器能显示0.01s的时间(2计时的最长时间为24h1.2.2进度安排第一次课:预答辩,顶层设计第二次课:分频模块、按键模块、显示模块等简单模块的设计第三次课:计时模块的设计第四次课:将底层模块进行连接调试第五次课:秒表的系统仿真和分析第六次课:成果展示及其答辩1.3项目总体功能图按键1:清零/开始按键2:暂停/启动中心模块(计时去抖等显示:8个七段数码管第二章需求分析2.1问题基本描述本数电课设,旨在熟练运用Quartus II设计并在DE2板实现可用于体育计时的数字秒表,具有开始、暂停和清零等功能。2.2系统问题分析及功能基本要求本系统应该包含两个按键,作为输入;用8个

3、数码管作为显示输出;其核心控制为百计数器、60计数器和24计数器。按键部分应加入按键去抖模块,防止影响使用。基本要求为实现秒表准确计时,暂停、开始以及清零等功能可以使用,显示部分能够清晰准确的显示。2.3设计原理 设计原理如上图。2.4分解设计模块BAI:该模块为100进制计数器,输出的数值为0.01s和0.1s.程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity bai isport(clr,clk:in std_logic;bai1,bai0:out std_logic_vec

4、tor(3downto0;co:out std_logic;end bai;architecture bai_arc of bai isbeginprocess(clk,clrvariable cnt0,cnt1:std_logic_vector(3downto0;beginif clr='0'thencnt0:="0000"cnt1:="0000"elsif clk'event and clk='1'thenif cnt0="1000"and cnt1="1001"then

5、cnt0:="1001"co<='1'elsif cnt0<"1001"thencnt0:=cnt0+1;elsecnt0:="0000"if cnt1<"1001"thencnt1:=cnt1+1;elsecnt1:="0000"co<='0'end if;end if;end if;bai1<=cnt1;bai0<=cnt0;end process;end bai_arc;模块MIAO:该模块为60进制计数器,用于对秒和分的

6、计数。程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity miao isport(clk,clr,en:in std_logic;sec1,sec0:out std_logic_vector(3downto0;co:out std_logic;end miao;architecture mian_arc of miao isbeginprocess(clk,clrvariable cnt1,cnt0:std_logic_vector(3downto0;beginif clr=

7、9;0'thencnt1:="0000"cnt0:="0000"elsif clk'event and clk='1'thenif en='1'thenif cnt1="0101"and cnt0="1000"thenco<='1'cnt0:="1001"elsif cnt0<"1001"thencnt0:=cnt0+1;elsecnt0:="0000"if cnt1<&qu

8、ot;0101"thencnt1:=cnt1+1;elsecnt1:="0000"co<='0'end if;end if;end if;end if;sec1<=cnt1;sec0<=cnt0;end process;end mian_arc;模块HOU:该模块为24进制计数器,计数的输出为小时的数值。程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hou isport(en,clk,clr:in std_log

9、ic;h1,h0:out std_logic_vector(3downto0;end hou;architecture hour_arc of hou isbeginprocess(clkvariable cnt1,cnt0:std_logic_vector(3downto0;beginif clr='0'thencnt1:="0000"cnt0:="0000"elsif clk'event and clk='1'thenif en='1'thenif cnt0="0011"an

10、d cnt1="0010"thencnt0:="0000"cnt1:="0000"elsif cnt0<"1001"thencnt0:=cnt0+1;elsecnt0:="0000"cnt1:=cnt1+1;end if;end if;end if;h1<=cnt1;h0<=cnt0;end process;end hour_arc;模块DOU:它是同步消抖动模块。程序:library ieee;use ieee.std_logic_1164.all;entity dou is

11、port(din,clk:in std_logic;dout:out std_logic;end dou;architecture dou_arc of dou issignal x,y:std_logic;beginprocess(clkbeginif clk'event and clk='1'thenx<=din;y<=x;end if;dout<=x and(not y;end process;end dou_arc;模块AAB:秒表的启停是通过控制送给计数器的时钟来实现的,当按下启停键后,信号Q的状态发生反转。Q为“1“时,时钟可通过与门,秒表

12、计时;Q为”0“时,时钟被屏蔽,计数器得不到时钟,停止计数。程序:library ieee;use ieee.std_logic_1164.all;entity aab isport(a,clk,clr:in std_logic;q:out std_logic;end aab;architecture aaa_arc of aab isbeginprocess(clkvariable tmp:std_logic;beginif clr='0'thentmp:='0'elsif clk'event and clk='1'thenif a=&

13、#39;1'thentmp:=not tmp;end if;end if;q<=tmp;end process;end aaa_arc;模块DISP:它是七段译码器。程序:library ieee;use ieee.std_logic_1164.all;entity disp isport(d:in std_logic_vector(3downto0;q:out std_logic_vector(6downto0;end disp;architecture disp_arc of disp isbeginprocess(dbegincase d iswhen"0000&

14、quot;=>q<="1000000"when"0001"=>q<="1111001"when"0010"=>q<="0100100"when"0011"=>q<="0110000"when"0100"=>q<="0011001"when"0101"=>q<="0010010"when"0110&

15、quot;=>q<="0000010"when"0111"=>q<="1011000"when"1000"=>q<="0000000"when"1001"=>q<="0010000"when others=>q<="1111111"end case;end process;end disp_arc;模块FEN:它是分频模块,用于将DE2板上的50Mhz的时钟频率分成100hz的

16、频率用于计时。程序:library ieee;use ieee.std_logic_1164.all;entity fen isport(clk:in std_logic;q:out std_logic;end fen;architecture fen_arc of fen isbeginprocess(clkvariable cnt:integer range0to249999;variable x:std_logic;beginif clk'event and clk='1'thenif cnt<249999thencnt:=cnt+1;elsecnt:=0;

17、x:=not x;end if;end if;q<=x;end process;end fen_arc;第三章调试并分析结果3.1输入说明输入只要求两个按键和一个时钟信号,时钟信号是经过分频之后的100hz,按键主要问题在于它的同步去抖。可以防止抖动造成按键错误。3.2仿真预计输出仿真预计输出:直接使用DE2板进行下载实验,观看结果。3.3测试结果记录1.分频仿真由于从50Mhz直接分频到100hz,倍数较大,效果查看不明显,再此使用50分频,是效果观察完好,并保证程序段准确性。 2.消抖请注意画圈部分,按键发生了抖动,其输出却没有抖动。 3.百计数器在图中,对计数、暂停和进位分别做了批注。 4.60计数器原理同百计数器,不做说明。5.24计数器原理同百计数器,不做说明。6.AAB启停模块当按下启停键后,信号Q的状态发生反转。Q为“1“时,时钟可通过与门,秒表计时;Q为”0“时,时钟被屏蔽,计数器得不到时钟,停止计数。 7.DISP显示模块0和8正好是反着对应的,一眼可以看出来,其它的验证可以通过查表对应出来,可以验证其正确性。 7.顶层文件仿真到了顶层文件,可以直接进行编译,下载到DE2板进行实际查看检验。 3.4 测试结果分析 仿真结果如 3.3 所示,下载后实际结果也较为理想,虽有一点小瑕疵,但经过调 整后可以完美运行。 第四章 结论 这次秒表设计总体来说

温馨提示

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

评论

0/150

提交评论