DS18B20温度恒定上下限可调报警器汇总_第1页
DS18B20温度恒定上下限可调报警器汇总_第2页
DS18B20温度恒定上下限可调报警器汇总_第3页
DS18B20温度恒定上下限可调报警器汇总_第4页
DS18B20温度恒定上下限可调报警器汇总_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、内容提要 1关键字 1引言 1二、设计方案 22 .1设计任务和要求 22 .2方案辩证 31 温度计软件设计流程图 32 元器件的选取 43 系统最终设计方案 4三、设计方案的总体设计框图 43 .1硬件电路框图 43 .2硬件电路概述 53.3主控电路 53. 4显示电路 63 .5报警温度调节电路 73 . 6温度传感器及 DS18B20测温原理 73.7升降温调节电路7四、系统软件算法设计 84.1主程序 94 . 2读出温度子程序 94. 3温度转换命令子程序 104 . 4计算温度子程序 104 . 5显示数据刷新子程序 104 .6 1602的液晶显示10五、软件仿真 105 .

2、1系统仿真设计 115 .2系统仿真原理图135 .2系统原理图14结与体会15附录15一【内容摘要】随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中, 结合不同种类的传感器,可实现诸如电压、湿度、温度、速度、硬度、压力等的 物理量的测量。本文将介绍一种基于单片机控制理论及其应用系统设计的数字温 度计。本文主要介绍了一个基于 AT89C51单片机的测温系统,详细描述了利用数字 温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机喜爱的硬件

3、 连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也进行一一介绍,该系统可以方便的是实现温度采集和显示,并可以根据需要任意设定上下限报警温度,它使用起来方便,具有精度高、量程宽、灵敏度高、体积小、功 耗低等优点,适合我们日常生活和工农业生产中的温度测量, 也可以当做温度处 理模块嵌入其他系统中,作为其他主系统的辅助扩展。DS18B20和AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合与恶劣环境下 进行现场温度测量,有广泛的应用前景。本设计首先是确定目标,气候是各个功能模块的设计,再在Proteus软件上进行仿真,修改,仿真。本温度计属于多功能温度计,可以

4、设置上下报警温度,当温度不在设置范围 内时,可以报警,同时根据设定的温度范围通过升降温电路控制环境的温度达到 恒温效果。【关键词】单片机,数字控制,温度计,DS18B20, STC89C52RC【引言】单片机技术作为计算机技术的一个分支,广泛地应用于工业控制,智能仪器仪表,机电一体化产品,家用电器等各个领域。“单片机原理与应用”在工科院校各专业中已作为一门重要的技术基础课而普遍开设。学生在课程设计,毕业 设计,科研项目中会广泛应用到单片机知识, 而且,进入社会后也会广泛接触到单 片机的工程项目。鉴于此,提高“单片机原理及应用”课的教学效果,让学生参 与课程设计实习甚为重要。单片机应用技术涉及的

5、内容十分广泛,如何使学生在 有限的时间内掌握单片机应用的基本原理及方法,是一个很有价值的教学项目。 为此,我们进行了 “单片机的学习与应用”方面的课程设计,锻炼学生的动脑动 手以及协作能力。单片机课程设计是针对模拟电子技术,数字逻 辑电路,电路,单片机的原理 及应用课程的要求,对我们进行综合性实践训练的实践学习环节,它包括选择课 设任务、软件设计,硬件设计,调试和编写课设报告等实践内容。通过此次课程 设计实现以下三个目标:第一,让学生初步掌握单片机课程的试验、设计方法,即 学生根据设计要求和性能约束,查阅文献资料,收集、分析类似的相关题目,并 通过元器件的组装调试等实践环节,使最终硬件电路达到

6、题目要求的性能指标;通过第二,课程设计为后续的毕业设计打好基础,毕业设计是系统的工程设计实践, 而课程设计的着眼点是让学生开始从理论学习的轨道上逐渐引向实际运用,从已 学过的定性分析、定量计算的方法,逐步掌握工程设计的步骤和方法,了解科学 实验的程序和实施方法。第三,培养学生勤于思考乐于动手的习惯,同时通过设 计并制作单片机类产品,使学生能够自己不断地学习接受新知识(如在本课设题 目中存在智能测温器件 DS18B20就是课堂环节中不曾提及的“新器件”), 多人的合作解决现实中存在的问题,从而不断地增强学生在该方面的自信心及兴 趣,也提高了学生的动手能力,对学生以后步入社会参加工作打下一定良好的

7、实 践基础。温度可调上下限检测报警恒温设计、口、【 A 4 -、 计方2. 1设计务任和要求1、基本范围-55 C 125C 2、精度误差小于0.5 C3、LCD数码直读显示4、可以任意设定温度的上下限报警功能2. 2方案辩证1温度计软件设计流程图:开始2元器件的选取:单片机芯片的选取:采用89C51芯片作为硬件核心,利用 Flash ROM,内部具有4KB ROM存储 空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电 路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的 错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成

8、一定的损坏。采用STC89C52R单片机作为硬件核心,该单片机指令代码完全兼容传统的8051单片机。STC89C52R的工作电压为 序存储器flash容量为8KB,随机存储器 度控制系统的要求。综上所述:本课设中单片机芯片采用5.5-3.4V,工作频率范围0-80MHz程RAM空间为512字节,完全满足设计温STC89C52RC温度传感器的选取:方案一:采用热敏电阻传感器。利用热敏电阻随温度变化而显著变化,能直接将温度 的变化转换为能量的变化,进而制成温度计。但是其测温传感器比较复杂,而且 不易通过编制程序来控制测温精度,增大系统设计的难度。万案一:采用DS18B20温度传感器。DS18B20

9、勺内部3脚(或8脚)封装;使用特 有的温度测量技术,将被测温度转换成数值信号;3.05.5V的电源供电方式和寄生电源供电方式;ROM由 64位二进制数字组成,共分为 8个字节;RAM由9 个字节的高速暂存器和非易失性电擦写 ROMA成。综上所述:温度传感器选取智能测温器件 DS18B20本设计显示电路采用1602液晶显示模块芯片。3系统最终设计方案:综上各方案所述,对此次课设的方案选定:采用STC89C52RC乍为主控制系统; 1602液晶显示模块芯片作为温度数据显示装置;而智能温度传感器DS18B2C器件 作为测温电路主要组成部分。至此,系统最终方案确定。三、设计方案的总体设计框图温度计电路

10、设计总体设计方框图如图所示,控制器采用单片机STC89C52RC,温度传感器采用DS18B20,用1602液晶显示屏以串口传送数据实现温度显示。3.1硬件电路框图:图总体设计方框图3.2硬件电路概述:系统由单片机最小系统、显示电路、按键、温度传感器等组成。本电路是由STC89C52R单片机为控制核心,具有与 8051系列单片机完全 兼容,程序加密等功能,8KB字节可编程闪存,工作电压范围为 2.76V,全静态工作频率为024MHZ显示电路由1602液晶显示模块芯片,可以进行多行显 示;温度报警按键设为五个,可以显示华氏温度,调节高低报警温度;温度传感 器电路主要由DS18B20测温器件构成,该

11、器件主要功能有:采用单总线技术;每 只DS18B20具有一个独立的不可修改的64位序列号;低压供电,电源范围为3 5V;测温范围为-55 C+125C,误差为土 0.5 C;复位电路是10K电阻构成的上 电自动复位。3.3主控电路单片机STC89C52R奥有低电压供电和体积小等特点, 四个端口只需要两个 口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二 节电池供电。晶振采用12MHZ复位电路采用上电加自动复位。主控芯片8051/ |尺|_ 11 U.U/MLRJP0.1/AD1P0.2/AD2 P0 3/AD3P0 4/AEMP0.5/AK P0 6/AD6P0.7/AD

12、7P2.2/A10XTAL2RSTPSEN ALEpAriP2.4/A12EA-P2.5/A13P2 G/A14P2 7/A15P1.0P3.0/RXDP1.1P3.1/D®P1 2P3.2WDP1 3P3.3/INT1P1.JPm.VTOP1.5P3.5/T1P1.5P3 E/WRP17P3.7/RDU1TAL;1822_3B373B3534333221222324252B272B晶振电路AT39C51复位电路3.4显示电路本设计显示电路采用1602液晶显示模块芯片,该芯片可现实16x2个字符,比 以前的七段数码管LED显示器在显示字符的数量上要多得多。另外,由于 1602 芯片编

13、程比较简单,界面直观,因此更加易于使用者的操作和观测。1602A芯片的接口信号说明编号符号引掷说明編号符号弓|腳说明1VSS电源地9D2ft% I/O2电潍正极10D3数据I/O3VL11数抵104KS数据命令选卅瑞12D5数据1051306垃拯106E使能信号11D7歡撫【0IDO15BLA背光;匸械8DI数 K1/016HI K育址负尿图液晶显示电路3. 5报警温度调节电路本系统一共设置了四个按键,K1键只是按一下上限报警温度加 1,松开后 恢复显示正常温度,K2键按一下上限报警温度减1,松开后恢复显示正常温度, 当调节的上限报警温度与环境实际的温度相比, 环境实际温度高于上限报警温度时系

14、统会出现声音报警及灯光警示,同理,K3,K4的调节方法一样,当环境实际温度低于下限报警温度时,系统出现报警P2.2P2.1P2.0>/EAALESEN2321313029VCCGND GND GNDSCI按键模块报警点调节电路3.6温度传感器及DS18B20测温原理64 位ROM勺结构开始8位是产品类型的编号,接着是每个器件的惟一的序 号,共有48位,最后8位是前面56位的CRC佥验码,这也是多个DS18B2C可以 采用一线进行通信的原因。温度报警触发器 TH和TL,可通过软件写入户报警上 下限。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EER

15、AM高速暂存RAM勺结构为8字节的存储器,结构如图4所 示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失 的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温 度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温 度数值。该字节各位的定义如图5所示。低5位一直为1, TM是工作模式位,用 于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0, 用户不要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影 响很小,用于产生固

16、定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件 中还有一个计数门,当计数门打开时,DS18B2C就对低温度系数振荡器产生的时 钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决 定,每次测量前,首先将最低温所对应的一个基数分别置入减法计数器1、温度 寄存器中,计数器1和温度寄存器被预置在最低温所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1 的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入, 减法计数器1重新开始对低温度系数晶振产生的脉

17、冲信号进行计数,如此循环直 到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就 是所测温度值。其输出用于修正减法计数器的预置值, 只要计数器门仍未关闭就 重复上述过程,直到温度寄存器值大致被测温度值。传感器测温电路3.6升温、降温控制电路加温电路系统在检测到当前温度低于设定的下限值时,在报警器启动报警同时,升温 电路开始工作,使得Q2三极管导通,继电器RL1吸合加热灯开始点亮加热,起 到升温的效果,此时升温指示灯点亮,表示升温系统开始工作。OJ-SH-105HM<TEXT>= 降温R11510J <TEXT>降温指示灯D3LED-RED <TE

18、XT>Q3R61Ik<TEXT>NPN <TEXT>降温电路系统在检测到当前温度超高设定的上限值时,在报警器启动报警同时,降温 电路开始工作,使得Q3三极管导通,继电器RL2吸合风扇开始吹风,起到降温 的效果,此时降温指示灯点亮,表示降温系统开始工作。四、系统软件算法设计整个系统是由硬件配合软件来实现的, 在硬件确定后,编写的软件的功能也就基本定型了。所以软件的功能大致可分为两个部分: 一是监控,这也是系统的 核心部分,二是执行部分,完成各个具体的功能。系统程序主要包括主程序,读 出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。4.1主程序

19、主程序的主要功能是负责温度的实时显示、 读出并处理DS18B20勺测量的当 前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度, 其程序流程见图所示。发DS18B20复位命令图2读温度流程图图1主程序流程图4.2读出温度子程序CRC读出温度子程序的主要功能是读出 RAM中的9字节,在读出时需进行 校验,校验有错时不进行温度数据的改写。其程序流程图如图示图温度转换流程图4.3温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms在本程序设计中采用1s显示程序延时法等待转换的完成。 温度转换命令子程序流程图如上图,图 9所示 4.

20、4计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负 的判定,其程序流程图如图所示。图计算温度流程图图显示数据刷新流程图4.5显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图。1602液晶显示流程图4.6 1602的液晶显示LCD1LM016L <TEKT>五、软件仿真5.1系统仿真设计本设计是在 Proteus环境下进行仿真的,仿真所用到的器件有:单片机 AT89C51, DS1820温度传感器,蜂鸣器,液晶显示器,一些电阻,电容等。仿真结果如下:LCD1LM

21、D1SL显示器显示传感器温度寻看售5.2系统仿真原理图mTi u!JmsfCjZU1-I*".CL2 J V-竇K- " TT匸-吾5?=-c AT口隹_e h I ri 口 fc .K_>s T蓋 寿直=1-1 6潯二inWM* 一 '二 FB_=55.3系统原理图|bK卜六、总结与体会#include vreg52.h>#include vintrins.h>#define uint unsigned int#define uchar unsigned charsbit DQ=P2八3;/ds18b20与单片机连接口 sbit RS=P2A5;

22、sbit RW=P2A6;sbit EN=P2A7;uchar data disdata5;uint tvalue,CurrentT=0; 温度值 uchar tflag;/温度正负标志#define LCD_BUS P0sbit SetKey =戸2八2;sbit UpKey =戸2八1; sbit DnKey = P2A0;sbit BEEP = P2A4;sbit Heat sbit Cool=P1A0;=P1A1;void delayms(uint ms)/延时xx毫秒void delayms(uint ms)/延时xx毫秒unsigned char AlarmTempLow=10,A

23、larmTempTop=40,Set=0,NG=0;void delayms(uint ms)/延时xx毫秒uchar i; while(ms-) for(i=0;i<120;i+); void command(uint com) /LCD 写指令 RS=0;RS 为 0LCD_BUS=com; II 装载指令 delayms(5);延时 5msEN=1;IILCD 使能delayms(5);延时 5msEN=0;IILCD 不使能void write_dat(uchar dat) IILCD 写数据 _RS=1;IIRS 为 1LCD_BUS=dat;II 装载数据delayms(5)

24、;延时 5msEN=1;IILCD 使能delayms(5);延时 5msEN=0;IILCD 不使能 void writestring(uchar x,uchar y,uchar *s) IILCD 写字符串 if (y = 0) command(0x80 + x);II 表示第一行else command(0xC0 + x);II 表示第二行while (*s)判断是否字符串的结尾 write_dat( *s);II显示当前字符s +;II字符串地址加1void writeChar(uchar x,uchar y,uchar s) IILCD 写字符串 if (y = 0) command

25、(0x80 + x);II 表示第一行else command(0xC0 + x);II 表示第二行 write_dat( s);显示当前字符 _ void LCD_lnitial() IILCD 初始化 EN=0;IILCD 不使能RW=0;IIRW 为 0command(0x38);II发送初始化指令command(OxOc);II发送初始化指令command(0x06); II发送初始化指令 command(0x01); II发送初始化指令 command(0x80+0x02); II发送 LCD 初始位置 *DS1820币呈丿序 *void delay_18B20(unsigned i

26、nt i)延时 1 微秒while(i-); void ds1820rst(void)/*ds182C复位 *Iunsigned char x=0;DQ = 1;IIDQ 复位delay_18B20(4); H延时DQ = 0;IIDQ 拉低delay_18B20(100); /精确延时大于 480usDQ = 1;II 拉高delay_18B20(40); uchar ds1820rd(void)/*读数据 *I unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i-)DQ H 0- daVVHl -CD H - - =ss=

27、k(dq)dafll0x80;desryJI8B2ouo=raum(da);void dsl820wr(uchar wdasr)rw達a*_ 宀unsigned char -Ho-fo 二亓 8 二 V5?!')宀DQ£DQ H wdasreooxol;desryJI8B2ouo=DQ" +wdasrVVHl ;unsigned inf ReadlTemperaure(void=s®>>*/宀uchar pbd 叟 820ra(=d 叟 820wr(0xcc)w漠KSHI旦4n丄 d叟82OWI-OX44)诗诃劇餡岡>>二 d 叟

28、820ra(= d 叟 820wr(0xcc)w漠KSHI旦4n丄 d 叟 820wr-(0xbe)w*®s丄 and 叟 820rd(= bud 叟 8203(= fva-ueub fva-ueccuo? fva-ue«lva-ue-a; if(fva-uecoxofff) ffsrguo; e-se 宀 fva-ue£va-ue-M nfsrgHl fva_ue«lva_ue*(0625)wag 血芳”亠0 迤譴蛊®la、達0cs35H?m-CQ-raum(fva-ue);void Display_Temperature()显示温度ucha

29、r flagdat;disdata0=tvalue/1000+0x30;/百位数 disdata1=tvalue%1000/100+0x30;/十位数 disdata2=tvalue%100/10+0x30;/个位数 disdata3=tvalue%10+0x30;小数位if(tflag=0)flagdat=0x20; 正温度不显示符号else flagdat=0x2d;负温度显示负号:-if(disdata0=0x30)/disdata0=0x20;/如果百位为0,不显示/ if(disdata1=0x30) disdata1=0x20;/如果百位为 0,十位为 0 也不显 示/if(tfl

30、ag=1) writeChar(10,0,flagdat);/wr_com(0x8a);wr_dat(flagdat); 显示符号位 writeChar(11,0,disdata0);/wr_com(0x8b);wr_dat(disdata0);/显示百位writeChar(12,0,disdata1);/wr_com(0x8c);wr_dat(disdata1);显示十 位writeChar(13,0,disdata2);/wr_com(0x8d);wr_dat(disdata2); 显示个 位writeChar(14,0,0X2E);/wr_com(0x8e);wr_dat(0x2e);

31、显示小数点 writeChar(15,0,disdata3);/wr_com(0x8f);wr_dat(disdata3); 显示小数位else writeChar(10,0,disdata0);/wr_com(0x8a);wr_dat(disdata0);/显示百 位writeChar(11,0,disdata1);/wr_com(0x8b);wr_dat(disdata1);显示十 位writeChar(12,0,disdata2);/wr_com(0x8c);wr_dat(disdata2);显示个 位writeChar(13,0,0X2e);/wr_com(0x8d);wr_dat(0

32、x2e); 显示小数点 writeChar(14,0,disdata3);/wr_com(0x8e);wr_dat(disdata3);显示小 数位void SetFun(void)unsigned char i1=0,i2=0,i3=0,i4=0,i5=0,i6=0;if(SetKey=0)delayms(20);if(SetKey=0)if(Set<2) Set+;else Set=0;switch(Set)case 0: writestring(0,1," ");writestring(8,1," ");break;case 1: write

33、string(0,1,">");writestring(8,1," ");break; case 2: writestring(0,1," ");writestring(8,1,">");break;while(SetKey=0);if(UpKey=0)&&(Set!=0)delayms(20);if(UpKey=0)switch(Set)case 1: if(AlarmTempLow<99) AlarmTempLow+;else AlarmTempLow=99; break;ca

34、se 2: if(AlarmTempTop<99) AlarmTempTop+;elseAlarmTempTop=99; break;11 = AlarmTempLow/100;获得温度值的百位12 = AlarmTempLow%100/10;II 获得温度值的十位13 = AlarmTempLow%10;/获得温度值的个位14 = AlarmTempTop/100;获得温度值的百位15 = AlarmTempTop%100/10;/ 获得温度值的十位16 = AlarmTempTop%10;/获得温度值的个位writestring(5,1,"");writestri

35、ng(13,1," ");if(i1!=0) writeChar(5,1,i1+'0');if(i1=0)&&(i2!=0) writeChar(5,1,i2+'0');if(i1!=0) writeChar(6,1,i2+'0');if(i1=0)&&(i2=0)writeChar(5,1,i3+'0');else if(i1=0)&&(i2!=0)writeChar(6,1,i3+'0');if(i1!=0)writeChar(7,1,i3+&

36、#39;0');if(i4!=0) writeChar(13,1,i4+'0');if(i4=0)&&(i5!=0) writeChar(13,1,i5+'0');if(i4!=0) writeChar(14,1,i5+'0');if(i4=0)&&(i5=0)writeChar(13,1,i6+'0');else if(i4=0)&&(i5!=0)writeChar(14,1,i6+'0');if(i4!=0) writeChar(15,1,i6+'

37、0');while(UpKey=0);if(DnKey=0)&&(Set!=0)delayms(20);if(DnKey=0)switch(Set)case 1: if(AlarmTempLow>0) AlarmTempLow-;else AlarmTempLow=0; break;case 2: if(AlarmTempTop>0) AlarmTempTop-;else AlarmTempTop=0; break;11 = AlarmTempLow/100;获得温度值的百位12 = AlarmTempLow%100/10;/ 获得温度值的十位13 = Al

38、armTempLow%10;/获得温度值的个位获得温度值的百位/获得温度值的十位/获得温度值的个位14 = AlarmTempTop/100;15 = AlarmTempTop%100/10;16 = AlarmTempTop%10;writestring(5,1,"");writestring(13,1," ");if(i1!=0) writeChar(5,1,i1+'0');if(i1=0)&&(i2!=0) writeChar(5,1,i2+'0'); if(i1!=0) writeChar(6,1,i2+'0');if(i1=0)&&(i2=0)writeChar(5,1,i3+'0');else if(i1=0)&&(i2!=0)writeChar(

温馨提示

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

评论

0/150

提交评论