首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于AT89C52单片机音乐播放器的设计
来源:本站整理  作者:佚名  2011-12-05 06:58:43



  利用AT89C52单片机设计音乐播放器,主要是运用它的定时器产生不同的频率,通过输出端输出电平到扬声器播放音乐。

  音乐由音符组成,不同的音符由不同的频率产生,用单片机的定时器产生与音符相同的频率,这样就能播放音乐。该播放器具有电路结构简单、成本低廉、功能强大等优点。  
  
  产生不同的音频需要有不同固定周期的脉冲信号,要产生音频脉冲,只要算出某一音频的周期T,然后将周期除以2,得到半周期的时间。用单片机内部定时器TD使其工作的工作方式l下,通过初始化TLO、THO的值,以计时半周期。每当计时时间到后,就将输出脉冲的P1.0口反相,然后重复计时此半周期时间,再对P1.O口反相,就可在单片机Pl.0引脚得到该频率的脉冲。

  Pl.0引脚接音频功放,然后输出到扬声器,就可以播放音乐了。

  单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能像电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念,即“音调”和“节拍”。

  音调表示一个音符唱多高的频率,音乐中有7个基本音符DO、RE、Ml、FA、so、LA、SI.再加上5个半音Do#、RE#、FA#、s0#、LA#共12个音符,此外还有低、中、高3种音,一共有36个音调,即36个频率,其对应频率见下表。

  设单片机晶振为12MHz.每计数一次用1μS。要产生低音LA,其频率为440Hz,周期T=1/440=2273μs,半周期时间为1137s.因此,计数器每计数1137次将Pl.0口反相,即计数初值设为THL=64399.TH0=256.TL0=143就可以得到低音LA。

  节拍表示一个音符唱多长的时间,如果l拍为0.4s,1/4拍就是O.ls。

  只要设定延迟时间,就可求得节拍的时间。假设1/4拍为ldelay,则l拍应为4delay,以此类推。所以只要求得1/4拍ldelay时间,其余的节拍就是它的倍数。在此将1/4拍的延时时间设为120ms,其他节拍是这个基本延时的整数倍,节拍码如下表所示。

  timero Ointerruptl,对应不同音符,此函数将产生相应频率的脉冲

 

关键词:

·上一文章:电机控制解决方案
·下一文章:直热管灯丝供电电路

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:28,806.64000 毫秒