基于STC12C5A60S2单片机MP3播放器的设计与实现_第1页
基于STC12C5A60S2单片机MP3播放器的设计与实现_第2页
基于STC12C5A60S2单片机MP3播放器的设计与实现_第3页
基于STC12C5A60S2单片机MP3播放器的设计与实现_第4页
基于STC12C5A60S2单片机MP3播放器的设计与实现_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

word文档可自由复制编辑word文档可自由复制编辑word文档可自由复制编辑本科毕业设计(论文)基于STC12C5A60S2单片机MP3播放器的设计与实现燕山大学年月大学毕业设计(论文)任务书学院:系级教学单位:学学号学生姓名专业班级题目题目名称题目性质1.理工类:工程设计();工程技术实验研究型();理论研究型();计算机软件型();综合型()2.文管理类();3.外语类();4.艺术类()题目类型1.毕业设计()2.论文()题目来源科研课题()生产实际()自选题目()主要内容基本要求参考资料周次第~周第~周第~周第~周第~周应完成的内容指导教师:职称:年月日系级教学单位审批:年月日注:表题黑体小三号字,内容五号字,行距18磅。(此行文字阅后删除)摘要随着高端电子产品的快速发展,具有音频播放功能的电子产品在各种场合的需求也日益增多,MP3播放器是电子产品发展中的一款重要产品,本文对基于STC12C5A60S2单片机MP3播放器的设计与实现进行了详细的研究。首先本次设计处理器采用STC12C5A60S2作为控制MCU,采用基于SPI协议的音频解码芯片VS1003实现音频解码功能,数据存储介质采用SD卡来实现音频播放功能,在软件设计上使用FAT32文件系统对文件进行管理。本设计的音频播放过程是STC12C5A60S2单片机通过SPI接口从SD卡中读出将要播放的音频数据,再通过SPI接口将音频数据传送至音频解码芯片VS1003进行解码播放,从而实现MP3播放功能。关键词:MP3播放器音频解码STC12C5A60S2单片机word文档可自由复制编辑word文档可自由复制编辑word文档可自由复制编辑AbstractWiththerapiddevelopmentofhigh-endelectronicproducts,electronicproductswithaudioplaybackonvariousoccasionsneedsarealsoincreasing,MP3players,electronicproductdevelopmentisanimportantproduct,thepapeSTC12C5A60S2microcontrollerbasedMP3playerdesignandimplementationofadetailedstudy.First,thisdesignasacontrolprocessorSTC12C5A60S2MCU,basedaudiodecoderchipVS1003SPIprotocolforaudiodecoding,datastoragemediausingtheSDcardforaudioplayback,usetheFAT32filesystemforfilemanagementsoftwaredesign.ThedesignprocessisSTC12C5A60S2audioplaybackthroughtheSPIinterfacemicrocontrollerreadstheaudiodatatobeplayedbackfromSDcard,andthenthroughtheSPIinterfacetotransferaudiodatatotheauddecoderchipVS1003decodeplayback,enablingMP3playback.KeywordsMP3player;audiodecoding;STC12C5A60S2SCM摘要........................................................................Abstract..................................................................II第1章绪论.................................................................1.1MP3的背景及意义...................................................1.2MP3国内外研究现状.................................................1.3MP3的发展趋势及存在的问题.........................................1.4本文研究的内容及主要结构............................................第二章系统方案设计.........................................................2.1MP3原理概述及框图.................................................2.2MP3播放器设计所需的主要芯片.......................................2.2.1STC12C5A60S2单片机简介.........................................2.2.2VS1003解码芯片简介..............................................2.2.3SD卡存储芯片简介...............................................2.2.4LCD1602显示屏简介..............................................第3章硬件电路设计........................................................3.1VS1003音频解码模块................................................3.1.1VS1003管脚功能................................................3.1.2内部寄存器......................................................3.1.3数据通信........................................................3.1.4模块设计及其与单片机的链接......................................3.2存储模块..........................................................3.2.1SD存储卡硬件结构与接口模式.....................................3.2.2SD命令.........................................................3.2.3SD存储卡数据操作...............................................第4章系统软件设计.........................................................4.1FAT32文件系统简介.................................................4.2FAT32文件系统在单片机上的软件设计.................................4.2.1主引导扇区的数据结构............................................4.2.2分区引导扇区的数据结构..........................................4.2.3目录项的数据结构................................................4.2.4文件信息数据结构................................................4.2.5重要参数数据结构................................................4.3MP3音频文件读取播放相关软件设计.....................................334.3.1SD存储卡初始化...................................................334.2.2SD存储卡写命令...................................................342.3读SD存储卡单块数据...............................................344.2.4VS1003写指令.....................................................354.2.5VS1003初始化.....................................................354.4主控程序设计........................................................354.4.1主控制程序........................................................35第5章结果分析...............................................................365.1软件测试............................................................365.2硬件测试............................................................37总结..........................................................................38参考文献......................................................................39致谢........................................................................40

第1章绪论MP3播放器以其小巧的体积,强大的功能,优质的音质而备受人们的青睐。如果把他嵌入到单片机系统中,实现音频输出,那么对系统的增色将是不言而喻的,如果用单片机来单独解码3文件是不可能的,所以我们要利用专门的解码芯片来进行,用单片机对芯片进行控制,本文将从软件和硬件方面详细介绍基于VS1003解码芯片的MP3音播放过程。1.1课题研究的背景及意义MP3是一种音频压缩技术,其全称是动态影像专家压缩标准音频层面3(MovingPictureExpertsGroupAudioLayerⅢ),简称MP3。它的设计是为了能够大幅降低音频数据量。利用这种压缩技术将音乐压缩成容量较小的文件,对于大多数用户来说压缩后的音质与压缩前的音质没有明显的下降。这种压缩标准是由德国的一个研究组织发明出来的,将用MP3形式存放的音乐叫做MP3音乐,能播放MP3格式的音频播放器称作MP3播放器。MP3是利用了人耳对于高频信号不敏感的特性,将是时域信号转换成频域信号,将频域信号划分成若干个频段,对于不同的频段,采用不同的压缩率,高频段采用较高的压缩率,低频段采用较低的压缩率,采用这种方法,抛弃了人耳不敏感的高频信号,保留低频信号,在基本不改变音质的基础上,降低了文件容量。MP3分为耳机MP3和外放MP3,一般来说耳机MP3具有更好的音质,但是对人耳有伤害,新型MP3采用外方形式,对人耳没有伤害,更受到消费者的青睐。便携式音乐播放器的历史从1979年Sony的WalkmanTPS-12随身听的问世开始的。这台磁带机音乐系统开启了个人娱乐市场的大门,在此之前人们只能在家里用录音机欣赏音乐。至今,便携式音乐播放器产品已经经历了磁带机、CD机、MD播放器、MP3播放器四个阶段。1980年,索尼公司和飞利浦公司联合制定了数字音频光盘格式的标准,光盘直径12cm,采样频率44.1khz,比特率1411.2kbps,16为音频数据,CD的音质几乎达到了无损的标准。索尼公司在1982年推出的D-50是真正意义上的CD随身听,CD随身听的序幕由此拉开,在1990年达到了鼎盛。时至今日,不管音乐播放器如何发展,CD播放器的完美音质永远不会淘汰,即使它在体积上存在着缺陷。1989年,德国人Brandenburg的博士论文,为MP3这一数字音频压缩技术提供了理论依据。1995年诞生的MP3标准具有较高的压缩比以及较小的音质损失,具有划时代的意义。随着这种音频压缩技术的诞生和流行,MP3随身听得到了开发和利用。在MP3标准诞生不久,在20世纪90年代中后期,MP3播放器便正式登场。从1995年上半年开始到整个90年代后期,MP3开始在因特网上蓬勃发展。MP3的流行主要得益于如Nullsoft于1997年发布的Winamp和Napster于1999年发布的Napster这样的公司和软件包的成功,他们之间相互促进发展。1998年韩国世韩公司推出了世界上第一台MP3播放器—MPManF10。MPMan取意于MP3与WALKMAN的结合。MPManF10的体积为70*90*16.5mm,体重为65克,可谓非常轻巧。在世韩的这款MP3给人们带来惊喜之后,美国的帝盟公司于1998年底推出了RioPMP300,这款MP3给全世界留下了深刻的印象。它的最大优点是可在互联网上免费的MP3。MP3文化的标志—Appleipod。诞生于2001年10月,他并不出色:价格高、音质一般、使用时间短以及缺乏对windows的支持等等,然而它是第一个把互联网音乐与MP3随身听捆绑销售的产品。直到2004年,MP3行业迎来了他不平凡的一年,随着随身听的发展,人们已经被MP3小巧的外形以及高品质的音乐所征服,无论是本身的品质还是市场的销售情况来看,MP3已经成为随身听市场的霸主。1.2国内外研究现状MP3是采用国际标准MPEG中的第三层音频压缩模式,对声音信号进行压缩的一种格式。MPEG声音压缩算法是一种通用的声音编码技术,它对音源的性质没有作任何假设,而是利用人耳的听觉特性对声音进行压缩。MPEG音频层根据压缩质量和编码复杂程度划分为三层,即Layer-1、Layer2、Layer3,且分别对应MP1、MP2、MP3这三种声音文件,并根据不同的用途,使用不同层次的编码。MPEG音频编码的层次越高,编码器越复杂,压缩率也越高,MP1和MP2的压缩率分别为4:1和6:1-8:1,而MP3的压缩率则高达10:1-12:1。也就是说,一分钟CD音质的音乐,未经压缩需要10MB的存储空间,而经过MP3压缩编码后只有1MB左右。2005年MP3将逐渐淡化音乐播放器的角色,而向媒体播放器转变。浏览图片、播放音乐、欣赏影片、享受游戏,媒体播放器几乎能做到我们所需要的所有娱乐活动,现在甚至还能作CF、SD读卡器,当作一款数码伴侣亦无不可,海量的存储空间和高速USB2.0传输接口让一切变得轻而易举。3)作为移动硬盘也是它们的本分之一,甚至还能接驳其他USB设备。而一直困扰媒体播放器发展的价格和电池续航因素也将年有大的突破。从1998年,韩国世韩公司推出了世界上第一台MP3播放器到现在,MP3播放器逐步成为电子市场上的热销产品,受到广大音乐爱好者的欢迎。随着社会经济的发展,在信息家电和行业应用手持信息设备等信息终端类产品中,具备MP3功能已成为此类产品的发展趋势之一。如我们常见的智能手机、电子词典、一般都具有MP3的功能实现。从第一款MP3的诞生,到现在六年多的积累,MP3随身听市场总量迅速扩大,成为电子信息行业新的增长点。MP3随身听正以无可比拟的优势,逐渐成为传统磁带随身听、CD随身听之后市场上新的竞争者。种种迹象表明,中国MP3市场正迎来了自己的黄金季节。根据国内权威调查机构CCID统计显示,继2002年高达135.7%的增长之后,2003年,国内MP3市场再度井喷,售量为177.3万台,增长高达235.8%。目前,MP3正以每年100-200%的速度不断蚕食这个巨大的市场,据统计2008年MP3市场总量将达到1800万台。我们可以很清楚的看到MP3行业的前景!从MP3发展的现状与前景来说,MP3随身听产业进入门槛虽然低,但技术含量却不低。如今,网络视频资源已经十分丰富,这其中,real公司推出的Rm和Rmvb格式几乎占据网络视频格式的80%以上份额,市场和用户群相当庞大,促使这些免费资源能被人们随身使用是播放器厂商一直以来追求的目标。在此情况下,支持Rm/Rmvb格式的视频播放器应运而生,2007年是其大发展的一年,Real播放器时代已经来临。2008年,提供对RM/RMVB全规格文件支持的MP3产品已经成为了MP3市场新的争夺点。1.3发展趋势及存在的问题展望2010以后的MP3发展方向,可以从三个角度来看:从企业的角度上来讲,好的企业在产品方面和其它行业一样,都注重如下三个方面:重视产品款式,在新产品开发方面投入大。对MP3随身听来说,一款优秀的款式有时候能让一个品牌知名度迅速提升。这就是品牌传播的口碑效应。重视产品质量:由于目前MP3随身听技术含量相对较高,国内以OEM方式生产的产品相对故障率也较高,调查表明国产MP3随身听的平均返修率在10%-15%。有的甚至达到40%。重视服务:随身听的时尚属性,必须有强大的互动服务系统,比如说,MP3音乐的来源,MP3格式英语学习资料的来源,MP3随身听的升级、屏幕保护画面的下载等。除此之外,另一个不得不重视的问题是维修服务。从消费者的角度来说,消费者选择MP3是因为它轻巧、时尚、音乐格式存、下载方便,以及无穷的衍生功能,如FM收音机、转录、录音等。从市场导向宏观来看,1)价格将趋于稳定,1G甚至更高容量的MP3将成为主流。2005年MP3厂商在沉寂一段时间后,将再度发力。并且由于长时间的积累,MP3产品有望实现跨越式发展。尤其是大容量硬盘型MP3有可能迅速取代大容量闪存型MP3成为主流的高端产品;2)MP3向多功能化发展。到目前为止MP3已经发展到相当成熟的地步,但是随着人不断增长的物质文化需求,MP3还是有需要改进的地方,例如,容量小,价格较高。尽管闪存已经经历了几次大的降价,有素质保证的闪存MP3的售价还是过高;此外,换歌麻烦,虽然现在的MP3都支持线录了,但毕竟自己找CD来录制的机会很少。绝大多数时候用户还是得老老实实与PC联机来换歌。有的MP3直接有内置的USB口用起来还方便一点,没有直接USB口的可就麻烦了。有时想换几首歌听听,一想到与电脑联机的麻烦连听歌的冲动都没了。现在的新型MP3已经实现了USB2.0,理论上传输速度要比USB1.1快几十倍,可毕竟还是得开电脑才能换歌1.4本文研究的内容及主要结构本次设计的目标是基于STC12C5A60S2单片机MP3播放器的设计与实现。要完成本次毕业设计,首先要掌握STC12C5A60S2单片机的特点及功能,以便熟练运用该型号单片机,在此基础上我还需要了解液晶显示模块的工作原理,此外还要系统的了解MP3的工作原理,掌握keilC51编程语言及uVision2集成开发环境,并能够熟练编写程序。硬件电路实现的功能:可单曲循环播放,所有曲目顺序播放,可任意指定某个曲目播放,可拖动曲目播放进度。在液晶屏显示曲目名称及编号,显示歌曲动态均衡效果,显示歌曲播放进度。可对曲目重新排序,可调节音量。在MP3播放器的设计过程中最主要的是存储芯片和解码芯片,本次设计所采用的存储芯片是SD卡,采用的解码芯片是VS1003解码芯片。全文共分为五章,具体的内容安排如下:第1章主要介绍了MP3的背景、研究现状、发展趋势及存在的问题,以及本课题的意义。第2章主要介绍了基于STC12C5A60S2单片机MP3播放器的基本工作原理及原理框图,又分别介绍了MP3播放器所需要芯片。第3章主要介绍了硬件电路设计,并分别对MP3的各模块进行了介绍,包括VS1003音频解码模块,存储模块、显示模块。第4章主要介绍了系统软件设计word文档可自由复制编辑word文档可自由复制编辑word文档可自由复制编辑第二章系统方案设计2.1MP3原理概述及框图本系统采用的控制核心是STC公司生产的STC12C5A60S2单片机,通过所编程序读取SD卡中存储的数据到单片机,然后单片机再将数据传送到VS1003解码芯片进行解码,通过数模转换器将解码出来的数字信号转换成模拟信号,将模拟信号进行音频放大,再经过低通滤波到耳机输出口,我们就可以听到音乐了。图1-1所示为MP3播放器系统原理框图。STC12C5A60S2SDSTC12C5A60S2SD卡MP3数据LED液晶显示屏D/A转换MP3解码音频放大声音输出本系统可分为存储模块,STC12C5A60S2单片机控制模块,和VS1003解码模块,本系统词用的单片机是STC12C5A60S2,该列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速低功耗超强抗干扰的新一代8051型单片机。通常使用STC-ISP软件,该单片机可实现串口在线编程,无需编程器,无需仿真器。2.2MP3播放器设计所需的主要芯片2.2.1STC12C5A60S2单片机简介STC12C5A60S2单片机指令代码完全兼容传统8051,但速度快8-12倍;内部集成MAX810专用复位电路、2路PWM、8路高速10位A/D转换(250K/S)。STC12C5A60S2系列单片机的主要特点如下:1.增强型1.增强型8051CPU,1T,单时钟/机器周期,指令代码完全兼容传统80512.工作电压:STC12C5A60S2系列工作电压:5.5V-3.3V(5V单片机)STC12LE5A60S2系列工作电压:3.6V-2.2V(3V单片机)3.工作频率范围:0-35MHz,相当于普通8051的0~420MHz4.用户应用程序空间8K/16K/20K/32K/40K/48K/52K/60K/62K字节......5.片上集成1280字节RAM6.通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口)可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55mA7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片8.有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM)9.看门狗10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地)11.外部掉电检测电路:在P4.6口有一个低压门槛比较器5V单片机为1.32V,误差为+/-5%,3.3V单片机为1.30V,误差为+/-3%12.时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内)1用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟;常温下内部R/C振荡器频率为:5.0V单片机为:11MHz~15.5MHz3.3V单片机为:8MHz~12MHz;精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准13.共4个16位定时器两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器做串行通讯的波特率发生器再加上2路PCA模块可再实现2个16位定时器14.2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟15.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,PowerDown模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2),CCP1/P1.4(也可通过寄存器设置到P4.3)16.PWM(2路)/PCA(可编程计数器阵列,2路)---也可用来当2路D/A使用---也可用来再实现2个定时器---也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持)word文档可自由复制编辑word文档可自由复制编辑word文档可自由复制编辑17.A/D转换,10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口19.STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3)20.工作温度范围:-40-+85℃(工业级)/0-℃75(商业级)21.封装:PDIP-40,LQFP-44,LQFP-48I/O口不够时,可用2到3根普通I/O口线外接74HC164/165/595(均可级联)来扩展I/O口,还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。2.2.2VS1003解码芯片简介VS1003是由荷兰VLSI公司出品的一款单芯片MP3/WMA/MIDI音频解码和ADPCM解码芯片,其拥有一个高性能低功耗的DSP处理器核VS-DSP,5k的指令RAM,0.5k的数据RAM,串行的控制和数据输入接口,4个通用I/O口,一个UART口,同时片内还带有一个可变采样率的ADC、一个立体声DAC以及音频耳机放大器。VS1003通过一个串行接口来接=接收输入的比特流,它可以作为一个系统的从机。输入的比特流被解码,然后通过一个数字控制器到达一个18位过采样多位DAC。通过串行总线控制解码器。除了基本的解码,在用户RAM中他还可以做其他特殊应用,例如DSP音效处理,该芯片的主要特点如下:解码MP3(MPEG1&2音频层III)(CBR+VBR+ABR),WMA4.0/4.1/7/8/9的所有配置文件(5-384kbit/s的),WAV(PCM+IMAADPCM);MIDI/SP-MIDI文件对话筒输入或线路输入的音频信号进行IMAADPCM编码从麦克风或线路输入编码IMAADPCM流媒体支持低音和高音控制使用一个12-13MHz的时钟内部PLL时钟倍频器低功耗运行内含高性能片上立体声数模转换器,两声道间无相位差高品质的片上立体声DAC,没有通道之间的相位误差立体声耳机驱动器能够驱动30欧姆负载独立的工作电压为模拟,数字和I/O5.5KiB加入用户代码/数据的片上RAM串行控制和数据接口可以用来作为一个从属协处理器针对特殊应用的SPI闪存启动特殊应用的SPIFlash引导UART用于调试目的新的功能可被添加与软件和4的GPIO引脚2.2.3SD卡存储芯片简介SD卡是一种大容量、性价比高、体积小、访问接口简单的存储卡。SD卡大量应用于数码相机、MP3、手机、大容量存储设备,作为这些便携式存储设备的存储载体,他还具有低功耗、非易失性、保存数据无需消耗能量等特点。SD卡接口向下兼容MMC卡,访问SD卡的SPI协议及部分命令也适用于MMC卡。SD存储卡(SecureDigitalMemoryCard)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备。SD存储卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张有票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。SD存储卡在24mm*32mm*2.1mm的体积内结合了(SanDisk)快速记忆卡控制与MLC(MultilevelCell)技术和Toshiba(东芝)0.16u及0.13u的NAND技术,痛过9针的接口界面与专门的驱动器相连接,不需要额外的电源来保持其记忆的信息。而且它是一体化国体介质,没有任何移动部分,所以不用担心机械运动的损坏。SD存储卡(SecureDigitalMemoryCard)是一种基于半导体闪存工艺的存储卡,1999年,由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制完成。2000年,这几家公司发起成立了SD协会(SecureDigitalAssociation简称SDA),阵容强大,吸引了大量厂商参加。其中包括IBM、Microsoft、Motorola、NEC、Samsung等。在这些领导厂商的推动下,SD存储卡已成为目前电子数码产品中应用最广泛的存储卡。SD存储卡多用于MP3随身听、数码摄像机、数码相机等,也有用于笔记本电脑上。其投影面积与MMC卡相同,只是略微厚一点,为2.1mm。但是SD卡的存储容量要大的多,且读写速度比MMC卡快4倍。目前SD卡在数码相机中的应用正在快速发展并且SD卡在容量、性价比等方面与CF卡的差距越来越小,大有成为主流之势。SD卡的迅速成长绝非是偶然的。最重要的一点就是MMC卡与SD卡相兼容,这也正是SD存储卡迅速发展的原因之一。现在的SD卡容量从8MB到128GB不等。2.2.4LCD1602显示屏简介在日常生活中,液晶显示器并不陌生。液晶显示模块已经作为很多电子产品的通用器件,在计算器、万用表、电子表及很多家用电子产品中都可以看到。在单片机的人机交流界面中,一般的输出方式有:发光管、LED数码管、液晶显示器。其中,字符型液晶显示器是用于显示数字、图形符号及少量自定义符号的显示器。LCD1602字符型液晶的结构及指令系统LCDl602可分为2行共显示32个字符,每行显示16个字符;其可与8位或4位微处理器连接;内藏式字符发生器ROM,可提供160种工业标准字符,包括全部大小写字母、阿拉伯数字及日文片假名,以及32个特殊字符或符号的显示;内藏RAM可根据用户的需要,由用户自定义字符或符号;+5V单电源供电;低功耗(10mW)。LCD1602采用标准的16脚接口,其各个管脚的定义如下:第1脚:VSS为电源地。第2脚:VDD接5V正电源。第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地示器,是用于显示数字、图形符号及少量自定义符号的显示器。LCDl602可分为2行共显示32个字符,每行显示16个字符。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。第15~16脚:背光。LCD1602内部结构由DDRAM、CGROM、IR、DR、BF、AC等大规模集成电路组成,其各部分的功能如下:(1)DDRAM为数据显示用的RAM(DataDisplayRAM,简称DDRAM)。用以存放要显示的数据,只要将标准ASCII码放入DDRAM,内部控制线路就会自动将数据传送到显示器上,并显示出该ASCII码对应的字符。(2)CGRAM为字符产生RAM(CharacterGeneratorRAM,简称CGRAM),可供使用者存储特殊造型的造型码,CGRAM最多可存储8个造型。IR为指令寄存器(InstructionRegister,简称IR),负责存储MCU要写给LCD的指令码。当RS及R/W引脚信号为0且E引脚信号由1变为0时,D0~D7引脚上的数据便会存入到IR寄存器中。DR为数据寄存器(DataRegister,简称DR),它们负责存储单片机要写到CGRAM或DDRAM的数据。因此可将DR视为一个数据缓冲区,当RS及R/W引脚信号为1且E引脚信号由l变为0时,读取数据。当RS引脚信号为l,R/W引脚信号为0且E引脚信号由1变为0时,存入数据。BF为忙碌信号(BusyFlag.简称BF)。当BF为l时,不接收单片机送来的数据或指令;当BF为0时,接收外部数据或指令。所以在写数据或指令到LCD之前,必须查看BF是否为0。AC为地址计数器(AddressCounter,简称AC),负责计数写入/读出CGRAM或DDRAM的数据地址,AC依照MCLI对LCD的设置值而自动修改它本身的内容。给出了LCD1060液晶的指令系统,其各指令的定义如下:(1)清显示指令:指令码01H,光标复位到地址00H位置。(2)光标返回指令:光标返回到地址00H。(3)输入模式设置指令:用于光标和显示模式的设置。I/D:光标移动方向,高电平右移,低电平左移。S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。(4)显示开关控制指令:D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示。C:控制光标的开与关,高电平表示有光标,低电平表示无光标。B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。(5)光标或字符移位指令:高电平时移动显示文字,低电平时移动光标。(6)功能设置指令:DL:高电平时为4位总线,低电平时为8位总线。N:低电平时为单行显示,高电平时双行显示。F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符(有些模块的DL:高电平时为8位总线,低电平时为4位总线)。(7)字符发生存储器地址设置指令。(8)数据存储器地址设置指令。(9)读忙标志或光标地址指令。BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。(10)写数据指令:写数据到CGRAM或DDRAM。(11)读数据指令:从CGRAM或DDRAM中读取数据word文档可自由复制编辑word文档可自由复制编辑word文档可自由复制编辑第3章硬件电路设计3.1VS1003音频解码模块3.1.1VS1003管脚功能VS1003是一款具有解码功能的芯片,在这次毕业设计采用的控制芯片是ST12C5A60S2单片机,所以VS1003采用SPI接口设置。VS1003所用到的管脚的名称、类型、功能详见下表:管脚名称管脚名称LQFP48管脚类型管脚功能MICP1AI同相差分话筒输入,自偏压MICN2AI反相差分话筒输入,自偏压XRESET3DI低电平有效,异步复位端DGND04DGND处理器核与I/O地CVDD05CPWR处理器核电源IOVDD06CPWR处理器核电源CVDD17IOPWRI/O电源DREQ8CPEW处理器核电源GPIO/DCLK9DO数据请求,输入总线GPIO3/SDATA10DIO通用I/O2、串行数据总线时钟XDCS/BSYNC13DI数据片选端、字节同步IOVDD114IOPWRI/O电源VCO15DO时钟压控振荡器VCO输出DGND116DGND处理器核与I/O的地XTALO17AO晶振输出XTAL118AI晶振输入IOVDD219IOPWRI/O电源DGND220DGND处理器核与I/O的地的地DGND321DGND处理器核与I/O的地DGND422DGND处理器核与I/O的地XCS23DI片选输入,低电平有效CVDD224CPWR处理器核电源RX26DIUART接收口,不用时接IOVDDTX27DOUART发送口SCLK28DI串行总线的时钟SI29DI串行输入SO30DO3穿行输出CVDD331CPWR处理器核电源TEST32DI保留做测试,连接至IOVDDGPIO0/SPBIOOT33DIO通用I/O0、SPIBOOT,使用100k下拉电阻GPIO134DIO通用I/O1AGND037APWR模拟地,低噪声参考地AVDD038APWR模拟电源RIGHT39AO右声道输出AGND140APWR模拟地AGND241APWR模拟地GBUF42AO公共地缓冲器AVDD143APWR模拟电源RCAP44AIO基准滤波电容AVDD245APWR模拟电源LEFT46AO左声道输出AGND347APWR模拟地LEFTIN48AI线路输入3.1.2内部寄存器VS1003包含16个16位的寄存器,寄存器的地址为0X0~0XF;除了模式寄存器(MODE,0X0)和状态寄存器(STATUS,0X1)在复位后初始值分别为0X800和OX3C外,其余寄存器在VS1003初始化后的值均为0。下面将对VS1003的各寄存器进行介绍。(1)MODE(地址:0X0,可读写)●bit0:SM_DIFF。SM_DIFF=0正常音频相位;SM_DIFF=1左声道反转。当SM_DIFF置位时,VS1003将左声道反相输出,立体声输入将产生环绕效果,对于单声道输入将产生差分(反相)左/右声道信号。●bit1:SM_SETTOZERO。置零。●bit2:SM_RESET。SM_RESET=1,VS1003软复位。软复位之后该位会自动清零。●bit3:SM_OUTOFWAV。SM_OUTOFWAV=1,停止WAV解码。当你生产实习指导书83要中途停止WAV、WMA或者MIDI文件的解码时,置位SM_OUTOFWAV,并向VS1003持续发送数据(对于WAV文件发送0),直到将SM_OUTOFWAV清零,同时SCI_HIDAT1也将被清零。●bit4:SM_PDOWN。SM_PDOWN=1,软件省电模式,该模式不及硬件省电模式(可由VS1003的XRESET来激活)。●bit5:SM_TESTS。SM_TESTS=1,进入SDI测试模式。●bit6:SM_STREAM。SM_STREAM=1,使能VS1003的流模式。●bit7:SM_PLUSV。SM_PLUSV=1,MP3+V解码使能。●bit8:SM_DACT。SM_DACT=0,SCLK上升沿有效;SM_DACT=1,SCLK下降沿有效。●bit9:SM_SDIORD。SM_SDIORD=0,SDI总线字节数据MSB在前,即须先发送MSB。SM_SDIORD=1,SDI总线字节数据LSB在前,即须先发送LSB。该位的设置不会影响SCI总线。●bit10:SM_SDISHARE。SM_SDISHARE=1,SDI与SCI将共用一个片选信号(同时SM_SDINEW=1),即将XDCS与XCS这两根信号线合为一条,word文档可自由复制编辑word文档可自由复制编辑word文档可自由复制编辑能省去一个IO口。●bit11:SM_SDINEW。SM_SDINEW=1,VS1002本地模式(新模式)。VS1003在启动后默认进入该模式。(这里所说的模式指的是总线模式)●bit12:SM_ADPCM。SM_ADPCM=1,ADPCM录音使能。同时置位SM_ADPCM和SM_RESET将使能VS1003的IMAADPCM录音功能。●bit13:SM_ADPCM_HP。SM_ADPCOM_HP=1,使能ADPCM高通滤波器。同时置位SM_ADPCM_HP、SM_ADPCM和SM_RESET将开启ADPCM录音用高通滤波器,对录音时的背景噪音有一定的抑制作用。●bit14:SM_LINE_IN。录音输入选择,SMLINE_IN=1,选择线入(linein)。SM_LINE_IN=0,选择麦克风输入(默认)。SCI_STATUS(地址:0X1,可读写)SCI_STATUS为VS1003的状态寄存器,提供VS1003当前状态信息。SCI_BASS(地址:0X2,可读写)重音/高音设置寄存器。VS1003内置重音增强器VSBE是种高质量重音生产实习指导书84增强DSP算法,能够最大限度的避免音频削波。当SB_AMPLITUDE(bit:7~4)不为零时,重音增强器将使能。可以根据个人需要设置SB_AMPLITUDE。例如,SCI_BASS=0x00f6,即对60Hz以下的音频信号进行15dB的增强。当ST_AMPLITUDE(bit:15~12)不为零时高音增强将使能。SCI_BASS=0x7a00,即10kHz以上的音频信号进行10.5dB的增强。SCI_CLOCKF(地址:0X3,可读写)●bit15~bit13:SC_MULT。时钟输入XTALI的倍频设置,设置之后将启动VS1003内置的倍频器。●bit12~bit11:SC_ADD。用于在WMA流解码时给倍频器增加的额外的倍频值。●bit10~bit0:SC_FREQ。当XTALI输入的时钟不是12.288M时才需要设置该位段。其默认值为0,即VS1003默认使用的是12.228M的输入时钟。SCI_DECODE_TIME(地址:0X4,可读写)解码时间寄存器。当进行正确的解码时,读取该寄存器可以获得当前的解码时长(单位为秒)。可以更改该寄存器的值,但是新值须要对该寄存器进行两次写操作。在每次软件复位或是WAV(PCM、IMAADPCM、WMA、MIDI)解码开始与结束时SCI_DECODE_TIME的值将清零。SCI_AUDATA(地址:0X5,可读写)当进行正确的解码时,该寄存器的值为当前的采样率(bit:15~bit1)和所使用的声道(bit0)。采样率须为2的倍数。bit0=0,单声道数据,bit0=1,立体声数据。写该寄存器半直接改变采样率。SCI_WRAM(地址:0X6,可读写)读寄存器用来加载用户应用程序和数据到VS1003的指令的数据RAM中。起始地址在SCI_WRAMADDR中进行设置,且须先于读写SCI_WRAM。对于16位的数据可以在进行一次SCI_WRAM的读写中完成;而对32位的指令字来说则需要两次连续读写。字节顺序是大端模式,即高字节在前,低字节在后。在每一次完成全字读写后,内部指针将自动增加。SCI_WRAMADDR(地址:0X7,可读写)用于设置RAM读写的首地址。生产实习指导书85SPI_HDAT0、SPI_HDAT1(地址:0X8,只读)这两个寄存器用来存放所解码的音频文件的相关信息,为只读寄存器。当为WAV文件时,SPI_HDAT0=0X7761,SPI_HDAT1=0X7665。当为WMA文件时,SPI_HDAT0的值为解码速率(字节/秒),要转换为位率的话则将SPI_HDAT0的值乘8即可,SPI_HDAT1=0X574D。当为MIDI文件时,SPI_HDAT0的值可以参考VLSI的技术文档第33页,SPI_HDAT1=0X4D54。当为MP3文件时,SPI_HDAT0和SPI_HDAT1包含较为复杂的信息(来自于解压之后的MP3文件头),包括当前正在解码的MP3文件的采样率、位率等,具体请参考数据手册的第33页到第34页。复位后SPI_HDAT0和SPI_HDAT1将清零。SCI_AIADDR(地址:0XA,可读写)用户应用程序起始地址,先于SCI_WRAMADDR和SCI_WRAM进行初始化。如果没有使用任何用户应用程序,则该寄存器不应进行初始化,或是将其初始化为零。SCI_VOL(地址:0XB,可读写)音量控制寄存器。高八位用于设置左声道,低八位用于设置右声道。设置值为最大值是的衰减倍数,步进值为0.5dB,范围为0到255最大值是的设置值为0x0000,而静音为0xffff。例如,左声道:2.0dB,右声道:3.5dB,则SCI_VOL=(4X256)+7=0x0407。硬件复位将使SCI_VOL清零(最大音量),而软件复位将不改变音量设置值。(设置静音(SCI_COL=0XFFFF)将关闭模拟部分的供电)SCI_AICTRL[X](地址:0XC~0XF,可读写)用于访问用户应用程序。3.1.3数据通信单片机STC12C5A60S2是通过SPI总线方式与解码芯片VS1003进行数据通信的。VS1003通过穿行命令接口SCI和串行数据接口SDI来接收核心控制器STC12C5A60S2的控制命令和MP3的数据:通过XCS、XDCS引脚的高低位设置来确认哪一个接口处于传送状态。VS1003通过SCI口写入特定寄存器来实现控制功能。在音频解码系统中,要以VS1003为从机数据应答模块得到顺畅的模拟音频流,必须依据VS1003关于SPI协议下其自身特定的SPI工作原理对STC12C5A60S2进行编程控制才能实现。VS1003特定的SPI协议可分为两类:SCI传输和SDI传输,SCI传输是指VS1003为实现基于SPI协议的数据传输而率先进行的命令传输。该命令传输也是基于SPI协议,但具体协议内容因命令的不同而不同。STC12C5A60S2必须完全依据SCI命令的协议格式去编写代码才有可能实现初步的SPI通信。由于SPI协议本身是全双工的同步通信方式,因此对于SCI传输过程,VS1003定义了读、写2套命令操作机制。写命令操作相对于读命令操作更为重要,主要用于告知从机关与数据通信的具体类别,二度命令操作只在某些调试中用于监视通信是否正常。数据应答是衡量SPI数据是否被从机正确接收和从机是否准备接收下一批SPI数据的重要标识信号。在硬件上该控制位是独立的,是VS1003独有的数据请求返回管脚。毕竟无论是SCI传输还是SDI传输,VS1003在整个系统的SPI传输中都是完全被动的接收数据的,VS1003还承担着实时处理音频数据的责任,如果VS1003的处理时序与主机的传输时序发生了冲突,那么VS1003被动接收的数据将变得无效,进而使整个系统的数据传输失效;如果VS1003在被动接收数据的前提下能够根据自身的数据处理时序发出数据请求标识,表明在某一段时间数据传输可以进行,在另一短时间内数据传输需要稍微暂停一下,那么整个SPI数据传输就会与音频信号处理时序协调起来,实现流畅的音频数据传输和处理。因此数据应答是一个非常重要的标识逻辑,完全由VS1003自动产生。对于主机则必须时刻依据数据应答调整SPI传输时许。VS1003的SCI传输协议通常包含一个8bit的指令字节、一个8bit的地址字节和一个16bit的数据字节。具体操作要指令字节操作。每次SCI传输后数据请求返回管脚都会被设置为低,VS1003是不允许在数据请求返回管脚变为高之前开始新的SCI或SDI传输的。SDI传输是指VS1003基于SPI协议的数据传输,完全是音频流数据,VS1003在接受SDI数据的同时完成片内的音频解码数据处理任务,以2B为单位进行SDI数据的传输和处理,每传输完2B的二进制音频数据,VS1003就在数据请求返回管脚上设置一个低电平。该管脚在再次变为高电平之前,主机不能连续向从机发送SDI数据,否则数据将会被自动舍弃无效。3.1.4模块设计及其与单片机的链接通过上述几节对VS1003的介绍,能初步对VS1003进行硬件设计,VS1003的工作电压为3.3V、2.5V,为了模块的小型化,本设计采用稳压芯片将单片机工作电压(5V)降到3.3V、2.5V提供给VS1003的I/O电源与模拟电源、处理器工作电压。要使VS1003工作必须在17.、18引脚接晶振电路;3脚接上电复位电路;8脚连接控制器;9、10/33/34没有用到下拉电阻,13脚需要连接控制器;30脚上拉10k电阻32脚测试用接IOVDD;39脚接到耳机的右声道输出;42脚用于耳机接地;46接到耳机左声道输出,具体连接见下图:word文档可自由复制编辑word文档可自由复制编辑word文档可自由复制编辑3.2存储模块SD存储卡可以设计出便宜的播放器和驱动器而没有可移动的部分。使用非常有效的数据压缩比如MPEG,SD存储卡可以提供足够的容量来应付多媒体数据。3.2.1SD存储卡硬件结构与接口模式SD卡有9个引脚,引脚的排序和卡内部结构如下图所示:引脚的功能与模式见下表,它的内部结构包括接口驱动器、时钟、寄存器组、卡接口控制器。SD卡上的所有单元有内部时钟发生器提供时钟。3.2.2SD命令1.SD卡的命令格式:SD卡的指令由6字节组成,如下:Byte1:01xxxxxx(命令号,有指令标志定义,如CMD39为100111即16进制0x27,那么完整的CMD39第一字节为01100111,即0行27+0x40)Byte2-5:CommandArguments,命令参数,有些命令没有参数。Byte6:前7位为CRC校验位,最后一位为停止位0.2.SD存储卡的命令SD存储卡的命令共分为12类,分别为class0到class11,不同的SD存储卡主控根据其功能,支持不同的命令集如下:Class0:卡的识别、初始化等基本命令集CMD0:复位SD卡。CMD1:读OCR寄存器。CMD9:读CSD寄存器。CMD10:读CID寄存器。CMD12停止读多块时的数据传输。CMD13:读Card-Status寄存器。Class2:读卡命令集CMD16:设置块的长度。CMD17:读单块。CMD18:读多块,直至主机发送CMD12为止。Class4:写卡命令集CMD24:写单块。CMD25:写多块。CMD27:写CSD寄存器。Class5:擦除卡命令集CMD28:设置写保护块的地址。CMD29:擦除写保护块的地址。CMD30:对地址写保护位。Class7:卡的锁定,解锁功能命令集。Class8:申请特定命令集。Class10-11:保留。其中Class1,Class3,Class,9:不支持SPI模式。3.2.3SD存储卡数据操作第4章系统软件设计4.1FAT32文件系统简介文件系统在操作系统中体现文件命名、存储和组织的整体结构,由文件、目录和对这些项目定位及存取所需的信息组成。Windows95OSR2和Windows98开始支持FAT文件系统,由于文件系统的核心文件分配表FAT由16扩充为32位,所以被称为FAT32文件系统。FAT文件系统部分简介如下:FAT32文件系统将逻辑盘的空间划分为三部分,依次是引导区、文件分配表区、数据区。引导区从第一扇区开始,使用了三个扇区,保存了该逻辑盘每扇区字节数,每簇对应的扇区数等等重要参数和引导记录。之后还留有若干保留扇区。文件分配表区共保存了两个相同的文件分配表,因为文件所占用的存储空间及空闲空间的管理都是通过FAT实现的,FAT如此重要,保存两个以便第一个损坏时,还有第二个可用。文件系统对数据区的存储空间是按簇进行划分和管理的,簇是空间分配和回收的基本单位,即一个文件总是占用若干个整簇,文件所使用的最后一簇所剩余空间不被使用。FAT系统一簇对应8个逻辑相邻的扇区,理论上,这种用法所能管理的逻辑盘容量上限为16TB,容量大于16TB时,可以用一簇对应16个扇区,以此类推。4.2FAT32文件系统在单片机上的软件设计FAT32文件系统您一定不会陌生,最多看到是它在Windows操作系统里,在一些嵌入式产品中也能看到它的身影。从某种意义上来说,FAT32文件系统是很成功的,使用户脱离底层存储设备驱动,更为方便高效的组织数据。给单片机系统中的大容量存储器配以FAT32文件系统,将是非常有意义的。下面通过程序来了解FAT32文件系统机制在单片机上的实现原理。4.2.1主引导扇区的数据结构虽然本次设计所使用的的SD存储卡只有一个分区,但是在文件系统初始化的开始我们必须通过MBR获得分区表项的数据,以获得CHS、LBA参数以及分区大小扇区数,否则就无法知道SD卡中的文件系统的起始物理扇区word文档可自由复制编辑word文档可自由复制编辑word文档可自由复制编辑号。在单片机定义程序如下:structPartRecord{UINT8Active;//0x80表示此分区有效UINT8StartHead;//分区的开始磁头UINT8StartCylSect[2];//开始柱面与扇区UINT8PartType;//分区类型UINT8EndHead;//分区的结束头UINT8EndCylSect[2];//结束柱面与扇区UINT8StartLBA[4];//分区的第一个扇区UINT8Size[4];//分区的大小};//MBR:分区扇区(绝对0扇区)定义如下structPartSector{UINT8PartCode[446];//MBR的引导程序structPartRecordPart[4];//4个分区记录UINT8BootSectSig0;//55UINT8BootSectSig1;//AA};4.2.2分区引导扇区的数据结构引导扇区是FAT32文件系统的第一个扇区,也称为DBR扇区,它包含这样一些文件系统的基本信息:【1】每扇区字节数【2】每簇扇区数【3】保留扇区数【4】FAT表个数【5】文件系统大小(扇区数)【6】每个FAT表大小(扇区数)【7】根目录起始簇号【8】其他一些附加信息在单片机定义程序如下://znFAT中对BPB的定义如下一共占用90个字节structznFAT_BPB{UINT8BS_jmpBoot[3];//跳转指令offset:0UINT8BS_OEMName[8];//offset:3UINT8BPB_BytesPerSec[2];//每扇区字节数offset:11UINT8BPB_SecPerClus[1];//每簇扇区数offset:13UINT8BPB_RsvdSecCnt[2];//保留扇区数目offset:14UINT8BPB_NumFATs[1];//此卷中FAT表数offset:16UINT8BPB_RootEntCnt[2];//znFAT为0offset:17UINT8BPB_TotSec16[2];//znFAT为0offset:19UINT8BPB_Media[1];//存储介质offset:21UINT8BPB_FATSz16[2];//znFAT为0offset:22UINT8BPB_SecPerTrk[2];//磁道扇区数offset:24UINT8BPB_NumHeads[2];//磁头数offset:26UINT8BPB_HiddSec[4];//FAT区前隐扇区数offset:28UINT8BPB_TotSec32[4];//该卷总扇区数offset:32UINT8BPB_FATSz32[4];//一个FAT表扇区数offset:36UINT8BPB_ExtFlags[2];//znFAT特有offset:40UINT8BPB_FSVer[2];//znFAT特有offset:42UINT8BPB_RootClus[4];//根目录簇号offset:44UINT8FSInfo[2];//保留扇区FSINFO扇区数offset:48UINT8BPB_BkBootSec[2];//通常为6offset:50UINT8BPB_Reserved[12];//扩展用offset:52UINT8BS_DrvNum[1];//offset:64UINT8BS_Reserved1[1];//offset:65UINT8BS_BootSig[1];//offset:66UINT8BS_VolID[4];//offset:67UINT8BS_FilSysType[11];//offset:71UINT8BS_FilSysType1[8];//"znFAT"offset:82};4.2.3目录项的数据结构根目录在文件系统建立时已被创建,其目的就是存储目录或文件的目录项。每个目录项的大小为32个字节。在单片机定义程序如下:structdirentry{UINT8deName[8];//文件名,不足部分以空格补充UINT8deExtension[3];//扩展名,不足部分以空格补充UINT8deAttributes;//文件属性UINT8deLowerCase;//0UINT8deCHundredth;//世纪UINT8deCTime[2];//创建时间UINT8deCDate[2];//创建日期UINT8deADate[2];//访问日期UINT8deHighClust[2];//开始簇的高字UINT8deMTime[2];//最近的修改时间UINT8deMDate[2];//最近的修改日期UINT8deLowCluster[2];//开始簇的低字UINT8deFileSize[4];//文件大小};4.2.4文件信息数据结构上面介绍的是FAT32文件系统的数据结构,但在单片机应用时需要节约单片机内部的有效资源,所以FAT32文件系统的数据结构体在单片机只是临时应用下,只是将需要以后运用的文件信息保存。下面是重要文件存储数据的结构定义:structFileInfoStruct{UINT8FileName[15];//文件名UINT32FileStartCluster;//文件的开始簇UINT32FileCurCluster;//文件的当前簇UINT32FileSize;//文件大小UINT32FileCurSector;//文件的当前扇区UINT16FileCurPos;//文件在当前扇区中的位置UINT32FileCurOffset;//文件的当前偏移量UINT32Rec_Sec;//文件的文件/目录项所在的扇区UINT16nRec;//文件的文件/目录项所在扇区中的位置UINT8FileAttr;//文件属性structTimeFileCreateTime;//文件的创建时间structDateFileCreateDate;//文件的创建日期structTimeFileMTime;//文件的修改时间structDateFileMDate;//文件的修改日期structDateFileADate;//文件的访问日期};4.2.5重要参数数据结构在DBR结构体中有许多参数在后来的读文件时是不需要的,在初始化时也不需要在单片机保存没有价值的参数,所以定义重要参数数据结构体用来存放FAT32文件系统重要的参数,同时节约了单片机的内部资源。下面是重要参数的数据结构定义:structznFAT_Init_Arg{UINT8DEV_No;UINT8BPB_Sector_No;//BPB所在扇区号UINT32Total_Size;//磁盘的总容量UINT32FirstDirClust;//根目录的开始簇UINT32BytesPerSector;//每个扇区的字节数UINT32

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论