数字逻辑 课程设计 多功能电子钟 Quartus II

本文介绍了一个使用VHDL设计的多功能电子钟控制器,包括计时、闹钟设定和整点报时功能。通过Quartus II进行编译和仿真,实现了LED显示、蜂鸣器信号输出。设计中,通过按键控制时钟状态,如校准小时、分钟和秒,并具备扫描显示方式驱动8个LED数码管。在遇到问题时,作者通过不断学习和实践提高了独立思考和模块化设计能力。
摘要由CSDN通过智能技术生成

设计方案

1.系统功能描述

                                 (1)      系统输入:系统状态及校时、定时转换的控制信号为k、set;时钟信号clk,采用1024Hz;系统复位信号为reset。输入信号由按键产生。

                                 (2)      系统输出:LED显示输出;蜂鸣器声音信号输出。

                                 (3)      多功能数字钟控制器的状态图如图所示

                                                图中:S0:显示计时器时间     T0:显示闹铃时间

                                                            S1:调计时的时         T1:调闹铃的时

                                                            S2:调计时的分         T2:调闹铃的分

                                                            S3:调计时的秒         T3:调闹铃的秒

                                  (4)      计时:正常工作状态下,按下“set键”,进入“小时”校准状态,之后按下“k键”则进入“分”校准状态,继续按下“k键”则进入“秒复零”状态,第三次按下“k                                                    键”又恢复到正常计时显示状态。

                                  (5)      ”小时“校准状态:在“小时”校准状态下,显示”小时的数码管闪烁,通过按下”p键“使其递增计数。

                                  (6)      ”分“校准状态:在“分”校准状态下,显示“分”的数码管闪烁,通过按下”p键“使其递增计数。

                                  (7)      “秒”复零状态:在:“秒复零”状态下,显示“秒”的数码管闪烁并复零。

                                  (8)      整点报时:蜂鸣器在“59”分钟的第51、53、55、57秒发出频率为512Hz的低音,在“59”秒发出频率为1024Hz的高音,结束时为整点。

                                  (9)      显示:要求采用扫描显示方式驱动8个LED数码管分别显示时、分、秒并且他们之间用“—”隔开。

                                  (10)  闹钟:闹钟定时时间到,蜂鸣器发出周期为1s的滴、滴声,持续时间为10秒;闹钟定时显示。

                                  (11)  闹钟定时设置:在闹钟显示状态下,按下“set键”,进入“小时”校时状态,之后按下“k键”,进入“分”校时状态,继续按下“k键”,进入“秒”校时状态,第                                                   三次按下“k键”又恢复到闹钟显示状态。

                                  (12)  闹钟的时、分、秒设置过程和计时设置相同。



整体效果图:


1.控制器


library ieee;
use ieee.std_logic_1164.all;
entity ctr is
     port(p:in std_logic;
          cp:in std_logic;
          k:in std_logic;
          set:in std_logic;
          reset:in std_logic;
          resec:out std_logic;

          rehour:out std_logic;
          setmin:out std_logic;
          setminen:out std_logic;
          sethour:out std_logic;
          sethouren:out std_logic;
          hourflash:out std_logic;
          minflash:out std_logic;
          secflash:out std_logic;
          ahourflash:out std_logic;
          aminflash:out std_logic;
          asecflash:out std_logic;
          changemode:out std_logic;
          setclksec:out std_logic;
          setclkmin:out std_logic;
          setclkhour:out std_logic);
end ctr;
architecture rtl of ctr is
type state is(s0,s1,s2,s3,t0,t1,t2,t3);
signal clock_s:state;
      begin 
        process(cp,k,set,reset,p)
     
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值