音乐数码管计时点阵流水灯设计Word下载.docx

上传人:b****3 文档编号:16418436 上传时间:2022-11-23 格式:DOCX 页数:30 大小:70.95KB
下载 相关 举报
音乐数码管计时点阵流水灯设计Word下载.docx_第1页
第1页 / 共30页
音乐数码管计时点阵流水灯设计Word下载.docx_第2页
第2页 / 共30页
音乐数码管计时点阵流水灯设计Word下载.docx_第3页
第3页 / 共30页
音乐数码管计时点阵流水灯设计Word下载.docx_第4页
第4页 / 共30页
音乐数码管计时点阵流水灯设计Word下载.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

音乐数码管计时点阵流水灯设计Word下载.docx

《音乐数码管计时点阵流水灯设计Word下载.docx》由会员分享,可在线阅读,更多相关《音乐数码管计时点阵流水灯设计Word下载.docx(30页珍藏版)》请在冰豆网上搜索。

音乐数码管计时点阵流水灯设计Word下载.docx

clk:

instd_logic;

speaker:

outstd_logic);

endyinyue;

architecturebhvofyinyueis

signalup:

std_logic_vector(0to18);

signalyin:

integerrange0to17:

=1;

signalj:

integerrange0to139:

signalshijian,jiange:

integerrange0to20480;

begin

process(clk)

if(clk'

eventandclk='

1'

)then

ifup="

1111111111111111111"

then

up<

="

0000000000000000000"

;

j<

=j+1;

elseup<

=up+1;

ifj=70thenj<

endif;

------

casejis

when0=>

yin<

=3;

when1=>

when2=>

when3=>

--

when4=>

=5;

when5=>

when6=>

when7=>

=6;

when8=>

=8;

when9=>

when10=>

when11=>

=9;

when12=>

when13=>

when14=>

when15=>

when16=>

=12;

when17=>

when18=>

when19=>

=15;

when20=>

=13;

when21=>

when22=>

=10;

when23=>

when24=>

when25=>

when26=>

when27=>

when28=>

when29=>

when30=>

=0;

when31=>

when32=>

when33=>

when34=>

when35=>

when36=>

=7;

when37=>

when38=>

when39=>

when40=>

when41=>

when42=>

when43=>

when44=>

when45=>

when46=>

when47=>

when48=>

when49=>

when50=>

when51=>

when52=>

when53=>

when54=>

when55=>

when56=>

when57=>

when58=>

when59=>

when60=>

when61=>

when62=>

when63=>

----

when64=>

when65=>

when66=>

when67=>

when68=>

whenothers=>

endcase;

caseyinis

when1=>

jiange<

=7816;

--c

when2=>

=6965;

--d

when3=>

=6206;

--e

when4=>

=5868;

--f

when5=>

=5224;

--g

when6=>

=4654;

--a

when7=>

=4145;

--b

when8=>

=3915;

when9=>

=3543;

when10=>

=3107;

when11=>

=2934;

when12=>

=2612;

when13=>

=2327;

when14=>

=2072;

when15=>

=1957;

whenothers=>

speaker<

='

0'

ifshijian<

=jiangethenshijian<

=shijian+1;

=jiange/2thenspeaker<

elsespeaker<

elseshijian<

endprocess;

endbhv;

2数码管模块

简单计时装置,修改自数字钟,产生播放器的感觉,程序如下:

ENTITYjishiIS

port(sel:

bufferstd_logic_vector(7downto0);

seg:

outstd_logic_vector(6downto0));

endjishi;

architecturebhvofjishiis

signalff:

std_logic_vector(20downto0);

signalclk0:

std_logic;

signalaa,bb:

std_logic_vector(5downto0);

signalk:

std_logic_vector(2downto0);

signaltemp1,temp2:

signalresult1,result2,co1,co2:

std_logic_vector(3downto0);

signaldd:

signalsum:

clk0<

=ff(20);

p1:

if(clk'

ff<

=ff+1;

process(clk0)

if(clk0'

eventandclk0='

ifaa="

111011"

then

aa<

000000"

bb<

=bb+1;

else

=bb;

=aa+1;

ifbb="

ifaa<

10then

temp1<

=aa;

result1<

=temp1(3downto0);

co1<

0000"

endif;

if(aa>

9andaa<

20)then

=aa+6;

0001"

if(aa>

19andaa<

30)then

=aa+12;

0010"

29andaa<

40)then

=aa+18;

0011"

39andaa<

50)then

=aa+24;

0100"

49andaa<

60)then

=aa+30;

0101"

ifbb<

temp2<

result2<

=temp2(3downto0);

co2<

if(bb>

9andbb<

=bb+6;

if(bb>

19andbb<

=bb+12;

29andbb<

=bb+18;

39andbb<

=bb+24;

49andbb<

=bb+30;

if(clk'

dd<

=dd+1;

withddselect

sel<

10000000"

when"

000"

"

01000000"

001"

00100000"

010"

00010000"

011"

00001000"

100"

00000100"

101"

00000010"

110"

00000001"

111"

sum<

=co2when"

result2when"

1010"

when"

co1when"

result1when"

whenothers;

withsumselect

seg<

1000000"

1111001"

0100100"

0110000"

0011001"

0010010"

0000010"

0110"

1011000"

0111"

0000000"

1000"

0010000"

1001"

0111111"

1111111"

whenothers;

3点阵模块

点阵模块,主要就是点阵循环跳动显示心形(有大有小,动画的思想),还有蝴蝶形,还有“爱成蝶”三个字。

(由于程序较长,且后面有附录,所以不在此显示。

4流水灯模块

流水灯模块,主要显示的就是12盏灯循环有规则亮灭,配合音乐,并不断变化,形成视觉上的效果。

四实验结果及分析

实验成品的效果是音乐在播放,同时数码管开始计时,点阵开始显示文字和图案,流水灯也开始按照各种形式来循环闪烁。

除了音乐是上网查的一些音谱和学习了一下大体模式,其它的都是本次实习过程中做成功的程序的修改。

在实验的过程中一共碰到了以下几个问题

1、音乐模块中播放音乐开始使用蜂鸣器,但是总是发出类似蝉鸣的叫声,无论怎么改都不好用;

后来使用扬声器,开始时有杂音,十分不清晰,后来经过分析,造成这个问题的原因可能有两个:

第一,分频不对,造成音调有高有低,播放的不成曲调。

第二,扬声器有失真效应,造成播放的有杂音。

发现原因后,又重新对分频进行了处理,然后换了一个新的扬声器,而后程序编译通过,终于可以正常播放音乐了。

2、在加入各种模块的过程中,出现了逻辑单元不够用的现象,怎么改都不好用,后来经过多方修改,发现使用的if语句使用太多的缘故,更改了一些语句,终于逻辑单元的数目降下来了,编译通过了。

3、点阵模块设计时,出现了只跳动前几个字的现象,而且每两个一停顿。

最后还有一个全亮的,经过修改程序,发现其中的一个计数器的位数不够,还有分频分的不对,是一个比0.5秒多一点的频率,修改成1秒,上述情况就解决了。

五实习总结

先总结一下自主设计,本次设计是我第一次用一门自己陌生的语言做的设计,做的不是很完善,只能说是一些基本模块的整合。

关于音乐系统,因为时间和知识缺乏的关系,设计得很是简陋,远远达不到当今社会的需求,应该多加几首音乐,并且用加入音乐选择的功能,这样,现实性更强了,同时点阵的设计本来想加一个跳动与滚动的转化的,但是时间仓促,总是有错误,所以最后只能放弃,以后好好研究一下。

再总结一下整个小学期的实习,在短短的四个星期的日子里,学到很多很多的的东西,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

以焊电路板开始,以自主设计结束,每一次都感觉自己做的很难,一旦成功后,就会继续更难更复杂的东西。

课程设计也由浅入深,在之前的基础之上灵活使用,不仅需要缜密的逻辑思维以及清醒的头脑,更需要很强的动手能力,使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。

我会把这段经历当做一笔宝贵的财富,激励我不断前进。

六附录(程序或电路图)

ENTITYYINYYUEIS

port(clk:

outstd_logic;

i1:

outstd_logic_vector(15downto0);

i2:

sel:

outstd_logic_vector(6downto0);

dout:

outstd_logic_vector(11downto0));

endyinyyue;

architecturebhvofyinyyueis

signala,e:

signalb:

std_logic_vector(20downto0);

signalc:

std_logic_vector(3downto0);

signald:

std_logic_vector(2downto0);

signali2a,i2b,i2c,i2d,i2e,i2f,i2g:

std_logic_vector(15downto0);

signalcl:

signalmm:

integerrange0to15;

signalclm:

signalnnn:

integerrange0to31;

signaly1:

std_logic_vector(31downto0);

signalx,y:

signalcnt:

std_logic_vector(7downto0);

--variablecount:

integerRANGE0TO7;

signalcount:

std_logic_vector(5DOWNTO0);

signalf:

std_logic_vector(22downto0);

signalclk1:

if(clk'

)then

if(b<

2048000)then

b<

=b+1;

000000000000000000000"

endprocess;

e<

whenb<

'

begin

ifclk'

c<

=c+1;

process(e)

ife'

eventande='

ifd<

7then

d<

=d+1;

else

d<

withcselect

i1<

1000000000000000"

when"

0100000000000000"

0010000000000000"

0001000000000000"

0000100000000000"

0000010000000000"

0000001000000000"

0000000100000000"

0000000010000000"

0000000001000000"

0000000000100000"

0000000000010000"

1011"

0000000000001000"

1100"

0000000000000100"

1101"

0000000000000010"

1110"

0000000000000001"

1111"

casecis

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

当前位置:首页 > 成人教育 > 自考

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

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