EDA课程设计硬件电子琴及自动演奏要点
eda乐曲硬件演奏电路课程设计

eda乐曲硬件演奏电路课程设计一、课程目标知识目标:1. 学生能够理解EDA乐曲硬件演奏电路的基本原理,掌握电路组成及各部分功能。
2. 学生能够描述常见电子元件在演奏电路中的作用,并运用相关知识分析电路性能。
3. 学生能够掌握编程软件及硬件设计工具,完成简单的EDA乐曲演奏电路设计。
技能目标:1. 学生能够运用所学知识,独立完成演奏电路的搭建与调试。
2. 学生能够通过编程软件,编写简单的乐曲程序,实现乐曲演奏。
3. 学生能够运用团队协作能力,共同解决演奏电路设计过程中遇到的问题。
情感态度价值观目标:1. 学生通过本课程的学习,培养对电子技术和音乐艺术的热爱,提高审美情趣。
2. 学生在学习过程中,养成积极探究、勇于创新的精神,增强实践操作能力。
3. 学生能够认识到科技与艺术的结合在生活中的应用,增强社会责任感和团队合作意识。
课程性质:本课程为实践性较强的课程,结合电子技术与音乐艺术,旨在培养学生的动手能力、创新思维和团队协作能力。
学生特点:本年级学生具备一定的电子技术基础知识,对音乐艺术有一定兴趣,好奇心强,善于动手实践。
教学要求:教师应注重理论与实践相结合,引导学生积极参与实践操作,鼓励学生创新思维,提高团队协作能力。
同时,关注学生的个体差异,因材施教,确保每位学生都能在课程中收获成长。
二、教学内容本课程教学内容主要包括以下三个方面:1. 理论知识学习:- 电路基础知识:回顾电路的基本概念、原理及电路图的识别。
- 电子元件介绍:学习常用电子元件的原理、功能及在演奏电路中的应用。
- EDA软件使用:介绍编程软件及硬件设计工具的使用方法,如Multisim、Proteus等。
2. 实践操作能力培养:- 电路搭建:学习演奏电路的搭建方法,熟悉各类电子元件的连接方式。
- 程序编写:编写简单的乐曲程序,掌握编程技巧,实现乐曲演奏。
- 调试与优化:对搭建的演奏电路进行调试,找出问题并进行优化。
3. 创新思维与团队协作:- 设计实践:运用所学知识,小组合作完成指定乐曲的演奏电路设计。
EDA课程设计---乐曲硬件演奏电路的VHDL设计

EDA课程设计题目:乐曲硬件演奏电路的VHDL设计一、 设计题目:乐曲硬件演奏电路的VHDL 设计二、 设计目标:1)能够播放“梁祝”乐曲。
2)能够通过LED 显示音阶。
3)具有“播放/停止”功能,并在此基础上实现“按键演奏”的电子琴功能。
三、 设计原理:1. 音乐基础知识一段简单乐谱由音调和节拍组成,音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。
音符的节拍我们可以举例来说明。
在一张乐谱中,我们经常会看到这样的表达式,如1=C 44、1=G 43……等等。
以43为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。
比如:图1其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。
1 、2的时长为四分音符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音符长,5的时长为四分音符的一半,即为八分音符长,6的时长为四分音符长。
那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms 。
我们以一拍的时长为400ms为例,则当以四分音符为节拍时,四分音符的时长就为400ms,八分音符的时长就为200ms,十六分音符的时长就为100ms。
2.原理图框图:图2.框图3.原理图说明音乐播放原理说明音符的频率由数控分频器模块Speakera产生。
ToneTaba模块从NoteTabs模块中输入的音符数据,将对应的分频预置数据传送给Speakera模块,并将音符数据送到LED模块显示音阶。
NoteTabs模块中包含有一个音符数据ROM,里面存有歌曲“梁祝”的全部音调,在此模块中设置了一个8位二进制计数器,作为音符数据ROM的地址发生器。
这个计数器的计数频率为4Hz,即每一个数值的停留时间为0.25秒。
例如:“梁祝”乐曲的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即1秒钟时间,所对应的“3”音符分频预置数为1036,在Speakera的输入端停留了1秒。
eda课程设计简易电子琴

eda课程设计简易电子琴一、课程目标知识目标:1. 让学生了解EDA(电子设计自动化)的基本概念,掌握简易电子琴的设计原理;2. 使学生掌握电子琴电路的组成、工作原理和编程方法;3. 帮助学生理解电子琴音调、音量调节的电路实现方式。
技能目标:1. 培养学生运用EDA工具进行电路设计和编程的能力;2. 提高学生动手实践、团队合作和问题解决的能力;3. 让学生学会使用电子琴演奏简单曲目,培养音乐素养。
情感态度价值观目标:1. 激发学生对电子设计的兴趣和热情,培养创新精神和实践能力;2. 培养学生严谨、认真、负责的学习态度,养成良好的学习习惯;3. 引导学生关注科技发展,认识电子技术在生活中的应用,增强社会责任感。
课程性质:本课程为实践性较强的课程,结合理论知识,注重培养学生的动手能力和创新能力。
学生特点:学生处于初中阶段,具有一定的物理、数学基础,对新鲜事物充满好奇心,但可能缺乏实际操作经验。
教学要求:结合学生特点,采用任务驱动法,引导学生主动探究、实践,注重理论与实践相结合,提高学生的综合能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 理论知识:- 电子元件基本原理:电阻、电容、二极管、三极管等;- 电子琴工作原理:振荡器、分频器、放大器、键盘扫描电路等;- EDA软件使用:原理图绘制、PCB设计、仿真测试等。
2. 实践操作:- 简易电子琴电路搭建:指导学生动手搭建电子琴电路;- EDA软件操作:教授学生使用EDA软件进行原理图绘制和PCB设计;- 编程与调试:教授学生编程方法,对电子琴进行调试。
3. 教学大纲:- 第一周:电子元件基本原理学习;- 第二周:电子琴工作原理学习;- 第三周:EDA软件使用教学;- 第四周:简易电子琴电路搭建与调试;- 第五周:总结与展示,学生进行作品展示,分享心得。
4. 教材章节:- 《电子技术基础》中关于电子元件、电路原理的相关章节;- 《电子设计自动化》中关于EDA软件使用的相关章节;- 《电子琴设计与制作》中关于电子琴工作原理和制作过程的相关章节。
硬件电子琴电路设计E D A设计报告

可编程逻辑器件设计实验报告指导教师:姓名:学号:班级:学院:计算机科学与技术实验时间:第6周星期四9-12节第8周星期四1-2节第11周星期五9-12节一、实验名称:硬件电子琴电路设计二、实验目的:学习利用数控分频器设计硬件电子琴实验三、实验内容和原理。
主系统由3个模块组成,顶层设计文件,有两个功能模块:TONE.VHD和SPEAKER.VHD。
模块TONE是音阶发生器,当8位发声控制输入INDEX中某一位为高电平时,则对应某一音阶的数值将从端口TONE输出,作为获得该音阶的分频预置值;同时由CODE输出对应该音阶简谱的显示数码,如‘5’,并由HIGH输出指示音阶高8度显示。
其语句结构只是类似与真值表的纯组合电路描述,其中的音阶分频预置值,如Tone <= 1290是根据产生该音阶频率所对应的分频比获得的。
模块SPEAKER中的主要电路是一个数控分频器,它由一个初值可预置的加法计数器构成,当模块SPEAKER由端口TONE获得一个2进制数后,将以此值为计数器的预置数,对端口CLK12MHZ输入的频率进行分频,之后由SPKOUT向扬声器输出发声。
原理电路图内容简介编译适配以上3个示例文件,给出仿真波形,最后进行下载和硬件测试实验。
建议使用实验电路模式“3”,用短路帽选择“CLOCK9”的输入频率选择12MHz,此信号作为系统输入信号CLK12MHZ;键8至键1作为INDEX输入信号控制各音阶;选择数码管1显示琴音简谱码,发光管D1显示高8度。
五、实验步骤图2 MAX+plusII一般设计流程1: 编辑输入并存盘VHDL原文件与原理图设计方法一样,首先应该建立好工作库目录,以便设计工程项目的存储。
接下去是打开MAX+plusII,选择菜单“File”→“New…”,在框中选中“Text Editor file”,按“OK”按钮,即选中了文本编辑方式。
在出现的“Untitled - Text Editor”文本编辑窗中键入图VHDL程序,输入完毕后,选择菜单“File→Save”,即出现“Save As”对话框。
eda电子琴课程设计

eda电子琴课程设计一、课程目标知识目标:1. 学生能够理解并掌握EDA电子琴的基本结构和工作原理;2. 学生能够运用电子琴演奏简单的旋律,并识别不同音符的音高和时值;3. 学生能够了解并运用基本的音乐理论知识,如音阶、和弦等;4. 学生掌握音乐创作的基本方法,能够创作简单的电子琴曲目。
技能目标:1. 学生能够熟练操作EDA电子琴,进行基本演奏;2. 学生能够运用所学音乐理论知识,进行简单的曲目分析和创作;3. 学生能够在团队合作中,与他人共同演奏和创作音乐作品;4. 学生能够运用电子琴进行即兴演奏,提高音乐表现力。
情感态度价值观目标:1. 学生培养对音乐的热爱,提高音乐素养,树立正确的审美观念;2. 学生在学习和创作过程中,培养创新精神和实践能力;3. 学生通过团队合作,培养协作精神和沟通能力;4. 学生通过音乐学习,增强自信,勇于展示自我。
本课程针对小学四年级学生,结合电子琴教学实际,以趣味性和实用性为导向,注重培养学生的动手操作能力、音乐素养和团队协作精神。
通过本课程的学习,使学生能够在轻松愉快的氛围中掌握电子琴演奏技巧,提高音乐创作能力,激发学生对音乐的热爱和兴趣。
同时,课程目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. 电子琴基础知识:介绍EDA电子琴的结构、功能键及操作方法,使学生了解电子琴的基本构成和演奏方式。
- 教材章节:第一章 电子琴概述- 内容列举:电子琴结构、功能键、演奏操作2. 音乐理论基础:学习基本的音乐符号、音阶、和弦等知识,为演奏和创作打下基础。
- 教材章节:第二章 音乐理论基础- 内容列举:五线谱、音符、音阶、和弦3. 电子琴演奏技巧:教授基本演奏技巧,如指法、音色选择、节奏控制等,提高学生的演奏能力。
- 教材章节:第三章 电子琴演奏技巧- 内容列举:指法、音色、节奏、动态4. 简单曲目演奏:选取适合学生程度的曲目,指导学生进行演奏练习,巩固所学知识。
EDA_电子琴课程设计 2(1).

《EDA技术实用教程》课程设计课程设计报告课题: EDA电子琴课程名称: EDA技术实用教程学院名称:物理电气信息学院班级: 2011级通信工程(1)班学生姓名:安昱学号: 12011243986 指导教师:杨泽林2013年12月26日EDA技术实用教程课程设计EDA电子琴摘要:本课程设计主要采用EDA技术设计一个简易的八音符电子琴,它可通过按键输入来控制音响从而演奏出已存入的乐曲。
在课程设计中,系统开发平台为Windows XP,程序设计采用VHDL语言,程序运行平台为Quartus II。
然后编写程序实现电子琴的各项功能,使不同的音阶对应不同频率的正弦波,按下不同的键时发出对应频率的声音。
程序通过调试运行,时序仿真,电路功能验证,顺利地实现了设计目标。
关键词:电子琴;EDA;VHDL;音阶;频率1、引言随着信息科学的进步,现代电子产品的性能越来越高,复杂度越来越大,更新步伐也越来越快,电子技术的发展进入了划时代的阶段。
其中电子技术的核心便是电子设计自动化EDA(Electronic Design Automatic)技术。
EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子CAD 通用软件包,它根据硬件描述语言VHDL完成的设计文件,自动完成逻辑编译、化简、分割、综合、优化、布局布线及仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
本课程设计就是采用EDA技术描述语言VHDL编程实现简易电子琴的各项功能,是EDA技术应用于实际的一个很好的例子。
1.1 课程设计目的本课程设计主要是基于VHDL文本输入法设计乐曲演奏电路,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,通过按键输入来控制音响或者自动演奏已存入的歌曲。
系统由乐曲自动演奏模块、音调发生模块和数控分频模块三个部分组成。
系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、电路功能验证,奏出美妙的乐曲。
EDA实验报告5_乐曲硬件演奏电路设计

EDA技术与应用实验报告姓名学号专业年级电子信息工程实验题目乐曲硬件演奏电路设计实验目的1.学习利用数控分频器设计硬件乐曲演奏电路2.掌握模块化和层次化的设计方法以及音符编码的设计思想实验原理1.一定频率的矩形波通过扬声器可以发出相应频率的声音,乐曲是由一系列的音符组成的。
所以,如果我们通过控制每个音符的发音频率值及其持续的时间,就可以以纯硬件的手段,利用这些数值来实现所希望演奏的乐曲。
2.该硬件演奏电路由三个模块构成<1>音符数据ROM的地址发生器模块NoteTabs.vhdl内置8位二进制计数器,作为ROM的地址发生器,计数频率4Hz,即每一计数值的停留时间为0.25s,恰为全音符设为1s时,四四拍的4音符持续时间。
随着NoteTabs中的计数器按4Hz的时钟速率作加法计数即地址值递增时,ROM中的音符数据将通过ToneIndex[3..0]输向ToneTaba模块,乐曲即开始演奏起来。
<2>乐曲简谱码对应的分频预置数查表电路模块ToneTaba.vhdlToneTaba为Speakera提供决定所发音符的分频预置数,此数在Speakera输入口停留的时间即为此音符的节拍值。
输入Index[3..0]可确定乐曲全部音符所对应的分频预置数(13个)每一音符的停留时间由NoteTabs模块的clk决定(4Hz)。
<3>决定每一个音符音调的数控分频器模块Speakera.vhdl输入端clk输入一较高频率(12MHz)的信号,经Speakera分频,再经2分频以展宽脉冲后,由SpkOut输出。
11位预置数Tone[10..0]决定由clk输入信号的分频比,SpkOut输出的频率决定每一音符的音调。
实验内容1.定制存放LPM-ROM模块Music,在连续地址上存放乐曲的音符数据,2.用vhdl文本输入法和元件例化语句完成NoteTabs.vhdl的设计,该模块包含音符数据ROM模块Music.vhdl3.完成ToneTaba.vhdl的设计,此模块给数控分频模块提供每个音符所对应的分频预置数,即计数初值4.完成Speakera.vhdl的设计,该模块是一个初值可变的加法计数器。
EDA课程设计音乐演奏

EDA课程设计音乐演奏一、教学目标本课程旨在通过EDA(电子设计自动化)技术的学习,使学生掌握音乐演奏的基本原理和技巧,培养学生的创新意识和实践能力。
具体目标如下:知识目标:使学生了解音乐演奏的基本知识,包括音乐理论、演奏技巧等;掌握EDA技术的基本原理和应用。
技能目标:培养学生能够运用EDA技术进行音乐创作和演奏的能力;提高学生的音乐表现力和演奏技巧。
情感态度价值观目标:培养学生对音乐的热爱和尊重,培养学生的创新意识和团队合作精神。
二、教学内容本课程的教学内容主要包括音乐演奏的基本原理、EDA技术的基本原理和应用、音乐创作和演奏技巧等。
具体安排如下:第一章:音乐演奏概述1.1 音乐理论和演奏技巧1.2 音乐演奏的生理和心理基础第二章:EDA技术的基本原理2.1 EDA技术的发展和应用2.2 EDA工具的使用和操作第三章:音乐创作和演奏技巧3.1 音乐的创作方法和过程3.2 演奏技巧的训练和提高第四章:音乐演奏实践4.1 集体演奏和合作4.2 个人演奏和创作展示三、教学方法本课程采用多种教学方法,包括讲授法、讨论法、案例分析法、实验法等。
通过多样化的教学方法,激发学生的学习兴趣和主动性,提高学生的学习效果。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料、实验设备等。
教材选用权威、实用的专业教材,参考书选择与课程内容相关的学术著作和案例集,多媒体资料包括音乐演奏视频、图片等,实验设备包括计算机、音响等。
教学资源的选择和准备应能够支持教学内容和教学方法的实施,丰富学生的学习体验。
五、教学评估本课程的评估方式包括平时表现、作业、考试等多种形式,以全面、客观、公正地评价学生的学习成果。
具体评估方式如下:1.平时表现:通过课堂参与、提问、小组讨论等环节,评估学生的学习态度和积极性。
2.作业:布置相关的音乐演奏练习和EDA技术任务,评估学生的实践能力和掌握程度。
3.考试:包括期中考试和期末考试,以闭卷形式进行,评估学生对音乐演奏和EDA技术的理论知识掌握。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
郑州航空工业管理学院《EDA技术及应用》课程设计报告届通信工程专业班级题目:电子琴与自动演奏学号:姓名:同组人:指导老师:2013年07月07日1 课程设计要求硬件电子琴设计设计要求:(1)按下KEY1~KEY7 分别表示中音的DO、 RE 、 ME、 FA、 SOL、 LA、 SI.(2)按住KEY8同时按KEY1~KEY7 分别表示高音的DO、 RE 、 ME、 FA、SOL、 LA、 SI;(3)按下相应的键有对应LED灯指示;其他要求:(1)晶振为12 MHz.,采用CPLD 器件为ALTERA 的EPM7064AEL144-7N。
乐曲自动演奏机设计要求:(1)可以在电路上能自动演奏乐曲,在这里我们采用的是贝多芬的《欢乐颂》;(2)有相应的LED灯指示高低音;其他要求:(1)晶振为12 MHz;(2)采用CPLD 器件,为ALTERA 的EPM7064AEL144-7N。
硬件电子琴设计+乐曲自动演奏机最初我们选择的设计是电子琴,但是由于电子琴的设计较为基础,因此我们对电子琴的设计进行了改进,将其与乐曲自动演奏相结合,要求如下:设计要求:(1)按下KEY1—KEY7 分别表示中音的DO、 RE 、 ME、 FA、 SOL、 LA、SI;(2)对于电子琴,按下相应的键有对应LED灯指示;(3)可以在电路上能自动演奏乐曲,在这里我们采用的是贝多芬的《欢乐颂》,且有相应的LED灯指示高低音;(4)能实现电子琴和乐曲自动演奏功能的切换。
其他要求:(1)晶振为12 MHz;(2)采用CPLD 器件为ALTERA 的EPM7064AEL144-7N。
2 整体规划设计分析根据设计要求,由于乐曲自动演奏机和硬件电子琴的设计已经存在,我们对已有的设计进行修改,形成两个不同功能的模块,然后采用元件例化,拼接两个模块,同时附加一个选择功能模块,以实现乐曲自动演机和硬件电子琴两个功能。
硬件电子琴分析对于硬件电子琴,参考了实验时使用的程序,已经达到的要求有:(1)按下key1~key7 分别表示中音的DO、 RE 、 ME、 FA、 SOL、 LA、 S;(2)按下相应的键有对应LED灯指示。
乐曲自动演奏机分析对于乐曲自动演奏机,参考了实验时使用的程序,已经达到的要求有:(1)可以在电路上能自动演奏乐曲,在这里我们采用的是贝多芬的《欢乐颂》(2)有相应的LED灯指示高低音。
而对于其他要求:(1)晶振为12 MHz.;(2)采用CPLD 器件为ALTERA 的EPM7064SL-44。
我们在实验箱验证时,先按照实验箱芯片和晶振进行就修改,在实验箱上确认实验相应功能之后,我们在对应模块的频率数值进行修改,并在对管脚重新锁定即可。
整体设计分析整体设计要求:用key8实现两个功能切换。
添加一个选择器,以实现两个功能切换。
当key8键没有按下时,电路实现硬件电子琴功能,当key8键按下之后,电路实现乐曲自动演奏机。
由于不存在现成可以借鉴的,于是,课程设计任务重心就放在了选择器模块的编写以及整体电路的合成上。
顶层模块输入输出图2-1 顶层文件图形管脚说明:输入:时钟信号——clk ,按键——[6:0]key ,功能切换键——key7 输出:LED 灯——[6:0]led ,蜂鸣器——beep ;Key0: DO key1: RE key2: ME key3:FA key4: SOLkey5: LA key6: SI key7:功能切换键设计流程图2-1 设计流程图 设计分工孙干:负责修改硬件电子琴以及乐曲自动演奏模块。
周龙杰:负责编写选择器以及设计顶层文件。
朱真:负责综合测试电路是否达到要求,并进行修改。
3 功能划分与模块化分修改硬件电子琴模块 修改乐曲自动演奏模块 编写选择器 设计顶层文件 综合编译、试验箱测试 试验箱测试自动演奏模块自动演奏模块功能:在按下key7键后,实现可以自动播放乐曲的功能。
自动演奏设计方案(1)根据乐曲自动演奏的基本原理设计出适合EDA多功能试验箱的源程序,通过分频模块得到12MHZ的晶振;源程序编写完成,编译调试后,在实验箱上验证其功能;(2)验证模块是否能完成实践要求的所有功能;然后去掉分频模块,将功能模块做适当的修改,编译调试成功后,将其下载到CPLD实验板上。
设计步骤(1)在Quartus Ⅱ中建立一个工程项目文件,并在该项目下新建Verilog HDL 源程序文件输入程序代码并保存。
完整的Verilog HDL程序参考程序清单。
(2)然后在该工程选择目标器件并对相应的引脚进行锁定,在这里所选择器件为Alter公司的EPM7064SL-44芯片。
(3)对该工程文件进行全程编译处理,若在编译中发现错误,则找出错误并更正,直到编译成功。
(4)最后拿出下载电缆,将此电缆的两端分别接到PC机的打印机并口和核心板上的JTAG 接口上,打开电源执行下载命令,把程序下载到CPLD器件中。
此时可以得到《欢乐颂》乐曲的演奏以及LED灯的明灭指示其高低音。
硬件电子琴模块硬件电子琴模块功能:在按下功能切换键key7后,可以实现电子琴功能,即按下key1 到key7的过程中发出相应的高低音。
硬件电子琴设计方案(1)根据硬件电子琴演奏的基本原理设计出适合EDA多功能试验箱的源程序,通过分频模块得到12MHZ的晶振;源程序编写完成,编译调试后,在实验箱上验证其功能;(2)验证模块是否能完成实践要求的所有功能;然后去掉分频模块,将功能模块做适当的修改后,编译调试成功后,将其下载到CPLD实验板上。
设计步骤(1)在Quarters II中建立一个工程项目文件。
并在该项目下新建VerilogHDL源程序文件,输入程序代码并保存,进行综合编译,若在编译中发现错误,则找出并更正错误,直至编译成功为止。
(2)选择目标器件并进行引脚锁定。
将未使用的管脚设置为三态输入。
(3)对该工程文件进行全程编译处理。
若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。
(4)将产生的输出对FPGA进行配置。
按下按键KEY1~KEY8就可以开始使用电子琴来演奏音乐了。
4 课程设计原理硬件电子琴设计原理乐曲演奏的原理是:由于组成乐曲的每个音符的频率值(音调)及其持续时间(音长)是乐曲演奏的2个基本数据,因此需要控制输出到扬声器的激励信号的频率高低和该频率信号持续的时间。
频率的高低决定了音调的高低,而乐曲的简谱与各音名的频率对应关系在后面将给出。
所有不同频率的信号都是从一基准频率分频而得来的,由于音阶频率多为非整数,而分频系数有不能为小数,故必须将计算得到的分频数进行向下取整,基准频率和分频系数应综合考虑加以选择,从而保证音乐不会走调。
如在48MHz 时钟下,中音1(对应的频率值是)的分频系数应该为:/(2*=45863,这样只需对系统时钟进行45863次分频即可得到所要的中音M1(分频系数计算公式为D=F/2K,由于F/2K之后,会使分频系数D变小,所以功能模块中语句:beep_r<=!beep_r,使得输出取反,K=F/2count_end,消除了前面除以2K的影响)。
乐曲自动演奏设计原理硬件电路和自动演奏的原理同硬件电子琴实验原理类似。
至于其他音符,同样可由一式求出对应的分频系数。
在程序中设置一个状态机,每250ms改变一个状态(即一个节拍),组成乐曲的每个音符的频率值(音调)相对应于状态机的每一个状态。
只要让状态机的状态按顺序转换,就可以自动演奏播放音乐了。
《欢乐颂》乐曲的简谱如图所示:图4-1 《欢乐颂》简谱图消抖原理作为机械开关的键盘,在按键操作时,由于机械触点的弹性及电压突跳等原因,在触点闭合或开启的瞬间会出现电压抖动,实际应用中如果不进行处理将会造成误触发。
由于这里是低电平表示按键按下,所以按键去抖动的关键在于提取稳定的低电平状态,虑除前沿、后沿抖动毛刺。
对于一个按键信号,可以用一个脉冲对他进行取样,如果连续三次取样为低电平,可以认为信号已经处于键稳定状态,这时输出一个低电平按键信号。
继续取样的过程中如果不能满足连续三次取样为低,则认为键稳定状态结束,这时输出变为高电平。
5 各模块的实现方法选择器模块实现方法经过小组讨论和老师的指导,我们确定以下三种方案以实现功能切换。
方案A添加使能端控制两个模块工作状态。
即当KEY8没有按下时,硬件电子琴模块工作,乐曲自动演奏模块不工作;当KEY8按下时,硬件电子琴不工作,乐曲自动演奏模块工作。
于是,需要给两个模块分别添加使能控制端,以控制其工作状态,而选择器就负责检测KEY8按键的状态,同时给出相应的使能信号输出指示。
方案B通过控制时钟信号输入与否来控制两个模块工作状态。
即当KEY8没有按下时,给硬件电子琴模块时钟信号,使其工作,将乐曲自动演奏模块的时钟信号屏蔽,使其不工作;当KEY8按下时,将硬件电子琴时钟信号屏蔽,使其不工作,给乐曲自动演奏模块时钟信号,使其工作。
于是,需要让选择器实现时钟信号的选择输出,以分别给两个模块时钟信号。
方案C方案A、B都是对输入进行控制,换一个思路,我们可以对输出进行控制。
即让两个模块都工作,但是输出的部分添加选择器,有选择输出信号。
当KEY8没有按下时,硬件电子琴的模块输出接到蜂鸣器和LED灯;当KEY8按下时,乐曲自动演奏模块输出接到蜂鸣器和LED灯。
由于三种方式实现的手段都不相同,逐一尝试后再进行取舍。
对于方案A,经过编译下载到试验箱之后,虽然添加使能端可以达到切换功能,但是由于存在时钟信号与使能不同步的原因,在实验箱上就会出现按下按键后不能完全切换,需要等待对应的时钟信号出现后才能将功能切换过去。
对于方案B,经过编译下载到实验箱之后,我们发现由于时钟信号有高低变化的电平出现,在切换的过程中,考虑到器件的延时,会出现无法考虑到的情况,对于两个模块很难达到切换。
于是,我们改变了思路,采用方案C,从输出进行控制,通过将蜂鸣和LED灯的输入和两个模块的输出有选择的匹配进行切换。
通过编译下载到实验箱验证可以实现功能,而且在两种状态的切换时,不会出现无法控制的状况。
自动演奏模块实现方法通过参照实验课本,我们根据相关实验对试验程序进行了简单修改,得到了本次自动演奏模块的歌曲《欢乐颂》,实现其自动演奏功能。
对于自动演奏模块而言,要实现其功能,只需要在顶层模块中添加触发自动演奏模块的触发点,在本程序中,即按下key8按键,屏蔽掉硬件电子琴的时钟信号,而使自动演奏模块的电子时钟信号作为使能信号。
在自动演奏模块中,首先计算出各个音符所对应的参数,对参数进行定义和设计。
通过对晶振的控制实现每个音响应时间的长短并且可以修改相关参数实现音长的改变。
演奏过程中,设置循环体,即每次演奏结束,可以再从头开始演奏,从而实现自动演奏的自动功能。