您的位置:网站首页 > 电器维修资料网 > 正文 >
浅谈单片机唱歌汇编程序
来源: 日期:2013-11-5 23:27:18 人气:标签:
一、单片机演奏音乐的方法
1.单片机发声原理
声音的频谱范围大约在几十赫兹到几千赫兹.若用程序控制单片机的i/o口,使其输出一定频率的的矩形波,经放大电路放大,就可以驱动喇叭或蜂鸣器发出一定频率的声音。具体地说要产生音频脉冲,只要知道某一音频的频率,就可以算出其周期f频率的倒数),除以2得到半周期。利用单片机的定时器计时这半个周期的时间,计时到后将脉冲倒相后从i/o口输出,然后重复计时此半个周期时间,再对i/o倒相,就可以在i/o口上得到此频率的脉冲。51单片机内部定肘,计数器计数,工作于模式1. 大计数次数为65536.所以要选择模式1.改变t值.在i/o脚得到不同频率的脉冲。
2.t值计算方法如下:
t=65536-fi÷2÷fr注:fi:因单片机晶振,频率为12mhz,计时一次为lus,所以fi=1000000hz;若单片机晶振为6mhz,计时一次为2us,所以fi为500000hz;fr为要产生的频率:例如单片机晶振为12mhz,c调的低音l频率为262hz,根据上述t值的计算公式可求得t=63628,转换为16进制是f88ch。
3.如何得到不同音调下音符的t值
根据音乐知识知道,十二平均律以八度为一个倍频程,在一个八度中分出十二个等程半音,钢琴键盘的大字组音调从低到高依次是c、#c(bd调与#c调音高相同,就是bd调与#c调的相同音符频率相同,下周)、d、#d(bd调与*d调音高相同)、e、f、#f(bg调与#f调音高相同)、g、#g(ba调与#g调音高相同)、a、#a(bb调与#a调音高相同)、b.每个等程半音的音程是2的12次方=1.0593631.即相邻两个音调的相同音符的频率关系是:音调高的是低的2的12次方倍。这个规律适用于钢琴的所有键盘,即适合所有音调。钢琴键盘(88个)自左向右(频率逐渐升高)依次是!
大字二组:a2、#a2、b2;大字一组:,排列规律同大字组.从ci到b1共12位;大字组:c、#c、d、#d、e、f、#f、g、#g、a、#a、b:小字组:排列规律同大字组,从c到b共12位:小字一组:排列规律同大字组,从cl到bl共12位:小字二组:排列规律同大字组,从c2到b2共12位:小字三组:排列规雄同大字组,从c3到b3共12位:小字四组:排列规律同大字组,从c4到b4共12位;小字五组:只有c5。
【看看这篇文章在百度的收录情况】
相关文章
- 上一篇: 何谓”点屏“
- 下一篇: 几款常用的电源相序测试法