智能音乐播放器的设计与实现毕业设计.docx

上传人:b****8 文档编号:10524891 上传时间:2023-02-17 格式:DOCX 页数:30 大小:231.46KB
下载 相关 举报
智能音乐播放器的设计与实现毕业设计.docx_第1页
第1页 / 共30页
智能音乐播放器的设计与实现毕业设计.docx_第2页
第2页 / 共30页
智能音乐播放器的设计与实现毕业设计.docx_第3页
第3页 / 共30页
智能音乐播放器的设计与实现毕业设计.docx_第4页
第4页 / 共30页
智能音乐播放器的设计与实现毕业设计.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

智能音乐播放器的设计与实现毕业设计.docx

《智能音乐播放器的设计与实现毕业设计.docx》由会员分享,可在线阅读,更多相关《智能音乐播放器的设计与实现毕业设计.docx(30页珍藏版)》请在冰豆网上搜索。

智能音乐播放器的设计与实现毕业设计.docx

智能音乐播放器的设计与实现毕业设计

第1章绪论

1.1MP3播放器的发展沿革

MP3播放器的设计是一门集计算机技术、通信技术和数字多媒体技术于一体的综合设计。

媒体在中国的宽带建设中被列为最主要的应用之一,越来越多的提供网络在线服务的运营商开始采用网络视频媒体服务解决方案,以增强在网络服务上的优势。

媒体将成为未来互联网应用的主流,并将推动互联网整体架构的革新。

近年来,媒体技术在世界范围内己有应用,特别是1995年推出第一个Internet媒体播放器以来,Internet媒体应用有了爆炸性增长。

互联网的发展更是决定了媒体市场的广阔前景。

商业网站利用媒体上新闻、音乐直播和点播,企业和机构采用点播和媒体进行员工培训、信息发布、公司介绍等,可提高效率,节约开支。

随着计算机技术、网络技术、数字多媒体技术等高科技技术的发展,媒体播放器技术也得到了迅速发展。

媒体播放器的发展大致可分为两个阶段:

基于PC的媒体播放器阶段和嵌入式媒体播放器阶段。

目前基于PC的MP3播放技术市场上主流的媒体技术有三种,分别是RealNetworks公司的RealMedia,Microsoft的WindowsMedia和Apple公司的Quicklime。

这三家的技术都有自己的专利算法、专利文件格式甚至专利传输控制协议这三个关键要素在里面。

Apple公司的Quicklime是一个非常老牌的媒体技术集成,是数字媒体领域事实上的工业标准。

之所以说集成这个词是因为Quicklime实际上是一个开放式的架构,包含了各种样的流式或者非流式的媒体技术。

目前的最新版本支持MP4文件格式的播放。

RealNetworks公司在20世纪90年代中期首先推出了媒体技术,并随着互联网的急速发展而壮大了自身,在市场上处于主动地位,并拥有最多的用户数量。

RealMedia通过基于SMIL并结合自己的RealPix和RealText技术来达到一定的交互能力和媒体控制能力,不过相比Quicklime来说还有一段距离。

Microsoft是三家之中最后进入这个市场的,但利用其操作系统的便利很快便取得了一定的市场份额。

WindowsMedia的关键核心是MMS协议和ASF数据格式,MMS用于网络传输控制,ASF则用于媒体内容和编码方案的打包。

其实从一般的角度来看,这三种技术之间的差异并不大。

总的来说,如果使用Windows服务器平台,WindowsMedia的费用最少。

Quicklime在性能价格比上具有优势,而RealMedia则在用户数量上有优势。

目前虽然基于PC的媒体播放系统仍然占据多媒体应用的主要市场,但是它具有一个致命缺点就是,使用基于PC平台的媒体播放器的用户必须熟练掌握PC技术,并且其应用无法离开多媒体PC。

近两年随着媒体技术应用到各个领域,特别是计算机、通信、消费电子产品领域(3C产业—Computer,Communication,ConsumerElectronics),对视频播放系统的要求也越来越高:

操作简单、实时可靠、多功能、数字化、经济实用的媒体播放器的开发和设计正越来越多地受到人们的瞩目。

基于嵌入式技术的媒体播放器应运而生。

嵌入式系统被定义为:

以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

嵌入式系统以其本身体积小,实时性高,稳定性好,支持以太网等优点,成为多媒体应用领域的新热点。

基于嵌入式技术的媒体播放器有效地将嵌入式技术和媒体技术结合在一起,可以很好地解决基于PC的媒体播放器在实际应用中存在的不便和问题。

和基于PC的媒体播放器相比,基于嵌入式技术的媒体播放器具有:

体积小,携带方便,功能专业化高,成本较低,稳定性高,实时性好等特点。

因此基于嵌入式技术的流体播放器必将有良好的应用与发展前景,特别是在消费电子产品领域(3C产业)。

1.2课题的内容和意义

在一个典型的嵌入式媒体播放器的无线以太网应用中,多个嵌入式媒体播放器利用其无线网卡和一个无线接入点(AccessPoint,简称AP)组成一个BSS(BasicServiceSet),这个BSS通过无线接入点和计算机网络相连;媒体服务器也通过其以太网接口连接在计算机网络上。

媒体服务器根据获得的请求向嵌入式媒体播放器发送媒体数据;嵌入式媒体播放器向媒体服务器提出请求,在媒体服务器响应后接收媒体服务器发送过来的多媒体数据流并进行相应的解码和播放。

本课题对该嵌入式媒体播放器的嵌入式系统进行了分析和设计:

●首先结合主要芯片的性能对MP3播放器的硬件进行了设计。

●本播放器的硬件设计以AT89C51SND1C为核心。

●其次根据硬件设计基础和Linux下编程的特主要芯片的性能对MP3播放器的硬件进行了设计点对嵌入式软件进行了总体设计。

●嵌入式Linux操作系统使用的是MontaVistaLinux。

在其基础上开发的嵌入式媒体播放器应用软件主要有三部分构成,分别是图形用户界面模块、系统管理主控模块和音频视频解码器。

图形用户界面模块通过事件/消息机制和系统管理主控模块交互。

音视频解码器模块可则从系统管理主控模块获得编码的音视频数据并对其解码后发送己解码的音视频数据给系统管理主控模块。

●接着对嵌入式媒体播放器的应用软件的音频视频解码模块的实现进行了详细设计。

本嵌入式媒体播放器支持MP3的音频。

●为了达到性能需求的要求,还需要对软件进行必要的优化。

对于MP3音频解码,采用定点优化的MP3算法以及利用IPP库中对MP3的优化,使得实时解码MP3达到比较高的效率。

●最后完成对硬件功能和性能的测试工作。

第2章方案选择及主要芯片简介

2.1MP3播放器原理说明

经过近段时间的学习和了解,我认为MP3播放器的原理归根结底就是数字化信号的压缩、解码转换、传送放大的一个过程。

数字化的声音有很多种存在形式:

WAV、MP3、AAC等等。

但是无论怎样,声音的数据量由两方面决定:

频度和样本精度。

由于对于声音的数字化涉及较广的数学和感知领域的知识,我们只是简要介绍一下MP3音频。

MPEG-1音频定义了3个分明的层次,它们的基本模型是相同的。

层1是最为基础的,层2和层3都在层1的基础上有所提高。

每个后继的层次都有更高的压缩比,但也因此需要更加复杂的解码器。

我们平时说的MP3解码就是说MPEG-1音频解码标准的第三层。

MPEG-1声音标准所提供的三个独立的压缩层次具体如下:

层1:

编码器最为简单,编码的输出数据率为384kb/s,主要用于小型数字盒式磁带;

层2:

编码器的复杂程度较高,编码输出数据率为256kb/s到192kb/s,广泛应用于CD,VCD等;

层3:

编码器最为复杂,编码器的输出数据率为64kb/s,即为现今非常流行的MP3。

MP3的数据是以帧流的形式存储或传输的,每个帧由帧头和帧数据组成。

媒体每一帧包含的比特数可以是不定的,但是能从帧头信息中的数据计算得到媒体。

公式为:

帧内比特数=(帧内采样数x位率)/采样率。

对于MP3,帧内的数据包含2x576个时城采样值,采样率有44.1kHz,48kHz,32kHz3种,位率是从32kbps到320kbps。

帧头(header)包括头信息(4个字节),CRC校验数据(可选,2个字节),帧边信息(也可称为附加信息。

单声道为17个字节,双声道为32个字节)。

其中头信息中包含了MP3帧流的特征信息,有4个字节,32位。

具体为:

同步字(OXFFF)、标识符、层、CRC校验位、使能位串指数、采样频率、填充位、私有标志、模式、模式扩展位、版权、原始流/复制流和增强方式。

帧边信息包含了解码所需的一切信息,如主数据开始指针、主数据位数、与Huffman解码相关的信息、与逆量化相关的信息等。

帧数据(main_data)包括两个粒度组的数据,这两个粒度的数据几乎是相互独立的。

每个粒度有576个时域的采样值。

每个粒度的数据又包含了每个声道的数据(分单声道和双声道),而每个声道数据中具体包含了MP3解码所需要的比例因子和Huffman编码的数据。

最后是辅助数据。

但是,用于解码的帧的主数据的起始位置并不一定在该帧边信息后,而是根据帧边信息中主数据开始的值来步扩展和完善。

采样频率的选择性更高,更接近CD音质;并且采用了解析度更高的滤波器组,达到很高的压缩率,并且可大幅度降低传输时间及介绍存储空间,适合新一代音乐产品决定主数据起始位置的前移字节数。

但是,用于解码的帧的主数据的起始位置并不一定在该帧边信息后,而是根据帧边信息中主数据开始的值来决定主数据起始位置的前移字节数。

2.2方案选择

在了解以上的基本原理后,我就开始收集关于MP3和U盘的具体资料。

其基本情况如下:

(1)了解各个基本部分的技术细节

经过对U盘和MP3技术细节的了解,得到了以下一些结论:

关于CPU、USBDevice接口芯片和存储器3部分,市面上的商业产品,一般是把前两个部分集成在一起的,采用专用的带USB控制器的CPU;存储器一般为Flash,容量为8MB、16MB、32MB、64MB不等,而这里又以三星的NAND(与非型)非线性Flash存储器最为常用。

(2)重新对功能整体进行整合

对功能定义中的各个基本部分的具体内容的技术细节有一个大体了解之后,需要重新对各个基本部分进行整合,可能对应着某个芯片。

而整个系统就是这些芯片之间的有机协调与配合。

除了整个系统各个功能模块所对应的芯片间可能有不同的集成形式外,每种芯片也有可选方案,不同厂商生产的同类芯片可能各有千秋。

也可根据其他一些偶然因素来确定使用何种芯片。

当然是具体问题具体对待了!

经过各种途径的查找,最后总结出3种有代表性的MP3(U盘)方案,如下表2-1所示。

表2-1带有U盘功能的MP3的可选方案

方案

内容

CPU

USBDevice接口芯片

MP3解码芯片

D/A转换与音频放大芯片

Flash存储器

方案1

AT89C51SND1C

CS4330+双路功放

K9F2808

方案2

PIC16C64

PDIUSBD12

MAS3507D

DAC3550

方案3

AVR8515

PDIUSBD12

STA013

CS4330+双路功放

在经过对芯片的价格、可购性进行了详细的了解之后,方案最终确定下来之前,还需要了解一下一些芯片可用的参考设计多不多,或曾经用过的人对此的评价,可以为自己的最终选择提供一些参考。

最后决定采用方案1。

影响方案综合评价的各主要原因如表2-2所示。

表2-2影响方案综合评价的各主要原因

因素

种类

开发难度

可靠性

主要芯片数量

是否可购

价格

综合评价

方案1

集成度高,开发容易

集成芯片,可靠性强

3

适中

1

方案2

较难

一般

5

3

方案3

较难

一般

5

2

由上表分析结果,我们不难看到方案1的优点,其主要内容如下:

(1)CPU+解码器+USB控制器:

AT89C51SND1C。

(2)D/A转换:

CS4330A。

(3)音频放大:

任意双路功率放大芯片即可。

(4)存储器:

K9F2808,16MB。

根据方案的选择以及各个芯片资料中的说明,下图为主要芯片间的通信框图,如图2-1所示。

图2-1MP3播放器内部通信框图

2.3主要芯片简介

2.3.1AT89C51SND1C单片机

采用美国ATMEL公司的AT89C51SND1C芯片为主控制器,三星公司的闪存芯片K9F2080为外部存储器进行MP3硬件播放器设计与实现。

重点研究外部存储去flash的存储结构,具体的指令操作。

在flash的相关源程序编写中,主要有闪存操作的头文件定义和具体的源程序包括有产品认证模式定义,flash复位函数定义,读取闪存中某一扇区(page)的程序。

音频部分的制定是以MUSICAM(3)(MaskingPaternUniversalSubbandIntegratedCodingandMultiplexing,屏蔽模式通用子带编码复用)和ASPEC(4)(AdaptiveSpectralPerceptualEntropyCoding,自适应谱感觉熵编码)两种算法为基础的。

编码针对采样率为32kHz,44.1kHz和48kHz的16位PCM音频信号,支持单声道、双声道、立体声和联合立体声四种模式。

编码后的码率在32—192kbps(单声道)或64—384kbps(双声道或立体声)范围内。

AT89C51SND1C是美国ATMLE公司针对MP3解决方案新生产的一款芯片,具有C51内核,64K字节的闪存程序空间和4K字节引导闪存以及2304字节的ROM存储器,利用微处理器核对数据流和MP3解码器进行控制,并允许通过嵌入的4K字节闪存引导区进行在系统编程。

AT89C51SND1C在原有的89C51的基础上增加了MP3解码模块,I2C/PCM音频输出模块,串并行接口模块(USB,2线,SPI,IDE),以及其他的外存储器接口模块。

适用于MP3播放器,PDA,摄像机,带MP3手记,汽车音响,家庭影院等嵌入式系统。

AT89C51SND1C芯片包括8个功能块,如下图2-2所示。

(1)MP3音频解码器:

AT89C51SNDlC可实时解码MP3数据为PCM音频数据,同时也支持MP3其他频率。

解码器也支持其它特性如声音控制、低音放大、辅助数据提取等。

(2)音频输出接口:

允许音频解码位流以不同的格式输出,并可兼容PCM和I2C格式。

(3)通用串行总线(USB)接口:

支持USB存储类的MP3音频解码文件下载;支持USB固件类升级的在系统编程。

(4)外插闪存卡接口:

该接口适应多媒体卡模式的V2.2规范。

允许移动闪存卡上音频解码文件的存储,这样在应用时可轻易地插入和拔除,此接口亦可用于在系统编程。

(5)IDE/ATAH接口:

该接口允许C2LROM读卡机、压缩闪卡、硬盘等驱动设备的连结。

由一个具有低电平ANSI规范的16位双向总线部分组成,具有多存储接口,但只能用于连接C2LROM时的在系统编程。

(6)串行外设接口:

支持主模式和从模式,具有以下功能:

MP3音频解码文件存储到数据闪存的接口;主机远程控制AT89C51SNDlC芯片;在系统编程。

(7)双线控制器:

支持4个标准的主模式和从模式,多种性能。

具有以下功能:

从设备如LCD控制器、音频DAC的连接;主机远程控制AT89C51SNDlC芯片及在系统编程。

(8)A/D控制器:

2道10位模数转换。

具有电源管理、录音等功能。

图2-2AT89C51SND1C的功能模块图

其具体功能在下面的内容中,我将着重介绍它。

AT89C51SND1C是关国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbyes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM)。

器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。

主要性能参数:

1)MCS51内核,可以利用单片及开发软件KEIL软件方便开发MP3播放器,无需特殊软件平台;

2)MPEGI/II-Layer3hardwaredecoder;

●独立MP3Decoder;

●支持48,44.1,32,24,22.05,16khz取样频率;

●支持软件31阶音量控制,高中低音均衡控制;

●重低音效果。

3)集成DAC部件,支持PCM,IIS格式;

4)64K字节片上代码存储空间(100K次擦写寿命);

6)集成USB1.1device部件;

5)4K字节bootflashmemoryUSB/UART下载代码;

7)MMC卡接口;

8)IDE/ATAPI接口(HDD/CD-ROMInterface);

9)2通道ADC,8Khz取样。

功能特性概述:

AT89C51SND1C提供以下标准功能4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89C51SND1C可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断析系统继续工作。

掉电力式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作自到下一个硬件复位。

引脚功能说明

·VCC:

电源电压;

·GND:

地;

·P0口:

P0口是一组8位漏极开路型双向I/O口,也即地址厂数据总线复用口。

作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash编程时,PO口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

·P1口:

P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。

Flash编程和程序校验期间,P1接收低8位地址。

·P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流信号I。

在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)R2寄存器的内容),在整个访问期间小改变Flash编程或校验时,P2亦接收高位地址和其它控制信号。

·P3口:

P3口是一组带有内部上拉电阻的8位双向I/O口。

P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。

作输入端时,被外部拉低的P3口将用上拉电阻输出电流。

P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表2-3所示:

表2-3P3口的第二功能

端口引脚

第二功能

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

INT0(外中断0)

P3.3

INT1(外中断1)

P3.4

T0(定时/计数器1)

P3.5

T1(定时/计数器1)

P3.6

WR(外部数据存储器写选通)

P3.7

RD(外部数据存储器读选通)

P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

·RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

·ALE/PROG:

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

即使小访问外部存储器,ALE仍以时钟振荡频率的

1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时日的。

要注意的是:

每当访问外部数据存储器时将跳过一个ALE脉冲。

对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的U0位置位,可禁止ALE操作。

该位置位后,只有一条MOVX和MOVC指令才会被激活。

此外,该引脚会被微弱拉高,单片机执行外补程序时,应设置ALE无效。

·PSEN:

程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外补程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。

在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。

·EA/VPP:

外部访问允许。

欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。

需注意的是:

如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。

Flash存储器编程时,该引脚加上12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VPP。

·XTAL1:

振荡器反相放大器的及内部时钟发生器的输入端。

·XTAL2:

振荡器反相放大器的输出端。

·时钟振荡器。

AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚X'I'/11.1和X'I'/11.2分别是该放大器的输入端和输出端。

这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路。

外接石英晶体(或陶瓷谐振器)及电容C1,C2接在放大器的反馈回路中构成并联振荡电路。

对外接电容C1,C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF士10pF,而如使用陶瓷谐振器建议选择40pF士10F。

用户也可以采用外部时钟。

在这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。

由于外部时钟信号通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。

·空闲掉电模式:

AT89C51有两种可用软件编程的省电模式,它们是空闲模式和掉电工作模式。

这两种方式是控制专用寄存器PCON(即电源控制寄存器)中的即PD(PCON.1)和TDI(PCON.O)位来实现的。

PD是掉电模式,当PD=1时,激活掉电工作模式,单片机进入掉电工作状态。

TDI.是空闲等待方式,当TDI=1,激活空闲工作模式,单片机进入睡眠状态。

如需同时进入两种工作模式,即PD和TDI.同时为1,则先激活掉电模式。

在空闲工作模式状态,CPU保持睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。

此时,片内RAM和所有特殊功能寄存器的内容保持小变。

空闲模式可由任何允许的中断请求或硬件复位终止。

终止空闲工作模式的方法有两种,其一是任何一条被允许中断的事件被激活,IDI.(PCON.0)被硬件清除,即刻终止空闲工作模式。

程序会首先响应中断,进入中断服务程序,执行完中断服务程序并紧随RET1(中断返回)指令后,下一条要执行的指令就是使单片机进入空闲模式那条指令后而的一条指令。

其是通过硬件复位也可将空闲工作模式终止。

需要注意的是,当由硬件复位来终止空闲工作模式时,CPU通常是从激活空闲模式那条指令的下一条指令开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期(24个时钟周期)有效,在这种情况下,内部禁止CPU访问片内RAM,而允许访问其它端口。

·掉电模式:

在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在终止掉电模式前被冻结。

退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器但小改变RAM中的内容,在VCC恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。

空闲和掉电外部引脚状态见表2-4。

表2-4

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1