数字时钟c语言代码
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY SECOND1 IS
PORT(CLKS,CLR:IN STD_LOGIC;
SECS,SESG:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT1:OUT STD_LOGIC);
END SECOND1;
ARCHITECTURE S OF SECOND1 IS
BEGIN
PROCESS(CLKS,CLR)
VARIABLE SS,SG:STD_LOGIC_VECTOR(3 DOWNTO 0);
VARIABLE CO:STD_LOGIC;
BEGIN
IF CLR='1' THEN SS:="0000";SG:="0000";
ELSIF CLKS'EVENT AND CLKS='1' THEN
IF (SS="0101") AND (SG="1001") THEN
SS:="0000";SG:="0000";CO:='1';
ELSIF SG
SG:=SG+1;CO:='0';
ELSIF SG="1001" THEN
SG:="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 IS
PORT(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 IS
BEGIN
PROCESS(CLKM,CLR)
VARIABLE MS,MG:STD_LOGIC_VECTOR(3 DOWNTO 0);
VARIABLE SO,ALM:STD_LOGIC;
BEGIN
IF CLR='1' THEN MS:="0000";MG:="0000";
ELSIF CLKM'EVENT AND CLKM='1' THEN
IF (MS="0101") AND (MG="1001") THEN
MS:="0000";MG:="0000";SO:='1';ALM:='1';
ELSIF MG
MG:=MG+1;SO:='0';ALM:='0';
ELSIF MG="1001" THEN
MG:="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 IS
PORT(CLKH,CLR:IN STD_LOGIC;
HOURS,HOURG:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END HOUR1;
ARCHITECTURE H OF HOUR1 IS
BEGIN
PROCESS(CLKH,CLR)
VARIABLE HS,HG:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
IF CLR='1' THEN HS:="0000";HG:="0000";
ELSIF CLKH'EVENT AND CLKH='1' THEN
IF (HS="0010") AND (HG="0011") THEN
HS:="0000";HG:="0000";
ELSIF HG
HG:=HG+1;
ELSIF HG="1001" THEN
HG:="0000";HS:=HS+1;
END IF;
END IF;
HOURS<=HS;
HOURG<=HG;
END PROC