接口技术计算器研发设计课程研发设计_第1页
接口技术计算器研发设计课程研发设计_第2页
接口技术计算器研发设计课程研发设计_第3页
免费预览已结束,剩余24页可下载查看

下载本文档

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

文档简介

1、一、引言 4二、实验题目及要求 5三、硬件电路 52.1、键盘输入模块 52.2、可编程并行通信接口芯片 8255A 62.3、可编程定时器/计数器 9四、源程序 10六、课程设计体会2526七、参考文献本学期我们学习了微型计算机技术及应用这门应用性很强的课程,通 过平时的上机实验,使我们初步了解了8086系统的硬件结构以及部分芯片结构,为了进一步巩固和检测所学知识,我选择基于8086CPU勺模拟计算器设计。要完成设计首先需要构建简单的微型计算机应用系统,其次是 确定组成各部件的芯片,然后画原理图,根据相应的原理以及实现过程, 编写出相应的汇编代码。再根据原理图连接硬件电路,电路连接完成后进

2、行调试。设计过程中我们用到了 8088CPU可编程计时器8253、可编程并 行输入/输出芯片8255A 74LS138矩阵式键盘、六位七段 LED数码管。 我们的模拟计算器能实现2位十进制数以内的及减法运算。矚慫润厲钐瘗睞枥庑赖。模拟计算器设计一、概述设计题目及要求:1. 通过小键盘做加减运算。七段数码管显示器作输入数据和结果数据的显示。2. 数字用小键盘09, R, P, M G作功能键R开始运算(包括撤销运算),显示 0'P+m-g=E 退出返回dos3运算顺序:a. 输入一原始数据显示器跟随显示b. 按+或 -显示器内容不变c. 再输入一数据,显示器跟随显示。d. 按=显示器显示

3、结果数据,当超出能显示的最大值,显示F (溢出)e. 按R重新开始运算f. 按E,结束退出设计思路:首先利用程序不断扫描键盘是不是有输入, 如果没有就一直扫描,如果有就停止扫描,完成输入,利用汇编的程序核对输入键的数值, 通过调用子程序实现2位十进制数以内的及减法运算。运算完成后将运算的结果储存并显示到LED显示器上。聞創沟燴鐺險爱氇谴净。硬件电路设计硬件电路 键盘输入及LED数码管通过8255A接口与系统总线连接,键盘的16个 按键组成8*2矩阵,其中8根矩阵线作为8255A的输出线与PB& PB0连接,2根 矩阵线作为8255A的输入线与PC7 PC6连接。键盘采用逐次扫描原理,1

4、6个按键 中09座位数字健,+、-、=作为加、减和等号功能键,C为清零键。残骛楼諍锩瀨濟 溆塹籟。1、键盘输入模块键盘是常用信息输入元件,其实键盘也是由一个个按钮组成,如果是独立按钮的话必须要需要一个I/O 口对它进行检测,而键盘往往这需要键盘按钮数一半的I/O 口数对它进行检测,也许对一个比较简单的系统I/O 口数一般不是问题,但对于一个大型、复杂的系统来说I/O资源就显得非常珍贵了,尽量减少I/O使用是非常利于降低成本,另外一方面键盘比用独立按键要美观。我们设计时使用的是8*2行列式键盘,如图 2-1所示。酽锕极額閉镇桧猪訣锥。图中有8行2列,8根行线与PA口相连,2根列线与PC口的PC6

5、 PC7相连。PA PB 口要么全部输入或输出。PC 口可以进行输入和输出。按键设置在行、类交点处(数字或字符为其键号),行、列线分别连接到按键开关的两端。当列线通过上拉电阻接+5V时,就被钳位在高电平状态。键盘中有无按键按下是由行线送入全扫描字、列线读入行线状态来判 断。这就是:给航线所有I/O线均置成低电平,然后读入列线电平状态。如国有按键盘下,总会有一根列线电平被拉至低电平,从而使列线输入不全为1。彈贸摄尔霁毙攬砖卤庑。卜+FVABC一具“川I片(I N il图2-1键盘电路图2-2数码管电路2、可编程并行通信接口芯片8255A(1 )并行输入/输出端口 A,B,C8255A内部包括三个

6、8位的输入输出端口,分别是端口A、端口 B、端口 C,相应信号线是PA7PA0、PB7PB0、PC7PC0。端口都是 8位,都可以作为输入或输出。通常将端口 A和端口 B定义为输入/输出的数据端口,而端口 C则既可以作数据端口,又可以作为端口A和端口 B的状态和控制信息的传送端口。謀荞抟箧飆鐸怼类蒋薔。(2) A组和B组控制部件端口 A和端口 C的高4位(PC7PC4)构成A组;由A组控 制部件实现控制功能。端口 B和端口 C的低4位(PC3PC0 )构成B组;由B组控制部件实现控制功能。A组和B组利用各自的控制单元来接收读写控制部件的命令和CPU通过数据总线(DOD7)送来的控制字,并根据他

7、们来定义各个端口的操作方式。厦礴恳蹒骈時盡继價骚。(3) 数据总线缓冲存储器三态双向8位缓冲器,是 8255A与8086CPU之间的数据接口。 与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传 送。茕桢广鳓鯡选块网羈泪。(4) 读/写控制部件陝2FA2PAL2u4035PAD33®437RDCS536GNE635aF734AO833PCT0321103LIIR255A30PC4122PCQ-132SPCT1427PC21526PC31625PBU11FBIL323PB2田222021PA5PA637JIESErElD2D5匸30DGvccPB7PB6PBS吟PBS部件发

8、出操作指令。图2-3.8255A芯片图鹅娅尽損鹤惨歷茏鴛賴。8255A完成读/写控制功能的部件。能接收 CPU的控制命令,并根据控制命令向各个功能CS片选信号:由CPU输入,有效时表示该 8255A被选中。RD, WR读、写控制信号:由CPU输入。RD有效表示 CPU读8255A , WR有效表示 CPU写8255A。RESET复位信号:由CPU输入。RESET信号有效,清除8255A中所有控制字寄存器内容,并将各个端口置成输入 方式。籟丛妈羥为贍债蛏练淨。Ycs-DI/OF 打-PB。I/O fP如I/O 叫PC。图2-4 .8255A内部结构1G0XX0XX定义工作方式控制字:工作方式0:

9、 8255A中各端口的基本输入/输出方式。D?D 百 Di D3 D2 Di D°定叉端口 A为方式oV标志位bPC厂PC。为输入OxPC 3PC。为输出 1端口 B输入0】端口 B输出定义端口 B为方式QI O.CPCrPq)为输出"端口A输人 X端口A输出图2-5 .8255A工作万式控制3、可编程计数器/定时器8253具有3个独立的计数通道,采用减 1计数方式。在门控信号有效时,每 输入1个计数脉冲,通道作 1次计数操作。当计数脉冲是已知周期的时钟信号 时,计数就成为定时。預頌圣鉉儐歲龈讶骅籴。(1)、8253内部结构8253芯片有24条引脚,封装在双列直插式陶瓷管壳

10、内。1.数据总线缓冲器数据总线缓冲器与系统总线连接,8位双 向,与CPU交换信息的通道。这是8253与CPU之间的数据接口,它由8位双向三态缓冲寄存器构成, 是CPU与 8253 之间交换信息的必经之路。渗釤呛俨匀谔鱉调硯錦。2.读/写控制读/写控制分别连接系统的IOR和IOW由CPU控制着访问8253的内部通道接收CPU送入的读/写控制信号,并完成对芯片内部各功能部件的控制功能,因122432425160782539889716011423DD6D5D4D3D2D1D0CLK0OUT0GET0GND+5WRRDSAACKLGATEOUTCLK1GATE1UT此,它实际上是 8253芯片内部的

11、控制器。A1A0端口选择信号,由 CPU输入。8253内部 有3个独立的通道和一个控制字寄存器,它们构成8253芯片的4个端口,CPU可对3个通 道进行读/写操作 3对控制字寄存器进行写操 作。 这4个端口地址由最低 2位地址码A1、 A0来选择。铙誅卧泻噦圣骋贶頂廡。一、源程序;386以上微机适用;纯dos下才能使用;tasm4.1或以上编译.*.;* LED *;.*.equ 05406h ;TPC 卡设备 IDequ 010b5h ;TPC 卡厂商 IDEQU 0905410B5H ;TPC卡子设备及厂商IDTIM_CTLTIMER0 TIMER1 MODE03MODE12INTA00E

12、QU 203H-200H ;8253 端口地址EQU 200H-200HEQU 201H-200HEQU 36H;8253 端口数据EQU 74HEQU 20Hio_plx_device_id io_plx_ve ndor_id IO_PLX_SUB_IDINTA01PORTSEGPORTBITEQU 21HEQU 211H-200H ;数码管端口地址EQU 210H-200H;8255 端口凤袜备訊顎轮烂蔷。 io_base_address in terrupt_li ne pcicard notfind error !',0dh,0ah,'$'io9054basea

13、ddressiobaseaddress癟報伥铉锚鈰赘。db 0dh,0ah,'TPC pci card I/O Base Address :','$'蜡變黲pa55 equ 218h-200H pb55 equ 219h-200H p55ctl equ 21bh-200Hdata segme ntcsreg dw ?ipreg dw ?;旧中断向量保存空间io_9054base_address db 4 DUP(0) ;TPC卡PCI接口芯片I/O 基地址暂存空间 擁締db 4 DUP(0) ;TPC卡I/O基地址暂存空间db 2 DUP(0);TPC卡中断号暂

14、存空间db 0dh,0ah,'TPC pci card not find or address/i nterrupt 贓熱俣阃歲匱阊邺镓騷。db 0dh,0ah,'TPC pci card 9054 Chip I/O Base Address :','$'坛搏乡囂忏蒌鍥铃氈淚。intn umberdb 0dh,0ah,'TPC pci card In terrupt Line : ','$'買鯛鴯譖昙膚遙闫撷凄。en ter_returndb 0dh,0ah,'$'MESS DB '8253A TI

15、MER0 IN MODE3! COUNT=0200H',0AH,0DH 綾镝鯛駕櫬鹕踪韦辚糴。DB '8253A TIMER1 IN MODE2! COUNT=0aH',0AH,0DH,'$'驅踬髏彦浃绥譎饴憂锦。irq_vectdb08h,09h,0ah,0bh,0ch,0dh,0eh,0fh,70h,71h,72h,73h,74h,75h,76h,77h猫虿驢绘燈鮒诛髅貺庑。;新的中断向量,中断0-7的向量为:08h-0fh,中断8-15的向量为:70h-77h irq_mask_0_7_table db 011111110b,011111101b,

16、011111011b,011110111b 锹籁饗迳琐 筆襖鸥娅薔。db 011101111b,011011111b,010111111b,001111111bdb 011111011b,011111011b,011111011b,011111011bdb 011111011b,011111011b,011111011b,011111011b;新的中断掩码,中断0-7时从低至高相应位为零,中断8-15时第2位为零 irq_mask_8_15_table db 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh構氽頑黉碩饨荠龈话骛。db 011111110b,0111

17、11101b,011111011b,011110111bdb 011101111b,011011111b,010111111b,001111111b;新的中断掩码,中断0-7时全一,中断8-15时从低至高相应位为零INTMASK DB ?LED DB 3FH,06,5BH,4FH,66H,6DH,7DH,07,7FH,6FH,40H輒峄陽檉簖疖網儂號泶。DB 0AH,0DH,'$'table1 dw 0101h,0102h,0104h,0108h,0110h,0120h,0140h,0180h 尧侧閆繭絳闕绚勵蜆贅。 dw 0201h,0202h,0204h,0208h,021

18、0h,0220h,0240h,0280h dw 0401h,0402h,0404h,0408h,0410h,0420h,0440h,0480hchar db 'CDEFBA9845673210 RPMG'mes db 'PLAY ANY KEY IN THE SMALL KEYBOARD! ',0ah,0dh 识饒鎂錕缢灩筧嚌俨淒。db 'IT WILL BE ON THE SCREEN! END WITH R or ANY KEY',0ah,0dh,'$' 凍鈹鋨 劳臘错痫婦胫籴。;extra datanum1 db 6 dup

19、 (?)num2 db 6 dup (?)result db 6 dup (?)count db 0operator db 0LedNum db 6 dup (?)data endsstacks segme nt db 100 dup (?)STA DW 512 DUP (?)TOP EQU LENGTH STAstacks endscode segme ntassume cs:code,ds:data,ss:stacks,es:datastart:;En able Local In terrupt In put.386climov ax,datamov ds,axmov es,axmov a

20、x,stacks;查找TPC卡资源并显示mov ss,axcall fin dtpcMOV DX,word ptr io_base_address ;初始化 8253add dx,TIM_CTLMOV AL,MODEO3OUT DX,ALMOV DX,word ptr io_base_addressadd dx,TIMER0MOV AL,00hOUT DX,ALMOV AL,02HOUT DX,ALMOV DX,word ptr io_base_addressadd dx,TIM_CTLMOV AL,MODE12OUT DX,ALMOV DX,word ptr io_base_addressa

21、dd dx,TIMER1MOV AL,0aHOUT DX,ALMOV AL,00OUT DX,ALMOV DX,OFFSET MESSMOV AH,09INT 21HMOV DX,OFFSET MES ;显示提示MOV AH,09INT 21Hmov dx,word ptr io_9054base_addressadd dx,68h ; 设置tpc 卡中9054芯片io 口 ,使能中断in ax,dxor ax,0900hout dx,axmov bx,word ptr in terrupt_li ne ;保存原中断向量mov al,byte ptr irq_vect+bxmov ah,35h

22、int 21hmov ax,esmov csreg,ax设置新中断向量mov ipreg,bxmov bx,word ptr in terrupt_li ne ;mov al,byte ptr irq_vect+bxmov cx,csmov ds,cxmov dx,offset in t_procmov ah,25hint 21hmov ax,datamov ds,axmov es,axin al, 21h;设置中断掩码mov bx,word ptr in terrupt_li nemov ah,byte ptr irq_mask_0_7_table+bx and al,ahout 21h,

23、alin al, 0a1hmov bx,word ptr in terrupt_li nemov ah,byte ptr irq_mask_8_15_table+bx and al,ahout 0a1h, alsti;开中断Reset:;in itializatio nLEA BX, num1CALL ClearNumLEA BX, num2CALL ClearNum MOV byte ptr count,。LEA BX, numlCALL LedShowFirstRead:LEA BX, numlCALL ReadNumCMP byte ptr operator,4JZ ResetCMP b

24、yte ptr operator,5JZ Fun ExitLoopRead:MOV DL,operatorLEA BX, num2CALL ReadNumCMP byte ptr operator,4JZ ResetCMP byte ptr operator,5JZ Fun ExitCMP DL,1JZ Fun AddCMP DL,2JZ FunMinusMidJmp2:JMP FirstReadMidJmp3:JMP Reset;several choice for the prior operatorFun Add:CALL AddNumLEA BX, num1JMP Ope2FunMin

25、us:CALL Min usNumLEA BX, num1Ope2:CALL LedShowLEA BX, num2CALL ClearNumLEA BX, num1CALL ClearNumJMP FirstReadFun Equal:JMP ResetFun Clear:JMP ResetFun Exit:JMP ExitErrorOut:;output the error messageMOV word ptr nu m1,0A0AHMOV word ptr num1+2,0A0AHMOV word ptr num1+4,0A0AHLEA BX, numlcall LedShowErro

26、rGet:;reset the error status;only R and E can passCALL keyCMP DL,'E'JZ Fun ExitCMP DL,'R'JZ MidJmp3JMP ErrorGetJudge:CMP byte ptr operator,3JZ MidJmp2Exit: climov bx,word ptr interrupt_line;恢复中断掩码mov ah,byte ptr irq_mask_0_7_table+bxnot ahin al, 21hor al, ahout 21h, almov bx,word ptr

27、 in terrupt_li nemov ah,byte ptr irq_mask_8_15_table+bxnot ahin al, 0a1hor al, ahout 0a1h, almov bx,word ptr interrupt_line;恢复原中断向量mov al,byte ptr irq_vect+bxmov dx,ipregmov cx,csregmov ds,cxmov ah,25hint 21hmov ax,data ;设置tpc 卡中9054芯片io 口,关闭中断mov ds,axmov dx,word ptr io_9054base_addressadd dx,68h i

28、n ax,dx and ax,0f7ffh out dx,axmov ax,4c00hint 21h;退出ReadNum proc;if you want to use this procedure;you must provide the nu mber address to BXPUSH AXPUSH CXPUSH DXRead in:;en ter the first nu mberPUSH BX恥諤銪灭萦欢煬鞏鹜call key;get a char in (dl) and display it錦。POP BXMOV AL,DL;operator symbol;plusMOV byte

29、 ptr operator,1CMP AL,卩JZ ExitRead;min usMOV byte ptr operator,2CMP AL,'M'JZ ExitRead;equalMOV byte ptr operator,3CMP AL,'G'JZ ExitRead;clearMOV byte ptr operator,4CMP AL,'R'JZ ExitRead;exitMOV byte ptr operator,5CMP AL,'E'JZ ExitRead;illegal symbolCMP AL,'O'J

30、B Readi nCMP AL,9JA Readi n;nu mberCMP byte ptr count,6JZ Readi nLeftMove:;mov the nu mberMOV CX,5MOV SI,0MoveData:MOV DL,BX+SI+1MOV BX+SI,DLINC SILOOP MoveData;in sert the nu mberAND AL,0FHMOV BX+5,ALcall LedShowINC cou ntJMP ReadinExitRead:MOV cou nt,0POP DXPOP CXPOP AXretReadNum endpMidJmp:JMP Er

31、rorOut AddNum proc ;add num1 and num2MOV CX,6LEA BX, num1DEC BXAND CX,CX AddLoop:MOV SI,CXMOV AL,BX+SIADC AL,BX+SI+6AAAMOV BXSI,ALLOOP AddLoopJC MidJmpretAddNum endpMinu sNum proc;minus num1 and num2MOV CX,6LEA BX, num1DEC BXAND CX,CXMinu sLoop:MOV SI,CXMOV AL,BX+SISBB AL,BX+SI+6AASMOV BXSI,ALLOOP M

32、inu sLoopJC MidJmpretMinu sNum endpLedShow proc;simulate LED show;provide the nu mber address to BX;clear LED segme ntPUSH BXLEA BX, LedNumADD BX,2CALL ClearNumPOP BX;Move the data to LED segme ntLEA DI,LedNumMOV CX,6MOV SI,0ShowLoop:MOV AL,BX+SIPUSH DIADD DI,SIMOV DI,ALPOP DIINC SILOOP ShowLoopretL

33、edShow endpClearNum proc;clear the nu mber;provide nu mber address to BXMOV CX,6DEC BXClearZero:MOV SI,CXMOV byte ptr BX+SI,0LOOP ClearZeroretClearNum endpkey proc n earkst:mov al,82hMOV DX,word ptr io_base_addressadd dx,p55ctl鯊腎鑰诎漣鉀沩懼統庫。out dx,al;set comma nd word of 8255a;porta for output,portb fo

34、r in put wait1: n ext:mov al,00MOV DX,word ptr io_base_addressadd dx,pa55out dx,al;porta output 00MOV DX,word ptr io_base_addressadd dx,pb55in al,dx;get col datacmp al,0ffhjz wait1;no key is closed ,waitpush ax;save the col datapush axcall delayMOV DX,word ptr io_base_address add dx,p55ctlmov al,90h

35、;set comma nd word of 8255aout dx,al;porta for in put,portb for output騖。MOV DX,word ptr io_base_addressadd dx,pb55pop axout dx,al;output col data from portbMOV DX,word ptr io_base_addressadd dx,pa55in al,dx;(al) is row datapop bxmov ah,bl;(ah) is col datanot axmov si,offset table1mov di,offset charm

36、ov cx,24tt:cmp ax,si;cmp (col,row) with every wordjz nn;in the tabledec cxjz kstadd si,2inc dijmp ttnn:mov dl,dimov ah,02int 21hpush dxmov al,82hMOV DX,word ptr io_base_addressadd dx,p55ctlout dx,al;set comma nd word of 8255a;porta for output,portb for in put wait2:mov al,00MOV DX,word ptr io_base_a

37、ddressadd dx,pa55out dx,al;porta output 00MOV DX,word ptr io_base_addressadd dx,pb55in al,dx;get col datacmp al,0ffh硕癘鄴颃诌攆檸攜驤蔹。阌擻輳嬪諫迁择植秘氬嚕躑竄贸恳彈濾颔澩。釷鹆資贏車贖孙滅獅赘。怂阐譜鯪迳導嘯畫長凉jnz wait2;wait un til the key is uppop dxretkey endpdelay proc n earpush ax ;delay 50ms-100ms push bxpush expush dxmov ah,0int 1ahmo

38、v bx,dxdelay1:mov ah,0int 1ahcmpbx,dxjzdelay1movbx,dxdelay2:movah,0int1ahcmpbx,dxjz delay2popdxpopcxpopbxpopaxretdelay endpin t_proc proc far cli push ax PUSH CX push dx PUSH DIpush dsMOVAX,DATAMOVDS,AXMOVDI,OFFSET LedNumMOVCL,01DIS1: MOVAL,DIMOVBX,OFFSET LEDXLATMOV DX,word ptr io_base_address add d

39、x,PORTSEGOUTMOVDX,ALAL,CLMOV DX,word ptr io_base_addressadd dx,PORTBITOUT DX,ALPUSH CXMOV CX,8000H;显示时间延迟TimeDELAY: LOOP TimeDELAYPOPCMP JZ INC SHLMOVOUT JMP QUIT:CXCL,20HQUITDICL,1AL,00DX,ALDIS1MOV DX,word ptr io_base_address add dx,PORTBITMOVOUTAL,00DX,ALmov al,20h;Se nd EOIout 0a0h,alout 20h,almo

40、v cx,0ffffhloopx:noploop loopx;延时pop dsPOP DIpop dxPOP CXpop axstiiretin t_proc endpfindtpc proc near;查找TPC卡资源并显示pushad pushfdMOVX,0B101HINT 1AH;检查PCI BIOS是否存在;检查TPC卡是否安装,设备号、厂商号JC findtpc_notfindMOVX,0B102HMOVCX,io_plx_device_idMOV)X,io_plx_ve ndor_id MO>SI,0INT 1AHJC findtpc_notfindMOVX,0B10AHM

41、OVDI,02CHINT 1AHJC findtpc_notfindCMPE CX,IO_PLX_SUBDJNZfindtpc_notfind;检查TPC卡是否安装,子设备号、厂商号MOVX,0B10AHMOVDI,14HINT 1AHJC findtpc_notfind;读 TPC卡 9054 芯片 I/O 基址信息movdword ptr io_9054base_address,ecxand ecx,1jz findtpc_notfind;检查是否为i/o基址信息mov ecx,dword ptr io_9054base_addressand ecx,0fffffffehmov dword

42、 ptr io_9054base_address,ecx ; 去除i/o 指示位并保存谚辞調担鈧谄 动禪泻類。MOVX,0B10AHMOVDI,18HINT 1AHJC findtpc_notfind;读 TPC卡 I/O 基址信息movdword ptr io_base_address,ecx and ecx,1jz findtpc_notfind;检查是否为i/o基址信息movecx,dword ptr io_base_addressand ecx,0fffffffehmovdword ptr io_base_address,ecx ;去除 i/o 指示位并保存MOVX,0B10AHMOV

43、DI,3CHINT 1AH;读TPC卡中断信息JC findtpc_notfindand cx,Offhmovword ptr interrupt_line,cx;去除interrupt其它指示位并保存 嘰觐詿缧铴嗫偽純铪锩。mov dx,offset io9054baseaddress ; 显示 i/o 提示信息movah,09hint 21hmov ax,word ptr io_9054base_addresscall dispword;显示 i/o 基地址movdx,offset iobaseaddress;显示 i/o 提示信息movah,09hint 21hmovax,word ptr io_base_addresscall dispword;显示 i/o 基地址movdx,offset intnumber;显示 interrupt 提示信息movah,09h int 21hm

温馨提示

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

评论

0/150

提交评论