茶馆音乐播放器的设计

2016-11-02 23:28丁磊
电脑知识与技术 2016年23期
关键词:多功能

丁磊

摘要:基于AT89S51单片机的多功能音乐播放器的设计是高职院校“单片机原理及应用”课程教学中可以选用的很好教学案例之一,本文给出了该教学案例的具体设计思路与实现的方法。

关键词:AT89S51单片机;多功能;音乐播放器

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)23-0169-02

1 任务设计要求及方案确定

1.1 设计要求

音乐播放器是现在非常流行的电子产品。本文所要设计的多功能音乐播放器,要求如下:

1)可以播放多首歌曲;

2)可以通过按键选择需要播放的歌曲;

3)选择需要播放的歌曲时,歌曲名称要在LCD屏幕上显示;

4)播放的歌曲声音要清晰。

1.2 方案确定

由设计要求可知,总体设计中,包括主控单片机,LCD显示器模块以及歌曲选择按钮模块。多功能音乐播放器设计如图1所示。

2 具体实现过程

2.1 硬件电路设计

本设计中的硬件电路设计关键的控制器件是LCD显示器、扬声器以及按键。多功能音乐播放器硬件电路,如下图2所示。

本设计中控制电路在精度上要求不高,所以我们选用带4K字节FLASH存储器的AT89S51单片机就可以满足设计要求。

本设计中我们通过AT89S51单片机的P2.7引脚端口来传送出各种频率的信号源,再通过放大之后传送至喇叭处,P2.7引脚端口发送出的频率控制喇叭发出声音。

LCD是使用12864LCD显示器,显示数据通过单片机的P0引脚来传送。

本设计可实现10首歌曲的播放,因此,按键应有10个。由于涉及的电路元件及I/O引脚都比较少,因此,这里采用10个I/O引脚分别连接一个按键的方式来实现设计要求。本设计中,P1口的P1.0-P1.7以及P2.0、P2.1引脚分别连接按键K1-K10。按键未与I/O引脚连接的一端是与地相连的,因此,当有按键动作时,低电平就会送入I/O引脚中。

扬声器只有两根连接线,一端连接系统正电源,另一端与单片机的P2.7相连。当P2.7输出低电平时,扬声器将导通;当P2.7输出高电平时,扬声器将关闭。如此反复,就可以产生一定频率的歌曲了。

2.2 软件编程及调试

本设计中主要是必须处理好音乐歌曲码以及LCD显示器的字符显示码。程序流程图如图3所示。

音符的产生过程:

1)要让单片机发出声音频率的脉冲信号,就必须要计算得出这一声音频率的时间周期。然后我们利用AT89S51单片机内部的定时/计数器对这一声音频率的半周期进行计时,每当这个半周期计时完成后就将输出脉冲的I/O反相,接下来我们重复此操作,就能够在I/O引脚上得到此声音频率的脉冲。

2)我们利用AT89S51单片机内部定时/计数器,使其在计数器工作方式0下,通过定时/计数器计数初值THO、TLO的改变,用以产生不同的声音频率的方法。

3)其计数值的计算方法如下:

编写音乐代码过程:

根据简谱,依次找出每个音符代码及节拍码,按照把音符码放在高4位节拍码放在低4位的方法组合成一个字节,并建立一个表格按顺序存放,则通过顺序查表的方式,就能获得音符及节拍的信息。

歌曲方面应先找到歌曲的简谱,然后对照每个音符的频率值计算出初值,再在程序中列出节拍和音调值。这样程序运行时只需检查这些值即可实现歌曲要求的声音播放。

LCD显示的字符码方面,本设计中要求在音乐播放的同时,在LCD上显示歌曲的名称。歌曲名都是汉字,可以通过LCD自带的汉字字符码转化程序,获取歌曲名称对应的字符码,然后再将LCD字符显示的相关程序作为子程序添加到源程序中,供主程序调用即可完成这部分的设计。

主程序主要先进行LCD显示器的初始化,然后检测是否有按键的动作,若有动作,则播放相应按键对应的歌曲,并将对应的歌曲名显示于LCD上。播放歌曲过程中,若有新的按键动作,则停止播放,转而播放新按键对应的歌曲,并将新的歌曲名称显示于LCD上。当播放遇到结束音符时,播放停止,程序等待下一次的按键动作。

猜你喜欢
多功能
浅谈建筑装饰材料的发展趋势
多功能可伸展照明双层晴雨吸附雨伞
“多功能”收音机 来电申领