数字电子钟的设计说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
摘要及关键字·2
ABSTRACT·2
一.设计要求·2
二.总体方案设计·3
三.各子模块设计原理·· 3
1.计秒模块··3
2.计分模块··5
3.计时模块··6
4.校准模块··7
5.显示模块··9
6.报时模块··12
7.分频模块··13
8.去抖动模块··15
四. 硬件下载与测试··16
1.硬件下载··16
2.测试··17
3.功能扩展··17
五.结论·17
参考文献··18
数字电子钟的设计
摘要及关键字:
数字电子钟是生活中最常用的电子设备之一,其主要功能是能够显示时、分、秒实时信息,并能够方便地进行时、分、秒的初始值设置,以便时间校准。
实现数字电子钟有很多方法,本课程是采用VHDL硬件语言的强大描述能力和EDA 工具的结合在电子设计领域来设计一个具有多功能的数字电子钟。
关键字:数字电子钟VHDL硬件语言EDA工具
ABSTRACT:
Digital electric clock in life are the most commonly used one of the electronic equipment. Its main function is to display, minutes and seconds real-time information and can be easily when carried out, minutes and seconds, so that the initial value is set time calibration.
There are many methods of design digital electric clock.This course is a powerful by VHDL hardware language describe ability and EDA tools in electronic design field with versatile to design a digital electric clock .
Key work: Digital electric clock VHDL hardware language EDA tools 一.设计要求:
1.设计一个电子钟能够显示时,分,秒;24小时循环显示。
2.电子钟有校时,校分,清零,保持和整点报时的功能,具体如下:
(1)数字钟最大计时显示23:59:59 。
(2)在数字钟正常工作时可以对数字钟进行快速校时、校分,即拨动开关K1可以对小时进行校正,拨动开关K2可以对分进行校正。
(3)在数字中正常工作情况下可以对其进行不断地复位,即拨动开关K3可以是时,分,秒显示回零。
(4)在数字钟正常工作时拨动开关K4可以使数字钟保持原有显示,停止计时。
(5)整点报时是要求数字钟在每小时整点到来前进行鸣叫,鸣叫频率是在59:53, 59:55, 59:57 为1kHz,59:59为2kHz。
3.要求所有开关具有去抖动功能。利用开发工具Quartus II 7.0并结合硬件描述
语言VHDL,采用层次化的方法进行设计,要求设计层次清晰,合理;构成整个设计的功能可以采用原理图输入或文本输入法实现。
4.通过开发工具Quartus II 7.0对设计电路进行功能仿真。
5.将仿真通过的逻辑电路下载到EDA试验系统,对其功能进行验证。
二.总体方案设计:
从设计要求可以对其进行层次化设计,将所要设计的多功能数字钟分层6个模块:
(1)计时模块: 包括两个模60的计数器(计秒与计分)和一个模24的计数器(计
时)。
(2)清零,保持模块:此模块功能是可以在计时模块直接嵌入即利用计数器的清
零、保持功能就可以实现。
(3)校准模块: 其对时、分进行校正。
(4)显示模块: 将数字钟在数码管上显示。
(5)整点报时模块: 由两部分组成,一部分选择报时时间(59:53, 59:55,
59:57,59:59),一部分选择报时频率(1kHz,2kHz)。
(6)分频模块: 电子钟的激励源要求的是稳定1Hz,而试验台提供48MHz的时钟,
所以要设计一个分频器将48MHz进行分频得到1Hz。
(7)防抖动模块:因为设计中有使用到开关,而对机械开关而言出现抖动现象会
导致系统误差甚至不能正常工作。所以在设计中要求有去抖动电路。
将数字钟的各功能模块级联,生成顶层电路,实现总体设计要求,设计框图如下图所示:
三.各子模块设计原理:
1.计秒模块:是一个模60的计数器,具有计时、保持、清零的功能。采用VHDL
硬件语言编写,程序代码如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY second IS
PORT( clk: IN STD_LOGIC;
rst: IN STD_LOGIC;
en: IN STD_LOGIC;
qout1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
qout2: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
co: OUT STD_LOGIC);
END second;
ARCHITECTURE behav OF second IS
SIGNAL tem1: STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL tem2: STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(clk,rst)
BEGIN
IF(en='1')THEN
tem1<=tem1;
tem2<=tem2;
ELSIF(rst='0')THEN
tem1<="0000";
tem2<="0000";
ELSIF(clk'event AND clk='1')THEN