当前位置:文档之家› 数字时钟c语言代码

数字时钟c语言代码

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SECOND1 ISPORT(CLKS,CLR:IN STD_LOGIC;SECS,SESG:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT1:OUT STD_LOGIC);END SECOND1;ARCHITECTURE S OF SECOND1 ISBEGINPROCESS(CLKS,CLR)V ARIABLE SS,SG:STD_LOGIC_VECTOR(3 DOWNTO 0);V ARIABLE CO:STD_LOGIC;BEGINIF CLR='1' THEN SS:="0000";SG:="0000";ELSIF CLKS'EVENT AND CLKS='1' THENIF (SS="0101") AND (SG="1001") THENSS:="0000";SG:="0000";CO:='1';ELSIF SG<"1001" THENSG:=SG+1;CO:='0';ELSIF SG="1001" THENSG:="0000";SS:=SS+1;CO:='0';END IF;END IF;COUT1<=CO;SECS<=SS;SESG<=SG;END PROCESS;END S;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MIN1 ISPORT(CLKM,CLR:IN STD_LOGIC;MINS,MING:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);ENMIN,ALARM:OUT STD_LOGIC);END MIN1;ARCHITECTURE M OF MIN1 ISBEGINPROCESS(CLKM,CLR)V ARIABLE MS,MG:STD_LOGIC_VECTOR(3 DOWNTO 0);V ARIABLE SO,ALM:STD_LOGIC;BEGINIF CLR='1' THEN MS:="0000";MG:="0000";ELSIF CLKM'EVENT AND CLKM='1' THENIF (MS="0101") AND (MG="1001") THENMS:="0000";MG:="0000";SO:='1';ALM:='1';ELSIF MG<"1001" THENMG:=MG+1;SO:='0';ALM:='0';ELSIF MG="1001" THENMG:="0000";MS:=MS+1;SO:='0';ALM:='0';END IF;END IF;ALARM<=ALM;ENMIN<=SO;MINS<=MS;MING<=MG;END PROCESS;END M;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY HOUR1 ISPORT(CLKH,CLR:IN STD_LOGIC;HOURS,HOURG:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END HOUR1;ARCHITECTURE H OF HOUR1 ISBEGINPROCESS(CLKH,CLR)V ARIABLE HS,HG:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF CLR='1' THEN HS:="0000";HG:="0000";ELSIF CLKH'EVENT AND CLKH='1' THENIF (HS="0010") AND (HG="0011") THENHS:="0000";HG:="0000";ELSIF HG<"1001" THENHG:=HG+1;ELSIF HG="1001" THENHG:="0000";HS:=HS+1;END IF;END IF;HOURS<=HS;HOURG<=HG;END PROCESS;END H;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JIAOFEN ISPORT(EN,CLK,SECIN,M1:IN STD_LOGIC;MINSET:OUT STD_LOGIC);END JIAOFEN;ARCHITECTURE F OF JIAOFEN ISBEGINPROCESS(EN,M1)BEGINIF EN='1' THENIF M1='1' THENMINSET<=CLK;ELSE MINSET<=SECIN;END IF;ELSE MINSET<=SECIN;END IF;END PROCESS;END F;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JIAOSHI ISPORT(EN,CLK,MININ,H1:IN STD_LOGIC;HOURSET:OUT STD_LOGIC);END JIAOSHI;ARCHITECTURE J OF JIAOSHI ISBEGINPROCESS(EN,H1)BEGINIF EN='1' THENIF H1='1' THENHOURSET<=CLK;ELSE HOURSET<=MININ;END IF;HOURSET<=MININ;END IF;END PROCESS;END J;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TOP ISPORT(CLKS,CLK,CLR,EN,M1,H1:IN STD_LOGIC;BAO,ALARM:OUT STD_LOGIC;SECS,SESG,MINS,MING,HOURS,HOURG:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0));END TOP;ARCHITECTURE ONE OF TOP ISCOMPONENT SECOND1PORT(CLKS,CLR:IN STD_LOGIC;SECS,SESG:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);COUT1:OUT STD_LOGIC );END COMPONENT;COMPONENT MIN1PORT(CLKM,CLR:IN STD_LOGIC;MINS,MING:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);ENMIN,ALARM:OUT STD_LOGIC );END COMPONENT;COMPONENT HOUR1PORT(CLKH,CLR:IN STD_LOGIC;HOURS,HOURG:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) );END COMPONENT;COMPONENT JIAOFENPORT(EN,M1,CLK,SECIN:IN STD_LOGIC;MINSET:OUT STD_LOGIC );END COMPONENT;COMPONENT JIAOSHIPORT(EN,H1,CLK,MININ:IN STD_LOGIC;HOURSET:OUT STD_LOGIC );END COMPONENT;SIGNAL A,B,C,D:STD_LOGIC;BEGINU1:SECOND1 PORT MAP(CLR=>CLR,SECS=>SECS,SESG=>SESG,CLKS=>CLK,COUT1=>A);U2:MIN1 PORT MAP(CLR=>CLR,ALARM=>ALARM,MINS=>MINS,MING=>MING,CLKM=>B,ENMIN=>C );U3:HOUR1 PORT MAP(CLR=>CLR,HOURS=>HOURS,HOURG=>HOURG,CLKH=>D);U4:JIAOFEN PORT MAP(EN=>EN,M1=>M1,CLK=>CLK,SECIN=>A,MINSET=>B);U5:JIAOSHI PORT MAP(EN=>EN,H1=>H1,CLK=>CLK,MININ=>C,HOURSET=>d); PROCESS(CLKS,CLK)BEGINIF CLKS'EVENT AND CLKS='1' THENIF (SECS="0000")AND(SESG="0000")AND(MINS="0000")AND(MING="0000") THENBAO<=CLK ;ELSE BAO<='0';END IF;END IF;END PROCESS;end one;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JIAOMIAO ISPORT(EN,CLK,O1:IN STD_LOGIC;MIAOSET:OUT STD_LOGIC);END JIAOMIAO;ARCHITECTURE O OF JIAOMIAO ISBEGINPROCESS(EN,O1)BEGINIF EN='1' THENIF O1='1' THENMIAOSET<=CLK;END IF;END IF;END PROCESS;END O;。

相关主题