EDA课程设计 多功能数字钟课程设计报告

发布 2022-09-30 22:13:28 阅读 9998

多功能数字电子钟。

一、 设计要求。

1、 具有以二十四小时计时、显示、整点报时、时间设置和闹钟的功能。

2、 设计精度要求为1s。

二.系统功能描述。

1 . 系统输入:系统状态及校时、定时转换的控制信号为k、mode、set;

时钟信号clk,采用1024hz;

系统复位信号为reset。输入信号均由按键产生。

系统输出:led显示输出,蜂鸣器声音信号输出。

多功能数字钟系统功能的具体描述如下:

2. 计时:正常工作状态下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时。

3. 校时:在计时状态显示下,按下“set键”,进入“小时”校准状态,之后按下“k键”则进入“分”校准状态,继续按下“k键”则进入“秒复零”状态,第三次按下“k 键”又恢复到正常计时显示状态。

1)“小时”校准状态:在“小时”校准状态下,显示“小时”数码管以1hz的频率递增计数。

2)“分”校准状态:在“分”校准状态下,显示“分”的数码管以1hz的频率递增计数。

3)“秒”复零状态:在“秒复零”状态下,显示“秒”的数码管复零。

4. 整点报时:蜂鸣器在“59”分钟的第“51”、“53”、“55”、“57‘秒发频率为512hz的低音,在“59”分钟的第“59”秒发频率为1024hz的高音,结束时为整点。

5. 显示:要求采用扫描显示方式驱动6个led数码管显示小时、分、秒。

闹钟:闹钟定时时间到,蜂鸣器发出周期为1s的“滴”、“滴”声,持续时间为10s;闹钟定时显示。

6. 闹钟定时设置:在闹钟定时显示状态下,按下“set键”,进入闹钟的“时”设置状态,之后按下“k键”进入闹钟的“分”设置状态,继续按下“k 键”则进入“秒”设置状态,第三次按下“k键”又恢复到闹钟定时显示状态。

1) 闹钟“小时”设置状态:在闹钟“小时”设置状态下,显示“小时”的数码管以1hz的频率递增计数。

2) 闹钟:“分”设置状态:在闹钟“分”设置状态下,显示“分”的数码管以1hz的频率递增计数。

三、 控制器的mds图及多功能数字系统结构逻辑框图。

1、 控制器的mds图。

s0:显示计时时间 s1:调计时的时 s2:调计时的分 s3:调计时的秒

s4:显示闹铃时间 s5:调闹铃的时 s6:调闹铃的分 s7:调闹铃的秒。

2、 多功能数字系统结构逻辑框图。

四、 各功能模块设计说明及源程序。

1、 控制器:

设计说明:根据外部的输入控制信号,完成各个状态之间的转换,并在相应状态输出相应的控制信号,从而对整个系统的工作进行控制。

控制器:library ieee;

use use

entity contl is

port(clk,reset,k,set:in std_logic;

cht,cmt,cst,cha,cma,csa,flashh,,sel_showflashm,flashs:out std_logic);

end contl;

architecture ar of contl is

type state_type is(s0,s1,s2,s3,s4,s5,s6,s7);

signal state:state_type;

beginprocess(clk,reset,k,set)

beginif(rising_edge(clk))then

if(reset='1')then

state<=s0;

end if;

case state is

when s1=>sel_show<='1';

cht<='1';flashh<='1';

if(k='1')then

state<=s2;

else state<=s1;

end if;

when s2=>sel_show<='1';

cmt<='1';flashm<='1';

if(k='1' )then

state<=s3;

else state<=s2;

end if;

when s3=>sel_show<='1';

cst<='1';flashs<='1';

if(k='1' )then

state<=s0;

else state<=s3;

end if;

when s4=>sel_show<='0';

if(k='0' and set='1')then

state<=s5;

elsif(k='1' and set='0')then

state<=s0;

else state<=s4;

end if;

when s5=>sel_show<='0';

cha<='1';flashh<='1';

if(k='1')then

state<=s6;

else state<=s5;

end if;

when s6=>sel_show<='0';

cma<='1';flashm<='1';

if(k='1' )then

state<=s1;

else state<=s0;

end if;

when s7=>sel_show<='0';

csa<='1';flashs<='1';

if(k='0' and set='1')then

state<=s4;

else state<=s7;

end if;

when s0=>sel_show<='1';

if(k='0' and set='1')then

state<=s1;

elsif(k='1' and set='0')then

state<=s4;

else state<=s0;

end if;

end case;

end if;

end process;

end ar;

2、 计时校时电路:

设计说明:该电路实现计时、校时功能。

源程序:二十**制计数器:

源程序:library ieee;

use use

entity m24 is

port(en,clk : in std_logic;

p0,p1 :out std_logic_vector(3 downto 0));

end m24;

architecture ar of m24 is

signal q0,q1:integer range 0 to 15;

beginprocess(clk)

beginif (rising_edge(clk)) then

if (en='0' or (q0=3 and q1=2)) then

q0<=0; q1<=0;

elsif(q0=9) then

q0<=0; q1<=q1+1;

else q0<=q0+1;

end if;

end if;

p0<= conv_std_logic_vector(q0,4);

p1<= conv_std_logic_vector(q1,4);

end process;

end ar;

六十进制计数器:

源程序:library ieee;

use use

entity m60 is

port(en,clk : in std_logic;

x: out std_logic;

p0,p1:out std_logic_vector(3 downto 0));

end m60;

architecture ar of m60 is

signal q0,q1:integer range 0 to 15;

beginprocess(clk)

beginif (rising_edge(clk)) then

if (en='0' or (q0=9 and q1=5)) then

q0<=0; q1<=0; x<='1';

elsif(q0=9) then

q0<=0; q1<=q1+1;

else q0<=q0+1;x<='0';

end if;

end if;

p0<= conv_std_logic_vector(q0,4);

p1<= conv_std_logic_vector(q1,4);

end process;

end ar;

选择器源程序:

library ieee;

use entity conl is

port(f1,f4,c: in std_logic;

f :out std_logic);

end conl;

architecture ar of conl is

beginprocess(c,f1,f4)

beginif(c='0')then

f<=f1;

else f<=f4;

end if;

end process;

end ar;

3、 显示控制电路:

设计说明:该模块控制最终显示的计时时间还是闹铃时间。

源程序:library ieee;

use entity show_con is

port(ts1,ts2,tm1,tm2,th1,th2,bs1,bs2,bm1,bm2,bh1,bh2:in std_logic_vector(3 downto 0);

s1,s2,m1,m2,h1,h2,line:out std_logic_vector(3 downto 0);

sel_show ,clk,flashs,flashm,flashh:in std_logic);

end show_con;

architecture ar of show_con is

signal q:integer range 0 to 1;

beginprocess(clk)

begin

if(rising_edge(clk))then

q<=q+1;

if(flashh='1'and q=1)then

h1<="1111";h2<="1111";

elsif(flashm='1'and q=1)then

m1<="1111";m2<="1111";

elsif(flashs='1'and q=1)then

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

EDA课程设计 多功能彩灯

第一章绪论 1 1.1系统背景 1 1.1.1 eda技术的特点以及在电子技术中的应用 1 a.eda技术的特点 1 b.eda技术的发展趋势 2 c.eda技术的设计流程 2 1.1.2设计内容和目标 2 a.设计主要内容和任务 2 b.目标 2 第二章系统电路设计 3 2.1 系统总体设计框架结...

数字钟数电课程设计

数字电子技术课程设计。题目名称。班级。姓名。学号。指导老师。引言。数字钟实际上是一个对标准频率 1hz 进行计数的计数电路。振荡器产生的时钟信号经过分频器形成秒脉冲信号,秒脉冲信号输入计数器进行计数,并把累计结果以 时 分 秒 的数字显示出来。秒计数器电路计满60后触发分计数器电路,分计数器电路计满...

数电课程设计 数字钟

数字电子技术课程设计。数字钟的设计。数字电路课程设计。设计简述 电子技术是一门实践性很强的课程。在学完基本单元的内容和实验后,进行综合设计实验,是对所学知识综合全面的运用,其目的是锻炼运用知识的能力,增强实践技能。电子电路部分设计实验,要求利用所掌握的知识和实验技能,在实验室环境下,创造性的解决问题...