(最新整理)基于DSP的温度采集与显示_第1页
(最新整理)基于DSP的温度采集与显示_第2页
(最新整理)基于DSP的温度采集与显示_第3页
(最新整理)基于DSP的温度采集与显示_第4页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、(完整)基于dsp的温度采集与显示(完整)基于dsp的温度采集与显示 编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)基于dsp的温度采集与显示)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为(完整)基于dsp的温度采集与显示的全部内容。摘要 随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域

2、,已经成为一种比较成熟的技术,给出了一个基于dsp技术实现高速度、宽范围、高精度的温度采集系统方案。系统以dsp为控制核心,通过测温电路采集温度数据,经ad转换后给dsp控制器.重点给出叠代法计算方法,dsp与ad转换接口电路以及系统控制软件的设计。关键词:温度采集;dsp;叠代法;ad目 录摘要i第1章 引言1第2章 系统分析22。1 设计要求22.2设计思路2第3章 总体设计33.1系统框图设计33.2 硬件设计3第4章 程序流程图与源程序84.1 软件系统流程图84。2 软件程序设计8第5章 运行结果95.1 运行描述95.2 系统调试95。3 调试结果9第6章 总结10参考文献12致谢

3、13附录14第1章 引 言在国民经济各部门,如电力、石油、化工、机械、冶金、农业、医学以及人们的日常生活中,通常需要对温度进行采集和显示.传统的以单片机为核心的温度采集和显示系统,由于收到处理器自身硬件资源和速度的限制,硬件电路设计复杂,数据实时处理能力差。随着计算机技术尤其是超大规模集成电路技术的发展,具有更强处理能力的dsp芯片,以其运算速度块、实时性强、功耗低、抗干扰能力强等特点愈来愈多地被应用.本文设计了一种以tms320vc33 dsp作为温度采集和显示的核心,应用tms320240efgw型液晶显示模块实时显示信息,并配以rs232通用串行接口与pc机进行通信的系统.该系统具有电路

4、结构简单、功耗低、实时性强、数据传输方便等优点。第2章 系统分析2。1 设计要求 此系统利用热敏电阻测得电阻温度之间的关系,找到电阻和温度之间的代数关系,从而检测温度,设计硬件外扩电路,同时设计软件程序,包括a/d程序设计,进行软硬件联系调试,能在液晶显示屏上显示温度.2.2设计思路系统首先设计温度采集硬件电路,在多次实验运算拟合出热敏电阻输出电压值与温度之间的函数关系,热敏电阻的输出的电压值随温度的上升而下降,呈现出负系数,从而运用于实验中检测温度;然后将采集的温度送入dsptms320f2812模数转换模块将电压信号变为数字信号,再编写函数来控制lcd来显示相应的温度及相关文字。第3章 总

5、体设计3。1系统框图设计该系统包括温度采集电路模块、dspf2812芯片、a/d转换部分和lcd液晶显示,首先要初始化a/d转换模块,然后等待中断,当产生中断后对采集到的模拟信号进行处理,为确保转换精度要进行多次取值求平均,转换结果放在结果寄存器的高12位上,通过编程将处理后的温度值送到lcd上进行显示。温度采集电路dspf2812a/d转换电路液晶显示模块图1 系统设计流程图3.2 硬件设计3。2.1控制芯片控制芯片 32位 t ms320f2812芯片 ,该 dsp芯片专门用于控制领域 ,最高可在 150 mhz主频下工作 ,可进行双 16 16乘加和 32 32乘加操作 ,运算与控制速度

6、快 ,并带有 18 k 16位片上 sram和 128 k 16位片上 flash;并带有两个事件管理模块 ,可以同时产生多路 pwm信号; 16路 12位片上 adc,可以同时进行 16路转换.另外 ,该器件还有 3个独立的 32位cpu定时器以及多达 56个独立编程的 gp i o引脚和 19根外部扩展地址总线.t ms320f2812采用哈佛总线结构 ,具有密码保护机制 ,保护程序和数据不被盗取。因此 ,该芯片片上资源丰富 ,功能多、 性价比高 ,利于简化软硬件设计 ,非常适用于温度采集与显示系统化的设计。在设计的初期,把它分成了五个模块.其中复位采用电源复位的方式,由引脚pcreset

7、引起。为了可靠复位,其中低电平的有效时间至少6个cpu时钟周期.dsp最小系统组成框图如图1所示。 图2 dsp最小系统其中:开关swpb、电容c1、两个反相器及其电阻电源构成了复位电路,晶振与两个并联电容接xtal1与xtal2构成振荡电路,pwm1与pwm7构成了调制信号的输入与输出,旁路引脚接地,请求控制信号mp/mc与gnd接地。3.2.2 a/d转换模块当模/数转换完成后,读取结果寄存器前,最好先读取模/数转换控制寄存器adcrl2的adcfif01或adcfif02,以确定当前结果寄存器的状态,保证读取的结果是正确。另外,要注意12位的转换结果放在结果寄存器中的高12位上,该12位

8、数据与外部模拟输入电压的关系为:12位数字结果=4095(输入电压/基准电压)数模转换部分采用 t ms320f2812内部的 pwm功能结合外部滤波电路完成转换 ,电路如图 5所示.t ms320f2812将内部计算的控制信号转换成占空比可变pwm信号输出 ,为保证 t ms320f2812不受后级返回来的信号干扰 ,故经光电隔离 ,送入 rc组成的滤波网络变换成平滑电压信号再送往后级信号转换电路 ,将信号转换成 420 ma标准信号输出。 图 3d /a转换及标准信号输出电路3.2.3 lcd液晶显示模块dsp经常会对读写周期较慢的输入/输出设备(如液晶显示模块、打印机、键盘等)进行访问,

9、通常以下两种方法来解决dsp与这些慢速设备之间的输入/输出时序匹配问题.直接访问方式是将dsp的读写信号限于慢速设备接口控制板引出的读写信号线直接相连,时序由dsp内部读写逻辑控制。由于慢速外设的读写周期相对dsp较慢,是两者的时序匹配,还必须进行一些时序方面的控制处理.一中处理方法是软件编程等待状态发生器,将外部总线周期扩展到数个机器周期.由于受硬件条件的限制,这种扩展通常也是有限的。此系统中显示器采用液晶显示方式 ,一款基于 sed1335控制器的图形液晶显示模块。lcm320240, 320 240点阵 ,点大小为 0134 0134 mm2,点间距为 0102 mm,内含 7602个简

10、体中文字型。sed1335有较强功能的 i/0 缓冲器 ,可以随时准备接收t ms320f2812 的访问 ,并可在内部时序下及时地把t ms320f2812发来的指令和数据传输到位.t ms320f2812与 lcm3202401的连接方式如图 4示 ,lcm3202401芯片的 xa13: 18 及 xzcs0 /1 经过译码确定lcm3202401 的 片 选 信号 , 其 地 址 范 围 为 0x003a00 0x003aff,数据端口地址为: 0x002a00,命令端口地址为:0x002a01,这些地址映射被到 t ms320f2812的外部区域 0中 ,1d i r与读信号线连接用

11、于控制数据的传输方向 ,通过调节电位器可以调整液晶的显示对比度. 图4 显示电路3。2。4 电源电压模块(1)设计方案mc1403芯片为模数转换提供基准电压,且输入端接+5v电源后再并联一个去噪声的电容,利用热敏电阻进行温度采集,采集后的输出电压(不得大于3。3v)与dsp的p2端口23引脚相连。(2)模块分析mc1403芯片的引脚结构如下图所示。图5 mc1403芯片vin端口输入一个4.55。0v的模拟电压值(接p2口的1引脚),在输入端接一个电容滤除其他频率分量,在vout端输出了一个稳定的电压值(接p2口的23引脚),该电压值不得大于3.3v,gnd端接模拟地(接p2口的33引脚)。3

12、。2.5外扩电路设计图图6 温度采集电路原理图第4章 程序流程图与源程序4。1 软件系统流程图软件系统流程图如图5所示。 开 始初始化dsp时钟初始化ctr初始化ad采样时钟中断采集数据存入voltagel中数据处理后的温度值送到lcd显示清楚并显示相关文字启动ad0通道采集 图5 程序流程图4。2 软件程序设计该程序主要包括主程序、延时、a/d转换,液晶屏相应汉字显示、温度计算与显示等子程序实现温度采集与显示的功能,程序详见附录。第5章 运行结果5。1运行描述m1403芯片作为模数转换提供基准电压,利用热敏电阻进行采集,采集后的输出电压与dsp的p2口23引脚相连。将采集到的电压送入a/d转

13、换模块,编写程序实现a/d转换,转换结果放在结果寄存器的高12位上,编写函数获取a/d转换结果,将处理的温度值的各个对应显示到lcd上。5.2系统调试 mc1403 芯片vin 端输入一个+5v的模拟电压值;在输入端接一个电容滤除其它频率分量;在 vout 端输出了一个稳定的电压值;gnd端直接接模拟地;给试验箱供电,打开 setup ccs2(c2000), 在弹出的对话框中选择icetek5100 usb emulator for tms320f2812 导入,进行配置设置然后进入 ccs2(c2000),打开工程文件进行编译生成 。out 文件下载到硬盘中然后调试,观察液晶显示屏,第一行

14、显示“温度显示”,第二行显示“ 温度值 ”,当用手触摸时,温度显示不断变化,实现了温度的采集与现实.5。3调试结果将程序烧到实验箱中,得到运行结果如下图6所示。图6 调试结果第6章 总 结回顾起此次单片机课程设计,我感慨颇多,从理论到实践,在两周的日子里,可以说得是苦多于甜,但是可以学到很多的的东西,不仅是学习上的,而且是关于做人做事方面的感悟,也让我知道了温度采集与显示这一技术在社会上的作用.通过学习dsp课程我们都知道,dsp实际上也是一种单片机,它同样是将中央处理单元、控制单元和外围设备集成到一块芯片上.但dsp有别于普通的单片机,它采用了多组总线技术实现并行运行机制,从而极大地提高了运

15、算速度,也提供了非常灵活的指令系统。此次的课程设计我们组做的设计是-温度采集与显示,在此次过程中我遇到的第一个比较难的问题就是编程序,因为之前没学的好,很多指令都不熟悉,通过几天的努力,从网上下载的资料和同学的帮助下还是完成了,设计的一开始我们就着手准备设计资料,上网、图书馆查阅资料,我们分工明确,每个同学都有自己的任务,因此工作进行得有条不紊,大家都很有责任感,认真做好自己的工作.在这次课程设计中由于另外两位组员分别负责来了硬件设计和软件设计部分,因此他们就让我画好流程图,以前每次课程设计基本上都是我画的,因此对我来说难度不大,所以我就先辅助了一下硬件设计部分,硬件设计中我们采用的是t ms

16、320f2812芯片作为控制芯片,虽然老师在上实验课的时候已经简单的介绍过该芯片的特性与使用,但是在用它就出现了很多问题,在这里我遇到了很大的困难,虽然有书籍和网络上查找的辅导资料,但是由于硬件设计是灵活的东西,它不仅需要有过硬的理论知识,还必须有灵活的应用,因此在这方面的调试时花费了大量的时间.首先,我们把系统想的过于简单,以为只是把每个模块的电路设计成功便可以,却忽视了模块与模块之间的相关性和衔接性,因此总出现错误。其次,与组员沟通不够,硬件设计的参数与组员编程所用的不相符,导致出现硬件测试没问题,软件调试没问题,两者导入,就不行的状况,更由于各执己见坚持自己是对的一直没有发现问题所在,最

17、后通过请教老师才得以解决。最后说说自己对这门课程的感受,课堂教学考虑到大多数同学的需求,主要强调“基本”-基本知识,基本理论,基本方法,基本技能。而这次设计正是为我们提供了一个深入学习,探索的机会,成为课堂教学的有益补充。课程设计诚然是一门专业课,给我许多专业知识以及专业技能的提升,同时又是一门讲道理,一门辨思课,给了我莫大的空间。同时,设计让我感触很深,使我对抽象的理论有了具体的认识。虽然此前我对dsp并不熟悉,学到的东西应用不是很好,理论联系不了实际。正好这次机会让我好好的锻炼了自己,让自己的能力得到了一定的提升。过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的

18、,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。我在设计的过程中遇到了许多问题,同时也发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,在此后的日子里,我会学别人之所长,去自己之所短.最后衷心的感谢始终支持我们的老师与同学,你们辛苦了!参考文献1 万山明。tms320f281x dsp原理及应用实例。北京航空航天大学出版社,20072 郑红,王鹏,董云凤,吴冠。dsp应用系统设计实践。北京航空航天大学出版社,20063 徐科军,张瀚,陈智渊.tms320f281xdsp 原理与应用。北京航空航天大学

19、出版社,20064 乔瑞萍,张芳娟。tms320c54xdsp原理及应用m。西安电子科技大学出版社,2005年5 张雄伟。 dsp芯片的原理与开发应用(第三版)m。电子工业出版社,2003年致谢 本设计是在刘伟春老师的悉心指导下完成的,老师渊博的知识,严谨的治学态度,一丝不苟的工作作风,平易近人的性格都是我学习的楷模。在设计的开始及整理期间,老师都给了我很大的支持和鼓励,才使得课程设计论文得以顺利的完成,在此谨向导师表示忠心的感谢和崇高的敬意。最后我要感谢我的同学们,在电路设计与仿真过程中遇到困难时,正是由于同学们的帮助,我才能顺利的克服困难,我课程设计的完成离不开同学们的帮助!附录inclu

20、de dsp281x_device。h” / dsp281x headerfile include file#include ”dsp281x_examples.h” / dsp281x examples include file/ prototype statements for functions found within this errupt void adc_isr(void);/ global variables used in this example:define lcddelay 1#define lcdcmdturnon 0x3f#define lcdcmd

21、turnoff 0x3e#define lcdcmdstartline 0xc0#define lcdcmdpage 0xb8#define lcdcmdveraddress 0x40define adc_usdelay 8000ldefine adc_usdelay2 20luint16 zhengshut,xiaoshut,zhongjian1,zhongjian2;float temp1=0;unsigned char lcdkey532;unsigned char ledkey128;uint16 loopcount;uint16 conversioncount;float temp;

22、uint16 i,j;uint16 voltage11024;uint16 voltage21024;void delay(int ndelay);void turnonlcd();void lcdcls();void lcdwrite(unsigned int x,unsigned int y,unsigned int lr,unsigned int n);void writenb(unsigned int x,unsigned int y,unsigned char no,unsigned f,unsigned int lr);void wendu(float c);void delay_

23、loop();void delay_loop1();void error(void);/数字模块unsigned char ledkey128= /半角0x00,0x00,0x7c,0x82,0x82,0x82,0x7c,0x00,/00x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00, /10x00,0x00,0x84,0xc2,0xa2,0x92,0x8c,0x00,/20x00,0x00,0x44,0x92,0x92,0x92,0x6c,0x00, /30x00,0x00,0x30,0x28,0x24,0xfe,0x20,0x00, /40x00,0x00,0

24、x4e,0x92,0x92,0x92,0x62,0x00, /50x00,0x00,0x7c,0x92,0x92,0x92,0x64,0x00, /60x00,0x00,0x02,0xc2,0x32,0x0a,0x06,0x00, /70x00,0x00,0x6c,0x92,0x92,0x92,0x6c,0x00, /80x00,0x00,0x4c,0x92,0x92,0x92,0x7c,0x00, /90x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00, /: 0x00,0x60,0x60,0x00,0x00,0x00,0x00,0x00, /. ;void ma

25、in(void) initsysctrl(); eallow; gpiomuxregs.gpfmux。all=0x0000; /i/o:0 特殊功能:1 gpiomuxregs.gpfdir.all=0x000f;/ output edis; dint; initpiectrl(); ier = 0x0000; /cpu中断允许寄存器 ifr = 0x0000;/cpu中断标志寄存器 initpievecttable(); eallow; sysctrlregs。hispcp.all = 0x3; / hspclk = sysclkout/6给ad转换时钟提供一个6分频 edis; eallo

26、w; / this is needed to write to eallow protected register pievecttable。adcint = adc_isr; edis; / this is needed to disable write to eallow protected registers initadc(); / 初始化ad piectrlregs.pieier1.bit。intx6 = 1; ier |= m_int1; / enable cpu interrupt 1 eint; / enable global interrupt intm ertm; / en

27、able global realtime interrupt dbgm loopcount = 0; conversioncount = 0; / configure adc adcregs。adcmaxconv.all = 0x0001; / setup 2 convs on seq1 adcregs.adcchselseq1.bit。conv00 = 0x0; / setup adcina3 as 1st seq1 conv. adcregs.adcchselseq1。bit。conv01 = 0x1; / setup adcina2 as 2nd seq1 conv. adcregs。a

28、dctrl2.bit.eva_soc_seq1 = 1; / enable evasoc to start seq1 adcregs。adctrl2.bit.int_ena_seq1 = 1; / enable seq1 interrupt (every eos)/ configure eva/ assumes eva clock is already enabled in initsysctrl(); evaregs.t1cmpr = 0x0080; / setup t1 compare value evaregs.t1pr = 0x0fff; / setup period register

29、 evaregs。gptcona.bit.t1toadc = 1; / enable evasoc in eva evaregs.t1con。all = 0x1042; / enable timer 1 compare (up turnonlcd(); /打开显示 lcdcls(); /清除显示内存 (int *)0x108000=0x80;/ 初始化icetekctrdelay(lcddelay);(int *)0x108000=0x0;delay(lcddelay);(int )0x108000=0x80;delay(lcddelay);*(int )0x108001=lcdcmdstar

30、tline;/ 设置显示起始行delay(lcddelay);(int )0x108002=0;delay(lcddelay); for(;) wendu(temp); lcdwrite(2,0,0,0); lcdwrite(2,16,0,1); lcdwrite(2,32,1,2); lcdwrite(2,48,1,3); lcdwrite(6,48,1,4);/在液晶屏上显示相应的汉字及符号 writenb(6,6,ledkeyzhengshut0x000f,0,0); writenb(6,5,ledkey(zhengshut&0x00f0)4,0,0); writenb(6,2,ledk

31、eyxiaoshut0x000f,0,1); writenb(6,1,ledkey(xiaoshut0x00f0)4,0,1); writenb(6,7,ledkey11,0,0);/在液晶屏上显示温度值 interrupt void adc_isr(void) voltage1conversioncount = adcregs.adcresult0 4; voltage2conversioncount = adcregs.adcresult1 4; if(conversioncount = 1023) conversioncount = 0; else conversioncount+; i

32、f(conversioncount=0) temp=0; for(i=0;i200;i+) temp=temp+voltage1i; temp=temp/200。0;/求平均值 temp=temp*3。0/4095。0; / reinitialize for next adc sequence adcregs.adctrl2.bit.rst_seq1 = 1; / reset seq1 adcregs.adcst。bit。int_seq1_clr = 1; / clear int seq1 bit piectrlregs。pieack。all = pieack_group1; / acknow

33、ledge interrupt to pie return;/延时子程序void delay( int ndelay)int ii,jj,kk=0;for ( ii=0;iindelay;ii+ )for ( jj=0;jj1024;jj+ )kk+;/打开显示子程序void turnonlcd()(int *)0x108001=lcdcmdturnon;delay(lcddelay);*(int )0x108002=0;delay(2048); (int )0x108001=lcdcmdstartline;delay(lcddelay);(int )0x108002=0;delay(lcdd

34、elay);/清屏程序void lcdcls()int i,j;(int *)0x108001=lcdcmdstartline;delay(lcddelay);*(int )0x108002=0;delay(lcddelay);for ( i=0;i8;i+ )(int *)0x108001=lcdcmdpage+i;delay(lcddelay);(int )0x108002=0;delay(lcddelay);*(int *)0x108001=lcdcmdveraddress;delay(lcddelay);(int *)0x108002=0;delay(lcddelay);for ( j

35、=0;j64;j+ )*(int )0x108003=0;delay(lcddelay);(int *)0x108002=0;delay(lcddelay); *(int *)0x108001=lcdcmdpage+i;delay(lcddelay);(int )0x108002=0;delay(lcddelay);*(int *)0x108001=lcdcmdveraddress;delay(lcddelay);(int *)0x108002=0;delay(lcddelay);for ( j=0;j64;j+ )(int *)0x108004=0;delay(lcddelay);*(int

36、 *)0x108002=0;delay(lcddelay);void lcdwrite(unsigned int x,unsigned int y,unsigned int lr,unsigned int n) unsigned char lcdkey532=0x10,0x21,0x86,0x70,0x00,0x7e,0x4a,0x4a,0x4a,0x4a,0x4a,0x7e,0x00,0x00,0x00,0x00,0x02,0xfe,0x01,0x40,0x7f,0x41,0x41,0x7f,0x41,0x41,0x7f,0x41,0x41,0x7f,0x40,0x00,/温0x00,0x0

37、0,0xfc,0x04,0x24,0x24,0xfc,0xa5,0xa6,0xa4,0xfc,0x24,0x24,0x24,0x04,0x00,0x80,0x60,0x1f,0x80,0x80,0x42,0x46,0x2a,0x12,0x12,0x2a,0x26,0x42,0xc0,0x40,0x00,/度0x00,0x00,0x00,0x3e,0x2a,0xea,0x2a,0x2a,0x2a,0xea,0x2a,0x3e,0x00,0x00,0x00,0x00,0x20,0x21,0x22,0x2c,0x20,0x3f,0x20,0x20,0x20,0x3f,0x28,0x24,0x23,0

38、x20,0x20,0x00,/显0x00,0x20,0x20,0x22,0x22,0x22,0x22,0xe2,0x22,0x22,0x22,0x22,0x22,0x20,0x20,0x00,0x10,0x08,0x04,0x03,0x00,0x40,0x80,0x7f,0x00,0x00,0x01,0x02,0x0c,0x18,0x00,0x00,/示0x00,0x02,0x05,0xe2,0x18,0x04,0x02,0x02,0x02,0x02,0x02,0x02,0x04,0x1e,0x00,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x40,0x

39、40,0x40,0x40,0x40,0x20,0x18,0x00,0x00,/; if(lr=0) int j; int k=n; (int *)0x108001=lcdcmdpage+x; delay(1); (int )0x108002=0; delay(1); *(int *)0x108001=lcdcmdveraddress+y; delay(1); (int )0x108002=0; delay(1); for(j=0;j16;j+) (int )0x108003=lcdkeykj; delay(10); *(int *)0x108002=0; delay(10); x+; *(int *)0x108001=lcdcmdpage+x; delay(1); (int *)0x108002=0; delay(1); (int )0x108001=lcdcmdveraddress+y; delay(1); *(int *)0x108002=0; delay(1); for(j=16;j32;j+) (int *)0x108003=lcdkeykj; delay(100);

温馨提示

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

评论

0/150

提交评论