基于FPGA的音乐播放控制电路设计

合集下载

基于FPGA的音乐播放控制电路设计

基于FPGA的音乐播放控制电路设计

音乐播放器控制电路课程设计报告班级:学号:姓名:指导老师:一、设计目的将《断桥残雪》简谱按照要求进行编码并将其写入只读存储器ROM之中,然后通过设计的电路读出ROM的内容,进行解码后驱动蜂鸣器播放。

二、开发环境采用Altera Quartus II 9.0软件设计环境。

它提供了全面的逻辑设计能力,包括电路图、文本和波形的设计输入以及编译、逻辑综合、仿真和定时分析以及器件编程等诸多功能。

特别是在原理图输入等方面,Altera Quartus II 9.0被公认为是最易使用、人机界面最友好开发软件。

并采用FPGALP-2900开发装置硬件实现,给人们带来极大的方便。

三、设计过程概述1、数字简谱简介数字简谱用不同的点和线段配合8个阿拉伯数字0~7构成音符,记录表示千变万化的音乐曲子及其基本音乐元素。

乐音是由三个要素决定的:频率决定了乐音的音高,频谱决定过了乐音的音色,音形标志着演奏方式。

乐曲的基本元素是:音的高低(音高)、音的长短(时值)、音的力度和音质(音色)。

音的高低和长短不同决定了乐曲的不同,因此构成了音乐的最重要的基础元素。

音乐用1、2、3、4、5、6、7分别表示同一调式7个不同的音高:多、来、米、法、索、拉、西。

这七个数字上、下标注的点表示音调升高8度音程或降低8度音程。

数字0为休止符,表示停止发音。

数字下或数字上的线段表示因的持续时间的长短。

没有线段的数字为4分音符,器时值为音长的基本度量单元,成为一拍。

数字下面标注的线段表示时间减短,没增加一条线段,表示时值减少一半,音符相应的成为8分音、16分音……数字后面的线段称为延长线,表示前一个音符的市场的增加,每条延长线的时值增量为1拍。

音长是一个相对的时间概念,一拍的时间长度没有限制,可以是1s,也可以是2s或是0.5s,。

若将4分音符的时长定为1s,其他音符的时值长度以其为基本参照度量,半拍为0.5s,2拍为2s,以此类推。

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

基于FPGA音乐播放器设计

基于FPGA音乐播放器设计
应的音符放在一个连续 的地址 , 具体电路如图 1所示。
参 考 文献 : 【 1 1 张庆 玲 , 杨 勇. F P G A 原 理 与 实践 [ M】 . 北京: 北 京航 空航 天 大 学 出版 社 . 2 0 0 6
[ 2 ] 刘睿 强. F P G A应 用技 术及 实践[ M ] . 北京: 北 京理 工大 学
出版 社 . 2 01 1
[ 3 】 袁 海林. 基于F P G A的具有存储功 能的 电子琴的设计 I J 1 .
中国科技信 g - 。 2 0 0 7 , ( 1 9 ) [ 4 ] 郑亚民. 可编程逻辑器件开发软件 Q u a a u s l I [ M] . 北京: 国
防 工 业 出版 社 . 2 0 0 6
机 械 与 自动 化
2 0 1 3 . N 0. 1 1 J o u r n a l o f He n a n S c i e n c e a n d ’ 。 。 。 。 。 T 。 。 。 e 。 ’ ’ c 。 。 。 h 。 。 。 。 ’ n ‘ 。 o 。 。 。 。 l 。 。 o 。 。 — g y —
计数 器是数字 系统 中应 用较 多的基本逻 辑器件 l 2 1 3 】 。 它的
综合分析 。其仿真结果如 图 2所示。
基本功能是实现计数操作 , 它也可用与分频 、 定 时、 产生节拍脉 冲和脉 冲序列等 。分频器是将不 同频段 的声音信号 区分开来 ,
分别给于放大 , 送到相应频段的扬声器 中再进行重放。
图 l 数控 果
作者简介 :
付莉 ( 1 9 8 5 年一 ) , 女, 汉族 , 毕业 于桂林 电子科技大学 , 助
教, 研究方向 : F P G A 及嵌 入 式 系统 设 计 。

基于FPGA的音乐播放器设计说明

基于FPGA的音乐播放器设计说明
2.1.1
频率的高低决定了音调的高低。计算出简谱中从低音1到高音1之间每个音名对应的频率,所有不同频率的信号都是从同一个基准频率分频得到的。由于音阶频率多为非整数,而分频系数又不能为小数,因此必须将计算得到的分频数四舍五入取整。若基准频率过低,则由于分频比太小,四舍五入取整后的误差较大;若基准频率过高,虽然误差较小,但分频数将变大。实际的设计应综合考虑这两方面的因素,在尽量减小频率误差的前提下取合适的基准频率。因此,要想FPGA发出不同音符的音调,实际上只要控制它输出相应音符的频率即可。综合考虑各因素,本文中选取12MHZ作为CLK的分频计数器的输入分频信号。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调。
④自顶向下的设计方法:传统的设计方法是,自底向上的设计或平坦式设计。自底向上的设计方法是先从底层模块设计开始,逐渐由各个模块形成功能复杂的电路。这种设计方法优点是很明显的,因为它是一种层次设计电路,一般电路的子模块都是按照结构或功能划分,因此这种电路层次清楚,结构明确,便于多人合作开发,同时设计文件易于存档,易于交流。自底向上设计方法的缺点也很明显,往往由于整体设计思路不对而使的花费几个月的低层设计付之东流。平坦式设计是整个电路只含有一个模块,电路的设计是平铺直叙的,没有结构和功能上的划分,因此不是层次电路的设计方式。优点是小型电路设计时可以节省时间和精力,但随着电路复杂程度的增加,这种设计方式的缺点变的异常突出。自顶向下的设计方法是将要设计的电路进行最顶层的描述(顶层建模),然后利用EDA软件进行顶层仿真,如果顶层设计的仿真结果满足要求,则可以继续将顶层划分的模块进行低一级的划分并仿真,这样一级一级设计最终将完成整个电路的设计。自顶向下的设计方法与前面两种方法相比优点是很明显的。

基于FPGA音乐硬件演奏电路设计.

基于FPGA音乐硬件演奏电路设计.

设计报告课程名称任课教师设计题目乐曲硬件演奏电路班级姓名学号日期一. 题目分析1、利用可编程逻辑器件FPGA,设计乐曲硬件演奏电路,其结构框图如下图所示:2、功能要求利用数控分频器设计硬件乐曲电路,由键盘输入控制音响,同时可自动演奏乐曲。

演奏时可选择键盘输入乐曲或者已存入的乐曲,并配以一个扬声器,该设计产生的音乐选自“梁祝” 片段。

二、方案选择与利用微处理器来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻辑要复杂得多,如果不借助功能强大的EDA 工具和硬件描述语言,仅凭传统的数字逻辑技术,即使最简单的演奏电路也难以实现。

三、细化框图(1)音乐硬件演奏电路基本原理硬件电路的发声原理,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制FPGA芯片某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。

乐曲中的每一音符对应着一个确定的频率,要想FPGA发出不同音符的音调,实际上只要控制它输出相应音符的频率即可。

乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频,就可以在扬声器上连续地发出各个音符的音调。

而要准确地演奏出一首乐曲,仅仅让扬声器能够发生是不够的,还必须准确地控制乐曲的节奏,即乐曲中每个音符的发生频率及其持续时间是乐曲能够连续演奏的两个关键因素。

(2)音符频率的获得多个不同频率的信号可通过对某个基准频率进行分频器获得。

由于各个音符的频率多为非整数,而分频系数又不能为小数,故必须将计算机得到的分频系数四舍五入取整。

若基准频率过低,则分频系数过小,四舍五入取整后的误差较大。

若基准频率过高,虽然可以减少频率的相对误差,但分频结构将变大。

实际上应该综合考虑这两个方面的因素,在尽量减少误差的前提下,选取合适的基准频率。

本设计中选取750KHz的基准频率。

由于现有的高频时钟脉冲信号的频率为12MH,z 故需先对其进行16 分频,才能获得750KHz的基准频率。

对基准频率分频后的输出信号是一些脉宽极窄的尖脉冲信号(占空比=1/分频系数)。

基于FPGA的音乐播放器的设计-毕业设计论文

基于FPGA的音乐播放器的设计-毕业设计论文
2 编写设计报告,要求包括方案选择,程序清单,调试过程,测试结果及心得.
第三章
3.1
为了便于理解,首先介绍一下硬件电路的发声原理.我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制 某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音.而乐曲中的每一音符对应着一个确定的频率,因此,要想 发出不用音符的音调,实际上只要控制它输出相应音符的频率即可.乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调.而要准确地演奏出一首乐曲,仅仅让扬声器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间.由此可见,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个关键因素.
课程设计
课程名称:可编程数字片上系统实训
设计题目:基于FPGA的音乐播放器设计
院系:电气信息学院
指导教师:谷雷
专业:通信工程
学号:122700109
姓名:尚斌成
长春建筑学院
2015年12月31日
摘 要
在 开发环境下,采用 硬件描述语言设计了一个可以在 芯片上实现的音乐播放器.通过将音乐播放器电路设计进行模块化分解,层次化设计,分成几个单独的结构体,每个结构体实现部分功能,经顶层文件将各单独结构体进行综合,最后将设计代码结合 模块制作的 文件下载到 实验箱进行功能验证,实现乐曲播放.由于音乐播放器的通用性及 语言的可移植性, 因此本音乐播放器可直接应用于各种不同系列的 芯片的设计中.
而简易电子琴,工作原理与乐曲演奏一样,只是将固定预置乐曲变成了手动按键输入,节拍时间取决于按键的停留时间,如果合适,同样能播放出完整的歌曲来.
3.1.1
频率的高低决定了音调的高低.音乐的十二平均率规定:每两个八度音(如简谱中的中音1和高音1)之间的频率相差一倍.在两个八度音之间又分为十二个半音.另外,音名A(简谱中的低音6)的频率为440Hz,音名B到C之间、E到F之间为半音,其余为全音.由此可以计算出简谱中从低音1到高音1之间每个音名对应的频率,所有不同频率的信号都是从同一个基准频率分频得到的.由于音阶频率多为非整数,而分频系数又不能为小数,因此必须将计算得到的分频数四舍五入取整.若基准频率过低,则由于分频比太小,四舍五入取整后的误差较大,若基准频率过高,虽然误差较小,但分频数将变大.实际的设计应综合考虑这两方面的因素,在尽量减小频率误差的前提下取合适的基准频率.因此,要想 发出不同音符的音调,实际上只要控制它输出相应音符的频率即可.综合考虑各因素,本文中选取12MHZ作为CLK的分频计数器的输入分频信号.乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调.

基于FPGA的音乐播放器

基于FPGA的音乐播放器

基于FPGA的音乐播放器姓名:陆波学号:09090323指导老师:周爱军•音乐硬件演奏电路基本原理•硬件电路的发声原理,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制FPGA芯片某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。

乐曲中的每一音符对应着一个确定的频率,要想FPGA发出不同音符的音调,实际上只要控制它输出相应音符的频率即可。

乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频,就可以在扬声器上连续地发出各个音符的音调。

而要准确地演奏出一首乐曲,仅仅让扬声器能够发生是不够的,还必须准确地控制乐曲的节奏,即乐曲中每个音符的发生频率及其持续时间是乐曲能够连续演奏的两个关键因素。

•音调的控制:频率的高低决定了音调的高低。

通过查阅资料,得到下面的音符名与频率的关系表:音符名频率/hz音符名频率/hz音符名频率/hz 低音1262中音1523高音11046低音2294中音2587高音21175低音3330中音3659高音31318低音4349中音4698高音41397低音5392中音5784高音51568低音6440中音6880高音61760低音7494中音7988高音71976•分频比预置数的计算:•分频比就是从6Mhz基准频率通过二分频得到的3Mhz频率基础上计算得到的。

对于乐曲中的休止符,只需将其分频系数设为0,将分频预置数设为16383即可。

例如:低音3的频率为330hz,分频比为3M/330hz=3000000/330=9091,则其分频预置数为:16383-9091=7292。

其他的音符对应的分频比和分频比预置数均按此法计算可得到。

依次计算出低、中、高3X7=21个音的预置数。

•各音阶对应的预置数如右表:音符名预置数音符名预置数音符名预置数低音14933中音110647高音113515低音26179中音211272高音213830低音37292中音311831高音314107低音47787中音412085高音414236低音58730中音512556高音514470低音69565中音612974高音614678低音710310中音713347高音714858•音长的控制:•音符的持续时间必须根据乐曲的速度及每个音符的节拍数来确定。

基于fpga音乐硬件演奏电路设计

基于fpga音乐硬件演奏电路设计

目录第1章.系统设计总述 (1)1.1设计要求 (1)1.2系统组成 (1)1.2.1音乐硬件演奏电路基本原理 (1)1.2.2音符频率的获得 (1)1.2.3各模块工作原理 (1)第2章.总体程序设计 (3)2.1总体原理图 (3)2.2顶层电路VHDL程序设计 (3)2.3总体仿真 (4)第3章.单元模块程序设计 (4)3.1音乐ROM文件的定制 (5)3.2音乐节拍和音调发生器模块 (7)3.2.1音乐节拍和音调发生器模块 (7)3.2.2音乐节拍和音调发生器模块VHDL程序设计 (7)3.2.3波形仿真 (8)3.3音乐谱对应分频预置数查表电路模块 (8)3.3.1音乐谱分频预置数模块 (8)3.3.2音乐谱对应分频预置数查表电路VHDL程序设计 (8)3.3.3波形仿真 (10)3.4音乐符数控11分频电路模块 (10)3.4.1音乐符数控11分频电路模块 (10)3.4.2音乐符数控11分频模块电路VHDL程序设计 (11)3.4.3图形仿真 (12)第4章.下载验证及其引脚绑定 (13)4.1模式选择 (13)4.2具体引脚绑定图 (13)第5章心得体会 (14)参考文献 (15)第1章.系统设计总述1.1设计要求(1)顺序播放乐曲功能(2)具有通过按键切换及其复位乐曲的功能1.2系统组成1.2.1音乐硬件演奏电路基本原理硬件电路的发声原理,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制FPGA 芯片某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。

乐曲中的每一音符对应着一个确定的频率,要想FPGA发出不同音符的音调,实际上只要控制它输出相应音符的频率即可。

模块U1类似于弹琴人的手指;U2类似于琴键;U3类似于琴弦或音调发生器。

1.2.2音符频率的获得多个不同频率的信号可通过对某个基准频率进行分频器获得。

对照各个音频的频率计算该音频的分频系数。

音频的频率可以四舍五入计算。

基于FPGA的音乐播放器的设计

基于FPGA的音乐播放器的设计

目录引言 (1)1 VHDL及QUARTUSII软件简介 (2)1.1EDA简介 (2)1.2硬件描述语言VHDL (2)1.3软件介绍 (3)2 简易音乐演奏器设计 (5)2.1硬件电路设计 (5)2.2软件代码设计 (6)2.2.1音符储存单元 (6)2.2.2选择播放模式及手动模块单元 (6)2.2.3分频模块单元 (8)2.2.4预置数模块单元 (9)2.2.5音频发声模块单元 (10)3引脚锁定及下载 (10)3.1引脚锁定 (10)3.2结果分析 (11)4设计总结 (11)参考文献 (116)附录 (16)引言VHDL语言是一种用于电路设计的高级语言。

它在80年代的后期出现。

最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。

随着EDA技术的高速发展,电子系统的设计技术和工具发生了深刻的变化,大规模可编程逻辑器件CPLD/FPGA的出现,给设计人员带来了诸多方便。

利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。

突出了其作为硬件描述语言的良好的可读性、可移植性和易读性等优点。

本文基于FPGA开发系统,在QuartusII 7.2软件平台上,完成了简易乐曲演奏器设计和与仿真,并下载到试验箱进行硬件实现。

首先,本文介绍了QuartusII 7.2软件的基本使用方法和VHDL硬件描述语言的特点,采用VHDL 硬件描述语言描述简易信号发生器,完成对电路的功能仿真。

在设计过程中,重点探讨了简易乐曲演奏设计思路和功能模块划分。

然后,初步探讨了电路逻辑综合的原理,该软件对简易乐曲演奏器进行了逻辑综合。

最后,使用EDA实验开发系统进行电路的下载和验证。

验证结果表明设计的简易乐曲演奏器完成了预期的功能。

本设计是采用VHDL来实现的简易乐曲演奏器。

它能实现自动播放和手动播放。

1 VHDL及QuartusII软件简介1.1 EDA简介EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

音乐播放器控制电路课程设计报告班级:学号:姓名:指导老师:一、设计目的将《断桥残雪》简谱按照要求进行编码并将其写入只读存储器ROM之中,然后通过设计的电路读出ROM的内容,进行解码后驱动蜂鸣器播放。

二、开发环境采用Altera Quartus II 9.0软件设计环境。

它提供了全面的逻辑设计能力,包括电路图、文本和波形的设计输入以及编译、逻辑综合、仿真和定时分析以及器件编程等诸多功能。

特别是在原理图输入等方面,Altera Quartus II 9.0被公认为是最易使用、人机界面最友好开发软件。

并采用FPGALP-2900开发装置硬件实现,给人们带来极大的方便。

三、设计过程概述1、数字简谱简介数字简谱用不同的点和线段配合8个阿拉伯数字0~7构成音符,记录表示千变万化的音乐曲子及其基本音乐元素。

乐音是由三个要素决定的:频率决定了乐音的音高,频谱决定过了乐音的音色,音形标志着演奏方式。

乐曲的基本元素是:音的高低(音高)、音的长短(时值)、音的力度和音质(音色)。

音的高低和长短不同决定了乐曲的不同,因此构成了音乐的最重要的基础元素。

音乐用1、2、3、4、5、6、7分别表示同一调式7个不同的音高:多、来、米、法、索、拉、西。

这七个数字上、下标注的点表示音调升高8度音程或降低8度音程。

数字0为休止符,表示停止发音。

数字下或数字上的线段表示因的持续时间的长短。

没有线段的数字为4分音符,器时值为音长的基本度量单元,成为一拍。

数字下面标注的线段表示时间减短,没增加一条线段,表示时值减少一半,音符相应的成为8分音、16分音……数字后面的线段称为延长线,表示前一个音符的市场的增加,每条延长线的时值增量为1拍。

音长是一个相对的时间概念,一拍的时间长度没有限制,可以是1s,也可以是2s或是0.5s,。

若将4分音符的时长定为1s,其他音符的时值长度以其为基本参照度量,半拍为0.5s,2拍为2s,以此类推。

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

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

3个八度音程的音高与频率关系各音高的频率关系:每两个相差8度的音高频率相差一倍.若计数器输出频率的为高音1,将分频器输入的计数脉冲频率降低一倍,则音调降低8度,发出中音1。

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

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

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

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

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

4、音长控制某个音符音长由该音高频率信号的持续时间长短决定可采用一个计数器对音长进行定时,计数脉冲周期是乐谱时值,决定了该单元音符的持续时间。

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

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

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

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

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

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

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

⑥对于如何实现不同的音高,选择两个独立的二分频元件对10M的输入信号实现两次二分频,利用一片74153来实现数据选择,根据“曲谱表”中的音程码控制数据选择器选出需要的频率实现不同的音高。

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

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

6、设计方案原理框图四、总体设计电路图.0]五、单元电路设计与分析各单元电路的选择与工作原理分析1、 二分频功能作用:作为独立的元件使用在总体电路中。

原理分析:使用一个D 触发器和一个非门实现对输入信号的二分频。

独立的二分频元件:2、 M 分频和时值计数单元功能作用: 10M 的晶振中输出的脉冲波cp ,通过“M 分频”,作为时钟脉冲输入“时值计数器”,计数器便按照此时钟进行计时,其输出端连接“曲谱储存表”。

原理分析:预设每秒钟播放5个单元的音符,对来自晶振的CP脉冲进行2000000分频(即M分频器lpm_counter2的模取为2000000),其cout端接时值计数器(lpm_counter1)。

时值计数器(lpm_counter1)的q输出做为地址对ROM 进行访问,由于有125个单元的音符,所以选择8位地址线,在图形上表现出就是q[7..0].3、曲谱存储表功能作用:“时值计数器”(lpm_counter2)的输出端连接“曲谱储存表”(lpm_rom0),这就可以使其按照地址访问ROM中的数据,从曲谱输出表ROM的输出端输出数据。

“曲谱储存表”(lpm_rom0)中的音名码作为地址被送入“分频系数表”(lpm_rom1).address[7..0]q[5..0]lpm_rom0inst2d[5..0]f[7..0]原理分析:按照编码规则,读出的数据一共分为6位,如下表所示5 4 3 2 1 0间断音控制音程码(控制音高)音名码(控制音名)最高位控制间断音控制。

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

2、1、0这三个是音名码,用于控制音名,选择播放do re mi fa so la si中的哪个音。

曲谱表用一个ROM储存,当address输入相应的地址之后,q段就输出其中的数据。

《断桥残雪》简谱编码4、分频系数表功能作用:“曲谱储存表”(lpm_rom0)中的音名码作为地址被送入“分频系数表”(lpm_rom1),这样相应的分频系数就被读了出来,然后被送进N 分频单元中计数器(lpm_counter0)的置数端data[12..0]。

address[2..0]q[12..0]lpm_rom1inst1d[2..0]x[12..0]原理分析:分频系数表用一个如下图所示的ROM 实现,其中的地址(Addr)就代表这个do re mi fa so la si 和休止符这个8个音符的简谱表示。

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

5、N 分频单元功能作用:从“分频系数表”(lpm_rom1)中读出来的分频系数被送进N 分频单元中的计数器(lpm_counter0)的置数端data[12..0],原始的信号经过N 分频便得到需要的信号。

down countersloaddata[12..0]clock cnt_enq[12..0]coutlpm_counter0inst8x[12..0]N 分频 输出时钟输入计数使能原理分析:为了方便计算,采用了减计器,cout 端为溢出端,当计数其计到0以后cout 出高电平,使得同步置数sload 段有效,分频系数被从date[12..0]段置入计数器。

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

原理分析:由于需要的间断音的长度是普通播放长度的十分之一,所以这里选择200000分频(计数器的模为200000)。

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

间断音独立元件7、音高控制电路功能作用:10M 的晶振中输出的脉冲波cp 连续被两次二分频,最后连同自身被送入一个数据选择权器(即频率选择器)的数据输入端口,其控制段接“曲谱储存表”(lpm_rom0)输出的音程码,根据音程码的要求把不同频率的信号送入到N 分频单元中,便可以实现不同的音高。

输出信号被送进N 分频单元中的计数器(lpm_counter0)的时钟输入信号clock 。

时钟输入音高控制模块原理分析:此处选择了之前已经做好的两个独立的二分频元件实现两次二分频,和一片74153来实现数据选择,根据“曲谱表”中的音程码控制数据选择器选出需要的频率实现不同的音高。

8、放音单元功能作用:在N 分频单元的输出端用一个2分频器,得到占空比为百分之五十的信号,最后驱动蜂鸣器实现播放功能。

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

六、部分电路调试由于电路的结构比较复杂,采用分段调试的方法1、二分频电路图:VCCa0INPUT q0OUTPUT CLRN DPRNQDFFinstVCCNOTinst3调试结果:2、音高控制电路电路图:AB C3C2C1C0GN Y74153Minst4a0q02fen inst a0q02fen inst1ad[4]ad[3]时钟输入音高控制模块VCC bINPUT VCCaINPUT f enpinOUTPUTVCCcpINPUT调试结果:3、数字单稳电路图:CLRN DPRNQ DFF inst16CLRN DPRNQDFFinst17NAND2inst20NOTinst21VCCVCCcpINPUT VCCenINPUT d[5]outOUTPUT调试结果:七、拓展电路设计1、播放显示模块原理分析:使用一个8421BCD码的译码器将音符的显示在数码管上,显示出实时播放的音符。

2、变速控制模块①速度控制电路及生成的独立元件原理分析:将二分频独立元件串联使用,使得播放速度能够以快2倍速的方式逐渐变化,通一个数据选择器74151选择输出不同频率,从而以实现不同速度的播放。

②速度选择模块原理分析:利用一个加减计数器74192和之前生成的速度控制元件组合,当DN有效,UP无效时(DN=1,UP=0),为减计数,此时实现减速播放功能;当DN无效,UP有效时(DN=0,UP=1),为加计数,此时实现加速播放功能;当DN与UP均无效时(DN=0,UP=0),则输出预置数(0011),即实现常速播放功能。

相关文档
最新文档