ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:115.43KB ,
资源ID:18589994      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18589994.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(江苏大学数字逻辑电路课程设计Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

江苏大学数字逻辑电路课程设计Word下载.docx

1、(3) 可使用以EP1C12F324C8为核心的硬件系统上的扬声器进行整点报时。(4) 设置闹钟,并连接扬声器实现闹铃功能。(5) 通过以EP1C12F324C8为核心的硬件系统上的动态扫描数码管显示时间。二、顶层图三、 系统功能分析根据总体设计框图,可以将整个系统分为6个模块来实现,分别是计时模块、校时模块、整点报时模块、分频模块、动态显示模块及闹钟模块。1.时、分、秒的基本组成VHDL(1)24进制计数器源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logi

2、c_arith.all; entity cnt24 isport(clk:in std_logic; ql,qh:out std_logic_vector(3 downto 0); tc:out std_logic);end cnt24;architecture one of cnt24 is signal l,h:std_logic_vector(3 downto 0);signal co:std_logic; begin process(clk) if (clkevent and clk=1) then if (l1001 and (h=0000 or h=0001) then l=l+1

3、;h=h;co=0; end if; if(l=) then h=h+1;l= end if; if(l0100 and h0010) then if(l=0011 and h= h qh ql=l; tc=co; end process; end one;模块图:(2)60进制计数器 use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt60 is port ( clk,clr:buffer std_logic_vector(3 downto 0);out std_logic ); end cnt60;

4、architecture behavor of cnt60 issignal h,l: process(clk,clr) if (clr=) then h l co elsif (clk if (l= if (h=0101 else h else end behavor;2.分配器和二路选择器 (1)分配器entity dex2 isport(sel: data: in std_logic; o1,o2:end dex2;architecture beh of dex2 isbegin process(sel) if(sel=)then o1=data; else o2end beh;(2)二

5、路选择器entity mux2 is port( A,B: S: Y: );end mux2;architecture one of mux2 is process(A,B,S) if (S= Y=A; else=B; end if;end one;3.计时和校时模块校时模块设计实现校时、校分及秒清零功能:1)按下校时键,小时计数器迅速递增以调至所需小时位。2)按下校分键,分计数器迅速递增以调至所需分位。3)按下清零键,将秒计数器清零。4.整点报时模块 当计时至5950、5952、5954、5956、5958时,驱动扬声器低音报时,计时至整点时产生高音报时。输入端mh3.0和ml3.0用于连接

6、分位,sh3.0和sl3.0用于连接秒位;输出端sig500用于产生低音报时,sig1k用于产生高音报时。entity zdbs isport(mh,ml,sh,sl:in std_logic_vector(3 downto 0); sig500,sig1k: out std_logic);end zdbs;architecture behavior of zdbs isbegin sig500 when mh=and ml=and sh=and( sl=or sl= or sl=01101000) else sig1kand sl=end behavior;5.分频模块 在本系统中需要用到多

7、种不同频率的脉冲信号,上至1kHz的高音报时信号,下至1Hz的计秒脉冲。所有这些脉冲信号均可以通过一个基准频率分频器生成。基准频率分频器就是一个进制很大的计数器,利用计数器的分频功能,从不同的输出为得到所需要的脉冲信号。输出HZ1、HZ4、HZ64和HZ512可分别得到1Hz、4Hz、64Hz和512Hz的脉冲信号。将clk时钟端外接硬件系统基准时钟可直接得到频率为1kHz的时钟信号。entity freq_divider is clk: hz1,hz4,hz64,hz512:end freq_divider;architecture behavior of freq_divider is s

8、ignal q:std_logic_vector(9 downto 0); process(clk) begin if(rising_edge(clk) then q=q+1; end if; end process; hz1=q(9); hz4=q(7); hz64=q(3); hz512=q(0);6.动态显示模块时间的显示需要用到6个数码管,静态显示不够用,在动态方式下,所有数码管对应同一组七段码,每一个数码管由一个选择控制端点亮或熄灭。这里用6进制计数器来进行选择控制,每组时间经过七段码译码后输出到6个数码管,当某一组时的七段码到达时,只点亮对应位置上的数码管,显示相应的数字,6次一循

9、环,形成一个扫描序列,只要扫描频率超过人眼视觉暂留频率(24Hz),就可以达到点亮单个数码管,却能享有6个同时显示的视觉效果,人眼辨别不出差别。这里采用4-7译码器。控制信号sel用3-8译码器来控制。(1)动态扫描显示模块entity dtsm is port( clk: h:in std_logic_vector(7 downto 0); m: s: seg7out:out std_logic_vector(6 downto 0); sel:out std_logic_vector(2 downto 0)end dtsm;architecture behave of dtsm is sig

10、nal out1: signal sel1:std_logic_vector(2 downto 0); p1:process(clk) begin if (rising_edge(clk) then sel1=sel1+1; selout1=h(7 downto 4);001=h(3 downto 0);0101010011=m(7 downto 4);100=m(3 downto 0);101110=s(7 downto 4);111=s(3 downto 0); end case; end process p2; p3:process(out1) case out1 isseg7out00

11、00000 end process p3; end behave;(2)显示选择模块entity sel_show isport(jh,jm,nh,nm:sel:oh,om:out std_logic_vector(7 downto 0)end sel_show;architecture one of sel_show isprocess(sel,jh,jm,nh,nm)if (sel=oh=jh;om=jm;else=nh; om=nm;end process;7.闹钟模块 比较正常计数时间与闹钟定时时间是否相等,若相等,ring_out输出”1”,反之输出”0”.源程序:entity co

12、mpare is jh: jm: nh: nm: ring_out:end compare;architecture one of compare is process(jh,jm,nh,nm) if(jh=nh and jm=nm) then ring_out四、 引脚锁定五、 心得体会经过此次数字钟的设计,我确实从中学到很多的东西。首先,通过VHDL硬件语言的学习,我充分认识到了功能模块如何用语言实现,让我初步了解到了一个数字电路用硬件语言设计的方式和设计思想。其次,也让我深深地体会到实践的重要性,起初我学VHDL语言的时候,只是学得书本上的知识,经过这次课程设计,通过对模块的语言实现,对于VHDL语言我有了更深的认识。而且在程序错误的发现和改正的过程中,我得到了更多的收获,也确实让我进步了不少。再次,当我遇到一些问题的时候,请教老师,和同学们一起讨论,令我受益颇多!最后,这个多功能数字电子钟是自我创造与吸取借鉴共同作用的产物,是自我努力的结果。这让我对数字电路的设计充满了信心。虽然课程设计已经结束,但这并不代表着我已经真正掌握了VHDL语言,仍需继续学习!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1