文档介绍:实验报告
实验已实验功能:
有时钟计时,秒钟清零端,时钟,分钟加一按键,用了一个拨码,当拨码电平为0时倒计时,从99开始到00再回到99,当拨码电平为1时,任意按下时钟或分钟加一的按键,即可回到时钟状态。
源程序代码:
library ieee;
use ;
use ;
use ;
entity exp15 is
port( Clk : in std_logic; --时钟输入
Rst : in std_logic; --复位输入
S1,S2,S3 : in std_logic; --时间调节输入
SPK : out std_logic; --扬声器输出
Display : out std_logic_vector(7 downto 0); --七段码管显示输出
SEG_SEL,SEG_SEL1: buffer std_logic_vector(2 downto 0) --七段码管扫描驱动);
end exp15;
architecture behave of exp15 is
signal Disp_Temp,Disp_Temp1: integer range 0 to 15;
signal Disp_Decode,Disp_Decode1: std_logic_vector(7 downto 0);
signal SEC1,SEC10 : integer range 0 to 9;--秒钟个位、十位
signal MIN1,MIN10 : integer range 0 to 9;--分钟个位、十位
signal HOUR1,HOUR10 : integer range 0 to 9;--小时个位、十位
signal djs1,djs10 : integer range 0 to 9;
signal Clk_Count1 : std_logic_vector(13 downto 0);--产生1Hz时钟的分频计数器
signal Clk1Hz : std_logic;
signal Music_Count : std_logic_vector(2 downto 0);
signal flag : std_logic;--标识符
begin
process(Clk)
begin
if(Clk'event and Clk='1') then
if(Clk_Count1<10000) then
Clk_Count1<=Clk_Count1+1;
else
Clk_Count1<="00000000000001";
end if;
end if;
end process;
Clk1Hz<=Clk_Count1(13);--产生一秒时钟
process(Clk1Hz,Rst)
begin
if(Rst='0') then --系统复位
djs1<=9;
djs10<=9;
SEC1<=0;
SEC10<=0;
MIN1<=0;
MIN10<=