欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    EDA数字时钟设计.docx

    • 资源ID:13105534       资源大小:122.77KB        全文页数:13页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    EDA数字时钟设计.docx

    1、EDA数字时钟设计EDA课程设计报告书课题名称数字时钟设计姓 名学 号院、系、部电气系专 业电子信息工程指导教师2013年 12 月 3 日数字时钟设计一、设计目的了解数字钟的工作原理。通过学习的VHDL语言结合EDA的设计知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。通过对实用数字钟的设计,巩固和综合运用计算机原理的基本理论和方法,理论联系实际,提高设计能力,提高分析、解决计算机技术实际问题的独立工作能力。详细目的如下:1 熟悉集成电路的引脚安排;2 学习和掌握EDA设计电路的应用;3 掌握各芯片的逻辑功能及使用方法;4 了解数字钟的组成及工作原理;5 熟悉数

    2、字钟应该具有的功能;6 熟悉数字钟的设计与制作。二、设计要求多功能数字钟应该具有的功能有:首先要知道钟表的工作机理,整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,但是需要注意的是,小时的范围是从023时。在设计中为了显示的方便,由于分钟和秒钟显示的范围都是从059,所以可以用一个3位的二进制码显示十位,用一个四位的二进制码(BCD码)显示个位,对于小时因为它的范围是从023,所以可以用一个2位的二进制码显示十位,用4位二进制码(BCD码)显示个位。设计中由于七段码管是扫

    3、描的方式显示,所以虽然时钟需要的是1Hz时钟信号,但是扫描的确需要一个比较高频率的信号,因此为了得到准确的1Hz信号,必须对输入的系统时钟进行分频。对于报警信号,由于实验箱上只有一个小的扬声器,而要使扬声器发声,必须给其一定频率的信号进行驱动,频率越高,声音越尖。另外由于人耳的听觉范围是300Hz3.4KHz左右,所以设计时也要选择恰当的发声频率。Clock选择10KHZ。本设计的任务就是设计一个数字钟,要求显示格式为小时分钟秒钟。系统时钟选择时钟模块的10KHz,要得到1Hz时钟信号,必须对系统时钟进行10000次分频。用S1按键作为系统时钟复位,复位后全部显示000000。三、流程图设计数

    4、字时钟设计流程图如图3-1所示:图3-1 程序流程图四、程序设计(程序代码)1、秒钟计数器源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY second ISPORT( clk,reset,setmin:STD_LOGIC; enmin:OUT STD_LOGIC; daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END second;ARCHITECTURE fun OF second ISSIGNAL count:STD_LOGIC_VECTOR

    5、(6 DOWNTO 0);SIGNAL enmin_1,enmin_2:STD_LOGIC; BEGIN daout=count; enmin_2=(setmin and clk); enmin=(enmin_1 or enmin_2); PROCESS(clk,reset,setmin) BEGIN IF(reset=0)THEN count=0000000; ELSIF(clk event and clk=1)then IF(count(3 downto 0)=1001)then IF(count16#60#)then IF(count=1011001)then enmin_1=1;cou

    6、nt=0000000; ELSE count=count+7; END IF; ELSE count=0000000; END IF; ELSIF(count16#60#)then count=count+1; enmin_1=0after 100 ns; ELSE count=0000000; END IF; END IF; END PROCESS;END fun;2、分钟计数器源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY minute IS PORT(clk,clk1,r

    7、eset,sethour:IN STD_LOGIC; enhour:OUT STD_LOGIC; daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END ENTITY minute ;ARCHITECTURE fun OF minute IS SIGNAL count :STD_LOGIC_VECTOR (6 DOWNTO 0); SIGNAL enhour_1, enhour_2: STD_LOGIC; BEGIN daout=count; enhour_2= (sethour and clk1); enhour= (enhour_1 or enhour_2);

    8、 PROCESS(clk,reset,sethour) BEGIN IF(reset=0) THEN count=0000000; ELSIF(clkevent and clk=1)THEN IF(count (3 DOWNTO 0) =1001)THEN IF(count 16#60#) THEN IF(count=1011001) THEN enhour_1=1; count=0000000; ELSE count=count+7; END IF; ELSE count=0000000; END IF; ELSIF (count 16#60#) THEN count=count+1; en

    9、hour_1=0 after 100 ns; ELSE count=0000000; END IF; END IF; END process;END fun;3、小时计数器源程序LIBRARY IEEE;use IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY hour IS PORT(clk,reset:IN STD_LOGIC; daout:out STD_LOGIC_VECTOR(5 DOWNTO 0);END ENTITY hour;ARCHITECTURE fun OF hour ISSIGNAL count

    10、:STD_LOGIC_VECTOR(5 DOWNTO 0); BEGIN daout=count; PROCESS(clk,reset) BEGIN IF(reset=0)THEN count=000000; ELSIF(clkevent and clk=1)THEN IF(count(3 DOWNTO 0)=1001)THEN IF(count16#23#)THEN count=count+7; else count=000000; END IF; ELSIF (count16#23#)THEN count=count+1; ELSE count=000000; END IF; END IF

    11、; END process; end fun;4、整点报时报警模块源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY alert IS PORT(clk:IN STD_LOGIC; dain:IN STD_LOGIC_VECTOR(6 DOWNTO 0); speak:OUT STD_LOGIC; lamp:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END alert;ARCHITECTURE fun OF alert IS SIGNAL count:STD

    12、_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL count1:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN speaker:PROCESS(clk) BEGIN speak=10)THEN count1=00; ELSE count1=count1+1; END IF; END IF; END IF; END PROCESS speaker; lamper:PROCESS(clk) BEGIN IF(rising_edge(clk)THEN IF(count=10)THEN IF(count=00)THEN lamp=001; ELSIF(coun

    13、t=01)THEN lamp=010; ELSIF(count=10)THEN lamp=100; END IF; count=count+1; ELSE count=00; END IF; END IF; END PROCESS lamper;END fun;5、数字电子钟显示模块源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity led is port(num:in std_logic_vector(3 downto 0); led:out std_logic_vector(

    14、6 downto 0);end led;architecture art of led isbegin led=1111110when num=0000else 0110000when num=0001else 1101101when num=0010else 1111001when num=0011else 0110011when num=0100else 1011011when num=0101else 1011111when num=0110else 1110000when num=0111else 1111111when num=1000else 1111011when num=100

    15、1else 1110111when num=1010else 0011111when num=1011else 1001110when num=1100else 1111110when num=1101else 1001111when num=1110else 1000111when num=1111;end art;五、仿真图及结果图(结果说明)1、秒计数器仿真波形图如图5-1所示:图5-1 秒计数器仿真波形图利用60进制计数器完成00到59的循环计数功能,当秒计数至59时,再来一个时钟脉冲则产生进位输出,即enmin=1;reset作为复位信号低电平有效,即高电平时正常循环计数,低电平清零

    16、。2、分钟计数器仿真波形图如图5-2所示:图5-2 分钟计数器仿真波形图利用60进制计数器完成00到59的循环计数功能,当分计数至59时,再来一个时钟脉冲则产生进位输出。3、小时计数器仿真波形图如图5-3所示:图5-3 小时计数器仿真波形图小时计数模块利用24进制计数器,通过分钟的进位信号的输入可实现从00到23的循环计数。4、整点报时报警模块仿真波形图如图5-4所示:图5-4 整点报时报警模块仿真波形图由图5-4知对于整点报时模块,当分钟计数至59时来一个时钟脉冲则产生一个进位信号,分钟计数到00,此时产生报警信号持续一分钟。当有时钟脉冲时lamp显示灯就闪烁依次点亮。5、数字时钟系统波形图

    17、仿真如图5-5所示:图5-5 数字时钟系统波形图仿真6、数字时钟系统原理图如图5-6所示:图5-6 数字时钟系统原理图实验箱使用模式7,键8为复位按键,键8为1时正常工作。键4设置小时,键7设置分钟。下载成功后,按下键8,及使六个LED复位清零,显示数秒的自动计时,可以通过4键设置小时数,7键设置分钟数。当秒数满60则进一位,分钟数满60进一位,当显示为23:59:59时,秒数在加一则显示00:00:00,之后重新计时。六、设计总结: 通过这次的EDA设计,我更加加深了对EDA的了解并对它产生了浓厚的兴趣,加深了对原理图方法的认识和应用能力,在试验过程中自己仍然存在很多问题,比如在仿真时总是得

    18、不到自己想要的理想的仿真结果,只能不断的调试,在程序设计方面应该锻炼自己的思考能力,通过这些实验,我们清楚的认识到只有动脑筋才能真正的掌握这门技术,遇到不懂的问题要即时想同学和老师请教并进一步思考,感谢这次实验设计给自己带来的宝贵经验,同时也希望能在老师的指导下进一步提高自己的实验能力。做课程设计时,先查阅相关知识,把原理吃透,确定一个大的设计方向,在按照这个方向分模块的把要实现的功能用流程图的形式展示。最后参照每个模块把输入和输出引脚设定,运用我们所学的VHDL语言进行编程。总之,通过这次的设计,进一步了解了EDA技术,收获很大,对软件编程、排错调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。感谢高迎霞和李磊老师对课程设计的辛苦指导!七、参考文献:1 EDA技术及实用教程赵全利、秦汉斌编著,机械工业出版社。2 EDA工程概论曾繁泰、李冰、李晓林编著,清华大学出版社。3 EDA技术应用朱运利编著,电子工业出版社。


    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开