设计一简易电子琴,要求能够发出1、2、3、4、5、6、7等七个音符。
原理:
由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。
本次设计中单片机晶振为12MHZ,那么定时器的计数周期为1MHZ,假如选择工作方式1,那T值便为T=216--5﹡105/相应的频率,那么根据不同的频率计算出应该赋给定时器的计数值,列出不同音符与单片机计数T0相关的计数值如下表所示:
单片机简易电子琴设计方案(二)
通过单片机实现电子琴演奏,实质就是将不同按键和特定频率的方波信号对应起来,以方波信号驱动蜂鸣器发出乐音。下面简单介绍一下乐音的特性。乐音实际上是有固定频率的信号。在音乐理论中,把一组音按音调高低的次序排列起来就成为音节,也就是1、2、3、4、5、6、7和高音1。高音1的频率正好是中音1频率的2倍,而且音节中各音的频率跟1的频率之比都是整数之比。
因此,正确的设置定时器的工作模式和初始计数值是发出乐音的基础。例如中音l,其频率是523Hz,则周期为T=l/523=1912μs,半个周期为956μs。根据单片机计数器计数的机器周期,就可以算出计数器的预置初始值应为多少。例如,假设采用的单片机的一个计数周期需要12个时钟周期,当采用12MHz晶振时,一个计数周期即lμs。要定时956μs,只需设置其计数初值为计数最大计数值减去956。对应不同的按键,调节Tl的溢出时间,即可输出不同频率的乐音,这样就实现了简易电子琴的设计。
形成每个乐音音高的频率是固定的,下表列出了一个8度以及其上下共16个音的音名、频率及定时器Tl初值对照(设晶体频率为12MHz)。
该简易电子琴的硬件电路设计较简单,通过Pl口进行按键扫描,从P0.1口输出方波信号,经三极管放大后驱动蜂鸣器发出声响。系统硬件电路如下图所示。
音调主要由声音的频率决定,乐音(复音)的音调更复杂些,一般可认为主要由基音的频率来决定。也即一定频率的声音对应特定的乐音。在以C调为基准音的八度音阶中,所对应的频率如表1所示。如果能够通过某种电路结构产生特定频率的波形信号,再通过扬声器转换为声音信号,就能制作出简易的乐音发生器,再结合电子琴的一般结构,就可实现电子琴的制作了。
设计电路图如图所示。
图即是八音阶微型电子琴的原理电路图,8个开关对应着电子琴8个音阶琴键,使用时只能同时闭合一个开关。
在实际电路中,为达到起振条件AF》1,常用两个二极管与电阻并联,可实现类似于热敏电阻的功效。另外需要说明的是,理论上电路的初始信号是由环境噪声及电路本身的电压提供的。实际 *** 作时,为使现象更明显,也可通过对电路中的电容充电来实现。
另外,电路中的运算放大器芯片LM324工作电压要求是±5V,所以还需要用7809稳压管、整流桥等元器件制作带负电源的电源电路,同电子琴电路一块整合到电路板上,制作成可直接使用的完整成品。
单片机简易电子琴设计方案(四) NE555做的8键简易电子琴原理图:
实物图:
单片机简易电子琴设计方案(六)
电路工作原理:Rp1~Rp13为电子琴的音阶电阻,也是振荡器的定时电阻,C2为宽放电电容,S1—S13,为琴键开关。按下S1一S13中的任一个,比如按下S1,则+6V电源经Rp1,和S1向C2充电。因充电初始C2端电压为零,故VT1不能导通。此时+6V电源经R为VT2提供基极偏置,VT2导通,电流经VT2的c、e极流过扬声器,并在扬声器两端产生较高的电压降。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)