智能寻迹灭火小车.doc_第1页
智能寻迹灭火小车.doc_第2页
智能寻迹灭火小车.doc_第3页
智能寻迹灭火小车.doc_第4页
智能寻迹灭火小车.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

哈尔滨工业大学华德应用技术学院本科毕业设计(论文)智能寻迹灭火小车系统功能概述经过开题期间的文献查阅和实际情况调研,了解到目前的消防车的研究与设计一般采用的方案大都为:通过人为报警,再由消防人员开着小车去灭火。那样消防人员会随时面临着危险。通过自己的想法。采用的方案为:通过温度传感器、检测到火灾发生地点的温度的因素与其标准区间值不符,系统会自动派出无人消防车进行灭火等操作。该控制系统的最大特点:结构简单 体积小、功率低 信号无干扰,传输准确度高 成本低廉 安全系统各个功能模块简介:寻迹模块:主要用来给小车做导航前进用。电源模块:主要用来分别区分给单片机与电机、水泵驱动模块供电。温度模块:主要用来对温度传感器给单片机传值的功能。显示模块:主要用来显示单片机传过来的温度值。电机驱动模块:主要用来驱动两个减速直流电机,实现小车的前进、后退、前左转、前右转、后左转、后右转、停车等功能。风扇、水泵驱动模块:主要是用来控制水泵是否喷水、风扇是否吹风,来实现小车灭火功能。系统工作原理在智能寻迹灭火小车控制系统的设计中,工作原理:首先小车检测水罐水位,是否到达水位线。如果没有,则等待装水直至装满为止。然后通过18B20检测传回来的温度,实时显示。当温度达到上限时,开始启动报警,并驱动小车沿着黑线寻迹前进。到达指定地点时,小车停止,启动风扇和水泵,开始吹风、喷水。当温度降回原先的区间或者水罐的水降低到警戒线。小车开始寻迹返回。然后等待水装满。再一次运行。系统硬件设计 硬件设计框图本控制系统硬件设计框图3-1如下所示:AT89C52主控芯片温度模块显示模块报警寻迹模块检测水位驱动电机模块水泵风扇模块P1.0P1.3P1.4P1.5P1.6P1.7P0.4P0.5P3.4P3.5 P0.00.1 P2P0.7图3-1硬件设计框图在智能寻迹灭火小车控制系统的设计中,以AT89C52为核心,用了两片L298N,一片用于驱动两个减速电机,一片用于驱动水泵和风扇。12V电源单独给电机供电,再用7805把12V电源降压至5V给单片机供电。首先单片机根据检测水位及温度是否到达上限的信号,来判断小车是否前进。如果没有该信号,则一直等待。当产生信号驱动小车前进时,是通过寻迹模块里的RPR220是否寻到黑线产生的电平信号返回到单片机,单片机根据程序设计的要求做出相应的判断送给电机驱动模块,让小车来实现前进、左转、右转、停车等基本功能。到达火灾地点时,单片机通过L298N来控制水泵、风扇工作灭火。硬件设计及主控芯片介绍在智能寻迹灭火小车控制系统的设计中,共用了一片AT89C52单片机作为本控制系统的主控芯片,硬件设计模块共分为:寻迹模块、电机、风扇水泵驱动模块、电源模块、显示模块、温度模块、水泵风扇模块。AT89C52主控芯片介绍本系统的核心部件AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含2k字节的可反复擦写的只读程序存储器(PEROM)和128字节的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,具有较高的性价比。设计本着应用性,因此选择AT89C52单片机作为本控制系统的中央处理器。AT89C52包括:(1)一个8位微处理器CPU。(2)片内数据存储器RAM和特殊功能寄存器SFR。(3)片内程序存储器ROM。(4)两个定时/计数器T0、T1,可用作定时器,也可用以 对外部脉冲进行计 数。(5)四个8位可编程的并行I/O端口,每个端口既可作输 入,也可作输出。(6)一个串行端口,用于数据的串行通信。(7)中断控制系统。(8)内部时钟电路。AT89C52单片机的基本组成如图3-2所示。 图3-2AT89C52单片机基本结构AT89C52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89C52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式 以适应不同产品的需求。AT89C52芯片的40个引脚功能为: Vcc:电源电压。 GND:地。P0口(P0.0P0.7):该端口为漏极开路的8位准双向口,它为外部低8位地址线和8位数据线复用端口,驱动能力为8个LSTTL负载。P1口(P1.0P1.7):它是一个内部带上拉电阻的8位准双向I/O口,P1口的驱动能力为4个LSTTL负载。P2口(P2.0P2.7):它为一个内部带上拉电阻的8位准双向I/O口,P2口的驱动能力也为4个LSTTL负载。在访问外部程序存储器时,作为高8位地址线。P3口(P3.0P3.7):为内部带上拉电阻的8位准双向I/O口,P3口除了作为一般的I/O口使用之外,每个引脚都具有第二功能。P3口还用于实现AT89C52的各种功能,如下表3-1所示。 表3-1P3口各功能对照表RST:复位输入。RST一旦变成高电平,所有的I/O引脚就复位到“1”。当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。每一个机器周期需12个振荡器或时钟周期。 XTAL1:作为振荡器反相放大器的输入和内部时钟发生器的输入。XTAL2:作为振荡器反相放大器的输出。寻迹系统方案设计这里的寻迹是指小车在地板上,寻着黑线行走,通常采取的方法是以下三种方案。方案1:用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。但是这种方案受光照影响很大,不能够稳定的工作。因此我考虑其他更加稳定的方案。方案2:用红外发射管和接收管自己制作光电对管寻迹传感器。红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。这样自己制作组装的寻迹传感器基本能够满足要求,但是工作不够稳定,且容易受外界光线的影响,因此我放弃了这个方案。方案3:用RPR220型光电对管。RPR220是一种一体化反射型光电探测器,其发射器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平面光电三极管。RPR220采用DIP4封装,其具有如下特点:塑料透镜可以提高灵敏度。内置可见光过滤器能减小离散光的影响。体积小,结构紧凑。当发光二极管发出的光反射回来时,三极管导通输出低电平。此光电对管调理电路简单,工作性能稳定。因此我选择了方案3。RPR220主要使用一片LM393比较器芯片,根据寻到黑线时,电压进行比较,传回单片机一个值。该设计的寻迹原理图3-2-2如下所示:图3-2-2寻迹模块原理图用光电对管电路的设计我设计并论证了两种光电对管检测及调理电路,电路原理图分别如3-2-2-1和图3-2-2-2所示: 图3-2-2-1 光电对管检测电路1图3-2-2-1所示电路中,R1起限流电阻的作用,当有光反射回来时,光电对管中的三极管导通,R2的上端变为高电平,此时VT1饱和导通,三极管集电极输出低电平。当没有光反射回来时,光电对管中的三极管不导通,VT1截至,其集电极输出高电平。VT1在该电路中起到滤波整形的作用。经试验和示波器验证,该电路工作性能一般,输出还有杂散干扰波的成分。如果输出加施密特触发器就可以实现良好的输出波形。但是这种电路用电量比较大,给此种传感器调理电路供电的电池压降较快。究其原因,是因为光敏三极管和三极管VT1导通时的导通电流较大。因此我考虑用比较器的方案。图3-2-2-2光电对管检测电路2在图3-2-2-2中,可调电阻R3可以调节比较器的门限电压,经示波器观察,输出波形相当规则,可以直接够单片机查询使用。而且经试验验证给此电路供电的电池的压降较小。因此我选择此电路作为我的传感器检测与调理电路。驱动电机系统方案设计方案1:采用专用芯片L298N作为电机驱动芯片。L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。用该芯片作为电机驱动,操作方便,稳定性好,性能优良。方案2:对于直流电机用分立元件构成驱动电路。由分立元件构成电机驱动电路,结构简单,价格低廉,在实际应用中应用广泛。但是这种电路工作性能不够稳定。因此我们选用了方案1。驱动电路的设计如图3-2-3所示: 图3-2-3驱动电机模块原理图电源系统方案设计由于本系统需要电池供电,我考虑了如下集中方案为系统供电。方案1: 采用8节1.5V干电池供电,电压达到12V,给支流电机供电,然后将12V电压再次降压、稳压后给单片机系统和其他芯片供电。并且电池的价格比较低。方案2:采用3节4.2V可充电式锂电池串联共12.6V给直流电机供电,经过7812的电压变换后给支流电机供电,然后将12V电压再次降压、稳压后给单片机系统和其他芯片供电。锂电池的电量比较足,并且可以充电,重复利用,因此,这种方案比较可行。但锂电池的价格过于昂贵,使用锂电池会大大超出我的预算,因此,我放弃了这种方案。方案3:采用12V蓄电池为直流电机供电,将12V电压降压、稳压后给单片机系统和其他芯片供电。蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。但蓄电池的体积过于庞大,在小型电动车上使用极为不方便, 综上考虑,我选择了方案1。显示系统设计 由于本系统需要显示温度,我考虑如下几种方案来显示:方案1:使用七段数码管直接与单片机相连。需要八个段码口接上拉电阻和三级管放大。其缺点占用口太多。 方案2:使用CD4511芯片直接与四位一体的七段数码共阴管相连,优点只占用八个数据口,四个片选口,四个段码值口。唯一的缺点是数据管不能显示小数点。综上考虑,我选择了方案2。显示模块电路设计如图3-2-5:图3-2-5LED数码显示器是由LED 发光二极管组合显示字符的显示器件。它使用了8个LED发光二极管,其中7个用于显示字符,1个用于显示小数点,故通称之为7段发光二极管数码显示器。它分为静态显示和动态显示。静态显示所谓静态显示,就是在同一时刻只能显示一种字符,或者说被显示的字符在同一时刻是稳定不变的。其显示方法比较简单,只要将显示段码送到段码口,并把位控字送到片选口即可。动态显示如果要在同一时刻显示不同的字符,从电路上看,这是办不到的。因此只能利用人眼对视觉的残留,采用动态扫描显示的方法,逐个地循环点亮各位数码管,每位显示1ms左右,可人看起来就好象在同时显示不同的字管一样。温度系统设计本控制系统采用18B20温度传感器。它是以9位数字量的形式反映器件的温度值,具有如下特性:独特的单线接口仅需要一个端口引脚进行通迅简单的多点分布应用无需外部器件可通过数据线供电零待机功耗测温范围-55+125度,以0.5度递增。温度数字量转换时间200MS(典型值)应用包括温度控制、工业系统、温度计或任何热感测系统。它的引脚图为:引脚说明:16脚SSOPPR35符号说明91GND接地82DQ数据输入 输出脚,操作:漏极开路(见寄生电源)72VDD可选的VDD引脚,具体接法见“寄生电源”节车体方案设计方案1:购买玩具电动车。购买的玩具电动车具有组装完整的车架车轮、电机及其驱动电路。但是一般的说来,玩具电动车具有如下缺点:首先,这种玩具电动车由于装配紧凑,使得各种所需传感器的安装十分不方便。其次,这种电动车一般都是前轮转向后轮驱动,不能适应该题目的方格地图,不能方便迅速的实现原地保持坐标转90度甚至180度的弯角。再次,玩具电动车的电机多为玩具直流电机,力矩小,空载转速快,负载性能差,不易调速。而且这种电动车一般都价格不菲。因此我们放弃了此方案。方案2:自己制作电动车。经过反复考虑论证,我制定了左右两轮分别驱动,前万向轮转向的方案。即左右轮分别用两个转速和力矩基本完全相同的直流减速电机进行驱动,车体前部装一个万向轮。这样,当两个直流减速电机转向相反同时转速相同时就可以实现电动车的原地旋转,由此可以轻松的实现小车坐标不变的90度和180度的转弯。在安装时我保证两个驱动电机同轴。当小车前进时,左右两驱动轮与前万向轮形成了三点结构。这种结构使得小车在前进时比较平稳,可以避免出现后轮过低而使左右两驱动轮驱动力不够的情况。为了防止小车重心的偏移,前万向轮起支撑作用。对于车架材料的选择,我们经过比较选择了有机玻璃。用有机玻璃做的车架比塑料车架更加牢固,比铁制小车更轻便,美观。综上考虑,我们选择了方案2。水泵、风扇模块设计采用的方案与驱动电机系统模块一样。采用的是L298N。系统软件设计对于一个完整控制系统来说,除了要有一个完整的硬件控制以外,还应该有一个能充分发挥硬件功能的软件系统来支持它,本章将详细介绍寻迹模块、电机驱动、显示模块、温度系统的软件实现方法。软件设计思路根据总体设计的思想及本系统实现的功能,在软件设计中完成以下功能。寻迹模块主程序:由是否遇到黑线产生信号的操作,信号返回到单片机,再通过单片机来实现相应的功能。电机驱动模块主程序:主要用来控制两个直流减速电机,实现前进、后退、前左转、前右转、后左转、后右转、停车等功能。显示模块主程序:主要通过单片机用来显示实时温度值。温度模块主程序:主要用来给单片机传递温度的相应执行模块。水泵风扇模块程序:主要用来控制一个水泵和风扇,实现喷水、吹风等功能。系统程序流程图根据软件的总体设计思想及本系统所要实现的功能,进行其系统程序流程图设计,本系统程序流程图共分为:寻迹程模块序流程图、电机驱动模块程序流程图、显示模块程序流程图、温度模块程序流程图、水泵风扇模块程序流程图。寻迹模块程序流程图在用户没有对水缸装满和温度没到达上限时,程序不停的进行水缸水位和温度扫描,直到水位达到和温度达到上限的时候,程序跳转到对应的位置执行。其寻迹模块程序流程图如下图4-1所示:图4-1寻迹模块程序流程图驱动电机模块程序流程图程序运行后,首先进行初始化将AT89C52单片机的P1口全部置0,等到水位满和温度达到上限时,然后就循环判断寻迹系统送过的信号,对电机进行相应的功能驱动。具体如下图4-2和表4-1所示:图4-2驱动电机模块程序流程图表4-1驱动电机模块程序功能对照表接收真值表(前左,后右)对应功能1-1前进0-0停车1-0左转0-1右转显示模块程序流程图该程序主要用来把18B20所传过来的温度值实时显示出来。如下图4-3所示:图4-3显示模块程序流程图温度模块程序流程图程序运行后,首先对程序进行初始化,给P0.0-P0.1赋初值。然后对AT89C52单片机的P0.0-P0.1端口进行循环扫描,把扫描到的值送到温度读取函数得到值,送显示模块继续执行。具体如下图4-4所示:图4-4温度模块程序流程图水泵风扇模块程序流程图该模块程序与驱动电机模块采用的驱动电路是一样的。都是用L298N。针对该模块程序流程的相应调用而执行的模块。如下图4-5所示:图4-5水泵风扇模块程序流程图各功能模块软件程序设计在各个硬件功能模块的基础上,针对其预定实现的相应功能对各个功能模块进行软件程序设计。寻迹模块主程序程序运行后,首先进行初始化,将P1口置低,然后等待水满和温度达到上限报警, void zhengxiang() /正向前进函数 while(1) if(chuan_gan1=0&chuan_gan2=0) ting(); biaozhi=1; if(chuan_gan1=1&chuan_gan2=0) zuozhuan(); if(chuan_gan1=0&chuan_gan2=1) youzhuan(); if(chuan_gan1=1&chuan_gan2=1) qianjin(); if(wendu30&wendu10;i-) WD = 0; / 给脉冲信号 shuju=1; WD = 1; / 给脉冲信号 if(WD) shuju|=0x80; delay(4); return(shuju);WriteOneChar(unsigned char shuju) /写一个字节 uchar i=0; for (i=8; i0; i-) WD = 0; WD = shuju&0x01; delay(5); WD = 1; shuju=1; delay(4);uchar ReadTemperature() /读取温度 uchar diwei=0; uchar gaowei=0; uchar t=0; wdcsh(); /初始化 WriteOneChar(0xCC); / 跳过读序号列号的操作 WriteOneChar(0x44); / 启动温度转换 wdcsh(); /初始化 WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器)前两个就是温度 diwei=ReadOneChar(); /读取温度值低位 gaowei=ReadOneChar();/读取温度值高位 diwei=diwei4; /低位右移4位,舍弃小数部分 t=gaowei0;b-) /控制左右转的时间系数; for(a=0;a1000次)ISP Flash ROM 28个双向I/O口 4.5-5.5V工作电压 2个16位可编程定时/计数器 时钟频率0-33MHz 全双工UART串行中断口线 256x8bit内部RAM 2个外部中断源 低功耗空闲和省电模式 引脚功能: MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照-单片机引脚图: l P0.0P0.7 P0口8位双向口线(在引脚的3932号端子)。 l P1.0P1.7 P1口8位双向口线(在引脚的18号端子)。 l P2.0P2.7 P2口8位双向口线(在引脚的2128号端子)。 l P3.0P3.7 P2口8位双向口线(在引脚的1017号端子)。 这4个I/O口具有不完全相同的功能,大家可得学好了,其它书本里虽然有,但写的太深,初学者很难理解,这里都是按我自已的表达方式来写的,相信你也能够理解。 P0口有三个功能: 1、外部扩展存储器时,当做数据总线(如图1中的D0D7为数据总线接口) 2、外部扩展存储器时,当作地址总线(如图1中的A0A7为地址总线接口) 3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。 P1口只做I/O口使用:其内部有上拉电阻。 P2口有两个功能: 1、扩展外部存储器时,当作地址总线使用 2、做一般I/O口使用,其内部有上拉电阻; P3口有两个功能: 除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。 有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的, 即:编程脉冲:30脚(ALE/PROG) 编程电压(25V):31脚(EA/Vpp) 接触过工业设备的兄弟可能会看到有些印刷线路板上会有一个电池,这个电池是干什么用的呢?这就是单片机的备用电源,当外接电源下降到下限值时,备用电源就会经第二功能的方式由第9脚(即RST/VPD)引入,以保护内部RAM中的信息不会丢失。 (注:这些引脚的功能应用,除9脚的第二功能外,在“新动力2004版”学习套件中都有应用到。) 在这里介绍到的上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。ALE/PROG 地址锁存控制信号:在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。(在后面关于扩展的课程中我们就会看到8051扩展 EEPROM电路,在图中ALE与74LS373锁存器的G相连接,当CPU对外部进行存取时,用以锁住地址的低位地址,即P0口输出。ALE有可能是高电平也有可能是低电平,当ALE是高电平时,允许地址锁存信号,当访问外部存储器时,ALE信号负跳变(即由正变负)将P0口上低8位地址信号送入锁存器。当ALE是低电平时,P0口上的内容和锁存器输出一致。关于锁存器的内容,我们稍后也会介绍。在没有访问外部存储器期间,ALE以1/6振荡周期频率输出(即6分频),当访问外部存储器以1/12振荡周期输出(12分频)。从这里我们可以看到,当系统没有进行扩展时ALE会以1/6振荡周期的固定频率输出,因此可以做为外部时钟,或者外部定时脉冲使用。PORG为编程脉冲的输入端:在第五课 单片机的内部结构及其组成中,我们已知道,在8051单片机内部有一个4KB或8KB的程序存储器(ROM),ROM的作用就是用来存放用户需要执行的程序的,那么我们是怎样把编写好的程序存入进这个ROM中的呢?实际上是通过编程脉冲输入才能写进去的,这个脉冲的输入端口就是PROG。PSEN 外部程序存储器读选通信号:在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作。 1、内部ROM读取时,PSEN不动作; 2、外部ROM读取时,在每个机器周期会动作两次; 3、外部RAM读取时,两个PSEN脉冲被跳过不会输出; 4、外接ROM时,与ROM的OE脚相接。 EA/VPP 访问和序存储器控制信号 1、接高电平时: CPU读取内部程序存储器(ROM) 扩展外部ROM:当读取内部程序存储器超过0FFFH(8051)1FFFH(8052)时自动读取外部ROM。 2、接低电平时:CPU读取外部程序存储器(ROM)。 在前面的学习中我们已知道,8031单片机内部是没有ROM的,那么在应用8031单片机时,这个脚是一直接低电平的。3、8051烧写内部EPROM时,利用此脚输入21V的烧写电压。RST 复位信号:当输入的信号连续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作,当复位后程序计数器PC=0000H,即复位后将从程序存储器的0000H单元读取第一条指令码。XTAL1和XTAL2 :外接晶振引脚。当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。VCC:电源+5V输入 VSS:GND接地。附录3系统硬件原理图附图-驱动电机模块硬件原理图附录部分程序代码void delay(uint j) /温度延时函数 while(j-);void dly(int count) /大延时函数 unsigned int a,b; for(b=count;b0;b-) /控制左右转的时间系数; for(a=0;a0;i-) WD = 0; / 给脉冲信号 shuju=1; WD = 1; / 给脉冲信号 if(WD) shuju|=0x80; delay(4); return(shu

温馨提示

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

评论

0/150

提交评论