单片机原理及接口技术课程设计报告 - 副本_第1页
单片机原理及接口技术课程设计报告 - 副本_第2页
单片机原理及接口技术课程设计报告 - 副本_第3页
单片机原理及接口技术课程设计报告 - 副本_第4页
单片机原理及接口技术课程设计报告 - 副本_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

枣庄学院 单片机原理及接口技术 课程设计说明书 题 目 智能避障避险小车 院 部 机 电 工 程 学 院 专业及班级 机械设计制造及其自动化 11 级本 2 设 计 人 马飞 刘洪涛 彭鹏 刘智慧 任可胜 史维鑫 刘悦 刘飞飞 学 号 指导教师 尹相雷 成 绩 设计时间: 2 013 年 7 月 4 日 目录 设计题目2 第一章设计目的2 第二章设计思路4 2.1 主控系统 4 2.2 电机驱动模块4 2.3 循迹模块 6 2.4 避障模块 7 2.5 机械系统 7 2.6 电源模块 8 第三章硬件电原理图和连接图8 3.1 总体设计 8 3.2 驱动电路 9 3.3 信号检测模块10 3.4 主控电路 11 第四章程序流程图 12 4.1 主程序模块 12 4.2 循迹模块 13 4.3 避障模块 15 第五章程序清单 第 六章设计心得 18 19 参考文献19 设计题目 (选自 山东省大学生机器人大赛比赛-智能避障避险小车比赛) (一)比赛任务 小车从出发区出发后,沿车道行驶一圈,并返回出发区。 (二)比赛场地 图 4 比赛场地俯视图(注 1 有变化) 1、比赛场地平面(即车道表面)俯视图如图 4 所示。 2、比赛场地平面(即车道表面)由 2 块细木工板(尺寸规格:宽度 122.0cm,长度 244.0cm,厚度不定)拼接而成。细木工板表面未进行任何特殊 处理(如:抛光、刷漆和贴纸等) ,保持木材本身的材质和颜色。 3、比赛场地下方的地面的颜色不确定(不作规定) 。 4、车道表面距离车道下方的地面的高度不小于 6cm,可用垫高物垫在场地 下方,垫高物不外露。 5、在直行车道转入环形车道和环形车道转入直行车道处均有提示线(为直 线) ,提示线由黑色防滑胶带(线宽 1.52.0 厘米,常规为 1.7 厘米)粘贴而 成。 6、图 4 中的遮挡墙和遮挡柱的位置,在开始正式比赛前由裁判 组协商后确定位置(所有参赛队采用相同位置) 。 (三)车子规格 1、车体(安装传感器后)的长度和宽度均不得超过 20cm,高度不限。 2、所用电压不超过 24V。 3、所用处理器类型不限。 (四)比赛规则 1、车子必须按图 4 中指定的方向离开和返回出发区。 2、车子通过车道中的环形区时,采用顺时针或逆时针方向均可。 3、车子不能以任何方式人为遥控,如:使用激光束或通过无线通信遥控车 子等。凡是违反此项规定者,取消其比赛资格。 4、每队有 3 次运行机会。每次运行前有 1 分钟准备时间。 5、比赛过程中,如果车子出现以下异常表现,则认定运行失败: (1)车子启动运行后,未在 5 分钟内完成任务; (2)车子出现严重故障或失控; (3)车子掉下场地; (4)参赛队员未经裁判同意干预车子工作; (5)车子进行钻、挖等破坏场地(包括撞倒遮挡墙或遮挡柱属于破坏比赛 场地的行为,判一次运行失败)活动。 6、认定运行失败后,参赛队员可以向裁判提出重新运行的请求。经裁判同 意,参赛队员可以将车子重新放回到出发区,重新启动运行。 7、比赛过程中,只允许一名参赛队员进入场地操作。 第一章设计目的 整个系统的设计以单片机为核心,利用了多种传感器,将软件和硬件相结合。 本系统能实现如下功能: (1) 自动沿预设轨道行驶小车在行驶过程中,能够自动检测预先设好的轨道, 实现直道和弧形轨道的前进。若有偏离,能够自动纠正,返回到预设轨道上来。 (2)当小车探测到前进前方的障碍物时,可以自动调整,躲避障碍物,从无障 碍区通过。小车通过障碍区后,能够自动循迹 (3)自动检测号遮挡墙并自动入库停车。 机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感 知导引线相当给机器人一个视觉功能。使用传感器感知路线和障碍并作出判断 和相应的执行动作。 该智能避障避险机器人可以作为机器人的典型代表。它可以分为三大组成 部分:传感器检测部分、执行部分、CPU。机器人要实现自动避障功能,还可以 扩展循迹等功能,感知导引线和障碍物。可以实现小车自动识别路线,选择正 确的行进路线,并检测到障碍物自动躲避。基于上述要求,传感检测部分考虑 到小车一般不需要感知清晰的图像,只要求粗略感知即可,所以可以舍弃昂贵 的CCD传感器而考虑使用价廉物美的光电开关和红外对管来充当。智能避障避险 机器人的执行部分,是由直流电机来充当的,主要控制小车的行进方向和速度。 单片机驱动直流电机一由软件模拟PWM输出调制,需要占用单片机资源,难以精 确调速,但单片机型号的选择余地较大。考虑到实际情况,本文选择第二种方 案。CPU使用STC89C52单片机 ,配合软件编程实现。 现在智能机器人发展很快,从智能玩具到其它各行业都有实质成果。其基 本可实现循迹、避障、检测贴片、寻光入库、避崖等基本功能,电子设计大赛 智能小车又在向声控系统发展。比较出名的飞思卡尔智能小车更是走在前列。 我此次的设计主要实现循迹避障避险这两个功能。 第二章设计思路 根据要求,确定如下方案:购买小车组件和塑料板材进行改装制作小车, 加装光电开关和红外对管,实现小车对道路和障碍物的检测,并将测量数据传 送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智 能控制。这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠, 精度高,可满足对系统的各项要求。 2.1 主控系统 根据课题的设计要求,我认为此设计属于多输入量的复杂程序控制问题。 据此,拟定了以下两种方案并进行了综合的比较论证,具体如下: 方案一: 选用一片 CPLD(如 EPM7128LC84-15)作为系统的核心部件,实现控制与处 理的功能。CPLD 具有速度快、编程容易、资源丰富、开发周期短等优点,可利 用 VHDL 语言进行编写开发。但 CPLD 在控制上较单片机有较大的劣势。同时, CPLD 的处理速度非常快,而小车的行进速度不可能太高,那么对系统处理信息 的要求也就不会太高,在这一点上,MCU 就已经可以胜任了。若采用该方案, 必将在控制上遇到许许多多不必要增加的难题。为此,我们不采用该种方案, 进而提出了第二种设想。 方案二: 采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定 的性能指标。充分分析我们的系统,其关键在于实现小车的自动控制,而在这 一点上,单片机就显现出来它的优势控制简单、方便、快捷。这样一来, 单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功 能、价格低廉等优点。因此,这种方案是一种较为理想的方案。 针对本设计特点多开关量输入的复杂程序控制系统,需要擅长处理多 开关量的标准单片机,而不能用精简 I/O 口和程序存储器的小体积单片机, D/A、A/D 功能也不必选用。根据这些分析,我选定了 STC89C52 单片机作为本设 计的主控装置,51 单片机具有功能强大的位操作指令,I/O 口均可按位寻址, 程序空间多达 8K,对于本设计也绰绰有余,更可贵的是 51 单片机价格非常低 廉。 在综合考虑了传感器、两部电机的驱动等诸多因素后,我们决定采用一片 单片机,充分利用 STC89C52 单片机的资源。 2.2 电机驱动模块 方案一: 采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行 调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命 较短,可靠性不高。 方案二: 采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。但 电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问 题在于一般的电动机电阻很小,但电流很大,分压不仅回降低效率,而且实现 很困难。 方案三: 采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路 结构和原理简单,加速能力强,采用由达林顿管组成的 H 型桥式电路(如图 2.1)。 用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机 转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,H 型桥式电 路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极 强,是一种广泛采用的 PWM 调速技术。现市面上有很多此种芯片,我选用了 L298N(如图 2.2)。 这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能 承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。 因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。 图 2.1 H 桥式电路 图 2.2 L298N 2.3 循迹模块 方案一: 采用简易光电传感器结合外围电路探测,但实际效果并不理想,对行驶过 程中的稳定性要求很高,且误测几率较大、易受光线环境和路面介质影响。在 使用过程极易出现问题,而且容易因为 该部件造成整个系统的不稳定。故最终 未采用该方案。 方案二: 采用两只红外对管(如图 2.3),分别置于小车车身前轨道的两侧,根据两只 光电开关接受到白线与黑线的情况来控制小车转向来调整车向,测试表明,只 要合理安装好两只光电开关的位置就可以很好的实现循迹的功能, 但是检测不 到停车线。(参考文献3) 方案三: 采用四只红外对管,两只置于小车中间,两只置于小车外侧,当小车脱离 轨道时,即当两侧的任意一只光电开关检测到空地时,做出相应的转向调整, 直到两边的光电开关检测不到到空地再恢复正向行驶。中间的两只光电对管检 测到停车线时,停车。经过试验,此方案小车行驶稳定。 通过比较,我选取第三种方案来实现循迹。 图 2.3 红外对管 2.4 避障模块 方案一: 采用一只红外对管置于小车中央。其安装简易,也可以检测到障碍物的存 在,但难以确定小车在水平方向上是否会与障碍物相撞,也不易让小车做出精 确的转向反应。 方案二: 采用两只光电对管分别置于小车的前端两侧,方向与小车前进方向平行, 对小车与障碍物相对距离和方位能作出较为准确的判别和及时反应,两只光电 对管分别放在小车的两侧,确保能够检测到障碍物,避免因小车运行轨迹的变 化而检测不到障碍物。 通过比较我采用方案二。 2.5 机械系统 本题目要求小车的长、宽较小,转向稳定、灵活,将电机树立放置减小小 车的长度, 电池的安装:将电池树放减小小车的宽度,降低车体重心,提高稳定性, 同时可增加驱动轮的抓地力,减小轮子空转所引起的误差。 方案一: 采用实验室有线电源通过稳压芯片供电,其优点是可稳定的提供 5V 电压, 但占用资源过大。 方案二: 采用 4 支 1.5V 电池单电源供电,但 6V 的电压太小不能同时给单片机与与 电机供电。 方案三:采用 8 支 1.5V 电池双电源分别给单片机与电机供电可解决方案二的问 题且能让小车完成其功能。 所以,我选择了方案三来实现供电。 第三章硬件电原理图和连接图 3.1 总体设计 智能小车采用四轮驱动,前后轮左右两边各用一个电机驱动,调制前后四 个轮子的转速起停从而达到控制转向的目的。将循迹红外对管分别装在车体前 方偏下的左右。当车身下左边的传感器检测到黑线时,主控芯片控制左轮电机 停止,车向左修正,当车身下右边传感器检测到黑线时,主控芯片控制右轮电 机停止,车向右修正。检测黑线红外对管装在前方中间,两只红外对管对称固 定,当检测到黑线时调整车的行进方向。 避障的原理和循线一样,在车身前方两边装两个红外对管,当其检测到障 碍物时,主控芯片给出信号报警并控制车子倒退,转向,从而避开障碍物。 3.1.1 主板设计框图如图 3.1 图 3.1 主板设计框图 3.2 驱动电路(参考文献4) 电机驱动一般采用 H 桥式驱动电路,L298N 内部集成了 H 桥式驱动电路,从 而可以采用 L298N 电路来驱动电机。通过单片机给予 L298N 电路 PWM 信号来控 制小车的速度,起停。其引脚图如 3.2,驱动原理图如图 3.3。 图 3.2 L298N 引脚图 STC89C52 时钟电路 复位电路 循迹红外对管 电机驱动 避障红外对管电源电路 图 3.3 电机驱动电路 3.3 信号检测模块 小车循迹原理是小车在细木工板表面上行驶,由于细木工板表面和空地对 光线的反射系数不同,可根据接收到的反射光的强弱来判断行进路线。本小车 采用红外对管采集数据 红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的 特点。在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时 发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸 收,则小车上的接收管接收不到信号,再通过 LM324 作比较器来采集高低电平, 从而实现信号的检测。避障亦是此原理。电路图如图 3.4。 市面上有很多红外传感器,在这里我选用 TCRT5000 型光电对管。 图 3.4 循迹原理图 3.4 主控电路 本模块主要是对采集信号进行分析,同时给出 PWM 波控制电机速度,起停。 以及再检测到障碍转弯等作用。其电路图如图 5。 图 3.5 主控电路 第四章程序流程图 4.1主程序框图: 图 4.1 主程序框图 void main() a=0; b=0; Time0(); zhouqi = 100; while(1) zhixing(); jiance_a (); qianfang_b (); 启动 循迹 停车标志位置位 N 是否检测到障碍 避障 Y N Y Y 停止 4.2 循迹模块 循迹框图: 图 4.2 循迹框图 void jiance_a () if(a=0 duanting (); ltui_pwm=50; rtui_pwm=50; ljin_pwm=0; rjin_pwm=0; Delay(35); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(20); 开始 前进 扫描 I/O 口,是否检 测到黑线 Y 左边 右边左转 右转 N /you 转 90 /111111111111 ltui_pwm=0; rtui_pwm=50; ljin_pwm=50; rjin_pwm=0; Delay(180); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(30); zhixing_a0zhuanyong (); if(a=1 duanting (); ltui_pwm=50; rtui_pwm=50; ljin_pwm=0; rjin_pwm=0; Delay(40); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(150); /zuo 转 90 /2222222222 ltui_pwm=60; rtui_pwm=0; ljin_pwm=0; rjin_pwm=20; Delay(110); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(100); zhixing(); if(a=2 duanting (); ltui_pwm=50; rtui_pwm=50; ljin_pwm=0; rjin_pwm=0; Delay(80); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(100); /you 转 90 /5555555555555555555555555 ltui_pwm=0; rtui_pwm=60; ljin_pwm=60; rjin_pwm=0; Delay(100); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(100); pianzuo (); if(a=3 duanting (); ltui_pwm=50; rtui_pwm=50; ljin_pwm=0; rjin_pwm=0; Delay(100); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(100); /zuo 转 #define uint unsigned int #define uchar unsigned char uint i,j; uchar ljin_pwm,ltui_pwm,rjin_pwm,rtui_pwm; uchar zhouqi,a,b; sbit zuotui=P10; sbit zuojin=P11; sbit youtui=P12; sbit youjin=P13; sbit jiancer=P20; sbit jiancezr=P21; sbit jiancezl=P22; sbit jiancel=P23; sbit qianfangl=P14; sbit qianfangr=P15; void Time0(void) TMOD |=0x01; /定时器设置 1ms in 12M crystal TH0=0xff;/(65536-1000)/256; TL0=0xd1;/0.05ms/(65536-1000)%256; /定时 1mS IE= 0x82; /打开中断 TR0=1; /定时器打开 void Delay(uint i) uchar x,j; for(j=0;ji;j+) for(x=0;x=148;x+); void qianfang_b (); void jiance_a (); void pianyou (); void pianzuo () ltui_pwm=0; rtui_pwm=0; ljin_pwm=20; rjin_pwm=100; void duanting () ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=5; Delay (20); void zhixing_a0zhuanyong () ljin_pwm=90; rjin_pwm=90; if(jiancer=0 rjin_pwm=0; Delay(50); if(jiancer=1 rjin_pwm=40; Delay(50); void zhixing() ltui_pwm=0; rtui_pwm=0; ljin_pwm=35; rjin_pwm=39; if (jiancel=0 rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay (20); ltui_pwm=50; rtui_pwm=0; ljin_pwm=0; rjin_pwm=60; Delay (25); if(jiancer=0 rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay (20); ltui_pwm=0; rtui_pwm=55; ljin_pwm=50; rjin_pwm=0; Delay(25); void main() a=0; b=0; Time0(); zhouqi = 100; while(1) zhixing(); jiance_a (); qianfang_b (); void tim(void) interrupt 1 using 1 static unsigned char count0,count1,count2,count3; TH0=0xff;/(65536-1000)/256; TL0=0xd1;/(65536-1000)%256;/定时 1mS if (count0=ltui_pwm) /0 zuotui = 1; /直流电机转 count0+; if(count0 = zhouqi) count0=0; if(ltui_pwm!=0) /如果左右时间是 0 保持原来状态 zuotui = 0; /直流电机不转 if (count1=ljin_pwm) /1 zuojin = 1; /直流电机转 count1+; if(count1 = zhouqi) count1=0; if(ljin_pwm!=0) /如果左右时间是 0 保持原来状态 zuojin = 0; /直流电机不转 if (count2=rtui_pwm) /2 youtui = 1; /直流电机转 count2+; if(count2 = zhouqi) count2=0; if(rtui_pwm!=0) /如果左右时间是 0 保持原来状态 youtui = 0; /直流电机不转 if (count3=rjin_pwm) /3 youjin = 1; /直流电机转 count3+; if(count3 = zhouqi) count3=0; if(rjin_pwm!=0) /如果左右时间是 0 保持原来状态 youjin = 0; /直流电机不转 void jiance_a () if(a=0 duanting (); ltui_pwm=50; rtui_pwm=50; ljin_pwm=0; rjin_pwm=0; Delay(35); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(20); /you 转 90 /111111111111 ltui_pwm=0; rtui_pwm=50; ljin_pwm=50; rjin_pwm=0; Delay(180); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(30); / zhixing(); zhixing_a0zhuanyong (); if(a=1 duanting (); ltui_pwm=50; rtui_pwm=50; ljin_pwm=0; rjin_pwm=0; Delay(40); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(150); /zuo 转 90 /2222222222 ltui_pwm=60; rtui_pwm=0; ljin_pwm=0; rjin_pwm=20; Delay(110); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(100); zhixing(); if(a=2 duanting (); ltui_pwm=50; rtui_pwm=50; ljin_pwm=0; rjin_pwm=0; Delay(80); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(100); /you 转 90 /5555555555555555555555555 ltui_pwm=0; rtui_pwm=60; ljin_pwm=60; rjin_pwm=0; Delay(100); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(100); pianzuo (); if(a=3 duanting (); ltui_pwm=50; rtui_pwm=50; ljin_pwm=0; rjin_pwm=0; Delay(100); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(100); /zuo 转 90 ltui_pwm=40; rtui_pwm=0; ljin_pwm=0; rjin_pwm=60; Delay(80); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(100); if(a=4 duanting (); ltui_pwm=50; rtui_pwm=50; ljin_pwm=0; rjin_pwm=0; Delay(90); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(100); /zuo 转 90 /2222222222 ltui_pwm=40; rtui_pwm=0; ljin_pwm=0; rjin_pwm=50; Delay(150); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(100); zhixing(); if (a=5 zhixing(); if(a=6 duanting (); ltui_pwm=50; rtui_pwm=50; ljin_pwm=0; rjin_pwm=0; Delay(35); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(50); /you 转 90 /111111111111 ltui_pwm=0; rtui_pwm=50; ljin_pwm=50; rjin_pwm=0; Delay(180); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(100); zhixing(); void qianfang_b () if (b=0 duanting (); ltui_pwm=50; rtui_pwm=50; ljin_pwm=0; rjin_pwm=0; Delay(45); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(50); /可以加检测到边 a=2 /zuo 转 小于 90 /33333333333 ltui_pwm=50; rtui_pwm=0; ljin_pwm=0; rjin_pwm=50; Delay(110); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(100); zhixing(); if (b=1 duanting (); ltui_pwm=50; rtui_pwm=50; ljin_pwm=0; rjin_pwm=0; Delay(10); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(20); /zuo 转 90 /44444444444444444444 /zuo 转 90 /zuo 转 90 ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=50; Delay(220); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; rjin_pwm=0; Delay(100); zhixing(); if (b=2 duanting (); /you 转 90 /66666666666666666666 ltui_pwm=0; rtui_pwm=60; ljin_pwm=40; rjin_pwm=0; Delay(145); ltui_pwm=0; rtui_pwm=0; ljin_pwm=0; r

温馨提示

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

评论

0/150

提交评论