第九章串行总线接口技术剖析课件.ppt(137页)

上传人(卖家):ziliao2023 文档编号:7968217 上传时间:2024-09-15 格式:PPT 页数:137 大小:2.34MB
下载 相关 举报
第九章串行总线接口技术剖析课件.ppt(137页)_第1页
第1页 / 共137页
第九章串行总线接口技术剖析课件.ppt(137页)_第2页
第2页 / 共137页
第九章串行总线接口技术剖析课件.ppt(137页)_第3页
第3页 / 共137页
第九章串行总线接口技术剖析课件.ppt(137页)_第4页
第4页 / 共137页
第九章串行总线接口技术剖析课件.ppt(137页)_第5页
第5页 / 共137页
点击查看更多>>
资源描述

1、12023-9-212023-9-2122023-9-213 2023-9-2142023-9-2152023-9-2162023-9-217 2023-9-2182023-9-2192023-9-21102023-9-21112023-9-2112sbit 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为低选中TLC549*/_nop_();2

2、023-9-2113for(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+)2023-9-2114 2023-9-21152023-9-21162023-9-2117 2023-9-

3、21182023-9-2119 2023-9-21202023-9-2121 2023-9-2122设要转换的数据放在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/A MOV R5,#16 ;将16位数据从D

4、IN端移进内部的16位移位寄存器2023-9-2123 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 2023-9-2124D/A转换C语言程序:sbit DA_clk=P10;/*引脚定义*/sbit DA_ cs=P11;sbit DA_in=P12;void delay_s(unsigned char n)/*延时*/u

5、nsigned 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位移位寄存器*/2023-9-2125 DA_data=DA_data

6、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);2023-9-2126 2023-9-21272023-9-2128 2023-9-21292023-9-21302023-9-21312023-9-2132 2023-9-21332023-9-2134(2023-9-2135。2023-9-2136SCL BIT P1.1;汇编语言定义端口;汇编语言

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

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

9、*将SDA清0,SCL置1*/SCL=1;DELAY5US;SDA=1;/*当SCL为高电平时,SDA由低变高*/DELAY5US;SCL=0;2023-9-2141汇编语言程序:MACK:CLR SDA ;发送应答信号MACKSETB SCLNOPNOPNOPNOPNOPCLR SCLSETB SDARET2023-9-2142C语言程序:void ack(void)/*产生应答信号*/SDA=0;/*SDA先清0,发应答信号*/SCL=1;/*SCL由低变高,产生一个时钟*/DELAY5US;/*延时5us*/SCL=0;/*SCL变低,以便继续接收*/SDA=1;2023-9-2143汇

10、编语言程序:NACK:SETB SDA ;发送应答信号NACKSETB SCLNOPNOPNOP NOPNOPCLR SCLCLR SDARET2023-9-2144C语言程序:void nack(void)SDA=1;/*DA先置1,发非应答信号*/SCL=1;/*SCL由低变高,产生一个时钟*/DELAY5US;SCL=0;/*时钟线SCL恢复到低电平*/SDA=0;2023-9-2145汇编语言程序(F0=1通信失败):CACK:SETB SDA ;发送应答信号CACKSETB SCLCLR F0MOV C,SDAJNC CENDSETB F0 CEND:CLR SCLRET2023-9

11、-2146C语言程序:void cack(void)SDA=1;/*SDA先置1,发非应答信号*/SCL=1;/*SCL由低变高,产生一个时钟*DELAY5US;ack=0;if(SDA=1)ack=1;SCL=0;/*时钟线SCL恢复到低电平*/2023-9-2147 汇编语言程序:;从A中取一个字节数据写向I2C总线WRITE_BYTE:MOV R7,#8;写8位WRITE_LOOP:RLC A ;发送A中数据 MOV SDA,C SETB SCL NOP NOP NOP NOP NOP CLR SCL DJNZ R7,WRITE_LOOP RET2023-9-2148C语言程序:/*将指

12、针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;/*准备下一位要发送的数据*/2023-9-2149;从I2C总线接收一个字节 数据放在A中RDBYTE:MOV R7,#8;写8位RD_LOOP:SETB SDA SETB S

13、CL 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_LOOPRET2023-9-2150C语言程序:/*接收一个字节数据放在P指向单元*/uchar RcvByte(uchar*P)uchar n,temp;for(n=0;n8;n+)/*一字节为8位,循环8次*/SDA=1;/*置数据线SDA为高,进入接收方式*/SCL=1;/*SCL由低变高,产生一个时钟*/DELAY

14、5US;temp=temp1;if(SDA=1)temp=temp0X01 ELSE temp=temp&0 xfe;SCL=0;/*时钟线SCL清0*/*p=temp;2023-9-21512023-9-2152WNBYTE: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_BYTE LCALL CACKJB F0,WRBYTEINC R0DJNZ R7,WRDALCALL S

15、TOPRET 2023-9-21532023-9-21542023-9-2155汇编语言程序:;多字节读操作子程序RNBYTE;入口参数:R7写入的字节数,R0写入数据的首地址,R2从器件地址内部地址,R3从器件写地址,R4从器件读地址RNBYTE:LCALL STARTMOV A,R3 ;取从器件写地址LCALL WRITE_BYTE;写从器件地址LCALL CACK;检测应答信号JB F0,RNBYTE;无应答重新开始MOV A,R2 ;取从器件地址内部地址LCALL WRITE_BYTELCALL CACKJB F0,RNBYTELCALL START2023-9-2156MOV A,R

16、4 ;取从器件读地址LCALL WRITE_BYTELCALL CACKJB F0,RNBYTERDN:LCALL RDBYTE ;接收一个字节数据MOV R0,ADJNZ R7,ACKLCALL MNACK ;接收完发非应答信号LCALL STOPACK:LCALL MACK ;没接收完发应答信号INC R0SJMP RDN2023-9-2157C语言程序:/*多字节读操作子程序RNBYTE/*入口参数:n写入的字节数,s0读数据存放的首地址,s2从器件地址内部地址,s3从器件写地址,s4从器件读地址*/viod Rcvnbyte(uchar*s3,uchar*s4,uchar*s2,uch

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

18、1;i+)/*对前n-1个字节发应答信号*/RcvByte(s0);/*接收数据*/ack();/*发送应答信号*/s+;RcvByte(s0);/*接收最后一个字节*/nack();/*发送非应答信号*/stop();/*发结束信号,结束本次数据传送*/2023-9-2159 2023-9-21602023-9-2161 2023-9-21622023-9-2163 2023-9-21642023-9-21652023-9-21662023-9-2167)2023-9-2168引脚序号引脚名称功能描述1SC/KR2数码管c段/键盘行信号22SD/KR3数码管d段/键盘行信号33DIG3/KC

19、3数码管位选信号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/键盘列信号62023-9-2169引脚序号引脚名称功能描述13DIG7/KC7数码管位选信号7/键盘列信号714/INT键盘中断请求信号,低电平(下降沿)有效15/RST复位信号,低电平有效16Vcc电源,+3.35

20、.5V17OSC1晶振输入信号18OSC2晶振输出信号19SCLI2C总线时钟信号20SDAI2C总线数据信号21DIG5/KC5数码管位选信号5/键盘列信号522DIG4/KC4数码管位选信号4/键盘列信号423SA/KR0数码管a段/键盘行信号024SB/KR1数码管b段/键盘行信号12023-9-21702023-9-21712023-9-21722023-9-21732023-9-21742023-9-21752023-9-21762023-9-21772023-9-2178 2023-9-2179 2023-9-21802023-9-2181d4d3d2d1d0(二进制)d4d3d2

21、d1d0(十进制)显示结果0100109H9010100AHA010110BHb011000CHC01101ODHd01110OEHE01111OFHF1000010HG1000111HH2023-9-21821100119Ht2023-9-2183d4d3d2d1d0(二进制)d4d3d2d1d0(十进制)显示结果110101AHU110111BHy111001CHc111011DHh111101EHT111111FH(无显示)2023-9-2184 2023-9-2185在8个数码管上从左到右显示”20100725”,参考程序清单如下:SDABIT P1.0SCL BIT P1.1WSLA

22、 EQU 070H;ZLG7290器件的写地址RSLA EQU 071H;ZLG7290器件的读地址 ORG0000H LJMP 0100H ORG0100H ;主程序START:MOV30H,#02H;变量缓冲区定义显示“20100725”MOV31H,#00H;MOV32H,#01H;MOV33H,#00HMOV34H,#00H2023-9-2186MOV35H,#07HMOV36H,#02HMOV37H,#05HMOVDPTR,#LEDSEG;数据指针指向字型码表首地址CLRAMOVR7,#08HMOVR0,#40HMOVR1,#30HLOOP1:MOVA,R1 ;从变量缓冲区取出要形式

23、的数字MOVCA,A+DPTR ;查表得字型码MOVR0,A ;将字型码存储到40H开始的单元中INCR1INCR0DJNZ R7,LOOP12023-9-2187LOOP:MOVR7,#08HMOVR0,#40H ;字型码首地址送R0MOVR2,#10H ;ZLG7290内部显示缓冲区首地址送R2MOVR3,#WSLA ;ZLG7290器件的写地址送R3LCALL WRNBYT ;调用显示子程序LCALL DELAYSJMP LOOP LEDSEG:DB 0FCH,60H,0DAH,0F2H,66H,0B8H,0BEH,0E4H ;0-F共阴字型码表 DB 0FEH,0F6H,0EEH,3E

24、H,9CH,7AH,9EH,8EH DELAY:MOV R5,#00H ;延时子程序 DELAY1:MOV R6,#00H DJNZ R6,$DJNZ R5,DELAY1 RET END2023-9-2188上述调用的相关的I2C子程序(WRNBYT,WRBYT,STOP,CACK,START)参见9.2.2节的内容。采用C语言编写的参考程序#include“reg51.h”#include“intrins.h”#define DEPLAY5US _nop_();_nop_();_nop_();_nop_();_nop_();sbit SDA=P10;sbit SCL=P11;#define

25、WSLA0 0 x70#define RSLA0 0 x71#define uchar unsigned charvoid STA(void);void STOP(void);void CACK(void);2023-9-2189void Sendbyte(unsigned char*p);void Sendnbyte(uchar*s3,uchar*s2,uchar*s0,uchar n);void DELAY();void main()uchar n,i,m,*c,*y,*x,wsubsla=0 x10,WSLA=WSLA0;uchar a8=2,0,1,0,0,7,2,5;/*显示字符*/

26、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 /*查得显示字符的字型码*/2023-9-2190while(1)x=&WSLA;/*取ZLG7290器件的写地址*/c=&wsubsla;/*取ZLG7290器件的内部显示缓冲寄存器的地址*/y=b;/*获得显

27、示字符的字型码地址*/n=8;Sendnbyte(x,c,y,n);/*调用写多字节的显示子程序*/DELAY();void DELAY()unsigned char i,j;for(i=0;i100;i+)for(j=0;j100;j+);2023-9-2191上述程序调用的相关的I2C子程序(Sendbyte()、Sendnbyte()、Stare()、stop()、ack()、nack()、cack()参见9.2.2的内容。SDA BITP1.0SCLBITP1.1WSLAEQU070H ;ZLG7290器件的写地址RSLAEQU071H ;ZLG7290器件的读地址ORG 0000HL

28、JMP0100HORG0003H ;中断入口LJMP INT_7290 ;键盘中断服务ORG 0100H2023-9-2192START:MOV SP,#60HSETB EA ;开INT0中断SETB EX0SETB IT0 ;触发极性为下降沿MOV30H,#0DH ;变量缓冲区(存放显示字符在字型码表中的偏移地址)MOV31H,#10HMOV32H,#11HMOV 33H,#10HMOV34H,#02H MOV 35H,#13H;MOV36H,#13H;MOV37H,#13H;通过查表建立显示缓冲区(40H-47H)2023-9-2193MOV DPTR,#LEDSEG ;开始对变量查表MO

29、VR7,#8 ;写入数据个数MOVR0,#30H;源数据块首地址MOVR1,#40H ;当前字符字形码表显示缓冲区LOOP1:MOVA,R0MOVC A,A+DPTR ;查表得对应的字形码MOV R1,A ;送显示缓冲区INCR1INCR0DJNZ R7,LOOP1;向7290B写入数据,以显示“data=XX”,最后两位为键值的十进制显示2023-9-2194LOOP:MOVR7,#8 MOV R2,#10H ;ZLG7290器件的内部显示缓冲寄存器的地址 MOV R3,#WSLA ;ZLG7290器件的写地址送R2 MOV R0,#40H ;当前字符字形码表显示缓冲区地址送R0 LCALL

30、 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进制数并查表2023-9-2195 PUSH DPH;PUSH DPLMOVDPTR,#LEDSEGMOVR2,AANLA,#0FHMOVCA,A+DPTRMOVR3,AMOVA,R2SWA

31、PAANLA,#0FHMOVCA,A+DPTRMOV R4,APOPDPLPOPDPHPOP02HRET2023-9-2196;中断服务程序INT_7290:(读取健值、拆分并转换成字型码更新46H和47H单元内容,以便刷新显示)INT_7290:NOP PUSH 00HPUSH 02HPUSH 03HPUSH 04HPUSH 07HPUSH ACCPUSH PSWMOVR0,#20H;状态数据区首址MOVR7,#04H;取状态数据个数MOVR2,#00H;内部数据首地址2023-9-2197 MOVR3,#WSLA ;取器件地址(写)MOVR4,#RSLA ;取器件地址(读)LCALL RN

32、BYTE ;读出7290的4个寄存器(地址为00H03H)数据存于20H-23H NOP MOVA,21H;取21H单元的键值 LCALL CF;拆分、查表 MOV47H,R3;送显示缓冲区(最低两位数码管的字型码在46H、47H中)MOV46H,R4 POP PSW POPACC POP07H POP04H 2023-9-2198 POP 03H POP 02H POP 00H RETI DELAY:MOV R6,#00H DELAY 1:MOV R5,#00H DJNZ R5,$DJNZ R6,DELAY1 RET END相关的I2C子程序(WRNBYT、RNBYTE、WRBYT、STOP

33、、CACK、STA),参见9.2.2的内容。2023-9-2199采用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 WSLA1 0 x70;/*7290器件地址*/#define RSLA1 0 x71;void start(void);/*函数声明*/void stop(void);void mack(void);

34、2023-9-21100void 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 Rcvnbyte(unsigned char*s3,unsigned char*s4,unsigned char*s2,unsigned char*s0,unsigned char n);uchar zxm8;u

35、char 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,=和熄灭的字型码*/2023-9-21101void DELAY();void main()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;

36、/*变量缓冲区(存放显示字符在字型码表中的偏移地址)*/for(i=0;i4;i=i&0 x0f;zxm6=bi;2023-9-21103void 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;/*将当前数据位送数据线*/data=data1;/*将下一位数据移到最低位*/delay(5);/*延时60us*/DQ=1;/*数据线拉高,为写入下一位做准备*/delay(1);2023-9-211222023-9-

37、21123汇编语言程序: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 NOP2023-9-21124LOOP:CLR DQ NOPNOPNOPSETB DQCALLDELAY15USMOV C,DQ ;读取数据放入CYCALLDELAY60USRRC A ;读出的数据右移进累加器A中SETB DQCALL DELAY15USDJNZ R7,LOOPCALL DELA

38、Y60USRET2023-9-21125C语言程序:Sbit DQ=P10;unsigned char bdata datSbit dat7=dat7;void delay(unsigned int i)unsigned int j;for(j=i;j0;j-);2023-9-21126unsigned char rdbyte(void)unsigned char i;dat=0;/*读出数据初值为0*/for(i=8;i0;i-)/*循环读8位(先低位,后高位)*/DQ=0;/*产生1us的负脉冲*/_nop_();DQ=1;/*数据总线拉高,延时15us*/delay(1);dat7=DQ

39、;/*读取数据*/delay(4);/*延时60us*/dat=dat1;/*读出数据右移一位*/DQ=1;/*数据线拉高,为写入下一位做准备*/_nop_();return(dat);2023-9-211272023-9-211282023-9-211292023-9-211302023-9-211312023-9-21132温度值(温度值()输出二进制码输出二进制码十六进制表示十六进制表示+125+1250000 0111 1101 00000000 0111 1101 000007D0H07D0H+25.75+25.750000 0001 1001 11000000 0001 1001 1100019CH019CH2023-9-21133 2023-9-211342023-9-211352023-9-211362023-9-21137

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

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

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


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

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


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