数电课设大作业 数字钟Word文件下载.docx

上传人:b****5 文档编号:16736942 上传时间:2022-11-25 格式:DOCX 页数:16 大小:114.35KB
下载 相关 举报
数电课设大作业 数字钟Word文件下载.docx_第1页
第1页 / 共16页
数电课设大作业 数字钟Word文件下载.docx_第2页
第2页 / 共16页
数电课设大作业 数字钟Word文件下载.docx_第3页
第3页 / 共16页
数电课设大作业 数字钟Word文件下载.docx_第4页
第4页 / 共16页
数电课设大作业 数字钟Word文件下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数电课设大作业 数字钟Word文件下载.docx

《数电课设大作业 数字钟Word文件下载.docx》由会员分享,可在线阅读,更多相关《数电课设大作业 数字钟Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。

数电课设大作业 数字钟Word文件下载.docx

7、其他创新。

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

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

考试题目:

1、实体名□

2、计数器□

3、异步清零□

4、进位输出□

5、仿真图□

6、数码管输出□

7、分频□

8、元件例化□

9、引脚分配□

10、下载□

(1.大连理工大学电信学院,辽宁大连,116023;

2.大连理工大学电工电子实验中心,辽宁大连,116023;

1.设计要求

一、电子表部分:

(1)由晶振电路产生1HZ的校准秒信号。

?

(2)设计一个具有‘时’、‘分’、‘秒’的十进制数字显示(小时从00~23)计时器具有手动校时、校分,校秒和清零的功能。

(3)整点报时功能,通过LED闪烁实现,此实验LED灯亮一秒。

二、秒表部分:

(1)有晶振产生100HZ的校准0.01秒信号。

(2)设计一个有“时”、“分”、“秒”、“0.1秒”、“0.01秒”(23小时59分59秒99)显示功能

(3)具有开始计时暂停计时功能和清零功能

三、具有电子表和秒表状态切换。

四、划出框图和逻辑电路图,写出设计。

2.设计分析及系统方案设计

1设计主要分为数字钟和秒表计时两个部分并选择用二选一数据选择器来实现两种功能切换。

2由于时钟用的是cyclone2开发板上提供的50MHz晶振的频率,所以数字时钟和秒表计时都用到分频器分频分别得到1Hz和100Hz的时钟频率。

3数字时钟部分包括分频部分即分频器;

计时部分,包含模六计数器、模十计数器;

选位调节部分,分别对时钟分钟和小时部分进行调节,用二选一数据选择器实现;

数字显示部分,用到6个4-16译码器,和6个数码显示管;

整点报时部分,其中报时用LED灯闪烁代替;

含有清零端开关。

4秒表计时包含分频器;

计时器包含模六计数器,模十计数器,模三计数器;

数字显示器包含有8个4-16译码器,8个数码显示管;

计时启停开关,清零开关。

3.系统以及模块硬件电路设计

输入:

晶振50MHz,选位开关(0为可调节,1为正常计时),数字钟清零开关(0为清零),开关切换计时状态(1为数字计时,0为秒表计时),秒表启停开关(1启动,0停止),秒表复位开关(0复位),选择输出开关(1输出数字计时数字,0输出秒表计时数字)。

输出:

LED灯,数字显示部分。

4系统的VHDL设计

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitykesheis

port(clk:

instd_logic;

qo1,qo2,qo3,qo4,qo5,qo6,qo7,qo8:

outstd_logic_vector(6downto0);

rst1:

--开关1

rst2:

--开关2

rst3:

--开关3

rst4:

--开关4

switch1:

switch2:

key1:

--分钟调节

key2:

--小时调节

key3:

runstop:

--秒表启停开关

led:

outstd_logic_vector(7downto0)

);

end;

architectureaofkesheis

signalqh,ql,qhs,qls,qhf,qlf,qhh,qlh:

std_logic_vector(3downto0):

="

0000"

;

signalrun:

std_logic:

='

0'

signalqqh1,qqh2,qql1,qql2,qqhf1,qqhf2,qqhs1,qqhs2,qqls1,qqls2,qqhh1,

qqhh2,qqlh1,qqlh2,qqlf1,qqlf2:

std_logic_vector(3downto0);

signalclk1s,csf,csh,css,clk1s2,csf2,csh2,css2,csh2in,csf2in,css2in:

std_logic;

componentsegment

port(qi:

instd_logic_vector(3downto0);

qo:

outstd_logic_vector(6downto0)

endcomponent;

begin

u1:

segmentportmap(qh,qo1);

u2:

segmentportmap(ql,qo2);

u3:

segmentportmap(qhf,qo5);

u4:

segmentportmap(qlf,qo6);

u5:

segmentportmap(qhh,qo7);

u6:

segmentportmap(qlh,qo8);

u7:

segmentportmap(qhs,qo3);

u8:

segmentportmap(qls,qo4);

process(rst1,qqh1,qqh2,qql1,qql2,qqhf1,qqhf2,qqhs1,qqhs2,qqls1,qqls2,qqhh1,qqhh2,qqlh1,qqlh2,qqlf1,qqlf2)--电子表秒表切换

ifrst1='

1'

then

qh<

=qqh1;

qhs<

=qqhs1;

qhf<

=qqhf1;

qhh<

=qqhh1;

ql<

=qql1;

qls<

=qqls1;

qlf<

=qqlf1;

qlh<

=qqlh1;

else

=qqh2;

=qqhs2;

=qqhf2;

=qqhh2;

=qql2;

=qqls2;

=qqlf2;

=qqlh2;

endif;

endprocess;

process(runstop,rst2)--秒表计停开关

ifrst2='

run<

elsifrunstop'

eventandrunstop='

=notrun;

process(clk,clk1s,rst2,run)

ifrising_edge(clk)then

ifcnt=499999then

cnt<

=0;

clk1s<

elsecnt<

=cnt+1;

qql1<

qqh1<

elsifrun='

ifclk1s'

eventandclk1s='

if(qql1="

1001"

andqqh1="

)then

css<

elseifqql1="

=qqh1+1;

=qql1+1;

process(css,rst2)

qqls1<

qqhs1<

if

css'

eventandcss='

if(qqls1="

andqqhs1="

0101"

csf<

elseifqqls1="

=qqhs1+1;

=qqls1+1;

process(csf,rst2)

qqlf1<

qqhf1<

csf'

eventandcsf='

if(qqlf1="

0011"

andqqhf1="

0010"

csh<

elseifqqlf1="

=qqhf1+1;

=qqlf1+1;

process(csh,rst2)

qqlh1<

qqhh1<

csh'

eventandcsh='

if(qqlh1="

andqqhh1="

elseifqqlh1="

=qqhh1+1;

=qqlh1+1;

process(clk,clk1s2,rst3)

ifct=499999then

ct<

clk1s2<

elsect<

=ct+1;

ifrst3='

qql2<

qqh2<

elsifclk1s2'

eventandclk1s2='

if(qql2="

andqqh2="

css2<

elseifqql2="

=qqh2+1;

=qql2+1;

process(css2,rst4,key3)

ifrst4='

css2in<

=css2;

=key3;

process(css2in,rst3)

qqls2<

qqhs2<

elsifcss2in'

eventandcss2in='

if(qqls2="

andqqhs2="

csf2<

elseifqqls2="

=qqhs2+1;

=qqls2+1;

process(csf2,switch1,key1)

ifswitch1='

csf2in<

=csf2;

=key1;

process(csf2in,rst3)

qqlf2<

qqhf2<

elsif

csf2in'

eventandcsf2in='

if(qqlf2="

andqqhf2="

csh2<

elseifqqlf2="

=qqhf2+1;

=qqlf2+1;

andqqls2="

elseled<

00000000"

process(csh2,switch2,key2)

ifswitch2='

csh2in<

=csh2;

=key2;

process(csh2in,rst3)

qqlh2<

qqhh2<

csh2in'

eventandcsh2in='

if(qqlh2="

andqqhh2="

elseifqqlh2="

=qqhh2+1;

=qqlh2+1;

entitysegmentis

port(

qi:

architecturebofsegmentis

process(qi)

caseqiis

when"

=>

qo<

1000000"

0001"

1111001"

0100100"

0110000"

0100"

0011001"

0010010"

0110"

0000010"

0111"

1111000"

1000"

0000000"

0010000"

whenothers=>

1111111"

endcase;

1分频部分

新时钟状态图如下:

2秒表电子表输出切换部分

开关判断为1时输出为数字计时输出,为0时输出为秒表计时输出。

3计时部分

模6计数器、模10计数器、模3计数器

状态转换如下:

4数字显示部分

数字显示用4-16译码器中7个输出管脚连接数码管中7个共阳的发光二极管,当译码器输入四位二进制代码时,对应数码管显示相应的数字。

"

对应"

显示0;

显示1;

显示2;

显示3;

显示4;

显示5;

显示6;

显示7;

显示8;

others对应"

显示9;

5结论以及结果说明

本次课程设计主要在windowsXP系统运用quartus26.0版软件来进行调试。

部分仿真截图

通过本课学习到了VHDL的使用方法了解到了自己在学习上的一些不足,谢谢老师的指导。

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

当前位置:首页 > 小学教育 > 数学

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

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