多功能数字时钟

上传人:子 文档编号:42985297 上传时间:2018-06-04 格式:DOC 页数:18 大小:161.50KB
返回 下载 相关 举报
多功能数字时钟_第1页
第1页 / 共18页
多功能数字时钟_第2页
第2页 / 共18页
多功能数字时钟_第3页
第3页 / 共18页
多功能数字时钟_第4页
第4页 / 共18页
多功能数字时钟_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《多功能数字时钟》由会员分享,可在线阅读,更多相关《多功能数字时钟(18页珍藏版)》请在金锄头文库上搜索。

1、一、一、实验任务及要求实验任务及要求1. 能进行正常的时、分、秒计时功能,分别由 6 个数码管显示 24 小时、 60 分钟、60 秒钟的计数器显示。 2. 能进行闹钟的时、分、秒的设置,分别由 6 个数码管显示 24 小时、60 分钟、60 秒钟的闹钟显示。 3. 当“mode”为“1”时,6 个数码管显示显示正常计时状态,当 “mode”为“0”时, 6 个数码管显示显示闹钟状态。 4. 能利用实验系统上的按键实现计时状态下的“校时”与“校分”功能: (1) 当“set_hour”为“1”时,每次按动“k_hour”键一次, “小时”+1, 若一秒内未按动“k_hour”键则小时以 4Hz

2、 的频率递增计数,并按 24 小 时循环,计满 23 小时后在回 00; (2) 当“set_minute”为“1”时,每次按动“k_minute”键一次, “分钟” +1,若一秒内未按动“k_minute”键则分钟以 4Hz 的频率递增计数,并 按 60 分钟循环,计满分钟后回 00; (3) 按下“reset”键时, “小时” , “分钟” , “秒”清零; 5. 能用实验系统上的按键实现闹钟下的“校时”与“校分”功能: (4) 当“set_hour_alarm 每次按动“k_hour_alarm”键一次, “小时”+1, 若一秒内未按动“k_hour_alarm”键则小时以 4Hz 的频

3、率递增计数,并 按 24 小时循环,计满 23 小时后在回 00; (5) 当“set_minute_alarm”为“1”时,每次按动“k_minute_alarm”键 一次, “分钟”+1,若一秒内未按动“k_minute_alarm”键则分钟以 4Hz 的频率递增计数,并按 60 分钟循环,计满分钟后回 00; 6. 能利用蜂鸣器做整点报时: (1) 当计时到达 5950时开始报时,在 5951、53、55、57鸣叫,鸣 叫频率可为 512Hz; (2) 到达 5959时发频率为 1024Hz 的高音,结束时为整点。 7. 能利用蜂鸣器做闹钟报时: 当闹钟定时时间到时,蜂鸣器发出周期为 1

4、s 的滴、滴声,持续时间为 10s; 8. 用层次化设计方法设计该电路,用 VHDL 语言编写各个功能模块。 9. 报时功能、闹时功能用功能仿真的方法验证,可通过观察有关波形确认 电路设计是否正确。 10.完成电路设计后,用实验系统下载验证。 二、设计说明与论述二、设计说明与论述系统顶层框图系统顶层框图调时调分 计时时间显示输出resetclk 蜂鸣器输出时间 显示调时调分 闹钟时间显示输出resetclk 蜂鸣器输出clk1024Hz sound sound 1024Hz 512Hz 时间4Hz 1Hz clk sound时间模块电路功能如下:模块电路功能如下: 1.输出显示由秒计数器、分计

5、数器、时计数器组成。 ; 2.输入频率为 1024hz,经过分频器分出 1024Hz,512Hz,4Hz,1Hz 信号驱动电路; 3.前五声讯响功能报时电路由 500Hz 驱动,整点报时有 1024hz 驱动。 4. 闹时电路模块也需要 500Hz 或 1KHz 音频信号以及来自秒计数器、分计数器和时计数计数控制模块整点 报时 控制闹钟控制模块闹钟 报时 控制分频器模块 闹钟报 时模块整点报 时模块动态显示模块器的输出信号作本电路的输入信号。三三. .状态图状态图ASMASM 图与图与 MDSMDS 图图1 0 0 0 1 0 1 0 1 0 1Mode_inhour_inhour_in_1m

6、inute_inReset_inminute_in_1Mode=1Mode=0ResetDAOUT(3 DOWNTO 2)DAOUTDAOUT(3)DAOUTdaout(3)DAOUTledledledledledledledledledledled=“XXXXXXX“; end case; end process;end fun; 4. 分频器分频器LIBRARY ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity fen is port( clk:in STD_LOGIC;clk_1024,c

7、lk_512,clk_4,clk_1:out STD_LOGIC); end fen ; ARCHITECTURE behave OF fen IS begin process(clk) variable count: integer range 0 TO 1; begin if clkevent and clk=1 thenif count1 thencount:=count+1;clk_512=0;elsecount:=0;clk_512=1;end if; end if;end process; process(clk) variable count_1:integer range 0

8、TO 255 ; begin if clkevent and clk=1 thenif count_1255 thencount_1:=count_1+1;clk_4=0;elsecount_1:=0;clk_4=1;end if; end if;end process;process(clk) variable count_2:integer range 0 TO 1023 ; begin if clkevent and clk=1 thenif count_21023 thencount_2:=count_2+1;clk_1=0;elsecount_2:=0;clk_1=1;end if;

9、 end if; end process; process(clk) begin clk_1024=clk;end process; end behave; 5. 小时与分钟比较器小时与分钟比较器 LIBRARY ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_ARITH.all; entity vs_time is port( min,min_1 : in std_logic_vector (6 downto 0);hour,hour_1: in std_logic_

10、vector (5 downto 0);key: out std_logic); end vs_time ; ARCHITECTURE fun OF vs_time IS signal vs:std_logic; beginkey= vs;process (min,min_1,hour,hour_1)beginif hour=hour_1 thenif min-“0000001“=min_1-“0000001“ thenvs=1;elsevs=0;end if;elsevs=0;end if; end process;end fun; 6. 计时与闹钟显示选择器计时与闹钟显示选择器 LIBRA

11、RY ieee; USE ieee.std_logic_1164.ALL; USE ieee.std_logic_arith.ALL; ENTITY mux2_1 IS PORT( mode : INSTD_LOGIC; in_2: inSTD_LOGIC_vector(2 downto 0);in_3: inSTD_LOGIC_vector(3 downto 0);in_2_1: inSTD_LOGIC_vector(2 downto 0);in_3_1: inSTD_LOGIC_vector(3 downto 0); out_2: outSTD_LOGIC_vector(2 downto

12、0);out_3: out STD_LOGIC_vector(3 downto 0); END mux2_1; ARCHITECTURE rt1 OF mux2_1 IS BEGINPROCESS(mode,in_2,in_3,in_2_1,in_3_1)BEGINIF(mode=1) THEN out_2=in_2;out_3=in_3; ELSEout_2=in_2_1;out_3=in_3_1; END IF; END PROCESS; END rt1; 7. 整点报时器整点报时器 LIBRARY ieee; use ieee.std_logic_1164.all; use ieee.s

13、td_logic_unsigned.all; entity al_zheng is port( clk_512,clk_1024:in STD_LOGIC;second,minute:in std_logic_vector (6 downto 0);sound:out STD_LOGIC); end al_zheng; ARCHITECTURE fun OF al_zheng is Begin process(clk_512,clk_1024,second,minute) begin if minute=“1011001“ thenif second=“1010001“ or second=“

14、1010011“ or second=“1010101“ or second=“1010111“ then sound=clk_512;elsif second=“1011001“ thensound=clk_1024;elsesound=0;end if;elsesound=0;end if; end process;end fun; 8.闹钟报时器闹钟报时器 LIBRARY ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity al_bao is port( key:INSTD_LOGIC;clk_512:in STD_LOGIC;second:in std_logic_vector (6 downto 0);sound:out STD_LOGIC); end al_bao ; ARCHITECTURE fun OF al_bao IS signal count:std_logic_vector(3 downto 0); begin process(key,clk_512) beginif key=1 then if second“1011“ t

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

当前位置:首页 > 生活休闲 > 科普知识

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