基于单片机的音乐播放器的仿真与制作
2022-07-02
来源:步旅网
第12卷第12期 2010年12月 罐筛雾学 Vo1.12 No.12 Dec.2O10 doi:10.3969/j.issn.1563-4795.2010.12.016 基于单片机的音乐播放器的仿真与制作 远飞 (无锡商业职业技术学院,江苏 无锡214153) 摘 要:为了解决专用音乐播放芯片只能一次性烧录、播放内容不可变的缺点,文中给出了 采用单片机来设计音乐播放器,同时通过Pr0teus软件对基ff-AT89S52单片机的音乐播放器进 行仿真的实现方法。利用该方法设计的播放器的播放内容和歌曲数量可以随时修改。 关键词:单片机;音乐播放器;Proteus 0 引言 播放音乐。 事实上,按照图1所示原理图来焊接电路, 播放音乐最简单的方法就是采用专用音乐芯 其结果可能没有任何效果。而图2所示才是单片 片,该方法的缺点是音乐芯片只能一次性烧录, 机音乐播放器的实际制作电路。与图1相比,实 播放的内容不可变。而采用单片机播放音乐则能 际电路多了两个部分:一是单片机左边最小系统 克服这一缺点,其播放的内容以及歌曲的数量都 所需的电路部分,而仿真软件中则将这些省略 可以随时修改。同时,使用软件Proteus在产品开 了:另一个是单片机右边多了一个三极管。之所 发的初期对设计进行仿真无疑是一种提高效率和 以要加这个三极管.主要是为了放大蜂鸣器的驱 降低成本的好办法,但是仿真毕竟有一定的局限 动电流.而仿真软件里面所有的元件都是理想元 性,要实践起来可能会碰到一些问题。为此,本 件.所以.仿真能实现的效果,实际做出来往往 文通过Proteus软件对用AT89S52单片机播放音乐 没有效果。因此,要想在实际中实现满意的效果 进行了仿真,指出了实际制作过程中需要注意的 U1 地方 1硬件电路设计 1.1仿真软件Proteus简介 Proteus的ISIS是一款Labcenter出品的电路分 析实物仿真系统,可仿真各种电路和IC,它支持 单片机且元件库齐全,使用方便,是不可多得的 专业单片机软件仿真系统。目前可支持的单片机 类型有68000系列、8051系列、AVR系列、PIC12 系列、PIC16系列、PIC18系列、Z80系列、HC11 系列以及各种外围芯片。 1.2 电路设计 图1所示是单片机音乐播放器的仿真原理图。 在Proteus仿真软件中。按一下按钮,蜂鸣器即可 收稿日期:2010—08—11 图1仿真原理图 WWW.ecd ̄cn 2010.12 电子元嚣件盔用47 第12卷第12期 电子元器件主用 Electronic Component&Device Applications Vo1.12 No.12 Dec.2010 2010年12月 由于各个音调对应的频率是已知的,因此, 。 cR}f。 P0 0/AD0 PO1/AD1 P0 2fAD2 播放音乐时,应对乐曲中出现的音调进行编码, i并找出单片机播放这些音调所对应的定时初值。 旧 一盯 }1 l一 表1所列是音调编码与定时器的初值表,其中频 一5 率是已知的,编码可以自己设置,而定时初值是 XTAL2 P0 3,AD3 P04/AD4 R2 怎样得来的呢?下面以“低6”为例进行说明。 “低6”的频' ̄f;Y;/440 Hz,其对应的周期为: l/440=272 txs。单片机上对应蜂呜器的I/0口来 PO 5,AD5 1OkQ 一Ⅱ__ C1 一粥一”一 一 一 一鸲一弛一 一 一 一 一 一 一 一 pO 7/AD7 P06,AD6 ll 1/ 10 uF P2 0/AD8 P21,AD9 29 P2 2/AD10 — PSEN P2 3 D11 3O ALE P24/AD】2 31 EA P2 5/AD13 P2 6,ADl4 P2 7/ADl5 0 l 2 3 4 口④ 5 一6 7 _—— 9C f] 2软件设计 2.1播放原理 声音的频谱范围通常约为几十到几千赫兹, 通过程序控制单片机的I/0口可输出不同频率的 矩形波。当该矩形波的频率位于声音频谱范围内 时,在单片机的I/0口接上喇叭就能发出声音。 然后利用延时程序控制矩形波的高、低电平持续 时间.即改变矩形波的频率,即可产生不同的音 调.从而发出不同的声音,再让矩形波输出的长 短对应节拍.就可以实现单片机对音乐的演奏。 2.2音调和节拍编码 单片机奏乐只需弄清楚两个概念,也就是 “音调”和“节拍”。音调表示一个音符唱多高的 频率,节拍表示一个音符唱多长的时间。 48 电子元器件主用2010.12 WWW.ecdo.cl ̄ 回取反的时间应为:拉T/2=227212=1136 p,s。单 片机奏乐时,其定时器为工作方式1,若以振荡 器的十二分频信号为计数脉冲,如果单片机晶振 为12MHz,则1 s计数一次。所以,对于“低6”, 其定时器的初值应该是:216_1136=64400。 对节拍的控制可通过延时程序来实现。表2 所列是节拍编码表。若以1拍的时长为400ms为 例,1/2拍的时长为200ms,1/4拍的时长为lOOms。 首先,这样,确定一个基本时长的延时程序,比 如以lOOms为基本延时时间.那么,1/4拍可以调 用一次延时程序,1/2 ̄fl需调用二次延时程序,l 拍需调用四次延时程序,依次类推。 2.3 编程 音调和节拍都进行过编码后,那么,一首乐 曲就可以用若干个8位的简码表示。比如“生日 快乐歌”的第一个简码是“82H”,由表1可知, 表1 音调编码与定时器初值表 2卷第参考 Vo1.12 NO.12 2010 ̄V12 月 期 辔 Dee.2O10 其高四位“8”表示音调“中5”,对应的频率是 784Hz,对应的定时器初值是64898:另由表2可 知,其低四位“2”表示节拍为“2/4拍”。这样, 任意一首乐曲的简码都可以通过乐谱提取软件获 得.而得到简码后,就可以编程了。图3所示是 单片机播放音乐的程序流程图。本文使用的是定 时器0,音调的高低由定时器来控制P3.7并按一 定频率取反实现 节拍的长短由延时程序控制。 流程图中的“TABLE”是由表1中的定时初值组 成的。 3 结束语 本文通过Proteus ISIS对单片机音乐播放器进 行了仿真,并在仿真的基础上制作了一个音乐播 放器实物,其音乐播放的效果很好。作者通过仿 真与制作,对这两者进行了比较与总结,并给出 了两种电路图及程序流程图,希望能成为读者的 参考。 参考文献 [1] 贺辉,张来希.用单片机演奏音乐fJ].职业,2O08,(21): 图3程序流程图 99—100. [3] 远飞.基if-Proteus@LED滚动屏幕的设计与仿真[J1 【2】 郁玉龙,赵宁.用单片机设计电子音乐门铃【J].电子制 电子元器件应用,2009,(06):38—40. 作,2007,(04):28~29. (上接第46页) 3 结束语 【2] 金杰,王松林,来新泉,曲玲玲.共模反馈环路稳定性 分析及电路设计【JJ.电子元器件应用,2009,11(2): 本文基于全差分运算放大器的共模反馈原 47-53. 理.设计了一种新的电流控制型高增益共模反馈 【3】 毕查德.拉杂维.模拟CM0S集成电路设计[M].陈贵灿, 电路,该电路的增益可以达 ̄lJ95dB,环路相位裕 程军,张瑞智,译.西安:西安交通大学出版社,2003. 度为50。,建立时间为150ns。将这种共模反馈电 f4】 陈殿玉,岂飞涛,秦世才.一种提高共模反馈稳定性 路运用于一级的全差分运放中,可以保证运放的 的新方法【J】.南开大学学报,2007,4O(2):83—86. 【5】 刘婷婷,喻明艳.带共模反馈的CMOS折叠式高增益 正常工作 运算放大器【J].应用科技,2005,32(1 2):16-18. 参考文献 【6】H.Recoules,R.Bouchakour,P.Loumeau.Two SC-CMFB networks used in fully differential O TA:measurements 孙艳,吴建辉,陆生礼,袁文诗.一种动态开关电容运 and improvement lJ].IEEE midwest symposium on 算放大器其模负反馈电路[JJ_电路与系统学报,2004, systems and circuits,1999,8(5):352. 9(1):55—58. www,ecda.cn 2010.12 电子元器件主硐49