多功能数字钟.docx

上传人:b****3 文档编号:2125749 上传时间:2022-10-27 格式:DOCX 页数:11 大小:56.47KB
下载 相关 举报
多功能数字钟.docx_第1页
第1页 / 共11页
多功能数字钟.docx_第2页
第2页 / 共11页
多功能数字钟.docx_第3页
第3页 / 共11页
多功能数字钟.docx_第4页
第4页 / 共11页
多功能数字钟.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

多功能数字钟.docx

《多功能数字钟.docx》由会员分享,可在线阅读,更多相关《多功能数字钟.docx(11页珍藏版)》请在冰豆网上搜索。

多功能数字钟.docx

多功能数字钟

 

石家庄铁道大学

EDA技术课程设计

2016年春季学期

 

学院:

电气与电子工程学院

专业:

电子信息工程

课程名称:

EDA技术与VHDL

学生姓名:

向鹏

学号:

20132581

指导教师:

赵晓博

完成日期:

2016年5月

 

作业评分表

评分项目

项目一

项目二

项目三

项目四

总分

满分

得分

评阅人

 

课程设计任务书

1、作业目的

通过EDA课程设计的锻炼,要求学生掌握电路的一般设计方法,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,培养学生的创新精神。

2、作业内容及要求

掌握现代大规模集成数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(EDA)的基本方法。

设计一个24小时制的数字钟。

要求:

能显示时、分、秒。

要求时、分、秒。

能各自独立的进行调整。

能利用喇叭作整点报时。

具能有清零功能。

3、作业成果形式及提交要求

当场演示实物,提交实物和论文。

实物必须说明能实现什么样的功能,论文必须严谨,必须叙述清楚各种模块的组成和作用。

4、参考文献

[1]潘松,黄继业.EDA技术实用教程.北京:

科学出版社,2005

[2]徐志军,王金明.EDA技术与PLD设计.北京:

人民邮电出版社,2006

[3]徐志军,王金明.EDA技术与VHDL设计.北京:

电子工业出版社,2009

 

目录

一、课程设计的性质、目的和任务……………………………2

二、课程设计基本要求…………………………………………2

三、设计课题要求………………………………………………2

四、课程设计所需要仪器………………………………………3

五、设计步骤……………………………………………………3

1、模块介绍……………………………………………………3

2、各个模块的设计与仿真……………………………………3

2.1秒模块…………………………………………………………3

2.2分模块…………………………………………………………4

2.3时模块…………………………………………………………5

2.4报时模块………………………………………………………7

2.5整体模块电路…………………………………………………8

六、引脚锁定……………………………………………………8

七、调试中遇到的问题及解决的方法…………………………8

八、心得体会……………………………………………………9

九、参考文献……………………………………………………9

 

一、课程设计的性质、目的和任务

创新精神和实践能力二者之中,实践能力是基础和根本。

这是由于创新基于实践、源于实践,实践出真知,实践检验真理。

实践活动是创新的源泉,也是人才成长的必由之路。

通过课程设计的锻炼,要求学生掌握电路的一般设计方法,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,培养学生的创新精神。

二、课程设计基本要求

掌握现代大规模集成数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(EDA)的基本方法。

三、设计课题要求

(1)构造一个24小时制的数字钟。

要求能显示时、分、秒。

(2)要求时、分、秒能各自独立的进行调整。

(3)能利用喇叭作整点报时。

(4)能有清零功能。

#设计提示(仅供参考):

(1)对频率输入的考虑

数字钟内所需的时钟频率有:

基准时钟应为周期一秒的标准信号。

报时频率可选用1KHz和2KHz左右(两种频率相差八度音,即频率相差一倍)。

另外,为防止按键反跳、抖动,微动开关输入应采用寄存器输入形式,其时钟应为几十赫兹。

(2)计时部分计数器设计的考虑

分、秒计数器均为模60计数器。

小时计数为模24计数器,同理可建一个24进制计数器的模块。

(3)校时设计的考虑

数字钟校准有3个控制键:

时校准、分校准和秒校准。

(4)报时设计的考虑

可以将高频时钟分频得到约2KHz和1KHz的音频,作为数字钟的报时频率。

当电子钟显示XX:

59:

59时,数字钟开始报时“DO",持续一秒,直至显示XX:

00:

00,持续一秒后停止。

最后输出至喇叭。

应调用元件库中的逻辑门建一个控制报时的模块。

四、课程设计所需要仪器

1、计算机一台

2、quartusⅡ软件

3、FPGA开发板

五、设计步骤

1、模块介绍

(1)秒模块:

产生1Hz的计数、生成60进制

(2)分模块:

生成60进制

(3)时模块:

24进制计数器

(4)报时模块:

进行整点报时

2、各个模块的设计与仿真

2.1秒模块

程序代码:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitymiaois

port(clk,clr:

instd_logic;--时钟/清零信号

sec1,sec0:

outstd_logic_vector(3downto0);--秒高位/低位

co:

outstd_logic);--输出/进位信号

endmiao;

architectureSECofmiaois

begin

process(clk,clr)

variablecnt1,cnt0:

std_logic_vector(3downto0);--计数

begin

ifclr='1'then--当ckr为1时,高低位均为0

cnt1:

="0000";

cnt0:

="0000";

elsifclk'eventandclk='1'then

ifcnt1="0101"andcnt0="1000"then--当记数为58(实际是经过59个记时脉冲)

co<='1';--进位

cnt0:

="1001";--低位为9

elsifcnt0<"1001"then--小于9时

cnt0:

=cnt0+1;--计数

else

cnt0:

="0000";

ifcnt1<"0101"then--高位小于5时

cnt1:

=cnt1+1;

else

cnt1:

="0000";

co<='0';

endif;

endif;

endif;

sec1<=cnt1;

sec0<=cnt0;

endprocess;

endSEC;

输入模块电路图:

2.2分模块

由秒计数器,分计数器,时计数器组成了最基本的数字钟计时电路,两个六十进制计数器与二十四进制计数器组合构成。

程序代码:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityMINUTEis

port(en,setmin,clr,clk:

instd_logic;--时钟/清零信号

MIN1,MIN0:

outstd_logic_vector(3downto0);--秒高位/低位

co:

outstd_logic);--输出/进位信号

endMINUTE;

architectureMINofMINUTEis

begin

process(en,setmin,clr,clk)

variablecnt1,cnt0:

std_logic_vector(3downto0);--计数

begin

ifclr='1'then--当ckr为1时,高低位均为0

cnt1:

="0000";

cnt0:

="0000";

elsif(clk'eventandclk='1')then

if(en='1'orsetmin='1')then

ifcnt1="0101"andcnt0="1000"then--当记数为58(实际是经过59个记时脉冲)

co<='1';--进位

cnt0:

="1001";--低位为9

elsifcnt0<"1001"then--小于9时

cnt0:

=cnt0+1;--计数

else

cnt0:

="0000";

ifcnt1<"0101"then--高位小于5时

cnt1:

=cnt1+1;

else

cnt1:

="0000";

co<='0';

endif;

endif;

endif;

endiF;

MIN1<=cnt1;

MIN0<=cnt0;

endprocess;

endMIN;

 

输入模块电路图:

2.3时模块

程序代码:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityhouris

port(reset,en,sethour,clk:

instd_logic;

daout:

outstd_logic_vector(7downto0));

endHOUR;

architecturebehavofHOURis

signalcount:

std_logic_vector(3downto0);

signalcounter:

std_logic_vector(3downto0);

begin

p1:

process(reset,sethour,en)

begin

ifreset='1'then

count<="0000";

counter<="0000";

elsif(clk'eventandclk='1')then

if(en='1'orsethour='1')then

if(counter<2)then

if(count=9)then

count<="0000";

counter<=counter+1;

else

count<=count+1;

endif;

else

if(count=3)then

count<="0000";

counter<="0000";

else

count<=count+1;

endif;

endif;

endif;

endif;

endprocess;

daout(7downto4)<=counter;

daout(3downto0)<=count;

endbehav;

输入模块电路图:

2.4报时模块

程序代码:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityxzis

port(a:

instd_logic;

clk1:

instd_logic;

b:

outstd_logic);

endxz;

architectureSEofxzis

signaltemp:

std_logic;

begin

process(a,clk1)

begin

if(a='1')then

temp<=clk1;

--else

--temp<='0';

endif;

endproces

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

当前位置:首页 > 党团工作 > 党团建设

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

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