毕业设计(论文)-基于SPCE061A单片机的语音遥控小车的设计.doc_第1页
毕业设计(论文)-基于SPCE061A单片机的语音遥控小车的设计.doc_第2页
毕业设计(论文)-基于SPCE061A单片机的语音遥控小车的设计.doc_第3页
毕业设计(论文)-基于SPCE061A单片机的语音遥控小车的设计.doc_第4页
毕业设计(论文)-基于SPCE061A单片机的语音遥控小车的设计.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

本科毕业论文(设计)本科毕业论文(设计) 题题 目目 基于 SPCE061A 单片机的 语音遥控小车的设计 学学 生生 指导教师指导教师 副教授 年年 级级 2007 级 专专 业业 电子信息工程 二级学院二级学院 信息工程学院 邯郸学院信息工程学院 2011 年 5 月 郑重声明郑重声明 本人的毕业论文(设计)是在指导教师 的指导下独立撰写完成的。 如有剽窃、抄袭、造假等违反学术道德、学术规范和侵权的行为,本人愿 意承担由此产生的各种后果,直至法律责任,并愿意通过网络接受公众的 监督。特此郑重声明。 毕业论文(设计)作者(签名): 年 月 日 摘摘 要要 随着电子、信息技术的飞速发展,语音识别被广泛的应用在各个领域。常 见的应用领域有:语音输入系统,如于键盘输入方法;语音控制系统,如工业控制、语音 拨号系统、智能家电、声控智能玩具等;智能对话查询系统,银行服务、股票查询服务等 等。当然这些应用都要建立在对语音的准确识别的基础上。 本项目主要采用凌阳科技公司的一款 SPCE061A 单片机进行设计,主要利用它特有 的语音识别功能来实现对小车行驶状态的控制。比如输入预先训练好的语音命令“前进”, 小车根据命令向前行驶一段距离,输入“左转”,小车向左转弯。利用语音命令代替了传 统的遥控手动控制。小车接收命令的同时,向外界发出语音信号,从而实现人车之间的 简单的交互。 为减小声音信号衰减,以及外部声音信号的干扰对语音命令的干扰造成的误差,本 设计采用无线高频信号发送的模式,来实现语音命令的传送,即设计中采用两个 SPCE061A 单片机控制系统,第一个专门负责语音信号的采集,然后发送语音命令的编 码。另外一个根据接收的语音命令编码,来控制小车的行驶状态。采用固定码 PT2262 无 线发射模块和 PT2272 接收模块。 关键词关键词 SPCE061A PT2262 PT2272 语音控制 智能小车 I The Designed of Voice Remote Control Car Based on SPCE061A Hao Wei Directed by Associate-Prof. Wang Xuhui Abstract With the rapid development of information technology, speech recognition is widely used in various fields. Common applications: voice input system, such as the keyboard input method; voice control system, such as industrial control, voice dialing systems, smart toys; intelligent dialogue and inquiry system, for example banking services, stock query services. Of course, these applications should be built on the accuracy of speech recognition. The design, based on SPCE061A which is made by Sunplus Technology Company, uses SPCE061As unique voice recognition capabilities to achieve the control of the car. Such as pre-trained voice command input Forward. The car would move forward. The car turning left when the command is left. Using voice commands instead of the traditional remote manual control. When received a command, the car will generate a voice signal. Thus people and the car could achieve simple interaction. To reduce the voice signal attenuation and interference from external sound signal this design uses high-frequency signals sent by the wireless mode to the transmission of voice commands.So the system uses two chips of SPCE061A. The first one is dedicated to speech signal acquisition, encoding and sending voice commands. According to the received voice commands, the other one controls the cars running condition. The system uses the PT2262 and PT2272 wireless transmitter or receiver module. Key words SPCE061A intelligent car voice control PT2262 PT2272 0 目目 录录 摘要摘要 .I I ABSTRACTABSTRACT . 1 1 引言引言 .1 1 2 2 背景介绍背景介绍 .1 1 2.1 选题背景 .1 2.2 研究的目的及意义 .2 3 3 设计要求设计要求 .2 2 3.1 系统功能 .2 3.2 基本参数 .2 4 4 方案论证方案论证 .2 2 4.1 方案一 .2 4.2 方案二 .3 4.3 方案三 .3 4.4 方案比较 .4 5 5 系统硬件设计系统硬件设计 .4 4 5.1 系统总体方案介绍 .4 5.2 SPCE061A 单片机.5 5.3 SPCE061A 最小系统.6 5.4 电源 .7 5.5 无线发射接收模块 PT2262 PT2272 .8 5.6 小车控制板 .9 5.7 小车车体架构 .12 5.8 SPCE061A 精简开发板.13 5.9 系统实物图 .13 6 6 系统软件设计系统软件设计 .1515 6.1 软件结构 .15 1 6.2 语音识别原理简介 .16 6.3 训练子程序 .17 6.4 语音识别子程序 .18 6.5 动作子程序 .19 6.6 中断子程序 .20 7 7 操作步骤操作步骤 .2121 7.1 硬件连接 .21 7.2 代码下载 .21 8 8 测试测试 .2121 9 9 结论结论 .2222 参考文献参考文献 .2222 致谢致谢 .2323 附录附录 .2424 0 基于 SPCE061A 单片机的语音遥控小车的设计 1 引言 随着电子、信息技术的飞速发展,语音识别被广泛的应用在各个领域。常见的应用领域有:语 音输入系统,相对于键盘输入方法,它更符合人的日常习惯,也更自然、更高效;语音控制系统, 即用语音来控制设备的运行,相对于手动控制来说更加快捷、方便,可以用在诸如工业控制、语音 拨号系统、智能家电、声控智能玩具等许多领域;智能对话查询系统,根据客户的语音进行操作, 为用户提供自然、友好的数据库检索服务。例如家庭服务、宾馆服务、旅行社服务系统、订票系统、 医疗服务、银行服务、股票查询服务等等。当然这些应用都要建立在对语音的准确识别的基础上。 要实现小车行驶状态的语音控制,关键点在于语音命令的识别。因此选择具有语音识别功能的 SPCE061A 做为控制器,考虑到声音信号的衰减、干扰,所以把语音信号的识别,和小车的控制隔 离开来,采用两组 SPCE061A 最小系统,一组用于语音识别,然后通过编码,把识别出的语音命令 通过 PT2262 发射模块作为固定码发射出去,然后另一组通过 PT2272 接收的固定码来实现对小车 的控制。 主要内容如下: (1)熟悉 SPCE061A 单片机及其开发环境; (2)编写程序,用 H 桥电路驱动电机,观察电机转速; (3)编写程序,测试无线发射接收模块 PT22622272; (4)编写程序,检测语音识别功能; (5)编写综合程序,调试各个模块的协同工作; (6)反复试跑,调试程序细节。 利用凌阳公司提供的 SPCE061A 单片机开发板和越野型车模,预计可以按时实现语音命令对小 车行驶状态的控制。 2 背景介绍 2.12.1 选题背景选题背景 20 世纪 50 年代 AT /训练名称 while(TrainWord(COMMAND_GO_ID,S_ACT1) != 0) ; /训练第 1 个动作 while(TrainWord(COMMAND_BACK_ID,S_ACT2) != 0) ; /训练第 2 个动作 while(TrainWord(COMMAND_LEFT_ID,S_ACT3) != 0) ; /训练第 3 个动作 while(TrainWord(COMMAND_RIGHT_ID,S_ACT4) != 0) ; /训练第 4 个动作 6.46.4 语音识别子程序语音识别子程序 语音识别流程如图 6-5 所示:首先获取辨识器的辨识结果,判断是否有语音触发,如果有语音 触发则会返回识别结果的 ID 号,ID 号对应名称或者对应不同的动作。如果 ID 号为名称,则结束 运动(如果当前在运动状态) ,进入待命状态,等待下一次的指令触发;如果 ID 号为动作,则语音 告知将要执行的动作,并执行该动作。 18 图 6-5 语音识别流程图 6.56.5 动作子程序动作子程序 动作子程序包括:前进、倒车、左拐、右拐、停车子程序; 前进:由小车的结构原理和驱动电路分析知:只要 IOB8 为高电平,IOB9,IOB10,IOB11 全 部为低电平即可实现小车的前进。前进子程序包括语音提示、置端口数据、启动定时器操作,该部 分程序如下: void GoAhead() /前进 PlaySnd(S_ACT1,3); /语音提示 *P_IOB_Data=0 x0100; /前进 *P_INT_Mask |= 0 x0004; /开 2Hz 中断 _asm(int fiq,irq); uiTimecont = 0; /清定时器 倒车:由小车的结构原理分析和驱动电路分析知:只要 IOB9 为高电平,IOB8,IOB10,IOB11 全部为低电平即可实现小车的倒退。倒退子程序包括语音提示、置端口数据、启动定时器操作,程 序如下: void BackUp() /倒退 PlaySnd(S_ACT2,3); /语音提示 *P_IOB_Data=0 x0200; /倒车 *P_INT_Mask |= 0 x0004; /开 2Hz 中断 _asm(int fiq,irq); uiTimecont = 0; /清定时器 左转:由小车的结构原理分析和驱动电路分析知:小车左转需要两个条件:1.前轮左偏 2.后 轮前进, 这时对应的 I/O 状态为:IOB8、IOB10 为高电平,IOB9、IOB11 为低电平。左转子程序包括语 音提示、置 19 端口数据、启动定时器操作,该部分程序如下: void TurnLeft() /左转 PlaySnd(S_GJG,3); /播放提示音 *P_IOB_Data=0 x0900; /前轮右偏 Delay(); /延时 *P_IOB_Data=0 x0500; /前轮左偏 *P_INT_Mask |= 0 x0004; /打开 2Hz 中断 _asm(int fiq,irq); /允许总中断 uiTimecont = 0; /清定时器 右转:由小车的结构原理分析和驱动电路分析知:小车右转需要两个条件:1.前轮右偏 2.后 轮前这时对应的 I/O 状态为:IOB8、IOB11 为高电平,IOB9、IOB10 为低电平。右转子程序包括语 音提示端口数据、启动定时器操作,该部分程序如下: void TurnLeft() /左转 PlaySnd(S_GJG,3); /播放提示音 *P_IOB_Data=0 x0500; /前轮左偏 Delay(); /延时 *P_IOB_Data=0 x0900; /前轮右偏 *P_INT_Mask |= 0 x0004; /打开 2Hz 中断 _asm(int fiq,irq); /允许总中断 uiTimecont = 0; /清定时器 6.66.6 中断子程序中断子程序 虽然已经有了前进、后退以及停车(通过直接呼叫小车的名字使其停车)等语音控制指令,但 是考虑环境的干扰因素,小车运行时的噪音影响和有效距离的限制,小车运行后可能接收不到语音 指令而一直运行。为了防止出现这种情况,加入了时间控制,在启动小车运行的同时启动定时器, 定时器时间到停止小车的运行,该定时器借助于 2Hz 时基中断完成, 图 6-6 所示为该程序的流程 图。可以在程序中修改 uiTimeset 参数来控制运行时间,当 uiTimeset=2 时,运行时间为 1s,以 此类推。 20 图 6-6 中断子程序流程 7 操作步骤 7.17.1 硬件连接硬件连接 语音控制小车电路包括两大部分:SPCE061A 开发板部分和控制板部分,硬件部分的连接主要 用到 SPCE061A 的 IOB8IOB11 来控制小车的状态。 电源部分连接:电池电源直接接控制板电源接口 J1, J2 接 61 板的电源,连接时注意电源 极性。 7.27.2 代码下载代码下载 硬件连接完成之后,检查无误,接下来就可以下载程序了。具体的步骤为: 第一步:打开集成开发环境,打开“CarDemo.spj”文件,编译链接。 第二步:点击菜单 ProjectSelect Body,或者直接点击 图标打开如图 7-1 所示的对话 框: 图 7-1 Select Body 对话框 第三步:在弹出的对话框中选择 Body Name 为 SPCE061A,选择 Probe 为 EZ_Probe,点击 OK 按钮确定。 第四步:点击 IDE 工具栏上的 图标,选择 Use ICE 模式。 第五步:按 F8 快捷下载按钮,下载代码。 8 测试 21 成功下载程序以后,去掉下载线并复位系统(如果使用 EZ-Probe 还应将 Probe 选择跳线 S5 拔去) ,小车就会提示对它进行训练。训练采用应答式训练,每条指令的训练次数为两次,每一条 命令的训 练过程都是一样的,以“前进”为例说明: 步骤一:小车提示“前进” ; 步骤二:告诉小车“前进” ; 步骤三:小车提示“请再说一遍” (重复训练提示音) ; 步骤四:再次告诉小车“前进” (重复训练一次) 。这是一个完整的训练过程,如果训练成功, 小车会自动进入下一条指令的训练,并会提示下一条指令对应的动作;如果没有训练成功,小车会 提示“说什么暗语呀”或者“没有听到任何声音”等信息,这样的话就要重复刚才所说的四个步骤, 直到成功为止。整个的训练过程共有 5 次这样的训练,依次为:名称前进后退左拐 右拐。 完成训练后,输入语音命令“前进” ,观察小车是否前行。 9 结论 凌阳 SPCE061A 单片机的数字信号处理能力,独有的语音识别能力为本系统的设计提供了便利 条件;32 个可编程 I/O 口,使得扩展外围设备非常方便;CPU 可工作在 0.32MHz49MHz 的主频范围, 并且拥有丰富的时基、定时器,以及中断功能,实现了小车的语音控制功能。 本课题在最初设计的过程中,由于语音命令受外界的干扰大,语音命令发出后,很容易受到外 界干扰,导致施令者一旦和小车距离过远,小车将接受不到命令。这种情况下,催生了方案三的提 出,并得以实践。实验结果证明,采用无线语音遥控,大大增加小车的声控距离,降低了命令错误 几率。 参考文献参考文献: : 1谭浩强.C 语言程序设计.北京:清华大学出版社,2005 2谭浩强,张基温.C 语言程序设计教程.北京:高等教育出版社,1991 3彭伟.单片机程序设计 100 例.北京:电子工业出版社,2009 年 4马忠梅.单片机 C 语言应用程序设计.北京:北京航空航天大学出版社,2007 5郭天祥.新概念 51 单片机 C 语言教程.北京:电子工业出版社,2009 6刘鲲,孙春亮.单片机 C 语言入门(修订版).北京:人民邮电出版社,2010 7陈超.C 语言常用函数速查手册.北京:化学工业出版社,2010 9李晶皎.嵌入式语音技术及凌阳 16 位单片机应用.北京:北航出版社,2003 10黄菊生.单片机原理与接口技术.北京:国防工业出版社,2007 11罗亚非.凌阳 16 位单片机应用基础.北京:北京航空航天大学出版社,2005 12沈美明,温冬蝉.IBM-PC 汇编语言程序设计.北京:清华大学出版社,2001 19汪敏.凌阳 16 位单片机实验与实践.北京:北京航空航天大学出版社,2007 20雷思孝.单片机原理及实用技术.西安:西安电子科技大学出版社,2003 8薛钧义,张彦斌,虞鹤松,樊波.凌阳十六位单片机原理及应用.北京:北京航空航天出版社, 2003.2 13汪敏.凌阳 16 位单片机实验与实践.北京:北京航空航天大学出版社,2007 14齐向东,刘立群.单片机控制技术实践.北京:中国电力出版社,2009 15彭传正,林春景.凌阳单片机原理与实践.北京:北京航天航空大学出版社,2006 16杜刚.16 位单片机原理及应用.北京:中国电力出版社,2007 17凌阳科技.凌阳单片机在大学生电子竞赛中的应用.北京:北京航天航空大学出版社,2005 18樊尚春.传感器技术与应用.北京:北京航空航天大学出版社,2004 22 致 谢 本论文是在王旭辉老师的悉心指导下完成的。王旭辉老师渊博的专业知识,严谨的治学态度, 精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近 人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明 白了许多待人接物与为人处世的道理。在本论文的写作过程中,我的导师王旭辉老师倾注了大量的 心血,从选题到开题报告,从写作提纲,到一遍又一遍地指出每稿中的具体问题,严格把关,循循 善诱。在此,谨向王旭辉老师表示崇高的敬意和衷心的感谢! 感谢指导教师王旭辉的关心、指导和教诲。写作毕业论文是一次再系统学习的过程,毕业论文 的完成,同样也意味着新的学习生活的开始。同时我还要感谢在我学习期间给我极大关心和支持的 各位老师以及关心我的同学和朋友。 23 附 录 第一块 SPCE061A 开发板程序如下: /= / The information contained herein is the exclusive property of / Sunnnorth Technology Co. And shall not be distributed, reproduced, / or disclosed in whole in part without prior written permission. / (C) COPYRIGHT 2003 SUNNORTH TECHNOLOGY CO. / ALL RIGHTS RESERVED / The entire notice above must be reproduced on all authorized copies. /= /= / 工程名称:Car_Demo / 功能描述:实现小车的语音控制 / 涉及的库:CMacro1016.lib / bsrv222SDL.lib /sacmv26e.lib / 组成文件:main.c /Flash.asm, hardware.asm,ISR.asm / hardware.h,s480.h, hardware.inc /硬件连接:IOA0-KEY1 /IOA1-KEY2 /IOA2-KEY3 /IOB8-前进 /IOB9-倒车 /IOB10-左拐 /IOB11-右拐 /维护记录:2005-12-12 v1.0 /= #include s480.h #include bsrsd.h #defineP_IOA_Data (volatile unsigned int *)0 x7000 #define P_IOA_Dir (volatile unsigned int *)0 x7002 #define P_IOA_Attrib (volatile unsigned int *)0 x7003 #define P_IOB_Data(volatile unsigned int *)0 x7005 #define P_IOB_Dir(volatile unsigned int *)0 x7007 #define P_IOB_Attrib(volatile unsigned int *)0 x7008 #define P_TimerA_Data(volatile unsigned int *)0 x700A #define P_TimerA_Ctrl(volatile unsigned int *)0 x700B #define P_TimerB_Data(volatile unsigned int *)0 x700C #define P_TimerB_Ctrl(volatile unsigned int *)0 x700D #define P_Watchdog_Clear(volatile unsigned int *)0 x7012 #define P_INT_Mask(volatile unsigned int *)0 x702D #define P_INT_Clear(volatile unsigned int *)0 x7011 24 #define NAME_ID 0 x100 #define COMMAND_GO_ID 0 x101 #define COMMAND_BACK_ID 0 x102 #define COMMAND_LEFT_ID 0 x103 #define COMMAND_RIGHT_ID 0 x104 #define S_NAME0/给我取个名字吧 #define S_ACT11/前进 #define S_ACT22/倒车,请注意 #define S_ACT33/左拐 #define S_ACT44/右拐 #define S_RDY5/Yeah #define S_AGAIN6/请再说一遍 #define S_NOVOICE7/没有听到任何声音 #define S_CMDDIFF8/说什么暗语呀 #define S_NOISY8/说什么暗语呀 #define S_START9/准备就绪,开始辨识 #define S_GJG10/拐就拐 #define S_DCZY11/倒车,请注意 extern unsigned int BSR_SDModel100;/外部变量 BSR_SDModel100,辨识 器自带 extern void F_FlashWrite1Word(unsigned int addr,unsigned int Value); extern void F_FlashErase(unsigned int sector); unsigned int uiTimeset = 3;/运行时间定时,调整该参数控制运行 时间 unsigned int uiTimecont; /运行时间计时 /= / 语法格式:void Delay(); / 实现功能:延时 / 参数:无 / 返回值:无 /= void Delay() unsigned int i; for(i=0;i0 xffff;i+) *P_Watchdog_Clear=0 x0001; /= / 语法格式:void PlaySnd(unsigned SndIndex,unsigned DAC_Channel); 25 / 实现功能:语音播放函数 / 参数:SndIndex-播放语音资源索引号 /DAC_Channel-播放声道选择 / 返回值:无 /= void PlaySnd(unsigned SndIndex,unsigned DAC_Channel) BSR_StopRecognizer();/停止识别器 SACM_S480_Initial(1);/初始化为自动播放 SACM_S480_Play(SndIndex, DAC_Channel, 3);/开始播放一段语音 while(SACM_S480_Status()/解码并填充队列 *P_Watchdog_Clear=0 x0001;/清看门狗 SACM_S480_Stop();/停止播放 BSR_InitRecognizer(BSR_MIC);/初始化识别器 /= / 语法格式:int TrainWord(int WordID,int SndID); / 实现功能:训练一条指令 / 参数:WordID-指令编码 /SndID-指令提示音索引号 / 返回值:无 /= int TrainWord(unsigned int WordID,unsigned int SndID) int Result; PlaySnd(SndID,3);/引导训练,播放指令对应动作 while(1) Result = BSR_Train(WordID,BSR_TRAIN_TWICE);/训练两次,获得训练结果 if(Result=0)break; switch(Result) case -1:/没有检测出声音 PlaySnd(S_NOVOICE,3); return -1; case -2: /需要训练第二次 PlaySnd(S_AGAIN,3); break; case -3:/环境太吵 PlaySnd(S_NOISY,3); return -3; 26 case -4:/数据库满 return -4; case -5: /检测出声音不同 PlaySnd(S_CMDDIFF,3); return -5; case -6: /序号错误 return -6; default: break; return 0; /= / 语法格式:void TrainSD(); / 实现功能:训练函数 / 参数:无 / 返回值:无 /= void TrainSD() while(TrainWord(NAME_ID,S_NAME) != 0) ; /训练名称 while(TrainWord(COMMAND_GO_ID,S_ACT1) != 0) ; /训练第 1 个动作 while(TrainWord(COMMAND_BACK_ID,S_ACT2) != 0) ; /训练第 2 个动作 while(TrainWord(COMMAND_LEFT_ID,S_ACT3) != 0) ; /训练第 3 个动作 while(TrainWord(COMMAND_RIGHT_ID,S_ACT4) != 0) ;/训练第 4 个动作 /= / 语法格式:void StoreSD(); / 实现功能:存储语音模型函数 / 参数:无 / 返回值:无 /= void StoreSD() unsigned int ulAddr,i,commandID,g_Ret; F_FlashWrite1Word(0 xef00,0 xaaaa); F_FlashErase(0 xe000); F_FlashErase(0 xe100); F_FlashErase(0 xe200); ulAddr=0 xe000;/* for(commandID=0 x100;commandID0 x105;commandID+) g_Ret=BSR_ExportSDWord(commandID); while(g_Ret!=0)/模型导出成功? 27 g_Ret=BSR_ExportSDWord(commandID); for(i=0;i100;i+)/保存语音模型 SD1(0 xe000-0 xe063) F_FlashWrite1Word(ulAddr,BSR_SDModeli); ulAddr+=1; /= / 语法格式:void StoreSD(); / 实现功能:装载语音模型函数 / 参数:无 / 返回值:无 /= void LoadSD() unsigned int *p,k,jk,Ret,g_Ret; p=(int *)0 xe000; for(jk=0;jk5;jk+) for(k=0;k0)/有语音触发? *P_IOB_Data=0 x0000;/临时停车 switch(Result) case NAME_ID:/识别出名称命令 30 Stop();/停车待命 break; case COMMAND_GO_ID:/识别出第一条命令 GoAhead();/执行动作一:直走 break; case COMMAND_BACK_ID:/识别出第二条命令 BackUp();/执行动作二:倒车 break; case COMMAND_LEFT_ID:/识别出第三条命令 TurnLeft();/执行动作三:左转 break; case COMMAND_RIGHT_ID:/识别出第四条命令 TurnRight();/执行动作四:右转 break; default: break; /= / 语法格式:void IRQ5(void); / 实现功能:中断服务子函数 / 参数:无 / 返回值:无 /= void IRQ5(void)_attribute_(ISR);/运动定时控制 void IRQ5(void) if(uiTimecont+ = uiTimeset) *P_IOB_Data = 0 x0000; *P_INT_Clear = 0 x0004; /= / 语法格式:int main(void); / 实现功能:主函数 / 参数:无 / 返回值:无 /= int main(void) unsigned int BS_Flag;/Train 标志位 *P_IO

温馨提示

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

评论

0/150

提交评论