第9章-串行总线接口技术课件.ppt

上传人(卖家):晟晟文业 文档编号:4489040 上传时间:2022-12-14 格式:PPT 页数:137 大小:2.34MB
下载 相关 举报
第9章-串行总线接口技术课件.ppt_第1页
第1页 / 共137页
第9章-串行总线接口技术课件.ppt_第2页
第2页 / 共137页
第9章-串行总线接口技术课件.ppt_第3页
第3页 / 共137页
第9章-串行总线接口技术课件.ppt_第4页
第4页 / 共137页
第9章-串行总线接口技术课件.ppt_第5页
第5页 / 共137页
点击查看更多>>
资源描述

1、12022-12-142022-12-1422022-12-143 2022-12-1442022-12-1452022-12-1462022-12-147 2022-12-1482022-12-1492022-12-14102022-12-14112022-12-1412sbit DO=P12sbit CLK=P11sbit CS=P10bdata Unsigned char addata;sbit adin0=addata 0;unsigned char TLC549 _ad(void)/*A/D转换程序*/unsigned char i;Clk=0;CS=0;/*令CS为低选中TLC54

2、9*/_nop_();2022-12-1413for(i=0;i8;i+)/*循环读取8位A/D转换结果*/CLK=1;/*令CLK引脚为高,产生时钟*/delay();/*延时*/adin0=DO;/*读取A/D转换后数据线的一位数据*/addata=addata 1;/*左移一位,先读取为高位,后读为低位*/CLK=0;/*令CLK恢复为0*/_nop_();_nop_();return addata;/*返回A/D转换值*/void delay()unsigned char i;for(i=0;i20;i+)2022-12-1414 2022-12-14152022-12-1416202

3、2-12-1417 2022-12-14182022-12-1419 2022-12-14202022-12-1421 2022-12-1422设要转换的数据放在R7R6中,R7为高8位,R6低8位 DIN BIT P1.2 ;引脚定义 CS BIT P1.1 SCLK BIT P1.0 TLC5615_DA:CLR C;将R7R6中数据左移2位(16位数据的最低2位添00)RLC R6 RLC R7 CLR C RLC R6 RLC R7 SETB CS ;初始化片选信号为高 CLR SCLK ;初始化时钟为低 CLR DIN;D/A数据线置低 CLR CS;选中TLC5615,开始启动D/

4、A MOV R5,#16 ;将16位数据从DIN端移进内部的16位移位寄存器2022-12-1423 LOOP:RLC R6;R7R6中数据左移一位,最高位进入CY RLC R7 MOV DIN,C;将数据送到DIN引脚 SETB SCLK ;送时钟 NOPNOPNOPCLR SCLK;NOPNOPNOP DJNZ R5,LOOPSETB CS ;D/A片选拉高,10 位有效数据锁存到DAC寄存器,开始转换 RET 2022-12-1424D/A转换C语言程序:sbit DA_clk=P10;/*引脚定义*/sbit DA_ cs=P11;sbit DA_in=P12;void delay_s

5、(unsigned char n)/*延时*/unsigned char i;for(i=0;in;i+);void TLC5615_DA_conver(unsigned int DA_data)/*D/A转换程序*/unsigned char i;DA_data=DA_data 2;/*将数据左移2位(最低2位添00)*/DA_cs=1;/*初始化片选信号为高*/DA_clk=0;/*初始化时钟为低*/DA_in=0;/*D/A数据线置低*/DA_cs=0;/*选中TLC5615,开始启动D/A*/for(i=0;i16;i+)/*将16位数据从DIN端移进内部的16位移位寄存器*/2022

6、-12-1425 DA_data=DA_data 1;/*左移一位,最高位进入CY*/DA_in=CY;/*将数据送到DIN引脚*/DA_clk=1;delay_s(0 x02);/*送时钟*/DA_clk=0;delay_s(0 x02);DA_cs=1;/*片选拉高,10 位数据锁存到DAC寄存器,开始转换*/delay_s(0 x20);2022-12-1426 2022-12-14272022-12-1428 2022-12-14292022-12-14302022-12-14312022-12-1432 2022-12-14332022-12-1434(2022-12-1435。20

7、22-12-1436SCL BIT P1.1;汇编语言定义端口;汇编语言定义端口SDA BIT P1.0sbit SDA=P10;/C语言定义端口语言定义端口sbit SCL=P11;bit ack;/应答标志位,有应答为应答标志位,有应答为1,无应答为,无应答为0#define DELAY5US _nop_();_nop_();_nop_();_nop_();_nop_();2022-12-1437汇编语言程序:START:SETB SDA;发送起始条件数据信号SETBSCL;发送起始条件的时钟信号NOPNOPNOPNOPCLR SDA;发送起始信号(SCL为高,SDA发生由高到低)NOPN

8、OPNOPNOPNOPCLRSCLRET 2022-12-1438C语言程序:void start()SDA=1;/*将SDA、SCL置为1*/SCL=1;DELAY5US;/*延时5us*/SDA=0;/*SCL为高时,SDA由高变低*/DELAY5US;SCL=0;/*SCL变低,准备发送或接收数据*/2022-12-1439 汇编语言程序:STOP:CLR SDA ;发送停止条件的数据信号SETB SCL;发送停止条件的时钟信号NOPNOPNOPNOPNOP SETB SDA;发送I2C总线停止信号(SCL为高,SDA发生由低到高)NOP NOP NOP NOPCLR SCLCLR SD

9、ARET2022-12-1440C语言程序:void stop()SDA=0;/*将SDA清0,SCL置1*/SCL=1;DELAY5US;SDA=1;/*当SCL为高电平时,SDA由低变高*/DELAY5US;SCL=0;2022-12-1441汇编语言程序:MACK:CLR SDA ;发送应答信号MACKSETB SCLNOPNOPNOPNOPNOPCLR SCLSETB SDARET2022-12-1442C语言程序:void ack(void)/*产生应答信号*/SDA=0;/*SDA先清0,发应答信号*/SCL=1;/*SCL由低变高,产生一个时钟*/DELAY5US;/*延时5us

10、*/SCL=0;/*SCL变低,以便继续接收*/SDA=1;2022-12-1443汇编语言程序:NACK:SETB SDA ;发送应答信号NACKSETB SCLNOPNOPNOP NOPNOPCLR SCLCLR SDARET2022-12-1444C语言程序:void nack(void)SDA=1;/*DA先置1,发非应答信号*/SCL=1;/*SCL由低变高,产生一个时钟*/DELAY5US;SCL=0;/*时钟线SCL恢复到低电平*/SDA=0;2022-12-1445汇编语言程序(F0=1通信失败):CACK:SETB SDA ;发送应答信号CACKSETB SCLCLR F0M

11、OV C,SDAJNC CENDSETB F0 CEND:CLR SCLRET2022-12-1446C语言程序:void cack(void)SDA=1;/*SDA先置1,发非应答信号*/SCL=1;/*SCL由低变高,产生一个时钟*DELAY5US;ack=0;if(SDA=1)ack=1;SCL=0;/*时钟线SCL恢复到低电平*/2022-12-1447 汇编语言程序:;从A中取一个字节数据写向I2C总线WRITE_BYTE:MOV R7,#8;写8位WRITE_LOOP:RLC A ;发送A中数据 MOV SDA,C SETB SCL NOP NOP NOP NOP NOP CLR

12、SCL DJNZ R7,WRITE_LOOP RET2022-12-1448C语言程序:/*将指针P指向的一个字节数据发送*/void SendByte(uchar*p)uchar n,temp;temp=*p;for(n=0;n8;n+)/*一字节为8位,循环8次*/if(temp&0 x80)SDA=1;/*将数据线SDA置1或清0*/else SDA=0;NOP SCL=1;/*置SCL为高,通知从机开始接收数据*/DELAY5US;SCL=0;/*SCL变低,准备发送下一位数据*/temp=temp 1;/*准备下一位要发送的数据*/2022-12-1449;从I2C总线接收一个字节

13、数据放在A中RDBYTE:MOV R7,#8;写8位RD_LOOP:SETB SDA SETB SCL NOP;延时5s NOP NOP NOP NOP NOP MOV C,SDA ;采样SDA线上的数据到cy MOV A,R2 ;R2为接收数据的缓冲寄存器RLC A ;将cy中的数据左移进A中MOV R2,A ;数据送回缓冲寄存器R2CLR SCLDJNZ R7,RD_LOOPRET2022-12-1450C语言程序:/*接收一个字节数据放在P指向单元*/uchar RcvByte(uchar*P)uchar n,temp;for(n=0;n8;n+)/*一字节为8位,循环8次*/SDA=1

14、;/*置数据线SDA为高,进入接收方式*/SCL=1;/*SCL由低变高,产生一个时钟*/DELAY5US;temp=temp1;if(SDA=1)temp=temp0X01 ELSE temp=temp&0 xfe;SCL=0;/*时钟线SCL清0*/*p=temp;2022-12-14512022-12-1452WNBYTE:MOV A,R3;LCALL START LCALL WRITE_BYTE LCALL CACK JB F0,WRBYTE MOV A,R2LCALL WRITE_BYTE LCALL CACKJB F0,WRBYTEWRDA:MOV A,R0LCALL WRITE_

15、BYTE LCALL CACKJB F0,WRBYTEINC R0DJNZ R7,WRDALCALL STOPRET 2022-12-14532022-12-14542022-12-1455汇编语言程序:;多字节读操作子程序RNBYTE;入口参数:R7写入的字节数,R0写入数据的首地址,R2从器件地址内部地址,R3从器件写地址,R4从器件读地址RNBYTE:LCALL STARTMOV A,R3 ;取从器件写地址LCALL WRITE_BYTE;写从器件地址LCALL CACK;检测应答信号JB F0,RNBYTE;无应答重新开始MOV A,R2 ;取从器件地址内部地址LCALL WRITE_

16、BYTELCALL CACKJB F0,RNBYTELCALL START2022-12-1456MOV A,R4 ;取从器件读地址LCALL WRITE_BYTELCALL CACKJB F0,RNBYTERDN:LCALL RDBYTE ;接收一个字节数据MOV R0,ADJNZ R7,ACKLCALL MNACK ;接收完发非应答信号LCALL STOPACK:LCALL MACK ;没接收完发应答信号INC R0SJMP RDN2022-12-1457C语言程序:/*多字节读操作子程序RNBYTE/*入口参数:n写入的字节数,s0读数据存放的首地址,s2从器件地址内部地址,s3从器件写

17、地址,s4从器件读地址*/viod Rcvnbyte(uchar*s3,uchar*s4,uchar*s2,uchar*s0,uchar n)loop:start();/*发起始信号,启动总线*/SendByte(s3);/*发送从器件地址*/Cack();/*应答检测*/if(ack)/*如果没能应答,重新开始*/goto loop SendByte(s2);/*发送器件子地址*/Cack();/*应答检测*/if(ack)/*如果没能应答,重新开始*/goto loop2022-12-1458 start();/*再次发起始信号*/SendByte(s4);/*sla+1表示进行读操作*/

18、cack();/*应答检测*/if(ack)/*如果没能应答,重新开始*/goto loop for(i=0;in-1;i+)/*对前n-1个字节发应答信号*/RcvByte(s0);/*接收数据*/ack();/*发送应答信号*/s+;RcvByte(s0);/*接收最后一个字节*/nack();/*发送非应答信号*/stop();/*发结束信号,结束本次数据传送*/2022-12-1459 2022-12-14602022-12-1461 2022-12-14622022-12-1463 2022-12-14642022-12-14652022-12-14662022-12-1467)20

19、22-12-1468引脚序号引脚名称功能描述1SC/KR2数码管c段/键盘行信号22SD/KR3数码管d段/键盘行信号33DIG3/KC3数码管位选信号3/键盘列信号34DIG2/KC2数码管位选信号2/键盘列信号25DIG1/KC1数码管位选信号1/键盘列信号16DIG0/KC0数码管位选信号0/键盘列信号07SE/KR4数码管e段/键盘行信号48SF/KR5数码管f段/键盘行信号59SG/KR6数码管g段/键盘行信号610DP/KR7数码管dp段/键盘行信号711GND接地12DIG6/KC6数码管位选信号6/键盘列信号62022-12-1469引脚序号引脚名称功能描述13DIG7/KC7

20、数码管位选信号7/键盘列信号714/INT键盘中断请求信号,低电平(下降沿)有效15/RST复位信号,低电平有效16Vcc电源,+3.35.5V17OSC1晶振输入信号18OSC2晶振输出信号19SCLI2C总线时钟信号20SDAI2C总线数据信号21DIG5/KC5数码管位选信号5/键盘列信号522DIG4/KC4数码管位选信号4/键盘列信号423SA/KR0数码管a段/键盘行信号024SB/KR1数码管b段/键盘行信号12022-12-14702022-12-14712022-12-14722022-12-14732022-12-14742022-12-14752022-12-147620

21、22-12-14772022-12-1478 2022-12-1479 2022-12-14802022-12-1481d4d3d2d1d0(二进制)d4d3d2d1d0(十进制)显示结果0100109H9010100AHA010110BHb011000CHC01101ODHd01110OEHE01111OFHF1000010HG1000111HH2022-12-14821100119Ht2022-12-1483d4d3d2d1d0(二进制)d4d3d2d1d0(十进制)显示结果110101AHU110111BHy111001CHc111011DHh111101EHT111111FH(无显示)

22、2022-12-1484 2022-12-1485在8个数码管上从左到右显示”20100725”,参考程序清单如下:SDABIT P1.0SCL BIT P1.1WSLA EQU 070H;ZLG7290器件的写地址RSLA EQU 071H;ZLG7290器件的读地址 ORG0000H LJMP 0100H ORG0100H ;主程序START:MOV30H,#02H;变量缓冲区定义显示“20100725”MOV31H,#00H;MOV32H,#01H;MOV33H,#00HMOV34H,#00H2022-12-1486MOV35H,#07HMOV36H,#02HMOV37H,#05HMOV

23、DPTR,#LEDSEG;数据指针指向字型码表首地址CLRAMOVR7,#08HMOVR0,#40HMOVR1,#30HLOOP1:MOVA,R1 ;从变量缓冲区取出要形式的数字MOVCA,A+DPTR ;查表得字型码MOVR0,A ;将字型码存储到40H开始的单元中INCR1INCR0DJNZ R7,LOOP12022-12-1487LOOP:MOVR7,#08HMOVR0,#40H ;字型码首地址送R0MOVR2,#10H ;ZLG7290内部显示缓冲区首地址送R2MOVR3,#WSLA ;ZLG7290器件的写地址送R3LCALL WRNBYT ;调用显示子程序LCALL DELAYSJ

24、MP LOOP LEDSEG:DB 0FCH,60H,0DAH,0F2H,66H,0B8H,0BEH,0E4H ;0-F共阴字型码表 DB 0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH DELAY:MOV R5,#00H ;延时子程序 DELAY1:MOV R6,#00H DJNZ R6,$DJNZ R5,DELAY1 RET END2022-12-1488上述调用的相关的I2C子程序(WRNBYT,WRBYT,STOP,CACK,START)参见9.2.2节的内容。采用C语言编写的参考程序#include“reg51.h”#include“intrins.h”#def

25、ine DEPLAY5US _nop_();_nop_();_nop_();_nop_();_nop_();sbit SDA=P10;sbit SCL=P11;#define WSLA0 0 x70#define RSLA0 0 x71#define uchar unsigned charvoid STA(void);void STOP(void);void CACK(void);2022-12-1489void Sendbyte(unsigned char*p);void Sendnbyte(uchar*s3,uchar*s2,uchar*s0,uchar n);void DELAY();v

26、oid main()uchar n,i,m,*c,*y,*x,wsubsla=0 x10,WSLA=WSLA0;uchar a8=2,0,1,0,0,7,2,5;/*显示字符*/uchar b8;/*存放显示字符对应的字型码*/uchar zxm16=0 xfc,0 x60,0 xda,0 xf2,0 x60,0 xda,0 xf2,0 x66,0 xbe,0 xe4,0 xfe,0 xf6,0 xee,0 x3e,0 x9c,0 x7a,0 x9e,0 x8e;/*0-F的字型码*/for(i=0;i8;i+)m=ai;/*取当前显示字符*/bi=zxmm /*查得显示字符的字型码*/202

27、2-12-1490while(1)x=&WSLA;/*取ZLG7290器件的写地址*/c=&wsubsla;/*取ZLG7290器件的内部显示缓冲寄存器的地址*/y=b;/*获得显示字符的字型码地址*/n=8;Sendnbyte(x,c,y,n);/*调用写多字节的显示子程序*/DELAY();void DELAY()unsigned char i,j;for(i=0;i100;i+)for(j=0;j100;j+);2022-12-1491上述程序调用的相关的I2C子程序(Sendbyte()、Sendnbyte()、Stare()、stop()、ack()、nack()、cack()参见9

28、.2.2的内容。SDA BITP1.0SCLBITP1.1WSLAEQU070H ;ZLG7290器件的写地址RSLAEQU071H ;ZLG7290器件的读地址ORG 0000HLJMP0100HORG0003H ;中断入口LJMP INT_7290 ;键盘中断服务ORG 0100H2022-12-1492START:MOV SP,#60HSETB EA ;开INT0中断SETB EX0SETB IT0 ;触发极性为下降沿MOV30H,#0DH ;变量缓冲区(存放显示字符在字型码表中的偏移地址)MOV31H,#10HMOV32H,#11HMOV 33H,#10HMOV34H,#02H MOV

29、 35H,#13H;MOV36H,#13H;MOV37H,#13H;通过查表建立显示缓冲区(40H-47H)2022-12-1493MOV DPTR,#LEDSEG ;开始对变量查表MOVR7,#8 ;写入数据个数MOVR0,#30H;源数据块首地址MOVR1,#40H ;当前字符字形码表显示缓冲区LOOP1:MOVA,R0MOVC A,A+DPTR ;查表得对应的字形码MOV R1,A ;送显示缓冲区INCR1INCR0DJNZ R7,LOOP1;向7290B写入数据,以显示“data=XX”,最后两位为键值的十进制显示2022-12-1494LOOP:MOVR7,#8 MOV R2,#10

30、H ;ZLG7290器件的内部显示缓冲寄存器的地址 MOV R3,#WSLA ;ZLG7290器件的写地址送R2 MOV R0,#40H ;当前字符字形码表显示缓冲区地址送R0 LCALL WRNBYT ;调显示子程序 LCALL DELAY ;使显示稳定 SJMP LOOPLEDSEG:DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E4H ;0-7的字形码 DB 0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH ;8-F的字形码 DB 0FAH,1EH,12H,00H;a,t,=和熄灭码CF:PUSH 02H ;将A中的数据拆分为两个四位16进

31、制数并查表2022-12-1495 PUSH DPH;PUSH DPLMOVDPTR,#LEDSEGMOVR2,AANLA,#0FHMOVCA,A+DPTRMOVR3,AMOVA,R2SWAPAANLA,#0FHMOVCA,A+DPTRMOV R4,APOPDPLPOPDPHPOP02HRET2022-12-1496;中断服务程序INT_7290:(读取健值、拆分并转换成字型码更新46H和47H单元内容,以便刷新显示)INT_7290:NOP PUSH 00HPUSH 02HPUSH 03HPUSH 04HPUSH 07HPUSH ACCPUSH PSWMOVR0,#20H;状态数据区首址MO

32、VR7,#04H;取状态数据个数MOVR2,#00H;内部数据首地址2022-12-1497 MOVR3,#WSLA ;取器件地址(写)MOVR4,#RSLA ;取器件地址(读)LCALL RNBYTE ;读出7290的4个寄存器(地址为00H03H)数据存于20H-23H NOP MOVA,21H;取21H单元的键值 LCALL CF;拆分、查表 MOV47H,R3;送显示缓冲区(最低两位数码管的字型码在46H、47H中)MOV46H,R4 POP PSW POPACC POP07H POP04H 2022-12-1498 POP 03H POP 02H POP 00H RETI DELAY

33、:MOV R6,#00H DELAY 1:MOV R5,#00H DJNZ R5,$DJNZ R6,DELAY1 RET END相关的I2C子程序(WRNBYT、RNBYTE、WRBYT、STOP、CACK、STA),参见9.2.2的内容。2022-12-1499采用C语言编写的参考程序#include“reg51.h”#include“intrins.h”#define DELAY5US _nop_();_nop()_;_nop_();_nop()_;_nop_();sbit SDA=P10;sbit SCL=P11;#define unsigned char uchar#define WS

34、LA1 0 x70;/*7290器件地址*/#define RSLA1 0 x71;void start(void);/*函数声明*/void stop(void);void mack(void);2022-12-14100void nmack(void);void cack(void);void Sendbyte(unsigned char*p);void Rcvbyte(unsigned char*p);void Sendnbyte(unsigned char*s3,unsigned char*s2,unsigned char*s0,unsigned char n);void Rcvnby

35、te(unsigned char*s3,unsigned char*s4,unsigned char*s2,unsigned char*s0,unsigned char n);uchar zxm8;uchar code b20=0 xfc,0 x60,0 xda,0 xf2,0 x66,0 xb6,0 xde,0 xe4,0 xfe,0 xf6,0 xee,0 x3e,0 x9c,0 x7a,0 x9e,0 x8e,0 xfa,0 x1e,0 x12,0 x00;/*0-F字型码,最后4个依次为a,t,=和熄灭的字型码*/2022-12-14101void DELAY();void main(

36、)uchar n,i,*c,*y,*x,wsubsa=0 x10,WSLA=WSLA1;uchar a8=0 x0d,0 x10,0 x11,0 x10,0 x12,0 x13,0 x13,0 x13;/*变量缓冲区(存放显示字符在字型码表中的偏移地址)*/for(i=0;i4;i=i&0 x0f;zxm6=bi;2022-12-14103void DELAY()unsigned char i,j;for(i=0;i100;i+)for(j=0;j0;i-)/*循环写8位(先低位,后高位)*/DQ=0;/*产生15us的负脉冲*/delay(1);DQ=data&0 x01;/*将当前数据位送

37、数据线*/data=data1;/*将下一位数据移到最低位*/delay(5);/*延时60us*/DQ=1;/*数据线拉高,为写入下一位做准备*/delay(1);2022-12-141222022-12-14123汇编语言程序:DQ BIT P1.0 DELAY15US:MOV R7,#07H DJNZ R7,$RET DELAY60US:MOV R7,#1EH DJNZ R7,$RET READ_BYTE:MOV R7,#08H ;读DS18B20的一个字节并放在累加器A中 SETB DQ NOP NOP2022-12-14124LOOP:CLR DQ NOPNOPNOPSETB DQC

38、ALLDELAY15USMOV C,DQ ;读取数据放入CYCALLDELAY60USRRC A ;读出的数据右移进累加器A中SETB DQCALL DELAY15USDJNZ R7,LOOPCALL DELAY60USRET2022-12-14125C语言程序:Sbit DQ=P10;unsigned char bdata datSbit dat7=dat7;void delay(unsigned int i)unsigned int j;for(j=i;j0;j-);2022-12-14126unsigned char rdbyte(void)unsigned char i;dat=0;/

39、*读出数据初值为0*/for(i=8;i0;i-)/*循环读8位(先低位,后高位)*/DQ=0;/*产生1us的负脉冲*/_nop_();DQ=1;/*数据总线拉高,延时15us*/delay(1);dat7=DQ;/*读取数据*/delay(4);/*延时60us*/dat=dat1;/*读出数据右移一位*/DQ=1;/*数据线拉高,为写入下一位做准备*/_nop_();return(dat);2022-12-141272022-12-141282022-12-141292022-12-141302022-12-141312022-12-14132温度值(温度值()输出二进制码输出二进制码十六进制表示十六进制表示+125+1250000 0111 1101 00000000 0111 1101 000007D0H07D0H+25.75+25.750000 0001 1001 11000000 0001 1001 1100019CH019CH2022-12-14133 2022-12-141342022-12-141352022-12-141362022-12-14137

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第9章-串行总线接口技术课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|