欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    数字逻辑电路设计课程设计多功能数字钟.doc

    • 资源ID:4192495       资源大小:104.50KB        全文页数:10页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数字逻辑电路设计课程设计多功能数字钟.doc

    数字逻辑电路设计课程设计多功能数字钟学院:计算机科学与通信工程班级:物联网1101学号:3110611002姓名: 朱一指导老师: 金华提交日期:2012年6月17日一 设计任务及要求:(1)、拥有正常的时、分、秒计时功能。(2)、能利用实验板上的按键实现校时、校分及秒清零功能。(3)、能利用实验板上的扬声器做整点报时。(4)、闹钟功能。(5)、在Quartus II中采用层次设计方法进行设计。(6)、完成全部电路设计后在设计板上下载,验证设计课题的正确性。二 功能简介:完成时钟的计时、调整,整点报时等基础功能,完成闹钟的设置、开启和关闭功能,整点报时的开启和关闭功能,完成时间设定和显示功能。三 多功能数字钟的总体设计框图: 时显示器 分显示器 秒显示器闹时设置清零校时校分时十位 时个位分十位 分个位秒十位 秒个位扬声器译码器 译码器译码器 译码器译码器 译码器时计数器分计数器秒计数器MUXMUX报时电路HADJHAOJSCLR基准频率分频器DASBSC1Hz4Hz64Hz500Hz闹钟电路SC四 各模块电路图及程序:设计方案:根据总体设计框图,可以将整个系统分为6个模块来实现,分别是计时模块、校时模块、整点报时模块、分频模块、动态显示模块.(1)计时模块该模块的设计相对简单,使用一个二十四进制和两个六十进制计数器级联,构成数字钟的基本框架。二十四进制计数器用于计时,六十计时器用于计分和计秒。只要给秒计数器一个1Hz的时钟脉冲,则可以正常计时。分计数器以秒计数器的进位作为计数脉冲,小时计数器以分计数器的进位作为计数脉冲。(2)校时模块校时模块设计要求实现校时、校分以及秒清零的功能。 1按下校时键,小时计数器迅速递增以调至所需要的小时位。 2按下校分键,分数计数器迅速递增以调至所需要的分位。 3按下清零键,将秒计数器清零。可以选择实验板上的3个脉冲案件进行锁定。对于此模块的设计,有3个需要注意的问题:1在校分时,分数计数器的计数不应对小时位产生影响,因而需要屏蔽此时分计数器的进位信号以防止小时计数器计数。2按键抖动的消除所谓“抖动”是指一次按键时的弹跳现象,通常实验板中按键所用的开关为机械弹跳开关,由于机械点的弹性作用,按键开关在闭合时并不能马上接通,而断开时也并不能马上断开,使得闭合及断开的瞬间伴随着一系列的电压抖动,从而导致本来一次按键,希望计数一次,结果因为抖动多次计数多次,且计数随机,这样就严重影响了时间的校对。3计数采用1Hz的脉冲驱动计数器计数,而校对时间对应选用相对高频率的信号驱动计数器以达到快速校对时间的目的。显然,这两种计数器脉冲之间需要进行相应的选择切换。于是将计时和校时模块合起来的电路是实现示意图所示。两种脉冲信号用两路选择器进行选择,选择条件为是否按键。按键输出经过了消抖处理。二十四进制计数器六十进制计数器六十进制计数器2MUX2MUX消抖校时消抖校分1Hz高频计数脉冲分频 多功能数字钟的计时和校时模块(3)整点报时模块该模块的功能要求是:计时到59分50秒时,每两秒一次低音报时,整点时进行高音报时,可以将报时信号接到实验板上的扬声器输出。而已不同频率的脉冲信号区分低音和高音报时。比如可以用500Hz信号进行低音报时,1kHz信号作为高音报时信号。进行报时的条件是计数器计数至所需要的时间点,因而需要实现一个比较模块,将分计数器和秒计数器的输出连至比较输入端完成比较过程。(4)分频模块在本系统中需要用到多种不同频率的脉冲信号,上至高音报时信号,下至1Hz的计时脉冲。所有这些脉冲信号均可以通过一个基准分频分频器产生。基准频率分频器就是一个进制很大的计数器,利用计数器的分频功能,从不同的输出为得到所需要的脉冲信号。(5)动态显示模块 时间的显示需要用到6个数码管,如果实验板上可用的静态显示数码管有6个或6个以上则很容易实现,只需要将小时高位到秒低位Ginger6组输出按顺序锁定到6个数码管上即可。(6)闹钟模块闹钟模块要求数字钟计时到所设定的任意时间时均能驱动扬声器报时。该模块的设计应考虑到以下几个问题。1 设定的闹钟的时间应使用新的计数器进行存储,与正常的计时互不干扰。2 与正常计时状态的显示切换。可以设定一个按键,用于选择是将计时时间还是将闹钟时间状态送动态显示模块。3 应实现一个比较模块,当计时到与闹钟时间相等时,则驱动扬声器鸣叫。4 闹钟响声应限定在一定时间内,比如一分钟,且在这段时间内应随时可以通过按键取消闹时状态(扬声器停止鸣叫)。将上述6个功能模块分别加以实现,再连接成为顶层原理图,编译后锁定管脚下载验证结果的正确性。整体电路连接图:各元器件连接图或VHDL程序:(1) cnt24:(2) cnt60m (3) cnt60s(4) v24jingzhilibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity v24jingzhi is port( clk,epet:in std_logic; jh,jm:buffer std_logic_vector(3 downto 0);end v24jingzhi;architecture beha of v24jingzhi isbegin process(clk) begin if(rising_edge(clk) and epet='1')then if(jm="0011" and jh="0010")then jm<="0000"jh<="0000" else if(jm="1001")then jh<=jh+1;jm<="0000" else jm<=jm+1; end if; end if; end if; end process;end beha;(5) v60jingzhilibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity v60jingzhi is port( clk,epet:in std_logic; jh,jm:buffer std_logic_vector(3 downto 0);end v60jingzhi;architecture beha of v60jingzhi isbegin process(clk) begin if(rising_edge(clk) and epet='1')then if(jm="1001" and jh="0101")then jm<="0000"jh<="0000" else if(jm="1001")then jh<=jh+1;jm<="0000" else jm<=jm+1; end if; end if; end if; end process;end beha;(6) freq_divider(7) zdbslibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zdbs is port(mh,ml,sh,sl:in std_logic_vector(3 downto 0);sig500,sig1k:out std_logic);end zdbs;architecture beha of zdbs isbegin sig500<='1' when mh="0101"and ml="1001"and sh="0101"and (sl="0000"or sl="0010"or sl="0100"or sl="0110"or sl="1000")else'0' sig1k<='1' when (mh="0000"and ml="0000"and sh="0000"and sl="0000")else '0'end beha;(8) nzbslibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity nzbs is port(jh,jm,nh,nm:in std_logic_vector(7 downto 0);sig1k:out std_logic);end nzbs;architecture beha of nzbs isbegin sig1k<='1' when (jh=nh and jm=nm)else '0'end beha;(9) ndtsmlibrary ieee ;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; ENTITY ndtsm is port( clk,k3:in std_logic; h,m,s,nh,nm:in std_logic_vector(7 downto 0); seg7out:out std_logic_vector(6 downto 0); sel:buffer std_logic_vector(2 downto 0) );END ndtsm;ARCHITECTURE beha of ndtsm is signal key:std_logic_vector(3 downto 0); BEGIN PROCESS(clk) variable dount:std_logic_vector(2 downto 0):="000" BEGIN IF(rising_edge(clk)then if(k3='0')then IF dount="101" then dount:="000" ELSE dount:=dount+1; END IF; else IF dount="011" then dount:="000" ELSE dount:=dount+1; END IF; end if; END IF; sel<=dount; end process; PROCESS(sel) BEGIN if(k3='0')then CASE sel IS when "000"=>key<=h(7 downto 4); when "001"=>key<=h(3 downto 0); when "010"=>key<=m(7 downto 4); when "011"=>key<=m(3 downto 0); when "100"=>key<=s(7 downto 4); when "101"=>key<=s(3 downto 0); when others=>null; END CASE; else CASE sel IS when "000"=>key<=nh(7 downto 4); when "001"=>key<=nh(3 downto 0); when "010"=>key<=nm(7 downto 4); when "011"=>key<=nm(3 downto 0); when others=>null; END CASE; end if; END PROCESS; PROCESS (key) BEGIN case key is when"0000"=>seg7out<="0111111" when"0001"=>seg7out<="0000110" when"0010"=>seg7out<="1011011" when"0011"=>seg7out<="1001111" when"0100"=>seg7out<="1100110" when"0101"=>seg7out<="1101101" when"0110"=>seg7out<="1111101" when"0111"=>seg7out<="0000111" when"1000"=>seg7out<="1111111" when"1001"=>seg7out<="1101111" when"1010"=>seg7out<="1110111" when"1011"=>seg7out<="1111100" when"1100"=>seg7out<="0111001" when"1101"=>seg7out<="1011110" when"1110"=>seg7out<="1111001" when"1111"=>seg7out<="1110001" when others=>null; END CASE; END PROCESS; END beha;各模块连接图:(1)、计时、校时模块:(2)、分频模块:(3)、整点、闹钟报时模块:(4)、动态显示模块:五、心得体会: 通过本次数字逻辑电路的设计,我学到了很多东西,最重要的是去做好一个东西的心态,也许在你拿到题目时会觉得困难,但是只要你态度认真,一点一点去实现它,你就肯定会完成的。设计时最麻烦的就是联线了,有时候画的线和其它线重要合时会看不到,有时又会连到元器件内部难以删除,再加上电路有这么大了,显示器的界面宽度又有限,所以做起来有点麻烦,这个时候就要有足够的耐心了。从这次设计中我觉得我学到了以下东西:1.对于数字逻辑一些基本知识有了更深的了解。2.提高了对VHDL语言的应用能力。3.增强了面对困难勇于面对,勇于解决的信心。4.进一步的掌握了Quartus II开发平台的使用。5.对于时序电路的设计有了一定的深入了解。参考文献:数字逻辑电路设计(第二版) 鲍可进,赵不贿,赵念强 编著

    注意事项

    本文(数字逻辑电路设计课程设计多功能数字钟.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开