×
单片机 > 单片机程序设计 > 详情

AT89S52单片机的多功能音乐播放器

发布时间:2021-06-10 发布时间:
|
1 引言
   
目前流行的MP3,MP4播放器的音质相当好。但略感遗憾的是除了选择歌曲和显示歌名外,绝大部分播放器没有诸如随意弹奏乐曲、乐曲节奏跳动显示等功能。正是基于音乐播放器的多功能出发,提出一种多功能音乐播放器的设计方案。

2 硬件电路设计
   
整个硬件电路是由中心控制、播放、选曲、显示、电子琴和彩灯等模块组成。该硬件系统框图如图1所示。

2.1 中心控制模块
   
目前应用较为流行的单片机有AVR和51单片机。从系统设计的功能需求及成本考虑,51单片机性价比更高,AT89S52是拥有2个外部中断,2个16位定时器,2个可编程串行UART的单片机。中心控制模块采用AT89S52单片机已完全满足设计需要,实现整个系统控制。
2.2 播放模块
   
播放模块是由8550 NPN三极管和电磁蜂鸣器组成。AT89S52输出高电平控制信号,启动8550 NPN三极管使信号放大,从而启动电磁蜂鸣器。与LM386和喇叭的组合相比较,该播放模块存在一定噪声.音响效果较差。但由于所需驱动功率较小,驱动器件要求不高,并能降低设计成本。因此,必须选用8550 NPN三极管和电磁蜂鸣器则能满足系统要求。
2.3 显示模块
   
常见的基于单片机设计的音乐播放器基本不能显示歌曲。该音乐播放系统设计上增加液晶显示器,可为使用者提供曲目信息。由于LED数码管只能显示数字而无法显示其他中英文字符,并对成本及功能考虑,因此从设计的成本及功能的角度考虑,采用LCD一1602显示模块,它可以显示每首曲目的英文名字。LCD一1602驱动电路简单,可以由单片机直接输出命令驱动,其电路图如图2所示。

2.4 电子琴模块
   
电子琴设有8个按键,其中7个作为音符输入,另外1个作为模式转换按键,实现用户自弹作曲。7个按键分别代表7个音符,包括中音段的全部音符。通过软硬件设计,模式转换按键触发外部中断,中断使程序跳转,实现模式转换,启动电子琴。然后通过查询电子琴所按下的按键,读取电子琴输入状态,跳转到对应的程序人口,实现自编歌曲。当需要取消电子琴编曲功能时,再次按下模式转换按键引起外部中断.即可退出电子琴功能而返回到原来音乐播放处。

3 软件程序设计
   
系统初始化后,进入默认播放功能。开始从第一首曲目开始循环播放。如果启动中断,判断是否为模式切换。如果是,则进入自编曲电子琴功能,实现自弹自编。如果不是,则继续循环播放内设音乐。播放过程中如果出现跳选曲目.则进入相应的曲目程序.程序设计流程如图3所示。

[page]

    通过Time0的溢出中断实现单频产生。Time0的溢出中断发生后输出引脚的电压反向,然后定时器重新装入初值。所以编程时要确定Time0的工作模式和计数初值。这里采用工作模式1,定时器的初值设定通过软件重复实现。而且定时器的初值则依据各音频频率设置。例如:中音Do音频是523Hz,其周期T=l/523=1 912μs,其半周期为1912/2=956μs。本设计的计时时钟周期是lμs,因此设置TimeO的计数器每计956次则中断一次,从而实现Do的音频,然后通过中断触发实现引脚电压的循环取反得到相应音频输出。图4为液晶显示的编程流程框图。

    自编音乐和自动播放2个模式转换的程序设计,代码如下:

   

4 仿真与结果
    采用绘制电路图软件PROTEUS和用于编写程序的KeilCμVision2实现系统设计的仿真。图5为PROTEUS仿真环境下的硬件电路图。在KeilC μVision2中创建一个新项目,然后在PROTEUS中为该项目加入Keil C源程序。调试后,结果和设计目标完全吻合。上电后液晶显示器显示“Wel-come!”,接着显示第一首歌曲名字,连续播放直到手动选择。同时4盏彩灯随着音乐节奏闪动。按下模式转换按钮,可以弹奏用户喜欢的音符和乐曲。

5  结语
   
该设计实现了多功能音乐播放器预期的基本功能和指标。采用单片机最小系统和汇编语言,扩展一般音乐播放器的功能,实现了自弹自唱和自动播放两种模式的转换,并且能显示音乐的节拍跳动和歌曲英文名字。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机中断源的扩展方法