EDA课程设计数字钟Word格式文档下载.docx

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

EDA课程设计数字钟Word格式文档下载.docx

《EDA课程设计数字钟Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《EDA课程设计数字钟Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。

EDA课程设计数字钟Word格式文档下载.docx

对minute模块进行仿真为:

对hour模块进行仿真:

对deled字符译码模块仿真

该模块将字符转换成数码管相应的段码以便数码管能显示为人们习惯的字符。

三、管脚分配:

四、AHDL源程序:

1:

counter,tdf

SUBDESIGNcounter

CLK:

INPUT;

CLKOUT:

OUTPUT;

VARIABLE

count1[3..0]:

DFF;

count2[3..0]:

SS:

DFF;

BEGIN

count1[].clk=clk;

count2[].clk=clk;

SS.CLK=CLK;

SS=B"

0"

;

IF

COUNT1[]==B"

0111"

AND

COUNT2[]==B"

1000"

then

SS=B"

1"

ENDIF;

IFcount1[]==B"

1001"

THEN

count1[]=B"

0000"

ELSE

count1[].d=count1[].q+1;

THEN

IFcount2[]==B"

count2[]=B"

ELSE

count2[].d=count2[].q+1;

ENDif;

ELSE

count2[].d=count2[].q;

clkout=ss;

END;

2:

counter1.tdf

SUBDESIGNcounter1

3:

link

SUBDESIGNlink

--CLK,RESET:

G[3..0],H[3..0]:

BEGIN

G[3..0]=B"

1111"

H[3..0]=B"

4:

Second.tdf%秒钟模块60进制%

SUBDESIGNSecond

CLK,RESET:

A[3..0],B[3..0],CKMIN:

count1[3..0]:

count2[3..0]:

SS:

count1[].clrn=RESET;

count2[].clrn=RESET;

SS.CLK=CLK;

SS.CLRN=RESET;

IFCOUNT1[]==B"

COUNT2[]==B"

0101"

ENDIF;

a[3..0]=count1[];

b[3..0]=count2[];

CKMIN=SS;

END;

5:

Minute.tdf%分钟模块60进制%

SUBDESIGNMinute

CKMIN,RESET,SETMIN:

A[3..0],B[3..0],CKHOUR:

count3:

count1[].clk=CKMINOR!

SETMIN;

count2[].clk=CKMINOR!

count3.clk=CKMINOR!

count3.clrn=RESET;

count3=B"

AND

COUNT3=B"

IFcount1[]==B"

then

count1[].d=count1[].q+1;

IFcount2[]==B"

count2[].d=count2[].q+1;

count2[].d=count2[].q;

a[3..0]=count1[];

CKHOUR=count3;

6:

Hour.tdf%小时模块24进制%

SUBDESIGNHour

CKHOUR,RESET,SETHOUR:

A[3..0],B[1..0]:

count1[3..0]:

count2[1..0]:

count1[].clk=CKHOUROR!

SETHOUR;

count2[].clk=CKHOUROR!

IFcount2[]<

B"

10"

IFcount1[]==B"

count2[].d=count2[].q+1;

count2[].d=count2[].q;

ELSIFcount2[]==B"

IFcount1[]==B"

0011"

count1[]=B"

count2[]=B"

00"

count1[].d=count1[].q+1;

count2[].d=count2[].q;

ENDIF;

b[1..0]=count2[];

7、Sel_clock.tdf%显示扫描模块%

SUBDESIGNSEL_clock

A[3..0],B[3..0],C[3..0]:

D[3..0],E[3..0],F[1..0]:

CKDSP,G[3..0],H[3..0]:

OUT[3..0],SEL[2..0]:

OUTPUT;

COUNT[2..0]:

count[].clk=CKDSP;

IFCOUNT[]==B"

111"

COUNT[]=B"

000"

count[].d=count[].q+1;

IFCOUNT[]==B"

out[3..0]=A[3..0];

ELSIFCOUNT[]==B"

001"

out[3..0]=B[3..0];

ELSIFCOUNT[]==B"

010"

out[3..0]=G[3..0];

011"

out[3..0]=C[3..0];

100"

out[3..0]=D[3..0];

101"

out[3..0]=H[3..0];

110"

out[3..0]=E[3..0];

out[1..0]=F[1..0];

out[3..2]=B"

SEL[2..0]=COUNT[];

8:

Alert.tdf%报时模块%

SUBDESIGNalert

CKSP1,CKSP2,DAIN[7..0]:

SPEAK,LAMP[7..0]:

s:

ss:

MACHINEOFBITS(lamp[7..0])

WITHSTATES(

s0=B"

00000001"

s1=B"

00000010"

s2=B"

00000100"

s3=B"

00001000"

s4=B"

00010000"

s5=B"

00100000"

s6=B"

01000000"

s7=B"

10000000"

);

IFdain[7..0]==B"

00000000"

SS.clk=cksp2;

s.clk=cksp1;

s.d=!

s.q;

speak=s.q;

CASEssIS

WHENs0=>

ss=s1;

WHENs1=>

ss=s2;

WHENs2=>

ss=s3;

WHENs3=>

ss=s4;

WHENs4=>

ss=s5;

WHENs5=>

ss=s6;

WHENs6=>

ss=s7;

WHENs7=>

ss=s0;

WHENOTHERS=>

ss=s0;

ENDCASE;

ELSE

SS=S0;

SPEAK=GND;

9:

deled%字符译码器%

subdesigndeled

num[3..0]:

input;

a,b,c,d,e,f,g:

output;

begin

table

num[3..0]=>

a,b,c,d,e,f,g;

h"

1,1,1,1,1,1,0;

0,1,1,0,0,0,0;

2"

1,1,0,1,1,0,1;

3"

1,1,1,1,0,0,1;

4"

0,1,1,0,0,1,1;

5"

1,0,1,1,0,1,1;

6"

1,0,1,1,1,1,1;

7"

1,1,1,0,0,0,0;

8"

1,1,1,1,1,1,1;

9"

1,1,1,1,0,1,1;

a"

1,1,1,0,1,1,1;

b"

0,0,1,1,1,1,1;

c"

1,0,0,1,1,1,0;

d"

0,1,1,1,1,0,1;

e"

1,0,0,1,1,1,1;

endtable;

end;

五、一点体会:

我感觉自己编写功能模块这一步不容易跨过去,但只要你进去了你就会觉得里面风光无限好,感觉到编写功能模块也就不过如此(这是相对来说的)。

Link模块简练,实用,在以后可以好好利用。

附、数码管显示原理:

共阴极的字形码表

如显示0时数码管对应八段为3FH即0,0,1,1,1,1,1,1->

dp,g,f,e,d,c,b,a也就是a,b,c,d,e,f全亮,g,dp不亮,这样就形成了“0”字型。

其它字型类似。

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

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

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

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