--****************************************************************
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all; --head files;
--****************************************************************
entity electron_watch is
port(reset,clk,clk0:in std_logic;
set_hour:in std_logic;
--set_min,set_sec:in std_logic;
sel:out std_logic_vector(2 downto 0);
number:out std_logic_vector(6 downto 0));
end entity;
--****************************************************************
architecture behave of electron_watch is
component divide_frequency
port(clk:in std_logic;
clk0:out std_logic);
end component;
component encoder
port(number:in std_logic_vector(3 downto 0);
seg7_number:buffer std_logic_vector(6 downto 0));
end component;
component count60
port(reset,clk:in std_logic;
carry_bit:out std_logic;
count0,count1:buffer std_logic_vector(3 downto 0));
end component;
component count24
port(reset,clk,set_hour:in std_logic;
count0,count1:buffer std_logic_vector(3 downto 0));
end component;
component select_led
port(clk:in std_logic;
sel:buffer std_logic_vector(2 downto 0));
end component;
signal carry_bit1,carry_bit2:std_logic;
signal clk1:std_logic;
signal sel_light:std_logic_vector(2 downto 0);
signal count_number1,count_number2,count_number3,count_number4,count_number5,count_number6:std_logic_vector(3 downto 0);
signal seg7_number1,seg7_number2,seg7_number3,seg7_number4,seg7_number5,seg7_number6:std_logic_vector(6 downto 0);
begin
clock:divide_frequency port map(clk0,clk1);
count1:count60 port map(reset,clk,carry_bit1,count_number1,count_number2);
count2:count60 port map(reset,carry_bit1,carry_bit2,count_number3,count_number4);
count3:count24 port map(reset,carry_bit2,set_hour,count_number5,count_number6);
sel_led:select_led port map(clk0,sel_light);
number0:encoder port map(count_number1,seg7_number1);
number1:encoder port map(count_number2,seg7_number2);
number2:encoder port map(count_number3,seg7_number3);
number4:encoder port map(count_number4,seg7_number4);
number5:encoder port map(count_number5,seg7_number5);
number6:encoder port map(count_number6,seg7_number6);
number<=seg7_number1 when sel_light="000" else
seg7_number2 when sel_light="001" else
seg7_number3 when sel_light="010" else
seg7_number4 when sel_light="011" else
seg7_number5 when sel_light="100" else
seg7_number6 when sel_light="101" else
"0000000";
sel<=sel_light;
end behave;
--******************************************************************
共1条 1/1
1
跳转至
页
电子钟vhdl代码实现
关键词: 电子钟 代码 实现 logic vector do
共1条 1/1
1
跳转至
页
回复
有奖活动 | |
---|---|
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
【有奖活动】智能可穿戴设备AR/VR如何引领科技新潮流! | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
【有奖活动】震撼来袭!这场直播将直击工程师的心灵! |
打赏帖 | |
---|---|
如何实现基于NXPiMX.RT1021的BH1730采集被打赏50分 | |
【换取手持数字示波器】AHT10温度检测分享被打赏40分 | |
【换取手持数字示波器】ACM32F070开发板点亮LCD屏和触控按键,串口,ADC被打赏40分 | |
【换取手持数字示波器】ACM32F070LCD屏和触控按键功驱动蜂鸣器分享被打赏40分 | |
【换取手持数字示波器】国民技术PWM功能知识分享被打赏40分 | |
【换取手持数字示波器】放大器运放知识分享被打赏40分 | |
【分享评测,赢取加热台】+开关电源AC输入知识分享被打赏30分 | |
【换取手持数字示波器】N32G430点亮数码管与串口打印、ADC被打赏40分 | |
老胖子聊电路--分析一个反馈电路被打赏50分 | |
【换取手持数字示波器】+点亮WS2812RGB灯被打赏50分 |