单片机原理及应用系统设计第6章--中断系统课件_第1页
单片机原理及应用系统设计第6章--中断系统课件_第2页
单片机原理及应用系统设计第6章--中断系统课件_第3页
单片机原理及应用系统设计第6章--中断系统课件_第4页
单片机原理及应用系统设计第6章--中断系统课件_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

1、第6章 中断系统单片机原理及应用系统设计主要内容1324中断的基本概念单片机中断请求中断响应中断服务与中断返回5中断服务函数6单片机中断应用举例6.1 中断的基本概念6.1.1 中断的概念中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU 暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。一个完整的中断过程包括中断请求、中断响应、中断服务及中断返回4个步骤,如图6-1所示。打个比方,当一位经理正在处理文件时,电话铃响了(中断请求),不得不在文件上做一

2、个记号(断点地址,即返回地址),暂停工作,去接电话(响应中断),并处理电话请求(中断服务),然后,再静下心来(恢复中断前状态),接着处理文件(中断返回)。中断响应过程示意图6.1.2 中断源引起CPU中断的根源或原因,称为中断源。中断源向CPU提出的处理请求,称为中断请求或中断申请。IAP15W4K58S4系列单片机提供了21个中断请求源,它们分别是:外部中断0(INT0)、定时器0中断、外部中断1(INT1)、定时器1中断、串口1中断、A/D转换中断、低压检测(LVD)中断、CCP/PWM/PCA中断、串口2中断、SPI中断、外部中断2(/INT2)、外部中断3(/INT3)、定时器2中断、

3、外部中断4(/INT4)、串口3中断、串口4中断、定时器3中断、定时器4中断、比较器 中断、PWM中断及PWM异常检测中断。 除外部中断2(/INT2)、外部中断3(/INT3)、定时器T2 中断、外部中断4(/INT4)、串口3中断、串口4中断、定时器3中断、定时器4中断及比较器中断固定是最低优先级中断外,其它的中断都具有2个中断优先级,可实现2级中断服务程序嵌套。IAP15W4K58S4 中断结构图6.1.3 中断优先级当有多个中断源同时向CPU提出中断请求时,就存在CPU先响应哪个中断请求、后响应哪个中断请求的问题。为此,CPU要对每个中断源事先确定一个优先级别,称为中断优先级。当多个中

4、断源同时提出中断请求时CPU先响应优先级高的中断请求,之后再响应低优先级的中断请求。图6-3 中断嵌套6.2 单片机中断请求6.2.1 中断请求标志1. TCON中的中断标志位TCON是定时器/计数器T0和T1的控制寄存器,锁存了T0、T1的溢出中断标志位及外部中断0和外部中断1的中断标志位,地址为88H,复位值为00H。 特殊功能寄存器TCON中的各位分布如表6-1所示:位号B7B6B5B4B3B2B1B0位名称TF1TR1TF0TR0IE1IT1IE0IT0TCON寄存器中和中断请求及控制相关的位主要有:TF1:T1溢出中断标志。T1被允许计数以后,从初值开始加1计数。当产生溢出时由硬件自

5、动使TF1置“1”,向CPU请求中断,一直保持到CPU响应中断时,才由硬件清“0”(也可由查询软件清“0”)。TR1:定时器1的运行控制位。TF0:T0溢出中断标志。T0被允许计数以后,从初值开始加1计数,当产生溢出时,由硬件自动使TF0置“1”,向CPU请求中断,一直保持CPU响应该中断时,才由硬件清0(也可由查询 软件清0)。TR0:定时器0的运行控制位。TCON寄存器中和中断请求及控制相关的位主要有:IE1:外部中断1 (INT1/P3.3)中断请求标志。IE1=1,外部中断向CPU请求中断,当CPU响应该中断时由硬件对IE1清“0”。IT1:外部中断1中断源类型选择位。IT1=0,IN

6、T1/P3.3引脚上的上升沿或下降沿信号均可触发外部中断1。IT1=1,外部中断1为下降沿触发方式。 IE0:外部中断0 (INT0/P3.2)中断请求标志。IE0=1,外部中断0向CPU请求中断,当CPU响应外部中断时,由硬件对IE0清“0”。IT0:外部中断0中断源类型选择位。IT0=0,INT0/P3.2引脚上的上升沿或下降沿均可触发外部中断0。IT0=1,外部中断0为下降沿触发方式。2SCON中的中断标志位SCON是串行口1控制寄存器,锁存了串行口1的发送、接收中断标志位TI和RI。地址为98H,复位值为00H。特殊功能寄存器SCON中各位分布如表6-2所示:位号B7B6B5B4B3B

7、2B1B0位名称SM0/FESM1SM2RENTB8RB8TIRITI:串行口1发送中断标志。串行口1以方式0发送时,每当发送完8位数据,由硬件置1;若以方式1、方式2或方式3发送时,在发送停止位的开始时置TI=1表示串行口1正在向CPU 申请中断(发送中断)。值得注意的是,CPU响应发送中断请求,转向执行中断服务程序 时并不将TI清零,TI必须由用户在中断服务程序中清零。RI:串行口 1接收中断标志若串行口1允许接收且以方式0工作,则每当接收到第8位数据时置1;若以方式1、2、3工作且SM2=0时,则每当接收到停止位的中间时置1;当串行口以方式2或方式3工作且SM2=1时,则仅当接收到的第9

8、位数据RB8为1后,同时还要接收到停止位的中间时置RI为1表示串行口1正向CPU申请中断(接收中断),RI必须由用户的中断服务程序清零。3ADC_CONTR中的中断标志位ADC_CONTR是ADC控制寄存器,锁存了A/D转换结束中断标志ADC_FLAG。地址为BCH,复位值为00H。特殊功能寄存器ADC_CONTR中的各位分布如表6-6所示:位号B7B6B5B4B3B2B1B0位名称ADC_POWERSPEED1SPEED0ADC_FLAGADC_STARTCHS2CHS1CHS0ADC_CONTR中的中断标志位ADC_POWER:ADC电源控制位。当ADC_POWER=0时,关闭ADC电源;

9、当ADC_PWOER=1时,打开ADC电源。ADC_FLAG: ADC转换结束标志位,可用于请求A/D转换的中断。当A/D转换完成后,ADC_FLAG=1,要用软件清0。不管是A/D转换完成后由该位申请产生中断,还是由软件查询该标志位A/D转换是否结束,当A/D转换完成后,ADC_FLAG=1,一定要软件清0。【重点】ADC_START:ADC转换启动控制位,设置为“1”时,开始转换,转换结束后为0。A/D转换控制寄存器ADC_CONTR中的其他位与中断无关,在此不作介绍。4PCON中的中断标志位PCON是电源控制寄存器,锁存了低电压检测中断标志位LVDF。地址为87H,复位值为00H。特殊功

10、能寄存器PCON中各位分布如表6-7所示:位号B7B6B5B4B3B2B1B0位名称SMODSMOD0LVDFPOFGF1GF0PDIDLPCON中的中断标志位LVDF:低压检测标志位,同时也是低压检测中断请求标志位。在正常工作和空闲工作状态时,如果内部工作电压Vcc低于低压检测门槛电压,该位自动置1,与低压检测中断是否被允许无关。即在内部工作电压Vcc低于低压检测门槛电压时,不管有没有允许低压检测中断,该位都自动为1。该位要用软件清0,清0后如内部工作电压Vcc继续低于低压检测门槛电压,该位又被自动设置为1。在进入掉电工作状态前,如果低压检测电路未被允许可产生中断,则在进入掉电模式 后,该低

11、压检测电路不工作以降低功耗。如果被允许可产生低压检测中断,则在进入掉电模式后,该低压检测电路继续工作,在内部工作电压Vcc低于低压检测门槛电压后,产生低压检测中断,可将MCU从掉电状态唤醒。电源控制寄存器PCON中的其他位与低压检测中断无关,在此不作介绍5CCON中的中断标志位CCON是PCA控制寄存器,锁存了PCA计数器溢出中断标志位CF及CCF2、CCF1、CCF0。地址为D8H.,复位值为00H。特殊功能寄存器CCON中各位分布如表6-8所示:位号B7B6B5B4B3B2B1B0位名称CFCR-CCF2CCF1CCF0CCON中的中断标志位CF:PCA计数器溢出标志位。当PCA计数溢出时

12、,由硬件将CF置1,并向CPU发出中断请求。CPU响应该中断后不能通过硬件将CF位清0,用户必须通过软件将该位清零。CCF2/CCF1/CCF0:PCA各模块的中断标志位。其中CCF2对应模块2,CCF1对应模块1,CCF0对应模块0。当出现匹配或捕获时由硬件将对应标志位置1,并向CPU发出中断请求。CPU响应该中断后不能通过硬件将CCF2/CCF1/CCF0位清0,用户必须通过软件将该位清0。在中断服务程序中,通过判断各标志位以确定是哪个模块产生了中断。6SPSTAT中的中断标志位SPSTAT是SPI状态寄存器,锁存了SPI传输完成中断标志位SPIF。地址为CDH,复位值为00H。特殊功能寄

13、存器SPSTAT中各位分布如表6-9:位号B7B6B5B4B3B2B1B0复位值SPIFWOOL- SPSTAT中的中断标志位SPIF为SPI传输完成的中断标志位。当一次SPI传输完成时,由硬件将SPIF位置1,并向CPU发出中断请求。CPU响应该中断后不能通过硬件将SPIF位清零,用户必须通过软件向该位写1而清零。【重要】外部中断2、外部中断3及外部中断4只能在下降沿触发,且这几个中断标志位对用户可不见。当对应的中断响应后或在EXn=0(n=2、3、4)时,这些中断请求标志位会自动被清零。定时器T2的中断请求标志位对用户也是可不见的。当T2的中断被响应后或ET2=0时,该中断标志位会自动被清

14、零。6.2.2 中断允许的控制1. 中断允许寄存器IE地址A8H,可位寻址,复值为00H。如表6-10所示:位号B7B6B5B4B3B2B1B0位名称EAELVDEADCESET1EX1ET0EX0 中断允许寄存器IEEA:CPU的总中断允许控制位,EA=1,CPU开放中断,EA=0,CPU屏蔽所有的中断申请。EA的作用是使中断允许形成多级控制。即各中断源首先受EA控制;其次还受各中断源自己的中断允许控制位控制。ELVD:低压检测中断允许位,ELVD=1,允许低压检测中断,ELVD=0,禁止低压检测中断。EADC:A/D转换中断允许位,EADC=1,允许A/D转换中断,EADC=0,禁止A/D

15、转换中断。ES:串行口1中断允许位,ES=1,允许串行口1中断,ES=0,禁止串行口1中断。 中断允许寄存器IEET1:定时/计数器T1的溢出中断允许位,ET1=1,允许T1中断,ET1=0,禁止T1中断。EX1:外部中断1中断允许位,EX1=1,允许外部中断1中断,EX1=0,禁止外部中断1中断。ET0 :T0的溢出中断允许位,ET0=1允许T0中断,ET0=0禁止T0中断。EX0 :外部中断0中断允许位,EX0=1允许中断,EX0=0禁止中断。2. 外部中断允许和时钟输出寄存器INT_CLKO(AUXR2)地址为8FH,复位值为00H。如表6-12所示:位号B7B6B5B4B3B2B1B0

16、位名称-EX4EX3EX2MCKO_S2T2CLKOT1CLKOT0CLKO 外部中断允许和时钟输出寄存器INT_CLKO(AUXR2)EX4:外部中断4()中断允许位,EX4=1允许中断,EX4=0禁止中断。外部中断4()只能下降沿触发。EX3:外部中断3()中断允许位,EX3=1允许中断,EX3=0禁止中断。外部中断3()也只能下降沿触发。EX2:外部中断2()中断允许位,EX2=1允许中断,EX2=0禁止中断。外部中断2()同样只能下降沿触发。MCKO_S2,T2CLKO,T1CLKO,T0CLKO与中断无关,在此不作介绍。IAP15W4K58S4单片机系统复位后,所有中断源的中断允许控

17、制位以及CPU中断控制位(EA)均被清零,即禁止所有中断。一个中断要处于允许状态,必须满足两个条件:一是总中断(CPU中断)允许位EA为1,二是该中断允许位为1。3. 中断优先级控制寄存器IP地址为B8H,可位寻址,复位值为00H。其格式如表6-13所示:位号B7B6B5B4B3B2B1B0位名称PPCAPLVDPADCPSPT1PX1PT0PX0 中断优先级控制寄存器IPPPCA:PCA中断优先级控制位。当PPCA=0时,PCA中断为最低优先级中断(优先级0);当PPCA=1时,PCA中断为最高优先级中断(优先级1)。PLVD:低压检测中断优先级控制位。当PLVD=0时,低压检测中断为最低优

18、先级中断(优先级0);当PLVD=1时,低压检测中断为最高优先级中断(优先级1)。PADC:A/D转换中断优先级控制位。当PADC=0时,A/D转换中断为最低优先级中断(优先级0);当PADC=1时,A/D转换中断为最高优先级中断(优先级1)。PS:串口 1中断优先级控制位。当PS=0时,串口 1中断为最低优先级中断(优先级0);当PS=1时,串口 1中断为最高优先级中断(优先级1)。 中断优先级控制寄存器IPPT1:定时器1中断优先级控制位。当PT1=0时,定时器1中断为最低优先级中断(优先级0);当PT1=1时,定时器1中断为最高优先级中断(优先级1)。PX1:外部中断1优先级控制位。当P

19、X1=0时,外部中断1为最低优先级中断(优先级0);当PX1=1时,外部中断1为最高优先级中断(优先级1)。PT0:定时器0中断优先级控制位。当PT0=0时,定时器0中断为最低优先级中断(优先级0);当PT0=1时,定时器0中断为最高优先级中断(优先级1)。PX0:外部中断0优先级控制位。当PX0=0时,外部中断0为最低优先级中断(优先级0);当PX0=1时,外部中断0为最高优先级中断(优先级1)。6.3 中断响应6.3.1 中断响应时间在中断允许的条件下,中断源发出中断请求后,CPU肯定会响应中断,但若有下列任何一种情况存在,中断响应会受到阻断,会不同程度地增加CPU响应中断的时间。(1)C

20、PU正在执行同级或高级优先级的中断(2)正在执行RETI中断返回指令或访问与中断有关的寄存器指令,如访问IE和IP的指令。(3)当前指令未执行完。 若存在上述任何一种情况,中断查询结果即被取消,CPU不响应中断请求,而在下一指令周期继续查询;若条件满足,CPU在下一指令周期响应中断。 在每个指令周期的最后时刻,CPU对各中断源采样,并设置相应的中断标志位;CPU在下一个指令周期的最后时刻按优先级顺序查询各中断标志,如查到某个中断标志为“1”,将在下一个指令周期按优先级的高低顺序进行处理。6.3.2 中断响应过程中断响应过程包括保护断点和将程序转向中断服务程序的入口地址。CPU响应中断时,将相应

21、的优先级状态触发器置“1”,然后由硬件自动产生一个长调用指令LCALL。此指令首先把断点地址压入堆栈保护,再将中断服务程序的入口地址送到程序计数器PC,使程序转向相应的中断服务程序。IAP15W4K58S4单片机各个中断源中断响应的入口地址由硬件事先设定,如表6-16所示:其中,中断号是在C语言程序中编写中断函数使用的。在中断函数中,中断号与各中断源是一一对应的,不能混淆。6.3.3 中断请求标志的撤销问题CPU响应中断请求后即进入中断服务程序。在中断返回前,应撤除该中断请求;否则,会重复引起中断而导致错误。IAP15W4K58S4单片机各中断源中断请求撤除的方法不尽相同,如下所示:(1)定时

22、器中断请求的撤除:对于定时器/计数器T0或T1溢出中断,CPU在响应中断后,即由硬件自动清除其中标志位TF0或TF1,无需采取其他措施。定时器T2、T3、T4中断的中断请求标志位被隐藏起来,对用户是不可见的。当响应的服务程序执行后,这些中断请求标志位自动被清零。(2)串行口1中断请求的撤除:对于串行口1中断,CPU在响应之后,硬件不会自动清除中断请求标志位TI或RI,必须在中断服务程序中,在判别出是TI还是RI引起的中断后,再用软件将其清除。(3)外部中断请求的撤除:外部中断0和外部中断1的触发方式有ITx(x=0,1)设置,但无论ITx(x=0,1)设置为“0”还是“1”,都属于边沿触发。C

23、PU在响应中断后,由硬件自动清除其中断请求标志位IE0或IE1,无需采取其他措施。外部中断2、外部中断3、外部中断4的中断请求标志虽然是隐含的,但同样属于边沿触发。CPU在响应中断后,由硬件自动清除其中断标志位,无需采取其他措施。注:IT:Interrupt Trigger(4)电源低电压检测中断:电源低电压检测中断的中断请求标志位,在中断响应后,不会自动清零,需用软件清除。6.4 中断服务与中断返回中断请求的识别、中断优先级的判断、响应中断的各种动作是由CPU自动完成的,而中断处理与中断返回需要由开发者编写的中断服务程序来完成。在编写中断服务程序时要考虑下列问题:(1)因为各中断源的中断服务

24、程序入口地址仅相隔8个字节,一般容纳不下中断服务程序的执行代码,所以通常在中断服务程序的入口处存放一条无条件转移指令,在CPU响应中断时转移到实际中断服务程序的入口去执行。6.4 中断服务与中断返回(2)如果在执行实际中断服务程序的过程中不允许高级别的中断打断程序的执行,需要在实际中断服务程序的入口处用软件屏蔽CPU的中断,而在中断返回前再用软件打开CPU中断。(3)如果在中断服务程序中要使用主程序(或能够被该中断源中断的其他程序)所用的寄存器或存储单元,就需要对它们进行保护,即保护现场。当然,在保护现场之前应先屏蔽CPU的中断。6.4 中断服务与中断返回(4)因为在CPU响应串行接口发送/接

25、收中断时CPU不能使中断标志位自动复位,因此要在中断服务程序中使用软件将其中断标志位复位。对电平型外部信号触发中断也要考虑类似的问题。(5)如果在中断服务程序中进行了现场保护,在中断返回前一定要恢复现场。如果CPU的中断被屏蔽了,一定要用软件再打开CPU中断。然后才是中断服务程序的最后一条语句RETI,从中断服务程序返回主程序。6.4 中断服务与中断返回(6)为了使应用系统能够及时响应各中断源的中断请求,中断服务程序要尽可能简短,一些可以在主程序中完成的操作,应安排在主程序中来完成,这样可以减少中断处理占用的时间,提高响应速度。6.4 中断服务与中断返回中断服务函数定义的一般形式为: 函数类型

26、 函数名(形式参数表)interrupt nusing m其中,关键字interrupt后面的n是中断号,n的取值范围为0-31。编译器从8n+3处产生中断向量,具体的中断号n和中断向量取决于不同的单片机芯片。关键字using用于选择工作寄存器组,m为对应的寄存器组号,m取值为0-3,对应51单片机的0-3寄存器组。中断源中断号n中断向量8n+3外部中断000003H定时器/计数器中断T01000BH外部中断120013H定时器/计数器中断T13001BH串行口1中断40023HIAP15W4K58S4单片机常用的中断源的中断号如表6-17所示6.5 中断服务函数对于汇编语言,通常在这些中断响

27、应的入口地址处存放一条无条件转移指令,使程序跳转到用户安排的中断服务程序的起始地址上去。例如:ORG 001BH ;T1中断响应的入口LJMP T1_ISR ;转向T1中断服务程序中断号是在C语言程序中编写中断函数使用的,在中断函数中中断号与各中断源是一一对应的,不能混淆。例如:void INT0_ISR(void)interrupt0 /外部中断0中断函数void Timer0_ISR(void)interrupt1 /定时器T0中断函数void INT1_ISR(void)interrupt2 /外部中断1中断函数void Timer1_ISR(void)interrupt3 /定时器T1

28、中断函数void UART_ISR(void)interrupt4 /串行口1中断函数void LVD_ISR(void)interrupt6 /LVD中断函数例6.1 外部中断应用利用外部中断0、外部中断1控制LED灯,当外部中断0输入时,使LED1、LED2取反;当外部中断1输入时,使LED3、LED4取反。原理图如图6-4所示:6.6 IAP15W4K58S4单片机中断应用举例C语言参考程序如下:#include iap15w4k58s4.h #define uchar unsigned char#define uint unsigned int/* 位定义*/sbit LED1= P1

29、0;sbit LED2= P11;sbit LED3= P12;sbit LED4= P13;void main( ) P1M0=0X00; P1M1=0X00; IT0 = 1; /外部中断0为下降沿触发方式 IT1 = 1; /外部中断1为下降沿触发方式EX0 = 1; /允许外部中断0 EX1 = 1; /允许外部中断1 EA = 1; /总中断允许 while(1);void INT0_ISR(void) interrupt 0 LED1 = LED1; LED2 = LED2;void INT1_ISR(void) interrupt 2 LED3 = LED3; LED4 = LE

30、D4; 例6.2 单片机外部中断的扩展利用外部中断输入线(如INT0和INT1脚),每一中断输入线可以通过逻辑与(或逻辑)门电路的输入端连接多个外部中断源,同时,利用并行输入端口线作为多个中断源的识别线。原理图如图6-5所示:图6-5 一个外中断扩展成多个外中断原理图如图6-6所示为一台3机器故障检测与指示系统,当无故障时,LED3灯亮;当有故障时,LED3灯灭,0号故障时,LED0灯亮,1号故障时,LED1灯亮,2号故障时,LED2灯亮。图6-6 机器故障检测与指示系统原理图C语言参考程序如下所示:#include iap15w4k58s4.h sbit P10Pl0;sbit P11Pl1

31、;sbit Pl2Pl2;sbit Pl3Pl3;sbit P14Pl4;sbit P15Pl5;sbit Pl6Pl6;sbit Pl7Pl7;void INT0_ISR(void)interrupt 0P11P10; /故障指示灯状态与故障信号状态相反 P13P12;P15P14; void main(void)unsigned char i;IT01; /外部中断0为下降沿触发方式EX01; /允许外部中断0 EA 1; /总中断允许 while(1) iPl; if (!(i0 x15) /若没有故障,点亮工作指示灯LED3 Pl70; else Pl71; /若有故障,熄灭工作指示灯

32、LED3 例6.3 利用定时器中断用T1方式0实现定时,在P1.0引脚输出周期为10ms的方波。解:根据题意,采用T1方式0进行定时,因此(TMOD)=00H。因为方波周期是10ms,因此T1的定时时间应为5ms,每5ms时间到就对P1.0取反,就可实现在P1.0引脚输出周期为10ms的方波。系统采用12M晶振,分频系数为12,即定时脉钟周期为1s,则T1的初值为:X = M 计数值= 65536 -5000 = 60536 =EC78H即:TH1 = ECH,TL1 = 78H。C语言参考程序如下所示:#include iap15w4k58s4.h /单片机IAP15W4K58S4头文sbi

33、t Wave_out = P10;void Timer1_Init(void) /5ms12MHz AUXR &= 0 xBF; /定时器时钟12T模式 TMOD &= 0 x00; /设置定时器模式 TL1 = 0 x78; /设置定时初值 TH1 = 0 xEC; /设置定时初值 TF1 = 0; /清除TF1标志 TR1 = 1; /定时器1开始计 EA = 1; /总中断打开 ET1 = 1; /定时器1中断打开 void main( ) / 主函数 P1M1=0X00; P1M0=0X00; Timer1_Init( ); while (1); /主循环 void Timer1_is

34、r(void) interrupt 3 using 1 /中断函数 TL1 = 0 x78; /定时器初值 TH1= 0 xEC; /定时器初值 Wave_out = Wave_out; /每5ms取反,即产生10ms的方波6.6 IAP15W4K58S4单片机中断应用举例串口1收到数据,如果数据为“turnonled,LED点亮2秒后,再熄灭。波特率9600,数据位8,奇偶效验无,停止位1,数据流控制无。C语言参考程序如下:#include iap15w4k58s4.h / 单片机iap15w4k58s4头文件#include / 加入此头文件后,可使用_nop_库函数#include delay

温馨提示

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

评论

0/150

提交评论