FPGA的数字钟带校时闹钟报时功能VHDL

您所在的位置:网站首页 闹钟报时铃声 FPGA的数字钟带校时闹钟报时功能VHDL

FPGA的数字钟带校时闹钟报时功能VHDL

2024-07-10 22:15| 来源: 网络整理| 查看: 265

名称:基于FPGA的数字钟具有校时闹钟报时功能

软件:Quartus

语言:VHDL

要求:

  1、计时功能:这是数字钟设计的基本功能,每秒钟更新一次,并且能在显示屏上显示当前的时间。   2、闹钟功能:如果当前的时间与闹钟设置的时间相同,则扬声器发出闹音。   3、校时设置:用户可以通过功能键重新进行时间设置.精确校时时还可以对秒进行清零

  4、整点报功能:如果当前时间为整点,则扬声器发出特定频率的整点报音。   5、闹铃设置:用户可以通过功能键完成任意时间的闹铃设置。   6、显示功能:正常计时状态6位数码管分别显示时、分、秒;校时状态显示时、分、闹钟设置状态显示当前闹钟的时分设置值。

  本课题要达到的目标是:在Quartus II软件上用VHDL语言编写相关的应用程序,利用FPGA完成数字时钟,使其功能基本得到实现。

部分代码展示

LIBRARY ieee;    USE ieee.std_logic_1164.all; ENTITY Digital_clock IS    PORT (       clk_50M     : IN STD_LOGIC;       key_0       : IN STD_LOGIC;--模式设置按键--4'd0:计时,4'd1:闹钟,4'd3:温度       key_1       : IN STD_LOGIC;--设置修改       key_2       : IN STD_LOGIC;--修改确认       key_3       : IN STD_LOGIC;--修改时分秒,闹钟关闭    one_wire    : INOUT STD_LOGIC;  -- 传感器One-Wire总线              bell_out    : OUT STD_LOGIC;       led_mode    : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--led显示当前模式       bit_select  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--数码管位选       seg_select  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管段选    ); END Digital_clock; ARCHITECTURE behave OF Digital_clock IS --模块声明    --响铃模块    COMPONENT Bell IS       PORT (          clk_50M     : IN STD_LOGIC;          clear_alarm : IN STD_LOGIC;          alarm_hour_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);          alarm_minute_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);          alarm_second_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);          hour_time   : IN STD_LOGIC_VECTOR(7 DOWNTO 0);          minute_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);          second_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);          bell_out    : OUT STD_LOGIC       );    END COMPONENT;    --闹钟模块    COMPONENT alarm_clock IS       PORT (          clk_50M     : IN STD_LOGIC;          state_mode  : IN STD_LOGIC_VECTOR(3 DOWNTO 0);          set_time_key : IN STD_LOGIC;          confirm_key : IN STD_LOGIC;          change_time_key : IN STD_LOGIC;          alarm_hour_time : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);          alarm_minute_time : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);          alarm_second_time : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)       );    END COMPONENT;    --显示模块    COMPONENT display IS       PORT (          clk         : IN STD_LOGIC;          state_mode  : IN STD_LOGIC_VECTOR(3 DOWNTO 0); temperature : IN STD_LOGIC_VECTOR(7 DOWNTO 0);--温度          alarm_hour_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);          alarm_minute_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);          alarm_second_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);          hour_time   : IN STD_LOGIC_VECTOR(7 DOWNTO 0);          minute_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);          second_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);          bit_select  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);          seg_select  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)       );    END COMPONENT;    --设置模式    COMPONENT set_mode IS       PORT (          clk_50M     : IN STD_LOGIC;          set_mode_key : IN STD_LOGIC;          led_mode    : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);          state_mode  : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)       );    END COMPONENT;    --分频模块    COMPONENT fenping IS       PORT (          clk_50M     : IN STD_LOGIC;          clk_1Hz     : OUT STD_LOGIC       );    END COMPONENT;    --按键消抖    COMPONENT key_jitter IS       PORT (          clkin       : IN STD_LOGIC;          key_in      : IN STD_LOGIC;          key_negedge : OUT STD_LOGIC       );    END COMPONENT;    --计时模块    COMPONENT jishi IS       PORT (          clk_50M     : IN STD_LOGIC;          clk_1Hz     : IN STD_LOGIC;          state_mode  : IN STD_LOGIC_VECTOR(3 DOWNTO 0);          set_time_key : IN STD_LOGIC;          confirm_key : IN STD_LOGIC;          change_time_key : IN STD_LOGIC;          hour_time   : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);          minute_time : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);          second_time : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)       );    END COMPONENT; COMPONENT ds18B20 is   port( clk : in std_logic;   --为50MHz  dq  : inout std_logic;   LED : out std_logic;  LED2 : out std_logic;  LED3 : out std_logic;  rst: in std_logic;  temp_h:out std_logic_vector(7 downto 0); temp_l:out std_logic_vector(7 downto 0) );   end COMPONENT;     SIGNAL state_mode            : STD_LOGIC_VECTOR(3 DOWNTO 0);--当前模式,4'd0:计时,4'd1:闹钟,4'd2:跑表    SIGNAL hour_time             : STD_LOGIC_VECTOR(7 DOWNTO 0);--时    SIGNAL minute_time           : STD_LOGIC_VECTOR(7 DOWNTO 0);--分    SIGNAL second_time           : STD_LOGIC_VECTOR(7 DOWNTO 0);--秒    SIGNAL alarm_hour_time       : STD_LOGIC_VECTOR(7 DOWNTO 0);--闹钟时    SIGNAL alarm_minute_time     : STD_LOGIC_VECTOR(7 DOWNTO 0);--闹钟分    SIGNAL alarm_second_time     : STD_LOGIC_VECTOR(7 DOWNTO 0);--闹钟秒        SIGNAL key_0_negedge         : STD_LOGIC;--按键下降沿    SIGNAL key_1_negedge         : STD_LOGIC;--按键下降沿    SIGNAL key_2_negedge         : STD_LOGIC;--按键下降沿    SIGNAL key_3_negedge         : STD_LOGIC;--按键下降沿        SIGNAL clk_1Hz               : STD_LOGIC;--1Hz

  

本代码已在开发板验证

代码下载:

FPGA的数字钟校时闹钟报时VHDL_Verilog/VHDL资源下载名称:基于FPGA的数字钟具有校时闹钟报时功能(代码在文末付费下载)软件:Quartus语言:VHDL要求:1、计时功能:这是数字钟设计的基本功能,每秒钟更新一次,并且能在显示屏上显示当前的时间。 2、闹钟功能:如果当前的时间与闹钟设置的时间相同,则扬声器发出闹音。 3、校时设置:用户可以通过功能键重新进行时间设置.精确校时时还可以对秒进行清零。4、整点报功能:如果当前时间为整点,则扬声器发出icon-default.png?t=N7T8http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=181

仿真图(文档点击可下载):

仿真图.doc

1. 分频模块

2. 设置闹钟模块

3. 响铃模块包括闹钟和整点报时

4. display显示模块

5. 计时模块

6. 模式设置模块

7. 按键模块

8. 整体仿真



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3