您当前的位置:五五电子网电子知识电子学习基础知识电脑-单片机-自动控制浅谈单片机唱歌汇编程序 正文
浅谈单片机唱歌汇编程序

浅谈单片机唱歌汇编程序

点击数:7991 次   录入时间:03-04 11:36:20   整理:http://www.55dianzi.com   电脑-单片机-自动控制

  单片机的应用目前已经渗透到触手可及的领域。在音响产品中的应用早已经比比皆是,它不仅可以用来制作电子琴、混响器等,音响器材中储存的国歌、警报声等乐曲也是单片机奏乐的应用。有很多人觉得单片机奏乐很神秘,其实单片机奏乐的硬件很简单(见下图,输出也可以用其他任意p口).只是软件有点复杂。常见的单片机唱歌汇编只介绍C调歌曲的编制方法,适合范围窄.下面从初学者的角度出发.教您学会编制单片机唱任意曲调歌曲的汇编程序方法。本文程序笔者用Proteus7.6软件仿真成功。用自制的ISP下载线下载到用万能板制作的AT89S52单片机实验板上也试验成功。

单片机奏乐硬件电路


  
  一、单片机演奏音乐的方法
  
    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。

1258634




本文关键字:单片机  唱歌  电脑-单片机-自动控制电子学习 - 基础知识 - 电脑-单片机-自动控制

上一篇:PLC程序验证方法

《浅谈单片机唱歌汇编程序》相关文章>>>