基于51单片机的音乐播放器音乐盒仿真原理图方案设计
硬件电路设计
(下方附文件)
设计框图:
原理图:
仿真图
软件程序设计
单片机发声概述
一般来说,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅度的谐振频率。单片机演奏的音乐基本都是单音频率。因此单片机演奏音乐比较简单,只需能清楚“音调”和“节拍”两个概念即可。 音调表示一个音符唱多高的频率。 节拍表示一个音符唱多长的时间。
知道了一个音符的频率后,便可以让单片机发出相应频率的振荡信号,从而产生相应的音符声音。通过单片机的定时器进行定时中断,在中断服务程序中将单片机上完结单片机I/O口来回置高电平或者是低电平的,从而让扬声器发出声音。通过节拍计算出每个音符所需要的时间,采用循环延时的方法来实现控制一个音符唱多长的时间,从而构成一首完整的音乐。
音调主要由声音的频率决定。对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随响度增加而下降,高频纯音的音调却随响度增加而上升。
音调的高低还与发声体的结构有关,因为发声体的结构影响了声音的频率。大体上,2000 赫兹以下的低频纯音的音调随响度的增加而下降,3000 赫兹以上高频纯音的音调随响度的增加而上升。
例如,在音乐中常常把中音C上方的A音定位标准高音,其频率F=440HZ,其余音均与其进行比较。F1和F2为两个音符,如果这两个音符的频率相差一倍时,也即F2=2*F1时,则称F2比F1高一个频程。
在音乐中音符1与音符2,音符2与音符3……等等之间正好相差一个倍频程,在音乐学中称它相差一个八度音。在一个八度内,有12个半音。由于人耳的听觉效果,这12个音阶的分度基本上是以对数的关系来划分的。只要知道12个音符的音高,也就是其基本频率,就可以根据音符之间的倍频关系得到其他音符的基本音调频率[3]。
以标准高音A的频率F=440HZ,其对应的周期为: T=1/F=1/440=2272us
因此需要在单片机I/O端口输出周期为T=2272us的方波脉冲,也就是t=T/2=2272/2=1136us
也就是说,单片机上定时器的中断出发时间为1136us。如果单片机采用定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。设外接晶振的振荡器频率为f,则定时器的预置初始值有以下公式来确定:
Temp = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC)
TH = Temp /256
TL = Temp %256
.
链接:https://pan.baidu.com/s/1cdIQ3qeu4g-Hp6axz8N_5w
提取码:lov4
.