DSP技术小报告_第1页
DSP技术小报告_第2页
DSP技术小报告_第3页
DSP技术小报告_第4页
DSP技术小报告_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、电气信息工程学院dsp技术与综合训练实验报告 班 级 姓 名 学 号 指导老师 2012年9月目 录实验一:液晶显示器控制显示 2 一实验目的2 二实验设备2 三实验原理2 四试验程序4 五实验步骤11 六实验结果与分析11实验二 :键盘输入12 一实验目的12 二实验设备12 三实验原理12 四试验程序13 五实验步骤16 六实验结果与分析16实验三 :蜂鸣器17 一实验目的17 二实验设备17 三实验原理17 四试验程序18 五实验步骤20 六实验结果与分析20实验四:dsp算法实验21实验4.1 :有限冲激响应滤波器(fir)算法实验21 一实验目的21 二实验设备21 三实验原理21

2、四试验程序22 五实验步骤24 六实验结果与分析25实验4.2 :无限冲激响应滤波器(iir)算法实验25 一实验目的25 二实验设备25 三实验原理25 四试验程序27 五实验步骤29 六实验结果与分析29 实验一 液晶显示器控制显示一 实验目的通过实验学习使用5509adsp的扩展i/o端口控制外围设备的方法,了解液晶显示器的显示控制原理及编程方法。二实验设备计算机,icetek-vc5509-a实验箱(或icetek仿真器+icetek-vc5509-a系统板+相关连线及电源)。三 实验原理1emif接口:tms320c5509dsp的扩展存储器接口(emif)用来与大多数外围设备进行连

3、接,典型应用如连接片外扩展存储器等。这一接口提供地址连线、数据连线和一组控制线。icetek-vc5509-a将这些扩展线引到了板上的扩展插座上供扩展使用。2.液晶显示模块的访问、控制是由5509adsp对扩展接口的操作完成。控制口的寻址:命令控制接口的地址为0x602800,数据控制接口的地址为0x602801和0x600802,辅助控制接口的地址为0x600801。3.显示控制方法:液晶显示模块中有两片显示缓冲存储器,分别对应屏幕显示的像素,向其中写入数值将改变显示,写入“1”则显示一点,写入“0”则不显示。其地址与像素的对应方式如下:左侧显示内存右侧显示内存y=016263016263行

4、号db0db0db0db0db0db0db0db0db0db00x=0db7db7db7db7db7db7db7db7db7db77db0db0db0db0db0db0db0db0db0db08db7db7db7db7db7db7db7db7db7db755x=7db0db0db0db0db0db0db0db0db0db056db7db7db7db7db7db7db7db7db7db763-发送控制命令:向液晶显示模块发送控制命令的方法是通过向命令控制接口写入命令控制字,然后再向辅助控制接口写入0。下面给出的是基本命令字、解释和c语言控制语句举例:.显示开关:0x3f打开显示;0x3e关闭显示

5、;.设置显示起始行:0x0c0+起始行取值,其中起始行取值为0至63;.设置操作页:0x0b8+页号,其中页号取值为0-7;.设置操作列:0x40+列号,其中列号为取值为0-63;-写显示数据:在使用命令控制字选择操作位置(页数、列数)之后,可以将待显示的数据写入液晶显示模块的缓存。将数据发送到相应数据控制i/o接口即可。4.液晶显示器与dsp的连接:5.数据信号的传送:由于液晶显示模块相对运行在高主频下的dsp属于较为慢速设备,连接时需要考虑数据线上信号的等待问题;电平转换:由于dsp为3.3v设备,而液晶显示模块属于5v设备,所以在连接控制线、数据线时需要加电平隔离和转换设备,如:icet

6、ek-ctr板上使用了74ls245。6.实验程序流程图:开始初始化dsp时钟初始化emif接口初始化ctr由0到9循环显示数字清屏,设置显示位置四实验程序#include lcd.hunsigned int str080=/教学实验箱0x910,0x914,0x4894,0x88d4,0x7ebf,0x594,0x449c,0x4414,0x2050,0x20f8,0x130f,0xc08,0x3388,0xc078,0x4008,0x00,0x40,0x230,0x210,0x212,0x25c,0x254,0x4250,0x8251,0x7f5e,0x2d4,0x250,0x218,0x

7、257,0x232,0x210,0x00,0x00,0x8210,0x820c,0x4204,0x424c,0x23b4,0x1294,0xa05,0x7f6,0xa04,0x1204,0xe204,0x4214,0x20c,0x204,0x00,0x802,0x8fa,0x482,0x2482,0x40fe,0x3f80,0x2240,0x2c60,0x2158,0x2e46,0x2048,0x3050,0x2c20,0x2320,0x2020,0x00,0x2010,0x1088,0xc87,0x382,0xfff6,0x28a,0xc82,0x12,0xffe8,0x4927,0x492

8、2,0x4926,0x493a,0xffe2,0x02,0x00; unsigned int str116=/教0x910,0x914,0x4894,0x88d4,0x7ebf,0x594,0x449c,0x4414,0x2050,0x20f8,0x130f,0xc08,0x3388,0xc078,0x4008,0x00; unsigned int str216=/学 0x40,0x230,0x210,0x212,0x25c,0x254,0x4250,0x8251,0x7f5e,0x2d4,0x250,0x218,0x257,0x232,0x210,0x00; unsigned int str

9、316=/实0x00,0x8210,0x820c,0x4204,0x424c,0x23b4,0x1294,0xa05,0x7f6,0xa04,0x1204,0xe204,0x4214,0x20c,0x204,0x00; unsigned int str416=/验0x802,0x8fa,0x482,0x2482,0x40fe,0x3f80,0x2240,0x2c60,0x2158,0x2e46,0x2048,0x3050,0x2c20,0x2320,0x2020,0x00; unsigned int str516=/箱0x2010,0x1088,0xc87,0x382,0xfff6,0x28a

10、,0xc82,0x12,0xffe8,0x4927,0x4922,0x4926,0x493a,0xffe2,0x02,0x00; unsigned int str680=/箱验实学教0x2010,0x1088,0xc87,0x382,0xfff6,0x28a,0xc82,0x12, 0xffe8,0x4927,0x4922,0x4926,0x493a,0xffe2,0x02,0x00,0x802,0x8fa,0x482,0x2482,0x40fe,0x3f80,0x2240,0x2c60, 0x2158,0x2e46,0x2048,0x3050,0x2c20,0x2320,0x2020,0x0

11、0,0x00,0x8210,0x820c,0x4204,0x424c,0x23b4,0x1294,0xa05, 0x7f6,0xa04,0x1204,0xe204,0x4214,0x20c,0x204,0x00,0x40,0x230,0x210,0x212,0x25c,0x254,0x4250,0x8251, 0x7f5e,0x2d4,0x250,0x218,0x257,0x232,0x210,0x00,0x910,0x914,0x4894,0x88d4,0x7ebf,0x594,0x449c,0x4414, 0x2050,0x20f8,0x130f,0xc08,0x3388,0xc078,0

12、x4008,0x00; unsigned int lstr80=/教学实验箱0x0820,0x0820,0x7ea0,0x093e,0x0a44,0xff44,0x0844,0x7ea4,0x2428,0x4828,0x8f10,0x7810,0x0828,0x0848,0x2884,0x1102,0x2208,0x1108,0x1110,0x0020,0x7ffe,0x4002,0x8004,0x1fe0,0x0040,0x0180,0xfffe,0x0100,0x0100,0x0100,0x0500,0x0200,0x0200,0x0100,0x7ffe,0x4002,0x8884,0x0

13、480,0x0480,0x1080,0x0880,0x0880,0xfffe,0x0140,0x0220,0x0410,0x1808,0x6004,0x0020,0xf820,0x0850,0x4850,0x4888,0x4904,0x4afa,0x7c00,0x0444,0x0424,0x1d24,0xe4a8,0x4488,0x0410,0x2bfe,0x1000,0x1040,0x1040,0x3f7e,0x2890,0x4508,0x8800,0x08fc,0x7e84,0x0884,0x18fc,0x1c84,0x2a84,0x2afc,0x4884,0x8884,0x08fc;un

14、signed int nscreenbuffer30*128;#define ctrstatus (*(unsigned int *)0x600800) /port8000int w,ww,www;main() unsigned int uwork,* pwork; int x,y,a1,a2,a3,a4,a5,b1,b2,b3,b4,b5,i;int a51,a52,a53,b51,b52,b53;int a41,a42,a43,b41,b42,b43;int a31,a32,a33,b31,b32,b33;int a21,a22,a23,b21,b22,b23;int a11,a12,a1

15、3,b11,b12,b13; pll_init(12);sdram_init(); lcdturnoff(); lcdsetscreenbuffer(nscreenbuffer);for ( uwork=0,pwork=nscreenbuffer;uwork30*128;uwork+,pwork+ )(*pwork)=0;lcdsetdelay(1);lcdturnon();/ 打开显示lcdcls();x = 0;y = 128; lcdputcstring(str0,x,y,5,3);w=0; ww=500,www=5000; while ( 1 ) if ( w )break;a5 =

16、80;b5 = 128;lcdputcstring(str5,a5,b5,1,3);a5 += 5;lcdputcstring(str5,a5,b5,1,3);a4 = 64;b4 = 128;lcdputcstring(str4, a4, b4, 1, 3);a5 += 5;a4 += 5;lcdputcstring(str5,a5,b5,1,3);lcdputcstring(str4,a4,b4,1,3);a3 = 48;b3 = 128;lcdputcstring(str3,a3,b3,1,3);a5 += 5;a4 += 5;a3 += 5;lcdputcstring(str5,a5,

17、b5,1,3);lcdputcstring(str4,a4,b4,1,3);lcdputcstring(str3,a3,b3,1,3);a2 = 32;b2 = 128;lcdputcstring(str2,a2,b2,1,3);a5 += 5;a4 += 5;a3 += 5;a2 += 5;lcdputcstring(str2,a2,b2,1,3);lcdputcstring(str3,a3,b3,1,3);lcdputcstring(str4,a4,b4,1,3);lcdputcstring(str5,a5,b5,1,3);a1 = 16;b1 = 128;lcdputcstring(st

18、r1,a1,b1,1,3);a1 += 5;a2 += 5;a3 += 5;a4 += 5;a5 += 5;lcdputcstring(str1,a1,b1,1,3);lcdputcstring(str2,a2,b2,1,3);lcdputcstring(str3,a3,b3,1,3);lcdputcstring(str4,a4,b4,1,3);lcdputcstring(str5,a5,b5,1,3);a51 = 220;b51 = 128;a52 = 220;b52 = 20;a53 = 0;b53 = 20;a41 = 220;b41 = 128;a42 = 220;b42 = 20;a

19、43 = 0;b43 = 20;a31 = 220;b31 = 128;a32 = 220;b32 = 20;a33 = 0;b33 = 20;a21 = 220;b21 = 128;a22 = 220;b22 = 20;a23 = 0;b23 = 20;a11 = 220;b11 = 128;a12 = 220;b12 = 20;a13 = 0;b13 = 20;/a3 = 16;for (i=0; i1024; i+)while(1) /xiangif (a5 20)lcdputcstring(str5,a51,b51,1,3);b51 -= 10;else if (a52 -1)lcdp

20、utcstring(str5,a52,b52,1,3);a52 -= 10;else if (b53 128)lcdputcstring(str5,a53,b53,1,3);b53 += 10; /yanif (a4 20)lcdputcstring(str4,a41,b41,1,3);b41 -= 10;else if (a42 -1)lcdputcstring(str4,a42,b42,1,3);a42 -= 10;else if (b43 128)lcdputcstring(str4,a43,b43,1,3);b43 += 10;/shiif (a3 20)lcdputcstring(s

21、tr3,a31,b31,1,3);b31 -= 10;/a3 = 220;else if (a32 -1)lcdputcstring(str3,a32,b32,1,3);a32 -= 10;else if (b33 128)lcdputcstring(str3,a33,b33,1,3);b33 += 10;/xueif (a2 20)lcdputcstring(str2,a21,b21,1,3);b21 -= 10;/a2 = 220;else if (a22 -1)lcdputcstring(str2,a22,b22,1,3);a22 -= 10;else if (b23 128)lcdpu

22、tcstring(str2,a23,b23,1,3);b23 += 10;/ jiaoif (a1 20)lcdputcstring(str1,a11,b11,1,3);b11 -= 10;/a1 = 219;else if (a12 -1)lcdputcstring(str1,a12,b12,1,3);a12 -= 10;else if (b13 128)x = 0;y = 128;lcdputcstring(str0,0,128,5,3);for (i=0; (i50) & (x118 | y0 )b=-b;if ( w )break;lcdcls();/ 清除显示内存 lcdturnof

23、f();lcdsetdelay(0);exit(0);五 实验步骤1实验准备:(1)连接实验设备;(2)将icetek-ctr板的供电电源开关拨动到“开”的位置。2设置code composer studio 2.21在硬件仿真(emulator)方式下运行。3启动code composer studio 2.21:选择菜单debugreset cpu。4打开工程文件:工程目录:c:icetekvc5509as60vc5509as60lab0403-lcdlcd.pjt。浏览lcd.c文件的内容,理解各语句作用。5编译、下载程序。6运行程序观察结果:按照功能描述依次显示;7更改程序中对页、列的

24、设置,实现不同位置的显示。8自己设计一些控制语句,实现不同显示效果。9结束程序运行,退出ccs。六实验结果与分析实验结果:可以观察到液晶显示“教学实验箱”五个字围绕屏幕四周转一圈,最后移到屏幕中央。 分析:灵活使用控制字,可以实现复杂多变的显示。当使用点阵图形显示时需要在dsp内存中建立图形存储缓冲;适当更新显示可取得动画效果。在实际生活中观察点阵显示的霓虹灯广告、交通指示牌、报站牌等领会这种控制的具体应用。实验二 键盘输入一实验目的通过实验学习使用5509dsp的扩展端口接收外围设备信息的方法,了解键盘的使用原理及编程方法。二实验设备计算机,icetek-vc5509-a实验箱(或icete

25、k仿真器+icetek-vc5509-a系统板+相关连线及电源)。三实验原理1emif接口:tms320c5509dsp的扩展存储器接口(emif)用来与大多数外围设备进行连接,典型应用如连接片外扩展存储器等。这一接口提供地址连线、数据连线和一组控制线。icetek-vc5509-a将这些扩展线引到了板上的扩展插座上供扩展使用。2键盘连接原理:3键盘的扫描码由dsp的扩展地址0x602800给出,当有键盘输入时,读此端口得到扫描码,当无键被按下时读此端口的结果为0。各按键的扫描码排列如下所示(scancode.h)。#define scancode_0 0x70#define scancode

26、_1 0x69#define scancode_2 0x72#define scancode_3 0x7a#define scancode_4 0x6b#define scancode_5 0x73#define scancode_6 0x74#define scancode_7 0x6c#define scancode_8 0x75#define scancode_9 0x7d#define scancode_del 0x49#define scancode_enter 0x5a#define scancode_plus 0x79#define scancode_minus 0x7b#def

27、ine scancode_mult 0x7c#define scancode_divid 0x4a#define scancode_num 0x774 实验程序流程图:开始初始化:dsp时钟、emif、icetek-ctr选通发光二极管显示阵列有键盘输入?显示字符否是输入回车键?否是将扫描码转换成字符关闭打开的icetek-ctr设备结束四实验程序#include myapp.h#include icetek-vc5509-edu.h#define ctrled (*(unsigned int *)0x600802) / port8004#define mctrkey (*(unsigned

28、int *)0x602802) / port8005#define ctrclkey (*(unsigned int *)0x600803) / port8006#define ctrstatus (*(unsigned int *)0x600800) /port8000unsigned int uwork1,uwork2,nwork,w;unsigned int led8=0x69,0xc3,0xa5,0x82,0x14,0x8f,0x0e,0x70;void mydelay(unsigned int ndelay);main() int i; pll_init(12); sdram_ini

29、t(); uwork1=0; uwork2=0; nwork=0; ctrled=0xff; ctrgr=0; w=1; for(i=0;i8;i+) ctrled=ledi; mydelay(32); ctrled=0x0; / ctrled=0xff;while(w) mydelay(32); ctrled=0xff; mydelay(32); for(;) uwork1=mctrkey; ctrclkey=0; asm( nop ); uwork2=mctrkey; ctrclkey=0; if(uwork1=uwork2) & (uwork1!=0) nwork|=uwork1; ct

30、rled=nwork;switch(uwork1)case 1:ctrled = led0;mydelay (100);break;case 2:ctrled = led1;mydelay (100);break;case 4:ctrled = led2;mydelay (100);break;case 8:ctrled = led3;mydelay (100);break;case 16:ctrled =led4;mydelay (100);break;case 32:ctrled = led5;mydelay (100);break;case 64:ctrled = led6;mydela

31、y (100);break;case 128:ctrled = led7;mydelay (100);break; if(nwork=255) nwork=0; uwork1=0; uwork2=0; break; exit(0);void mydelay(unsigned int ndelay)int ii,jj,kk=0;for ( ii=0;iindelay;ii+ )for ( jj=0;jj1024;jj+ )kk+;五实验步骤1.实验准备:(1)连接实验设备。(2)连接实验箱附带的键盘的ps2插头到icetek-ctr的“键盘接口”p8。(3)将icetek-ctr板的供电电源开关

32、拨动到“开”的位置。2.设置code composer studio 2.21在硬件仿真(emulator)方式下运行。3.启动code composer studio 2.21:选择菜单debugreset cpu。4.打开工程文件:工程目录:c:icetekvc5509as60vc5509as60lab0404-keykey.pjt。浏览key.c文件的内容,理解各语句作用。5.编译并下载程序。6.运行程序观察结果:运行程序后,按小键盘上的数字键,可以看到发光二极管显示阵列上显示相应的数字。7.退出程序:在小键盘上按“enter”键,程序会退出并停止运行。 8.结束程序运行,退出ccs。六

33、实验结果与分析实验结果:可以观察到发光二极管阵列显示键盘输入字符。分析:实现了按键控制指示灯的实验,每个按键对应的指示灯亮都符合要求;在程序加入分支语句实现对不同键盘输入值的处理或支持控制型按键;修改程序中键值查找表可实现按键的重新布局或修改。实验三 蜂鸣器一实验目的通过实验学习使用5509dsp的扩展端口控制外围设备信息的方法,掌握使用5509dsp通用计时器的控制原理及中断服务程序的编程方法;了解蜂鸣器发声原理和音乐发生方法。二实验设备计算机,icetek-vc5509-a实验箱(或icetek仿真器+icetek-vc5509-a系统板+相关连线及电源)。三实验原理1emif接口:tms

34、320c5509dsp的扩展存储器接口(emif)用来与大多数外围设备进行连接,典型应用如连接片外扩展存储器等。这一接口提供地址连线、数据连线和一组控制线。icetek-vc5509-a将这些扩展线引到了板上的扩展插座上供扩展使用。2蜂鸣器由dsp通用i/o管脚输出控制,可将此管脚上的频率输出转换成声音输出。5509a的通用i/o口s13控制蜂鸣器的输出频率。控制的方法是使用dsp通用定时器设置s13以一定的频率改变高低状态,输出方波。对于通用定时器周期寄存器的设置,计数值为所需频率计数值的二分之一。音乐的频率(c调): c d e f g a b c 1 2 3 4 5 6 7 1c: 26

35、4, 297, 330,352, 396, 440,495, 5283蜂鸣器的连接:由于选用的蜂鸣器所需电流较小,所以采用将dsp通用i/o引脚直接驱动的方式。4实验程序流程图: 中断服务程序开始改变s13引脚的状态(通过不同的定时器周期设置产生不同频率)中断服务程序结束开始初始化:dsp时钟、emif、icetek-ctr选通蜂鸣器设置mcbsp控制寄存器(s13输出)初始化中断向量和定时器初始化音长,音高等参数根据预定的数据切换音符四实验程序#include myapp.h#include icetek-vc5509-edu.h#include scancode.h/ :- define

36、timer 0 s registers -/ ioport unsigned int *tim0; ioport unsigned int *prd0; ioport unsigned int *tcr0; ioport unsigned int *prsc0; / :- end of define -/#define ctrstatus (*(unsigned int *)0x600800) /port8000void initmcbsp();main()int nmusiccount;int nwork; pll_init(12);sdram_init();initmcbsp();ctrs

37、tatus=0x88;ctrstatus=8;ctrstatus=0x88;ctrstatus=8; ctrgr=8;/ buzze=1 打开蜂鸣器, 见icetek-ctr的全局控制寄存器描述 / 设置合适的音长和音高 for ( nwork=0;nworknmusicnumber;nwork+ ) musicnwork0*=10; musicnwork1*=3; musicnwork1/=12; / 设置dx0管脚为通用输出管脚以驱动蜂鸣器/ spcr0&=0x0fffeffff;/ /xrst=0/ pcr0|=0x2000;/ rioen=1 initinterrupt();time_

38、init(); nmusiccount=0; while ( 1 ) nmusiccount+;nmusiccount%=nmusicnumber;if ( musicnmusiccount0=0 )*tcr0&=0x0fffffcff;/ 静音else*prd0=musicnmusiccount0;/ 切换音符*tcr0=0xe0;delay(musicnmusiccount1); void initinterrupt(void)/ 设置中断控制寄存器ivpd=0x80;ivph=0x80;ier0=0x10;dbier0 =0x10;ifr0=0xffff;asm( bclr intm);

39、void interrupt timer()/中断响应函数 pcr0=0x20;void initmcbsp()/ iopin: mcbsp1.fsx s15 /spcr2.xrst_=0,pcr.xioen=1,pcr.fsxm=1,pcr.fsxp=0/1spcr2_1&=0x0fffe;pcr1|=0x2800;void time_init(void)tim0 = (unsigned int *)0x1000;prd0 = (unsigned int *)0x1001;tcr0 = (unsigned int *)0x1002;prsc0 = (unsigned int *)0x1003

40、; *tcr0 = 0x04f0; *tim0 = 0; *prd0 = 0xffff; *prsc0 = 2; *tcr0 = 0x00e0;五实验步骤1实验准备:(1)连接实验设备。(2)连接实验箱附带的键盘的ps2插头到icetek-ctr的“键盘接口”p8。(3)将icetek-ctr板的供电电源开关拨动到“开”的位置。2设置code composer studio 2.21在硬件仿真(emulator)方式下运行。3启动code composer studio 2.21:选择菜单debugreset cpu。4打开工程文件:工程目录:c:icetekvc5509as60vc5509a

41、s60lab0405-speakerspeaker.pjt。浏览main.c文件的内容,理解各语句作用。5编译并下载程序。6运行程序观察结果。7结束程序运行,退出ccs。六实验结果实验结果:可以听到蜂鸣器发出的音乐声。分析:程序中使用循环延时的方法掌握节拍,可考虑使用定时器计数改变音符,更复杂的方法可以产生语音效果。实验四 dsp算法实验实验4.1 有限冲激响应滤波器(fir)算法实验一实验目的1掌握用窗函数法设计fir数字滤波器的原理和方法。2熟悉线性相位fir数字滤波器特性。3了解各种窗函数对滤波器特性的影响。二实验设备pc兼容机一台,操作系统为windows2000(或windows98,windowsxp,以下默认为windows2000),安装code composer studio 2.21软件。三实验原理1有限冲激响应数字滤波器的基础理论(请参考相关书籍)。2模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。3数字滤波器系数的确定方法。4根据要求设计低通fir滤波器。要求:通带边缘频率10khz,阻带边缘频率22khz,阻带衰减75db,采样频率50khz。设计:-过渡带宽度=阻带边缘频率-通带边缘频率=22-10=12khz-采样频率:f1

温馨提示

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

最新文档

评论

0/150

提交评论