电子音乐播放器的设计与实现.docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
电子音乐播放器的设计与实现 电子音乐播放器的设计与实现全文共2页,当前为第1页。 摘要: 本文主要使用通用的8位单片机和语音驱动电路来实现音乐播放器的设计与实现,从硬件电路设计和软件程序设计两方面进行深入的阐述。该设计能够完成音乐歌曲的存储、音频解码和播放,还可通过数码管显示播放音乐的信息。 Abstract: This paper uses the generic 8 -bit single chip microcomputer and voice driven circuit to realize the design and implementation of a music player, expounds the two aspects of hardware circuit design and software program design in-depth. This design can complete storage, audio decoding and playing music songs, and also can show the music information through digital tube. 关键词: 单片机;音乐播放器;音频功放电路;蜂鸣器 Key words: single chip microcomputer;music player;audio power amplifier circuit;buzzer 中图分类号:TP316.5 文献标识码:A 文章编号:1006-4311(2014)13-0189-02 0 引言 现实生活中,有很多电子产品需要播放音乐以实现某些提醒功能,例如音乐门铃通过按键触发芯片里的音乐编码通过扬声器发出电子歌曲,微波炉计时结束时通过音乐提示人们加热完毕。利用单片机实现这种简单音乐的播放有很多优点,其外部电路相对简单,控制比较方便,可以存储多首歌曲并能通过下载程序进行更新,因此很受电子开发人员的青睐。本文主要介绍如何利用AT89S51单片机和音频驱动电路来的设计来实现电子音乐播放器的实现。 1 设计流程及思路 本文的设计思路主要是包括以下三个方面:首先要认真分析音乐产生的基本原理;其次要结合单片机的内部结构找出发出不同频率的实现方法;最后完成硬件电路原理图设计和软件程序设计。 1.1 音乐产生的原理 音作为一种物理现象,是由于物体振动而产生的,人耳能听到的声音频率大约在11-20000Hz,而音乐使用的频率一般在27-4100Hz。声音频率在音乐中叫做音阶,一首音乐是许多不同的音阶组成的,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了。对于单片机来说,产生不同频率的可以使用内部的定时器,通过产生不同周期的脉冲来产生方波频率信号。在使用中需要注意的是,根据某一音阶的频率就可知道它的周期,必须将周期除以2,得到的半周期的时间才是我们用定时器定时的时间,这是由于脉冲是由各1/2的高低电平组成。在本文中,单片机工作在12MHz时钟频率下,对应的时钟周期为1us,使用内部定时器T0,采用工作方式一,改变TH0,TL0的数值即可改变不同频率的脉冲信号,根据上面叙述的原理,得到下面求计数值的 公式: T=65536-Fi÷2÷Fr 其中,Fi:单片机内部脉冲周期,当为12MHz晶振时此值为1MHz;Fr:产生音阶所需要的频率。 通过上面的公式,得到C调各音阶频率与计数值T的对照表如表1所示。 节拍是组成音乐的另外一个关键部分,在单片机系统中可以通过延时函数来实现。如果1/4拍的延时设为0.2s,那么1拍的时间就为0.8s,依次类推。节拍的延时时间值与音乐的曲调值有相对应的关系。表2是各调节拍的时间设定。 1.2 音频功放方案选择 对于单片机来说,普通IO口的驱动能力不能直接使得蜂鸣器或扬声器播放音乐,因此需要在单片机IO口和发声器件之间连接功率放大电路。常用的功率放大电路有两种方案,一种是用三极管音频功放电路,一种是基于LM368的音频功放电路。由于三极管音频放大电路所需要电子元器件多,电路硬件设计复杂,故放弃这种方案,选用LM368音频放大电路,其优点是采用集成电路封装,外围元器件少,静态功耗低,电源电压范围宽,效率高,失真度低。 2 硬件电路原理设计 硬件电路图主要由AT89S51单片机基本电路、LM386音频放大电路和扬声器3部分组成。硬件原理图如图1所示,主要包括单片机最小系统,采用上电复位和12MHz晶振,P1.0输出音频信号;发声部分由LM386和扬声器组成。P1.0输出的脉冲信号经过R1和R2组成的回路输入到LM386的IN+脚,经LM386整理的信号从VO
- 粉丝: 168
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- mybatis动态sql及其JAVA示例
- 微软常用运行库 游戏运行库 VC++各个版本
- 微信小程序开发教程.pptx
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- 锐捷网络认证中心网络管理.pdf
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- SD8233LF是一款用于单按键触摸及接近感应开关,其用途是替代传统的机械型开关芯片IC
- 基于YOLOv5的烟雾火焰检测算法研究
- 基于STM32的联合调试侦听设备解决方案原理图PCB源文件调试工具视频(大赛作品)
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据