B11第7章中断和计数器_第1页
B11第7章中断和计数器_第2页
B11第7章中断和计数器_第3页
B11第7章中断和计数器_第4页
B11第7章中断和计数器_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

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

文档简介

第7章中断控制器和计数器/定时器7.1中断控制器8259A7.2计数器/定时器825311.8259A的结构及工作过程2.8259A的工作方式3.8259A的初始化命令字和操作命令字4.8259A的使用举例5.多片8259A组成的主从式中断系统7.1中断控制器8259A21.8259A的结构及工作过程1)8259A的引脚信号3A0:用于选择8259A的两个端口偶地址端口(A0=0)奇地址端口(A0=1)IR0~IR7:中断请求信号,由外设传给8259A。CAS0~CAS2:级联信号。SP/EN:从方式/使能缓冲信号。输入:识别是主片还是从片,若为高电平则为主片,若低电平则为从片。输出:允许数据总线缓冲器接收或发送数据或者控制总线缓冲器的传送方向。42)8259A的内部结构5(1)中断请求寄存器IRR(8位)当IRi为1时,寄存器的第i位置1。(2)中断服务寄存器ISR(8位)当任何一级中断被响应时,CPU在第一个INTA使ISR相应位置1,一般情况下一直保持到该级中断处理过程结束才被清除。ISR中可以有多位被同时置1。(3)中断屏蔽寄存器IMR(8位)存放中断屏蔽字,CPU根据用户编程写入。当IMR中第i位置1时,就屏蔽来自IRi的中断请求。6(4)优先权判别器PR判别IRR中所有未被屏蔽的中断请求的优先级别。多级中断时,PR比较来自ISR和经IMR允许的IRR两者的优先级高低,以决定是否向CPU发出中断请求INT。(5)控制电路按用户设置的工作方式产生内部控制信号。向CPU发出中断请求信号INT,接收来自CPU的中断响应信号INTA。7(6)读/写控制电路控制命令字的写入。控制内部寄存器内容的读取。(7)数据总线缓冲器8259A与CPU之间的数据接口。①CPU写入8259A的命令字。②CPU读取8259A的状态字。③CPU读取中断类型号。8(8)级联缓冲器/比较器存放和比较从设备标志ID(000~111)。ID由编程设定并保存在级联缓冲器中。当CPU响应来自从片的中断请求时,主片将相应的ID输出到级联线CAS0~CAS2上,从片收到后与自己的级联缓冲器保存的ID相比较,若相等,本片被选中,故在后继的INTA有效期间,被选中的从8259A就把中断类型号送上数据总线。93)8259A的中断工作过程(1)中断源通过IR0~IR7向8259A发中断请求,使得8259A的IRR中相应位置1。(2)IRR中经IMR允许后请求进入优先权判别器PR,PR将其中最高优先权的中断请求从INT输出,送至CPU的INTR端。(3)若CPU处于开中断状态,则在当前指令执行结束后,启动中断响应总线操作,发出两个负脉冲INTA作为响应信号。108259A接收到第一个负脉冲①使IRR锁存功能失效。②使ISR相应位置1,表示CPU已为该中断请求服务。③使IRR的相位清0。8259A接收到第二个负脉冲①恢复IRR锁存功能。②将中断类型号送上数据总线。(CPU读取中断类型号,经响应过程后,进入中断服务程序,直到服务结束返回)。③若8259A工作在自动结束中断方式AEOI,8259A则清除ISR的相应位,否则直至中断服务结束,发出EOI命令,才能使ISR中的相应位清0。112.8259A的工作方式引入中断请求的方式1)边沿触发方式2)电平触发方式3)中断查询方式与系统总线的连接方式1)非缓冲方式2)缓冲方式12

设置优先级的方式1)全嵌套方式2)特殊全嵌套方式3)优先级自动循环方式4)优先级特殊循环方式131)全嵌套方式由IRi端引入的中断请求具有固定的中断优先级别,由高至低为IR0→IR1…→IR7。CPU响应IRi中断请求,在收到第一个负脉冲时,将对应的ISRi置1。除AEOI外,ISRi为1一直保持到CPU发出中断结束命令时,ISRi才被清除。当ISRi为1,且CPU开中断时,允许CPU响应更高级别的中断请求,禁止响应同级或较低级的中断请求。完全嵌套最多可达8级中断嵌套,各服务程序应按从高级到低级的次序结束。14特殊全嵌套方式用于8259A级连的系统中所谓级联,就是在微机系统中以一片8259A与CPU相连,这个8259A又与下级最多8片8259A相连。与CPU相连的8259A称为主片,与主片相连的8259A称为从片。2)特殊全嵌套方式1516主片工作在特殊全嵌套方式使得主片能识别从片的内部优先级,即对接有从片的同级中断开放。在非AEOI方式,CPU每处理完从片的一个中断请求,向从片发出中断结束命令EOI,处理完一个从片内所有等待处理的中断请求后,才向主片发中断结束命令。这要求在从片的中断服务程序结束时,除向从片发EOI命令外,还需检测其ISR各位是否为全0,若为全0时,才向主片发EOI命令。173)优先级自动循环方式改变了固有优先权排队顺序,它是在全嵌套的基础上,从IR0到IR7引入的中断,将轮流具有最高优先权。当任何一级中断结束,它的优先级就变为最低,最高优先级被分配给下级中断,其它依次轮转例如:IR3结束,IR3便具有最低优先级,而IR4具有最高优先级,IR5具有次高优先级,依次推下。IR0IR1IR2IR3IR4IR5IR6IR70123456745670123184)优先级特殊循环方式改变了固有优先权排队顺序。置位优先权命令该命令指定某一中断源优先权最低,则最高优先级被分配给下级中断源,其它依次轮转。19

屏蔽中断源的方式1)普通屏蔽方式CPU向8259A写入中断屏蔽字(写IMR)。相应置1位的中断被屏蔽。2)特殊屏蔽方式开放高级或低级,屏蔽本级。CPU向8259A写入命令实现。20结束中断处理的方式(用不同的方法清0ISRi)1)中断自动结束方式(自动EOI方式)CPU在进入中断响应总线周期的第二个INTA结束时,自动将ISR寄存器相应位清0。2)一般的中断结束方式(一般EOI方式)CPU在中断服务程序的结束处向8259A发一个一般EOI命令,使得8259A的ISR中当前优先级最高的那一位清除。3)特殊的中断结束方式(特殊EOI方式)CPU在中断服务程序的结束处向8259A发一个特殊EOI命令,则8259A将ISR寄存器中指定级别的相应位清除。213.8259A的初始化命令字和操作命令字对8259A的编程,采用两类控制命令字:ICW、OCW。初始化命令字设定8259A的基本工作条件。必须在8259A开始工作之前写入,写入以后系统才可以接收中断请求信号。一旦写入,一般在系统运行过程中不再改变。22操作命令字对中断处理过程作动态控制。必须在初始化命令写入后,才能写入。在系统运行过程中,可以多次设置。231)初始化命令字(ICW1~ICW4)

(1)ICW1

芯片控制初始化命令字对偶地址端口写入一个D4=1的数据,表示初始化编程开始。D3:LTIM中断信号的触发方式0:边沿1:高电平D1:SNGL是否单片方式0:多片级联1:单片D0:IC4

是否有ICW40:无1:有 D7 D6 D5 D4 D3 D2 D1 D01XXXXSNGLLTIMIC4A00注:在8086/8088系统中D7~D5和D2不用,通常置0;

D0必须为1。0001000124(2)ICW2

设置中断类型号的初始化命令字在写ICW1之后,对A0=1的端口第一次写入的数据是ICW2。只需设置D7~D3D2~D0无效(由8259A根据IR0~IR7自动填充为000~111)。D7 D6 D5 D4 D3 D2 D1 D00000XX0XA0125中断线:类型号中断线:类型号

IR0:08H时钟中断IR4:0CHCOM1

IR1:09H键盘中断IR5:0DH硬盘

IR2:0AH保留 IR6:0EH软盘

IR3:0BHCOM2 IR7:0FHLPT1例如:在PC/XT中ICW2为00001000B26(3)ICW3标志主片/从片的初始化命令字

(只用于8259A的级联方式)系统中有级联(ICW1.SNGL=0),在ICW2之后写ICW3。对于主片:置1的位表示对应的引脚有从片级联。对于从片:用D2~D0表示和主片的对应引脚级联。D7 D6 D5 D4 D3 D2 D1 D000001000A01D7 D6 D5 D4 D3 D2 D1 D0XXXX01X0A0127(4)ICW4方式控制初始化命令字ICW1.IC4=1时,有ICW4。D4:SFNM中断的嵌套方式0:全嵌套 1:特殊全嵌套D7 D6 D5 D4 D3 D2 D1 D0SFNM000M/SAEOIBUF

PMA010000000128D3:BUF缓冲0:无缓冲,SP/EN引脚输入,用作主片、从片选择端。1:8259A通过总线收发器和总线相连,SP/EN引脚输出,控制总线收发器的数据传送方向,当数据从8259A流向CPU时其值为0。D2:M/S主片/从片选择(BUF=1时,有效)0:从片 1:主片D1:是否工作于自动EOI方式0:非自动EOI方式1:自动EOI方式D0:PM微处理器类型0:8080/8085/Z801:8086/8088298259A芯片的初始化流程对8259A初始化编程一定要严格按照ICW1到ICW4的顺序完成。ICW1写入偶地址端口。ICW2~ICW4皆是写入奇地址端口。30写ICW1A0=0,D4=1写ICW2A0=1SNGL=1

IC4=1写ICW3A0=1写ICW4A0=1是否是否31例:PC/XT机中8259A的端口地址是20H、21H。

初始化序列如下:

MOVAL,13H

OUT20H,AL

MOVAL,8

OUT21H,ALMOVAL,9OUT21H,AL

ICW1:单片、上升沿触发、使用ICW4ICW2:中断类型码是08H~0FHICW4:有缓冲、非AEOI方式32例:PC/AT机中8259A主片的端口地址是20H、21H,

从片的端口地址是A0H、A1H。初始化主片

MOVAL,11H OUT20H,AL MOVAL,08H OUT21H,AL MOVAL,04H OUT21H,AL MOVAL,01H OUT21H,AL初始化从片

MOVAL,11H OUT0A0H,AL MOVAL,70H OUT0A1H,AL MOVAL,02H OUT0A1H,AL MOVAL,01H OUT0A1H,ALICW1ICW2ICW3ICW4ICW1ICW2ICW3ICW4332)操作命令字(OCW1~OCW3)在初始化结束,8259A便进入工作状态,若不再写入任何操作命令字,8259A便处于全嵌套工作方式(级联时,主片可设为特殊全嵌套方式),具有固定优先级别。若要改变初始化设置的对中断优先权管理方式,必须向8259A写入操作命令字OCW,进行操作方式的编程。34(1)OCW1Mi=1表示屏蔽中断源IRiD7 D6 D5 D4 D3 D2 D1 D0M4M7M6M5M2M1M3M0A01设置中断屏蔽字(写IMR)INAL,21HORAL,M或ANDAL,MOUT21H,AL35(2)OCW2对偶地址端口写入D4D3=00,表示是OCW2R:表示是否循环;SL:表示L2~L1是否有效。当OCW2给出特殊的中断结束命令时,L2~L0指出了要清除当前ISR中哪一位;当OCW2给出置位优先权命令时,L2~L0指出了哪个中断的优先级最低。D7 D6 D5 D4 D3 D2 D1 D00RSLEOIL2L10L0A00用来设置优先级循环方式和中断结束方式36EOI:中断结束命令位。在PC机中常用的EOI命令:

MOVAL,20H OUT20H,AL

37OCW2中D7~D5位的组合RSL EOI 功能 1 0 0 设置优先级自动循环方式。0 0 0 撤消优先级自动循环方式。1 1 0 设置优先级命令。

(优先级特殊循环方式)0 1 0 无意义 0 0 1 设置一般EOI命令 0 1 1 设置特殊EOI命令 1 0 1 设置一般EOI循环命令 1 1 1 设置特殊EOI循环命令 383)OCW3有三个方面的功能设置和撤销特殊中断屏蔽方式设置中断查询方式设置对8259A内部寄存器的读出39对偶地址端口写入D4D3=01,表示是OCW3D6D5:设置特殊中断屏蔽方式。00或01:无效;11:设置特殊屏蔽中断方式;10:消除特殊屏蔽中断方式。D2:为查询标志位。1:中断查询方式,CPU采用软件查询8259A;0:不处于查询方式。D7 D6 D5 D4 D3 D2 D1 D000ESMMSMMPRR1RISA0040D1D0:用于发出允许读取IRR和ISR的命令。读IRR①写0AH(D1D0=10)至20H端口②读20H端口读ISR①写0BH(D1D0=11)至20H端口②读20H端口(读IMR,CPU直接读奇地址端口即可)读查询字①写0CH(P=1)至20H端口②读20H端口41查询字的格式I:有无请求的标志。1:有中断请求;0:无中断请求。W2~W0当有中断请求时,提供最高级别的中断请求的二进制编码,CPU执行指令判别后,转入执行该编码所对应的中断服务程序。D7 D6 D5 D4 D3 D2 D1 D0XIXXW2W1XW0A00424.8259A的使用举例1)关于中断全嵌套主程序中必须开中断(IF=1)中断处理程序中必须开中断中断处理程序结束必须结束中断2)关于中断结束命令中断处理程序中没有开中断,不会实现中断的嵌套。待中断返回方可响应其它中断的请求。中断处理程序中已开中断,在执行中断结束命令后,可导致不符合优先级规则的中断嵌套。433)关于特殊屏蔽方式设当前系统正为IR4服务,设置及撤销特殊屏蔽方式的程序段:…CLIMOVAL,68HOUT80H,ALINAL,81HORAL,10HOUT81H,ALSTI……CLIINAL,81HANDAL,0EFHOUT81H,ALMOVAL,48HOUT80H,ALSTI…MOVAL,20HOUT80H,ALIRET444)PC机中断使用主程序45DATASEGMENTMESSDB‘THISISAIQR7INTRUPT!’,0AH,0DH,’$’DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,CSMOVDS,AXMOVDX,OFFSETINT7MOVAX,250FHINT21HINAL,21HANDAL,7FHOUT21H,ALMOVCX,10LL:JMPLL46中断服务程序47INT7:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESSMOVAH,09INT21HMOVAL,20HOUT20H,ALLOOPNEXTINAL,21HORAL,80HOUT21H,ALSTIMOVAH,4CHINT21HNEXT:IRETCODEENDSENDSTART485)中断方式数据传送例:设系统外扩了一片8255A以及相应的电路。要求:先预置开关K3~K1为一组状态,然后按下K键产生一个负脉冲信号输入到PC4(STBA),用发光二极管LEDi亮显示K3~K1的状态。重复以上操作直到主机键盘有任意键按下时结束演示。 K3K2K1=000LED1亮 K3K2K1=001LED2亮 … K3K2K1=111LED8亮4950(1)8255A端口地址A口218H21CHB口219H21DHC口21AH21EH控制口21BH21FH(2)8255A工作方式控制字B0HA口:选通输入方式B口:基本输出方式(3)CPU与8255A交换数据的方式中断方式51中断方式编程DATASEGMENTMESGDB‘8255AREADY…‘,0DH,0AH,‘$’TABDB11111110B DB11111101B DB11110111B DB11111011B DB11101111B DB11011111B DB10111111B DB01111111BDATAENDS52CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXCLICALLI8255APUSHDSMOVAX,CSMOVDS,AXMOVDX,OFFSETINT2MOVAX,250AHINT21HPOPDSINAL,21HANDAL,11111011BOUT21H,ALMOVAH,9MOVDX,OFFSETMESGINT21HSTISCAN:MOVAH,1INT16HJZSCANINAL,21HORAL,00000100BOUT21H,ALMOVAH,4CHINT21H53INT7PROCPUSHAXPUSHDSMOVAX,DATAMOVDS,AXMOVDX,218HINAL,DXANDAL,07HMOVBX,OFFSETTABXLATMOVDX,219HOUTDX,ALMOVAL,20HOUT20H,ALPOPDSPOPAXIRETINT7ENDPI8255APROCMOVDX,21BHMOVAL,0B0HOUTDX,ALMOVAL,09HOUTDX,ALMOVDX,219HMOVAL,0FFHOUTDX,ALRETI8255AENDPCODEENDSENDSTART545.多片8259A组成的主从式中断系统55级联使用的工作过程从片IRj接收外设接口的中断请求

从片IRRj=1

PR(从片IMRj=0)

从片INT有效即主片IRi有效

主片IRRi=1

PR(主片IMRi=0)

主片向CPU发INTCPU内部IF=1,则在当前指令执行结束响应中断请求,回送两个INTA信号:56第一个INTA主片

①ISRi

=1

②清除IRRi

③检测ICW3以决定中断请求是否来自从片。若来自从片,则根据ISRi确定从片设备标志ID,并将ID送CAS2CAS0线;若不是来自从片,则CAS2CAS0线无信号,在第二个INTA由主片送中断类型号。从片(被CAS2CAS0信号选中的)

①ISRj

=1

②清除IRRj57第二个INTA主片

①若AEOI方式,则清除ISRi

;否则,无动作。从片

①送中断类型号至数据总线

②若AEOI方式,则清除ISRj

587.2计数器/定时器82531.可编程计数器/定时器工作原理2.8253的结构和引脚信号3.8253的工作模式4.8253的应用举例591.可编程计数器/定时器工作原理1)定时功能的实现方法软件延时——利用微处理器执行一个延时程序段实现。不可编程的硬件定时——采用中小规模IC构成,不增加CPU负担,成本低,定时值不可改变。可编程的硬件定时——软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路。60可编程计数器/定时器:定时和计数本质上都是脉冲计数器定时:内部基准时钟源产生的脉冲计数:外部脉冲例如,输入脉冲的频率为2MHZ,则:计数2×106----定时1秒。612)主要构成控制寄存器:决定工作模式。状态寄存器:反映工作状态(可无,如8253无此寄存器)。初值寄存器:计数的初始值。计数输出寄存器:CPU从中读出当前计数值。计数器:执行计数操作,CPU不能访问。623)工作原理63CPU把“控制字”

写入“控制寄存器”,把“计数初始值”写入“初值寄存器”,定时/计数器按控制字要求计数。计数从“计数初始值”开始,每当CLK信号出现一次,计数值减1,当计数值减为0时,从OUT端输出规定的信号。当CLK信号出现时,计数值是否减1(即是否计数),受到“门控信号”GATE的影响,一般,仅当GATE有效时,才减1。门控信号GATE如何影响计数操作,以及输出端OUT在各种情况下输出的信号形式与定时/计数器的工作模式有关。642.8253的结构和引脚信号8253内部有3个完全相同、又相互独立的16位减1计数器。可以用二进制或十进制计数。工作模式和计数初值由编程设置。651)8253引脚及功能662)内部结构678253内部结构包括:数据总线缓冲器读/写控制逻辑计数器0〜2控制字寄存器68(1)数据总线缓冲器数据总线缓冲器是8253与CPU之间的数据接口,它是一个8位双向三态缓冲器。写入:控制字计数初值读取:计数值69(2)读/写控制逻辑读/写控制逻辑接受CPU送来的读/写控制信号,并加以组合完成对8253内部操作的控制。A1A0:地址线,作为端口选择信号。在PC机中的端口地址是40H~43H。 A1A0 端口 定义 00 40H 0#计数器 01 41H 1#计数器 10 42H 2#计数器 11 43H 控制寄存器 70控制信号的组合功能及操作A1 A0 RD WR CS 操作 0 0 0 1 0 读计数器0 0 1 0 1 0 读计数器1 1 0 0 1 0 读计数器2 0 0 1 0 0 写入计数器0 0 1 1 0 0 写入计数器1 1 0 1 0 0 写入计数器2 X X X X 1 禁止(H.Z) 1 1 1 0 0 写方式控制字 1 1 0 1 0 无操作(H.Z) X X 1 1 0 无操作(H.Z) 71(3)三个独立的计数器16位可预置的减1计数器。每个计数器各有三根I/O线CLK:时钟信号输入OUT:计数器输出GATE:门控信号,启动或允许计数器工作72内部逻辑计数初值寄存器CRGATECLKOUT计数执行部件CE输出锁存器OL73CR、CE及OL皆为16位寄存器,也可作为8位寄存器使用。CR的初值由用户编程写入。CE完成从CR的初值起对CLK引脚输入的脉冲进行减1计数的任务,CPU不能直接访问CE。CPU可用IN指令读取OL中的计数值。74计数器:由CLK引入的是计数脉冲计数次数可直接作为计数初值预置到CR中。定时器:由CLK引入的是固定频率的时钟脉冲定时系数=要求定时的时间/时钟脉冲的周期

作为计数初值预置到CR中。75(4)控制字寄存器控制字格式:读写指示00计数器锁存命令01只读写低字节10只读写高字节11先读写低字节,后读写高字节计数器选择00计数器001计数器110计数器211非法计数器选择读写指示模式选择设置计数值格式76模式选择000模式0001模式1X10模式2X11模式3100模式4101模式5

设置计数值格式1——BCD码计数范围是:0000~99990000代表最大值100000——二进制计数范围是:0000H~0FFFFH0000H是最大值,代表65536773.8253的工作模式8253各计数器有6种可供选择的工作模式。模式0:计数结束产生中断模式1:可编程的单稳态触发器模式2:分频器模式3:方波发生器模式4:软件触发的选通信号发生器模式5:硬件触发的选通信号发生器78模式0:计数结束产生中断①②⑤④⑥GATEOUTCLK

031244模式0WR①写控制字②写计数初值④计数初值

装入计数器⑤计数过程⑥计数结束79模式1:可编程的单稳态触发器①②⑤④⑥GATEOUTCLK

031244模式1WR③①写控制字②写计数初值③硬件触发④计数初值

装入计数器⑤计数过程⑥计数结束80模式2:分频器03124GATEOUTCLK

4031240312403124WR81模式3:方波发生器03124GATEOUTCLK

4031240312403124WR82模式4:软件触发的选通信号发生器83模式5:硬件触发的选通信号发生器84输出波形比较 工作模式 输出波形 模式0模式1模式2模式3模式4模式5N+1NN(N+1)/2N01N-1(N-1)/2N0185模式0 软件置数 禁止——允许工作模式启动方式门控信号01跳变模式1 硬件触发 ——启动——模式2 软件置数/自动重装禁止启动允许模式3 软件置数/自动重装禁止启动允许模式4 软件置数 禁止——允许模式5 硬件触发 ——启动——启动方式、门控信号的影响比较86初始化编程

8253加电后的工作方式不确定,必须初始化编程,才能正常工作写入控制字写入计数初值读取计数值87例:设8253计数器0工作于方式0,用二—十进制计数,其计数初值为50,写出初始化程序段。MOVAL,00010001B;设置控制字OUT43H,AL;写入控制字寄存器MOVAL,50H;设置计数初值OUT40H,AL;写入计数初值寄存器88例:设8253计数器1工作于方式1,按二进制计数,计数初值为4000H,写出初始化程序段。

MOVAL,01100010H;工作方式控制字OUT43H,AL MOVAL,40H ;送计数初值OUT41H,AL89例:设8253计数器2工作于方式2,按二进制计数,计数初值为0304H,写出初始化程序段。

MOVAL,10110100B;设控制字OUT43H,ALMOVAL,04H;送计数值低字节OUT42H,ALMOVAL,03HOUT42H,AL;送计数值高字节90读取计数值对8位数据线,读取16位计数值需分两次计数在不断进行,应该将当前计数值先行锁存,然后读取:向8253写入锁存命令(控制端口)读取锁存的计数值(计数器端口)91例:MOV AL,01000101B;T/C1,先低后高字节,方式2,BCDOUT 43H,ALIN AL,41HMOVAH,ALIN AL,41HXCHGAH,AL

温馨提示

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

评论

0/150

提交评论