当前位置:文档之家› EDA电子钟设计要点

EDA电子钟设计要点

EDA电子钟设计要点
EDA电子钟设计要点

EDA电子钟设计

一、设计目的

1.掌握VHDL语言的基本运用。

2.掌握复杂系统的EDA设计方法。

3.学习多层次、多模块系统设计。

4.了解数字钟的工作原理,利用VHDL语言实现数字钟。

5.掌握QuartusⅡ的简单操作并会使用EDA实验箱。

6.掌握各芯片的逻辑功能及使用方法。

二、系统总体设计

我们设计的是多功能数字钟,共有5个系统模块组成,分别是:液晶显示屏、调时控制开关(用的是拨码开关)、LED显示状态灯及蜂鸣器报时系统和时钟频率系统。我们设计的是以24小时制显示,数码管扫描显示时、分、秒;能够正常计时和调时、调分等校时功能;经过我们设计的数字钟具有蜂鸣器整点报时的功能,还具备设置闹钟功能。

图2.1 多功能数字钟模拟系统基本组成框图

三、详细设计

3.1数字钟的基本工作原理

3.1.1时基T 产生电路

数字钟以其显示时间的直观性、走时准确性作为一种计时工具,数字钟的基本组成部分离不开计数器,在控制逻辑电路的控制下完成预定的各项功能。

由晶振产生的频率非常稳定的脉冲,经整形、稳定电路后,产生一个频率为1Hz 的、非常稳定的计数时钟脉冲。

3.1.2调时、调分信号的产生

由计数器的计数过程可知,正常计数时,当秒计数器(60进制)计数到59 时,再来一个脉冲,则秒计数器清零,重新开始新一轮的计数,而进位则作为分计数器的计数脉冲,使分计数器计数加1。现在我们把电路稍做变动:把秒计数器的进位脉冲和一个频率为2Hz的脉冲信号同时接到一个2选1数据选择器的两个数据输入端,而位选信号则接一个脉冲按键开关,当按键开关不按下去时(即为0),则数据选择器将秒计数器的进位脉冲送到分计数器,此时,数字钟正常工作;当按键开关按下去时(即为1),则数据选择器将另外一个2Hz 的信号作为分计数器的计数脉冲,使其计数频率加快,当达到正确时间时,松开按键开关,从而达到调时的目的。调节小时的时间也一样的实现。

3.1.3计数显示电路

计数部分:由两个60进制计数器和一个24 进制计数器组成,其中60 进制计数器可用6 进制计数器和10 进制计数器构成;24 进制的小时计数同样可用6 进制计数器和10 进制计数器得到:当计数器计数到24 时,“2”和“4”同时进行清零,则可实现24 进制计数。

3.2设计思路

根据系统设计要求,系统设计采用自底向上的设计方法,由时钟分频部分、计时部分、按键部分调时部分和显示部分五个部分组成。这些模块都放在一个顶层文件中。

3.2.1时钟计数

首先下载程序进行复位清零操作,电子钟从00:00:00计时开始。sethour可以调整时钟的小时部分, setmin可以调整分钟,步进为1。

由于电子钟的最小计时单位是1s,因此提供给系统的内部的时钟频率应该大于1 Hz,这里取100Hz。CLK端连接外部10Hz的时钟输入信号clk。对clk进行计数,当clk=10时,秒加1,当秒加到60时,分加1;当分加到60时,时加1;当时加到24时,全部清0,从新计时。

用6位数码管分别显示“时”、“分”、“秒”,通过OUTPUT( 6 DOWNTO 0 )上的信号来点亮指定的LED七段显示数码管。

3.2.2时间设置

手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。

根据系统设计要求,系统设计采用自顶向下设计方法,由时钟分频部分、计时部分、按键部分调时部分和显示部分五个部分组成。这些模块都放在一个顶层文件中。

1)通过对md1按键高低电平的控制可以进入时钟的另一个调时模式,调试模式和计时模式是分开互不影响的。然后再通过对md2[1]和md2[2]对时钟进行时间设定。等到计时到达设置时间时,实现打铃功能。

2)用6位数码管分别显示“时”、“分”、“秒”,通过DOUT( 6 DOWNTO 0 )上的信号来点亮指定的LED七段显示数码管。

3)由于电子钟的最小计时单位是1s,因此提供给系统的内部的时钟频率应该大于1Hz,这里取100Hz。CLK端连接外部10Hz的时钟输入信号clk。对clk进行计数,当clk=10时,秒加1,当秒加到60时,分加1;当分加到60时,时加1;当时加到24时,全部清0,从新计时。

4)首先下载程序进行复位清零操作,电子钟从00:00:00计时开始。md2[1]可以调整时钟的小时部分, md2[2]可以调整分钟,步进为1。

顶层设计分析:

对于电子钟的设计,这里将采用自底向上的设计方法进行设计,因此首先需要进行电子钟的底层设计。本节将首先介绍电子钟的系统结构和模块划分,然后设计出顶层VHDL设计程序。

源程序:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity szz is

------------------------------------------------端口定义

port(clk:in std_logic;

clk1:in std_logic;

md1:in std_logic;

md2:in std_logic_vector(1 downto 0);

ledout1:out std_logic;

ledout2:out std_logic;

speak:out std_logic;

dout:out std_logic_vector(6 downto 0);

selout:out std_logic_vector(2 downto 0));

end szz;

architecture one of szz is

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

begin

----------------------------------------------模6计数choice:process(clk1)

begin

if clk1'event and clk1='1' then

if sel="101" then

sel<="000";

else

sel<=sel+1;

end if;

end if;

end process choice;

-----------------------------------------------小时十位

h110:process(clk,hou2,min1,min2,sec1,sec2,md1,md2)

begin

if clk'event and clk='1' then

if (hou1="0010" and hou2="0011")and(min1="0101" and min2="1001") and (sec1="0101" and sec2="1001") then

hou1<="0000";

elsif hou1="0010"and hou2="0011"and md1='0' and md2="01" then--当时间为23点且处于校时状态时

hou1<="0000";

elsif (hou2="1001"and(min1="0101" and min2="1001") and (sec1="0101" and sec2="1001"))or (hou2="1001"and md1='0' and md2="01") then hou1<=hou1+1;

end if;

end if;

end process h110;

-----------------------------------------------小时个位

h220:process(clk,min1,min2,sec1,sec2,md1,md2,hou1)

begin

if clk'event and clk='1' then

if (hou1="0010" and hou2="0011")and(min1="0101" and min2="1001") and (sec1="0101" and sec2="1001") then

hou2<="0000";

elsif hou2="1001"and(min1="0101" and min2="1001") and (sec1="0101" and sec2="1001") then

hou2<="0000";

elsif (hou2="1001"and md1='0' and md2="01")or (hou1="0010"and hou2="0011") then

hou2<="0000";--md<='1';

elsif ((min1="0101" and min2="1001") and (sec1="0101" and sec2="1001"))or (md1='0' and md2="01") then

hou2<=hou2+1;--speak<=clk;

end if;

end if;

end process h220;

-----------------------------------------------分钟十位

m110:process(clk,min2,sec1,sec2,md1,md2)

begin

if clk'event and clk='1' then

if (min1="0101" and min2="1001") and (sec1="0101" and sec2="1001") then min1<="0000";

elsif min1="0101"and min2="1001"and (md1='0' and md2="00")then

min1<="0000";

elsif (min2="1001"and (sec1="0101" and sec2="1001")) or (min2="1001"and md1='0' and md2="00")then

min1<=min1+1;

end if;

end if;--end if;

end process m110;

----------------------------------------------分钟个位

m220:process(clk,sec1,sec2,md1,md2)

begin

if clk'event and clk='1' then

if min2="1001"and (sec1="0101" and sec2="1001")then

min2<="0000";

elsif min2="1001"and (md1='0' and md2="00")then

min2<="0000";

else if (sec1="0101" and sec2="1001") or(md1='0' and md2="00")then min2<=min2+1;

end if;

end if;end if;

end process m220;

---------------------------------------------秒十位

s110:process(clk)

begin

if clk'event and clk='1' then

if (sec1="0101" and sec2="1001")then

sec1<="0000";

else if sec2="1001"then

sec1<=sec1+1;

end if;

end if;end if;

end process s110;

--------------------------------------------秒个位

s220:process(clk)

begin

if clk'event and clk='1' then

if sec2="1001" then

sec2<="0000";

else sec2<=sec2+1;

end if;

end if;

end process s220;

-------------------------------------------时间设置小时部分sethour1:process(clk,seth2)

begin

if clk'event and clk='1' then

if seth1="0010"and seth2="0011" then

seth1<="0000";

elsif seth2="1001" then

seth1<=seth1+1;

end if;

end if;

end process sethour1;

-------------------------------------------

sethour2:process(clk,md1,md2,seth1)

begin

if clk'event and clk='1' then

if (seth1="0010"and seth2="0011")or seth2="1001"then seth2<="0000";

elsif md1='1' and md2="00" then

seth2<=seth2+1;

end if;

end if;

end process sethour2;

-------------------------------------------时间设置分钟部分setmin1:process(clk,setm2)

begin

if clk'event and clk='1' then

if setm1="0101"and setm2="1001"then

setm1<="0000";

elsif setm2="1001"then

setm1<=setm1+1;

end if;

end if;

end process setmin1;

----------------------------------------------

setmin2:process(clk,md1,md2)

begin

if clk'event and clk='1'then

if setm2="1001"then

setm2<="0000";

elsif md1='1' and md2="01"then

setm2<=setm2+1;

end if;

end if;

end process setmin2;

--------------------------------------------闹铃

speaker:process(clk1,hou1,hou2,min1,min2)

begin

if clk1'event and clk1='1'then

------------------------------------------------闹钟判断,一分钟响铃

if seth1=hou1 and seth2=hou2 and setm1=min1 and setm2=min2 then speak<=clk;

ledout1<=clk;

else speak<='0';

ledout1<='0';

----------------------整点报时,3秒钟响铃

if "0000"=min1 and "0000"=min2 and sec1="0000" then

if sec2="0000" or sec2="0001" or sec2="0010" then

speak<='1';

ledout2<=clk;

else speak<='0';

ledout2<='0';

end if;

end if;

end if;

end if;

end process speaker;

-------------------------------------------译码显示部分

disp:process(sel,md1,hou1,hou2,min1,min2,sec1,sec2,seth1,seth2,setm1,setm2) begin

if sel="101" then

selout<="101";

case h1 is

when "0000"=>dout<="0111111";

when "0001"=>dout<="0000110";

when "0010"=>dout<="1011011";

when others =>dout<="1000000";

end case;

elsif sel="100" then

selout<="100";

case h2 is

when "0000"=>dout<="0111111";

when "0001"=>dout<="0000110";

when "0010"=>dout<="1011011";

when "0011"=>dout<="1001111";

when "0100"=>dout<="1100110";

when "0101"=>dout<="1101101";

when "0110"=>dout<="1111101";

when "0111"=>dout<="0000111";

when "1000"=>dout<="1111111";

when "1001"=>dout<="1101111"; when others=>dout<="1000000"; end case;

elsif sel="011" then

selout<="011";

case m1 is

when "0000"=>dout<="0111111"; when "0001"=>dout<="0000110"; when "0010"=>dout<="1011011"; when "0011"=>dout<="1001111"; when "0100"=>dout<="1100110"; when "0101"=>dout<="1101101"; when others=>dout<="1000000"; end case;

elsif sel="010" then

selout<="010";

case m2 is

when "0000"=>dout<="0111111"; when "0001"=>dout<="0000110"; when "0010"=>dout<="1011011"; when "0011"=>dout<="1001111"; when "0100"=>dout<="1100110"; when "0101"=>dout<="1101101"; when "0110"=>dout<="1111101"; when "0111"=>dout<="0000111"; when "1000"=>dout<="1111111"; when "1001"=>dout<="1101111"; when others=>dout<="1000000"; end case;

elsif sel="001" then

selout<="001";

case s1 is

when "0000"=>dout<="0111111";

when "0001"=>dout<="0000110";

when "0010"=>dout<="1011011";

when "0011"=>dout<="1001111";

when "0100"=>dout<="1100110";

when "0101"=>dout<="1101101";

when others=>dout<="1000000";

end case;

elsif sel="000" then

selout<="000";

case s2 is

when "0000"=>dout<="0111111";

when "0001"=>dout<="0000110";

when "0010"=>dout<="1011011";

when "0011"=>dout<="1001111";

when "0100"=>dout<="1100110";

when "0101"=>dout<="1101101";

when "0110"=>dout<="1111101";

when "0111"=>dout<="0000111";

when "1000"=>dout<="1111111";

when "1001"=>dout<="1101111";

when others=>dout<="1000000";

end case;

end if;

if md1='0' then---------------计时时间显示和设置模式h1<=hou1;h2<=hou2;

m1<=min1;m2<=min2;

s1<=sec1;s2<=sec2;

else -----------闹铃时间现实和设置模式

h1<=seth1;h2<=seth2;

m1<=setm1;m2<=setm2;

s1<="1111";s2<="1111";

end if;

end process disp;

end one;

四、仿真分析

各端口的功能为:clk,clk1端:时钟信号输入端。dout[0..6]:数码管选择端。Selout[2..0]:七段码译码器扫描接口输入端。md1,md[1..0]:三个输入端。ledout1,ledout2:显示灯。speak:蜂鸣器。

图4.1 波形仿真图

实验连线:clk接时钟信号CLK0,clk1接时钟信号CLK5;输出端dout[6..0]分别与数码管的a、b、c、d、e、f、g端相连;七段码译码器的三个输入端与三个拨码开关相连;selout[2..0]接数码管扫描接口输入端SEL2、SEL1、SEL0;speak与蜂鸣器相连。

图4.2 引脚接线图

五、设计中遇到的问题及解决方法

一开始只有秒脉冲,分与时都不动。这是因为没把脉冲信号接到分与时的电路上。数码管显示不出,这是因为时钟信号频率给的有问题,调节时钟频率的大小就解决了这个问题。还有数码管上显示的数字不全,后来发现是线没有接好,将线重新接了一次就可以显示出来完整的数字。

六、心得体会

在本学期的EDA学习中,我初步对这一门新的课程有了一个较为系统的理解,也为我的专业学习打开了一个新的思路。首先,通过对这门课程相关理论的学习,我掌握了EDA的一些基本的的知识。

EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化

技术的最新成果而开发出的电子CAD通用软件包,它根据硬件描述语言VHDL完

成的设计文件,自动完成逻辑编译、化简、分割、综合、优化、布局布线及仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。其次,通过对课程的实验的学习,我对EDA的学习和理解有了更深刻的认识和体会。

通过实验,激发了我学习EDA的兴趣,也对这门课程有了更深的理解,对EDA设计软件Quarter?Ⅱ的使用也更加熟练。我们是做一个多功能数字钟的设计,我们用的是EP1C12Q240C8芯片,我们分析了电子闹钟的整个运行过程,并参考资料写出了状态图,然后根据状态图进行编程实现了各个状态之间的转换,进而实现了对电子闹钟的控制。

在设计过程中,我们遇到了很多困难,尤其是在对多功能数字钟加入花样灯时,有很多地方考虑的不够周全,在完成VHDL的编辑以后,进行编译,结果出现了很多错误,不过在我们细心的检查和排查之下,最终将VHDL描述修改成功并且通过了编译。在编译过程中我了解到很多在书本上没有理解的知识。

对这门课程的最大收获除了学习到了知识以外,更重要的是让我明白了一个道理:只要全身心的投入到一件事中,并且要有持之以恒的决心,就一定会有收获。有的人觉得自己做不出来,就网上搜一个了事,但是,放弃一次摸索的经历,就放弃了一次成长的机会!如果你付出了,没有收获。那只能说,是付出的还不够多。而且无论做什么,我希望我们都要相信自己的队友,我一直相信只有团队合作的力量才能是一件事情最快最有效的完成。我想我对EDA的学习只能算是个入门,这个领域的发展空间非常大,应用范围也非常广泛,而且我相信在将来还会有更加广阔的应用前景。因此在以后的学习过程中,我不能因为课程学习的结束而结束了我对这门课程的深入学习,相反我会更加努力的去学习它。感谢老师孜孜不倦的教诲,让我不仅学到了知识,也让我学到了这门课以外的很多东西,为我提供了很多帮助。在接下来的学习生涯中,我会继续努力,努力扎实地学习专业知识,实现自己的理想。

eda课程设计报告多功能数字钟设计大学论文

湖北大学物电学院EDA课程设计报告(论文) 题目:多功能数字钟设计 专业班级: 14微电子科学与工程 姓名:黄山 时间:2016年12月20日 指导教师:万美琳卢仕 完成日期:2015年12月20日

多功能数字钟设计任务书 1.设计目的与要求 了解多功能数字钟的工作原理,加深利用EDA技术实现数字系统的理解 2.设计内容 1,能正常走时,时分秒各占2个数码管,时分秒之间用小时个位和分钟个位所在数码管的小数点隔开; 2,能用按键调时调分; 3,能整点报时,到达整点时,蜂鸣器响一秒; 4,拓展功能:秒表,闹钟,闹钟可调 3.编写设计报告 写出设计的全过程,附上有关资料和图纸,有心得体会。 4.答辩 在规定时间内,完成叙述并回答问题。

目录(四号仿宋_GB2312加粗居中) (空一行) 1 引言 (1) 2 总体设计方案 (1) 2.1 设计思路 (1) 2.2总体设计框图 (2) 3设计原理分析 (3) 3.1分频器 (4) 3.2计时器和时间调节 (4) 3.3秒表模块 (5) 3.4状态机模块 (6) 3.5数码管显示模块 (7) 3.6顶层模块 (8) 3.7管脚绑定和顶层原理图 (9) 4 总结与体会 (11)

多功能电子表 摘要:本EDA课程主要利用QuartusII软件Verilog语言的基本运用设计一个多功能数字钟,进行试验设计和软件仿真调试,分别实现时分秒计时,闹钟闹铃,时分手动较时,时分秒清零,时间保持和整点报时等多种基本功能 关键词:Verilog语言,多功能数字钟,数码管显示; 1 引言 QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL 以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程,解决了传统硬件电路连线麻烦,出错率高且不易修改,很难控制成本的缺点。利用软件电路设计连线方便,修改容易;电路结构清楚,功能一目了然 2 总体设计方案 2.1 设计思路 根据系统设计的要求,系统设计采用自顶层向下的设计方法,由时钟分频部分,计时部分,按键调时部分,数码管显示部分,蜂鸣器四部分组成。这些模块在顶层原理图中相互连接作用 3 设计原理分析 3.1 分频器 分频模块:将20Mhz晶振分频为1hz,100hz,1000hz分别用于计数模块,秒表模块,状态机模块 module oclk(CLK,oclk,rst,clk_10,clk_100); input CLK,rst; output oclk,clk_10,clk_100;

史上最全的多功能数字电子钟 EDA技术课程设计报告 Verilog HDL语言实现

EDA技术课程设计报告多功能数字电子钟 (Verilog HDL语言实现) 专业:********** 班级:(1)班 姓名:叶荆风 学号:******* 制作时间:2012年11月1日

目录 前言 (2) 一、设计要求 (3) 1、基本要求 (3) 2、操纵需求 (3) 二、设计方案 (3) 1、层次化设计 (3) 2、系统示意图 (3) 三、设计过程 (4) 1、小时计时模块 (4) 2、分钟计时模块 (16) 3、秒计时模块 (18) 4、校时校分模块 (19) 5、正点报时模块 (20) 6、时段控制-路灯亮灭模块 (21) 7、分频模块 (22) 8、译码模块 (22) 9、〝秒〞〝分〞〝小时〞计时单元功能电路模块 (23) 10、不加分频、译码模块的顶层文件 (24) 11、完整的数字钟总接线图 (25) 四、联机操作 (25) 1、选定芯片系列 (26) 2、分配引脚 (26) 3、编译 (27) 4、下载 (27) 5、DE2开发板上的一些具体设置 (28) 五、课设心得 (29) 六、参考文献 (29) Verilog HDL仿真源文件下载地址:https://www.doczj.com/doc/0415545938.html,/zhuye-47753-yiyejingfeng.aspx

前言 数字电子钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。 数字电子钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。目前,数字钟的功能越来越强,并且有多种专门的大规模集成电路可供选择。从有利于学习的角度考虑,这里主要介绍以中小规模集成电路设计数字钟的方法。经过了数字电路设计这门课程的系统学习,特别经过了关于组合逻辑电路与时序逻辑电路部分的学习,我们已经具备了设计小规模集成电路的能力,借由本次设计的机会,充分将所学的知识运用到实际中去。 本次课程设计要求设计一个数字钟,基本要求为数字钟的时间周期为24小时,数字钟显示时、分、秒,数字钟的时间基准一秒对应现实生活中的时钟的一秒。供扩展的方面涉及到校时校分、时段控制、整点报时等。因此,研究数字电子钟及扩大其应用,有着非常现实的意义。

EDA综合课程设计_数字时钟设计一、题_001

EDA综合课程设计-数字时钟设计 一、题目要求 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不停的闪烁,从而产生“花样”信号。

根据总体方框图及各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。显示:小时采用24进制,而分钟均是采用6进制和10进制的组合。 数字时钟系统顶层原理图

多功能数字时钟的课程设计报告 1、本设计可以实现的功能 1)具有时、分、秒计数显示功能,以24小时循环计时。 2)时钟计数显示时有LED灯的花样显示。 3)具有调节小时、分钟及清零的功能。 4)具有整点报时功能。 2、初步设计的总体方框图 3、性能指标及功能设计 1)时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分——60进制计数,即从0到59循环计数,时钟——24进制计数,即从0到23循环计数,并且在数码管上显示数值。 2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的K1-K7进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。 3)清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。

eda数字电子钟

唐山学院 《EDA技术》课程设计 题目数字电子钟设计 系 (部) 智能与信息工程学院 班级 13电本1班 姓名马建雨 学号 4130208144 指导教师郭耀华、王默琦、戴彦 2016 年 7 月 4 日至 7 月 8 日共 1 周

2016年 7 月8日 目录 1 引言 (1) 2 EDA技术简介 (2) 2.1 EDA技术的基本特征 (2) 2.2 硬件描述语言 (2) 3 QuartusII软件简介 (4) 3.1软件介绍 (4) 3.2 QuartusII工作环境介绍 (5) 4 课程设计说明 (8) 4.1设计容 (8) 4.2设计要求 (8) 4.3设计目的 (8) 4.4设计思路 (8) 4.5 设计具体方案及实现 (9) 4.5.1秒、分、时计时模块 (9) 4.5.2 动态显示模块 (11) 4.5.3 整点报时模块 (13) 4.5.4 校时模块 (14) 4.6 总程序 (16) 5 总结 (18) 参考文献 (19)

1 引言 随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、航天、医学、工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中,EDA技术的含量正以惊人的速度上升;电子类的高新技术项目的开发也愈益依赖于EDA技术的应用。即使是普通的电子技术的开发,EDA技术常常使一些原来的技术瓶颈得以轻松突破,从而使产品的开发周期大为缩短、、性能价格比大幅提高。不言而喻,EDA技术将迅速成为电子设计领域中的极其重要的组成部分。 EDA技术的设计语言为VHDL(硬件描述语言),实验载体为可编程器件CPLD 或者FPGA,进行元件模拟和仿真的目标器件为ASIC/SOC芯片。它是一种自动化设计电子产品的过程。在电子设计仿真的领域里,EDA技术的出现具有非常重要的现实意义。EDA源自于计算机辅助设计、制造、测试以及辅助工程。利用EDA 工具,设计者们可以从概念、算法、协议等方面来设计电子系统。值得一提的是,在整个电子系统的设计过程中,设计电路、分析性能、布置IC和PCB版图等步骤都可以在电脑上自动完成。 时钟是我们日常生活中必备的生活用品之一。而数字时钟的出现更是给人们的生产生活带来了极大的便利。钟表的数字化给人们生产生活带来了极大的方便,而且大扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。 EDA技术为数字类产品提供了一个非常简便实用的开发平台。随着EDA技术的快速发展,数字时钟的应用越来越广泛,并且它在功能外观方面也有了很大的改善和提高。本文就是基于EDA技术的基础知识,利用Quartus2软件再现一个具有传统时钟功能和自动报时功能的数字时钟。 数字钟采用EDA技术设计,利用硬件描述语言VHDL按模块化方式设计、编程及时序仿真等。该数字钟能实现时、分、秒计数的显示功能,且以24小时循环计时,具有清零的功能,且能够对计时系统的小时、分钟进行调整,具有整点报时功能。整个系统包括传统数字时钟所拥有的计时模块、校时模块、译码显示模块以及整点报时模块。整个系统使用方便,功能齐全,精度高。

EDA课程设计——多功能数字钟

哈尔滨工业大学(威海) 电子学课程设计报告带有整点报时的数字钟设计与制作 姓名: 蒋栋栋 班级: 0802503 学号: 080250331 指导教师: 井岩

目录 一、课程设计的性质、目的和任务 (3) 二、课程设计基本要求 (3) 三、设计课题要求 (3) 四、课程设计所需要仪器 (4) 五、设计步骤 (4) 1、整体设计框图 (4) 2、各个模块的设计与仿真 (4) 2.1分频模块 (4) 2.2计数器模块 (6) 2.3控制模块 (10) 2.4数码管分配 (13) 2.5显示模块 (14) 2.6报时模块 (16) 六、调试中遇到的问题及解决的方法 (18) 七、心得体会 (18)

一、课程设计的性质、目的和任务 创新精神和实践能力二者之中,实践能力是基础和根本。这是由于创新基于实践、源于实践,实践出真知,实践检验真理。实践活动是创新的源泉,也是人才成长的必由之路。 通过课程设计的锻炼,要求学生掌握电路的一般设计方法,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,培养学生的创新精神。 二、课程设计基本要求 掌握现代大规模集成数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(EDA)的基本方法。 三、设计课题要求 (1)构造一个24小时制的数字钟。要求能显示时、分、秒。 (2)要求时、分、秒能各自独立的进行调整。 (3)能利用喇叭作整点报时。从59分50秒时开始报时,每隔一秒报时一秒,到达00分00秒时,整点报时。整点报时声的频率应与其它的报时声频有明显区别。 #设计提示(仅供参考): (1)对频率输入的考虑 数字钟内所需的时钟频率有:基准时钟应为周期一秒的标准信号。报时频率可选用1KHz和2KHz左右(两种频率相差八度音,即频率相差一倍)。另外,为防止按键反跳、抖动,微动开关输入应采用寄存器输入形式,其时钟应为几十赫兹。 (2)计时部分计数器设计的考虑 分、秒计数器均为模60计数器。 小时计数为模24计数器,同理可建一个24进制计数器的模块。 (3)校时设计的考虑 数字钟校准有3个控制键:时校准、分校准和秒校准。 微动开关不工作,计数器正常工作。按下微动开关后,计数器以8Hz频率连续计数(若只按一下,则计数器增加一位),可调用元件库中的逻辑门建一个控制按键的模块,即建立开关去抖动电路(见书70页)。 (4)报时设计的考虑

fpga数字钟课程设计报告

f p g a数字钟课程设计报告 Prepared on 24 November 2020

课程设计报告 设计题目:基于FPGA的数字钟设计 班级:电子信息工程1301 姓名:王一丁 指导教师:李世平 设计时间:2016年1月 摘要 EDA(Electronic Design Automation)电子设计自动化,是以大规模可编程器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,通过相关的软件,自动完成软件方式设计得电子系统到硬件系统,最终形成集成电子系统或专用集成芯片。本次课程设计利用Quartus II 为设计软件,VHDL为硬件描述语言,结合所学知识设计一个多功能时钟,具有显示年、月、日、时、分、秒显示,计时,整点报时,设定时间等功能。利用硬件描述语言VHDL 对设计系统的各个子模块进行逻辑描述,采用模块化的思想完成顶层模块的设计,通过软件编译、逻辑化简、逻辑综合优化、逻辑仿真、最终完成本次课程设计的任务。 关键词:EDA VHDL语言数字钟 目录 摘要 1 课程设计目的 2 课程设计内容及要求

设计任务 设计要求 3 VHDL程序设计 方案论证 系统结构框图 设计思路与方法 状态控制模块 时分秒模块 年月日模块 显示模块 扬声器与闹钟模块 RTL整体电路 4 系统仿真与分析 5 课程设计总结,包括.收获、体会和建议 6 参考文献 1 课程设计目的 (1)通过设计数字钟熟练掌握EDA软件(QUARTUS II)的使用方法,熟练进行设计、编译,为以后实际工程问题打下设计基础。 (2)熟悉VHDL 硬件描述语言,提升分析、寻找和排除电子设计中常见故障的能力。 (3)通过课程设计,锻炼书写有理论根据的、实事求是的、文理通顺的课程设计报告。

推荐-基于多功能数字钟的课程设计报告 精品

EDA技术课程设计 多功能数字钟 学院:城市学院 专业、班级: 姓名: 指导老师: 20XX年12月

目录 1、设计任务与要求 (2) 2、总体框图 (2) 3、选择器件 (2) 4、功能模块 (3) (1)时钟记数模块 (3) (2)整点报时驱动信号产生模块 (6) (3)八段共阴扫描数码管的片选驱动信号输出模块 (7) (4)驱动八段字形译码输出模块 (8) (5)高3位数和低4位数并置输出模块 (9) 5、总体设计电路图 (10) (1)仿真图 (10) (2)电路图 (10) 6、设计心得体会 (11)

一、设计任务与要求 1、具有时、分、秒记数显示功能,以24小时循环计时。 2、要求数字钟具有清零、调节小时、分钟功能。 3、具有整点报时,整点报时的同时输出喇叭有音乐响起。 二、总体框图 多功能数字钟总体框图如下图所示。它由时钟记数模块(包括hour、minute、second 三个小模块)、驱动8位八段共阴扫描数码管的片选驱动信号输出模块(seltime)、驱动八段字形译码输出模块(deled)、整点报时驱动信号产生模块(alart)。 系统总体框图 三、选择器件 网络线若干、共阴八段数码管4个、蜂鸣器、hour(24进制记数器)、minute(60进制记数器)、second(60进制记数器)、alert(整点报时驱动信号产生模块)、 seltime(驱动4位八段共阴扫描数码管的片选 驱动信号输出模块)、deled(驱动八段字形译 码输出模块)。

四、功能模块 多功能数字钟中的时钟记数模块、驱动8位八段共阴扫描数码管的片选驱动信号输出模块、驱动八段字形译码输出模块、整点报时驱动信号产生模块。 (1) 时钟记数模块: <1.1>该模块的功能是:在时钟信号(CLK)的作用下可以生成波形;在清零信号(RESET)作用下,即可清零。 VHDL程序如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity hour24 is port( clk: in std_logic; reset:instd_logic; qh:BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0); ql:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0)); end hour24; architecture behav of hour24 is begin process(reset,clk) begin if reset='1' then qh<="000"; ql<="0000"; elsif(clk'event and clk='1') then if (qh<2) then if (ql=9) then ql<="0000"; qh<=qh + 1; else ql<=ql+1; end if; else if (ql=3) then ql<="0000"; qh<="000"; else ql<=ql+1; end if; end if; end if; end process; end behav; 仿真波形如下:

EDA数字电子钟设计

青海民族大学 EDA论文 论文题目:基于EDA的数字电子钟的实现 指导老师: 院系:物理与电子信息工程学院 姓名: 学号: 班级:08通信工程(1)班 2010年11月25日

摘要 Abstract 第一章:绪论 1.1:选题目的 1.2:设计思路 第二章:数字电子钟小系统 2.1:整体设计方案框架图 2.2:模块程序验证 2.3:总程序框图 第三章:硬件实现与总结 3.1:硬件实现 3.2:总结 致谢 参考文献

EDA技术[1]的设计语言为VHDL(硬件描述语言),实验载体为可编程器件CPLD或者FPGA,进行元件建模和仿真的目标器件为ASIC/SOC芯片。它是一种自动化设计电子产品的过程。在电子设计仿真的领域里,EDA技术的出现具有非常重要的现实意义。EDA 源自于计算机辅助设计、制造、测试以及辅助工程。利用EDA工具,设计者们可以从概念、算法、协议等方面来设计电子系统。值得一提的是,在整个电子系统的设计过程中,设计电路、分析性能、布置IC和PCB版图等步骤都可以在电脑上自动完成。 时钟我们的日常生活中必备的生活用品之一。而数字时钟的出现更是给人们的生产生活带来了极大的便利。EDA技术为数字类产品提供了一个非常简便实用的开发平台。随着EDA技术的快速发展,数字时钟的应用的范围越来越广泛,并且它在功能、外观等方面也有了很大的改善和提高。本文就是基于EDA技术和数字电路的基础知识,利用Quartus2软件、再现一个传统时钟功能和闹铃功能的数字时钟。整个小系统包括传统数字时钟所拥有的计时模块、校时模块、译码显示模块。 关键词:EDA;数字时钟;模块;闹钟 Abstract EDA technology design language for VHDL (hardware description language), experimental carrier for programmable devices, components or FPGA CPLD device modeling and simulation of target for ASIC/SOC chip. It is a kind of automation design electronic product process. In the electronic design simulation field, EDA technique appears has very important practical significance. EDA originated in computer aided design, manufacture, test and the auxiliary projects. Using EDA tools, designers can from concept, algorithm, agreement, etc to design electronic systems. Be worth what carry is, in the whole electronic system design process, the circuit design, analyzing performance, decorate IC and PCB layout steps can be on the computer automatically. Clock is one of the necessaries in our daily life. And digital clock has brought about lots of convenience. EDA technology provides a simpler and more useful platform to make a study of digital products. With the development of EDA technology, digital clock has improved a lot in its designing process, functions, appearance and so on. Nowadays, this paper is based on EDA technique and digital circuit, by using the basic knowledge of Quartus2 software, reproduce a traditional clock function and alarm function of digital clock. The system includes traditional digital clocks have timer modules, alarm clock module, decoding display module. Keywords: EDA; digital clock; modules; alarm

EDA数字时钟课程设计报告

EDA技术及应用课程设计说明书 2013 届电子信息工程专业班级 题目数字时钟 学号 姓名 指导教师 二О一五年月日

一、基本原理 一个完整的时钟应由三部分组成:秒脉冲发生电路、计数显示部分和时钟调整部分。 秒脉冲发生电路原理:一个时钟的准确与否主要取决于秒脉冲的精确度。为了保证计时准确我们对系统时钟48MHz进行了48000000分频,从而得到1Hz的秒脉冲。 计数显示部分原理:显示部分是用数码管LED实现的,这里使用的是共阳极的数码管如图所示8个数码管,其中左边两个数码管用来显示时的个位和十位、中间的显示分的个位和十位、最右边两个显示分的个位和十位。 时钟调整部分原理:校时电路里定义key[0]、key[1]和k2、k3分别用于控制时钟的计时开始、清零和调整功能中的时的加1、分的加1处理,从而完成对现在的时间调整。本实验电路校时电路在此完成了暂停、清零、时调整和分调整。

二、硬件设计 芯片图: 图1 数字时钟原理图 程序的调试工作都是在电脑上完成的,通过程序的输入、原理图的建立、管脚分配、编译、仿真、再下载到芯片进行运行。

电路中采用共阳极连接的七段数码管,通过程序的控制扫描驱动来显示时钟的时-分-秒。

程序中的按键设定为K1暂停、K2清零、K3调时、K4调分元件清单: 三、数字时钟的Verilog实现 管脚的分配: 程序: module clock(clk,s1,,s2,key,dig,seg); //模块名clock input clk,s1,s2; //输入时钟 input[1:0]key; //输入按键 output[7:0]dig; //数码管选择输出引脚

用VHDL语言实现数字电子钟的设计(EDA课程设计报告 含源程序)

课程设计报告 设计题目:用VHDL语言实现数字钟的设计 班级:电子 0901 学号: XXXXXXXX 姓名:XXXXXXXXX 指导教师:XXXXXXXXX 设计时间:2011年12月

现代电子设计技术的核心已转向基于计算机的电子设计自动化技术,即EDA (Electronic Design Automation)技术。EDA技术就是依赖计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。EDA技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现。硬件描述语言是EDA技术的重要组成部分,常见的HDL语言有VHDL、V erilog、HDL、ABLE、AHDL、System V erilog和System C。其中VHDL、V erilog在现在的EDA设计中使用最多,也拥有几乎所有主流EDA工具的支持。VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化硬件设计任务,提高了设计效率和可靠性。在这次设计中,主要使用VHDL语言输入。此次设计很好地完成了数字钟的定时、切换显示年月日和时分秒的功能,完成了小型FPGA的设计开发,锻炼了动手实践能力,达到了课程设计的目的。 关键词:EDA技术硬件描述语言VHDL 设计数字电子钟

摘要 (2) 1、课程设计目的 (4) 2、课程设计内容及要求 (4) 2.1 设计内容 (4) 2.2 设计要求 (4) 3、VHDL程序设计 (5) 3.1 方案论证 (5) 3.2 设计思路与方法 (6) 3.2.1 设计思路 (6) 3.2.2 设计方法 (7) 4、仿真与分析 (7) 5、器件编程下载及设计结果 (9) 6、课程设计总结 (10) 7、参考文献 (10) 8、程序清单 (11) 8.1 顶层模块 (11) 8.2 秒脉冲模块 (13) 8.3 数码管显示模块 (14) 8.4 时分秒模块 (15) 8.4.1 分秒模块 (16) 8.4.2 小时模块 (18) 8.5 年月日模块 (19) 8.5.1 日期模块 (21) 8.5.2 月份模块 (24) 8.5.3 年份模块 (25)

数字日历电路设计EDA实训

成绩 批阅教师 日期 桂林电子科技大学 实训报告 2016-2017学年第1学期 学院海洋信息工程学院 课程EDA综合实训 姓名钟朝林

学号 1416030218 指导老师覃琴 日期2016/12/29 实训题目:数字日历电路的设计 1 概述 1.1 设计要求 1.1.1 设计任务 设计并制作一台数字日历。 1.1.2 性能指标要求 ①用EDA实训仪的I/O设备和PLD芯片实现数字日历的设计。 ②数字日历能够显示年、月、日、时、分和秒。 ③用EDA实训仪上的8只八段数码管分两屏分别显示年、月、日和时、分、秒,即在一定时间段内显示年、月、日(如20080101),然后在另一时间段内显示时、分、秒(如00123625),两个时间段能自动倒换。 ④数字日历具有复位和校准年、月、日、时、分、秒的按钮,但校年和校时同用一个按钮,即在显示年、月、日时用此按钮校年,在显示时、分、秒时则用此按钮校时,依此类推。 1.2 总体设计基本原理及框图 1.2.1 基本原理 日历主要由年月日模块、时分秒模块、控制模块、显示模块、校时模块组成。采 用3个公用按钮j1、j2、和j3完成时分秒或年月日的校时,用8只七段数码管分 时完成时分秒或年月日的显示。设计电路的计时器模块(jsq24)用于完成一天 的24小时计时;年月日模块接收计时器模块送来的“天”脉冲进行计数,得到 日月年的显示结果,控制模块产生控制信号k,控制数码显示器显示年月日,还 是时分秒,或者自动轮流显示;校时选择模块在k信号的控制下,选择将j1、j2 和j3这3个校时按钮产生的信号是送到计时器模块的校秒、校分和校时输入端, 还是送到年月日模块的校天、校月、校年输入端;显示选择模块在k信号的控制 下,选择是将计时器模块的时、分、秒状态信号,还是将年月日模块的年、月、 日状态信号送到数码管显示器显示。 1.2.2 总体框图

EDA课程设计报告(电子钟VHDL 设计)

EDA课程设计报告(电子钟VHDL 设计) 作者:dang168 时间:2008-10-05 E D A课程设计报告 -----电子钟VHDL 设计 一设计要求 设计一个电子钟,要求可以显示时、分、秒,用户可以设置时间. 二.实验目的 1. 掌握多位计数器相连的设计方法。 2. 掌握十六进制,二十四进制,六十进制计数器的设计方法。 3. 掌握CPLD技术的层次化设计方法。 4. 了解软件的元件管理含义以及模块元件之间的连接概念。 5. 掌握电子电路一般的设计方法,并了解电子产品的研制开发过程,基本掌握电子电路安装和调试的方法。 6. 培养独立分析问题,解决问题的能力。 三.硬件要求 1.8位8段扫描共阴极数码显示管。 2. 三个按键开关(清零,调小时,调分钟)。 四.设计原理 数字钟是一个将“时”“分”“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时;显示满刻度为23时59分59秒,另外具备校时功能和报时功能。因此,一个基本的数字钟电路主要由“时”“分”“秒”计数器校时电路组成。将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累加60秒发送一个“分脉冲”信号,该信号将被送到“时计数

器”。“时计数器”采用24进制计数器,可实现对一天24小时的累计。译码显示电路将“时”“分”“秒”计数器的输出状态六段显示译码器译码。通过六位LED七段显示器显示出来。校时电路器是用来 对“时”“分”“秒”显示数字进行校时调整的。 在同一CPLD芯片口集成如下电路模块: 1.电子钟计数采用层次化设计,将设计任务分成若干个模块。规定每一模块的功能和各模块之间的接口。 (1)second(秒) 60进制BCD码计数 (2)minute(分) 60进制BCD码计数 (3)hour (时) 24进制BCD码计数 (4)clock top 顶层设计 同时整个计数器有清零,调时,调分功能。 2.端口引脚名称  输入 clk,reset,setmin,sethour  输出 second—daout,minute-daout,hour-daout 五.设计原理图 逻辑功能图: 输入:CLK—时钟脉冲,RESET—复位信号,SETMIN—分加1信号,SETHOUR—秒加1信号 输出:SECOND_DAOUT—秒输出,MINUTE_DAOUT—分输出,

基于EDA技术的数字时钟设计

电子系统课程设计任务书 设计题目:基于EDA技术的数字时钟设计 设计目的:课程设计是一种复杂的学习实践过程。设计过程采用系统设计的方法,先分析任务,得到系统设计的要求,然后进行总体设计,划分子系统模块,然后进行详细设计,编写各个功能子系统VHDL代码并进行功能仿真,最后进行整个系统总装并仿真。 设计内容:设计一个采用0.5英寸LED数码管显示的数字时钟系统,工作电源5V,它采用24小时制,具有“时”、“分”、“秒”显示,并且可以校正时间显示。 设计要求: 1.由石英晶体多谐振荡器20MHz和分频器产生1Hz标准秒脉冲;(说 明:EDA试验箱中晶振频率20MHz,经试验箱内一系列二分频可将频率降低,但无法直接产生1Hz信号,需要大家根据实际情况编制分频器得到1Hz信号); 2.秒电路、分电路均为60进制计数,时电路为24进制计数; 3.数码管采用动态扫描方式; 4.能动手校时,校时模块功能可以自由发挥。比如可用两个按钮实 现校时,A按钮控制调整项目,B按钮调整数字,B按钮还可以根据按下时间长短实现慢调、快调功能。也可以用三个按钮实现增减两个方向的手动校时。校时用按钮开关不能超过4个; 5.扩展内容:1)进入校时状态后,被调整数字以2Hz闪烁; 2)24/12小时可调,处于12小时制时,要有AM/PM

显示; 3)所有开关加入防抖设计; 4)加入检测外部环境亮度功能,夜间自动降低数码管显示亮度; 5)加入整点报时电路; 6)增加秒表功能; 7)增加报闹功能。 6.以上电路功能除外部环境亮度检测电路外均由VHDL代码实现层次式设计,顶层电路可以采用EDA电路图。 设计成果: 1.课程设计说明书,要求内容完整,图表完备,条理清楚,字迹工 整,程序完整有相应的注解,仿真波形设计合理有必要的分析,引用资料要注明出处。 2.顶层电路原理图,各层电路VHDL代码及仿真波形。

eda数字时钟实验报告

EDA数字时钟电工电子实习 实验报告 姓名 班级 学号20

一、实验目的: 1、掌握多位计数器相连的设计方法。 2、掌握十进制、六十进制和二十四进制计数器的设计方法。 3、巩固数码管的驱动原理及编程方法。 4、掌握CPLD技术的层次化设计方法。 二、实验要求: 基本要求:具有时、分、秒计数显示功能,以二十四小时循环计时。 扩展要求:具有整点报时功能。 三、实验原理: 计数时钟由模60秒计数器、模60分计数器、模24小时计数器、蜂鸣器(用于整点报时)、分/时设定模块、输出显示模块构成,秒计数模块的进位输出为分钟计数模块的进位输入,分钟计数模块的进位输出为小时计数模块的进位输入。 74163功能简介:

图1 图2 由图1可知,74163的脉冲上升沿的时候工作。 四、实验过程

1.模60计数器(如图3) 图3 由74163实现计数功能,第一片74163实现10进制,即做0-9的循环,9即二进制的1001,化简可得当q[0]与q[3]同时为1的时候进行清零。第二片74163实现6进制,即做0-5的循环,5即二进制的111,化简可得当q[4]与q[6]同时为1的时候进行清零,同时第一片74163的进位端作为第二片的脉冲端。这样就可实现60进制。60进制计数器用于秒计数器和分计数器,秒个位的进位端作为秒十位的脉冲端秒十位的进位端作为分个位的脉冲端,分个位的进位端作为分十位的脉冲端。 2.模24计数器(如图4) 图4 分十位的进位端作为时个位的脉冲端,时个位的进位端作为时十位的脉冲端。因为24进制的特殊性,当十位是0和1的时候,个位做十进制循环,即0-9,9的二进制为1001;当十位是2的时候,个位做0-3的循环。而十位做0-2的循环。2的二进制为0010,3的二进制为0011。所以第一片74163不仅要在q[14]与q[17]同时为1的时候清零,还要在第二片74163的q[19]、第一片的q[14]、q[15]同时为1(即23时)做清零。第二片是3进制,在q[19]=1的时候进行清零。

数字钟的设计.EDA课程设计

EDA 课程设计报告书 课题名称 数字钟的设计 姓 名 王砾 学 号 0812201-37 院 系 物理与电信工程系 专 业 电子信息工程 指导教师 周来秀讲师 2011年 6月13日 ※※※※※※※※※ ※※ ※※ ※ ※ ※※※※※※※※※ 2008级学生 EDA 课程设计

一、设计任务及要求: 设计并制作一台能显示时、分、秒的数字钟。具体要求如下: 1)计时计数器用24进制计时器电路。 2)可手动校时,能清零及分别进行时、分、秒的校正。 3)可整点报时,扬声器发出时长为1s的信号。 4)可设置闹钟功能。当计时计到预定时间时,扬声器发出闹铃信号,可控制闹铃时长。 指导教师签名: 2011 年月日二、指导教师评语: 指导教师签名: 2011年月日三、成绩 验收盖章 2011年月日

数字钟的设计 王砾 (湖南城市学院物理与电信工程系电子信息工程专业,湖南益阳,41300) 1设计目的 1,熟练的运用数字系统的设计方法进行数字时钟设计 2,能进行较复杂的数字系统设计 3,按要求设计一个数字钟 2设计的主要内容和要求 a.计时计数器用24进制计时器电路。 b.可手动校时,能清零及分别进行时、分、秒的校正。 c.可整点报时,扬声器发出时长为1s的信号。 d.可设置闹钟功能。当计时计到预定时间时,扬声器发出闹铃信号,可控制闹 铃时长。 3 整体设计方案 基于VHDL语言,用Top_Down的思想进行设计,其中计数模块、闹铃模块、定时模块、显示模块为主要模块,选择模块为辅助模块。

en1 en2clr clk rco q1[3..0]q2[3..0]count_60 inst 选择模块 定时模块 显示模块 闹铃模块计数模块选择模块 数码显示管 4 硬件电路的设计 4.1如下分别为60与24进制模块的代码: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity count_60 is port(en1,en2,clr,clk : in std_logic; rco : out std_logic; q1,q2 : out std_logic_vector(3 downto 0)); end count_60; architecture behav of count_60 is signal iq1,iq2 : std_logic_vector(3 downto 0); begin process(en1,en2,clr,clk) begin if(clr='1')then iq1<="0000"; iq2<="0000"; elsif(clk='1' and clk'event)then if(en1 or en2)='1'then if(iq2>=5)then

EDA数字钟程序代码

--分频器 library ieee; use ieee.std_logic_1164.all; entity fenpin is port(clk:in std_logic; qH: buffer std_logic; qout:buffer std_logic); end entity; architecture c20 of fenpin is begin process(clk) variable num : integer :=1; variable num1 : integer :=1 begin if clk'event and clk='0' then if(num=2)--0000000) --1HZ--10000000 to timer then num:=1;qout<=not qout; else num:=num+1; end if; if(num1=1)--000000) --1000HZ--10000 to wei then num1:=1;qH<=not qH; else num1:=num1+1; end if; end if; end process; end c20; --timer library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity Clock3 is port(clk:in std_logic; duan: out std_logic_vector(3 downto 0); wei: in std_logic_vector(2 downto 0); wei2: out std_logic_vector(2 downto 0) ); end entity; architecture clo of Clock3 is signal clk2:std_logic ; signal keys: std_logic_vector(2 downto 0); begin

EDA课设数字钟设计

课程设计报告 课程名称数字系统与逻辑设计 课题名称数字钟设计 专业通信工程 班级 学号 姓名 指导教师乔汇东胡瑛谭小兰 2013年7月7日

湖南工程学院课程设计任务书 课程名称数字系统与逻辑设计课题数字钟设计 专业班级通信工程1101班 学生姓名 学号 指导老师 审批乔汇东 任务书下达日期2013 年6月29日 任务完成日期2013 年7月7日

《数字系统与逻辑设计》课程设计任务书一、设计目的 全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的 组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试 程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养 使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。 二、设计要求 1、设计正确,方案合理。 2、程序精炼,结构清晰。 3、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单 及程序框图。 4、上机演示。 5、有详细的文档。文档中包括设计思路、设计仿真程序、仿真结果及相应 的分析与结论。 三、进度安排 第十九周星期一:课题讲解,查阅资料 星期二:总体设计,详细设计 星期三:编程,上机调试、修改程序 星期四:上机调试、完善程序 星期五:答辩 星期六-星期天:撰写课程设计报告 附: 课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现;四、系统调试与仿真;五、总结与体会;六、附件(所有程序的原代码,要求对程序写出必要的注释);七、评分表。

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