音乐播放控制电路设计.docx

上传人:b****6 文档编号:7958267 上传时间:2023-05-12 格式:DOCX 页数:12 大小:396.20KB
下载 相关 举报
音乐播放控制电路设计.docx_第1页
第1页 / 共12页
音乐播放控制电路设计.docx_第2页
第2页 / 共12页
音乐播放控制电路设计.docx_第3页
第3页 / 共12页
音乐播放控制电路设计.docx_第4页
第4页 / 共12页
音乐播放控制电路设计.docx_第5页
第5页 / 共12页
音乐播放控制电路设计.docx_第6页
第6页 / 共12页
音乐播放控制电路设计.docx_第7页
第7页 / 共12页
音乐播放控制电路设计.docx_第8页
第8页 / 共12页
音乐播放控制电路设计.docx_第9页
第9页 / 共12页
音乐播放控制电路设计.docx_第10页
第10页 / 共12页
音乐播放控制电路设计.docx_第11页
第11页 / 共12页
音乐播放控制电路设计.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

音乐播放控制电路设计.docx

《音乐播放控制电路设计.docx》由会员分享,可在线阅读,更多相关《音乐播放控制电路设计.docx(12页珍藏版)》请在冰点文库上搜索。

音乐播放控制电路设计.docx

音乐播放控制电路设计

音乐播放控制电路设计

设计指标

首先,将简谱按照我们的要求进行编码并将其写入只读存储器ROM之中,然后通过我们的电路读出ROM的内容,进行解码后驱动蜂鸣器播放。

系统概述

设计思想

20Hz至20KHz的音频脉冲信号控制蜂鸣器,可以使其根据控制信号的频率发出不同的音调。

一般的音乐我们可以用3个8度音程进行表现,不同的音名和音程具有不同的频率,由此我们可以设计出电子电路根据音符控制输入到蜂鸣器中的频率,从而发出我们想要的声音。

各音高的频率关系:

每两个相差8度的音高频率相差一倍.

若计数器输出频率的为高音1,将分频器输入的计数脉冲频率降低一倍,则音调降低8度,发出中音1。

可行性论证

1要制作播放器,首先要解决的问题就是找一个能够产生固定频率的源,在这里很容易实现,我们使用一个10M的晶振,当其接上适当的电路之后,其将发出恒定的振荡波形。

2有了10M的信号源之后,怎样才能使其变成驱动蜂鸣器发出我们需要的声音的信号,这里我们使用分频器来实现

3为了发出不同音名的音,用计数器来实现分频器要常常改变分频系数,这里我们选用一个模可变的计数器来完成这个功能。

4为了实现音乐播放的连续性,我们把乐谱存储到ROM中,播放电路的通取ROM中的内容经过特殊的解码操作便可以得到我们需要的计数器分频系数。

分频后便是我们需要的驱动蜂鸣器的信号。

音高控制

根据简谱音符的音高控制蜂鸣器频率。

数字电路中,模N的计数器溢出信号的频率是计数脉冲信号频率的1/N。

所以,可以设计一个模可控的计数器实现不同的分频比,使溢出信号频率满足不同的音高要求。

由于三个8度音程中相同音名的信号频率相差一倍。

所以在分频系数不变时,将计数脉冲频率升高(或降低)一倍可使分频器的溢出信号频率升高(或降低)一倍,音调升高(或降低)8度。

音长控制

某个音符音长由该音高频率信号的持续时间长短决定

可采用一个计数器对音长进行定时,计数脉冲周期是乐谱时值,决定了该单元音符的持续时间。

所以,可采用计数器对音长进行定时,计数脉冲周期为所选乐谱中时值最短音符的时值,其它音符的音长定时可根据其时值与最短音符音长(度量单位)的倍数关系持续不同的计数脉冲周期。

比如:

乐谱中最短音符为8分音长,则4分音符为2个时钟周期,而全音符为8个时钟周期。

各功能的组成

电路的框图如下图所示:

总体工作过程

CP脉冲既是从10M的晶振中输出的脉冲波,它被分为两路进行传播

线路方向1:

通过“M分频”,此路信号作为时钟脉冲输入“时值计数器”,计数器便按照此时钟进行计时,其输出端连接“曲谱储存表”,这就可以使其按照地址访问ROM中的数据,从曲谱输出表ROM的输出端输出数据,按照我们制定的编码规则,读出的数据一共分为6位,如下表所示

5

4

3

2

1

0

间断音控制

音程码(控制音高)

音名码(控制音名)

最高位控制间断音控制,为了区分例如:

55和5-的音节。

4、3两位是音程码,用于控制高音、中音和低音。

2、1、0这三个是音名码,用于控制音名,选择播放doremifasolasi中的哪个音。

“曲谱储存表”中的音名码作为地址被送入“分频系数表”,这样相应的分频系数就被读了出来,然后被送进计数器的置数端,原始的信号经过N分频便得到我们需要的信号,为了得到占空比为百分之五十的信号,在N分频的输出端我们采用一个2分频器,最后驱动蜂鸣器。

线路方向2:

CP连续被两个二分频,最后连同自身被送入一个数据选择权器的数据输入端口,这个数据选择器在这里我们称为“频率选择器”,其控制段接“曲谱储存表”输出的音程码,这样,根据音程码的要求把不同频率的信号送入到N分频器中,便可以实现不同的音高。

在整个电路中我们还要用到两个反馈环节。

间断音控制环节,从“曲谱储存表”中读出间断音控制位被送入间断音控制环节,这个环节的单稳会产生一个相当于十分之一“音符播放长度”的脉冲,使得计数使能无效产生间断。

复位控制环节,音程码只能用到其中的三种组合,还有一种就用作复位信号,当播放到最后一个音节的时候,复位信号有效,经过复位控制产生一个有效电平使得时值计数器清零,实现音乐的循环播放。

单元电路设计与分析

各单元电路的选择与工作原理分析

播放时钟模块

我们希望每秒钟播放5个单元的音符,对来自晶振的CP脉冲进行2000000分频,所以M分频器的模我们取为2000000,其cout端接时值计数器。

时值计数器的q输出便可以当做地址对ROM进行访问,由于我们有125个单元的音符,所以我们选择,8位地址线,在图形上表现出就是q[7..0].

曲谱存储表

曲谱表用一个ROM储存,如上图所示,上面的表格是从《我和你》(见附录1)译码得到的,当address输入相应的地址之后,q段就输出其中的数据

分频系数表

分频系数表用一个如上图所示的ROM实现,其中的地址(Addr)就代表这个doremifasolasi和休止符这个8个音符的简谱表示。

其中的数值便是分频系数。

N分频单元

为了方便计算我们采用了减计器,cout端为溢出端,当计数其计到0以后cout出高电平,使得同步置数sload段有效,分频系数被从date[12..0]段置入计数器。

放音单元

使用一个D触发器实现了二分频是的脉冲占空比50%,避免了蜂鸣器的不正常工作导致的磁化。

间断音控制模块

由于我们需要的间断音的长度是普通播放长度的十分之一,所以我们选择200000分频。

其输出端接一个数字单稳由两个D触发器构成,能产生一个脉冲宽度为输入脉冲正向的一个有效电平,使得计数使能暂时无效,实现间断。

音高控制电路

此处选择了一片7474来实现两次二分频,和一片74153来实现数据选择,根据“曲谱表”中的音程码控制数据选择器选出需要的频率实现不同的音高。

播放显示模块

为了现实出实时播放的音符,我们使用一个8421BCD码的译码器将音符的显示在数码管上。

电路解码工作状态检测

在电路制作过程中我们很容易遇到各种各样的错误,这个时候我们可以利用发光二极管来检验电平的情况,这个我们连接的是现实分频系数输出是否正常的模块。

电路的组构与调试

由于电路的结构比较复杂,我们采用分段调试的方法

初级调试的电路图如下,我们可以测试分频系数和曲谱表的输出是否正常

储存编码解码调试

电路图

调试结果

二分频模拟

电路图:

调试结果:

数字单稳

电路图:

调试结果:

遇到的主要问题与解决措施

储存编码解码调试和数字单稳的调试都正常但是二分频模拟不正常,后来发现是因为数据选择器的使能没有接地,在数字电路中空端默认是高电平,如果使能端没有接地就代表无效,所以数字选择器没有正常工作。

当这个问题解决后发现电路任然无法正常工作,而且从蜂鸣器中发出的声音只有有限的几个,发现应该是间断使能出现了问题,只有间断的地方发出了声音,而非间断的地方却没有声音,推断使能的电平被弄错了,后来查阅FPGA手册确认计数器的计数使能是高电平有效,这个时侯把,间断单元的最后一个与门换成了与非门,问题解决。

结束语

对设计题目的结论性意见及进一步改进的意向说明

整个播放电路从效果上来说是相当棒的,还有播放速度应该可以受外界直接控制,而不必要因为不同的乐谱去修改电路,这个在实际应用中很有讲究。

数个二分频串联使用,使得播放速度能够以快2倍速的方式逐渐变化

1用D触发器构成的二分频生独立原件

2分立元件构成的速度按选择电路及生成的独立元件

3速度控制模块

根据上面的设计和改进最后形成电路的总图见附录

结设计的收获与体会

收获

1.熟练的掌握了利用宏功能模块创建逻辑符号,尤其是ROM和COUNTER的创建。

2.对于音乐的编码和解码技术有了一个新的认识

3.电路设计过程中采用了分块调试的方法提高的电路设计的效率

4.使用分立元件生成独立元件的方法大大的减低的电路设计的工作量

5.电路中多处使用了计数器构成的分频器,对分频的概念的理解更加深入

体会

通过此次电路的设计,充分的体会到电路设计的过程,即“设计——仿真——实施——改进——仿真——实施”这个循环的过程,达到初步的目标并不以为的电路的设计的完成。

在设计过程中采用合适的方法会让设计事半功倍,比如在调试的过程中我采用了分段仿真的方法,其实还可以把整个分段仿真的过程变为分段实施,这样既直观又可以提高效率。

 

参考书目:

《基于FPGA的数字电路系统设计》崔葛瑾主编西安电子科技大学出版社

《数字电子技术基础》崔葛瑾编著电子工业出版社

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2