| 
 | 
 
library ieee; 
use ieee.std_logic_1164.all; 
use ieee.std_logic_arith.all; 
use ieee.std_logic_unsigned.all; 
 
entity desplay is 
port( 
        clk:in std_logic; 
        indate:in integer range 0 to 9; 
        inadd:in integer range 1 to 8; 
        outdate ut std_logic_vector(7 downto 0); 
        outadd ut std_logic_vector(7 downto 0)); 
end desplay; 
architecture behave of desplay is 
signal num:integer range 0 to 3; 
signal indata:std_logic_vector(7 downto 0); 
begin 
U1: process(indate) 
        begin 
        case indate is 
                when 0 =>indata<=x"c0"; 
                when 1 =>indata<=x"f9"; 
                when 2 =>indata<=x"a4"; 
                when 3 =>indata<=x"b0"; 
                when 4 =>indata<=x"99"; 
                when 5 =>indata<=x"92"; 
                when 6 =>indata<=x"82"; 
                when 7 =>indata<=x"f8"; 
                when 8 =>indata<=x"80"; 
                when 9 =>indata<=x"90"; 
                when others =>indata<=x"ff"; 
        end case; 
        end process; 
U2: process(clk,inadd,indata) 
        begin 
        if clk'event and clk='1'then 
                if  num=3 then 
                    num<=0; 
                        case inadd is 
                                when 1 =>outadd<="00000001"; 
                                when 2 =>outadd<="00000010"; 
                                when 3 =>outadd<="00000100"; 
                                when 4 =>outadd<="00001000"; 
                                when 5 =>outadd<="00010000"; 
                                when 6 =>outadd<="00100000"; 
                                when 7 =>outadd<="01000000"; 
                                when 8 =>outadd<="10000000"; 
                                when others =>outadd<="11111111"; 
                        end case; 
                        outdate<=indata; 
                else 
                        num<=num+1; 
                end if; 
        end if; 
        end process; 
end behave;                 
 
         
library ieee; 
use ieee.std_logic_1164.all; 
use ieee.std_logic_arith.all; 
use ieee.std_logic_unsigned.all; 
entity zhong is 
        port( 
                        s      :in std_logic; 
                        outdate ut std_logic_vector(7 downto 0); 
                        outadd  ut std_logic_vector(7 downto 0)); 
end zhong; 
architecture art of zhong is 
component desplay 
port( 
        clk:in std_logic; 
        indate:in integer range 0 to 9; 
        inadd:in integer range 1 to 8; 
        outdate ut std_logic_vector(7 downto 0); 
        outadd ut std_logic_vector(7 downto 0)); 
end component desplay; 
type news is array(1 to 8)of integer; 
signal dizhi: news; 
signal a, b,clk: std_logic; 
signal n:integer range 0 to 5; 
signal shi: integer range 0 to 23; 
signal miao,fen: integer range 0 to 59; 
signal shi_shi: integer range 0 to 2; 
signal shi_ge: integer range 0 to 3; 
signal fen_shi: integer range 0 to 5; 
signal fen_ge: integer range 0 to 9; 
signal miao_shi: integer range 0 to 5; 
signal miao_ge: integer range 0 to 9; 
begin 
clk<='1'when(n=5) else '0'; 
a<='1'when(maio=59) else '0'; 
b<='1'when(fen=59) else '0'; 
L1:         process(s) 
                begin 
                        if(s'event and s='1')then 
                                n<=n+1; 
                                        if(n=5)then 
                                                n<=0; 
                                        end if; 
                        end if; 
         
                        if(clk'event and clk='1')then 
                                miao<=miao+1; 
                                        if(miao=59)then 
                                                miao<=0; 
                                        end if; 
                        end if; 
                        if(a'event and a='0')then 
                                fen<=fen+1; 
                                        if(fen=59)then 
                                                fen<=0; 
                                        end if; 
                        end if; 
                        if(b'event and b='0')then 
                                shi<=shi+1; 
                                        if(shi=23)then 
                                                shi<=0; 
                                        end if; 
                        end if; 
        end process L1; 
L2: process(shi,fen,miao) 
        begin 
        shi_shi<=shi mod 10; 
        shi_ge<=shi rem 10; 
        fen_shi<=fen mod 10; 
        fen_ge<=fen rem 10; 
        miao_shi<=miao mod 10; 
        miao_ge<=miao rem 10; 
        dizhi<=1; 
        u1:desplay port map (s,miao_ge,dizhi,outdate,outadd); 
        u2:desplay port map (s,miao_shi,dizhi+1,outdate,outadd); 
        u3:desplay port map (s,fen_ge,dizhi+2,outdate,outadd); 
        u4:desplay port map (s,fen_shi,dizhi+3,outdate,outadd); 
        u5:desplay port map (s,shi_ge,dizhi+4,outdate,outadd); 
        u6:desplay port map (s,shi_shi,dizhi+5,outdate,outadd); 
        end process L2; 
end art; |   
 
 
 
 |