低通数字滤波器设计.doc_第1页
低通数字滤波器设计.doc_第2页
低通数字滤波器设计.doc_第3页
低通数字滤波器设计.doc_第4页
低通数字滤波器设计.doc_第5页
免费预览已结束,剩余18页可下载查看

下载本文档

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

文档简介

指导教师评定成绩: 审定成绩: 重 庆 邮 电 大 学自 动 化 学 院综合课程设计报告低通数字滤波器设计单位(二级学院): 自动化 学 生 姓 名: 专 业: 自动化 班 级: 0810902 学 号: 指 导 教 师: 设计时间:2012 年11月重庆邮电大学自动化学院制摘要本次设计以AT89S52单片机为控制器件,利用AD/DA转换芯片构成低通数字滤波器。首先利用MATLAB根据要求设计低通滤波器模型并在该平台进行初步仿真得到较为理想的效果。接着利用proteus软件搭建硬件电路,并对编写的程序进行检测;程序检测无误后,再用Protel画出电路图。首先利用ADC0809将模拟信号转换成数字信号输入单片机,正弦模拟信号由AD9850模块产生,是一般正常的低频正弦波;另一个噪声信号是通过单片机产生的高频脉冲信号。然后通过滤波程序将采集的数据进行算法滤波,滤波后的数据通过DAC0832输出,将DA0832的输出信号通过一级运放(UA741)转换成电压输出。最后将运放输出的结果接到示波器上进行显示。关键字:AT89C51、DDS、ADC0809、DAC0832、UA741设计题目题目与要求低通滤波器是允许低频讯号通过,而不允许高频讯号通过的滤波器。本题目要求用单片机(型号任选)制作一个低通数字滤波器,要求:1. 根据确定的采样频率,用MATLAB设计低通滤波器模型以满足不同截止频率需求,并进行仿真;2. 用单片机设计并制作一个低通数字滤波器,实现数据采集、滤波处理、信号输出等功能(包括软、硬件);3. 滤波器能与PC机通信,设计通信协议,实现截止频率参数的调节、原始信号采样数据与滤波后数据的上传;4. 利用高级语言开发工具,设计PC机端的程序,可以调节滤波器参数,接收滤波器上传的原始信号采样数据与滤波后数据,并能绘图、保存;5. 设计几种不同频率、类型的噪声,利用滤波器进行试验,记录实验情况并进行分析、总结;6. 按规定的统一格式设计报告。目录第一章 MATLAB仿真21.1方案论证21.2设计方法及原理介绍21.3 matlab编程实现31.4 Simulink仿真结构图4第二章 硬件设计方案42.1硬件功能整体设计42.2单片机最小系统42.3 ADC0809和74HC7452.4 DAC0832和UA74162.5 串口部分62.6 DDS部分7第三章 软件设计83.1 单片机软件设计83.2 PC机通信软件设计9第四章 心得体会10参考文献10附件1:方波源程序11附件2:DDS正弦信号模块12附件3:主单片机程序15附录4:protues原理图16附录5:protel电路图16附录6:DDS原理图17第一章 MATLAB仿真1.1方案论证数字滤波器,按功能分类,可以分成低通、高通、带通、带阻、全通滤波器;按实现的网络结构或单位抽样响应分类:可以分成无限脉冲响应滤波器(IIR滤波器)、有限脉冲响应滤波器(FIR滤波器)。FIR滤波器可以对给定的频率特性直接进行设计,而IIR滤波器目前最通用的方法是利用模拟滤波器的设计方法进行设计。模拟滤波器设计已经有了相当成熟的技术和方法,有完整的设计公式,还有比较完整的图表可以查询,因此我们采用IIR滤波器的设计方法进行本次滤波器的设计。IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。在参考相关数字滤波器设计的资料后,我们决定采用巴特沃斯滤波器设计方法进行本次数字低通滤波器的设计。1.2设计方法及原理介绍在此介绍一下低通滤波器的技术要求:通带截止频率(又称通带上限频率):阻带下限截止频率:通带允许的最大衰减 :阻带允许的最小衰减(,的单位dB):通带上限角频率:阻带下限角频率结合相关资料,总结IIR 巴特沃斯数字低通滤波器的设计步骤如下:(1) .按一定规则将给出的数字滤波器的技术指标转换成模拟低通滤波器的技术指标。在这里要求在频率小于200Hz的通带内,幅度特性下降小于3dB;在频率大于480Hz的阻带内,衰减大于15dB,采样频率为1200Hz。(2) .根据转换后的技术指标设计模拟低通滤波器。因为我们设计的滤波器的冲击响应一般都为实数,所以有这样,如果我们能由,求出,那么就容易得到所需要的。巴特沃思(Butterworth)滤波器的为,其中C为待定常数,N为待定的滤波器阶次。总结后,巴特沃思滤波器的设计步骤分为以下五步:A、 确定技术指标,求得数字边缘频率:,B、将数字低通滤波器的技术指标转换为模拟低通滤波器技术指标用双线性变换法,预畸变公式为,可得C、确定滤波器阶数N,取N1。D、该一阶巴特沃斯归一化模拟低通滤波器的系统函数为:反归一化后的模拟低通滤波器为:E、采用双线性变换法转换为数字低通滤波器的系统函数:脉冲响应不变法设计的滤波器在附近存在哦率混叠失真,从而使其阻带内不满足指标要求,双线性变换法无频率混叠失真,满足要求,但其存在非线性频率失真,且频率越高,失真越明显。1.3 matlab编程实现源程序见附件一,在此介绍几个主要命令的使用方法。(1).N,wc=buttord(wp,ws,p,s)用于计算巴特沃斯数字滤波器的阶数N和3dB截止频率wc。调用参数wp,ws分别为数字滤波器的通带、阻带截止频率的归一化值,要求:0wp1,0ws1。1表示数字频率pi。(2). z0,p0,k0=buttap(N)用于计算N阶巴特沃斯归一化(3dB截止频率c=1)模拟低通原型滤波器系统函数的零、极点和增益因子。(3). b,a=zp2tf(z,p,k)零极点形式的传递函数的转换。(4). bt,at = lp2lp(b,a,Wo)低通滤波器截止频率变换。(5). H,F = freqz(B,A,N,Fs) 计算数字滤波器的频率响应的函数。我们在此设定相关参数,通带上限截止频率fp=200Hz;阻带下限截止频率fs=480Hz;通带最大衰减ap=3dB; 阻带最小衰减as=15dB; 抽样频率Fs=1200Hz。运行程序得到图1.1。通过图形,我们可以看出滤波器的低频增益基本是常数1,高频衰减较快,通带上限截止频率、阻带下限截止频率等关键指标均满足设计要求。1.4 Simulink仿真结构图经过分析,Simulink仿真中应包含如下几个模块:1.信号发生模块。采用两个离散的正弦信号发生器,一个用于产生能通过滤波器的理想信号,一个用于产生被滤波器滤除的噪声信号。2.信号叠加模块。采用一个简单的加法器就能将噪声信号叠加到理想信号上去。3.数字低通滤波器模块。我们采用simulink中自带的digital filter design,它能够很方便地进行数字滤波器的设计,模拟数字低通滤波器的滤波功能。4.信号观测模块。采用示波器模块观察滤波前后波形的变化,从而得出是否有滤波效果。仿真结论:当噪声信号频率较高,高于所设计滤波器的截止频率时,滤波器能够较完全地将噪声信号滤除,经滤波器输出的信号与理想信号相差不大;当噪声信号频率较低,低于所设计滤波器的截止频率时,滤波器不能地将噪声信号滤除,经滤波器输出的信号还有大量噪声信号。第二章 硬件设计方案 2.1硬件功能整体设计1)STC89S52是一款性能相对较低I/O口并不是很多,但是相对较为便宜,性价比相当高,编程比较容易。2)采用DDS模块产生一个低频并且幅值较大的正弦波,利用单片机产生一个高频且幅值较小的模拟噪声脉冲,两个波形通过自制的加法器得到待滤的信号传送给单片机采集处理。3)常用并且熟练的转换器中,主要有ADC0809,本身题目要求的截止频率不高,程序相对较为简单,价格合适,性价比比较好。4)波形显示过程中,将滤波后的信号通过AD0832转换为模拟信号输出,再经过一级运放(UA741)将电流型输出转换为电压输出,输出信号通过示波器显示出来。根据以上的方案选择我们的设计思路基本成熟,通过讨论得到以下的思路方框图2.1:AD转换AT89S52信号输入D/A转换示波器运放图2.1 硬件功能框图整体思路描述:首先给定的信号从A/D转换器的I/O口进入,经过模数转换之后得到成为单片机所能识别的二进制信号再经P0接口输入单片机,根据事先存储在单片机内的程序依次对应,接着通过D/A转换器,转换成模拟信号,由于D/A转换器所得的信号为电流信号,所以需通过UA741运算放大器,将所得的电流信号转换成电压信号,最后在示波器上显示出波形。2.2单片机最小系统单片机内部具有一个高增益反相放大器,用于构成振荡器。通常在引脚XTAL1和XTAL2跨接石晶体和两个补偿电容构成自激振荡器,系统时钟电路结构如图3.3所示,可以根据情况选择6MHz、8MHz或12MHz等频率的石英晶体,补偿电容通常选用2030PF左右的瓷片电容。单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源上,自动实现复位操作。手动复位要求的电源接通下,在单片机运行期间,用按钮开关操作使单片机复位。复位电路结构图2.2所示。上电自动复位通过电容充电来实现。手动按键复位是通过按键将电阻与VCC接通来实现。图2.2 单片机最小系统 2.3 ADC0809和74HC748位逐次逼近式A/D转换器ADC0809内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前应用最广泛的8位通用A/D芯片,内部结构:ADC0809是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。74HC74是一块分频芯片,由于单片机的ALE端口输出的频率为4MHZ的方波,相对于ADC0809,频率太大我们需要进行分频,结合常用的分频芯片我们采用的是74HC74进行4分频得到500KHZ的方波作为ADC0809的转换频率。工作过程:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。 2.4 DAC0832和UA741功能:将波形样值得编码转换成模拟值,完成波形的输出。由一片DAC0832和UA741运放组成。DAC0832 是一个具有两个输入数据寄存器的8位DAC。目前生产的DAC芯片分为两类,一类芯片内部设置有数据寄存器,不需要外加电路就可以直接与微型计算机接口。另一类芯片内没有数据寄存器,输出信号随数据输入线的状态的变化而变化,因此不能直接与微型计算机接口,必须通过并行口与微型计算机接口。DAC0832是具有20条引线的双列直插式CMOS器件,它内部具有两级数据寄存器,完成8位电流D/A转换,股不需要外加电路。DAC0832是电流输出型,示波器上显示波形,通常需要电压信号,电流信号到电压信号的转换可以用运算放大器UA741实现。单片机向DAC0832发送数字编码,产生不同的输出。先利用采样定理对各种波形进行抽样,然后把各种采样值进行编码,收到的数字量存入各个波形表,执行程序时通过查表的方法依次取出,经过D/A转换后输出就可以得到波形。假如N个点构成波形的一个周期,则DAC0832输出N个样点值后,样值点形成运动轨迹,即,一个周期。重复输出N个点后,成为第二个周期。利用单片机的晶振控制输出周期的速度,也就是控制输出的波形的频率图2.5 数/模转换模块2.5 串口部分串行接口Serial Interface是指数据一位位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,并可以利用电话线,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成;成本低但传送速度慢。串行通讯的距离可以从几米到几千米;根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。2.6 DDS部分2.6.1 DDS概述直接数字式频率综合器DDS,实际上是一种分频器:通过编程频率控制字来分频系统时钟以产生所需要的频率。DDS是产生高精度、快速变换频率、输出波形失真小的优先选用技术。DDS以稳定度高的参考时钟为参考源,通过精密的相位累加器和数字信号处理,通过高速D/A变换器产生所需的数字波形(通常是正弦波形),这个数字波经过一个模拟滤波器后,得到最终的模拟信号波形。DDS有两个突出特点:一方面,DDS工作在数字域,一旦更新频率控制字,输出的频率就相应改变,其跳频速率高:另一方面,由于频率控制字的宽度宽,频率分辨率高。2.6.2 DDS工作原理DDS的基本原理是利用采样定理,通过查表法产生波形。DDS的结构有很多种,其基本的电路原理可用图2.6.1来表示。 图2.6.1电路原理 相位累加器由位加法器与位累加寄存器级联构成。每来一个时钟脉冲,加法器将频率控制字与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。 用相位累加器输出的数据作为波形存储器()的相位取样地址,这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到转换器,转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。 DDS在相对带宽、频率转换时间、高分辨力、相位连续性、正交输出以及集成化等一系列性能指标方面远远超过了传统频率合成技术所能达到的水平,为系统提供了优于模拟信号源的性能。AD9850是AD公司生产的最高时钟为125 MHz、采用先进的CMOS技术的直接频率合成器,主要由可编程DDS系统、高性能模数变换器(DAC)和高速比较器3部分构成,能实现全数字编程控制的频率合成。AD9850内含可编程DDS 系统和高速比较器,可实现全数字编程控制的频率合成。可编程DDS系统的核心是相位累加器,由一个加法器和一个N位相位寄存器组成,N 一般为2432。每来一个外部参考时钟,相位寄存器便以步长M递加。相位寄存器的输出与相位控制字相加后可输入到正弦查询表地址上。正弦查询表包含一个正弦波周期的数字幅度信息,每一个地址对应正弦波中0360范围的一个相位点。查询表把输入地址的相位信息映射成正弦波幅度信号,然后驱动DAC 输出模拟量。相位寄存器每过2N/ M 个外部参考时钟后返回到初始状态一次,相应地正弦查询表每经过一个循环也回到初始位置,从而使整个DDS 系统输出一个正弦波。输出的正弦波频率fout = M*fc/ 2的N次方 ,fc 为外部参考时钟频率。AD9850 采用32 位的相位累加器将信号截断成14 位输入到正弦查询表,查询表的输出再被截断成10 位后输入到DAC ,DAC 再输出两个互补的电流。DAC 满量程输出电流通过一个外接电阻RSET调节,典型值3.9千欧。将DAC 的输出经低通滤波后接到AD9850 内部的高速比较器上即可直接输出方波。在125MHz 的时钟下, 32 位频率控制字可使AD9850 输出频率分辨率达0. 0291Hz 。下图为DDS模块图形。图2.6.2 DDS模块第三章 软件设计3.1 单片机软件设计单片机的采样程序设计,ADC0809采集转换完成的状态信号(EOC)置位后我们有三种方式可以将数据正确的送给单片机(定时传送方式,查询方式,外部中断方式),但结合我们的需要,我们选择的是定时器中断采集以便可以通过上位机改变单片机的采样频率,满足不同截止频率的滤波需求。最初的方案选择中我们通过资料发现算法滤波的方式很多,我们选用一阶巴特沃斯滤波器 ,传递函数为,因此本设计采用均值滤波,均值滤波就是通过对信号多次的采样再求其平均值,随着采样次数的增加提高信号的分辨率和降低干扰量的影响。均值滤波的公式为:式中:为第i次采样时的滤波器输入;n为采样次数,Y为取均值后滤波器的输出。在均值滤波中,采样次数与运算量、存储空间是矛盾的。在一定范围内,采样次数n越大。均值滤波的效果越好;但n越大,运算量和存储空间开销就越大。因此,我们要综合考虑三者的关系,选择合适的n的值。开始采样存入数据缓存数据数n?求平均值输出是 图3.1软件流程图3.2 PC机通信软件设计单片机与PC机通信我们采用的的串口通信。通信原理主要依据是串口中断实现下位机与PC机及时通信的,PC机发送给下位机的数据,单片机通过串口中断从缓冲寄存器中读取数据并赋值给下位机软件滤波的参数,实现PC机对截止频率的控制。单片机要将滤波后的数据上传给PC机通过单片机的串口发送,上位机我们采用串口调试助手接收并显示接收到得数据。是开始采样滤波串口中断?上传数据 参数修改图3.2串口程序流程图第四章 心得体会 此次课程设计我组选择的题目是设计低通数字滤波器,在和指导老师进行探讨后,我们首先进行了分工,我主要负责硬件的设计、Proteus电路图的绘制。我组每周闲暇的时候在一起讨论,分析系统的软件和硬件设计,大家都积极参与。我们首先进行了系统设计的设计讨论,在详细了解控制对象和控制要求后确定系统总体方案,分工以后经过和设计软件的同学讨论开始进行硬件设备的选择,经过老师的提醒我们注意了硬件选择时的字长、速度、内存容量、中断能力、外围接口、变送器以及选择执行机构。经过探讨以后,我们开始进行Proteus仿真图的绘制,虽然这时对整体硬件的结构已经有所认识,但是在绘制仿真图的过程中还是遇到了不少的问题。于是我又开始系统的学习Proteus以及protel软件,经过老师的指导和与同学的探讨和请教,我们最终顺利的完成了硬件电路图的设计。这次课程设计给我带来了很大的收获,让我学到了很多,不仅掌握了简单的电子电路的设计与制作,也掌握了一些芯片的原理与作用。在制作电路时,我深深体会到连接电路时一定要认真仔细,而且要确保每条导线接触良好。在接电路之前,一定要把电路的原理搞清楚,通过查资料把电路中的每个元器件的作用弄明白和把每个芯片的管脚的功能弄清楚,明白每个元器件的各个管脚与它哪里相对应,其实最主要的是要搞清楚元器件与元器件之间的连接关系,它们接在一起可以实现哪些功能。在电路设计中,我觉得电路检查是非常重要的一步,从中我们可以学到很多东西,可以提高自己发现问题解决问题的能力,使自己的动手能力有一定的提高。此次课程设计使我进一步掌握了电子电路的测量方法和调试方法,可以独立解决设计与调试过程中出现的一些问题,能够正确选用元器件与材料,并查阅各种有关手册和正确拟写设计报告。通过此次电子电路设计才知道自己学的很多知识都是很不扎实的,这次设计不仅拓展了自己电路方面的相关知识,更重要的是锻炼了实践的能力。 参考文献1 张毅刚,彭喜元,董继成.单片机原理及应用M.高等教育出版社,2003.122 杨素行.模拟电子技术基础简明教程M.高等教育出版社,2007.053 杜刚电路设计与制版protel应用教程清华大学出版社20064 赵晶编著电路设计与制版protel99高级应用人民邮电出版社2000.11附件1:方波源程序#include#include#define uint unsigned int/定义unsigned int 为 uint#define uchar unsigned charuint jishu = 0;sbit time_c = P21; void main() TMOD = 0x22; TH0 = 256-10; TL0 = 256-10; EA=1; /总中断打开 ET0=1; /定时器中断打开 TR0=1; while(1) /P2=P1; void caiyan( ) interrupt 1jishu +;if(jishu = 5*5 ) /周期5毫秒time_c = time_c;jishu = 0;附件2:DDS正弦信号模块# include # include # include sbit ad9850_w_clk =P22; /P2.2口接ad9850的w_clk脚/PIN7sbit ad9850_fq_up =P21; /P2.1口接ad9850的fq_up脚/PIN8sbit ad9850_rest =P20; /P2.0口接ad9850的rest脚/PIN12sbit ad9850_bit_data =P17; /P1.7口接ad9850的D7脚/PIN25/P1为8位数据口/*/ ad9850复位(并口模式) /-/void ad9850_reset()ad9850_w_clk=0;ad9850_fq_up=0;/rest信号ad9850_rest=0;ad9850_rest=1;ad9850_rest=0;/*/ ad9850复位(并口模式) /-/void ad9850_reset_serial()ad9850_w_clk=0;ad9850_fq_up=0;/rest信号ad9850_rest=0;ad9850_rest=1;ad9850_rest=0;/w_clk信号ad9850_w_clk=0;ad9850_w_clk=1;ad9850_w_clk=0;/fq_up信号ad9850_fq_up=0;ad9850_fq_up=1;ad9850_fq_up=0;/*/ 向ad9850中写命令与数据(并口) /-/void ad9850_wr_parrel(unsigned char w0,double frequence)unsigned char w;long int y;double x;/计算频率的HEX值x=4294967295/125;/适合125M晶振/如果时钟频率不为180MHZ,修改该处的频率值,单位MHz !frequence=frequence/1000000;frequence=frequence*x;y=frequence;/写w0数据w=w0; P1=w; /w0ad9850_w_clk=1;ad9850_w_clk=0;/写w1数据w=(y24);P1=w; /w1ad9850_w_clk=1;ad9850_w_clk=0;/写w2数据w=(y16);P1=w; /w2ad9850_w_clk=1;ad9850_w_clk=0;/写w3数据w=(y8);P1=w; /w3ad9850_w_clk=1;ad9850_w_clk=0;/写w4数据w=(y=0);P1=w; /w4ad9850_w_clk=1;ad9850_w_clk=0;/移入始能ad9850_fq_up=1;ad9850_fq_up=0;/*/ 向ad9850中写命令与数据(串口) /-/void ad9850_wr_serial(unsigned char w0,double frequence)unsigned char i,w;long int y;double x;/计算频率的HEX值x=4294967295/125;/适合125M晶振/如果时钟频率不为180MHZ,修改该处的频率值,单位MHz !frequence=frequence/1000000;frequence=frequence*x;y=frequence;/写w4数据w=(y=0);for(i=0;ii)&0x01;ad9850_w_clk=1;ad9850_w_clk=0;/写w3数据w=(y8);for(i=0;ii)&0x01;ad9850_w_clk=1;ad9850_w_clk=0;/写w2数据w=(y16);for(i=0;ii)&0

温馨提示

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

评论

0/150

提交评论