毕业设计论文单片机音乐播放器设计.docx

上传人:b****6 文档编号:16720204 上传时间:2023-07-16 格式:DOCX 页数:24 大小:285.81KB
下载 相关 举报
毕业设计论文单片机音乐播放器设计.docx_第1页
第1页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第2页
第2页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第3页
第3页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第4页
第4页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第5页
第5页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第6页
第6页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第7页
第7页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第8页
第8页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第9页
第9页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第10页
第10页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第11页
第11页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第12页
第12页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第13页
第13页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第14页
第14页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第15页
第15页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第16页
第16页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第17页
第17页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第18页
第18页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第19页
第19页 / 共24页
毕业设计论文单片机音乐播放器设计.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

毕业设计论文单片机音乐播放器设计.docx

《毕业设计论文单片机音乐播放器设计.docx》由会员分享,可在线阅读,更多相关《毕业设计论文单片机音乐播放器设计.docx(24页珍藏版)》请在冰点文库上搜索。

毕业设计论文单片机音乐播放器设计.docx

毕业设计论文单片机音乐播放器设计

第1章绪论

1.1单片机基础知识介绍

1.1.1单片机概述

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

概括的讲,一块芯片就成了一台计算机。

MCS-51单片机是美国INTEL公司于1980年推出的产品,与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与MSC-51单片机作为代表进行理论基础学习。

MCS-51系列单片机主要包括8031、8051和8751等通用产品。

DP-51S单片机仿真实验仪是由广州致远电子有限公司设计的DP系列单片机仿真实验仪之一,是一种功能强大的单片机应用技术学习、调试。

1.1.2单片机的应用领域

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分为如下几个范畴:

一、在智能仪器仪表的应用

单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。

采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。

例如精密的测量设备(功率计,示波器,各种分析仪)。

二、在家用电器中的应用

可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。

三、在工业控制中的应用

用单片机可以构成形式多样的控制系统、数据采集系统。

例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。

四、在计算机网络和通信领域中的应用

现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。

五、单片机在医用设备领域中的应用

单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。

此外,单片机在工商、金融、科研、教育、国防航空等领域都有着十分广泛的用途。

1.1.3单片机的发展趋势

单片机现在可以说是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供了广阔的天地。

纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:

一、微型单片化

现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。

甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。

此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。

现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。

二、低功耗CMOS化

MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。

像80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。

CMOS虽然功耗低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于要求低功耗像电池供电的应用场合。

所以这种工艺将是今后一段时期单片机发展的主要途径。

三、主流与多品种共存

现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的Winbond系列单片机。

所以80C51占据了半壁江山。

而Microchip公司的PIC精简指令集合(RISC)也有着强劲的发展势头,中国台湾的HOLTEX公司近年的单片机产量与日俱增,与其底价质优的优势,占据一定的市场份额。

此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。

在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补、相辅相成、共同发展的道路。

九十年代以后,单片机在结构上采用双CPU或内部流水线,CPU位数有8位、16位、32位,时钟频率高达20MHZ,片内带有PWM输出、监视定时器WDT、可编程计数器阵列PCA、DMA传输、调制解调器等。

芯片向高度集成化、低功耗方向的发展,使得单片机在大量数据的实时处理、高级通信系统、数字信号处理、复杂工业过程控制、高级机器人以及局域网等方面得到大量应用。

这类单片机有NEC公司的MPD7800,MITSUBISHI公司的M337700,REVKWELL公司的R6500。

1.2课题概述

基于单片机的音乐播放器可应用于mp3,MP4,扩音器等很多方面,并可作为很多系统的辅助功能,作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括"Do"、"Re"、"Me"--等音阶在内的各种频率声音。

将各个音阶连接在一起,便可组成一支曲子或是演奏一段旋律。

基于这个思想,我设计了一款特殊的"音乐播放器",本播放器可实现播放、暂停、复位等功能。

为了体现乐曲播放过程中的动态效果,增加了1只LED,作随机闪烁以指示旋律的节奏。

由于时间及条件限制,本设计实现了一种简单的音乐播放器,其核心器件采用AT89C51单片机,本播放器具有电路简单,功能强大,易于拓展等特点。

在此基础上,可以添加按键,LED显示屏等模块,实现切换歌曲,歌名显示,动感音乐屏等功能。

 

第2章系统硬件原理及设计

2.1核心器件AT89C51介绍

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

外形及引脚排列如图所示

图2-1AT89C51外形图及引脚序列

2.1.1主要特性:

·与MCS-51兼容

·4K字节可编程闪烁存储器

·寿命:

1000写/擦循环

·数据保留时间:

10年

·全静态工作:

0Hz-24MHz

·三级程序存储器锁定

·128×8位内部RAM

 ·32可编程I/O线

·两个16位定时器/计数器

·5个中断源

·可编程串行通道

·低功耗的闲置和掉电模式

·片内振荡器和时钟电路

2.1.2.管脚说明:

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示

表2.1P3口被选功能

  口管脚备选功能

  P3.0RXD(串行输入口)

  P3.1TXD(串行输出口)

  P3.2/INT0(外部中断0)

  P3.3/INT1(外部中断1)

  P3.4T0(记时器0外部输入)

  P3.5T1(记时器1外部输入)

  P3.6/WR(外部数据存储器写选通)

  P3.7/RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

2.1.3.振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

石晶振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

2.1.4.芯片擦除:

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。

在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。

在闲置模式下,CPU停止工作。

但RAM,定时器,计数器,串口和中断系统仍在工作。

在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

2.2硬件电路设计

电路主要由AT89C51芯片,LED发光二极管,喇叭,晶振电路组成,由引脚输出定时器产生的各种固定频率的方波信号,然后由喇叭产生各种频率的声音。

同理,方波信号通过发光二极管可以使二极管闪烁发光,产生韵律灯的效果。

由于该方案中使用内部振荡电路,XTAL1、XTAL2引脚外界石英晶体和微调电容构成的晶振电路。

 

第三章系统软件原理及设计

总体原理:

乐曲中不同的音符,实质就是不同频率的声音。

通过单片机产生不同的频率的脉冲信号,经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。

3.1单片机产生不同频率脉冲信号的原理:

(1)要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。

(2)利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法如下:

例如,频率为523Hz,其周期天/523S=1912uS,因此只要令计数器计时956uS/1us=956,在每计数956次时就将I/O反接,就可得到中音DO(532Hz)。

计数脉冲值与频率的关系公式如下:

N=Fi/2/Fr

(N:

计数值,Fi:

内部计时一次为1uS,故其频率为1MHz,Fr:

要产生的频率)

(3)其计数值的求法如下:

T=65536-N=65536-Fi/2/Fr

计算举例:

设K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。

T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr

低音DO的T=65536-500000/262=63627

中音DO的T=65536-500000/523=64580

高音DO的T=65536-500000/1047=65059

(4)C调个音符频率与计数值T的对照表如下表所示:

表3-1C调各音符频率与计数值T的对照表

 

音符频率(Hz)简谱码(T值)音符频率(Hz)简谱码(T值)

低1DO26263628#4FA#74064860

#1DO#27763731中5SO78464898

低2RE29463835#5SO#83164923

#2RE#31163928中6LA88064968

低3M33064103#693264994

低4FA34964103中7SI98865030

#4FA#37064260高1DO104665058

低5SO39264260#1DO#110965085

#5SO#41564331高2RE117565110

低6LA44064400#2RE#124565124

#646664463高3M131865157

低7SI49464524高4FA139765178

中1DO52364580#4FA#148065198

(5)每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,下表为节拍码的对照。

但如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。

假设1/4节拍为1DELAY,则1拍应为4DELAY,以此类推。

所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如下表为1/4和1/8节拍的时间设定。

表3-2节拍码对照表

1/4节拍1/8节拍

节拍码节拍数节拍码节拍数

11/4拍11/8拍

22/4拍21/4拍

33/4拍33/8拍

41拍41/2拍

51又1/4拍55/8拍

61又1/2拍63/4拍

71又3/4拍77/8拍

82拍81拍

92又1/4拍91又1/8拍

A2又1/2拍A1又1/4拍

B2又3/4拍B1又3/8拍

C3拍C1又1/2拍

D3又1/4拍D1又5/8拍

E3又1/2拍E1又3/4拍

F3又3/4拍F1又7/8拍

表3-3各调节拍的时间设定表

1/4节拍

1/8节拍

曲调值

DELAY

曲调值

DELAY

调4/4

125毫秒

调4/4

62毫秒

调3/4

187毫秒

调3/4

94毫秒

调2/4

250毫秒

调2/4

125毫秒

1/4拍的延迟时间=187毫秒

DELAY:

MOVR7,#2

D2:

MOVR4,#187

D3:

MOVR3,#248

DJNZR3,$

DJNZR4,D3

DJNZR7,D2

RET

(6)移调

一般的歌曲,有3/8、2/4、3/4、4/4等节拍类型,但不管有几拍,基本上是在C调下演奏的。

如果是C调,则音名C唱Do,音名D唱Re,音名E唱Mi,音名E唱Mi,音名F唱Fa,音名G唱So,音名A唱La,音名B唱Ti等。

但是,并不是所有的歌曲都是在C调下演奏的,还有D调、E调、F调、G调等。

D调是将C调各音符上升一个频率实现的,即C调下的音名D在D调下唱Do,C调下的音名E在D调下唱Re,C大调的音名F在D调下上升高半音符F#唱Mi,C调下的音名G在D调下唱Fa,C调下的音名C在D调下上升高伴音C#符唱Ti。

这种唱法称为移调。

表3-4C调在各调中的音名

 

音名

Do

Re

Mi

Fa

So

La

Ti

C调

C

D

E

F

G

A

B

D调

D

E

F#

G

A

B

C

E调

E

F#

G#

A

B

C

D

F调

F

G

A

B

C

D

E

G调

G

A

B

C

D

E

F#

A调

A

B

C#

D

E

F#

G#

B调

B

C

D

E

F

G

A

3.2音乐软件的设计

3.2.1音乐代码库的建立方法

(1)先找出乐曲的最低音和最高音范围,然后确定音符表T的顺序。

(2)把T值表建立在TABLE1,构成发音符的计数值放在“TABLE”。

(3)简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的“TABLE”处。

(4)音符节拍码00H为音乐结束标记。

3.2.2选曲

在一个程序中,需要演奏两首或两首以上的歌曲时,音乐代码库的建立有两种方法:

(1)将每首歌曲建立相互独立的音符表T和发音符计数值TABLE。

(2)在建立公用音符表T后,再写每首歌的发音计数值TABLE中的代码

不管采用那种方法,每首歌曲结束时,在TABLE中均需加上音乐结束符00H。

3.2.3歌曲的设计

下面以歌曲《送别》和《三个和尚》的设计为例,讲述歌曲在单片机中的实现。

曲谱如下图所示

从两首歌中可看出,最低音为低7Si,最高音为高1Do。

根据音乐软件的设计方法,简谱对应的简谱码、T值、节拍数如表所示。

表3-5简谱对应的简谱码、T值、节拍数

简谱

发音

简谱码

T值

节拍码

节拍数

低7

低音Si

1

64524

1

1/4

1

中音Do

2

64580

2

2/4

2

中音Re

3

64684

3

3/4

3

中音Mi

4

64777

4

1

4

中音Fa

5

64820

5

1+1/4

5

中音So

6

64898

6

1+1/2

6

中音La

7

64968

8

2

7

中音Ti

8

65030

A

2+1/2

高1

高音Do

9

65058

C

3

低6

低音La

A

64400

F

3+3/4

低5

低音So

B

64260

程序源代码如下:

ORG0000H

LJMPSTART

ORG001BH

LJMPTIME1

START:

MOVTMOD,#10H;T1工作在方式1

MOVIE,#88H;中断使能

MAIN:

MOV40H,#00H;设简谱码指针初始值

NEXT:

MOVA,40H;简谱码指针暂存累加器A

MOVDPTR,#TABLE;设简谱码

MOVCA,@A+DPTR

CJNEA,#00H,PLAY;取到的简谱码不是结束码,传PLAY取节拍码

LJMPSTOP;是结束码,退出

PLAY:

MOVR1,A;R1暂存简谱码

ANLA,#0FH;取节拍码

MOVR2,A节拍码暂存R2

MOVA,R1

ANLA,#0F0H;取音符码

CJNEA,#00H,MUSIC;音符码不为0,调发音子程序

CLRTR1;音符码为0,不发音

LJMPDEL

MUSIC:

SWAPA

DECA

MOV22H,A

ADDA,22H

MOVR3,A

MOVDPTR,#TABLE1;取相应计数值

MOVCA,@A+DPTR

MOVTH1,A;暂存高位字节

MOV21H,A

MOVA,R3

INCA

MOVCA,@A+DPTR;取相应计数值的低位字节

MOVTL1,A;暂存低位字节

MOV20H,A

SETBTR1;启动定时器

DEL:

LCALLDELAY

INC40H;指向下一个简谱码

LJMPNEXT

STOP:

CLRTR1;停止计时器

LJMPMAIN

TIME1:

PUSHACC;现场保护

PUSHPSW

CPLP1.7;P1.7反相输出,演奏音乐

MOVTL1,20H;重设计数值

MOVTH1,21H

POPPSW

POPACC

RETI

DELAY:

MOVR7,#02H;4/4曲调,演示125ms子程序

DELA1:

MOVR6,#125

DELA2:

MOVR5,#248

DJNZR5,$

DJNZR6,DELA2

DJNZR7,DELA1

DJNZR2,DELAY

RET

TABLE1:

DW64524,64580,64684,64777;简码值

DW64820,64898,64968,65030,65058

DW64400,64260

TABLE:

DB14H,42H,62H,98H;歌曲《送别》

DB74H,92H,72H,68H

DB64H,22H,32H,44H,32H,22H

DB3CH

DB64H,42H,62H,94H,04H,82H

DB74H,94H,68H

DB64H,32H,42H,

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2