4. 时间显示模块:通过选中不同的数码管,同时进行一定频率的扫描显示时,分,秒。
5. 时间设置模块:设置调试使能端,可以调时,分。基本功能是在使能端为高电平时,可以使时和分循环计数;
6. 整点报时模块:在秒计数到50秒时,同时分计数到59分开始,丰鸣器产生每个2秒的鸣叫(500HZ),到整点是产生750HZ的鸣叫。
7. 闹钟模块:在设定闹钟闹铃时间后,当闹钟使能端有效时,可在闹铃时间闹铃,并有彩灯显示。
3.2设计说明
首先分析数字时钟,得出进位法则大体相同,故所得时分秒进位方式语法基本相同,因此可以将时分秒定义成辣位输出端口,即分别将时分秒定义为3个component,分别给予设计。
3.3底层电路程序
3.3.1 秒计时器(VHDL语言编译)
其代码如下:(VHDL语言):
LIBRARY ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
ENTITY second IS
PORT(
clk, reset,setmin : IN STD_LOGIC;
enmin : OUT STD_LOGIC;
daout: out std_logic_vector (6 downto 0));
END entity second;
ARCHITECTURE fun OF second IS
SIGNAL count: STD_LOGIC_VECTOR( 6 downto 0);
BEGIN
daout <= count;
process ( clk , reset , setmin)
begin
-- enmin<=k;
if (reset='0') then
count <= "0000000";
elsif (setmin='0') then
enmin <= clk;
elsif (clk 'event and clk='1') then
if (count(3 downto 0)="1001") then
if (count <16#60#) then
if (count="1011001") then
enmin<='1';
count<="0000000";
ELSE
count<=count+7;
end if;
else
count<="0000000";
end if;
elsif (count < 16#60#) then
count <= count+1;
enmin<='0' after 100 ns;
else
count<="0000000";
end if;
end if;
end process;
END fun;
秒计时器实际上是一个60进制的计数器,它从时钟脉冲接受脉冲信号,每当一个脉冲信号来时,秒就自动加1,所以,输入的原文请找腾讯752018766辣,文-论'文.网
http://www.751com.cn时钟信号应该是的频率应该是1hz,当秒计满60时,发出一个脉冲信号给分组件,再将本身清零。这样,每计满60s,分钟就加1,正好按着正常的时间规律计时。
3.3.2分计时器(VHDL语言编译)
其代码(VHDL语言)如下:
LIBRARY ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
ENTITY minute IS
PORT(
clk, clk1,reset,sethour : IN STD_LOGIC;
enhour : OUT STD_LOGIC;
daout: out std_logic_vector (6 downto 0));
END entity minute;
ARCHITECTURE fun OF minute IS
SIGNAL count: STD_LOGIC_VECTOR( 6 downto 0);
BEGIN
daout <= count;
process ( clk,reset,sethour)
上一页 [1] [2] [3] [4] [5] 下一页
VHDL数字钟实验报告+数字钟电路图 第4页下载如图片无法显示或论文不完整,请联系qq752018766