--基于 VHDL 的数字钟程序设计--author:卢术平--add:中国--e-mail:lu0shu0ping@163.com--function description:这是一个数字时钟,可以调时间(两种方法),可设置闹钟--originality:每次可设置 4 个闹钟时间点--shortage:由于按键抖动,给调时和设置时间带来不便LIBRARY IEEE;LIBRARY WORK;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;--USE WORK.shift.ALL;ENTITY shizhong IS PORT( CLK1,CLK2,CLR,LD:IN STD_LOGIC; Q1,Q2,Q3,Q4:IN STD_LOGIC; --调时引脚 Q5:IN STD_LOGIC; --闹钟开关 we,ck:IN STD_LOGIC; --控制设置闹钟时刻 WEADD:IN STD_LOGIC_VECTOR(1 DOWNTO 0);--写数据的地址 DIN1,DIN2,DIN3:IN STD_LOGIC_VECTOR(7 DOWNTO 0);--调时置数,闹钟定时置数 DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); --七段译码输出 DWEI:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --位选输出 NZOUT:OUT STD_LOGIC --闹钟输出 );END shizhong;ARCHITECTURE behave OF shizhong IS --60 进制计数器 COMPONENT count60 IS PORT( CLK:IN STD_LOGIC; CLR:IN STD_LOGIC; --EN:IN STD_LOGIC; LD:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); COUT:OUT STD_LOGIC ); END COMPONENT; --24 进制计数器 COMPONENT count24 IS PORT( CLK:IN STD_LOGIC; CLR:IN STD_LOGIC; --EN:IN STD_LOGIC; LD:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END COMPONENT; --七段译码器COMPONENT shumaguan IS PORT( a:IN STD_LOGIC_VECTOR(3 DOWNTO 0); b:OUT STD_LOGIC_VECTOR(6 DOWNTO 0) );END COMPONENT; COMPONENT naozhong IS PORT( a,b,d: in STD_LOGIC; e:OUT STD_LOGIC );END COMPONENT; --4*24 SRAMCOMPONENT sram424 IS PORT( clk1,clk2,we,rd: IN STD_LOGIC; WEADD:IN STD_LOGIC_VECTOR(1 DOWNTO 0); RDADD: IN STD_LOGIC_VECTOR(1 DOWNTO 0); DIN:IN STD_LOGIC_VECTOR(23 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(23 DOWNTO 0) );END COMPONENT; --读 sramCOMPONENT dushu IS PORT( clk,d: in STD_LOGIC; b: out STD_LOGIC; e:OUT STD_LOG...