基于FPGA音乐硬件演奏电路设计_第1页
基于FPGA音乐硬件演奏电路设计_第2页
基于FPGA音乐硬件演奏电路设计_第3页
基于FPGA音乐硬件演奏电路设计_第4页
基于FPGA音乐硬件演奏电路设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

术实用教程课程设计 题目:基于 目 录 摘要 . 系统设计总述 计要求 统组 成 . 总体程序设计 层模块设计流程图 层电路 序设计 . 单元模块程序设计 1 分频电路模块 曲演奏 音符数据文件 件 . 乐节拍和音调发生器模块的仿 频预置数查表模块的仿真 乐符数控分频模块的仿真 音乐硬件演奏电路的通用性 5. 心得体会 . 参考文献 要 根据国家教委与专业教学委员会对教育机构的要求,为培养适应我国 21世纪国民经济发展需要的电子设置人才;同时基于国家教委面向 21世纪电工电子课程体系改革和电工电子工科教学基地建设两项教学改革研究成果。要求高等专科学校学生能够自己动手完成简单数字器件的设计。这不但反应了我国当前在电子电路的实验教学体系、内容和方法上的改革思路和教学水平的提高,更重要的是在加强以传统电子设计方法为基础的工程设计训练的同时,使学生能够尽快掌握现代电子设计自动化技术的新方法、新工具和新手段系统的、科学的培养了学生的实际动手能力、理论联系实际的能力、工程设计能力 , 创新能力,提高了学生对基础实验的兴趣。 本 次设计 在 发平台 利用 用数控分频的原理设计音乐硬件演奏电路,并定制 “梁祝” 和“月亮代表我的心”两首 乐曲为例,将音乐数据存储到 达到了以纯硬件的手段来实现乐曲的演奏效果。只要修改 其换成其他乐曲的音乐数据,再重新定制 接到程序中就可以实现其它乐曲的演奏。 本设计采用的是杭州康芯电子有限公司生产的 验系统, 标芯片型号 为 司的 的 片配置成功后即可进行硬件测试:选择实验电路结构图 1,使 接 (接受6钟频率 ), 接 (接受 4钟频率 ),发音输出接乐曲一遍演奏完成后,乐曲发生器能自动从头开始循环演奏 ,按下 下 时 从头开始 播放歌曲。 关键词 : 音乐硬件演奏电路 , 言设计 , 1. 系统设计总述 计要求 ( 1) 顺序播放乐曲 功能 ( 2) 具有通过按键 任意 切换乐曲 功能 统组成 ( 1) 音乐 硬件 演奏电路 基本 原理 硬件电路 的发声原理 , 声音的频谱范围约在几十到几千赫兹,若能利用程序来控制个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。乐曲中的每一音符对应着一个确定的频率,要想 际上只要控制它输出相应音符的频率即可。乐曲都是由一连串的音符组成, 因此按照乐曲的乐谱依次输出这些音符所对应的频,就可以在扬声器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让扬声器能够发生是不够的,还必须准确地控制乐曲的节奏,即乐曲中每个音符的发生频率及其持续时间是乐曲能够连续演奏的两个关键因素。 ( 2) 音符频率的获得 多个不同频率的信号可通过对某个基准频率进行分频器获得。由于各个音符的频率多为非整数,而分频系数又不能为小数,故必须将计算机得到的分频系数四舍五入取整。若基准频率过低,则分频系数过小,四舍五入取整后的误差较大。若基准频率过高,虽然可以减少频率 的相对误差,但分频结构将变大。实际上应该综合考虑这两个方面的因素,在尽量减少误差的前提下,选取合适的基准频率。本 设计中选取 750于现有的高频时钟脉冲信号的频率为 12需先对其进行 16分频,才能获得 750基准频率分频后的输出信号是一些脉宽极窄的尖脉冲信号(占空比 =1/分频系数)。为提高输出信号的驱动能力,以使扬声器有足够的功率发音,需要再通过一个分频器将原来的分频器的输出脉冲均衡为对称方波(占空比 =1/2),但这时的频率将是原来的 1/2。 下 表中各音符的分频系数就 是从 750基准频率二分频得到的 375由于最大分频系数是 1274,故分频器采用 11 位二进制计数器能满足要求,乐曲中的休止符,只要将分频系数设为 0,即初始值 =211047,此时扬声器不会发声。 音符名 频 率 (分频 系数 计数初值 音符名 频 率 (分频 系数 计数 初值 休止符 375000 0 2047 中音 4 68 1579 低音 1 274 773 中音 5 25 1622 低音 2 135 912 中音 6 79 1668 低音 3 011 1036 中音 7 30 1717 低音 4 70 1077 高音 1 19 1728 低音 5 50 1197 高音 2 77 1770 低音 6 57 1290 高音 3 48 1799 R S kT o n e I n d e x 3 . . 0 I n d e x 3 . . 0 H I G D E 3 . . 0 T o n e 1 0 . . 0 cl kT o n e 1 0 . . 0 S p k D 3 . . 0 U M H TN o t e T a b s : u 1C L ZT o n e T a b a : u 2Sp e a ke u 3H I G H 1各个音符的频率及其对应的分频系数(基准频率 375 ( 3) 乐曲节奏的控制 本 设计 中的梁祝 和月亮代表我的心的 乐曲,最小的节拍为 1/4拍,若将 1拍的时间定为 1秒,则只需要提供一个 4( 对于其它占用时间 较长的节拍(必为 1/4拍的整数倍)则只需要将该音符连续输出相应的次数即可。 计数时钟信号作为输出音符快慢的控制信号,时钟快时输出节拍速度就快,演奏的速度也就快,时钟慢时输出节拍的速度就慢,演奏的速度自然降低。 ( 4) 乐谱发生器 本文将乐谱中的音符数据存储在 ,如“梁祝”乐曲中的第一个音符为“ 3”,此音在逻辑中停留了 4个时钟节拍,即 1秒的时间,相应地,音符“ 3”就要在 一个 4应地就从 ( 5) 音乐 硬件 演奏 电路 总体设计 流程 当一个 4谱发生器模块输出一个音符数据给分频系数模块,分频系数模块输出此音符相应的分频系数,将分频系数送给数控分频器模块,当 12控分频器就根据分频系数输出相应的频率 (即此音符所对应的发生频率 )给扬声器,扬声器就可发出对应音符的声音来 经过数控分频模块 ,最后扬声器一个接一个的发出音符数据所对应的声音来 。 曲子也就流畅的播放出来了 , 当乐曲一遍演奏完成后,乐曲发生 器能自动从头开始循环演奏 ,按下 时播放第二首歌,按下 时 从头开始 播放歌曲。 音乐硬件演奏电路主要是用 利用 件工具来编译、测试和仿真 , 音乐 硬件 演奏电路 设计总体设计方框图如 下 图所示 2. 总体 程序设计 低音 7 75 1372 高音 4 33 1814 中音 1 37 1410 高音 5 08 1839 中音 2 87 1480 高音 6 85 1862 中音 3 05 1542 高音 7 65 1882 R S kT o n e I n d e x 3 . . 0 I n d e x 3 . . 0 H I G D E 3 . . 0 T o n e 1 0 . . 0 cl kT o n e 1 0 . . 0 S p k D 3 . . 0 U M H TN o t e T a b s : u 1C L ZT o n e T a b a : u 2Sp e a ke u 3H I G H 层模块设计 流程图 层电路 序 设计 件演奏电路顶层设计 S 于控制音长(节拍)的时钟频率; 3 );谱码输出显示 度指示 ;F S 1 例换化 3 ) ); 2 例换化 3 ) ; 3 ) ; 10 ) ); N ot eT tc TT 3. . 0cl o d d r e 7 . . 0 q 3 . . 0 A 7 . . 0 B 7 . . 0 O U T 7 . . 0 A D D E P R T A T A T 0M U X 2 1 T A T A T 0M U X 2 1m u s i c: u 1A d d 08 h 0 1 - TT o n e I n d e x 3 . . 0 co m b 7 . . 0 co m b 1 5 . . 8 C o u n t e r 7 . . 0 3 例换化 10 ); ; 10 ); 3 ); AP( 3. 单元模块程序设 计 根据顶层原理图,共分为 址发生器模块、分频预置数模块、十六进制模块、数控分频模块这五个模块。 块存放乐曲中的音符数据,地址发生器模块作为 块中所定制的音符数据 频预置数模块提供分频预置数即给数控分频模块提供计数初值,十六进制模块对 126分频,得到 750数控分频模块提供时钟脉冲。数控分频模块根据分频预置数输出各个音符所对应的频率。 乐节拍和音调发生器模块 (1) 音乐节拍和音调发生 器模块 路图 (2) 音乐节拍和音调发生器模块 序 设计 S 3 ) ); F S 7 ); q : 3 ); 7 ); F (ND 1) 56 or 0) T on eT ab s tI nd 3. . 0 C O D E 3. . 0H I G HT on e 10 . . 0 q= (2) 地址发生器模块 地址发生器模块设置了一 个 8 位二进制计数器 (计数最大值为 256),作为音符数据 来一个时钟脉冲信号 ( 8位二进制计数器就计数一次, 件中的地址也就随着递增,音符数据 的音符也就一个接一个连续的取出来了。 在 地址发生器的 , 这个计数器的计数频率选为 4每一计数值的停留时间为 ,恰为当全音符设为 1 秒,四四拍的 4分音符持续时间。例如,地址发生器在以下的 辑描述中,“梁祝”乐曲的第一个音符为“ 3”,此音在逻辑中停留了 4个时钟节拍,即 1秒时间。那么相应随着程序 4中 的计数器按 4随地址递增时,将从音符数据 将连续取出 4 个音符“ 3”通过 .口输向分频预置数模块。这样梁祝乐曲中的音符就一个接一个的通过 .口输向分频预置数模块。 乐谱对应分频预制数查表电路模块 (1) 音乐谱分频预置数模块 (2) 音乐谱对应分频预制数查表电路 序 设计 音乐谱分频预置数模块是乐曲简谱码对应的分频预置数查表电路。它提供了每个音符所对应的分频预置数,即给数控 分频模块提供计数初值,这里以“梁祝”乐曲为例,列出了在这个乐曲中所用到的 13个音符的分频预置数。 在这个模块的 辑描述中设置了 四四拍 乐曲中全部音符所对应的分频预置数,共 13个,每一音符的停留时间由音乐节拍和地址发生器模块的时钟( 输入频率决定,在此为 4 13个值的输出由程序 3的 4位输入值 .定。输向程序 4中 .值又由地址发生器模块的输出 .输出值和持续时间决定。 模块的功能是输出各个音符所对应的分频预置数, 即 当 0000”, 047,即休止符的分频预置数;当 “ 0101”时, 出为 1197即低音 5的分频预置数;当 1111”时, 728 即高音 1的分频预置数等等其它状态时, 分频预置数模块的 计程序如下: S 3 ) ;制数查表 3 ) ; 度指示 10 ) );1位 F S S 码电路,查表方式,控制音调的预置数 13组频率 0000 = 乐符数控 11分频电 路模块 (1) 音乐符数控 11 分频电路模块 (2) 音乐符数控 11分频电路模块 路图 3 . . 0 B 3 . . 0 O U T 3 . . 0 A D D E 1 0 . . 0 B 1 0 . . 0 O U T 1 0 . . 0 A D D E 1 1 . . 0 B 1 1 . . 0 O U U A 3 . . 0 B 3 . . 0 O U S S _ T H A P R P R T A T A T 0M U X 2 1 D e l a y Sp C o u n t 2 Sp re g 0cl o n e 1 0 . . 0 F u l l Sp G e n Sp C o u n t 1 1 1 0 . . 0 Eq u a l 01 h 0 - h 7 F F - - D i v i d e C L K: C o u n t 4 3 . . 0 A d d 04 h 1 - -A d d 11 1 h 0 0 1 - -C o u n t 1 1 1 0 . . 0 L e s s T h a n 04 h B - -(3) 音乐符数控 11分频 模块 电路 序 设计 音符的频率由数控分频模块获得,这是一个数控分频电路。它是由一个初值可变的加法计数器构成。该计数器的模为 2047,当计数器记满时,计数器产生一个溢出信号 溢出信号就是用作发音的频率信号。在计数器的输入端给定不同的初值,而此预置数就是表 1 中的计数初值,就可得到不同音符的发音频率信号 。它计满时所需要的计数初值可由下式来表示。 计数初值( =2047而分频系数又可有下式来求: 分频系数 =基准频率 /音符的发生频率 低音时 频系数大,溢出信号周期长,扬声器发出的声音低, 动控制分频比,实现了数控分频,发生信号的频率与音调就是利用数控分频器自动演奏音乐的原理。 时钟( 输入的是在十六进制模块里对 12信号进行 16 分频得到的750750别得出相 应音符频率的两倍值。此时从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号,为了有利于驱动扬声器,需另加一个 D 触发器以均衡其占空比,这时的频率就变为原来的 1/2,刚好就是相应音符的频率。数控分频模块中对 入信号的分频比由 11位预置数 0.定。 样,分频计数器的预置值 0. 如在分频预置数模块中若取 0.1036,将发出音符为“ 3”音的信号频率。 音符的频率由数控分频模块 S 2 10 );1位 ;F S 3 ) ; 1 择“ a ,然后按“ ,选择 后在 注意后缀 (2) 单击“ ,选择 ,地址线宽为 256,即设置此 位二进制数据共 256个。 (3) 通过 “ 钮,找到 的加载文件路径和文件名:注意 件的 (4) 打开已定制的 件 ,将它设置为工程,并确定目标器件,进行测试 仿真波形 , 按照定制步骤对音符数据文件进行 定制好的 件 序如下 : S : 7 ); : q : 3 ); S : 3 ); : : : : : 7 ); : q : 3 ); q 4, 8, G:/ q = 4. 统 仿真与调试 乐节拍和音调发生器模块的仿真 (1) 波形仿真 将所编写的音乐节拍和音调模块 程序设为工程,选用 的 仿真结果如下图: 频预置数 查表 模块的仿真 (1) 波形仿真 将所编写的分频预置数查表模块 程序设为工程,选用 的 仿真结果如下图: (2) 模块功能分析与调试 频预置数 模块的功能是输出各个音符所对应的分频预置数,由上面的仿真波形图可看到 若 当 0000”, 047,即休止符的分频预置数;当 0101”时, 197即低音 5的分频预置数;当 1111”时, 出为 1728即高音 1 的分频预置数等等其它状态时, 仿真波形图证明了程序实现了模块的功能。 乐符数控分频模块的仿真 (1) 波形仿真 将所编写的 音乐符数控分频模块 程序设为工程,选用 的 仿真结果如下图: (2) 模块功能分析与调试 乐符数控分频 此模块的功能是根据初始值 输入时钟信号 到想要的音符的发声频率 其时钟( 输入的是在十六进制模块里对 12信号进行 16分频得到的 750750信号根据分频预置数模块中所提供的计数初值,分别得出相应音符频率的两倍值。此时从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号,为了有利于驱动扬声器,需另加一个 时的频率就变为原来的 1/2,刚好就是相应音符的频率。 在 里是 12信号,通过分频后由 里是对 126分频得到 750信号。 750数控分频模块中对 1位预置数 0.定。 样,分频计数器的预置 0. 若 在分频预置数模块中若取 0.1036,将发出音符为“ 3”音的信号频率。 在这个仿真波形图中, 值可设为 6高音 1的分频预置数 1728),50 接近高音 1的发声频率。由表中可知高音 1 的分频系数为 319,即对输入时钟 19次分频就可得高音 1的发声频率, 因此这个程序实现了模块的功能。 大 此 音乐硬件演奏电路的通用性 前面所设计的电路只能演奏“梁祝”曲子,但是在实际应用中 ,若能将电路实用于各种曲子的演奏,它的实用性和应用范围就会扩大许多。这里主要通过修改分频预置数模块的程序,使其实用于各种曲子的演奏。另外

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论