摘要: 由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。
单片机简易电子琴设计方案(一)
设计一简易电子琴,要求能够发出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的频率之比都是整数之比。
为了发出某一特定频率的乐音,可以控制单片机的一个I/O口产生该频率的方波信号,经过电流放大后驱动蜂鸣器发出该乐音。对于方波的产生,可以启用单片机的一个定时器进行计时,产生溢出中断。中断发生时,将输出引脚的电平取反,然后重新载入计数器初始值。
因此,正确的设置定时器的工作模式和初始计数值是发出乐音的基础。例如中音l,其频率是523Hz,则周期为T=l/523=1912μs,半个周期为956μs。根据单片机计数器计数的机器周期,就可以算出计数器的预置初始值应为多少。
例如,假设采用的单片机的一个计数周期需要12个时钟周期,当采用12MHz晶振时,一个计数周期即lμs。要定时956μs,只需设置其计数初值为计数最大计数值减去956。对应不同的按键,调节Tl的溢出时间,即可输出不同频率的乐音,这样就实现了简易电子琴的设计。
形成每个乐音音高的频率是固定的,下表列出了一个8度以及其上下共16个音的音名、频率及定时器Tl初值对照(设晶体频率为12MHz)。
该简易电子琴的硬件电路设计较简单,通过Pl口进行按键扫描,从P0.1口输出方波信号,经三极管放大后驱动蜂鸣器发出声响。系统硬件电路如下图所示。
了解更多相关设计技术信息,请点击华强旗舰电子圈(http://www.hqbuy.com/dzq/dzqsy.html)!
社群二维码
关注“华强商城“微信公众号
Copyright 2010-2023 hqbuy.com,Inc.All right reserved. 服务热线:400-830-6691 粤ICP备05106676号 经营许可证:粤B2-20210308