中断系统与实验验证_第1页
中断系统与实验验证_第2页
中断系统与实验验证_第3页
中断系统与实验验证_第4页
中断系统与实验验证_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

10:51:19浙江师范大学1一)80C51中断系统CPU暂时中止正在执行的程序,去执行请求的那个外设或事件的服务程序,等处理完毕后再返回执行原来的程序,叫做中断。⒉为什么要设置中断?⑴提高CPU工作效率⑵具有实时处理功能⑶具有故障处理功能⑷实现分时操作⒈什么叫中断?中断功能强弱是计算机性能优劣的重要标志10:51:19浙江师范大学2执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回10:51:19浙江师范大学3中断涉及的几个环节①中断源②中断申请③开放中断④保护现场⑤中断服务⑥恢复现场⑦中断返回10:51:19浙江师范大学4CPU识别中断申请的依据:时间:CPU在每个机器周期的S5P2期间事件:自动查询各个中断申请标志位结果:若查到某标志位被置位,将启动中断机制10:51:19浙江师范大学5中断源和中断控制寄存器MCS-51的中断系统有5个中断源(8052有6个)3个在片内,2个在片外,2个优先级,可实现二级中断嵌套。——“五源中断,两级管理”10:51:19浙江师范大学6⑴INT0:外部中断0,中断请求信号由P3.2输入。⑵INT1:外部中断1,中断请求信号由P3.3输入。⑶T0:定时/计数器0,溢出中断,对外部脉冲计数由P3.4输入。⑷T1:定时/计数器1,溢出中断,对外部脉冲计数由P3.5输入。⑸串行中断:包括串行接收中断RI和串行发送中断TI。⒈中断源中断源是指能发出中断请求,引起中断的装置或事件。80C51单片机的中断源共有5个,其中2个为外部中断源,3个为内部中断源:10:51:19浙江师范大学7①中断请求:定时和外中断控制寄存器TCON;串行控制寄存器SCON;②中断允许控制寄存器IE;③中断优先级控制寄存器IP。

⒉中断控制寄存器

80C51涉及中断控制的有3个方面4个特殊功能寄存器:10:51:19浙江师范大学83.中断请求标志中断源如何表示自己的中断请求?每个中断源都设置一个中断请求标志。MCS-51单片机的中断标志位:安排在定时器控制寄存器TCON和串行口控制寄存器SCON中。10:51:19浙江师范大学9TCON寄存器描述TCON是一个特殊功能定时器0和定时器1的控制寄存器锁存定时器0和定时器1的溢出中断标志及外部中断的中断标志位76543210功能TF1TR1TF0TR0IE1IT1IE0IT0IT0:外部中断0的中断触发方式控制位。当IT0=0时,外部中断0被控制为电平触发方式。当IT0=1时,外部中断0被控制为边沿触发方式。

TCON(88H)10:51:19浙江师范大学10位76543210功能TF1TR1TF0TR0IE1IT1IE0IT0IE0:外部中断0的中断请求标志。当P3.2引脚信号有效时,IE0=1,外部中断0向CPU申请中断,当执行完后,由片内硬件自动清0。TCON(88H)TCON寄存器描述TCON是一个特殊功能定时器0和定时器1的控制寄存器锁存定时器0和定时器1的溢出中断标志及外部中断的中断标志10:51:19浙江师范大学11TCON寄存器描述TCON是一个特殊功能定时器0和定时器1的控制寄存器锁存定时器0和定时器1的溢出中断标志及外部中断的中断标志位76543210功能TF1TR1TF0TR0IE1IT1IE0IT0IT1:外部中断1的中断触发方式控制位。当IT1=0时,外部中断1被控制为电平触发方式。当IT1=1时,外部中断1被控制为边沿触发方式。

TCON(88H)10:51:19浙江师范大学12TCON寄存器描述TCON是一个特殊功能定时器0和定时器1的控制寄存器锁存定时器0和定时器1的溢出中断标志及外部中断的中断标志位76543210功能TF1TR1TF0TR0IE1IT1IE0IT0IE1:外部中断1的中断请求标志。当P3.3引脚信号有效时,IE1=1,外部中断1向CPU申请中断,当执行完后,由片内硬件自动清0。TCON(88H)10:51:19浙江师范大学13TCON寄存器描述TCON是一个特殊功能定时器0和定时器1的控制寄存器锁存定时器0和定时器1的溢出中断标志及外部中断的中断标志位76543210功能TF1TR1TF0TR0IE1IT1IE0IT0TCON(88H)

TF0:定时器0溢出中断标志。

T0被启动计数后,从初值做加1计数,当计满溢出后由硬件置位TF0,同时向CPU发出中断请求,此标志一直保持到CPU响应中断后才由硬件自动清0。也可以由软件查询该标志,并且由软件清0。10:51:19浙江师范大学14

TF1:定时器1溢出中断标志。

T1被启动计数后,从初值做加1计数,当计满溢出后由硬件置位TF1,同时向CPU发出中断请求,此标志一直保持到CPU响应中断后才由硬件自动清0。也可以由软件查询该标志,并且由软件清0。TCON寄存器描述TCON是一个特殊功能定时器0和定时器1的控制寄存器锁存定时器0和定时器1的溢出中断标志及外部中断的中断标志位76543210功能TF1TR1TF0TR0IE1IT1IE0IT0TCON(88H)10:51:19浙江师范大学15TCOND7D6D5D4D3D2D1D0位名称TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H功能T1

中断标志—T0中断标志—

中断标志

触发方式

中断标志触发方式TCON的结构、位名称、位地址和功能:10:51:19浙江师范大学16RI:串行接收中断标志。在串行口允许接收时,每接收完一个串行帧数据,硬件将使RI置位。同样,CPU在响应中断时不会清除RI,必须在中断服务程序中由软件清除。位76543210功能TIRI

SCON为串行口控制寄存器,其低两位TI和RI锁存串行口的发送中断标志和接收中断标志。SCON(98H)SCON寄存器描述10:51:19浙江师范大学17TI:串行发送中断标志。CPU将一个数据写入发送缓冲器SBUF时,就启动发送,每发送完一个串行帧数据后,硬件将使TI置位。但CPU响应中断时并不清除TI,必须在中断服务程序中由软件清除。位76543210功能TIRI

SCON为串行口控制寄存器,其低两位TI和RI锁存串行口的发送中断标志和接收中断标志。SCON(98H)SCON寄存器描述10:51:19浙江师范大学18串行控制寄存器SCONTCOND7D6D5D4D3D2D1D0位名称——————TIRI位地址——————99H98H功能——————串行发送中断标志串行接收中断标志10:51:19浙江师范大学194.系统对中断的管理中断源的开放和屏蔽——中断允许寄存器IE控制中断源优先级的设定——中断优先级寄存器IP控制设定方法——通过程序由软件设定寄存器状态MCS-51没有专门的开中断和关中断指令,中断的开放和关闭是通过中断允许寄存器IE控制。10:51:19浙江师范大学2010:51:19浙江师范大学21EA:总中断允许控制位。EA=1,开放所有中断,各中断源的允许和禁止可通过相应的中断允许位单独加以控制;EA=0,禁止所有中断。IE寄存器描述中断允许寄存器IE对中断的开放和关闭实行两级控制。所谓两级控制是指有一个中断允许总控制位EA,与各中断源的中断允许控制位共同对中断请求的控制。位76543210功能EAESET1EX1ET0EX0IE(A8H)10:51:19浙江师范大学22EX0:外部中断0中断允许位。

EX0=1,允许外部中断0中断;

EX0=0,禁止外部中断0中断。IE寄存器描述中断允许寄存器IE对中断的开放和关闭实行两级控制。所谓两级控制是指有一个中断允许总控制位EA,与各中断源的中断允许控制位共同对中断请求的控制。位76543210功能EAESET1EX1ET0EX0IE(A8H)10:51:19浙江师范大学23ET0:定时器/计数器T0中断允许位。ET0=1,允许定时器0中断;ET0=0,禁止定时器0中断。IE寄存器描述中断允许寄存器IE对中断的开放和关闭实行两级控制。所谓两级控制是指有一个中断允许总控制位EA,与各中断源的中断允许控制位共同对中断请求的控制。位76543210功能EAESET1EX1ET0EX0IE(A8H)10:51:19浙江师范大学24EX1:外部中断1中断允许位。EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。IE寄存器描述中断允许寄存器IE对中断的开放和关闭实行两级控制。所谓两级控制是指有一个中断允许总控制位EA,与各中断源的中断允许控制位共同对中断请求的控制。位76543210功能EAESET1EX1ET0EX0IE(A8H)10:51:19浙江师范大学25ET1:定时器/计数器T1中断允许位。ET1=1,允许定时器T1中断;ET1=0,禁止定时器T1中断。IE寄存器描述中断允许寄存器IE对中断的开放和关闭实行两级控制。所谓两级控制是指有一个中断允许总控制位EA,与各中断源的中断允许控制位共同对中断请求的控制。位76543210功能EAESET1EX1ET0EX0IE(A8H)10:51:19浙江师范大学26ES:串行口中断(包括串行发、串行收)允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。IE寄存器描述中断允许寄存器IE对中断的开放和关闭实行两级控制。所谓两级控制是指有一个中断允许总控制位EA,与各中断源的中断允许控制位共同对中断请求的控制。位76543210功能EAESET1EX1ET0EX0IE(A8H)10:51:19浙江师范大学27IE的结构、位名称和位地址:IED7D6D5D4D3D2D1D0位名称EA——ESET1EX1ET0EX0位地址AFH——ACHABHAAHA9HA8H中断源CPU——串行口T1T010:51:19浙江师范大学28例5-1:假设允许外部中断0和外部中断1中断,禁止其它中断源的中断申请。试根据假设条件设置IE的相应值。(1)用位操作指令来编写如下程序段:

CLRES;禁止串行口中断

CLRET0;禁止定时器/计数器T0中断

CLRET1;禁止定时器/计数器T1中断

SETBEX0;允许外部中断0中断

SETBEX1;允许外部中断1中断

SETBEA;CPU开中断(2)用字节操作指令来编写:

MOVIE,#85H10:51:19浙江师范大学29问题:一个中断源,它的中断一经被中断允许控制寄存器开放,它的中断请求可能要得到CPU的响应,但未必立即得到响应。为什么?经常会有这样一种情况:在某一时刻有多个中断源同时请求中断,而且这些中断源的中断均已被中断允许控制寄存器开放这些中断都有资格得到CPU的响应,然而,CPU在任何时候只能响应一个中断源的中断请求结论:其中一个中断请求有可能被响应之外,其它中断暂时都不能被响应中断优先级的设置10:51:19浙江师范大学30根据各中断源的中断响应优先级来确定用户可以对每一个中断源设定它的中断响应优先级。中断响应优先级分高级和低级当某一时刻,有几个中断源同时请求中断,且它们的中断均已被中断允许控制寄存器开放时,首先得到响应的自然是被设定成高级的中断源每个中断源的中断响应优先级,是用户在中断响应优先级控制寄存器(IP)中人为设定的问题:有可能被响应的一个中断请求是如何确定的呢?10:51:19浙江师范大学31问题:在CPU执行某个中断请求的过程中,若又有一个优先级比正在处理的中断请求优先级高的请求时,会怎样?在允许情况下,CPU应能中止正在处理的中断转去处理优先级高的中断请求,处理后再返回级别较低的中断断点——中断嵌套MCS-51单片机的中断只允许两级嵌套——CPU在执行程序主程序时,响应了某一个低级中断源的中断请求(一级嵌套),在执行低级中断服务程序时,可以响应另一个高级中断源的中断请求(二级嵌套),去执行高级中断服务程序。中断嵌套10:51:19浙江师范大学32中断嵌套的中断过程可见:一个正在执行的低优先级中断程序能被高优先级的中断源所中断,但不能被另一个低优先级的中断源所中断。若CPU正在执行高优先级的中断,则不能被任何中断源所中断,一直执行到结束,遇到中断返回指令RETI,返回主程序后再执行一条指令后才能响应新的中断请求。10:51:19浙江师范大学33归纳中断的两条基本规则:(1)低优先级可被高优先级中断,反之则不能。(2)任何一种中断(不管是高级还是低级),一旦得到响应,不会再被它的同级中断源所中断。如果某一中断源被设置为高优先级中断,在执行该中断源的中断服务程序时,则不能被任何其他的中断源所中断。

PS:串行口中断优先级控制位。PS=1,设定串行口为高优先级中断;PS=0,设定串行口为低优先级中断。PX0:外部中断0中断优先级控制位。PX0=1,设定外部中断0为高优先级中断;PX0=0,设定外部中断0为低优先级中断。10:51:19浙江师范大学34IP寄存器描述MCS-51单片机片内的专用寄存器IP为中断优先级寄存器,锁存各中断源优先级控制位。IP中的每一位均可由软件来置1或清0,置1表示高优先级,清0表示低优先级。PT0:定时器T0中断优先级控制位。PT0=1,设定定时器T0中断为高优先级中断;PT0=0,设定定时器T0中断为低优先级中断。位76543210功能PSPT1PX1PT0PX0PT1:定时器T1中断优先级控制位。PT1=1,设定定时器T1中断为高优先级中断;PT1=0,设定定时器T1中断为低优先级中断。IP(B8H)PX1:外部中断1中断优先级控制位。PX1=1,设定外部中断1为高优先级中断;PX1=0,设定外部中断1为低优先级中断。10:51:19浙江师范大学35当系统复位后,IP低5位全部清0,所有中断源均设定为低优先级中断。如果几个同一优先级的中断源同时向CPU申请中断,CPU通过内部硬件查询逻辑,按自然优先级顺序确定先响应哪个中断请求。自然优先级由硬件形成,如表:中断源同级自然优先级外部中断0定时器T0中断外部中断1定时器T1中断串行口中断最高级

最低级10:51:19浙江师范大学36例:设置IP寄存器的初始值,使得MCS-51的2个片内定时器/计数器为高优先级,其他中断为低优先级。(1)用位操作指令来编写如下程序段:CLR PX0;2个外部中断、串行口为低优先级CLR PX1CLR PSSETBPT0;2个片内定时器/计数器为高优先级SETBPT1(2)用字节操作指令MOVIP,#0AH10:51:19浙江师范大学37中断处理过程可分为:中断请求、中断响应、中断服务和中断返回。中断请求与响应中断条件在单片机执行某一程序过程中,若发现有中断请求(相应中断请求标志位为1),CPU将根据具体情况决定是否响应中断,这主要由中断允许寄存器来控制:(1)中断总允许位EA=1(2)申请中断的中断源允许5.中断的响应过程10:51:19浙江师范大学38如果有下列任何一种情况存在,那么中断响应会受到阻断。(1)CPU正在响应同级或高优先级的中断。(2)当前指令未执行完。(3)正在执行RETI中断返回指令或访问专用寄存器IE和IP的指令。10:51:19浙江师范大学39中断响应过程包括保护断点和将程序转向中断服务程序的入口地址。

中断系统通过硬件自动生成长调用指令(LACLL),该指令将自动把断点地址压入堆栈保护(不保护累加器A、状态寄存器PSW和其它寄存器的内容)将对应的中断入口地址装入程序计数器PC(由硬件自动执行),使程序转向中断入口地址,执行中断服务程序中断响应10:51:19浙江师范大学40MCS-51系列单片机各中断源的入口地址由硬件事先设定,分配:中断源入口地址外部中断00003H定时器T0中断000BH外部中断10013H定时器T1中断001BH串行口中断0023H10:51:19浙江师范大学41中断服务中断服务程序从中断入口地址开始执行,到返回指令“RETI”为止。

一般包括两部分内容:保护现场完成中断源请求的服务

10:51:19浙江师范大学42通常,主程序和中断服务程序都会用到累加器A、状态寄存器PSW及其它一些寄存器当CPU进入中断服务程序用到上述寄存器时,会破坏原来存储在寄存器中的内容,一旦中断返回,将会导致主程序的混乱结论:在进入中断服务程序后,一定要先保护现场,然后,执行中断处理程序,在中断返回之前再恢复现场。10:51:19浙江师范大学43中断返回中断返回通常是指中断服务完成以后,返回原来断开的位置(即断点),继续执行原来的程序。中断返回由中断返回指令RETI来实现。RETI指令的功能:把断点地址从堆栈中弹出送回到程序计数器PC通知中断系统已完成中断处理清除优先级状态触发器。特别要注意不能用“RET”指令代替“RETI”指令。10:51:19浙江师范大学44中断系统应用的主要问题是应用程序的编制,编写应用程序大致包括两大部分:中断初始化和中断服务程序。5中断程序的编程1.中断初始化(1)设置堆栈指针SP。通常可设置SP=60H或50H(2)定义中断优先级。用“MOVIP,#XXH”或“SETBXX”指令(3)定义外部中断触发方式。在一般情况下,最好定义为边沿触发方式(4)开放中断。要同时置位EA和需要开放中断的中断允许控制位。可以用“MOVIE,#XXH”指令设置,或者也可以用“SETBEA”和“SETBXX”位操作指令设置10:51:19浙江师范大学452.中断服务子程序(1)中断服务入口地址设置一条跳转指令,转移到中断服务程序的实际入口地址。最好用LJMP指令,这样,中断服务程序不受限制的安排在64KB任何的地方。(2)根据所需来保护现场。它是保护ACC,PSW和DPTR等特殊功能寄存器的内容。(3)需要注意的是:保护现场数据越少越好,数据保护越多,堆栈负担越重,堆栈深度越深。10:51:19浙江师范大学46(4)中断源请求中断服务要求的运行,这是中断服务程序的主体。(5)如果是外中断电平触发方式,应有中断信号撤除操作。如果是串行中断,应有对RI、TI清0指令。(6)中断源恢复现场。与保护现场相对应,注意先进后出,后进先出的操作顺序。(7)在中断返回时,最后一条指令必须是RETI。10:51:19浙江师范大学47硬件电路如图所示。当外部设备有中断请求时,中断请求信号经反相,加到锁存器CP端,作为CP脉冲。由于D端接地为0,Q端输出低点平,触发

INT0生中断。响应中断后,应在该中断服务程序中按排两条指令:

CLRP1.0:

SETBP1.0

从而撤消引起重复中断的INT0低电平信号。

因此一般来说,对外中断INT0、INTl,应尽量采用边沿触发方式,以简化硬件电路和软件程序。

例:10:51:19浙江师范大学48例:若规定外部中断0为电平触发方式,高优先级,试写出有关的初始化程序。一般可采用位操作指令来实现:

SETBEA ;开中断

SETBEX0 ;允许外中断0中断

SETBPX0 ;外中断0定为高优先CLRIT0 ;电平触发10:51:19浙江师范大学49例:若规定外部中断1为边沿触发方式,低优先级,在中断服务程序中将寄存器B的内容左循环移一位,B的初值设为01H。试编写主程序与中断服务程序。

ORG 0000H ;主程序

LJMP MAIN ;主程序转至MAIN处

ORG 0013H ;中断服务程序

LJMP INT ;中断服务程序转至INT处

ORG0040HMAIN:

SETB EA ;开中断

SETB EX1 ;允许外中断1中断

CLR PX1 ;设为低优先级

SETB IT1 ;边沿触发

MOV B,#01H ;设B的初值HALT:

SJMP HALT ;暂停等待中断INT:

MOV A,B ;A←BRL A ;左循环移一位 MOV B,A ;回送

RETI ;中断返回

END10:51:19浙江师范大学50例:8051与开关及LED发光二极管的接口电路如图所示,其中,P1.7~P1.4作并行输出口,分别与LED3~LED0连接。P1.3~P1.0作并行输入口,分别接开关K3~K0脚接一个负脉冲产生电路。

要求:当外部设备K3~K0设置的开关量准备好后,按下单脉冲发生键K5,向8051的INT0脚输入一个负脉冲,外部设备就向8051的CPU发出一次中断请求。外部设备每请求中断一次,就完成一个读写过程,读入P1.3~P1.0引脚上的开关K3~K0的预置状态,再经P1.7~P1.4输出驱动LED3~LED0发光二极管,使发光二极管显示开关状态。10:51:19浙江师范大学51&&K51K1K+5V74LS008051VCCP1.6L274074.7KP1.7L374074.7KP1.5L174074.7KP1.4L074074.7KP1.3K31KP1.2K21KP1.1K11KP1.0K01KINT010:51:19浙江师范大学52 ORG 0000H AJMP MAIN ;上电自动转向主程序

ORG 0003H ;外部中断0入口地址 AJMP INT_0 ;转向中断服务子程序 ORG 0100H ;主程序首地址MAIN:SETB EA ;CPU开中断 SETB EX0 ;开

中断

SETB IT0 ;令

边沿触发

AJMP $ ;等待中断 ORG 0200HINT_0:MOV A,#0FFH MOV P1,A ;设输入状态 MOV A,P1 ;取出开关状态 SWAP A ;将低4位输入的数据转到高4位 MOV P1,A ;输出驱动灯泡发光

RETI ;中断返回 END10:51:19浙江师范大学536中断系统应用系统实践【例1】出租车计价器计程方法是车轮每运转一圈产生一个负脉冲,从外中断INT0(P3.2)引脚输入,行驶里程为轮胎周长×运转圈数,设轮胎周长为2m,试实时计算出租车行驶里程(单位米),数据存32H、31H、30H。

解:编程如下:

ORG 0000H ;复位地址

LJMP STAT ;转初始化

ORG 0003H ;中断入口地址

LJMP INT ;转中断服务程序10:51:19浙江师范大学54MAIN主程序可以处理循环显示等任务。ORG0100H ;初始化程序首地址STAT:MOVSP,#60H ;置堆栈指针

SETBIT0 ;置边沿触发方式

MOVIP,#01H ;置高优先级

MOVIE,#81H ;开中

MOV30H,#0 ;里程计数器清0MOV31H,#0 ;MOV32H,#0 ;LJMP$ ;转主程序,并等待中断

10:51:19浙江师范大学55ORG0200H ;中断服务子程序首地址INT:PUSHAcc ;保护现场

PUSHPSW ; MOVA,30H ;读低8位计数器

ADDA,#2 ;低8位计数器加2m MOV30H,A ;回存

CLRA ; ADDCA,31H ;中8位计数器加进位

MOV31H,A ;回存

CLRA ; ADDCA,32H ;高8位计数器加进位

MOV32H,A ;回存

PUSHPSW ;恢复现场

PUSHAcc ; RETI ;中断返回10:51:19浙江师范大学56【例2】现有5个外中断源EX1、EX20、EX21、EX22和EX23,高电平时表示请求中断,要求执行相应中断服务程序,试编制程序。

解:ORG 0000H ;复位地址LJMP MAIN

;转主程序ORG 0003H ;中断入口地址LJMP PINT0

;转中断服务程序ORG 0013H ;中断入口地址LJMP PINT1

;转中断服务程序10:51:19浙江师范大学57

ORG 0100H

;主程序首地址MAIN:MOV SP,#60H ;置堆栈指针

ORL TCON,#05H ;置INT0、INT1为边沿触发方式

SETB PX0 ;置为高优先级

MOV IE,#0FFH ;全部开中

… ;主程序内容

ORG1000H

;中断服务程序首地址

PINT0:PUSH Acc ;中断,保护现场

LCALLWORK1 ;调用EX1服务子程序

POP Acc ;恢复现场

RETI ;中断返回10:51:19浙江师范大学58ORG 2000H

;中断服务程序首地址PINT1:CLR EA ;CPU禁中

PUSH Acc ;中断保护现场

P

温馨提示

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

评论

0/150

提交评论