基于EDA的数字时钟课程设计报告Word下载.docx

上传人:b****3 文档编号:16755898 上传时间:2022-11-25 格式:DOCX 页数:21 大小:503.89KB
下载 相关 举报
基于EDA的数字时钟课程设计报告Word下载.docx_第1页
第1页 / 共21页
基于EDA的数字时钟课程设计报告Word下载.docx_第2页
第2页 / 共21页
基于EDA的数字时钟课程设计报告Word下载.docx_第3页
第3页 / 共21页
基于EDA的数字时钟课程设计报告Word下载.docx_第4页
第4页 / 共21页
基于EDA的数字时钟课程设计报告Word下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于EDA的数字时钟课程设计报告Word下载.docx

《基于EDA的数字时钟课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《基于EDA的数字时钟课程设计报告Word下载.docx(21页珍藏版)》请在冰豆网上搜索。

基于EDA的数字时钟课程设计报告Word下载.docx

只需使清零开关按下时各计数器的清零端均可靠接入有效电平(本实验中是低电平),而清零开关断开时各清零端均接入无效电平即可。

校分校时功能由防抖动开关、逻辑门电路实现。

其基本原理是通过逻辑门电路控制分计数器的计数脉冲,当校分校时开关断开时,计数脉冲由低位计数器提供;

当按下校分校时开通时,既可以手动触发出发式开关给进位脉冲,也可以有恒定的1Hz脉冲提供恒定的进位信号,计数器在此脉冲驱动下可快速计数。

为实现可靠调时,采用防抖动开关(由D触发器实现)克服开关接通或断开过程中产生的一串脉冲式振动。

保持功能是通过逻辑门控制秒计数器输入端的1Hz脉冲实现的。

正常情况下,开关不影响脉冲输入即秒正常计数,当按下开关后,使脉冲无法进入计数端,从而实现计时保持功能。

整点报时功能可以通过组合逻辑电路实现。

当计数器的各位呈现特定的电平时,可以选通特定的与门和或门,将指定的频率信号送入蜂鸣器中,实现在规定的时刻以指定频率发音报时。

四、各个模块设计原理

总体的顶层原理图如下:

4.1分频电路模块设计

一、原理图:

二、源代码:

Libraryieee;

Useieee.std_logic_1164.all;

Useieee.std_logic_unsigned.all;

EntityfenpIS

Port(clk:

INSTD_LOGIC;

clk1k:

OUTSTD_LOGIC;

clk500:

clk1hz:

OUTSTD_LOGIC

);

End;

Architectureoneoffenpis

SignalF1k:

STD_LOGIC;

signalF500:

std_logic;

signalF1:

begin

p1:

process(clk)

variablecnt1:

std_logic_vector(1downto0);

variablecnt12:

std_logic_vector(2downto0);

variablecnt13:

std_logic_vector(11downto0);

ifclk='

1'

andclk'

eventthen

ifcnt1="

11"

thenF1k<

='

;

cnt1:

="

00"

--11-00=4fenping

elsecnt1:

=cnt1+1;

F1k<

0'

--111-000=8fenping

endif;

--111110011111-000000000000=4000fenping

ifcnt12="

111"

thenF500<

cnt12:

000"

elsecnt12:

=cnt12+1;

F500<

ifcnt13="

111110011111"

thenF1<

cnt13:

000000000000"

elsecnt13:

=cnt13+1;

F1<

endif;

endprocess;

p2:

process(F1k,F500,F1)

variablecnt2:

variablecnt22:

variablecnt23:

begin

ifF1k'

eventandF1k='

then

cnt2:

=notcnt2;

ifcnt2='

thenclk1k<

elseclk1k<

endif;

ifF500'

eventandF500='

cnt22:

=notcnt22;

ifcnt22='

thenclk500<

elseclk500<

ifF1'

eventandF1='

cnt23:

=notcnt23;

ifcnt23='

thenclk1hz<

elseclk1hz<

end;

三、时序仿真图:

四、功能说明

通过对输入时钟上升沿进行计数,以计数的溢出值F1k、F500、F1的上升沿对计数器输出进行取反操作。

从而可以对讲计数频率偶数次分频,且输出方波,占空比50%;

4.2秒计时器模块设计

一、电路原理:

二、源代码:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

Entitysecond1is

port(clk1s:

instd_logic;

reset:

instd_logic;

sec2,sec1:

bufferstd_logic_vector(3downto0);

--miaogaodiwei

sec0:

outstd_logic--miaojinwei

endsecond1;

ArchitectureAofsecond1is

begin

process(clk1s,reset)

begin

ifreset='

then--qingling

sec1<

0000"

sec2<

sec0<

elsifclk1s'

eventandclk1s='

then

if(sec1="

1001"

andsec2="

0101"

)then--jidao59s

sec2<

sec1<

sec0<

elsif(sec1="

)then--jidao9s

sec1<

sec2<

=sec2+1;

sec0<

elsesec1<

=sec1+1;

--zhengchangjishu1s

endif;

endprocess;

三、时序仿真:

四、功能说明:

对输入1Hz的频率进行计数,用reset进行复位清零;

只有reset为高时才开始计数;

输出2组4位的BCD码,用于数码管显示;

达到59s时输出进位信号色sec0;

4.3分计时器模块设计

一、原理图设计:

entityminute1is

port(clkm:

--miaojinwei

clk1s:

--jiaofengxinhao

setm:

--jiaofengkongzhi

min2,min1:

--fengzhonggaodiwei

minco:

outstd_logic--fengzhongjinwei

ArchitectureAofminute1is

signalclkx:

pclkm:

process(clkm,clk1s,setm)

begin

ifsetm='

thenclkx<

=clk1s;

elseclkx<

=clkm;

endprocess;

pcontm:

process(clkx)

begin

ifclkx'

eventandclkx='

if(min1="

andmin2="

)then

min1<

min2<

minco<

elsif(min1="

)then

=min2+1;

elsemin1<

=min1+1;

endif;

对输入的秒进位进行计数,记满59min时产生进位信号minco,正常分计数值由两组4位BCD码送出,用于数码管显示;

setm引入快速计分信号1Hz;

4.4小时计时器模块设计

entityhour1is

port(clkh:

seth:

hou2,hou1:

bufferstd_logic_vector(3downto0)

ArchitectureAofhour1is

signalclky:

std_logic;

pclkh:

process(clkh,clk1s,seth)

ifseth='

thenclky<

elseclky<

=clkh;

pconth:

process(clky)

ifclky'

eventandclky='

if(hou1="

0011"

andhou2="

0010"

hou1<

hou2<

elsif(hou1="

hou1<

hou2<

=hou2+1;

elsehou1<

=hou1+1;

对输入的分计数进位脉冲进行计数;

输出2组4位BCD码,用于数码管显示;

seth引入1Hz脉冲对小时进行快速计数;

4.5报时模块设计

entityalarm1

is

clk500:

clk1k:

instd_logic_vector(3downto0);

alarm:

outstd_logic

);

ArchitectureAofalarm1is

begin

process(clk1s)

variableflag500:

variableflag1k:

--variablehou:

std_logic_vector(7downto0);

ifclk1s'

if((hou2="

andhou1="

)andmin1="

)then--0xiaoshi59fen50miao

casesec1is--mingjiao2ci1di1gao49

--when"

=>

flag500:

when"

0100"

0110"

flag1k:

whenothers=>

flag1k:

endcase;

--elseflag500:

elsif((hou2="

0001"

)andmin1="

)then--12xiaoshi59fen50miao

casesec1is--mingjiao2ci1gao1di94

elsif((hou2="

)then--3xiaoshi59fen50miao

casesec1is--mingjiao3ci2di1gao149

)then--15xiaoshi59fen50miao

casesec1is--mingjiao3ci2gao1di149

)then--6xiaoshi59fen50miao

casesec1is--mingjiao4ci3di1gao1359

0111"

1000"

)then--18xiaoshi59fen50miao

casesec1is--mingjiao4ci3gao1di1359

)then--9xiaoshi59fen50miao

casesec1is--mingjiao5ci4di1gao13579

)then--21xiaoshi59fen50miao

casesec1is--mingjiao5ci4gao1di13579

elseflag500:

ifflag500='

thenalarm<

=clk500;

elsifflag1k='

=clk1k;

elsealarm<

三:

时序仿真:

以下是报时表和对应的整点对应关系

报时时刻

报时方式

0点

1高声+1低声

12点

1低声+1高声

3点

2高声+1低声

15点

2低声+1高声

5点

3高声+1低声

18点

3低声+1高声

9点

4高声+

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

当前位置:首页 > 经管营销 > 金融投资

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1