首页 > 范文大全 > 正文

基于单片机的MP3播放器设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于单片机的MP3播放器设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘要】文章讨论了以AT89C51SND1C为主芯片的MP3音乐播放器设计,结合A/D、D/A转换电路、音频解码、数据存储等电路最终实现了MP3播放器最基本的播放控制。该系统具有低功耗,易扩展,性价比高等特点,有很强的市场竞争能力和实用价值。

【关键词】MP3;AT89C51SND1C;USB;音频解码

1.总体设计方案

通过对MP3播放器基本工作原理的分析,确定MP3播放器的几个组成模块:CPU、解码芯片、Flash存储器、USB接口芯片、音频DA芯片、LCD液晶显示芯片。以Atmel公司生产的AT89C51SND1C芯片作为MP3播放器的主控芯片、64M的Flash存储器K9F1208作为存储单元、USB接口、音频DA芯片PCM1770及液晶显示屏LCD12232等共同构成MP3播放器系统,系统结构框图如图1所示。

图1 基于AT89C51SND1C的MP3播放器设计方案结构框图

图2 AT89C51SND1C电路原理图

2.主要硬件设计

2.1 以AT89C51SND1C为核心的主电路设计

AT89C51SND1C是Atmel公司专门针对MP3设计需求研发的一款多媒体8位微处理器,该芯片对电路的高度集成大大降低了系统的耗电和发热,提高了系统的稳定性和速度,抗干扰能力也显著增强。AT89C51SND1C具有如下的外设集成:

(1)MP3硬件解码器;可编程音频输出接口DAC;8位MCU C51;USB1.1控制器;内建锁相环PLL;多媒体卡接口适配器;SPI接口适配器;IDE/ATAPI接口;两路10位ADC,8kHz;44个通用I/O;两个16位定时器/计数器;硬件看门狗计数器;标准全工UART;两线主被动模式控制器;SPI主被动模式控制器;电源管理模块;同时还具备ISP和IAP功能,便于系统升级。

(2)AT89C51SND1C芯片内具有2KB RAM,64KB Flash程序存储器,支持通过USB接口在线下载固件。

(3)时钟电路FILT、OSCX1、OSCX2。FILT引脚上接的是一个PLL锁相环滤波电路,为MP3和USB接口提供更高的频率。OSCX1、OSCX2外接晶体振荡器,为系统提供20MHz工作频率。

(4)KIN0~KIN3为键盘中断输入引脚,外接键盘电路来完成MP3播放器的控制功能。S1为功能选择按键,使得MP3播放器可以执行三种工作模式:选曲控制,音量调节控制,音效调节控制。当MP3工作在选曲控制模式时,S2、S3可以选择播放前一首或后一首歌曲;当MP3工作在音量调节模式时,S2、S3可以调节音量的大小;当MP3工作在音效调节控制模式时,S2、S3可以增强或是减弱低音效果。S4为MP3播放/暂停按键。AT89C51SND1C的引脚1外接的S5是ISP按键,用于系统编程调试模式和U盘存储MP3歌曲模式,完成系统固件的下载。

2.2 USB接口电路设计

AT89C51SND1C的USBDP、USBDN两个引脚通过电路接到USB设备插口上。IO端口P3.4用于检测USB电缆上的电压,判断有无USB电缆插入,从而决定系统是执行U盘功能还是MP3播放功能。

2.3 音频D/A转换电路设计

音频转换芯片采用的是TI公司生产的PCM1770音频DAC芯片,低电压、低功耗,主要应用于便携式播放器、手机等。将解码器解码的音频信号送入DA芯片PCM1770中,转换为模拟信号,最后由输出的模拟信号驱动耳机,电路如图3所示。

图3 音频D/A转换电路

2.4 Flash存储系统设计

选用Samsung公司生产的64M Nand Flash存储器K9F1208。可实现程序自动擦写、页程序、块擦除、智能的读/写和擦除操作,内部有命令寄存器。

2.5 电源电路设计

电源电路部分包括升压芯片MAX856和降压芯片AS1117,由于AT89C51SND1C内部CPU的工作电压要求为3.3V,因此需要为MP3播放器系统提供合适的工作电压,当电路由1.5V工作电压的5号电池供电时,通过升压芯片MAX856可以为系统提供3.3V稳定的电压;当电路由USB供电时,插入USB电缆,电路获得5V电压,再通过降压芯片AS1117后,可以将5V电压降为3.3V供系统使用。

3.系统软件设计

3.1 软件设计思路

硬件是设计的基础,软件则是设计的灵魂。软件是整个控制系统设计的核心,具有很高的灵活性,硬件结构一定的情况下,不同的软件设计可以使系统完成不同的功能。

图4 MP3播放器软件设计方案结构框图

软件的设计方法通常可以采用模块化的设计方法,也就是将整个系统所要完成的功能划分为几个部分。基于MP3播放器系统功能的构成,软件分为主控程序、MP3播放程序、U盘程序这三个主要结构。软件设计方案结构框图表示如图4所示。

3.2 主控程序设计

主控程序的功能是通过检测USB_INS (P3.4)的电平来决定系统是执行MP3播放功能还是U盘功能。

3.3 MP3播放程序设计

在每首mp3歌曲播放的时候,会调用初始化函数对歌曲进行初始化,功能是解析mp3文件头,获取采样率等信息并正确设置MP3解码器的时钟参数。采样率等信息设置好后,需要将找到的帧头本身以及当前扇区内剩下的数据送到MP3解码器,使得MP3解码器具有从帧头开始的完整信息。从开始往MP3解码器送数据之前要使能解码器并使DA芯片退出静音状态,只要填充数据后就会有解码后的声音出现。

MP3各部件初始化后,如果处于播放状态,解码器开始工作,并一直向CPU请求数据,直到歌曲结束。

3.4 键盘控制程序设计

当执行MP3播放程序的时候,需要通过按键操作来控制MP3歌曲的播放,以实现用户所需要完成的功能。键盘对MP3播放过程的操作包括播放/暂停功能、选曲功能、音量调节功能以及音效调节功能。

3.5 U盘相关程序设计

当MP3播放器插入USB接口时,系统执行USB通信功能模块,此时MP3播放器变为一个USB海量存储设备,实现对Flash存储器内数据文件的管理。固件程序是开发的主要工作,由于AT89C51SND1C芯片没有外部中断引脚,USB没有中断向量地址入口,所以该固件程序设计的框架采用查询工作方式。

由于系统具有U盘功能,所以Flash存储器内文件应该能够让计算机读写和识别。换句话说,也就是说所有的文件都应严格满足计算机文件系统的格式要求。

3.6 LCD显示程序设计

LCD显示程序是针对外接的12232系列点阵图形LCD编写的驱动程序。为了能显示当前播放歌曲的名称,应将下载的汉字库文件和歌曲文件一并放入Flash存储器中,再结合LCD硬件的时序和命令定义,编写发送命令函数和发送数据函数,来实现对LCD12232显示模块的控制。

参考文献

[1]张雷,刘小娜.基于AT89C51SND1C的MP3播放器设计[J].河南机电高等专科学校学报,2005(6).

[2]博创科技.MP3播放器与U盘设计[M].北京:清华大学出版社,2004.

[3]谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2005.

[4]晁阳.单片机MCS-51原理及应用开发教程[M].北京:清华大学出版社,2007.

[5]李秀霞,郑春厚.Protel DXP 2004电路设计与仿真教程(第二版)[M].北京:北京航天航空大学出版社,2010.