电子钟Word下载.docx

上传人:b****4 文档编号:7903987 上传时间:2023-05-09 格式:DOCX 页数:12 大小:19.79KB
下载 相关 举报
电子钟Word下载.docx_第1页
第1页 / 共12页
电子钟Word下载.docx_第2页
第2页 / 共12页
电子钟Word下载.docx_第3页
第3页 / 共12页
电子钟Word下载.docx_第4页
第4页 / 共12页
电子钟Word下载.docx_第5页
第5页 / 共12页
电子钟Word下载.docx_第6页
第6页 / 共12页
电子钟Word下载.docx_第7页
第7页 / 共12页
电子钟Word下载.docx_第8页
第8页 / 共12页
电子钟Word下载.docx_第9页
第9页 / 共12页
电子钟Word下载.docx_第10页
第10页 / 共12页
电子钟Word下载.docx_第11页
第11页 / 共12页
电子钟Word下载.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

电子钟Word下载.docx

《电子钟Word下载.docx》由会员分享,可在线阅读,更多相关《电子钟Word下载.docx(12页珍藏版)》请在冰点文库上搜索。

电子钟Word下载.docx

0%

3.数码管的扫描显示:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

-字模输出模块

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYSELIS

PORT(CLK:

INSTD_LOGIC;

Q:

OUTSTD_LOGIC_VECTOR(2DOWNTO0));

--输入选通信号

ENDSEL;

ARCHITECTURESELAOFSELIS

BEGIN

PROCESS(CLK)

VARIABLECNT:

STD_LOGIC_VECTOR(2DOWNTO0);

BEGIN

IFCLK'

EVENTANDCLK='

1'

THEN

CNT:

=CNT+1;

ENDIF;

Q<

=CNT;

ENDPROCESS;

ENDSELA;

G:

整点报时功能:

libraryieee;

--整点报时模块

useieee.std_logic_1164.all;

entitysstis

port(h1,h0,m1,m0,s1,s0:

instd_logic_vector(3downto0);

q1,q0:

instd_logic;

-输入分,秒信号和时钟信号

q:

outstd_logic);

--输出两个不同频率的音频信号

endsst;

architecturesss_arcofsstis

signalq3,q4:

std_logic;

begin

process(m1,m0,s1,s0)

ifh1="

0000"

andh0<

"

0111"

then

q3<

='

0'

;

q4<

elsifm1="

0101"

andm0="

1001"

ands1="

then

ifs0="

ors0="

0010"

0100"

ors0="

0110"

1000"

;

else--当计时到达59'

50"

52"

54"

56"

58"

鸣叫,鸣叫频率为500HZ,

endif;

andm0="

ands0="

当整点时为最后一声整点报时,频率为1kHZ,

else

endprocess;

q<

=(q3andq0)or(q4andq1);

endsss_arc;

G:

闹钟功能模块:

ENTITYNALIS

PORT(M1,M0,H1,H0:

INSTD_LOGIC_VECTOR(3DOWNTO0);

en:

inSTD_LOGIC;

OUTSTD_LOGIC);

ENDNAL;

ARCHITECTURENAOOFNALIS

BEGIN

PROCESS(M1,M0,H1,H0,EN)

IFEN='

IFH0="

ANDH1="

ANDM1="

ANDM0="

THEN

ELSE

ENDIF;

ELSEQ<

ENDPROCESS;

ENDNAO;

好:

0

一般:

不好:

原创:

非原创:

其他答案

其基本要求如下:

1.实现基本的计时功能,输入1kHz的时钟,采用24小时制计时,能显示时、分、秒。

2.校正功能;

时分均有校时功能。

3.当计时器运行到59分49秒开始报时,每鸣叫1s就停叫1s,共鸣叫6,前5响为低音,频率为750Hz;

最后1响为高音,频率为1KHz。

4.可设定夜间某个时段不报时。

5.设定闹钟,当按下闹铃开关时,可在规定时间闹铃,当开关复位时,闹铃停止。

方案一

根据方案的要求,可以用VHDL语言,采用自顶向下的设计方法。

可用分频的方法得到1HZ的时钟用与计数;

用7段数码管来显示时间,需要6个数码管;

同时可以根据不同的频率的输入来调节蜂鸣器的鸣叫声音,从而实现整点报时功能和闹铃功能。

对于闹铃功能,可以用一个触发器和一个寄存器来实现。

根据要求基本确定由以下模块组成:

1.秒计数模块:

秒计数,在频率为1HZ的时钟下以60次为循环计数,并产生进位信号影响分计数;

2.分计数模块:

分计数,在秒进位信号为高电平时,计数一次,同样以60次为一个循环计数,同时产生分进位信号影响时计数;

3.时计数模块:

时计数,在分进位信号为高电平时,计数一次,以24次为一个循环计数;

4.频率产生模块:

主要有2个部分,一个是产生1HZ的计数频率,一个是产生725HZ和500HZ的蜂鸣器鸣叫频率;

5.时间显示模块:

通过选中不同的数码管,同时进行一定频率的扫描显示时,分,秒。

6.时间设置模块:

设置调试使能端,可以调时,分。

基本功能是在使能端为高电平时,可以使时和分循环计数;

7.整点报时模块:

在秒计数到50秒时,同时分计数到59分开始,丰鸣器产生每个2秒的鸣叫(500HZ),到整点是产生750HZ的鸣叫。

8.闹钟模块:

在设定闹钟闹铃时间后,当闹钟使能端有效时,可在闹铃时间闹铃,通过人工拨0后停闹。

秒计数模块

VHDL源程序:

ENTITYMIANIS---------------秒计数模块-------------

PORT(RD,CLK:

------------秒复位信号-----

SEC1,SEC0:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

CO:

ENDMIAN;

ARCHITECTUREMIANAOFMIANIS

PROCESS(CLK,RD)--秒计数进程

VARIABLECNT1,CNT0:

STD_LOGIC_VECTOR(3DOWNTO0);

输出信号

IFRD='

THEN----复位信号为1时,秒计数清零---

CNT1:

="

CNT0:

ELSIFCLK'

THEN-输入时钟信号和清零信号

IFCNT1="

ANDCNT0="

THEN–当秒计数为58时进位信号为1

CO<

-秒低位小于9时,加1

ELSIFCNT0<

THEN

=CNT0+1;

IFCNT1<

THEN-秒高位小于5时,加1

=CNT1+1;

SEC1<

=CNT1;

SEC0<

=CNT0;

ENDMIANA;

22

B:

分计数模块

VHDL源程序:

--分计数模块

ENTITYMINAIS

PORT(EN,CLK:

-输入时钟信号和进位信号

MIN1,MIN0:

--输出分计数和进位

ENDMINA;

ARCHITECTUREMINOFMINAIS

PROCESS(CLK)--分计数进程

THEN时钟上升沿,en为1时分开始计数

IFEN='

IFCNT1="

THEN-当分计数到58时产生进位信号

THEN--分低位小于9时,cnt0加1

MIN1<

MIN0<

ENDMIN;

时计数模块

--时计数模块

ENTITYHOURIS

-输入时钟信号和分模块进位信号

H1,H0:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

-输出h0,h1

ENDHOUR;

ARCHITECTUREHOURAOFHOURIS

PROCESS(CLK)--小时计数进程

IFCLK'

THEN--时钟上升沿,en为1时小时开始计数

IFCNT0="

0011"

ANDCNT1="

H1<

H0<

ENDHOURA;

23

D:

频率产生模块:

1.500HZ和1KHZ的频率产生:

--小时计数模块

ENTITYCCCIS

q1k,Q500:

ENDCCC;

ARCHITECTURECCCAOFCCCIS

SIGNALX:

STD_LOGIC;

X<

=NOTX;

q1k<

=X;

PROESS(X)

VARIABLEY:

IFX'

EVENTANDX='

Y:

=NOTY;

Q500<

=Y;

ENDCCC;

2.1HZ的频率产生:

LIBRARYIEEE;

ENTITYFEN10IS

ENDFEN10;

ARCHITECTUREFENAOFFEN10IS

INTEGERRANGE0TO999;

IFCNT<

999THEN

=0;

ENDFENA;

E:

时间显示模块:

1.数码管选中:

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYBBBIS----用于选中对应的数码管----

PORT(SEC1,SEC0,MIN1,MIN0,H1,H0:

SEL:

INSTD_LOGIC_VECTOR(2DOWNTO0);

ENDBBB;

ARCHITECTUREBBBAOFBBBIS

PROCESS(SEL)

CASESELIS----由低位到高位依次显示秒,分,时-------

WHEN"

000"

=>

Q<

=SEC0;

-当000时输出秒低位

001"

=SEC1;

-001时输出秒高位

011"

=MIN0;

-当011时输出分低位

100"

=MIN1;

-当100时输出分高位

110"

=H0;

--当110时输出时低位

111"

=H1;

当111时输出时高位

WHENOTHERS=>

1111"

ENDCASE;

2.译码显示:

libraryieee;

entitydispais

port(d:

q:

outstd_logic_vector(6downto0));

enddispa;

architecturedispa_arcofdispais

process(d)

casedis

when"

=>

q<

0111111"

0001"

0000110"

1011011"

1001111"

1100110"

1101101"

1111101"

0100111"

1111111"

1101111"

whenothers=>

0000000"

endcase;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 艺术创意

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2