多功能数字钟

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验十一多功能数字钟

一、实验目的

1.学习系统设计方法;

2. 设计并实现一个数字钟。

二、设计要求

1.正常模式时,采用24小时制。不但显示时、分、秒,而且有上、下午显示。用A表示上午,P表示下午。

2.手动校准电路。按动时校准键HOUR,将电路置于校时状态,则计时电路可用手动方式校准,每接一下校时键,时钟计数器加1;按动分方式键MINT,将电路置于校分状态,以同样方式手动校分。

3.整点报时。仿中央人民广播电台整点报时信号,从59分50秒起每隔2秒钟发出一次低音(512Hz)“嘟”信号(信号鸣叫持续时间1秒,间隙1秒,连续5次,到达整点(00分00秒时),发一次高音(1024 HZ)“哒”信号(信号持续时间l秒。

4.闹时功能。接下置闹方式键CKSET,使电路工作于预置状态,此时显示器与时钟脱开,而与预置计数器相连,利用前面手动校时、校分方式进行预置,预置后回到正常模式。当计时计至预置的时间时,蜂鸣器发出闹钟信号,时间为一分钟,闹铃信号可以用开关键CLOSE“止闹”。正常情况下此开关键释放。

三、设计提示

1.数字钟的功能实际上是对秒信号计数。实验板上可提供不同

的时钟信号,分频后可产生秒时钟。数字钟在结构上可分为两个部分:计数器和显示器。计数器又可分为秒计数器、分计数器和小时计数器。秒计数器和分钟计数器由6进制和10进制计数器构成,小时计数器较复杂,需要设计一个24(或12)个状态的状态机实现。显示电路用6位扫描数码显示器,它的扫描时钟可以使用1KHz或10kHz时钟。分钟和小时的调整用两个按键开关实现。秒输入信号用底板上时钟信号分频后得到。

2.闹铃信号与准点报时信号可取自实验板上的振荡信号1024Hz 和2048 Hz。

3.校时、校分信号可用实验板上的振荡信号128Hz分频到8Hz 后做为快速调整时钟输入。校时时每按一次键可以伴以短促的音响。

4.时、分、秒显示之间,可利用数码管中的小数点区分,在正常计时情况下,分、秒之间的小数点也可闪动。

5.设计方框图如下图所示:

附录十:多功能数字钟设计的VHDL描述

1、通用计数器的VHDL描述

LIBRARY ieee;

USE ieee.std_logic_1164.all;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY counter IS

GENERIC( count_value: INTEGER:=9);

PORT

(clk,clr,en : IN STD_LOGIC;

co : OUT STD_LOGIC;

count : OUT INTEGER RANGE 0 TO count_value); END counter;

ARCHITECTURE a OF counter IS

SIGNAL cnt : INTEGER RANGE 0 TO count_value; BEGIN

PROCESS (clk)

BEGIN

IF clr = '1' THEN

cnt <= 0;

ELSIF (clk'EVENT AND clk = '1') THEN

IF en = '1' THEN

IF cnt = count_value THEN

cnt <= 0;

ELSE

cnt <= cnt + 1;

END IF;

END IF;

END IF;

END PROCESS;

co<=’1’ when cnt= count_value and en = ‘1’ else ‘0’;

count <= cnt;

END a;

2、数字钟的VHDL描述

LIBRARY ieee;

USE ieee.std_logic_1164.all;

USE ieee.std_logic_unsigned.all;

entity TIMER is

PORT(

scanclk,reset_in,adj_h_in,adj_m_in,set,close: in std_logic;

led_out: out std_logic_vector(6 downto 0);

scan_out: out integer range 0 to 5;

sound_out: out std_logic;

point_out: out std_logic );

end entity;

architecture rtl of TIMER IS

signal scan: integer range 0 to 5;

signal clk1s: std_logic;

signal sound,sound1,sound2,sound3: std_logic;

signal reset,adj_h,adj_m: std_logic;

signal c_h_en, c_mh_en, c_ml_en, c_sh_en : std_logic;

signal c_h_en1, c_ml_en1 : std_logic;

signal c_mh_en1 : std_logic;

signal s_h_en, s_mh_en, s_ml_en : std_logic;

signal enable,disable: std_logic;

signal s_mh,c_mh,mh,sh: integer range 0 to 5;

相关文档
最新文档