单片机控制步进电机_第1页
单片机控制步进电机_第2页
单片机控制步进电机_第3页
单片机控制步进电机_第4页
单片机控制步进电机_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、 课题:单片机控制步进电机 目录1、 前言.11.1 步进电机简介.11.2 摘要.11.3 设计目的.22、 设计任务及要求.33、 总体方案设计.43.1 方案的选择.44、 硬件电路设计.64.1 单片机及其外围电路介绍.64.2控制键电路.84.3 步进电机驱动电路.94.4 步进电机控制系统硬件电路图.105、 软件设计.125.1程序设计平台.125.2 程序设计思路.135.3程序流程图.146、 仿真效果.177、 实物调试.18 7.1调试与改进.188、 设计总结.19参考文献.201、 前言1.1步进电机简介步进电机是一种将数字脉冲信号转化为角位移的执行机构。也就是说,当

2、步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角、步距角)。您可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。一般步进电机的精度为步进角的3-5%,且不累积。步进电机最早是在1920年由英国人所开发。以后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解性能、高响应性、信赖性等灵活控制性高的机械系统中。在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得

3、最多。步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。 步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。步进电机可以直接用数字信号驱动,使用非常方便。一般电动机都是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动,每给它一个脉冲信号,它就转过一定的角度。步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向。在没有脉冲输

4、入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。因此非常适合于单片机控制。1.2 摘要 步进电机是一种能将电脉冲信号转换成角位移或线位移的机电元件,步进电机控制系统主要由步进控制器,功率放大器及步进电机等组成。采用单片机控制,用软件代替上述步进控制器,使得线路简单,成本低,可靠性大大增加。软件编程可灵活产生不同类型步进电机励磁序列来控制各种步进电机的运行方式。系统由硬件设计和软件设计两部分组成。其中,硬件设计包括AT89C51单片机的最小系统、电源模块、键盘控制模块、步进电机驱动(集成达林顿ULN2003)模块、数码显示(SM420361K数码管)模块、测速模块(含霍尔片UG

5、N3020)6个功能模块的设计,以及各模块在电路板上的有机结合而实现。软件设计包括键盘控制、步进电机脉冲、数码管动态显示以及转速信号采集模块的控制程序,最终实现对步进电机转动方向及转动速度的控制,并将步进电机的转动速度动态显示在LED数码管上,对速度进行实时监控显示。1.3 设计目的(1)设计并实现给定步进电机的控制;(2)进一步掌握步进电机的控制方法;二 设计任务及要求本设计的目的是以单片机为核心设计出一个单片机控制步进电机的控制系统。本系统采用AT89C51作为控制单元,通过键盘实现对步进电机转动方向及转动速度的控制,并且将步进电机的转动速度动态显示在LED数码管上,如图一系统模块图。AT

6、89C51键盘控制模块电机驱动模块数码显示模块电源模块图一 系统模块图设计的步进电机控制系统应具有以下功能:1. 步进电机的启停控制2步进电机的正反转控制3. 步进电机的加速控制三 总体方案设计 本步进电机控制系统,按照系统设计功能的要求,确定系统由4个模块组成:主控制器、电机驱动模块、LED指示灯电路、键盘电路。温度无线采集报警系统结构框图如图2所示按键电路电机驱动电源STC89C52单片机步进电机LED指示灯图2 系统结构框图3.1 方案的选择3.1.1 主控芯片方案 方案一: 采用传统的STC89C52单片机作为主控芯片。此芯片价格便宜、操作简便,低功耗,比较经济实惠。 方案二: 采用T

7、I公司生产的MSP430F149系列单片机作为主控芯片。此单片机是一款高性能的低功耗的16位单片机,具有非常强大的功能,且内置高速12位ADC。但其价格比较昂贵,而且是TPFQ贴片封装,不利于焊接,需要PCB制板,大大增加了成本和开发周期。 方案三: 采用宏晶科技有限公司的STC12C5A60S2增强型51单片机作为主控芯片。此芯片内置ADC和SPI总线接口,且内部时钟不分频,可达到1MPS。而且价格适中。考虑到此系统需要不用到ADC,从性能和价格上综合考虑我们选择方案一,即用STC89C52作为本系统的主控芯片。3.1.2 步进电机驱动方案方案1: 采用继电器对电动机的开或关进行控制,通过开

8、关的切换对小车的速度进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。方案2:采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般的电动机电阻很小,但电流很大,分压不仅会降低效率,而且实现很困难。方案3:采用ULN2003达林顿管电机驱动芯片,ULN2003芯片是高耐压、大电流达林顿阵列,由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双极型大功率高速集成电路。功率电子电路大多要求具有大电流输出能力,以便于驱动各种

9、类型的负载。功率驱动电路是功率电子设备输出电路的一个重要组成部分。ULN2003芯片高压大电流达林顿晶体管阵列产品属于可控大功率器件。对步进电机控制方便灵活。因此我们选用了方案3。3.1.3显示模块方案方案一: 选择主控为ST7920的带字库的LCD12864来显示信息。12864是一款通用的液晶显示屏,能够显示多数常用的汉字及ASCII码,而且能够绘制图片,描点画线,设计成比较理想的结果。方案二: 采用四个LED发光二极管显示,其成本低,简单明了,容易显示控制。综合以上方案,我们选择了经济实惠LED来作为速度级别显示四 硬件电路设计本文采用目前国内比较常用的单片机用与整个回路的控制,单片机选

10、用51系列的AT89C51芯片,芯片及其外围时钟电路和复位电路组成单片机最小系统,按键SW1-SW4做为输入控制,ULN2003做为步进电机驱动器件。硬件电路总体框图如图3:图3 硬件电路总体框图4.1 单片机及其外围电路介绍4.1.1CPU芯片 AT89C51是主机板的核心,接收各部分信息并向各部发出命令,控制电机运行的各种工作状态。 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,在本次设计中不需要外扩存储器。该器件采用AT

11、MEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。目前,可用于MCS-51系列单片机开发的硬件越来越多,与其配套的各类开发系统、各种软件也日趋完善,因此,可以极方便地利用现有资源,开发出用于不同目的的各类应用系统。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,所以ATMEL的AT89C51是一种高效微控制器,因其高性能、高速度、体积小、价格低廉、稳定可靠而得到广泛应用, 成为在工业生产中必不可少的器件,而且在日常生活中发挥的作用也越来越大,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。单片机最小系统电路图如图4所示:图4 单片机最小系统电路图 管

12、脚说明:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。本次设计中,P0口作为键盘输入口。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。本次设计中

13、,P1口作为脉冲输出口,与步进电机驱动电路相连接。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。 VCC:供电电压。  GND:接地。 /VPP:当保持低电平时,选用外部程序存储(0000H-FFFFH),当端保持高电平时,用内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。4.1.2 AT89C51单片机的时钟电路:AT89C51单片机的时钟信通常用两种电路形式得到:内部振荡方式和外部振荡方式。本设计由内部振荡方式产生。如图2-2

14、中所示,在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振),就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。两个电容器起稳定振荡频率、快速起振的作用,其电容值一般在5-30pF。当晶振频率的值为12MHZ时内部振荡方式所得的时钟信号比较稳定,实用电路中应用较多。4.1.3单片机复位电路:当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行

15、期间,用开关操作也能使单片机复位。上电后,由于电容的充电作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键后松开,也能使RST保持一段时间的高电平,从而实现通电时的自动复位操作,系统运行过程中的开关复位操作。4.2控制键电路键盘是由若干按钮组成的开关矩阵,它是单片机系统中最常用的输入设备,用户能通过键盘向计算机输入指令、地址和数据。按键是一种常开型按钮开关。由于按钮是机械触点,当机械触点断开、闭合时,会有抖动,这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全能感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时

16、间了。为使CPU能正确地读出输入口的状态,对每一次按钮只作一次响应,就必须考虑如何去除抖动,常用的去抖动的办法有两种:硬件办法和软件办法。单片机系统中常用软件法。就是在单片机获得P0口为低的信息后,不是立即认定按键已被按下,而是延时10毫秒或更长一些时间后再次检测P0口,如果仍为低,说明按键的确按下了,这实际上是避开了按钮按下时的抖动时间。按键与控制系统P0口键连接,其连接如下表:表1 P0口与控制键连接启动升频降频停止KW1KW2KW3KW4P0.0P0.1P0.2P0.2控制键电路图如图5所示:图5 控制键电路图4.3 步进电机驱动电路AT89C51控制电机运行的各种工作状态。但不能直接驱

17、动步进电机,这需要由功率电路来扩展输出电流以满足被控元件的电流、电压。 ULN2003达林顿晶体管阵列系列产品就属于这类可控大功率器件。ULN2003 是高耐压、大电流、内部由七个硅NPN 达林顿管成的驱动芯片。它是一个7路反向器电路,即当输入端为高电平时,ULN2003输出端为低电平,当输入端为低电平时ULN2003输出端为高电平。ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它 能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来 处理的数据。ULN2003芯片如图6所示:图6 ULN2003芯片ULN2003芯片输入端与控制系统P

18、1口连接,其连接方式如表2所示:表2 ULN2003芯片输入端与控制系统P1口键连接P1.0P1.1P1.2P1.31B2B3B4BULN2003芯片输出端与步进电机连接,其连接如表3所示:表3 ULN2003芯片输出端与步进电机连接1C2C3C4CA+A-B+B-4.4 步进电机控制系统硬件电路图如图7为单片机的最小系统,其P0.0-P0.7口分别连接到LCD1602的D0-D7引脚,与P2.5,P2.6,P2.7相连的按键开关分别控制步进电机的正反转,加速,减速,P2.0,P2.1,P2.2分别接LCD1602的RS,RW,E引脚。图7 单片机最小系统如图8为电机驱动部分。驱动电压为+12

19、V,用单片机的P1.0与电机驱动器的CW相连控制单片机的转向,P1.1与电机驱动器的CP相连,给驱动器输入脉冲。a,b,c,d分别接入步进电机。SX-672为检测转速的传感器外接+5V驱动电压,输出接入单片机的T1脚。图8 电机驱动图五 软件设计5.1程序设计平台考虑到程序的易读性和简练,程序设计采用C语言。程序编辑平台采用Keil。图9 Keil软件界面5.2 程序设计思路步进电机控制系统的软件需要同时完成读取键盘、处理键盘、控制步进电机转动、控制数码管动态显示等任务,这就必须通过中断技术来实现。在本设计中,主程序采用查询方式扫描键盘端口,检测按键动作是否发生,若有按键动作则处理键盘,根据按

20、键值修改相应参数值,实现键盘的实时处理功能。定时器0中断服务程序控制步进电机的转动:根据当前显示的速度进行键盘手动改变T0定时时间常数,设置TH0和TL0的值,达到对转速精确控制的目的;根据转动方向控制位的值,控制脉冲信号循环移动的方向,达到对转动方向控制的目的。说明如下:1.单片机接受键盘信息,改变系统内部变量值。2.单片机输出脉冲信号,控制步进电机转动。3.单片机根据步进电机实际转动值,控制数码管显示。5.3程序流程图5.3.1 主程序流程图步进电机控制系统的主程序在对整个系统初始化后主要完成读键盘和处理键盘的功能,如图10所示:图10 步进电机控制系统主程序流程图系统上电复位后,先调用初

21、始化子程序,对步进电机各端口,相关参数进行初始化,设置T0工作方式控制时间常数。初始化完成后,步进电机处于停止状态,T0定时器处于关闭状态。然后循环调用读键盘子程序和键盘处理子程序,等待中断,以便实现步进电机转动控制。5.3.2读键盘子程序流程图首先初始化实际键值参数为0FH,然后扫描P2口,与初始值比较,相等则说明没有键按下,不相等则软件消抖,以便确认是否真的有键按下。延时10ms后再次扫描P2口,第二次与初始值比较,若相等则表明前一次比较不相等是由抖动产生;如果相等则表明确实有键按下。执行键盘之程序里的指令,将相应的变量值改变,为键盘处理子程序做准备。 如图11扫描键盘字程序流程图启动否是

22、否有键按下处理键盘子程序是图11 扫描键盘字程序流程图5.3.3键盘处理子程序流程图按键处理子程序流程图如图12所示:初始化变量开始P2.3是否按下P2.2是否按下P2.0是否按下P2.1是否按下退出TR0取反,通过启停T0启停步进电机取反方向控制为,改变电机转动方向修改速度参数值,减速修改速度参数值,加速 是是是是图12 键盘处理子程序流程图步进电机的启停控制通过启停定时器T0来实现,因为定时器T0控制着脉冲信号的输出,关闭定时器T0也就阻止了脉冲信号的输出。5.3.4电机控制中断程序流程图定时器中断0服务程序流程图如图13所示: 图13 定时器中断0服务程序流程图定时器中断0服务程序的中断

23、时间由当前的转速决定。进入中断程序后,首先要保护现场,再根据当前值设置TH0和TL0的值。然后判断转动方向控制位的值,如果是0则控制脉冲信号P1.0、P1.2输出,如果是1则控制脉冲信号P1.1、P1.3输出。最后恢复现场,返回,等待下次中断。通过用当前转速控制中断时间,控制了脉冲的输出频率,也就到达了控制步进电机转动速度的目的;通过检测方向控制位的电平,选择脉冲信号P1.0、P1.2与P1.1、P1.3间的切换,控制了步进电机各引出端的接通顺序,也就到实现了步进电机转动方向的控制。各模块控制的详细程序附于最后。六 仿真效果如图14仿真图图14 仿真图七 实物调试与改进 7.1调试与改进在系统

24、完成后测试系统,检查硬件和软件是否能够协调运行,并对系统出现的情况进行分析,看是否能够达到系统创作之初所设想的效果,如达不到则重新修改系统的硬件结构或者修改软件的程序部分,直到达到设计需要为止。本系统的设计思路为:首先从整体上划分出各功能模块,然后硬件和软件同时进行依次完成各个功能模块,最后将各个模块联系起来完成整个系统。在硬件调试的过程中,遇到了很多问题。主要有:1. 确定步进电机的使用方法,和控制模式。此处尤为重要,这是整个系统的基础,也是确定软件是否能控制步进电机思路的开端。2.键盘设计完成后,在多次运行过程中发现按键是否按下难以直观准确判断,在此处进行改进设计,为每一个按键接上一个发光

25、二极管,当有键按下时,相对应的发光二极管变亮,使得按键动作形象直观。并以此方法测试步进电机控制程序。3.向电源插座送入12V直流电源,测量LM7805输出脚对地电压,是否为5V左右,这个电压的测量可以直接在L7805的OUT脚和GND之间完成。4. 单片机应用(电源)注意事项:在电源两端应该加一个47uF以上的电解电容和一个0.1uF的小电容,进行电源去藕滤波。5.可供霍尔片检测到的信号注意是S磁极。软件测试的时候也有些问题,主要有:1.软件去抖方式,和时间的控制。2.控制步进电机转动的程序段完成后,调试发现对步进电机速度的控制范围过小,查阅资料后发现设计思路不太合理,原先的设计思路是用主程序

26、控制步进电机转动,采用延时方式控制步进电机速度,由定时器处理键盘;改进程序,主程序用来处理键盘,由定时器控制步进电机转动,步进电机转动速度由定时器定时时间决定。问题得到解决,不仅扩大了步进电机速度的控制范围,也使得单片机对步进电机速度的控制更加精确。八 设计总结在老师耐心细致的指导下,经过近一个星期的努力,本次课程设计课题步进电机控制系统终于完成。步进电机控制系统主要分为硬件设计和软件设计两个部分。硬件设计主要是把单片机最小系统、键盘控制模块、步进电机驱动模块、数码显示模块、测速模块各个硬件功能模块及其它元件合理搭配并连接起来使其能够为软件运行提供一个硬件平台。软件设计主要是通过编写程序代码,

27、实现对整个系统的控制。在系统上电复位后程序自动运行,通过接受外部的键盘操作修改系统参数值,控制步进电机的启停,以及转速的增减和转动方向的改变;定时器T0根据系统参数控制步进电机的转动;实现步进电机转动速度的动态显示。本系统具有相当的实用功能,两片单片机分别实现步进电机控制和测速,能基本符合实际应用需求,本次设计由于设计时间较短,个人能力以及精力等因素的限制,加之设计经验的不足,该系统还有许多不尽如人意的地方。该系统未能完全的实现设计的所有功能。如:利用键盘输入转速值实现转速的控制,动态设置最低转速和最高转速等。在把理论设计转换成实物的整个过程,如:电路设计、分析计算、画电路图、焊接电路、检查调

28、试、软件流程控制设计分析、编写调试软件、烧写软件到整个软硬件系统的调试,最后直到系统完成。其中整个系统的前期准备是首先必须做到位的,如控制什么、用什么控制、得到什么结果,进而对各部分应选择具体的芯片作进一步的考虑,以使系统得到最优的表现。通过本次课程设计,一方面我在查阅资料的基础上,了解STC10F04单片机控制的一些基本技术,掌握其控制系统的分析方法与实现方法,能对单片机外围电路设计进行系统学习与掌握;另一方面,在设计步进电机控制系统的硬件电路,控制程序和相应的电路图时,应充分运用所学知识,善于思考,认真分析。理论联系实际是我们学习的必不可少的关键步骤,因此,这次课程设计对我们学习起到很好的

29、促进作用。参考文献1 张俊谟编著.单片机中级教程-原理与应用(第二版).北京航空航天大学出版社,2008 2 曹巧媛主编.单片机原理及应用(第二版).电子工业出版社,2001 3 高钟编著.机电控制工程 (第二版).清华大学出版社,20024 高海涛,常吉连,李素萍写.步进电机的升降频设计.机床电器.洛阳轴承集团公司,20005 伍云辉编著.单片机应用技术.电子科技大学出版社,1999 6 陆子明,徐长根编著.单片机设计与应用基础教程.国防工业出版社,19997 张蔚兮,王颖编著.微型计算机(MCS-51系列)原理、接口及应用. 南京大学出版社,1999 8 张凯,马忠梅等.MCS-51单片机

30、综合系统及其设计开发 .科学出版社,2007 9 南建辉,王军茹.MCS-51单片机原理及应用实例编著.清华大学出版社.,200410 王季秩,曲家骐编著.执行电动机 .机械工业出版社,2000 11 李勋,李刚明.单片微型计算机大学读本.北京航空航天大学出版社,2009 12 吴微,文军.单片机原理及制作 .武汉大学出版社,201013 苏彦民编.电力拖动系统的微型计算机控制.西安交通大学出版社,201114 赖福新.电机控制系统.上海交通大学出版社,1995 15 陈伯时主编.电力拖动自动控制系统第二版.机械工业出版社,1992 16 温希东,路勇. 计算机控制技术.西安电子科技大学出版社

31、,2005 17 曹天汉.单片机原理与接口技术.电子工业出版社,2006 18 曹承志.电机拖动与控制.机械工业出版社,2000 附录程序源代码#include <reg52.h>#define uchar unsigned char /无符号字符型 宏定义变量范围0255#define uint unsigned int /无符号整型 宏定义变量范围065535unsigned char code zheng4=0x08,0x04,0x02,0x01;/正转表格unsigned char code fan4=0x01,0x02,0x04,0x08;/反转表格uchar flag_

32、start ; /启动标志位 1为起动步进电机 否则关闭电机uchar flag_z_f; /正反标志位 0为顺时钟 1为逆时史上转uchar flag_shudu; /4种速度 0,1,2,3,uint flag_shudu_value = 400;void Delay(unsigned int i)/延时 while(-i);/*1ms延时函数*/void delay_1ms(uint z) uint x,y; for(x=z;x>0;x-) for(y=120;y>0;y-); uchar key_can;/*独立按键程序*/void key()static uchar key_new;key_can = 20;if(P3 & 0xf0) != 0xf0)Delay(5);if(P3 & 0xf0) !=

温馨提示

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

评论

0/150

提交评论