当前位置:文档之家› EDA课程设计——基于VHDL语言的数字时钟设计

EDA课程设计——基于VHDL语言的数字时钟设计

EDA课程设计——基于VHDL语言的数字时钟设计
EDA课程设计——基于VHDL语言的数字时钟设计

一、设计要求 (1)

二、设计原理及框图 (1)

1、设计原理 (1)

2、结构框图 (1)

三、设计过程 (2)

1、模块化设计 (2)

2、顶层文件生成 (3)

四、仿真调试过程 (4)

1、各模块时序仿真图 (4)

2、仿真过程中遇到的问题 (5)

五、设计体会及收获 (5)

一、设计要求

1、稳定的显示时、分、秒。

2、当电路发生走时误差时,要求电路有校时功能。

3、电路有整点报时功能。报时声响为四低一高,最后一响高音正好为整点。

二、设计原理及框图 1、设计原理

系统框图由六个模块组成,分别为:秒、分、时计数模块,整点报时模块,LED 动态显示扫描模块,调时控制模块组成。其工作原理是:基准脉冲输入信号同时加到秒、分、时、分隔符的脉冲输入端,采用并行计数的方式,秒的进位接到分的使能端上,秒的使能借到分隔符的使能上,分得接到时的使能端上,完成秒、分、时和分隔符的循环计数。整点报时是根据分的A 、B 输出同时为0时,整点报时模块输出高电平控制报时。LED 显示扫描模块根据输入的扫描信号CKDSP 轮流选通秒、分、时、分隔符的8位八段数码管,LED 显示译码器完成计数器输出的BCD 的译码。

2、结构框图

显示模块

数字时钟

秒计时模块

分计时模块

时计时模块

整点报时模 块

调时控制模 块

三、设计过程

1、模块化设计

(1)秒计时模块

秒计时模块由一个60位计数器为主体构成,其输入输出端口组成为:

Clk:计时时钟信号

Reset:异步清零信号

Setmin:分钟设置信号

Enmin:使能输出信号

Daout[6:0]:BCD码输出

(2)分计时模块

分计时模块由一个60位计数器为主体构成,其输入输出端口组成为:

Clk、clk1:计时时钟信号

Reset:异步清零信号

Sethour:小时设置信号

Enmin:使能输出信号

Daout[6:0]:BCD码输出

(3)时计时模块

时计时模块由24位计数器为主体构成,其输入输出端口组成为:

Clk:计时时钟信号

Reset:异步清零信号

Daout[6:0]:BCD码输出

(4)显示模块

系统时间输出由六个七段数码管显示。

显示的数据是各计时模块给出的

BCD码。

(5)调时控制模块

该模块主要用于调节时、分显示,用于“对表”。

(6)整点报时模块

在时钟整点的时候产生扬声器驱动信号。由时钟计

时模块中分钟的进行信号进行控制。当contr_en 为

高电平时,将输入信号clk 送到输出端speak 用于

驱动扬声器,同时在clk 的控制下,输出端lamp[2..0]

进行循环移位。输出控制模块有扬声器控制器子模

块组成。

2、顶层文件生成

前面已经完成了电子时钟电路的各个组成部分的设计,下面把这些组成部分组装起来,形成完整的总体设计。该电子时钟的命名为clock,其外部端

口如右图所示。各个输入/ 输出端口的作用如下:

(1)clk 为外部时钟信号,其频率为1Hz,reset 为异

步清零信号.

(2)sethour 和setmin分别为调时调分脉冲输入信

号,当en_set为高电平时,

每来一个sethour 脉冲或setmin脉冲,时、分输出将分

别加1;

(3)second[6...0]为秒的个位和十位BCD 码输出,

min[6…0]为分钟的个位和十位BCD 码输出,hour[6...0]

为小时的个位和十位BCD 码输出,它们最终中用来驱

动七段数码管,lamp[2...0]为花样显示输出信号,speak

为整点报时扬声器驱动信号

四、仿真调试过程

1、各模块时序仿真图(1)秒计数器仿真图

(2)分计数器仿真图

(3)时计数器仿真图

(4)整点报时仿真图

(5)调时调分仿真图

(6)LED显示译码仿真图

2、仿真过程中遇到的问题

(1)由于距离学习EDA技术课程的时间较长,遗忘了部分课程内容,对仿真软件不熟悉造成多次仿真失败。就此问题我认真复习了所学的EDA相关课程,按照课本上介绍的步骤重新进行了仿真,问题得以解决。

(2)因为仿真过程中对各部分时序波形应采取什么样的激励波形不清楚,给仿真过程带来了较大的麻烦。通过查阅相关资料,阅读网上一些比较成熟的论文,确定了仿真过程中的相关参数。

五、设计体会及收获

本次课程设计我做出的数字时钟能够正确的进行整点报时,显示时间,但是对于调时调分功能不能正确显示。经过努力,简易电子时钟的设计基本上算是完成了,在整个设计中,我最大的体会就是:对学过的知识遗忘太多。在本次的课程设计中,我发现了很多问题,同时做起来也很难不顺手,看着简单的电路,要动手把它设计出来实非易事,主要原因对相关应用软件的不熟悉,这就要求我们在以后的学习中,应该注意复习的重要性,对学过的知识要时常复习,加深记忆,更重要的是我们要学会把从书本上学到的知识和实际电路联系起来,这不论对我们以后的学习还是就业,都会起到很大的促进和帮助。我相信,通过这次的课程设计,在下一阶段的学习中我们会更加努力,力争把这门课学好学精。同时通过本次课程设计,巩固了我们以前学过的专业知识,通过这次的程序设计,使我们对数字系统结构也有了更进一步的了解与认识,同时对数据库软件EDA技术,VHDL语言等系列知识都有了一定的了解与认识。使用EDA技术开发页面的能力也有了提高,也使我们把理论与实践从正真意义上结合了起来,考验了我们的动手能力和查阅相关资料的能力,还有组织材料的能力。通过此次实践,我们从中可以找出自己知识的不足与欠缺,以便我们在日后的学习中得以改进与提高。经过本次设计使我们对大学四年期间所学习到的知识得以进一步实践,这将对我们走出校园,走向社会,走向工作岗位奠定坚实的基础。

附录

1、秒计数单元代码

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);

SIGNAL enmin_1,enmin_2:STD_LOGIC; BEGIN

daout<=count;

enmin_2<=(setmin and clk);

enmin<=(enmin_1 or enmin_2);

process(clk,reset,setmin)

begin

if(reset='0') then count<="0000000";

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<='1';count<="0000000";

else

count<=count+7;

end if;

else

count<="0000000";

end if;

elsif(count<16#60#)then

count<=count+1;

enmin_1<='0' after 100 ns;

else

end if;

end if;

end process;

end fun ;

2、分计数单元代码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);

SIGNAL enhour_1,enhour_2:STD_LOGIC; BEGIN

daout<=count;

enhour_2<=(sethour and clk1);

enhour<=(enhour_1 or enhour_2);

process(clk,reset,sethour)

begin

if(reset='0')then

count<="0000000";

elsif(clk'event and clk='1')then

if(count(3 downto 0)="1001")then

if(count<16#60#)then

if(count="1011001")then

enhour_1<='1';

count<="0000000";

ELSE

count<=count+7;

end if;

else

count<="0000000";

end if;

elsif(count<16#60#)then

count<=count+1;

enhour_1<='0'after 100 ns;

else

count<="0000000";

end if;

end if;

end process;

END fun;

3、时计数单元代码

LIBRARY ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

ENTITY hour IS

PORT(

clk,reset:IN STD_LOGIC;

daout:out std_logic_vector(5 downto 0)); END entity hour;

ARCHITECTURE fun OF hour IS

SIGNAL count:STD_LOGIC_VECTOR(5 downto 0);

BEGIN

daout<=count;

process(clk,reset)

begin

if(reset='0')then

count<="000000";

elsif(clk'event and clk='1')then

if (count(3 downto 0)="1001")then

if(count<=16#23#)then

count<=count+7;

else

count<="000000";

end if;

elsif(count<16#23#)then

count<=count+1;

else

count<="000000";

end if;

end if;

end process;

END fun;

4、显示单元代码

LIBRARY ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

ENTITY deled IS

PORT(num:IN std_logic_vector(3 downto 0); led:OUT std_logic_vector(6 downto 0));

end deled;

ARCHITECTURE fun OF deled IS

BEGIN led<="1111110"when num="0000"else "0110000"when num="0001"else "1101101"when num="0010"else "1111001"when num="0011"else "0110011"when num="0100"else "1011011"when num="0101"else "1011111"when num="0110"else "1110000"when num="0111"else "1111111"when num="1000"else "1111011"when num="1001"else "1110111"when num="1010"else "0011111"when num="1011"else "1001110"when num="1100"else "0111101"when num="1101"else "1001111"when num="1110"else "1000111"when num="1111";

END fun;

5、调时控制单元代码

LIBRARY ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

ENTITY seltime IS

PORT(

clk1,reset:IN STD_LOGIC;

sec,min:IN STD_LOGIC_VECTOR(6 downto 0);

hour:in std_logic_vector(5 downto 0); daout:OUT STD_LOGIC_vector(3 downto 0); dp:OUT std_LOGIC;

sel:out std_logic_vector(2 downto 0));

END seltime;

ARCHITECTURE fun OF seltime IS SIGNAL count:STD_LOGIC_vector(2 downto 0);

BEGIN

sel<=count;

process(clk1,reset)

begin

if(reset='0')then

count<="000";

elsif(clk1'event and clk1='1')then

if(count>="101")then

count<="000";

else

count<=count+1;

end if;

end if;

case count is

when"000"=>daout<=sec(3 downto 0);dp<='0';

when"001"=>daout(3)<='0';daout(2 downto 0)<=sec(6 downto 4);dp<='0'; when"010"=>daout<=min(3 downto 0);dp<='1';

when"011"=>daout(3)<='0';daout(2 downto 0)<=min(6 downto 4);dp<='0'; when"100"=>daout<=hour(3 downto 0);dp<='1';

when others=>daout(3 downto 2)<="00"; daout(1 downto 0)<=hour(5 downto 4);dp<='0';

end case;

end process;

end fun;

6、整点报时单元代码

LIBRARY ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

ENTITY alert IS

PORT(

clk:IN STD_LOGIC;

dain:IN STD_LOGIC_VECTOR (6 DOWNTO 0);

speak:OUT STD_LOGIC;

lamp:OUT STD_LOGIC_VECTOR (2 DOWNTO 0));

END alert;

ARCHITECTURE fun OF alert IS

signal coun:std_logic_vector (1 downto 0); signal count1:std_logic_vector (1 downto 0); BEGIN

speaker:process(clk)

begin

speak<=count1(1);

if(clk'event and clk='1')then

if(dain="0000000")then

if(count1>="10")then count1<="00";

else

count1<=count1+1;

end if;

end if;

end if;

end process speaker;

lamper:process(clk)

begin

if(rising_edge(clk))then

if(coun<="10")then

if(coun="00")then

lamp<="001";

elsif(coun="01")then

lamp<="010";

elsif(coun="10")then

lamp<="100";

end if;

coun<=coun+1;

else

coun<="00";

end if;

end if;

end process lamper;

END fun;

7、顶层代码

library ieee;

use ieee.std_logic_1164.all;

entity clock_top is

port(clk,reset,setmin,sethour,clkdsp:in std_logic;

speaker:out std_logic;

lamp:out std_logic_vector(2 downto 0); sel:out std_logic_vector(2 downto 0); a,b,c,d,e,f,g,dpout:out std_logic);

end clock_top;

architecture a of clock_top is COMPONENT second

PORT(

clk,reset,setmin:IN STD_LOGIC; daout:out std_logic_vector(6 downto 0); enmin:OUT STD_LOGIC);

END COMPONENT; COMPONENT minute

PORT(

clk,clk1,reset,sethour:IN STD_LOGIC; enhour:OUT STD_LOGIC;

daout:out std_logic_vector(6 downto 0)); END COMPONENT;

COMPONENT hour

PORT(

clk,reset:IN STD_LOGIC;

daout:out std_logic_vector(5 downto 0)); END COMPONENT;

COMPONENT alert

PORT(

clk:IN STD_LOGIC;

dain:in std_logic_vector(6 downto 0); lamp:out std_logic_vector(2 downto 0); speak:OUT STD_LOGIC);

END COMPONENT;

COMPONENT seltime

PORT(

clk1,reset:IN STD_LOGIC;

sec,min:in std_logic_vector(6 downto 0); hour:in std_logic_vector(5 downto 0);

dp:out std_logic;

daout:out std_logic_vector(3 downto 0); sel:OUT STD_LOGIC_vector(2 downto 0)); END COMPONENT;

COMPONENT deled

PORT(

num:IN STD_LOGIC_vector(3 downto 0); led:out std_logic_vector(6 downto 0));

END COMPONENT;

signal enmin_re,enhour_re:std_logic;

signal

second_daout,minute_daout:std_logic_vector( 6 downto 0);

signal hour_daout:std_logic_vector(5 downto 0); signal seltime_daout:std_logic_vector(3 downto 0);

signal ledout:std_logic_vector(6 downto 0); begin

a<=ledout(6);b<=ledout(5);c<=ledout(4);d<=l edout(3);

e<=ledout(2);f<=ledout(1);g<=ledout(0);

u1: second port map(reset=>reset,

clk=>clk,

setmin=>setmin,

enmin=>enmin_re,

daout=>second_daout);

u2:minute port map(clk=>enmin_re,

clk1=>clk,

reset=>reset,

sethour=>sethour,

enhour=>enhour_re,

daout=>minute_daout);

u3:hour port map(clk=>enhour_re,

reset=>reset,

daout=>hour_daout);

u4:alert port map(clk=>clk,

dain=>minute_daout,

speak=>speaker,

lamp=>lamp);

u5:seltime port map(clk1=>clkdsp,

reset=>reset,

sec=>second_daout,

min=>minute_daout,

hour=>hour_daout,

daout=>seltime_daout,

dp=>dpout,

sel=>sel);

u6:deled port map(num =>seltime_daout,

led=>ledout);

end a;

vhdl课程设计(电子钟+闹铃)

数字钟的设计 一、系统功能概述 (一)、系统实现的功能: 1、具有“时”、“分”、“秒”的十进制数字显示(小时从00 ~ 23)。 2、具有手动校时、校分、校秒的功能。 3、有定时和闹钟功能,能够在设定的时间发出闹铃声。 4、能进行整点报时。从59分50秒起,每隔2秒发一次低音“嘟”的信号,连续5次, 最后一次为高音“嘀”的信号。 (二)、各项设计指标: 1、显示部分采用的6个LED显示器,从高位至低位分别显示时、分、秒。 2、有一个设置调闹钟定时时间、正常时间的按钮,选择调的对象。 3、有三个按钮分别调时、分、秒的时间。 4、有一个按钮用作开启/关闭闹铃。 5、另外需要两个时钟信号来给系统提供脉冲信号,使时钟和闹钟正常工作,分别为1Hz、 1kHz的脉冲。 二、系统组成以及系统各部分的设计 1、系统结构描述//要求:系统(或顶层文件)结构描述,各个模块(或子程序)的功能描述;(一)系统的顶层文件: 1、顶层文件图:(见下页) 2、各模块的解释: (1)、7个输入量clk_1khz、clk_1hz、key_slt、key_alarm、sec_set、min_set、hour_set:其中clk_1khz为闹铃模块提供时钟,处理后能产生“嘟”、“嘀”和变化的闹铃声音;clk_1hz为计时模块提供时钟信号,每秒计数一次;key_slt选择设置对象:定时或正常时间;key_alarm能够开启和关闭闹铃;sec_set、min_set、hour_set用于设置时间或定时,与key_slt相关联。各按键输出为脉冲信号。 (2)、CNT60_A_SEC模块: 这个模块式将clk_1hz这个时钟信号进行60进制计数,并产生一个分钟的触发信号。该模块能将当前计数值实时按BCD码的格式输出。将该输出接到两位LED数码后能时时显示秒的状态。通过alarm_clk可以选择设置对象为时间还是定时值。在设置时间模式上,key上的一个输入脉冲可以将clk的输入信号加一。在设置定时模式上,key 上的脉冲只修改定时值,不影响时间脉冲clk的状态。 同时该模块具有两个输出口out_do、out_di来触发整点报时的“嘟”、“嘀”声音。 (3)、CNT60_A_MIN模块: 这个模块式将CNT60_A_SEC的输出信号进行60进制计数,并产生一个时位的触发信号。该模块能将当前计数值实时按BCD码的格式输出。将该输出接到两位LED数码后能时时显示分的状态。通过alarm_clk可以选择设置对象为时间还是定时值。在设置时间模式上,key上的一个输入脉冲可以将clk的输入信号加一。在设置定时模式上,key上的脉冲只修改定时值,不影响时间脉冲clk的状态。 同时该模块具有三个输出口out_do、out_di、out_alarm来触发整点报时的“嘟”、“嘀”、闹铃声音。

vhdl数字时钟设计

数字时钟设计 一、题目分析 1、功能介绍 1)具有时、分、秒计数显示功能,以24小时循环计时。 2)时钟计数显示时有LED灯的花样显示。 3)具有调节小时、分钟及清零的功能。 4)具有整点报时功能。 2、总体方框图 3、性能指标及功能设计 1)时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分——60进制计数,即从0到59循环计数,时钟——24进制计数,即从0到23循环计数,并且在数码管上显示数值。 2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来

一个脉冲,即计数一次。 3)清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位。 4)蜂鸣器在整点时有报时信号产生,蜂鸣器报警。产生“滴答.滴答”的报警声音。 5)LED灯在时钟显示时有花样显示信号产生。即根据进位情况,LED不停的闪烁,从而产生“花样”信号。 二、选择方案 1、方案选择 方案一:根据总体方框图及各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。显示:小时采用24进制,而分钟均是采用6进制和10进制的组合。 方案二:根据总体方框图及各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。显示:小时采用24进制,而分钟和秒均60进制。 终上所述,考虑到试验时的简单性,故我选择了方案二。 三、细化框图 根据自顶向下的方法以及各功能模块的的功能实现上述设计方案应系统细化框图:

VHDL数字钟设计报告

VHDL数字钟设计报告 一. 数字钟总体设计方案: 1.1设计目的 ①正确显示时、分、秒; ②可手动校时,能分别进行时、分的校正; ③整点报时功能; 1.2设计思路 数字钟的设计模块包括:分频器、去抖动电路、校时电路、“时、分、秒”计数器、校时闪烁电路、 整点报时和译码显示电路。 每一个功能模块作为一个实体单独进行设计,最后再用VHDL的例化语句将各个模块进行整合,生成 顶层实体top。 该数字钟可以实现3个功能:计时功能、设置时间功能和报时功能。 二.数字钟模块细节 2.1 分频器(fenpin) 本系统共需3种频率时钟信号(1024Hz、512Hz、1Hz)。为减少输入引脚,本系统采用分频模块,只需由外部提供1024Hz基准时钟信号,其余三种频率时钟信号由分频模块得到。 分频原理:为以1024Hz基准时钟经1024分频得到512Hz,1Hz频率时钟信号。 分频器管脚 代码:

library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity fenpin is port(clk1024:in std_logic; clk1,clk512:out std_logic ); end fenpin ; architecture cml of fenpin is begin process (clk1024) variable count1: integer range 0 to 512; variable q1: std_logic; begin if clk1024' event and clk1024='1' then if count1=512 then q1:=not q1; count1:=0; else count1:=count1+1; end if; end if; clk1<=q1; end process; process(clk1024) variable count512: integer range 0 to 1; variable q512: std_logic; begin if clk1024' event and clk1024='1' then if count512=1 then q512:=not q512; count512:=0; else count512:=count512+1; end if; end if; clk512<=q512; end process; end cml; 2.2 校时电路(jiaoshi)

VHDL多功能数字钟

基于VHDL语言 数 字 钟 设 计 学院:信息工程学院 专业: 姓名: 学号: 2010年6月15日

一、设计要求 1、具有以二十四小时制计时、显示、整点报时、时间设置和闹钟的功能。 2、设计精度要求为1秒。 二、设计目的 1.掌握各类计数器以及计数器的级联方式; 2.掌握数码管动态显示的原理与方法; 3.掌握用FPGA技术的层次化设计方法; 4.理解数字逻辑硬件和软件的设计思想; 三、设计环境:Quartus II CPLD-5型试验箱 四、系统功能描述 1、系统输入:系统状态及较时、定时转换的控制信号为enset、k、set; 时钟信号clk采用50MHz;校时复位信号为reset,输入信号均由按键信号产生。 2、系统输出:LED显示输出;蜂鸣器声音信号输出。 3、多功能数字电子钟系统功能的具体描述如下: (一)计时:正常工作状态下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时。 (二)校时:在计时显示状态下,按下“enset”键,接着按下“k”键,进入“小时”待校准状态,若此时按下“set”键,小时开始校准;之后按上“k”键则进入“分”待校准状态;继续按下“k”键则进入“秒”待复零状态;再次按上“k”键数码管显示闹钟时间,并进入闹钟“小时”待校准状态;再次按下“k”键则进入闹钟“分”待校准状态;若再按上“k”键恢复到正常计时显示状态。若校时过程中按下“reset”键,则系统恢复到正常计数状态。 (1)“小时”校准状态:在“小时”校准状态下,显示“小时”的数码管以2Hz 闪烁,并以2Hz的频率递增计数。 (2)“分”校准状态:在“分”校准状态下,显示“分”的数码管以2Hz闪烁,并以2Hz的频率递增计数。 (3)“秒”校准状态:在“秒复零”状态下,显示“秒”的数码管以2Hz闪烁,并以1Hz的频率递增计数。 (4)闹钟“小时”校准状态:在闹钟“小时”校准状态下,显示“小时”的数码管以2Hz闪烁,并以2Hz的频率递增计数。 (5)闹钟“分”校准状态:在闹钟“分”校准状态下,显示“分”的数码管以2Hz闪烁,并以2Hz的频率递增计数。 (三)整点报时:蜂鸣器在“59”分钟的第“51”、“53”、“55”、“57”秒发频率为500Hz的低音,在“59”分钟的第“59”秒发频率为1000Hz的高音,结束时为整点。 (四)显示:要求采用扫描显示方式驱动6个LED数码管显示小时、分、秒。(五)闹钟:闹钟定时时间到,蜂鸣器发出频率为1000Hz的高音,持续时间为60秒。

VHDL编写的数字钟

FPGA课程设计实验报告 题目:VHDL编写的数字钟设计 学院:电子信息学院 专业:电子与通讯工程 姓名:朱振军

基于FPGA的VHDL数字钟设计 一、功能介绍 1.在七段数码管上具有时--分--秒的依次显示。 2.时、分、秒的个位记满十向高位进一,分、秒的十位记满五向高位进一,小时按24进制计数,分、秒按60进制计数。 3.整点报时,当计数到整点时扬声器发出响声。 4.时间设置:可以通过按键手动调节秒和分的数值。此功能中可通过按键实现整体清零和暂停的功能。 5.LED灯循环显示:在时钟正常计数下,LED灯被依次循环点亮。 待增加功能: 1.实现手动调节闹铃时间,在制定时间使扬声器发声。 2.实现微妙的快速计数功能,可实现暂停、保存当前时间、继续计数的功能。 二、设计方案 本文数字钟的设计采用了自顶向下分模块的设计。底层是实现各功能的模块,各模块由vhdl语言编程实现:顶层采用原理图形式调用。其中底层模块包括秒、分、时三个计数器模块、按键去抖动模块、按键控制模块、时钟分频模块、数码管显示模块共7个模块。 设计框图如下: 图一数字钟系统设计框图 由图1可以清晰的看到数字钟系统设计中各功能模块间连接关系。系统时钟50MHZ经过分频后产生1秒的时钟信号,1秒的时钟信号作为秒计数模块的输入信号,秒计数模块产生的进位信号作为分计数模块的输入信号,分计数模块的进位信号作为时计数模块的输入信号。秒计数模块、分计数模块、时计数模块的计数输出分别送到显示模块。由于设计中要使用按键进行调节时间,而按键的动作过程中存在产生得脉冲的不稳定问题,所以就牵扯到按键去抖动的问题,对此系统中设置了按键去抖动模块,按键去抖动模块产生稳定的脉冲信号送入按键控制模块,按键控制模块根据按键的动作对秒、分、时进行调节。

基于VHDL语言的数字时钟设计

课程:CPLD与FPGA设计及应用 实验:基于VHDL语言的数字时钟设计 学号:092030030 姓名:朱峰 专业:信号与信息处理 学院:电子与信息学院 2011年12月

基于VHDL语言的数字时钟设计一:主要功能 1:具有时、分、秒计数显示功能,以24小时循环计时。 2:具有日期和星期显示功能。 3:具有秒表功能 4:具有调节日期,星期,小时,分钟,清零的功能。 5:具有定时和闹铃的功能。 二:结构框图 三:RTL图

四:功能实现 4.1分频模块设计 本设计使用的输入时钟信号为50Mhz,经过分频产生两路时钟信号,其中一路为微秒计数时钟信号,一路为动态扫描时钟信号。同时模块有一输入控制信号,其功能是停止微秒计数时钟信号,以实现定时的功能。 输入:clk_in 为50Mhz,setstop为微秒计数时能信号 输出:clk_out1为1/60hz clk_out2为1khz 源代码如下: library ieee; use ieee.std_logic_1164.all; entity div is port(clk_in,setstop: in std_logic; clk_out1,clk_out2: out std_logic); end entity div; architecture fun of div is constant a:integer:=8333333; constant b:integer:=49999; signal c:integer range 0 to a; signal d:integer range 0 to b; begin process(clk_in,setstop) begin if(clk_in 'event and clk_in='1') then if(( c+7500000)

基于VHDL语言的数字钟设计

信息与通信工程学院 数字电路与逻辑设计 实验题目:基于VHDL语言的数字钟设计 班级: 姓名: 学号: 日期: 指导教师:

一.摘要 数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。它的基本功能是计时,计时周期为24小时,显示满刻度23时59分59秒;或者计时周期为12小时并配有上下午指示,显示满刻度为11时59分59秒,通过六个七段数码管显示出来。 本实验主要在理论分析和具体的软硬件实现上,基于VHDL语言编写源代码,使用软件Quartus II 进行处理,再配合具体电路连接,实现一个多功能的数字钟。 关键词:数字钟;VHDL语言;七段数码管 二.设计任务要求 设计实现一个数字钟。 1.24小时制,显示刻度从0:0:0到23:59:59 。 2.12小时制,显示刻度从0:0:0到11:59:59 。 3.12/24小时制可切换,12小时制下上下午有不同显示(上午发光二极管不亮, 下午发光二极管亮)。 4.可手动校对时间,能对时和分进行校正。 5.整点报时功能。 6.闹铃功能,可设置闹铃时间,当计时到预定时间时,蜂鸣器发出闹铃信号, 闹铃时间为5秒,可提前终止闹铃。 7.可认为设置时间为倒计时模式 8.可切到屏保模式,六个数码管显示为“supper”字样。 三.设计思路和总体设计框图 1.设计思路 程序设计主要分为四个模块,第一部分,做分频器,分出一秒的时钟用来计数,再分出一个中频时钟用来扫描显示数码管,我选择的频率是50kHZ;第二部分,做计数器,秒随时钟沿计数进1,分钟随着秒计数60次进一,而小时,由于有12/24小时制的切换,时的计数有两个信号来进行,一个信号hour1是分60进一在0到23循环计数,另一个信号hour2是分60进一在0到11循环计数;第三部分,做扫描显示六个七段数码管,通过选通信号6矢量cat来依次使六个数码管亮,数码管每两位对应相应的时分秒;第四部分,其他输入输出单元,比如数字钟的时间修正,闹铃等,这些都是基于前三个部分,做起来难度不大。 设计的关键是做好计数器和数码管显示,这是本实验最核心的部分。

多功能数字电子钟_VHDL

《VHDL课程设计》实验报告 多功能数字电子钟 姓名: 班级: 学号: 指导老师: 成绩: 完成时间:2008年1月4日星期五 完成地点:502机房 一、实验目的 1.学习数字系统设计的自顶向下设计法及控制器的设计。 2.加深利用EDA技术实现数字系统的体会。 二、实验仪器及器件 1.EDA 开发软件(1套) 2.微机(1台) 3.实验开发系统(1台) 4.其他器件和材料(若干) 三、实验要求及设计方案 1.设计一个具有24进制计时、显示、整点报时、时间设置和闹钟功能的数字钟,要求时钟的最小分辨率时间为1s。 2.数字钟的设计方案如下: 系统输入:mode为计时显示和闹钟定时显示转换输入;set为校时和定时设置的时、分、秒转换输入;k为校时和定时设置的时、分、秒手动加1输入;clk为时钟信号;reset为系统复位信号。输入信号均由按键产生。 系统输出:LED显示输出;蜂鸣器(bell)声音信号输出。 3.多功能数字钟系统功能的具体描述如下: 计时:正常工作状态下,每日按24小时计时制计时并显示,蜂鸣器逢整点报时。

校时:在计时显示状态下,按下“set键”,进入“小时”校时状态,再次按下“set键”,进入“分”校时状态,继续按下“set键”,进入“秒”校时状态,第四次按下“set键”又回复到正常计时显示状态。 1)“小时”校时状态:进入“小时”校时状态后,显示“小时”的数码管闪烁,每按动“k”键一次,“小时”+1,若不按动“k”键则小时数不变,一直按下“k”键则小时数一4Hz的频率递增计数。 2)“分”校时状态:进入“分”校时状态后,显示“分”的数码管闪烁,每按动“k”键一次,“分”+1,若不按动“k”键则分数不变,一直按下“k”键则分数一4Hz的频率递增计数。 3)“秒”校时状态:进入“秒”校时状态后,显示“秒”的数码管闪烁,每按动“k”键一次,“秒”+1,若不按动“k”键则秒数不变,一直按下“k”键则秒数一4Hz的频率递增计数。 整点报时:蜂鸣器在“59”分钟的第51、53、55、57秒发出频率为512Hz的低音,在“59”秒发出频率为1024Hz的高音,结束时为整点。 显示:采用8个LED数码管分别显示时、分、秒并且他们之间用“—”隔开。 闹钟:闹钟定时时间到,蜂鸣器发出周期为1s的滴、滴声,持续时间为10秒;闹钟定时显示。 闹钟定时设置:在闹钟显示状态下,按下“set键”,进入“小时”校时状态,再次按下“set键”,进入“分”校时状态,继续按下“set键”,进入“秒”校时状态,第四次按下“set键”又回复到闹钟显示状态。 闹钟的时、分、秒设置过程和计时设置相同。 计时显示和闹钟显示之间的转换:按动“mode”键,数字钟将在计时显示和闹钟定时显示之间转换。 4)多功能数字钟系统结构逻辑框图如下:

VHDL 语言设计数字时钟

数字时钟 DIGITAL CLOCK 电子信息科学与技术专业 关键词:VHDL,设计,数字钟,应用电路 英文关键词:VHDL; design; digital clock; application electro circuits 摘要:以一款数字钟设计为例,较详细的介绍了如何用VHDL语言设计数字电路,并给出了部分程序、仿真波形图,并在 MAX+plusII中进行编译、仿真、下载。由此说明利用VHDL 开发数字电路的优点。 英文摘要:By showing some program codes and emulational wave charts,the paper introduces the way to design digital electro circuits with VHDL in details and gives us an example of designing a digital clock.And it compiles,emulates and downloads them in MAX+plusII,which elucidates the advantages of developing digital electro circuits with VHDL

引言 20世纪末,数字电子技术得到了飞速发展,有力地推动和促进了社会生产力的发展和社会信息化的提高,数字电子技术的应用已经渗透到人类生活的各个方面。从计算机到手机,从数字电话到数字电视,从家用电器到军用设备,从工业自动化到航天技术,都尽可能采用了数字电子技术。 现代电子设计技术的核心是EDA技术。EDA(电子设计自动化)技术就是以计算机为工具,在EDA软件平台上,对硬件语言HDL为系统逻辑描述手段完成的设计文件,自动的完成逻辑编译、逻辑化简、逻辑综合及优化、逻辑仿真,直至对特定目标芯片的适配编译、逻辑映射和编程下载等工作(文本选用的开发工具为Altera公司的MAX+PLUSII)。EDA的仿真测试技术只需要通过计算机就能对所设计的电子系统从各种不同层次的系统性能特点完成一系列准确的测试与仿真操作,大大提高了大规模系统电子设计的自动化程度。设计者的工作仅限于利用软件方式,即利用硬件描述语言(如VHDL)来完成对系统硬件功能的描述。EDA技术使实现,极大地提高了设计效率,缩短了设计周期,节省了设计成本。 今天EDA技术已经成为电子设计的重要工具,无论是设计芯片还是设计系统,如果没有EDA工具的支持,都将是难以完成的。EDA工具已经成为现代电路设计工程师的重要武器,正在发挥越来越重要的作

数字时钟的VHDL设计

数字系统设计与硬件描述语言 期末考试作业 题目:数字时钟的VHDL设计 学院:信息学院 专业:物联网工程 学号:3011204286 :洋 2013-11-06

一、选题设计描述 1.功能介绍 设计一台能显示时、分、秒的数字钟。 由时钟信号经分频产生秒脉冲; 计时计数器用24进制计时电路; 可手动校时,能分别进行时、分的校正; 具有整点报时功能。 2.算法简介 设计原理 图1 数字钟的系统框图 该系统由振荡器、分频器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路等组成。振荡器和分频器产生整个系统的时基信号,它直接决定计时系统的精度。“秒计数器”采用六十进制计数器,每累计60秒向“分计数器”进位;“分计数器”采用六十进制计数器,每累计60分向“时计数器”进位;“时计数器”采用二十四进制计数器,按照“24翻1”规律计数。“时、分、秒”计数器的输出经译码器送显示器显示。校时电路用来当计时出现误差时对“时、分、秒”进行校对调整。

设计过程 1. 设计思路 时钟脉冲信号作为数字钟的时间基准,再经分频器输出标准秒脉冲。秒计数器计满60后向分计数器进位,分计数器计满60后向小时计数器进位,小时计数器是计满24后,系统自动复位重新开始计数。计数器的输出经译码电路后送到显示器显示。可以用校时电路进行校时。 2.数字钟的设计方案 数字钟的设计包括编码模块、分频模块、秒计时模块、分计时模块、小时计时模块和报时模块。该数字钟可以实现3个功能:计时功能、报时功能和设置时间功能。 2.1. 编码模块 编码模块主要是对时(sethour)、分(setmin)、秒(setsec)的设置输入。 2.2. 分频模块 在数字钟的设计中,外部输入时钟信号clk1的频率为8hz,其分频后的频率为clk,使其分频结果为1hz,用来提供给秒计时模块、分计时模块、小时计时模块。 2.3. 秒计时模块 将“秒计时脉冲”clk接信号源单元的1HZ脉冲信号,此时秒显示将从00计时到59,然后回到00,重新计时。在秒位进行计时的过程中。 秒计时器是由一个60进制的计数器构成的,具有置数和计数功能。其中rst为置数信号,当rst为1时,秒计时器置数。clk为驱动秒计时器的时钟,sec1、sec0为秒计时器的高位和低位输出。 2.4. 分计时模块 分计时电路:将“分计时脉冲”clk接信号源单元的1HZ脉冲信号,此时分显示将从00计时到59,然后回到00,重新计时。在分位进行计时的过程中。分计时器是由一个60进制的计数器构成的,具有置数和计数功能。其中rst为置数信号,当rst为1时,分计时器置数。min1、min0为分计时器的高位和低位输出。 2.5. 小时计时模块 将“小时计时脉冲”clk接信号源单元的1HZ脉冲信号,此时小时显示将从00计时到24,然后回到00,重新计时。 时计时器是由一个24进制的计数器构成的,具有置数和计数功能。其中的rst为置数信号,当rst为1时,时计时器置数。hr1、hr0为时计时器的高位和低位输出。3.2.6, 报时模块 当分位到59时,秒位计到51秒、53秒、55秒、57秒、59秒时报时一次,而后小时位加1。 二、程序源代码及说明 源程序 数字钟整体程序 整个程序分为五个部分,分别为分频部分、校时部分、秒部分、分部分、小时部分。

根据VHDL的多功能数字钟设计报告

基于VHDL的多功能数字钟 设计报告 021215班 卫时章 02121451

一、设计要求 1、具有以二十四小时制计时、显示、整点报时、时间设置和闹钟的功能。 2、设计精度要求为1秒。 二、设计环境:Quartus II 三、系统功能描述 1、系统输入:时钟信号clk采用50MHz;系统状态及较时、定时转换的控制信号为k、set,校时复位信号为reset,均由按键信号产生。 2、系统输出:LED显示输出;蜂鸣器声音信号输出。 3、多功能数字电子钟系统功能的具体描述如下: (一)计时:正常工作状态下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时。 (二)校时:在计时显示状态下,按下“k”键,进入“小时”待校准状态,若此时按下“set”键,小时开始校准;之后按下“k”键则进入“分”待校准状态;继续按下“k”键则进入“秒”待复零状态;再次按下“k”键数码管显示闹钟时间,并进入闹钟“小时”待校准状态;再次按下“k”键则进入闹钟“分”待校准状态;若再按下“k”键恢复到正常计时显示状态。若校时过程中按下“reset”键,则系统恢复到正常计数状态。 (1)“小时”校准状态:在“小时”校准状态下,显示“小时”的数码管以2Hz 闪烁,并按下“set”键时以2Hz的频率递增计数。 (2)“分”校准状态:在“分”校准状态下,显示“分”的数码管以2Hz闪烁,并按下“set”键时以2Hz的频率递增计数。 (3)“秒”校准状态:在“秒复零”状态下,显示“秒”的数码管以2Hz闪烁,并以1Hz的频率递增计数。 (4)闹钟“小时”校准状态:在闹钟“小时”校准状态下,显示“小时”的数码管以2Hz闪烁,并按下“set”键时以2Hz的频率递增计数。 (5)闹钟“分”校准状态:在闹钟“分”校准状态下,显示“分”的数码管以2Hz闪烁,并按下“set”键时以2Hz的频率递增计数。 (三)整点报时:蜂鸣器在“59”分钟的第“51”、“53”、“55”、“57”秒发频率为500Hz的低音,在“59”分钟的第“59”秒发频率为1000Hz的高音,结束时为整点。 (四)显示:采用扫描显示方式驱动4个LED数码管显示小时、分,秒由两组led灯以4位BCD 码显示。 (五)闹钟:闹钟定时时间到,蜂鸣器发出频率为1000Hz的高音,持续时间为60秒。 四、各个模块分析说明 1、分频器模块(freq.vhd) (1)模块说明:输入一个频率为50MHz的CLK,利用计数器分出 1KHz的q1KHz,500Hz的q500Hz,2Hz的q2Hz和1Hz的q1Hz。 (2)源程序: library ieee;

基于VHDL的数字时钟设计

基于VHDL的数字时钟设计

————————————————————————————————作者:————————————————————————————————日期: ?

目录 1概述?错误!未定义书签。 1.1数字时钟的工作原理 (1) 1.2设计任务 (1) 2 系统总体方案设计2? 3 VHDL模块电路设计3? 3.1模块实现3? 3.1.1分频模块pinlv (3) 3.1.2按键去抖动模块qudou?5 3.1.3按键控制模块self1 (6) 3.1.4秒、分六十进制模块cantsixty..................................... 7 3.1.5时计数模块hourtwenty9? 3.1.6秒、分、时组合后的模块9? 3.1.7数码管显示模块10? 3.2数字时钟的顶层设计原理图 ................................................... 13 3.3系统仿真与调试 (14) 结束语1?6 参考文献17? 致谢........................................................................................................ 18附录源程序代码19?

1概述 1.1数字时钟的工作原理 数字钟电路的基本结构由两个60进制计数器和一个24进制计数器组成,分别对秒、分、小时进行计时,当计时到23时59分59秒时,再来一个计数脉冲,则计数器清零,重新开始计时。秒计数器的计数时钟CLK为1Hz的标准信号,可以由晶振产生的50MHz信号通过分频得到。当数字钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信号,每一秒钟发出一个中断给CPU,CPU采用NIOS,它响应中断,并读出小时、分、秒等信息。CPU对读出的数据译码,使之动态显示在数码管上。 1.2设计任务 设计一个基于VHDL的数字时钟,具体功能要求如下: 1.在七段数码管上具有时--分--秒的依次显示。 2.时、分、秒的个位记满十向高位进一,分、秒的十位记满五向高位进一,小时按24进制计数,分、秒按60进制计数。 3.整点报时,当计数到整点时扬声器发出响声。 4.时间设置:可以通过按键手动调节秒和分的数值。此功能中可通过按键实现整体清零和暂停的功能。 5.LED灯循环显示:在时钟正常计数下,LED灯被依次循环点亮。 2 系统总体方案设计

VHDL数字时钟实验报告

VHDL数字时钟设计 一、实验目的: 进一步练习VHDL语言设计工程的建立与仿真的步骤和方法、熟悉VHDL语言基本设计实体的编写方法。同时,在已有知识的基础上,简单综合编写程序,仿制简单器械。 二、实验环境: PC个人计算机、Windows XP操作系统、Quartus II集成开发环境软件。三、设计要求: 运用VHDL语言编写一个数字钟,具体要求: 1. 具有时、分、秒计数的十进制数字显示功能,以24小时循环计时。 2. 具有手动调节小时,分钟的功能。 3. 具有闹钟的功能,能够在设定的闹钟时间发出闹铃声。 四、实验步骤: 1. 定义输入输出信号量 port( clk:in std_logic; ---时钟 speak:out std_logic; ---铃 dout:out std_logic_vector(7 downto 0); ---晶体管显示 setclk:in std_logic_vector(2 downto 0); ---操作按钮 d1,d2,d3,d4,d5,d6: out std_logic); ---六个晶体管 2. 定义结构体中的信号量 signal sel:std_logic_vector(2 downto 0);

signal hou1:std_logic_vector(3 downto 0); --时分秒的个位和十位signal hou2:std_logic_vector(3 downto 0); signal min1:std_logic_vector(3 downto 0); signal min2:std_logic_vector(3 downto 0); signal seth1:std_logic_vector(3 downto 0); signal seth2:std_logic_vector(3 downto 0); signal setm1:std_logic_vector(3 downto 0); signal setm2:std_logic_vector(3 downto 0); signal sec1:std_logic_vector(3 downto 0); signal sec2:std_logic_vector(3 downto 0); signal h1:std_logic_vector(3 downto 0); signal h2:std_logic_vector(3 downto 0); signal m1:std_logic_vector(3 downto 0); signal m2:std_logic_vector(3 downto 0); signal s1:std_logic_vector(3 downto 0); signal s2:std_logic_vector(3 downto 0); signal sph1,sph2,spm1,spm2,sps1,sps2:std_logic_vector(3 downto 0); signal count_sec:std_logic_vector(9 downto 0); signal sec_co :std_logic;

VHDL数字时钟设计

《EDA 》课程设计 VHDI 数 字时钟设计 电子信息与电气工程 12级 自动化(1)班 王廷弼 15设计题目: 系 部: 年 级: 班 级: 姓 名: 学 号:

VHDL数字时钟设计 1、功能介绍 1)具有时、分、秒计数显示功能,以24小时循环计时 2)时钟计数显示时有LED灯的花样显示。 3)具有调节小时、分钟及清零的功能。 4 )具有整点报时功能。 2、总体方框图 3、性能指标及功能设计 1)时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分 ――60进制计数,即从0到59循环计数,时钟一一24进制计数,即从0到23循环计数,并且在数码管上显示数值。 2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。 3)清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位。 4)蜂鸣器在整点时有报时信号产生,蜂鸣器报警。产生“滴答.滴答”的报警声音

5)LED灯在时钟显示时有花样显示信号产生。即根据进位情况,LED不停的闪烁,从而产生“花样”信号。 4、方案选择 根据总体方框图及各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。显示:小时采用24进制,而分钟和秒均60进制。 5、细化框图 根据自顶向下的方法以及各功能模块的的功能实现上述设计方案应 系统细化框图: 6、编写程序、仿真和分析 1、秒计数器 1)VHDL语言描述程序 整 点 报 时

基于VHDL的数字时钟设计

目录 1 概述 0 1.1数字时钟的工作原理 0 1.2 设计任务 (1) 2 系统总体方案设计 (1) 3 VHDL模块电路设计 (2) 3.1 模块实现 (2) 3.2数字钟的顶层设计原理图 (13) 3.3 系统仿真与调试 (14) 结束语 (15) 参考文献 (16) 致谢 (17) 附录源程序代码 (18) 1 概述 1.1数字时钟的工作原理 数字钟电路的基本结构由两个60进制计数器和一个24进制计数器组成,分别对秒、分、小时进行计时,当计时到23时59分59秒时,再来一个计数脉冲,则计数器清零,重新开始计时。秒计数器的计数时钟CLK为1Hz的标准信号,可以由晶振产生的50MHz信号通过分频得到。当数字钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计

数信号,每一秒钟发出一个中断给CPU,CPU采用NIOS,它响应中断,并读出小时、分、秒等信息。CPU对读出的数据译码,使之动态显示在数码管上。 1.2 设计任务 设计一个基于VHDL的数字时钟,具体功能要求如下: 1.在七段数码管上具有时--分--秒的依次显示。 2.时、分、秒的个位记满十向高位进一,分、秒的十位记满五向高位进一,小时按24进制计数,分、秒按60进制计数。 3.整点报时,当计数到整点时扬声器发出响声。 4.时间设置:可以通过按键手动调节秒和分的数值。此功能中可通过按键实现整体清零和暂停的功能。 5.LED灯循环显示:在时钟正常计数下,LED灯被依次循环点亮。 2 系统总体方案设计 设计一个基于VHDL的数字时钟,我采用自顶向下分模块的设计。底层为实现个弄能的模块,各模块由vhdl语言编程实现:顶层采用原理图形式调用。其中底层模块包括秒、分、时三个计数器模块、按键去抖动模块、按键控制模块、时钟分频模块、数码管显示模块共7个模块。设计框图如下:

相关主题
文本预览
相关文档 最新文档