大连理工大学数电实验报告.docx

上传人:b****2 文档编号:2258713 上传时间:2022-10-28 格式:DOCX 页数:15 大小:148.75KB
下载 相关 举报
大连理工大学数电实验报告.docx_第1页
第1页 / 共15页
大连理工大学数电实验报告.docx_第2页
第2页 / 共15页
大连理工大学数电实验报告.docx_第3页
第3页 / 共15页
大连理工大学数电实验报告.docx_第4页
第4页 / 共15页
大连理工大学数电实验报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

大连理工大学数电实验报告.docx

《大连理工大学数电实验报告.docx》由会员分享,可在线阅读,更多相关《大连理工大学数电实验报告.docx(15页珍藏版)》请在冰豆网上搜索。

大连理工大学数电实验报告.docx

大连理工大学数电实验报告

大连理工大学本科实验报告

 

题目:

数字钟

 

课程名称:

数字电路课程设计

学院(系):

电子信息工程

专业:

电子

班级:

电子1301班

*******

学号:

********2

完成日期:

2015年7月18日

成绩:

 

2014年7月18日

注意:

本页要求放在实验报告第一页

课程设计得分表

考勤

课程设计50分

考试40分

作业

合计

最后得分

一、数字钟课程设计要求:

1、设计一个具有‘时’、‘分’、‘秒’的十进制数字显示(小时从00~23)计时器。

2、整点报时。

两种方法任选其一:

⑴发出仿中央人民广播电台的整点报时信号,即从59分50秒起,每隔2秒钟发出一次低音“嘟”的信号,连续5次,最后一次要求高音“嘀”的信号,此信号结束即达到整点。

“嘟”是500Hz左右的频率输出,“嘀”是1000Hz左右的频率输出

⑵通过LED闪烁实现,闪烁频率及花型可自己设计并在这里说明。

3、手动校时、校分、校秒。

4、定时与闹钟功能,能在设定的时间发出闹铃声。

5、设计一个秒表,显示1%秒到60秒、手动停止。

6、设计一个倒计时,显示小时、分钟、秒。

7、其他创新。

第1题25分,其他每题5分

二、课程设计考试(40分,每题分):

考试题目:

1、实体名□

2、计数器□

3、异步清零□

4、进位输出□

5、仿真图□

6、数码管输出□

7、分频□

8、元件例化□

9、引脚分配□

10、下载□

 

一、设计要求

1、设计一个数字钟,能够显示当前时间,分别用6个数码管显示小时、分钟、秒钟的时间,秒针的计数频率为1Hz,可由系统脉冲分频得到。

2、整点报时,可通过LED闪烁实现,闪烁频率及花型可自己设计。

3、能够调整小时和分钟的时间,调整的形式为通过按键进行累加。

4、具有闹钟功能,闹钟时间可以任意设定(设定的形式同样为通过按键累加),并且在设定的时间能够进行提示,提示同样可以由LED闪烁实现。

二、设计分析及系统方案设计

数字计时器一般都由振荡器、分频器、计数器、译码器、显示器等几部分组成。

其中振荡器和分频器组成标准秒信号发生器,由不同进制的计数器、译码器和显示器组成计时系统。

秒信号送入计时器进行计数,把累积的结果以‘时’、‘分’、‘秒’、的数字显示出来。

‘时’显示由二十四进制计数器、译码器、显示器构成,‘分’、‘秒’显示由六十进制计数器、译码器、显示器构成。

原理框图如下:

时十位时个位分十位分个位秒十位秒个位

 

三、系统以及模块硬件电路设计

系统的管脚配置如下表所示:

 

四、系统的VHDL设计

1.系统所用的库:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

useieee.std_logic_arith.all;

2.系统顶层实体名及内容

entitytimeis

port(clk,rst,stop,pls,plm,plh:

instd_logic;

alarmstart:

instd_logic;

p,q,r,t,u,v:

outstd_logic_vector(6downto0);---时钟数码管输出

w,x:

outstd_logic_vector(6downto0);---闹钟小时数码管输出

y,z:

outstd_logic_vector(3downto0);---闹钟分钟输出

alarm:

outstd_logic;---闹钟开关

reptime:

outstd_logic);---清零

end;

architecturedataoftimeis

signalclk1s,clk1sp,clk10s,clk1m,clk1mp,clk10m,clk1h,clk1hp,rep:

std_logic;

signala,b,c,d,e,f:

std_logic_vector(3downto0);

signalalarmstart1:

std_logic;

signalalarm1m,alarm10m,alarm1h,alarm10h:

std_logic_vector(3downto0);

begin

3.时钟部分

process(stop)

begin

casestopis

when'0'=>clk1sp<=clk1s;

whenothers=>clk1sp<=pls;

endcase;

endprocess;

process(stop)

begin

casestopis

when'0'=>clk1mp<=clk1m;

whenothers=>clk1mp<=plm;

endcase;

endprocess;

process(stop)

begin

casestopis

when'0'=>clk1hp<=clk1h;

whenothers=>clk1hp<=plh;

endcase;

endprocess;

process(clk,rst)

variablenum:

integerrange0to49999999;

begin

ifrst='0'then

num:

=0;

elsifrising_edge(clk)then

ifnum=49999999then

num:

=0;

else

num:

=num+1;

endif;

ifnum<25000000then

clk1s<='0';

else

clk1s<='1';

endif;

endif;

endprocess;

4.时钟校时部分

process(clk1sp,rst)

begin

ifrst='0'then

a<="0000";

elsifclk1sp'eventandclk1sp='1'then

ifa="1001"then

a<="0000";

else

a<=a+1;

endif;

endif;

ifa="0000"then

clk10s<='1';

else

clk10s<='0';

endif;

endprocess;

process(clk10s,rst)

begin

ifrst='0'then

b<="0000";

elsifclk10s'eventandclk10s='1'then

ifb="0101"then

b<="0000";

else

b<=b+1;

endif;

endif;

ifb="0000"then

clk1m<='1';

else

clk1m<='0';

endif;

endprocess;

process(clk1mp,rst)

begin

ifrst='0'then

c<="0000";

elsifclk1mp'eventandclk1mp='1'then

ifc="1001"then

c<="0000";

else

c<=c+1;

endif;

endif;

ifc="0000"then

clk10m<='1';

else

clk10m<='0';

endif;

endprocess;

process(clk10m,rst)

begin

ifrst='0'then

d<="0000";

elsifclk10m'eventandclk10m='1'then

ifd="0101"then

d<="0000";

else

d<=d+1;

endif;

endif;

ifd="0000"then

clk1h<='1';

else

clk1h<='0';

endif;

endprocess;

process(clk1hp,rst)

begin

ifrst='0'then

e<="0000";f<="0000";

elsifclk1hp'eventandclk1hp='1'then

ife="1001"then

e<="0000";f<=f+1;

elsife="0011"andf="0010"then

e<="0000";f<="0000";

else

e<=e+1;

endif;

endif;

endprocess;

5.整点报时部分

process(clk1s)

begin

ifclk1s'eventandclk1s='1'then

ifc="0000"andd="0000"then

if(b="0000"anda="0000")or(b="0000"anda="0100")or(b="0000"anda="0010")then

rep<='1';

else

rep<='0';

endif;

else

rep<='0';

endif;

endif;

reptime<=rep;

endprocess;

6.设置闹钟部分

process(plm,alarmstart)

begin

ifalarmstart='1'then

ifplm'eventandplm='1'then

ifalarm1m="1001"then

alarm1m<="0000";

ifalarm10m="0101"then

alarm10m<="0000";

else

alarm10m<=alarm10m+1;

endif;

else

alarm1m<=alarm1m+1;

endif;

endif;

else

alarm1m<=alarm1m;alarm10m<=alarm10m;

endif;

y<=alarm1m;z<=alarm10m;

endprocess;

process(plh,alarmstart)

begin

ifalarmstart='1'then

ifplh'eventandplh='1'then

ifalarm1h="1001"then

alarm1h<="0000";alarm10h<=alarm10h+1;

elsifalarm1h="0011"andalarm10h="0010"then

alarm1h<="0000";alarm10h<="0000";

else

alarm1h<=alarm1h+1;

endif;

endif;

else

alarm1h<=alarm1h;alarm10h<=alarm10h;

endif;

endprocess;

7.时钟与闹钟时间对比产生闹钟信号

process(clk1s)

begin

ifalarmstart='1'then

ifclk1s'eventan

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

当前位置:首页 > 人文社科 > 法律资料

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

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