自动奏乐器 二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一设计题目:
自动奏乐器二
二题目要求:
1.开机能自动奏一个乐曲,并可以反复演奏;
2.速度可变;
1 3 1 3 5 6 5 – 6 6 і 6 5 –––
6 6 і 6 5 5 3 1 2 2 3 2 1 –––
3.附加:显示乐谱。
三设计过程:
总述:本曲完整播放共32拍,共需要音符六个,即1、2、3、5、6,i,故六种音符。
节拍为四四拍,较为固定,其中每个音符之间都有断音,只有第7拍的5为延音两拍,第13拍的5和第29拍的1为四拍延音。
要求为重复播放从乐谱开始到结束总共包括32种状态,(且为了实现乐曲能够自动循环播放,采用了32进制加法计数器),速度可变(两种频率),并显示乐谱(七段式译码器)。
总体设计思想:本实验共分为五个部分,分别为构造音符、变速控制、断音延音控制、音符分频,及音频和显示输出。
其中构造音符部分由y1~yi模块实现;变速控制由biansu模块控制;断音延音控制由模块duyin模块控制;音符分频模块由fenpin模块控制;音频及显示输出,音频输出用到一个74151(8选1数据选择器)选择分频音符输出音调,输出到一个T触发器,实现占空比为1:1,再送出到扬声
器发声,显示部分则是由一个7449(七段式译码器)完成,在选音奏乐的同时由数码管显示乐曲。
设计方案:
(1)、本实验时钟信号CP1采用2930HZ(biansu模块)使实验箱给的高频信号降为可用的低频信号,以实现乐谱的正常奏乐。
(2)、CP2采用11.719KHZ用于实现六个音符的分频(fenpin模块)。
(3)、为实现变速奏乐在模块1中加入了一个SP信号(在实验箱上由按键来实现)。
(4)、为实现自动奏乐,模块2中置有一个有两个74161组成的32进制的计数器,用于乐谱中32个音符状态的顺序输出。
(5)、为使音乐有节奏感,模块2中还装有一延音断音模块(duyin 模块),用于实现断音和延音的产生。
(6)、使用74151数据选择器实现了六个音符的输出和显示选择。
(7)、使用7449电路实现音符的显示。
四、设计说明:
电路设计总图如下:
仿真图如下:
下面分模块来叙述详细的设计过程。
1、模块一变速控制模块(biansu模块):
电路图:
功能:降频和实现变速。
设计原理:由于实验箱给出的是一个高频的信号,而要演奏音乐则应当降低为低频,设计的电路由计数器的分频作用来实现降频,电路中设计了两个不同进制的计数器,分别为92进制和65进制。
而变速演奏则是由SP这个高低电平信号来控制实现的,当SP=1时65进制计数器有效,92进制计数器则不工作,音乐的演奏速度为快速;当SP=0时92进制计数器有效,演奏速度为慢速。
从而实现了变速演奏。
仿真图如下:
当sp=1时:
当sp=0时:
2、模块二断延音和循环控制模块(mk2a):
电路图:
功能:实现延音和断音,实现乐谱中32个状态(音符)的循环。
仿真图如下:
设计原理:断音是指两个音符之间的间隔,而延音则表示两个音符之间无断音。
仿真结果与设计结论相符。
下面详细描述该模块:
(1)用于实现延音和断音演奏的断延音模块(duyin模块):
电路图如下:
设计原理:
断音的实现:主要由一个74160构成的八进制计数器实现,计数器ABCD端置0,计数器初时状态为0,开始计数,计到第七个CP信号完成时置数端有效,计数器回到初时状态0。
与此同时,计数器也给Q11端一个低电平,因此,在8个输入CP中前7个CP周期内Q11输出为高电平,第八个CP信号为低,从而实现了断音的演奏。
延音的实现:输出端Q12、Q13、Q14、Q15均是用于延音的实现。
下面以Q12为例说明其工作原理。
在32进制计数器计到7时出现Q12; 计数器计到13时出现Q13; 计数器计到14时出现Q14; 计数器计到15时出现Q15; 计数器计到29时出现Q12; 计数器计到30时出现Q13; 计数器计到31时出现Q14。
不输出断音,则输出延音。
Q12实现乐谱上第七个音符 5-的延音,为此在电路循环到此状态时,由一个五输入端的与门给出一个高电平给Q12,然后把Q12和Q11
相与起来,从而将Q11产生的断音屏蔽掉了,实现了延音的输出。
Q13、Q14、Q15组合起来使用用于实现乐谱上第13个和第29个状态延音的实现,注意这里有三个延音,故而分别在三个连续的状态上使用了Q13、Q14、Q15 ,其他的原理与Q12一致。
图中Q0~Q4为乐谱上32个音符的状态编码输出。
如下图,把Q0~Q4“Enter group”,可知为32进制计数器。
仿真图如下:
(2):音符的循环输出控制则是由门电路来实现的(见模块图)。
duanyin模块输出了Q0~Q4五个乐谱状态编码,而在下一模块使用的是A、B、C三个地址编码,为此要找出ABC和Q0~Q4的关系,从而用Q0~Q4表示出ABC。
乐谱中各个音符(共六个)的ABC地址编码设定如下:
音调CBA
高音1 111
1 001
2 010
3 011
5 101
6 110
写出32个状态分别对应的Q0~Q4状态编码和ABC地址编码,用卡诺图画出关系式,写出表达式,连好电路图,输出CBA端。
当Q0=0时:
C=4Q Q2+4Q Q31Q +Q43Q 1Q
B=Q32Q 1Q +Q42Q 1Q +Q4Q32Q +Q43Q Q2Q1 A=4Q 3Q +Q2+Q4Q3Q1 当Q0=1时:
C=4Q Q2+4Q Q3+Q43Q 2Q +3Q Q21Q B=2Q +4Q 3Q 1
Q
A=4Q 3Q 2Q +Q2Q1+Q3Q2+Q4Q2
由此,A 、B 、C 与Q4、Q3、Q2、Q1、Q0的关系,得到如上图的连线。
3、模块三 分频模块(fenpin 模块) 电路图如下:
Q 2Q 1Q 0
Q 4Q 3
000 001 011 010 110 111 101 100
00 001 011 011 001 101 101 110 101 01 110 110 110 111 101 101 101 101 11 010 010 010 011 001 001 001 001 10 110 110 110 111 011 001 101 101
仿真图如下:
功能:产生六个音符的对应的频率。
设计说明:电路中由六个独立的模块分别用于实现六个音符的频率产生,这里以模块Yi为例说明其原理。
Yi的电路图:
其仿真波形如下图:
设计说明:
电路图主要由两个74160组成一个22进制的计数器,当输入CP出入了22周期最后,输出Y才由一个输出高电平,这样便实现了22进制的分频,从而将给定的11.719KHZ的高频分成i音的频率523.26HZ。
下面给出了个音符对应的频率和对应的分频数:
表2
音符频率(Hz)分频数
i 523.26 22
6 440.00 27
5 392.0 30
3 329.63 36
2 293.66 40
1 261.63 45
4、音符的输出和显示(图见总图)
音符的输出
音符的输出主要由一个74151数据选择器来实现的,ABC是数据选择器的地址编码。
7个音符对应的编码见表3,这样就由数据选择器选择输出每个确定状态对应的音符。
使用T触发器的作用是为使占空比为1:1,输出到一个TFF调节占空比后再送到扬声器输出端。
音符的显示
显示主要是通过7449来实现的,这里重点说一下BIN这个使能端,开始是将其接为高电平,结果发现在ABC均无信号输入时,数码管的显示不确定,后来查看其真值表才发现显示为0,应当将ABC相或之后接回BIN,这样便能到达目的了。
五、实验中遇到的问题
1、开始时音乐演奏速度太快,通过多次降低CLK的频率将速度变慢,才得到了相对比较好的演奏效果。
2、卡诺图化简为最简式时是通过真值表的形式将Q0~Q4转化为ABC 表示的,化简出的表达式非常的复杂,容易化简错,从而导致电路图的连接特别容易错误,可以适当采用工具。
六、心得体会
回顾这两周的课程设计,犹记得刚拿到题目时的茫然。
略读了一遍数电书,才有了一点点头绪,从简单的几个音符的分频开始做,之后又参考了一些以前同学做过的资料,才得以日益完善自己的电路设计,细细推敲,一步一步的上手。
从最初的一点点想法,到最后一个规模庞大的电路,终于电路大功告成了。
且每次改动电路图后都要重新编译,完成新的波形仿真,一个小小的错误就会导致整个电路无法正常运行。
设计过程中出现的种种问题让我明白,出现任何一点小的误差就会导致整个文件系统的编译出现错误提示。
最后下载输出,经过反复调试,但总是发出刺耳的声音,后多次调解CP1的频率才得到音符,尤其是有同学唱出自己调试出的
音符对应的歌词时更是非常喜悦。
这两周的实习,虽然做的只是三十个题目中的一个,但也知道了设计电路的大体过程,整个实习很值得回味。
这次实习,我遇到了不少的麻烦,当遇到不懂的、不会的问题,要自己看书温故知新,要不耻下问请教同学,要请教老师指点迷津。
通过自己的努力和老师,同学的帮助,最终都被一一解决。
但答辩时才发现自己仍有模糊的地方,以后要善于思考,发现问题,解决问题,保证能更好的做出满意的设计。
这次EDA课程设计培养了我们严谨的科学态度,对待事情的恒心和耐心,不急不躁,每个模块都需要精心设计,不能有一丝的马虎,要始终保持一颗平静的心。
也使我懂得了理论与实际相结合的重要性,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
最后,希望今后学校和学院多给我们安排这样非常有意义的课程设计。
感谢在课设中老师们付出的辛勤劳动和对我们的耐心帮助,感谢同学对我的鼓励和建议,让我顺利完成了EDA课设!。