📄 electronic_organ_design.htm
字号:
font-size:12.0pt;
font-family:宋体;
mso-bidi-font-family:宋体;
color:green;}
span.BalloonTextChar
{mso-style-name:"Balloon Text Char";
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-link:"Balloon Text";
mso-ansi-font-size:8.0pt;
mso-bidi-font-size:8.0pt;
font-family:"Tahoma","sans-serif";
mso-ascii-font-family:Tahoma;
mso-fareast-font-family:宋体;
mso-hansi-font-family:Tahoma;
mso-bidi-font-family:Tahoma;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
font-size:10.0pt;
mso-ansi-font-size:10.0pt;
mso-bidi-font-size:10.0pt;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
</style>
<![endif]-->
<script language="JavaScript" src="基于FPGA的多功能电子琴的设计_files/menu.js" type="text/JavaScript">
</script>
<script language="JavaScript1.2" src="基于FPGA的多功能电子琴的设计_files/stm31.js" type="text/javascript">
</script>
<script language="JavaScript" src="基于FPGA的多功能电子琴的设计_files/TreeGuide.js" type="text/JavaScript">
</script>
<script language="JavaScript" type="text/JavaScript">
//树形导航的JS代码
var expandState = 0;
function expand(){
if(expandState == 0){setPace('master', 0, 10, 10); if(ie){document.menutop.src = '/images/menui.gif'}; expandState = 1;}
else{setPace('master', -200, 10, 10); if(ie){document.menutop.src='/images/menuo.gif'}; expandState = 0;}
}
document.write("<style type=text/css>#master {LEFT: -200px; POSITION: absolute; TOP: 25px; VISIBILITY: visible; Z-INDEX: 999}</style>")
document.write("<table id=master width='218' border='0' cellspacing='0' cellpadding='0'><tr><td><img border=0 height=6 src=/images/menutop.gif width=200></td><td rowspan='2' valign='top'><img id=menu onMouseOver=javascript:expand() border=0 height=70 name=menutop src=/images/menuo.gif width=18></td></tr>");
document.write("<tr><td valign='top'><table width='100%' border='0' cellspacing='5' cellpadding='0'><tr><td height='400' valign='top'><table width=100% height='100%' border=1 cellpadding=0 cellspacing=5 bordercolor='#666666' bgcolor=#ecf6f5 style=FILTER: alpha(opacity=90)><tr>");
document.write("<td height='10' align='center' bordercolor='#ecf6f5'><font color=999900><strong>栏 目 树 形 导 航</strong></font></td></tr><tr><td valign='top' bordercolor='#ecf6f5'>");
document.write("<iframe width='100%' height='100%' src='/EDC/ClassTree.asp' frameborder=0></iframe></td></tr></table></td></tr></table></td></tr></table>");
var ie = document.all ? 1 : 0
var ns = document.layers ? 1 : 0
var master = new Object('element')
master.curLeft = -200; master.curTop = 10;
master.gapLeft = 0; master.gapTop = 0;
master.timer = null;
if(ie){var sidemenu = document.all.master;}
if(ns){var sidemenu = document.master;}
setInterval('FixY()',100);
</script>
<script language="JavaScript" type="text/JavaScript">
//改变图片大小
function resizepic(thispic)
{
if(thispic.width>700) thispic.width=700;
}
//无级缩放图片大小
function bbimg(o)
{
var zoom=parseInt(o.style.zoom, 10)||100;
zoom+=event.wheelDelta/12;
if (zoom>0) o.style.zoom=zoom+'%';
return false;
}
//双击鼠标滚动屏幕的代码
var currentpos,timer;
function initialize()
{
timer=setInterval ("scrollwindow ()",30);
}
function sc()
{
clearInterval(timer);
}
function scrollwindow()
{
currentpos=document.body.scrollTop;
window.scroll(0,++currentpos);
if (currentpos !=document.body.scrollTop)
sc();
}
document.onmousedown=sc
document.ondblclick=initialize
//更改字体大小
var status0='';
var curfontsize=10;
var curlineheight=18;
function fontZoomA(){
if(curfontsize>8){
document.getElementById('fontzoom').style.fontSize=(--curfontsize)+'pt';
document.getElementById('fontzoom').style.lineHeight=(--curlineheight)+'pt';
}
}
function fontZoomB(){
if(curfontsize<64){
document.getElementById('fontzoom').style.fontSize=(++curfontsize)+'pt';
document.getElementById('fontzoom').style.lineHeight=(++curlineheight)+'pt';
}
}
</script>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="2050"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=black vlink="#333333" style='tab-interval:.5in'
onmouseup="document.selection.empty()" oncontextmenu="return false"
onselectstart="return false" ondragstart="return false"
onbeforecopy="return false" oncopy="document.selection.empty()" leftmargin=0
topmargin=0 onselect="document.selection.empty()">
<div class=Section1>
<div align=center>
<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=767
style='width:575.6pt;mso-cellspacing:0in;margin-left:-5.6pt;background:white;
mso-yfti-tbllook:1184;mso-padding-alt:0in 0in 0in 0in'>
<tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:1.5pt'>
<td width=767 colspan=2 style='width:575.6pt;background:#0089F7;padding:0in 0in 0in 0in;
height:1.5pt'></td>
</tr>
<tr style='mso-yfti-irow:1;height:37.5pt;mso-row-margin-left:1.45pt'>
<td style='mso-cell-special:placeholder;border:none;padding:0in 0in 0in 0in'
width=2><p class='MsoNormal'> </td>
<td style='padding:0in 0in 0in 0in;height:37.5pt'>
<p class=MsoNormal align=center style='text-align:center;line-height:150%;
word-break:break-all'><b><span lang=ZH-CN style='font-size:13.5pt;line-height:
150%;color:red'>基于</span></b><b><span style='font-size:13.5pt;line-height:
150%;color:red'>FPGA<span lang=ZH-CN>的多功能电子琴的设计</span><o:p></o:p></span></b></p>
</td>
</tr>
<tr style='mso-yfti-irow:2;mso-row-margin-left:1.45pt'>
<td style='mso-cell-special:placeholder;border:none;padding:0in 0in 0in 0in'
width=2><p class='MsoNormal'> </td>
<td style='padding:0in 0in 0in 0in'></td>
</tr>
<tr style='mso-yfti-irow:3;mso-row-margin-left:1.45pt'>
<td style='mso-cell-special:placeholder;border:none;padding:0in 0in 0in 0in'
width=2><p class='MsoNormal'> </td>
<td style='background:whitesmoke;padding:0in 0in 0in 0in'></td>
</tr>
<tr style='mso-yfti-irow:4;height:225.0pt;mso-row-margin-left:1.45pt'>
<td style='mso-cell-special:placeholder;border:none;padding:0in 0in 0in 0in'
width=2 id=fontzoom><!--插入广告JS代码--><p class='MsoNormal'> </td>
<td valign=top style='border:solid #D2D3D9 1.0pt;mso-border-alt:solid #D2D3D9 .75pt;
padding:6.0pt 6.0pt 6.0pt 6.0pt;height:225.0pt'>
<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 align=left
style='mso-cellspacing:0in;mso-yfti-tbllook:1184;mso-table-lspace:2.25pt;
mso-table-rspace:2.25pt;mso-table-anchor-vertical:paragraph;mso-table-anchor-horizontal:
column;mso-table-left:left;mso-padding-alt:7.5pt 7.5pt 7.5pt 7.5pt'>
<tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
<td style='padding:7.5pt 7.5pt 7.5pt 7.5pt'></td>
</tr>
</table>
<p class=MsoNormal align=center style='text-align:center;word-break:break-all'><span
lang=ZH-CN style='font-size:9.0pt'>多功能电子琴的设计 </span><span style='font-size:
9.0pt'><o:p></o:p></span></p>
<div>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'> <o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal style='word-break:break-all'><span lang=ZH-CN
style='font-size:9.0pt'>摘要</span><span style='font-size:9.0pt'>: <span
lang=ZH-CN>多功能电子琴的设计是在原有普通电子琴的基础上进行扩充的一个设计。该电子琴的设计大体由三个模块构成,分别为电子琴发声模块、存储器模块和选择控制模块。用超高速硬件描述语言VHDL编程实现各个模块的功能。不仅仅能实现弹琴和演奏的功能,它还能实现“复读”的功能,即能存储任意一段音乐,并且即时的播放出来。</span><o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'> <o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal style='word-break:break-all'><span lang=ZH-CN
style='font-size:9.0pt'>关键字:</span><span style='font-size:9.0pt'><o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal style='word-break:break-all'><span lang=ZH-CN
style='font-size:9.0pt'>多功能电子琴</span><span style='font-size:9.0pt'>
VHDL <span lang=ZH-CN>“复读”</span><o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'> <o:p></o:p></span></p>
</div>
<p class=MsoNormal align=center style='text-align:center;word-break:break-all'><span
style='font-size:9.0pt'>The design of the multi-function electronic organ<o:p></o:p></span></p>
<p class=MsoNormal style='word-break:break-all'><b><span style='font-size:
9.0pt'>Abstract:</span></b><span style='font-size:9.0pt'> The design of the
multi-function electronic organ is in the foundation of the common electronic
organ to go forward a design of a line of enlargements originally possessed
.The design of electronic organ be constituted by three molds pieces
,the mold piece of soniferous system, the RAM mold piece and the chosen
/ control mold piece .Use the super-speed hardware language VHDL to achieve
the function of each mold piece .This multi-function electronic organ can not
only realize the function of play ,but also can give musical performance. And
one of the characteristics of the most is the" reply to read"
function .We can use it saving a music arbitrarily, and then broadcast out.<o:p></o:p></span></p>
<div>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'> <o:p></o:p></span></p>
</div>
<p class=MsoNormal style='word-break:break-all'><b><span style='font-size:
9.0pt'>Keywords:</span></b><span style='font-size:9.0pt'> Multi-function
electronic organ VHDL " reply to read"<o:p></o:p></span></p>
<p class=MsoNormal align=center style='text-align:center;word-break:break-all'><span
style='font-size:9.0pt'> <o:p></o:p></span></p>
<p class=MsoNormal align=center style='text-align:center;word-break:break-all'><span
lang=ZH-CN style='font-size:9.0pt'>前言</span><span style='font-size:9.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'> <o:p></o:p></span></p>
<p class=MsoNormal style='word-break:break-all'><span lang=ZH-CN
style='font-size:9.0pt'>对于中国的广大老百姓来说,电子琴可以说已经不再是什么“新鲜玩意”了,它作为一种休闲娱乐的产品早就推出市面,进入了人们的生活。然而一般的电子琴只有弹琴的功能,或者有播放乐曲的功能。那么怎么在电子琴身上发掘出“新鲜点”?我们在这里做的就是设计一种新型的,有“复读”功能的多功能电子琴。</span><span
style='font-size:9.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='word-break:break-all'><span lang=ZH-CN
style='font-size:9.0pt'>本设计是基于新兴的</span><span style='font-size:9.0pt'>FPGA<span
lang=ZH-CN>技术,用超高速硬件描述语言</span>VHDL<span lang=ZH-CN>实现的,集科学性,先进性,创新性,实用性于一体。</span><o:p></o:p></span></p>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'> <o:p></o:p></span></p>
<p class=MsoNormal align=center style='text-align:center;word-break:break-all'><b><span
lang=ZH-CN style='font-size:9.0pt'>第一章 </span></b><span lang=ZH-CN
style='font-size:9.0pt'>系统的设计</span><span style='font-size:9.0pt'><o:p></o:p></span></p>
<div>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'> <o:p></o:p></span></p>
</div>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'>1.1
<span lang=ZH-CN>系统设计的总体思路</span><o:p></o:p></span></p>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'> <o:p></o:p></span></p>
<p class=MsoNormal style='word-break:break-all'><span lang=ZH-CN
style='font-size:9.0pt'>实现这个多功能电子琴,我们要考虑的主要是以下三个方面的内容:一、每个音符都有自己的固有频率,由频率的不同就决定了发出什么音调。二、一首乐曲的组成不仅仅是音调,还包括每个音调持续时间的长短,也就是我们通常所说的音长。三、要实现“复读”功能,就需要一个既可以存入又可以即时输出的</span><span
style='font-size:9.0pt'>RAM<span lang=ZH-CN>。于是本设计就是以这三个部分为核心内容展开。</span><o:p></o:p></span></p>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'> <o:p></o:p></span></p>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'>1.2
<span lang=ZH-CN>方案的比较</span><o:p></o:p></span></p>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'> <o:p></o:p></span></p>
<div>
<p class=MsoNormal style='word-break:break-all'><span lang=ZH-CN
style='font-size:9.0pt'>为了实现这种有自动播放歌和“复读”功能的多功能电子琴,以下提供两种方案以供参考:</span><span
style='font-size:9.0pt'><o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal style='word-break:break-all'><span lang=ZH-CN
style='font-size:9.0pt'>方案一:采用单个的逻辑器件组合实现。这样虽然比较直观,逻辑器件分工鲜明,思路也比清晰,一目了然,但是由于元器件种类、个数繁多,而过于复杂的硬件电路也容易引起系统的精度不高、体积过大等不利因素。例如八个不同的音符是由八个不同的频率来控制发出的,而采用方案一就可以运用不同的分频器来对信号进行不同程度的分频。所用仪器之多显而易见。</span><span
style='font-size:9.0pt'><o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal style='word-break:break-all'><span lang=ZH-CN
style='font-size:9.0pt'>我们来看看方案二。方案二采用</span><span style='font-size:9.0pt'>VHDL<span
lang=ZH-CN>语言编程来实现电子琴的各项功能。系统主要由电子琴发声模块、选择控制模块和储存器模块组成。和方案一相比较,方案二就显得比较笼统,只是把整个系统分为了若干个模块,而不牵涉到具体的硬件电路。但是我们必须看到用超高速硬件描述语言</span>VHDL<span
lang=ZH-CN>的优势,它不仅具有良好的电路行为描述和系统描述的能力而且通俗易懂。</span>
<o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal style='margin-bottom:12.0pt;word-break:break-all'><span
lang=ZH-CN style='font-size:9.0pt'>经过对以上两种方案的分析、比较和总结,我们选用方案二来进行电子琴的设计。</span><span
style='font-size:9.0pt'><o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'>1.3
<span lang=ZH-CN>总体方案的设计</span><o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'> <o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal style='word-break:break-all'><span lang=ZH-CN
style='font-size:9.0pt'>根据设计要求该电子琴能实现八个音键的控制,根据各个音调的频率的差异,来实现按下不同的音键而发出不同的声音。除此之外还实现了随机存储并读出一段音乐的附加功能。系统的方框图如下图</span><span
style='font-size:9.0pt'>1.2.1<span lang=ZH-CN>所示。图中大体分为电子琴发声模块、选择控制模块和存储器模块构成。电子琴发声模块负责发出音键相应的音符;选择控制模块负责由外部控制电子琴的各项功能的实现;而存储器模块顾名思义就是对随机写入的乐谱进行存储,并在需要时读出。在只实现基本功能时(由功能控制键控制),外部输入的音键,由电子琴发声模块发出相应的音符。实现附加功能时,可进行乐曲输入,而后存储在存储器模块中;还可以将输入的乐曲从存储模块中完整输出(这些都是由乐曲输入/输出控制键控制)。</span><o:p></o:p></span></p>
</div>
<p class=MsoNormal align=center style='text-align:center;word-break:break-all'><span
style='font-size:9.0pt'> <o:p></o:p></span></p>
<p class=MsoNormal align=center style='text-align:center;word-break:break-all'><span
style='font-size:9.0pt'> <o:p></o:p></span></p>
<div>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'>
<span lang=ZH-CN>图</span>1.2.1 <span lang=ZH-CN>系统方框图</span><o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'> <o:p></o:p></span></p>
</div>
<p class=MsoNormal align=center style='text-align:center;word-break:break-all'><span
lang=ZH-CN style='font-size:9.0pt'>第二章 单元电路的设计</span><span style='font-size:
9.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='word-break:break-all'><b><span style='font-size:
9.0pt'>2.1</span></b><span lang=ZH-CN style='font-size:9.0pt'>电子琴发声模块</span><span
style='font-size:9.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'> <o:p></o:p></span></p>
<p class=MsoNormal style='word-break:break-all'><b><span style='font-size:
9.0pt'>2.1.1<span lang=ZH-CN>电子琴发声模块的基本原理</span></span></b><span
style='font-size:9.0pt'><o:p></o:p></span></p>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'> <o:p></o:p></span></p>
<p class=MsoNormal style='word-break:break-all'><span style='font-size:9.0pt'> <span
lang=ZH-CN>电子琴发声模块是这个电子琴的核心部分。它内部集成了</span>8<span lang=ZH-CN>个分频器,一个输出端口至外部扩音器;接受、处理外部输入命令(来自使能端、功能控制键、乐曲存入、写出控制键的命令)的部分。其中</span>8<span
lang=ZH-CN>个分频器可以分出八个不同的频率从而
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -