EDA简易电子琴设计报告.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA简易电子琴设计报告

一、题目分析1、分析要求,确定总体方框图本设计基本部分是用VHDL语言设计一个简易的八音符电子琴,在?Quartus?II?平台下下载到Cyclone系列的EP1C12Q240C8芯片中,该电路设计能够实现DO、RE、MI、FA等八个音调的电子琴,发挥部分是设计一乐曲自动演奏器,用户自己编制乐曲存入电子琴,电子琴可以完成自动演奏。电子琴音乐产生原理及硬件设计由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了。根据系统设计要求,系统设计采用自顶向下的设计方法,系统的整体组装设计原理图如图1所示,它由乐曲自动演奏模块AUTO、音调发生模块TONE和数控分频模块FENPIN三部分组成。图1 系统的整体组装设计原理图2、最终完成的技能指标(1)设计一个简易的八音符电子琴,它可通过按键输入来控制音响。(2)演奏时可以选择是手动演奏(由键盘输入)还是自动演奏已存入的乐曲。二、选择方案通过可编程逻辑器件(PLD)和VHDL硬件描述引言来实现电子琴的基本部分和发挥部分的设计。对于基本部分,设计的主体是数控分频器,对输入的频率进行分频,得到各个音阶对应的频率最为输出。当按下不同的键时发出不同的声音。对于发挥部分,则在原设计的基础上,增加一个乐曲存储模块,代替了键盘输入,产生节拍控制(index数据存留时间)和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由此计数器的计数时钟信号作为乐曲节拍控制信号,从而可以设计出一个纯硬件的乐曲自动演奏电路。?方案一:由单片机来完成设计。可用单片机控制键盘的输入,以及产生相应的频率信号作为输出。目前,单片机的功能已比较强大,集成度日益增高且其设计和控制比较容易。但是由于在传统的单片机设计系统中必须使用许多分立元件组成单片机的外围电路,如锁存器,译码器等都需要单独的电路,因此整个系统显得十分复杂,抗干扰性差,在运行过程中容易死机或进入死循环,可靠性降低,而功耗费用增高。?方案二:利用PLC来完成设计。目前利用PLC的技术已经比较成熟。PLC有其优点,?其性能优异,体积小,可靠性和精度都比较好,在电子琴的设计中可采用PLC来完成硬件的控制,但是用PLC实现编程相对比较复杂,对于电子琴这种小型设计来说成本过高。?方案三:利用可编程逻辑器件PLD来完成该设计。利用PLD可以很好的解决上述的问题。它的成品体积小,适合电子琴这种小型设计。其性能稳定,控制精度高(Xilinx公司的高密度,高速可预测延时,高性能系列芯片),易于管理和屏蔽,抗干扰能力强,可靠性高。综上,在本设计中选择第三种方案最优。三、各模块原理及其程序1、乐曲自动演奏模块乐曲自动演奏模块(AUTO.VHD)的作用是产生8位发声控制输入信号/当进行自动演奏时,由存储在此模块中的8位二进制数作为发声控制输入,从而自动演奏乐曲。为了实现扩展部分的设计,便需要多加上一个音乐存储模块,该模块的作用是产生8位发声控制输入index,auto为0或1时可以选择自动演奏或者键盘输入,如果auto为0,则而由存储在此模块中的8位二进制数来作为发声控制输入,由此便可自动演奏乐曲。此模块的VHDL语言中包括两个进程,首先是对基准脉冲进行分频得到4Hz的脉冲,作为第二个进程的时钟信号,它的目的是控制每个音阶之间的停顿时间,此处便是1/4=0.25s,第二个进程是音乐的存储,可根据需要编写不同的乐曲。?这段模块的原理图如图2所示:图2乐曲自动演奏模块原理图乐曲自动演奏模块可以由VHDL语言来实现,下面是一段主要代码:BEGIN IF AUTO =0 THEN CASE COUNT0 ISWHEN 0=INDEX0 --3WHEN 1=INDEX0 --3WHEN 2=INDEX0 --3WHEN 3=INDEX0 --3WHEN 4=INDEX0 --5WHEN 5=INDEX0 --5WHEN 6=INDEX0 --5WHEN 7=INDEX0 --6WHEN 8=INDEX0 --8WHEN 9=INDEX0 --8WHEN 10=INDEX0 --8WHEN 11=INDEX0 --3WHEN 12=INDEX0 --2WHEN 13=INDEX0 --2WHEN 14=INDEX0 --1WHEN 15=INDEX0

您可能关注的文档

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档