数字逻辑与EDA技术课程设计---闹钟

一、功能介绍
本次数字逻辑与EDA技术实验课程设计用FPGA实现了一个总时长为一小时的闹钟,它所具有的功能如下:
基本功能:(1)正常时间显示,按照正常的时钟进行计时;
(2)闹钟时间显示,显示出来设置的闹钟时间;
(3)闹钟触发,时钟走到闹钟时间后触发闹钟。
设计功能:(1)手动调整时间,如果某时刻的时钟时间与正常时间有偏差,可以进行手动调整,使之与正常时间一致;
(2)八路彩灯,时钟走到闹钟时间后,会进行8秒的彩灯闪烁,彩灯依次从全亮到逐渐向中间熄灭,再到向两边闪烁直到全亮,提醒使用者设置的闹钟到点了。

二、设计思路
(1)对本次设计所需要的彩灯以及显示器还有开关进行一个汇总,并提前查阅其各自的管脚,进行分配;
(2)用实验三分频的方法设计出来一个1s的时钟,用于后面的时钟时间显示以及状态转移的持续时间;
(3)分别设计出来时钟自动计时以及手动调节时间的分秒进位,以及目前时钟显示的时间与设置闹钟的时间是否一致;
(4)设计分秒的显示;
(5)用实验四有限状态机的设计方法进行8路彩灯的显示。

三、模块结构
(1)模块一:设计得到1s的时钟信号;
(2)模块二:手动设置与自动计时的控制;
(3)模块三:设置闹钟与闹钟触发;
(4)模块四:手动调整时间;
(5)模块五:分秒显示;
(6)模块六:闹钟触发的8路彩灯显示。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

1题目分析 1.1 设计要求(数字钟的功能) (1)具有秒、分、时技术显示功能,且以24小时循环计时; (2)具有清零功,且能调时、调分; (3)具有整点报警功能,并且在报警过程中能中断报警。 根据以上功能要求,可设计以下的功能方块图: 1.2功能要求分析 根据以上数字钟的功能要求,需要完成以下几个部分: (1)时钟模块:由试验箱内部时钟提供,对计数器提供计数时钟信号; (2)秒钟模块:对秒进行60进制循环计数,并向分钟产生进位,同时具有调分功能; (3)分钟模块:对分进行60进制循环计数,并向小时产生进位,同时具有调时功能 (4)小时模块:对小时进行24进制循环计数。 (5)报警模块:在整点时报警,持续10秒钟,在报警过程钟可以中断。 1、模块一 SECOND LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SECOND IS PORT (CLK: IN STD_LOGIC; --系统时钟信号 RESET:IN STD_LOGIC; --系统复位信号 SETMIN:IN STD_LOGIC; --分设置信号 ENMIN: OUT STD_LOGIC; --分计数时钟信号 DAOUT: OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); --秒计数值 END ENTITY SECOND; ARCHITECTURE ART OF SECOND IS SIGNAL COUNT :STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL ENMIN_1,ENMIN_2:STD_LOGIC; BEGIN DAOUT<=COUNT; ENMIN_2<=(SETMIN AND CLK); ENMIN<=(ENMIN_1 OR ENMIN_2); PROCESS(CLK,RESET,SETMIN) BEGIN IF (RESET='0')THEN COUNT<="0000000"; ENMIN_1<='0'; ELSIF(CLK'EVENT AND CLK='1')THEN IF(COUNT(3 DOWNTO 0)="1001")THEN IF(COUNT<16#60#)THEN IF(COUNT="1011001")THEN ENMIN_1<='1'; COUNT<="0000000"; ELSE COUNT<=COUNT+7; END IF; ELSE COUNT<="0000000"; END IF; ELSIF(COUNT<16#60#)THEN COUNT<=COUNT+1; ENMIN_1<='0'; ELSE COUNT<="0000000"; ENMIN_1<='0'; END IF; END IF; END PROCESS; END ART; 2、模块二 MINUTE LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY MINUTE IS PORT (CLK: IN STD_LOGIC; --分计数时钟信号 CLKS: IN STD_LOGIC; --时设置时钟信号 RESET: IN STD_LOGIC; --系统复位信号 SETHOUR:IN STD_LOGIC; --时设置信号 ENHOUR: OUT STD_LOGIC; --时计数时钟信号 DAOUT: OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); --分计数值 END ENTITY MINUTE; ARCHITECTURE ART OF MINUTE IS SIGNAL COUNT :STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL ENHOUR_1,ENHOUR_2:STD_LOGIC; BEGIN DAOUT<=COUNT; ENHOUR_2<=(SETHOUR AND CLKS); ENHOUR<=(ENHOUR_1
©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值