数字逻辑电路课程设计报告——多功能数字钟综述_第1页
数字逻辑电路课程设计报告——多功能数字钟综述_第2页
数字逻辑电路课程设计报告——多功能数字钟综述_第3页
数字逻辑电路课程设计报告——多功能数字钟综述_第4页
数字逻辑电路课程设计报告——多功能数字钟综述_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、江苏大学数字逻辑课程设计多功能数字钟专业:软件 1001学号:3100608024姓名:张同学2012年 1 月 11日、设计目的1、学会应用数字系统方法进行电路设计;2、进一步提高 Maxplus软件开发应用能力;3、培养综合实验的能力;二、设计要求1、能进行正常的记时、记分、记秒2、实现校时、校分以及秒清 0 的功能3、实现整点报时的功能4、实现时间的正常显示5、闹时功能的实现三、具体设计思路1、利用按键实现“校时”、 “校分”和“秒0清”功能。(1)SA:校时键。按下 SA键时,时计数器迅速递增,按 24 小时循环, 并且计满 23时回到 00。(2)SB:校分键。按下 SB键时,分计数

2、器迅速递增,按 60 小时循环, 并且计满 59时回到 00,但不向时进位。(3)SC:秒清零。按下 SC时,秒计数器清零。 要求按键均不产生数字跳变,因此须对“ SA”、“SB”进行消抖处理。 实现:十进制计数器的设计:VHDL描述:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ls160 is port(data:in std_logic_vector(3 downto 0);clk,ld,p,t,clr:in std_logic;count:buffer std_logic_

3、vector(3 downto 0);tc:out std_logic);end ls160;architecture behavior of ls160 isbegintc=1when (count=1001and p=1and t=1and ld=1and clr=1)else 0;cale:process(clk,clr,p,t,ld)beginif(rising_edge(clk)thenif(clr=1)thenif(ld=1)then if(p=1)then if(t=1)then if(count=1001)then count=0000;elsecount=count+1;en

4、d if;elsecount=count;end if;elsecount=count;end if;elsecount=data;end if;else count-X0E K(SiXEm- *ZKXXKwKXKKXG二YX r-XS gXX-frZ: m*Cii-nnnc6 XraM4XgX *XTfr XE*6iEX rEKCd62r- 严io- Ku7fK-+ m- Kr-w11TX0曰巴當罢w-p寿 曰E誇菁ZP 一5_一 令 0匚露相邑君 曰管常舊 ils-_一 0豊m巴一bxa4PX!xass fir 尋彳 虽9 Eg Q*L_b 1 畧ST E-bMMIKl3qeh9*H:uv

5、clMulzllHiQI左 pu*!iM-lIIMIEA-txndT&.wptl fl 曲乐 E-自 dfwaMulEIEA -pq盘1孟HMII $吐*1| 请NE3*-rt-pzu-rt1ljqu JPK 口 g】 wpvl-ll.-rl护 un*H!u;lDiMrclHc!lllpl*iil*iIlslomft-txn2、能进行整点报时。1)在 59 分 50、52、 54、56、58 秒按 500Hz频率报时;2)在 59 分 60 秒用 1KHz的频率作最后一声正点报时。 VHDL 描述:library ieee;use ieee.std_logic_1164.all;use iee

6、e.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity baoshi isport(m1,m0,s1,s0 : in std_logic_vector(3 downto 0); sig500,sig1k : out std_logic);end hourring;architecture a of baoshi is signal q : std_logic_vector(15 downto 0);signal s500,s1k : std_logic;beginq(15 downto 12)=m1;q(11 downto 8)

7、=m0;q(7 downto 4)=s1;q(3 downto 0)=s0;hring : blockbegins500=1 when q=0101100101010000 else1 when q=0101100101010010 else1 when q=0101100101010100 else1 when q=0101100101010110 else1 when q=0101100101011000 else 0;s1k=1 when q=0000000000000000 else0;end block hring; sig500=s500;sig1k=s1k;end a;个分3.

8、程序中由于需要输入多个不同的时钟信号, 故需要设计 频器,使输入时钟信号简化。VHDL描述: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity frequencydivider isport(cp:in std_logic; hz512,hz256,hz64,hz4,hz1:out std_logic);end frequencydivider;architecture one of frequencydivider is SI

9、GNAL clk: std_logic_vector(9 downto 0);beginprocess(cp)beginif cpevent and cp=1thenif clk=1111111111thenclk=0000000000; else clk=clk+1; end if;end if;end process; hz512=clk(0); hz256=clk(1); hz64=clk(3); hz4=clk(7); hz1=clk(9); end one;4、能进行正常的时、分、秒计时,用动态扫描的方式显示,需 用 6 个数码管。(1) 用 M6M5进行 24 进制小时的显示。(2

10、) 用 M4M3进行 60 进制分的显示。3) 用 M2M1进行 60 进制秒的显示动态扫描用 VHDL描述: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity dtsm isport(clk:in std_logic;s :in std_logic_vector(7 downto 0); f :in std_logic_vector(7 downto 0); m :in std_logic_vector(7 downto 0)

11、; selout:out std_logic_vector(5 downto 0); segout:out std_logic_vector(6 downto 0) );end dtsm ;architecture rt1_dtsm of dtsm issignal number:std_logic_vector(3 downto 0); signal sel :std_logic_vector(5 downto 0); signal seg :std_logic_vector(6 downto 0); signal q :std_logic_vector(2 downto 0); begin

12、rt1_dtsm:process(clk)beginif(clkevent and clk=1)thenqselselselselselselsel=000000; end case;end process;processbeginif sel =000001thennumber=m(3 downto 0); elsif sel=000010thennumber=m(7 downto 4); elsif sel=000100thennumber=f(3 downto 0); elsif sel=001000thennumber=f(7 downto 4); elsif sel=010000th

13、ennumber=s(3 downto 0); elsif sel=100000thennumber=s(7 downto 4); elsenumbersegsegsegsegsegsegsegsegsegsegseg=0000000; end case;end process;selout=sel; segout=seg; end rt1_dtsm;附:顶层图四、遇到的问题及解决方法1、为了连接方便,对图经行必要的旋转时,导致了输入输出移位,以致编译错误,耗费了 大量时间,可见细节很重要。2、做七段显示器时,由于扫描频率过低,显示闪烁,当频率高于256 时,可以正常显示。3、报时时需要两个不同的频率。通过电路中两个与门和一个或门将两个不同信号选择的送 到扬声器。五、设计结果 下载到实验板上后,可以在七段数码管上正确显示时间,且具有整点报时、手动校时的 功能,但是没有实现闹铃功能。六、实验总结通过这次多功能数字钟的设计实验, 让我基本上掌握了 VHDL 语言的编写和图形连接, 使我熟悉了对 MaxPlus II 软件的使用并加深了对 VHDL 语言编程和图形编辑的认识和了解。 也同时更加熟练的掌握了运用波形图进行仿真以及下载测试。 也让我了解了关于数字钟的 原理与设计理念, 要设计一个电路先进行软件

温馨提示

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

评论

0/150

提交评论