EDA电子闹钟设计

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

END IF;
IF NUM1 <=25000000 THEN
CLK_1HZ<='1';
ELSIF NUM1 >25000000 THEN
CLK_1HZ<='0';
END IF;
END IF;
END PROCESS;
-------------------------2HZ--------------------------
if NUM=59 then
NUM<="00000000";
CY<='1';
else
NUM<=NUM+1;
CY<='0';
clk:in std_logic; --------触发脉冲
count_I:in std_logic; --------计数控制
COUNT:out std_logic_vector(7 downto 0);
CY:out std_logic);
--------秒进位脉冲
end cout;
--********************************************
); -- 数码管十位BCD码输出
END freq;
--**********************************************************************
ARCHITECTURE a OF freq IS
SIGNAL NUM1,NUM2,NUM3,NUM4,NUM5: std_logic_vector(29 downto 0);
程序
-----------------------50MHz分频---------------------------------------
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
闹钟实现的基本功能
二十四小时进制 实现闹钟、时间的切换 实现时间的调整 调整时间能在相应的位置实现闪烁功能
闹钟的基本结构
四个按键(切换闹钟、时间计时、复位,选择调整 位置,加信号、复位信号,减信号)
九个模块(分频,复位及切换显示,选择调整位置, 时间计时,闹钟设定,译码控制,译码输出,闹钟 报时,闪烁)
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
--********************************************
entity cout is
port(rst:in std_logic; --------复位信号
--*********************************************************************
ENTITY freq is
ຫໍສະໝຸດ Baidu
PORT(
CLK : IN STD_LOGIC; -- 秒计数脉冲
CLK_1HZ : out STD_LOGIC;
CLK_2HZ: out STD_LOGIC
CLK_2HZ<='1';
ELSIF NUM2 >25000000 THEN
CLK_2HZ<='0';
END IF;
END IF;
END PROCESS;
END a;
程序
---------------------秒计数器-------------------
library ieee;
use ieee.std_logic_1164.all;
5个输入信号,四十七个输出信号
设计流程
50MHz 减 S1 加 S2
切 S3 换
分频
复位 切换显示
调 S4 时
选择调整 位置
触发脉冲
闹钟
时间 计时
闪烁功能
闹钟报时
译码控制
译码 输出
基本操作
加电后下载程序,然后按三次切换显示键(key3)进入初始界面,再按三次时 间设置选择键(key2),闹钟开始工作。 时间计时设置:按切换显示键(key3),在秒闪烁指示灯(sw9)闪烁时,按 一次时间设置选择键(key2),显示“时”的数码管闪烁,然后“加”键(key1)、 “减”键(key0)可对其加减;再按一次key2键,显示“分”的数码管闪烁,设 置完成后再按一次key2键退出设置,进入时间计数。 闹钟设置:按切换显示键(key3),在闹钟设置指示灯亮起时,按一次时间设 置选择键(key2),显示“时”的数码管闪烁,然后“加”键(key1)、“减”键 (key0)可对其加减;再按一次key2键,显示“分”的数码管闪烁,设置完成后 再按一次key2键退出设置。按两次key2键进入时间计数。 复位:按切换显示键(key3),在复位指示灯亮起时,按住“减”键(key0) 两秒,时间计数及闹钟全部清零。 注意:在设置时间时,“时”数码管和“分”数码管闪烁时,秒闪烁指示灯不 会亮,所以设置完时间时,一定要按key2键退出设置,防止产生错误。
architecture a of cout is
signal NUM:std_logic_vector(7 downto 0);
begin
process(clk,count_I,rst)
begin
if clk'event and clk='1' then
if count_I='1' then -----选择计数模式
PROCESS (CLK)
Begin
IF CLK'Event AND CLK='1' then
NUM2<=NUM2 + 2;
IF NUM2 >=50000000 THEN
NUM2<="000000000000000000000000000000";
END IF;
IF NUM2 <=25000000 THEN
BEGIN
----------------------1HZ----------------------------
PROCESS (CLK)
Begin
IF CLK'Event AND CLK='1' then
NUM1<=NUM1 + 1;
IF NUM1 >=50000000 THEN
NUM1<="000000000000000000000000000000";
相关文档
最新文档