已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
四川师范大学成都学院本科毕业设计内容摘要:本课题的主要工作是对以AT89C51单片机为基础搭建的播放器的工作流程和设计经过进行了介绍与说明,之后两首歌曲的演奏为例子,把演奏过程分为了几个模块,然后通过硬件和软件分别对程序进行编辑和设计,具体表现了单片机在生活中的具体应用,音乐在生活中随处可见,关于音乐的播放器也在生活中随处可见,利用单片机来设计一个音乐播放器,能够降低生产成本的同时,还可以推进单片机在实际中的应用。 关键词:单片机 MP3 音乐 Design and implementation of a simple MP3 playerAbstract: This paper introduces the basic design process of the AT89C51 MCU MP3 player and work flow of the basic, and then to play two songs as an example, the performance is divided into several modules, and then the hardware and software to edit program and design, application specific performance of SCM in life, music is everywhere in our lives, about the music player is also can be seen everywhere in life, to design a music player using single chip computer, can make the production cost is reduced, the application of SCM in industrial development has a certain role.Keywords: Single chip microcomputer MP3 Music 目 录前言01 MP3课题研究的意义01.1 MP3播放器的简介01.2 MP3播放器的组成架构02MP3的编解码过程12.1MP3的工作原理12.2MP3播放器编码过程22.2.1音频信号数字化22.2.2音频采样22.2.3音频量化32.2.4音频编码42.3 编码过程42.4 MP3播放器解码过程63 MP3播放器的硬件设计与实现83.1 系统总体设计83.2 总体的电路设计93.3 单片机最小系统123.4 电路电源部分123.5 D/A转换部分133.6 控制部分154 MP3播放器软件设计与实现154.1 MP3播放器播放功能的设计154.2 MP3功能按钮设计174.3 USB通信功能程序设计174.4 播放与暂停的子程序设计184.5 曲目选择的子程序设计195结论206结束语21附录:参考程序2331简易MP3播放器的设计与实现前言 科学技术的持续深入发展,日新月异,各类产品的出现极大地丰富了当代人民的物质生活层面,当然人们的需求也同样地有了更高的水平,这就必须要求科学技术进行不断的进步,对于学习通信的人来说,这更是一个挑战,必须要有最新,最前沿的科学技术,才能胜任时代的进步和科学的发展。单片机是我们大学所接触的第一类硬件,是我们学习更为完善嵌入式技术的基础,单片机在我们的生活中可以说是随处可见,小到手机,平板电脑,大到电视机,家电等。因此,对单片机技术进行系统地学习与应用成为了目前实用的技术。现今,AT89C51处理器的外设资源丰富、性价比高,许多的嵌入式研发人员致力于它的开发与应用。以上述内容为前提,在本课题的开展过程中对AT89C51SND1C微处理器提出解码方案,不仅能够提升播放品质还可以减小硬件费用。在本设计中,采用了AT89C51系列单片机,将单片机和C语言技术结合起来,从而设计出一个能够播放几首歌曲的简易MP3,开发过程中,我们可以更进一步地应用单片机技术。 1 MP3课题研究的意义1.1 MP3播放器的简介30Mips是MP3音频播放器较为合理的工作速度,但是视频媒体播放器的工作速度通常为175Mips,因此最为核心的是改善MP3的音质,提升其工作速度,是目前需要强化的问题之一。作为嵌入式设备类型之一,市场上的MP3通常都是以闪存式制造的。因为容量受到闪存式结构的制约,其存储空间较小,歌曲数量不大,并不易于实现其多样化的功能。近年来开发的硬盘式MP3容量大功能丰富,因此更受到消费者的青睐。还有一个因素是在PDA、电视机顶盒、网络通信方面单片机与嵌入式结合开发。本课题所提出的设计方案以单片机为基础开发MP3播放器,较为灵活多变。现阶段此设计方案已达完成,经过测试表明该设计得到的播放器本与市场上购买的MP3具同相同的功能并且运行情况良好。1.2 MP3播放器的组成架构MP3播放器一般分成3个部分:CPU、MP3硬件解码器和存储器。这当中可以集成前两者得到带MP3硬件解码器的CPU;或者集成后两者得到音频输入、DA转换和硬件解码。存储器可以是Flash存储器或硬盘。借助于MP3的编码技术在运行过程中能够获得以12:1压缩的有损信号。功率谱较弱的信号在压缩过程中有部分丢失,虽然MP3音乐是有损的,不过其相比于CD原声并无明显差异,并不干扰听音乐的品质。声音文件的长度在MP3中得以缩小,更便于传输和储存文件。2 MP3的编解码过程2.1 MP3的工作原理功能完备的MP3播放器通常有如下组成:控制键、音频D/A和功放、存储设备、中央处理器、显示界面、主机通讯端口、解码器等,其中系统最为关键的组成是解码器与中央处理器。MCU(单片微处理器)就是此处所谓的中央处理器,即为单片机。对于MP3而言它起着控制的地位,也被称作固件程序。控制MP3的各个部件的工作:读取存储设备所含数据并传递至解码器;连接主机时可以相互交换主机与其数据;接收控制按键的操作;显示系统运行状态等任务。芯片中有一硬件模块称为解码器,即硬件解码(部分MP3配置高速中央处理器,可进行软件解码)。它能够解码格式各异的MP3数据流,同时以I2S或PCM格式向外部传递数字音频信号。作为MP3播放机重要组件之一,一般的MP3存储设备都选取硬盘或者半导体存储器进行搭建。它可对来自于主机通讯端口的数据进行接收,回放过程中对存储器中数据进行读取并传递至解码器。存储数据过程中其格式尤为关键,MP3和PC一样,都以文件形式进行磁盘数据的管理。使用频率最高的做法就是对存储器使用PC的文件系统开展管理,如微软工作环境中使用的FAT文件系统,上目前使用最普遍的一类。播放机要完成的任务就是FAT文件系统的实现,即依据文件名访问FAT磁盘同时读取所含数据信息。PC机和MP3播放机通过主机通讯端口进行数据交换,通过该端口PC机可以完成对存储设备中文件的复制、删除、拷贝等操作。USB总线技术当今应用广泛,而且兼容于微软定义的大容量移动存储协议规范,MP3播放机可以视作主机的移动存储设备之一。此处需要遵循的规范有:SCSI协议、大容量移动存储器规范和USB通信协议。数字音频信号可通过音频DAC变为模拟音频信号,最终实现模拟音响设备完成播放。此处对数字音频信号进行简要的说明。相对于模拟信号才有数字信号的说法。我们都了解声音是一种波,人耳朵可以分辨20Hz至20kHz频率间的波,并将其定义为声波。波使用模拟信号表示时表现为连续函数,其机理是将振幅与频率不同的波叠加形成。量化后的模拟信号称为数字信号,经典的方法是取相同的间隔对时间坐标进行采样,并量化振幅。采样频率为单位时间内的采样次数。如此处理过程后可将一段声波转换成一串数值,各个数值相应抽样点的振幅值一一对应,将此数字按顺序进行排列即可形成数字音频信号。此即为模拟数字转换的流程,数字模拟转换流程与此相反,按采样时候的频率将连续的数字转换成对应的电压。解码后得到的数据为数字音频信号,只有在DAC转换器的作用下实现再次转换才能够为功放所接收,并发出人耳朵可听到声音。2.2 MP3播放器编码过程2.2.1 音频信号数字化音频信号数字化:把模拟信号转变成数字信号,由连续性变为离散的过程即为信号的数字化,如图2.2-1所示,通常的步骤包括采样、量化以及编码。采样的含义是将原有的时间上连续的信号使用相隔特定时长的信号样本值序列进行替代:也就是将原有时间上变化过程连续的幅度值使用有限个幅度进行近似的代替,原有的连续幅度的模拟信号变为具有时间间隔、有限个幅度的离散值;编码的含义是将量化得到的离散值通过特定的规律使用二进制数码编译。如上所述的数字化还被称作脉冲编码调制,A/D转换器具有此功能。模拟音频信号低通滤波器编码数字流采样量化图2.2.1-1 系统的总体电路设计图当传输、记录以及处理数字音频信号后,若需要再次重现声音时,需要将其再次转化成连续的模拟信号。D/A转换可以实现此过程。量化位数和采样频率可影响数字音频的质量。越多的量化位数和越高的采样频率可以促使形成质量越高的数字化音频。2.2.2 音频采样在时间上变化连续的模拟信号中提取几个较人价值的样本值即为采样,并用于指代此模拟信号。若以函数表示幅值和时间上皆连续的模拟音频信号,采样流程即为离散化此函数的过程。通常采样的时间间隔的选取都是均匀的。假设此间隔是T,则用表示取样后的信号,n为自然数。结合奈奎斯特采样定理:若要把采样值序列变为最初的波形,采样频率必须不小于2倍的原始信号最高频率。设连续信号的频谱,在间隔时间T条件下形成离散信号,若符合,当中表示截止频率,也就是说当,如公式(2.2.2-1)所示,可以依据来确定: (2.2.2-1)所以,如公式(2.2.2-2)所示,频谱可由离散信号完全确定: (2.2.2-2)若以1/2T为采样频率,即,奈奎斯特采样频率即为。2.2.3 音频量化模拟信号通过采样形成了时间上离散的样值序列,不过各个样值幅度模拟量依旧是连续的,为了最终可以用数码来表示其幅值,还需要施加离散化处理将其变换成个数有限的离散值。在幅度上将采样值进一步进行离散化即为量化处理。通过划分,全部采样值可能产生的区域被分为有限多个量化阶的集合,赋予某个量化阶内的所有采样值一个统一的数值,也就是量化值。一般使用二进制表示此量化值,2N个不同的量化电平可使用N位二进制码字实现。为存储数字音频信号的比特率,每个采样值的比特数为N,采样率为。采样值的经过量化二进制的位数,可用于不同采样值精度的反映,即采样值的8个等级可以3位表示,256个等级可以8位表示,音频信号最大振幅的1/256是它的精度。量化值随着增多的量化位数而提升,也就是拥有越高的净度,不过也对应需要更大的存储空间。依据上述公式,于确定2s的条件下,若要将比特率I降低,仅可通过减少N值来进行。量化的精度将随着N值的降低而变低,但N值过大又会需要更大的信息存储空间。所以这就需要我们进行适宜的N值的选取16。采样时的量化间隔若相同即为线性量化,也称作均匀量化。对输入信号使用均匀量化时,无论输入信号的大小都一并使用统一的量化间隔。所以,若要确保较高的精度需要,同时也适应于幅度大的输入信号,就需要增大采样样本的位数。还有一种量化方法称为非均匀量化,其思路是应用小量化间隔于小的输入信号,大量化间隔于大的输入信号,如此一来就能以较少的位数表示而又不失精度。这当中定义了两类关系于量化输出数据和采样输入信号幅度之间,其一是A律压缩算法,另一是u律压缩算法。量化获得的数据因为使用的方法不同而有所差异。所以量化也是进行数据压缩的一类方法。2.2.4 音频编码经过采样与量化后还未能得到完全的数字信号,这里不需要进行转化,也就是最后的编码过程。二进制编码是最为常见的编码方式。详细地说就将量化后的样值以n比特的二进制编码表示,一个二进制数对应某一量化电平,之后通过排列获得一个二值脉冲串构成的数字信息流。使用此方法可以得到与量化比特数和采样频率相同值的二值脉冲的频率,也就是数字信号的数码率。数码率随着量化比特数和采样频率的提高而增大,对应需要更宽的传输宽带。音频编码方法一般有混合编码、参数编码和波形编码三种。波形编码是尽可能地维持稳定的输入波形,压缩比不高,其构建形成的语音信号大致相同于原有的语音信号波形;参数编码则需要使构建的信号相同于原有输入语音,不过其有不同的波形,此类编码方法的基础建立于语音信号生成的数学模型,有较高的压缩比;综合了高压缩效率的参数编码和高质量潜力的波形编码得到了混合编码,此方法是现今低码率编码的趋势。2.3 编码过程MP3文件类似于电影胶片,由大量长度各异的帧一个连着一个构成。各个帧之前都包含一个头信息,这当中还含有部分后继数据的额外数据信息。在某些编码中,这些帧可以互相影响。例如,下一帧无多余空间而上一帧有,通过组成即能形成优化后的结果。一些额外的信息通常都会在MP3文件的结尾处或开关处存储,如流派、录制时间、专辑名称、歌曲、歌手等信息。它们被称作“ID3”数据,若文件数目持续增加,该信息的作用将十分明显。通过无损和有损两种压缩技术MP3可获得较为理想的压缩比。第一,人类耳朵并不能识别的波段可以在压缩过程时舍弃,之后针对冗余编码作更深层次的压缩。不过,也正因为压缩第一部分时作了足够的工作,复杂性较强,此处将加以更深入的考虑。信号源在MP3编码工具作用下形成各种数学模板,同时比较分析于其存储的心理声学模板。它就可以舍弃绝大多数无法匹配的数据。MP3编码过程可以分成几个步骤:第一步,分解信号获得各个持续时间低于1秒的帧的组建片。这和电影中的帧很类似。它的“光谱能量分布”已经取决于分析信号,换而言之,寻找比特流于整个可听频率的光谱范围的分布情况,以此获得最佳音频编码。通过轻微的变换,由于不同部分的频率光谱应用统一的算法,编码过程较为高效,该步骤分解信号形成子带,为获得最佳效果可以独立处理子带。再者,由于每一帧可以分配的比特最大值取决于数据传输率,因此应予以重视。例如,若数据传输率为128kbit/s,若不用变比特率方法,否则存在确定的每一帧能够分配的数据上限。该过程将决定最后要舍弃多少数据以及能够储存的数据。在人类心理声学数学模板上分布各帧的频率并作对比,依据对比结果即可知道,哪部分频率分配较少的bit或能够舍弃,哪部分的频率需要进行重点表现。第四点,取样的冗余信息在Huffman编码处理过程后得以去除。Huffman编码的额外压缩比仅依靠传统的压缩方式获得,与心理声学模型无关。因此,读者可以看到,整个MP3编码过程是:第一步,对于部分无用数据使用心理声学模板进行选择性舍弃,之后消除冗余,压缩余下的数据。第二步,剩余的数据的存储使用更小的空间,并不舍弃数据。为组装得到合适的比特流,集合一定数量的帧,并将头信息添加于每个数据帧前,头信息的主要内容为帧的指令。于上述流程中,在编码工作开始前还必须考虑相关预先设定的因素。而且,前一帧和后一帧都很大程度上地影响着每个单独的帧的编码算法。完整的过程中含有一定的同步,并不需要严格地以上述步骤执行。以帧的形式来划分数据,1152个样本的数据组成一帧,MP3的编码器输入由32个子带分别输出,将12个样本分成一组,通过时间-频率变换每组样本都要经历一次位分配同时记录一个比例因子。解码器借助于位分配信息获样本的位表示数据,解码器由6位比例因子表示,被量化的子带值,可通过量化器的每个输出样本值和6位的比例因子相乘而恢复。量化器的量化范围在比例因子存在下得以高度利用,经过配合位分配的比例因子,能够显示的动态范围不再局限于120dB的样本。MP3使用了从ASPEC导出的算法。正交镜像滤波在MP3的滤波器组中得以应用,之后为了补偿正交镜像滤波的不足,还引入了改进离散余弦变换MDCT。为获得更高的频域分辨率,子带的输出将被MDCT作更深层次的细分。多相滤波器组导致的混迭效果因为细化了子带后可以被消除。MP3编码器的详细框图如图所示:分析滤波器组比例器和量化器哈夫曼编码掩蔽域值边信号编码器FFTMDCT动态加窗逆MDCT动态加窗合成滤波器组逆比例器和量化器哈夫曼解码器边信号解码器MCUMCU数字通信图2.3-1 MP3编码器和解码器的结构MP3指定了两种MDCT的块长:短块拥有6个样本的块长,长块拥有18个样本的块长,并存在一半的重叠于相邻变换窗口间。跳变的声音信号在短块下能够形成较好的时域分辨率,而平稳的声音信号在长块下能够形成较好的频域分辨率。3个短块在短块模式下可替代一个长块,长块的的1/3刚好为短块的长,因此块长并不影响MDCT的样本数。MDCT能够针对特定的帧声音信号,使用全部的短块或者长块,或者两者搭配结合。对低频的2个子带MDCT在混合块长模式下应用长块,这是由于音质受到低频区的频域分辨率较大的作用,不过剩下的30个子带应用短块。如此一来,一方面可以保存高频域的时域分辨率,同时还可以确保低频区的频域分辨率。短块和长块间切换时,通常都以一个短转长或者长转短的特殊数据窗口来实现。为了保证音质的同时提升压缩比,MP3不仅应用了MDCT,同时还采纳了相关的优化方法。即使MP3带来了大量较为繁杂的概念,不过在计算量层次上与MP2相差无几。主要在解码器所示储存空间和编码器的复杂程度上有所增强。2.4 MP3播放器解码过程MP3系统是一个整体,解码部分是其核心组成。不过,一般的使用者都不需要制造而是进行文件的播放,因此这里将对解码过程进行重点讲述。对于人类心理声学理论解码器无需利用或者储存,同时也无需分配比特。MP3播放器只对频谱分布的数据帧和比特流的头,还有和它们有相同存储位置的边信息进行重点检查,之后对上述信息进行重建形成音频信号。或者可以这样说,播放器的本质是声卡、播放列表和MP3 文件的接口,通过包装形成了精简的解码MP3比特流格式的规则。效率方面MP3解码器存在较大的差异,同时也有较大不同的解码后声音的质量,于早先的数年时间内,大多数研究开发工作者和使用者都忽略了这些差异对计算机硬件的消耗,解码器的运行是要占据相当一部分内存资源的。若操作系统的微线程特征较差就可以看到此显著的现象,若硬件配置适宜,MP3的中断的困扰在大多数情况下都能得以消除。相比于别的类型的解码器,它可能占据了更多的CPU时间,不过它们之间的不同以效率来衡量时并不比其它因素条件明显。选择MP3播放器将决定外观、音频质量、可扩展性以及成本等因素。整个解码过程的流程图如图2.4-1所示,它对应解码器。同步并读取帧头解码边信息解码比例系数霍夫曼解码转化为PCM采样逆离散余弦变化删除伪信号重新量化图2.4-1 MP3编码器和解码器的结构本章的主要内容是对MP3的编解码过程进行了介绍。MP3播放器的编码过程包括:音频编码、量化、采样和信号数字化。模拟信号经由编码器处理得到数字信号并进行传递。作为编码的相反步骤,解码的流程是依据编码谱线成分进行逆变换和反量化,获取声音信号。解码MP3的类型包括:PCM输出,逆离散余弦变化,频谱重排列,逆量化处理,比特流分析,子带合成,抗锯齿处理,立体声处理,霍夫曼编码。3 MP3播放器的硬件设计与实现3.1 系统总体设计 经过本课题的设计内容,可较为容易地实现在本系统的存储器Flash中输入外界的MP3格式的音乐文件。依据图3.1-1展示内容可以发现此系统设计的硬件设备主要有:主要在下载固件和传输MP3 文件时使用的USB接口的连接和主芯片;主要在控制和选择音乐时使用的LCD以及按键和主芯片的连接设计,借助于显示屏幕用户可得知播放器的进程程息;D/A转换器与主芯片之间,它可以实现解码系统得到的数字信号向模拟信号间的转换,后者可为人所接听,该部分的任务有连接反馈信号、数据信号以及时钟信号;电源转换部分,设计系统正常使用的电源是3.3V,为了提供稳定的电源,无论是电池还是USB接口都需添加DC-DC部分进行转换;设计存储系统以及播放系统的切换电路。LCD显示器Keyboard(操作按键)MCU(AT89C51SND1C)MP3解码器(AT89C51SND1C芯片内部集成)D/A转换器功放音频输出通信接口(USB1.1)图3.1-1 系统的硬件构架如图3.1-2所示为MP3工作原理流程图:读取存储器上的信号解码器对信号进行解码通过D/A转换器将解码出的数字信号转换成模拟信号把转换后的模拟音频放大低通滤波后到音频输出图3.1-2 工作原理流程图由于绝大部分的硬件都可以由数字编程控制,在硬件结构上MP3播放器的软件与其相互对应,也就说配置专用的软件代码给各个部分的硬件。播放器第一步先对存储器的相关信号进行读取,之后通过解码器进行分析,通过D/A转换器可以把解码产生的数字信号再次恢复为模拟信号,再放大转换获得的模拟音频,最后施加低通滤波后即可输出。3.2 总体的电路设计本设计使用ATMEL生产的单芯片数字音频AT89C51SND1C作为主芯片,其特征有集成度高、运算速度快、2.53.3 V低电压、成本小、功能齐全、80 mW低功耗等。其特点如下:基于8位C51MCU核;将独立的MP3 解码器内置于其中,同时对16,22.05,24,32,44.1,48 kHz采样频率都支持,可以操作控制左右声道独立的音量,支持“MPEG帧同步”和“CRC错误”指示、辅助数据输出、重低环绕声效果、高音均衡控制、中音和重低音;有44通用I/O口的嵌入式C51 Nand Flash,SSFDC,I2S,SPI和IDE等,对于各类的Flash/CD/HDD播放器可有许多扩展功能接口;其音频输出接口对市场上在售的各类D/A转换器都具有较高的相容性,无论是I2S格式和PCM格式都可以兼容;内置2304BRAM;配置4KB引导闪存和64KBFlash程序空间;编译系统时将经过UART,USB接口进行;USB1.1控制器,“Full speed”数据传输;搭配了锁相环,具备USB时钟和MP3音频时钟的功能;兼容MMC卡接口、Atmel Data Flash SPI接口、硬盘、接口 ;8kHz,10位A/D转换器,含有软监控的录音和监视电池电压;简化后的AT89C51SNDIC可以概括成如下组成:USB+ MP3解码器+64K80C51,MP3播放系统的设计基于此系统进行时将具有相当的优势:其中包括省去了系统编程中使用高价的仿真器,极大地缩小了开支费用;用户在内置2304B的RAM的帮助下可以实现更为丰富的功能。AT89C51SND1内部主要资源如图3.2-1所示。图3.2-1 AT89C51SND1C内部主要资源还有就是由于将大量的接口集成于芯片中,因此系统要求的实现并不需要过多的外围器件如存储器、音频D/A转换器和DC-DC即可完成预期的功能,如此所得的系统更加节省系统空间,这样的做法更符合当今设计系统的功能丰富但空间紧凑的理念。此芯片使用TQFP80封装,80只引脚,说明四边各20引脚的贴片封装。图3-4为AT89C51SND1的引脚定义。要再三仔细考量功能重叠的引脚。本课题未能实现单片机所提供了所有功能,已经使用扩展槽将MMC和IO端口等部分没有占用的专用接口向外引出,可于其它电路中扩展应用。管脚说明:IO端口P1-P3和8051功能相同。P1端口第二功能有KIN3:0 SCL SDA P4具有8-bit内部上拉IO.第二功能 MISO MOSI SCK SS P5具有4-bit内部上拉IO.时钟信号管脚X1 I输入芯片上反向振荡放大器应用内部振荡器,在此管脚处连接晶振/谐振器电路。若引入应用外部振荡器,则在此管脚处连接上其输出。X1是内部的时间的时钟脉冲源。X2 O输出片上振荡器反相放大器应用内部振荡器,在此管脚处连接晶振/谐振器电路。如果外部振荡器使用,给X2的悬空。FILT I PLL的低通滤波器输入 FILT员工接收PLL的低通滤波器的RC网络。定时器信号说明:INT0 若选定由GATE0外部运行控制TCON中的位寄存器,此时INT0的服务为定时器0。TCON寄存器里的IE0位受到INT0的输入控制,If位IE0被INT0低电平触发。INT1 I 若由GATE1 TCON寄存器中的位处于外部运行控制时INT1的作为定时器1。INT1的输入控制TCON寄存器里的IE1位.If(IT1=1)位IE1被INT1低电平.If(IT1=0)位IE1被INT1低电平触发.T0 I P3.4T0代引脚下降沿在定时器0以计数器工作时将递增计数。T1 I P3.5引脚上的下降沿在定时器1以计数T1工作时将递增计数。图3.2-2 AT89C51SND1C引脚图3.3 单片机最小系统搭配上相应的外部器件,单片机芯片就可以形成一个单片机最小系统。单片机的通信功能、扩展作用都较为强大,对于应用系统预期的规模它能够快速有效地进行扩展实现。若使用的MCS-51系列单片机,由于其自身带有EPROM或ROM,一个单片机最小系统仅由一个芯片仅可建立。主机选取为AT89C51单片机,它具有一个串行接口,4个并行接口,5个中断源,2个16位计数器,片外ROM寻址范围达64K,128字节片内RAM以及4K片内ROM。设计系统的需求在开发简易自动乐曲播放器中使用单片机最小系统已经足够,并且对单片机最小系统的的电路和晶振都需要进行设计。3.4 电路电源部分播放器的一个关键组成部件之一即为电源,电源部分的电路如图3.4-1所示,作为一类压差较低的线性稳压器,AS11171A的输出电流下,其典型的输出输入差是1.2V。不仅能够供给可调端输出版本还有一系列的稳定电压版本,此版本的输出电压区间为1.25V13.8V图3.4-1 电源电路图为了保障电源系统和芯片稳定条件下工作,AS1117提供实用性较高的过热保护和过流保护功能。并且引入前沿的修正技术于产品的生产中,最终得到产吕的输出电压与参考精度的偏差不大于1%。AS1117的系统框图如图3-6所示:图3.4-1 AS11117系统框图3.5 D/A转换部分 通过主芯片内部解码后WMA以及MP3类型的音乐文件转化为数字信号,但人们可以识别的是模拟信号,因此在系统中加入CS4331模块。将数据从Flash中读取后,AT89C51SND1C通过内部解码的方法把MP3类型的音乐转化为二进制类型的数据,这些数据在D/A 转换器CS4331的作用下可以完成预期的数模转换,从而向外界输出人们可以听到的声音。音频输出接口已经事先装配于主芯片AT89C51SND1C中,它对大部分格式如I2S格式和PCM格式的音频数据流都保持兼容,此接口可以连接绝多数的普遍适用音频 D/A 转换器。在信噪比的降低,音频质量的优化方面CS4331取得了较好的效果。另外,MP3软件解码器也搭载于AT89C51SND1C内部,系统完成功能无需添加其它解码器。通过D/A转换作用解码得到的数字信号又再次变成模拟音频。图3.5-1为D/A转换电路图:图3.5-1 D/A转换电路图对于音频信号在MP3播放器中其数字/模拟转换功能都由音频DA芯片实现,人们的音乐体验和收听质量都会受到其直接作用。由于CS4331芯片无引脚因此对软件没有其它要求。如下图所示为CS4331的内部框图。位流时钟为SCLK,位流数据输入为SDATA,声道选择时钟为LRCK,采样频率就是它的频率。MCLK则是DAC电路所需的主时钟。图为3.5-2 CS4331芯片内部结构图:图3.5-2 CS4331芯片内部结构3.6 控制部分 通过按键可以完成播控系统的相关设定与操作,按键输入口AT89C51SND1C一共有四个,进行USB连接前需要将DFU跳线短接,使BootLoader运行,从而开始下载固件;若在USB连接前操作了FORMAT,U盘可被格式化;连接USB时,若未进行按键操作,即可激活U盘模式。以电池作为电源时,若不进行任何的按键操作,则激活MP3 功能。MP3键盘由4个键组成,分别为Play/Pause键、Previous键、Next键和Func键:Func,功能切换;Next,向后;Previous,向前;Play/Pause,播放/暂停。用户可以随意地结合自己的思想在播放音乐过程中控制文件的暂停与播放。LCD1602可以显示设置信息以及操作状态。为了将图形与汉字成功显示,将液晶显示应用于LCD中。全彩色显示易于实现、大规模集成电路直接驱动中适用、厚度薄等是液晶显示的特征,也可以满足MP3播放器的功能需要。键盘控制电路如图3.6-1所示。LCD显示电路如图3.6-2所示。图3.6-1 键盘控制电路 图3.6-2 LCD显示线路4 MP3播放器软件设计与实现 4.1 MP3播放器播放功能的设计目标是能将键盘与设计MP3播放程序合理配合。若主程序当前为进入播放模式,则在播放完成最后一首前都会调用Play MP3程序。在上述的程序设计中,若一经开始触发MP3解码器,直到最后一个音乐文件结束前它都持续向CPU请求数据。用户直接按下暂停键时可以切换音乐,如此即可提前结束该程序函数,激活播放下一个音乐文件。其播放流程图如图4.1-1所示:产生数据请求中断需要读下一个扇区的数据当数据已经不足一扇区结束当前歌曲,指向下一首歌曲读出一个新的扇区继续往解码器中送数据是否按了暂停键等待再次按下暂停键否、否是是是是否单击“选曲”按钮是否否否否是向CPU请求数据图4.1-1 播放器播放过程流程图程序会在数据请求产生时进行是否产生请求中断的判断,若请求中断已经产生则无法成功读取数据。若未中断数据请求,则数据需要再次载入。中断产生时,下一个扇区中的数据成为读取对象,若下一个扇区中的数据不是待读取的目标,此时可向解码器传递数据。若数据已完成读取部分低于扇区,则在另一个扇区中存储数据,同时对该扇区数据进行读取。向解码器传递读取后的数据,通过键盘来操控解码。解码器在键盘处在暂停状态下时无法工作,只有当暂停键被再次按下时才可以解码。若进行播放时还想进行音乐文件的选择,想播放目标歌曲而终止当前歌曲,只需要按下选曲键即可。4.2 MP3功能按钮设计MP3 播放歌曲的控制在MP3 程序执行过程中,都经过按键操作实现,如图4.2-1所示即为键盘响应流程图:产生键盘中断判断哪个键被按下播放向前向后功能切换置播放/暂停状态根据所处功能不同设置不同寄存器的值切换功能清中断标志,等待下一次中断图4.2-1 键盘相应流程图4.3 USB通信功能程序设计 管理Flash存储器中的文件都经由USB通信功能模块进行,在其作用下可以下载MP3文件,因为AT89C51SND1C并未配备外部中断引脚,因此中断查询成为了USB驱动程序的工作方式,USB中断并无中断向量地址入口。其流程图如图4.3-1所示。调用USB控制器前,首先应作初始化,之后将USB断电中断寄存器在主程序中反复读取,若发现产生中断时即可切换到对应的中断处理程序,即进行配置设备和传输数据。开始初始化USB时钟读取中断寄存器状态是否有端点产生中断中断寄存器清零相应的中断服务子程序是否、否图4.3-1 USB通信功能程序流程图4.4 播放与暂停的子程序设计 暂停和播放子程序在按键产生首次的中断信号时,其原有的R1标识符将被改变成为01H,这时播放器自暂停状态转换成播放状态,程序的内部中断T0口中设有播放/暂停,设计方案中将T0作为方式2下工作的计数中断,播放/暂停子程序在按键再一次产生中断信号时即可开始自我判定,判定R1是不是02H,同时赋值R1成00H,此时播放器即可外于暂停。如图4.4-1为暂停与播放的子流程图。开始标识符R0R0是否为00H暂停播放播放或者暂停RO是否为02HR0=00HR0=01H是是否是是否图4.4-1 播放与暂停的子程序流程图4.5 曲目选择的子程序设计 第一步令R7=00H,若按键发出中断信号,标识符R7的值将被上一曲中断子程序改变成01H,同时改变曲目选择R0的值,一旦标识符R7值改变被播放子程序识别后,第一步应当将00H的值赋值给R7,接下来跳转曲目识别子程序,同样的,下一曲中断也是这个道理。上一曲与下一曲的实现方式相似,但是上一曲由(内部中断)实现,下一曲由()外部中断。曲目选择子程序流程图如图所示:开始R7=00H查询歌曲曲目R7是否为01H播放音乐R7=00H上一曲或者下一曲改变曲目R0值R7=01H是否图4.5-1 曲目选择的子程序流程图5 结论本课题中开发设计所选取的MP3播放器使用的关键部件为AT89C51SND1C单片机,在AT89C51SND1的64KFlash中,F000FFFF的地址范围内是4K字节的Boot Flash,该层次的程序是此硬件在生产时即固化得到的Boot Loader代码,对于其芯片Flash存储器中的用户程序的更新,它将应用DFU)协议进行更新。在上电复位后存在两类方法能够让芯片执行Boot Flash中的这段程序:第一种情况是,若芯片中的BLJB位处于1位处,该段代码的执行只需上电即可完成;第二种情况是,若芯片中的BLJB并未位处于1位处,若芯片在复位后检测到低的引脚ISP时,该段程序也可以执行。AT89C51SND1自带USB接口在程序输入时,往芯片中下载目标代码时无需使用硬件烧写器,能够在线编辑Flash,于是此次毕业设计的费用得以降低。对于硬件部分而言,单片机系统与晶振电路和复位电路构建最小系统,为了最大化降低设计电路的复杂性,设计外围电路时必须以最小系统为中心。因为外立即电源为5V,而设计需要的电源是3.3V,于是可调输出电源电路在设计过程中即需纳入考虑,本课题中以低压差线性稳压器AS1117为例,它一方面可以提供过热和过流保护的功能,保持电路稳定运行,另一方面还可以按照所需将5V电压转化成3.3V电压;进行D/A转换时,解码后的数字信号本设计中使用CS4331转换得到模拟信号。将数据从Flash中读取后,AT89C51SND1C在它内部把MP3类型的文件作硬件解码得到二进制数据,为了最终形成人可以识别的模拟信号,再搭建了一组CS4331型D/A 转换器。在信号不失真、信噪比的降低、音频质量的优化方面CS4331表现良好。图4.5-1 D/A转换器CS4331数据进行数模转换6 结束语写到这里,设计的软件和硬件部分应该就可以告一个段落了,说实话,刚拿到这个题目的时候,我的心里是一篇茫然的,因为我的理论知识学的真心不怎么样,但是我想,既然我如此,那么别人应该不会比我好到哪儿去吧,想到这里,我的心境也就逐渐变的开始释怀了,于是在刚拿到题目的一个周,我就开始浏览与各个大的网站,开始寻找我所需要的理论知识基础,开始的时候,是基本上什么都看不懂的,后来我在图书馆中寻找我所需要的一部分关于这个单片机的书籍,静下心来仔细观看,才开始慢慢的懂了一些东西,第二个周,我开始构建自己要写的论文框架,自己要写的是那几个部分,那些东西是需要介绍的,那些东西是需要一笔带过的,软件部分该怎么写,硬件部分又改怎么写,在构建框架的同时,不能放弃对单片机的研究,还要不时到实验室去亲自观看别人的操作,在这次设计中应该注意什么东西,又该重点设计什么东西,什么是精髓,什么是次要的,第三个周开始,就该开始书写这篇论文了,在写论文的时候,也应该要注意论文的书写格式,要注意论文的格式要求,把自己要表达的东西清楚的表达出来,把次要的东西省略,就这样一直到第四个周,才把论文初步完成。在书写的过程中,每个人都会遇到许许多多的困难,对AT89C51的单片机的不熟悉,对Keil_uvision_4的逐渐使用熟悉,硬件部分要去请教许多的老师和同学,软件部分要自己亲自编写才会知道那些东西自己不懂,这部分的理论与应用还需要再次参考过去所学的内容。毕业设计作为一项重要的任务,一方面可以锻炼学生在实际应用中对所学理论知识的理解与应用,同时另一方面还可以为学生创造一种提出、探究和解决问题的空间与机会,是考察学生所学和实际工作水平的关键环节。伴随着科技水平的提高,在计算机应用中单片机深入到我们日常生活的方方面面。在此,我要感谢我的论文辅导刘强老师对我们的帮助,感谢室友们对我的支持,没有你们为我到处的奔波,一起讨论寻找设计的捷径,是没有这篇完整的论文的,在此,衷心的对你们说声谢谢。附录:参考程序目前播放文件,切换至目标文件的过程:其主要程序代码为:Void playMP3(unsigned char *SongName) Int i=0,j=0; /First 1024 Byte MP3 Data m=ReadSector(SongName,Page_Buf) ;/从当前歌曲中读取512字节 if(MP3STA1&MPFREQ) /解码器数据请求中断产生时 For(i=0;i1024;i+) /第一次要向解码器缓存中置入1024字节 if(j=512) /当用完512字节时 m=ReadSector(SongName,Page_Buf); /读取当前歌曲的下一个512字节 j=0; MP3DAT=Page_B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 渗透测试员安全实践模拟考核试卷含答案
- 电子数据取证分析师岗前岗位考核试卷含答案
- 采气测试工岗前QC管理考核试卷含答案
- 溶剂精制装置操作工安全宣教竞赛考核试卷含答案
- 冷链物流员安全综合竞赛考核试卷含答案
- 酒店员工培训发展制度
- 酒店客房用品采购与供应制度
- 浪潮云票夹培训
- 超市员工培训及销售培训制度
- 浇根式培训课件
- 成人住院患者跌倒风险评估及预防
- 煤矿提升系统工程设计规范
- 中国铁塔工程质量标准化手册-高铁地铁项目分册
- 导管相关感染预防及控制
- 电梯公司应急预案管理制度
- 高原安全管理措施
- 幼儿临床护理沟通技巧
- 2023年湖北烟草笔试试题
- DH9261消防电话主机
- 2023年重庆市安全员《C证》考试题库
- 人教版五年级数学用方程解决问题
评论
0/150
提交评论