电子实时时钟 李洪渊

上传人:枫** 文档编号:544058585 上传时间:2023-09-21 格式:DOC 页数:17 大小:274KB
返回 下载 相关 举报
电子实时时钟 李洪渊_第1页
第1页 / 共17页
电子实时时钟 李洪渊_第2页
第2页 / 共17页
电子实时时钟 李洪渊_第3页
第3页 / 共17页
电子实时时钟 李洪渊_第4页
第4页 / 共17页
电子实时时钟 李洪渊_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《电子实时时钟 李洪渊》由会员分享,可在线阅读,更多相关《电子实时时钟 李洪渊(17页珍藏版)》请在金锄头文库上搜索。

1、机电工程学院机电工程学院 系 汽车检测与维修技术 专业 09 级毕业设计(论文)题目 电子实时时钟 姓 名:李洪渊学 号:200902110011指导老师: 【摘 要】VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体

2、。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。(1)VHDL 语言功能强大,设计方式多样 (2) VHDL 语言具有强大的硬件描述能力 (3) VHDL 语言具有很强的移植能力 (4) VHDL 语言程序易于共享和复用 VHDL 语言采用基于库 ( library) 的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。 由于 VHDL 语言是一种描述、模拟、综合、优化和布线的标准硬件

3、描述语言,因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬件电路设计的工作量,缩短开发周期。关键词:数字系统 VHDL语句 目录1 引言32 设计目的33 电子时钟功能34 电子时钟设计34.1 设计思路34.2 电子时钟各模块的设计44.2.1 秒计时器的设计44.2.2 分计时器的设计64.2.3 时计时器的设计84.2.4 7段显示译码器的设计104.2.5 整点报时器的设计125 电子时钟顶层电路图136 系统仿真波形137 硬件测试及引脚锁定148 设计心得与体会15参考文献15电子时钟设计1 引言EDA技术在电子设计领域越来越普及,本设计主要利用VHDL语言在ED

4、A平台上设计一个电子数字时钟,它的计时周期为24小时,显示的最大时间为23时59分59秒,另外还具有校时功能和整点报时功能。总的程序由5个模块组成,分别为秒计时器、分计时器、时计时器、7段显示译码器和整点报时器。2 设计目的此次设计的主要目的是学会使用M AX+PLUSII软件,掌握用VHDL语言设计编写源程序,并要求下载到实验箱实现所实现电子时钟的各项功能。通过这次设计,让我们加深对理论知识的理解,培养理论联系实际的能力,提高分析问题和解决问题的能力。3 电子时钟功能(1)计时功能:这是电子时钟的基本功能,每隔一秒钟计时一次,并在显示屏上显示当时时间。(2)校时功能:能设置实时时间作为数字钟

5、的当前时间,具有小时、分钟、秒钟的校准时间功能。(3)整点报时功能:每逢整点,整点报时器自动报时。4 电子时钟设计4.1 设计思路该数字钟可以实现3个功能:计时功能、整点报时功能和重置时间功能,因此有3个子模块:计时、报时、重置时间。其中计时模块由3部分构成:秒计时器、分计时器和时计时器。秒计时器和分计时器都是由60进制的计数器构成的,具有清0、置数和计数功能。当清0信号为低电平时,计时器清0;当置数信号为高电平时,计时器置数;clk为脉冲信号,ci为输入信号。co为计时器的进位信号,作为下一级的输入信号。时计时器是由一个24进制的计数器构成的,具有清0、置数和计数功能。当清0信号为低电平时,

6、计时器清0;当置数信号为高电平时,计时器置数;clk为脉冲信号,ci为输入信号。7段数码显示模块的功能是在显示屏上显示当时时间。1对应的显示代码为0110000,2对应的显示代码为1101101,3对应的显示代码为1111001,4对应的显示代码为0110011,5对应的显示代码为1011011,6对应的显示代码为1011111,7对应的显示代码为1110000,8对应的显示代码为1111111,9对应的显示代码为1111011,0对应的显示代码为1111110。报时模块的功能是当整点时,报时器输出高电平,并且持续1分钟。4.2 电子时钟各模块的设计4.2.1 秒计时器的设计(1)秒计时器源程

7、序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity second isport(clk,ci,nreset,load:in std_logic; d:in std_logic_vector(7 downto 0); co:out std_logic; qh:buffer std_logic_vector(3 downto 0); ql:buffer std_logic_vector(3 downto 0);end second;architecture behave of second

8、 isbegin co=1when(qh=0101and ql=1001and ci=1)else0; process(clk,nreset) begin if(nreset=0)then qh=0000; ql=0000; elsif(clkevent and clk=1)then if(load=1)then qh=d(7 downto 4); ql=d(3 downto 0); elsif(ci=1)then if(ql=9)then ql=0000; if(qh=5)then qh=0000; else qh=qh+1; end if; else ql=ql+1; end if; en

9、d if; end if; end process;end behave;(2)秒计时器仿真波形在秒计时器的(clk)输入一个周期为(2us)的时钟信号;清0端(nreset)前面一小段为低电平,后面均为高电平;置数端(load)中间一段为高电平,其余均为低电平;将(ci)端置高电平,秒重置端(d)置数值为56秒,进行仿真,产生如下波形:图1 秒计时器仿真波形图由上述波形可以清楚的看到:当清0信号(reset)无效时,秒计时器置数,从50秒开始计数,到59秒时回到0,并且从ensec输出一个高电平。(3)秒计时器原理图图2 秒计时器原理图4.2.2 分计时器的设计(1)分计时器源程序libra

10、ry ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minute isport(clk,ci,nreset,load:in std_logic; d:in std_logic_vector(7 downto 0); co:out std_logic; qh:buffer std_logic_vector(3 downto 0); ql:buffer std_logic_vector(3 downto 0);end minute;architecture behave of minute isbeg

11、in co=1when(qh=0101and ql=1001and ci=1)else0; process(clk,nreset) begin if(nreset=0)then qh=0000; ql=0000; elsif(clkevent and clk=1)then if(load=1)then qh=d(7 downto 4); ql=d(3 downto 0); elsif(ci=1)then if(ql=9)then ql=0000; if(qh=5)then qh=0000; else qh=qh+1; end if; else ql=ql+1; end if; end if;

12、end if; end process;end behave;(2)分计时器仿真波形在分计时器的(clk)输入一个周期为(2us)的时钟信号;清0端(nreset)前面一小段为低电平,后面均为高电平;置数端(load)中间一段为高电平,其余均为低电平;将(ci)端置高电平,分重置端(d)置数值为56分,进行仿真,产生如下波形:图3 分计时器仿真波形图(3)分计时器原理图图4 分计时器原理图4.2.3 时计时器的设计(1)时计时器源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity h

13、ours isport(clk,ci,nreset,load:in std_logic; d:in std_logic_vector(7 downto 0); qh:buffer std_logic_vector(3 downto 0); ql:buffer std_logic_vector(3 downto 0);end hours;architecture behave of hours isbegin process(clk,nreset) begin if(nreset=0)then qh=0000; ql=0000; elsif(clkevent and clk=1)then if(load=1)then qh=d(7 downto 4); ql=d(3 downto 0); elsif(ci=1)then if(qh=0010and ql=0011)then

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 小学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号