课程设计(论文)-基于C8051F020单片机的PID帆板控制系统.doc_第1页
课程设计(论文)-基于C8051F020单片机的PID帆板控制系统.doc_第2页
课程设计(论文)-基于C8051F020单片机的PID帆板控制系统.doc_第3页
课程设计(论文)-基于C8051F020单片机的PID帆板控制系统.doc_第4页
课程设计(论文)-基于C8051F020单片机的PID帆板控制系统.doc_第5页
免费预览已结束,剩余7页可下载查看

下载本文档

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

文档简介

帆板控制系统 摘 要:设计并制作了帆板控制系统,完成了风扇转速、风力大小及帆板转角的控制。帆板控制系统主要由硬件和软件两部分组成。硬件部分,搭建了控制装置平台,以c8051f020单片机作为控制核心,使用l298n搭建了风扇转速控制电路,利用adxl345模块完成了转角检测,利用hd7279a键盘管理芯片及12864液晶模块完成了人机交互,使用wt588d-16p语音模块实现了语音提示功能。软件部分,设计了基于i2c的角度传输程序,基于pid算法的pwm调速的程序,基于spi的键盘检测程序,液晶显示及其菜单程序,语音单线串口控制程序。测试结果表明,系统在手动状态下能较好完成规定动作,在自动状态下能在规定时间内,顺利完成转角控制,分辨力小于为2,绝对误差5。关键词:c8051f020 pwm pid 角度传感器 22目 录1 总体设计21.1 设计要求21.2方案论证与比较21.3系统组成52 软件设计112.1转角传感器的数据处理及计算112.2 pwm产生122.3 pid运算132.4液晶显示驱动的程序设计142.5 系统总体流程图143 系统测试153.1 测试使用的仪器153.2 指标测试和测试结果153.2.1基本要求部分测试153.2.2 发挥部分测试164. 结束语17参考文献:18附 录:19帆板控制系统设计1 总体设计1.1 设计要求(1)用手转动帆板时,能够数字显示帆板的转角。显示范围为060,分辨力为2,绝对误差5。(2)当间距d=10cm 时,通过操作键盘控制风力大小,使帆板转角能够在060范围内变化,并实时显示。(3)当间距d=10cm 时,通过操作键盘控制风力大小,使帆板转角稳定在 455范围内。控制过程在10 秒内完成实时显示,并由声光提示。(4)当间距d=10cm 时,通过键盘设定帆板转角,其范围为060。在5 秒内达到设定值,并实时显示。最大误差的绝对值不超过5。(5)间距d 在715cm 范围内任意选择,通过键盘设定帆板转角,范围为060。要求在5 秒内达到设定值,并实时显示。最大误差的绝对值不超过5。1.2方案论证与比较帆板控制系统设计中的核心是帆板转角的测量以及风扇电机的转速控制,关键部分是单片机性能、键盘输入及显示部分。为了使系统功能更完善,可以增加语音提示及其超声测距功能。1、转角测量的设计方案方案一:霍尼韦尔hmc5883l是一种表面贴装的高集成三轴磁阻传感器模块,应用了各向异性磁阻(amr)技术,带有数字接口的弱磁传感器芯片,应用于低成本罗盘和磁场检测领域。罗盘精度控制在 12的 12 位模数转换器,带有简易的i2c系列总线接口。 方案二:adxl345数字加速度计。adxl345是一款小而薄的超低功耗3轴加速度计,分辨率高(13位), 其高分辨率(3.9mg/lsb),能够测量不到1.0的倾斜角度变化测。既能测量运动或冲击导致的动态加速度,也能测量静止加速度,例如重力加速度,使得器件可作为倾斜传感器使用,带有简易的i2c系列总线接口。方案三:在帆板底部固定一支激光笔,底板上固定一排(大于30个)接收管(60度,分辨力2),预先测量出帆板转轴与底板距离。帆板每转过一个角度,激光照射到某个接收管,根据接收管的地址编号可以根据已有数据得到x长度,从而计算出转角大小。例如照射到x1处和x2处的接收管时,角度分别是、,其中,示意图如图1.1所示。图1.1 激光笔转角示意图综上所述,方案一中,hmc5883l其磁阻传感器在磁场存在的情况下,随着磁场在感应方向上不断增强,电压也会正向增长,适宜在水平面上测量转角;方案三中,采用激光接收装置检测角度,接收管需要多个且分辨力较低,误差较大;方案二中,adxl345 模块分辨力较高,其i2c串行接口适宜和控制器连接,故采用adxl345作为转角检测传感器。2、微控制器的选择方案一:采用传统的8051单片机作为控制器,8051单片机具有价格低廉、使用简单等特点,但是其存储容量、定时器资源较少,运算速度较低。方案二:是用宏晶stc单片机,系列产品较多,具有与mcs-51内核及指令集完全兼容的微控制器,定时器、串口等资源丰富,但一般没有专用的在线仿真器,增加了程序调试难度。方案三:采用新华龙c8051f020作为控制器,具有与mcs-51内核及指令集完全兼容的微控制器,片内集成了数据采集和控制系统中常用的模拟部件和其它数字外设及功能部件。56个i/o引脚,内部带有4k字节内部数据ram, flash存储器达64k字节,带有5个定时器,多个pwm控制器,采用流水线指令结构提高了运算速度。可以在线进行仿真调试。综上所述,从设备运行速度、片内资源、仿真调试性能等方面比较,本设计选择方案三使用c8051f单片机为整个系统控制的核心。3、风扇的选择方案一:风扇选用台式计算机散热风扇,供电电源dc12v,转速较高,但风压较小;方案二:直流供电轴流风扇,转速高,风压大,但出风口面积较小,使得帆板波动性较大;方案三:选用额定电流1.05a,尺寸较大的工控机专用直流风扇,出风面积大,低转速性能较好。通过测试比较三种方案,选择第三种方案。4、电机驱动模块的选择方案一: 采用大功率三极管控制,电路简单稳定性强。但是大功率三极管的压降很大,风扇电机较难达到额定转速。方案二:采用继电器控制,使用继电器控制直流电机的通断实现转速或转角控制,开关频率较低,控制不灵敏;方案三:采用l298 驱动直流电机。l298n 是一种高电压、大电流电机驱动芯片。内含两个 h 桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端, 使内部逻辑电路部分在低电压下工作; 可以外接检测电阻,将变化量反馈给控制电路,其输入控制信号频率可达40khz,输出电流可达2.5a。该芯片可以驱动一台两相步进电机,也可以驱动两台直流电机。 比较这三个方案,设计中了选择方案三,以l298芯片为基础搭建了电机驱动电路。5、调速的设计方案论证与选择针对l298芯片的特性,适宜采用pwm调速。pwm常用于中小功率系统,它采用脉冲宽度调制技术,其工作原理是:通过改变“连接脉冲”的宽度,使直流电机电枢上的电压的“占空比”改变,从而改变电枢电压的平均值,控制电机的转速,具有高的定位速度和精度;低速性能好稳速精度高,调速范围宽,抗干扰能力强等特点。6、键盘模块的设计方案论证与选择方案一:矩阵式键盘。矩阵式键盘适用于按键数量较多的场合,由行线和列线组成,按键位于行列的交叉点上。矩阵键盘工作原理:行线通过上拉电阻接到+5v上。无按键,行线处于高电平状态,有键按下,行线电平状态将由与此行线相连的列线电平决定。列线电平为低,则行线电平为低;列线电平为高,则行线电平为高。矩阵式键盘工作时通常采用查询方式,增加了mcu的负担。方案二:独立式按键。独立式按键是各按键相互独立,每个按键单独占用一根i/o口线,每根i/o口线的按键工作状态不会影响其他i/o口线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。其电路配置灵活,软件结构简单。但是每个按键需占用一根i/o口线,在按键数量较多时,i/o口浪费大,电路结构显得复杂。方案三:采用专用键盘管理芯片hd7279a,该芯片可以管理64个按键,采用spi串行控制协议,但有按键按下时便触发中断,并向mcu发送键码。综上所述,选择方案三,智能键盘控制芯片hd7279管理16个按键,实现命令设置、菜单切换及数值录入。7、显示方式选择方案一:采用led数码管显示。使用多个数码管动态显示,由于显示的内容较多,过多增加数码管个数显然不可行,进行轮流显示则控制复杂,加上数码管需要较多连线,使得电路复杂,功耗比较大。方案二:采用字符型lcd显示。可以显示英文及数字,利用fpga来驱动液晶显示模块,设计简单,且界面美观舒适,耗电小。综上所述,选择方案二采用lcd实时显示帆板角度值、进行多级菜单操作等功能。1.3系统组成经过方案比较与论证,最终确定的系统组成框图,如图1.2所示。图1.2 系统组成框图2 软件设计软件设计的关键是进行转角测量、pwm频率及占空比调整、pid算法实现及菜单显示。软件实现的功能是:转角传感器的数据处理及计算;pwm产生;pid运算;128*64lcd驱动; 2.1转角传感器的数据处理及计算单片机通过p36(时钟引脚)和p37(数据引脚)实现与adxl345的i2c串行通信。主要包括基本动作:启动控制、停止控制、应答、单字节发送和读取、多字节发送和读取,adxl345的初始化(测量范围设定、转换速率设定、电源模式选择、x 、y、z偏移量的状态测试),角度计算与转换。数据转换完成后,单片机获取x轴和z轴16位的分量值,进行数据合成得到adxl345_dis_data_x和adxl345_dis_data_z参量,再根据反正切函数将结果转换为角度angle。temp_x=(float)adxl345_dis_data_x*3.9; temp_z=(float)adxl345_dis_data_z*3.9; angle= atan2(temp_z,temp_x) * (180 / 3.14159265); 2.2 pwm产生可编程计数器阵列(pca0)提供增强的定时器功能,与标准8051计数器/定时器相比,它需要较少的cpu干预。pca0包含5个16位捕捉/比较模块。每个捕捉/比较模块可以被编程为独立工作在下面的6种工作方式之一:边沿触发捕捉、软件定时器、高速输出、频率输出、8位pwm或16位pwm。8位pwm可以得到更大范围的频率调整范围但调整不够细腻,16位pwm可以得到较细腻的调节效果,但是设计中,最小的周期为3ms,致使频率可调范围较小。设计中采用了8位pwm调速方式。每个模块都可以独立地用于在对应的cexn引脚产生脉宽调制(pwm)输出。pwm输出信号的频率取决于pca0计数器/定时器的时基。使用模块的捕捉/比较寄存器pca0cpln改变pwm输出信号的占空比。设计中,低电位是风扇导通,故占空比为占空比 =1 (3-1)由3-1式可知, 最大占空比为99.61% (pca0cphn = 0xff) , 最小占空比为0 % (pca0cphn = 0)。pca 的8位pwm方式原理框图如图图3.1所示。图3.1 pca 的8位pwm方式原理框图程序设置主要包括初始化pca0cn = 0x00; / 停止计数,清标志位 pca0md = 0x02; / 使用系统时钟作为时基 pca0cpm0 = 0x42; / 设置8位pwm模式 pca0cph0 = 256 128; / 设置8位pwm占空比初值 pca0cpm0 |= 0x40; / 启动 cr = 1;2.3 pid运算设计中,采用了增量式 pid,所谓增量式 pid是指数字控制器的输出只是控制量的增量 。当执行机构需要的控制量是增量,而不是位置量的绝对数值时,可以使用增量式 pid控制算法进行控制。增量式 pid 控制算法可以通过3-2推导出。由式 3-2可以得到控制器的第 个采样时刻的输出值为:增量式 pid 控制算法可以通过运算得到控制器的第 个采样时刻的输出值为: (3-2) (3-3) (3-4)其中由3-4可以看出,如果计算机控制系统采用恒定的采样周期t ,一旦确定 a、b、c,只要使用前后三次测量的偏差值,就可以由3-4求出控制量。 增量式 pid 控制算法与位置式 pid 算法3-2式相比,计算量小的多,因此在设计中得到应用。 2.4液晶显示驱动的程序设计液晶显示模块选用的是zlg12864f-yfsdye-naa,显示内容:128(列)x64(行),显示模式:蓝模全透,负显。带字库,支持图形显示。主要包括写指令子程序、读指令子程序、背光驱动子程序、光标移动子程序、16*16字模显示子程序、8*16字模显示子程序等。2.5 系统总体流程图系统总体流程图如图3.2所示。图3.2 系统总体流程图3 系统测试引入超声测距模块,可以灵活测出风扇前沿与帆板距离,在进行基于pid的pwm调整过程中,引入了距离参量,可以灵活修正。调试初期,发现风扇在低速范围内调速不稳或不能调速,导致风帆在15以内达不到控制精度甚至无法控制。为了增加风扇在低端的调速范围,采用了降低电源电压的方法。具体实现方法是当设定角度低于20时,通过将12v电源电压切换至9v再按照pwm方法进行调速的方法。9v的得到是通过将12v电源降低到9v的方法,通过继电器进行切换。为提高电源的效率采用lm2576串联开关电源,效率可达到85%以上。通过采用以上方法的改进,现在系统在小角度范围内得到了较精确的控制,达到甚至超过了设定值。选用的风扇采用了市售的直流无刷风扇,为进一步拓宽调速范围,可以通过对风扇的电流频率进行调节,另外也可对风扇的相数进行切换,以实现更大范围的调速。限于时间有限未进行以上的进一步改进。3.1 测试使用的仪器测试使用的仪器设备如表4.1所示。表4.1 测试使用的仪器设备序号名称数量备注1量角器12秒表13示波器14万用表13.2 指标测试和测试结果3.2.1基本要求部分测试1、转角测试,手动帆板,测量转角结果如表4.2所示。表4.2 手动帆板角度测量表量角器角度(标准)51015202530354045505560正行程51113222633353944485359反行程5914212732364146505459最大误差012223111221回差 = =3%满度误差 = 2、当间距d=10cm 时,通过操作键盘控制风力大小,使帆板转角能够在060范围内变化,并要求实时显示。 测试结果如表4.3所示。表4.3 角度测试结果角度实际角度次数 51015202530354045505560正行程21013222633353944485356反行程1814212732364246505256测试结果表明,符合设计要求。3、当间距d=10cm 时,操作键盘控制风力大小,使帆板转角稳定在 455范围内。要求控制过程在10 秒内完成实时显示,并由声光提示,以便进行测试,结果如表4.4所示。表4.4 次数角度()时间(s)是否满足要求第一次438是第二次447是第三次469是 测试结果表明,当间距d=10cm 时,操作键盘控制风力大小,使帆板转角能稳定在 455范围内。3.2.2 发挥部分测试风扇与帆板距离调整后,在10cm处测试结果如表4.5所示。表4.5 10cm处测试数据间距d(cm)15304560时间(s)101333475681012364257410143046565风扇与帆板距离调整后,在7cm、11cm、15cm处测试结果如表4.6所示。表4.6 不同距离测试数据间距d(cm)15304560时间(s)713334256811143443578151433425654. 结束语设计并制作了帆板控制系统,完成帆板转角的控制。帆板控制系统硬件部分,以c8051f020单片机作为控制核心,使用l298n搭建了风扇转速控制电路,利用adxl345模块完成了转角检测,利用hd7279a键盘管理芯片及12864液晶模块完成了人机交互,使用wt588d-16p语音模块实现了语音提示功能。软件部分,设计了基于i2c的角度传输程序,基于pid算法的pwm调速的程序,基于spi的键盘检测程序,液晶显示及其菜单程序,语音单线串口控制程序。帆板控制系统可以实现以下功能:帆板的转角显示范围060,分辨力2,绝对误差5;通过键盘控制风力大小,帆板转角能够在060范围内变化;通过键盘控制风力大小,使帆板转角稳定在某个范围;通过键盘设定帆板转角,并能很快到达该设定值;测试结果表明,系统在手动状态下能较好完成规定动作,在自动状态下能在规定时间内,顺利完成转角控制,分辨力小于为2,绝对误差5。参考文献:1 童诗白华成英.模拟电子技术基础m北京:高等教育出版,20102 黄智伟全国电子设计竞赛常用电路模块设计m北京:北京航空航天大学出版社,20103 王振红全国但学生电子设计竞赛赛前训练题 m北京:化学工业出版社,20104 杰诚文化精通pprtel dxp入门提高篇m北京:中国青年电子出版社,20055 潘琢金c8051f020/1/2/3 混合信号 isp flash微控制器数据手册新华龙电子有限公司2005附 录:附录1:主要元器件清单1、c8051f最小系统2、l298n3、adxl3454、wt588d-16p5、hd7279a6、12864液晶屏附录2:仪器设备清单1、示波器2、数字万用表3、开关电源4、直流电机5、散热风扇附录3:程序清单#include #include #include #include #include #include /lcd 程序#include /7279程序#include /测倾角程序#include /时钟计时/-/ 16-bit sfr definitions for f02x/-sfr16 dp = 0x82; / data pointersfr16 tmr3rl = 0x92; / timer3 reload valuesfr16 tmr3 = 0x94; / timer3 countersfr16 adc0 = 0xbe; / adc0 datasfr16 adc0gt = 0xc4; / adc0 greater than windowsfr16 adc0lt = 0xc6; / adc0 less than windowsfr16 rcap2 = 0xca; / timer2 capture/reloadsfr16 t2 = 0xcc; / timer2sfr16 rcap4 = 0xe4; / timer4 capture/reloadsfr16 t4 = 0xf4; / timer4sfr16 dac0 = 0xd2; / dac0 datasfr16 dac1 = 0xd5; / dac1 data /-/ global constants/-#define sysclk 22118400 / sysclk frequency in hz#define baudrate 115200 / baud rate of uart in bps #define first_addr 0 /定义字符/汉字显示起始位置 sbit pwm=p05; unsigned int dingshiqi;/时钟初始化void oscillator_init() int i; / delay counter oscxcn = 0x67; / start external oscillator with / 22.1184 mhz crystal for (i=0; i 256; i+) ; / wait for osc. to start up while (!(oscxcn & 0x80) ; / wait for crystal osc. to settle oscicn = 0x88; / select external oscillator as sysclk /source and enable missing clock void port_io_init( ) /引脚配制初始化 xbr0 = 0x08;/ xbr1 = 0x10;xbr1 = 0x04; xbr2 =0x40; p1mdout = 0x07;void init_device() wdtcn = 0xde; / disable watchdog timer wdtcn = 0xad; port_io_init(); oscillator_init(); lcdreset(); init_hd7279(); /* *启动欢迎画面*/void jiemian_qishi_han0() unsigned int i; wr_com(0x34); wr_com(0x30); wr_com(0x01); wr_com(0x80+first_addr); hzkdis( ); wr_com(0x90+first_addr); hzkdis( 帆板控制系统 ); wr_com(0x88+first_addr); hzkdis( 2011年09月 ); wr_com(0x98+first_addr); hzkdis( ); for(i=0;i200;i+) delay(10000); /手动菜单/void jiemian_shoudong_01() keyval=0xff; initial(); wr_com(0x34); wr_com(0x30); wr_com(0x01); wr_com(0x80+first_addr); hzkdis( 演示分辨力 ); wr_com(0x90+first_addr); hzkdis( 角度:00 ); wr_com(0x88+first_addr); hzkdis( ); wr_com(0x98+first_addr); hzkdis( ); adxl345_int0(); while(keyval!=key_ok) adxl345_duxian(2,4); shizhong(); if(keyval=key_c) /增大 dingshiqi=dingshiqi-307; if(dingshiqi=65534) dingshiqi=65534; delay(50); keyval=0xff; delay(50); delay(100); keyval=0xff; void jiemian_shoudong_02() keyval=0xff; initial(); wr_com(0x34); wr_com(0x30); wr_com(0x01); wr_com(0x80+first_addr); hzkdis( 键盘调节风力 ); wr_com(0x90+first_addr); hzkdis( 角度:00 ); wr_com(0x88+first_addr); hzkdis( ); wr_com(0x98+first_addr); hzkdis( ); adxl345_int0(); while(keyval!=key_ok) adxl345_duxian(2,4); shizhong(); if(keyval=key_c) /增大 dingshiqi=dingshiqi-307; if(dingshiqi=65534) dingshiqi=65534; delay(50); keyval=0xff; delay(50); delay(100); keyval=0xff; void jiemian_shoudong_03() keyval=0xff; initial(); wr_com(0x34); wr_com(0x30); wr_com(0x01); wr_com(0x80+first_addr); hzkdis( 调节风力稳定 ); wr_com(0x90+first_addr); hzkdis( 角度:00 ); adxl345_int0(); while(keyval!=key_ok) adxl345_duxian(2,4); shizhong(); if(keyval=key_c) /增大 dingshiqi=dingshiqi-307; if(dingshiqi=65534) dingshiqi=65534; delay(50); keyval=0xff; delay(50); delay(100); keyval=0xff; /自动菜单/ void jiemian_zidong_01() keyval=0xff; initial(); wr_com(0x34); wr_com(0x30); wr_com(0x01); wr_com(0x80+first_addr); hzkdis(间距10达规定角 ); wr_com(0x90+first_addr); hzkdis( ); wr_com(0x88+first_addr); hzkdis( ); wr_com(0x98+first_addr); hzkdis( ); while(keyval!=key_ok) adxl345_duxian(2,4); shizhong(); delay(100); delay(10); keyval=0xff; /* * void jiemian_zidong_02() keyval=0xff; initial(); wr_com(0x34); wr_com(0x30); wr_com(0x01); wr_com(0x80+first_addr); hzkdis(间距可调达定角 ); wr_com(0x90+first_addr); hzkdis( ); wr_com(0x88+first_addr); hzkdis( ); wr_com(0x98+first_addr); hzkdis( ); while(keyval!=key_ok) adxl345_duxian(2,4); shizhong(); delay(100); delay(10); keyval=0xff; void jiemian_zidong_03() keyval=0xff; initial(); wr_com(0x34); wr_com(0x30); wr_com(0x01); wr_com(0x80+first_addr); hzkdis( 发挥部分 ); while(keyval!=key_ok) adxl345_duxian(2,4); shizhong(); delay(100); delay(10); keyval=0xff; /*手动控制* void shoudong() keyval=0xff; while(keyval!=key_ok) switch (keyval) case key_1: jiemian_shoudong_01();break;case key_2: jiemian_shoudong_02();break;case key_3: jiemian_shoudong_03();break; default: wr_com(0x34); wr_com(0x30); wr_com(0x01); wr_com(0x80+first_addr); hzkdis( 手动控制 ); wr_com(0x90+first_addr); hzkdis(1.演示分辨力 ); wr_com(0x88+first_addr); hzkdis(2.键盘调节风力 ); wr_com(0x98+first_addr); hzkdis(3.调节风力稳定 ); while(keyval!=key_1&keyval!=key_2&keyval!=key_3&keyval!=key_ok) ; delay(100); break; delay(100); keyval=0xff; /自动控制/ void zidong() keyval=0xff; while (keyval!=key_ok) switch (keyval)case key_1: jiemian_zidong_01(); break;case key_2:jiemian_zidong_02(); break;case key_3:jiemian_zidong_03(); break; default: wr_com(0x34); wr_com(0x30); wr_com(0x01); wr_com(0x80+first_addr); hzkdis( 自动控制 ); wr_com(0x90+first_addr); hzkdis(1.间距10达规定角); wr_com(0x88+first_addr); hzkdis(2.间距可调达定角); wr_com(0x98+first_addr); hzkdis(3.发挥部分 ); while(keyval!=key_1&keyval!=key_2&keyval!=key_3&keyval!=key_ok) ; delay(100); break; delay(1000); keyval=0xff;/*=速度计算部分 =*/void pid_zidong_suanfa()xdata int canshu;pidinit ( &spid ); / initialize structure spid.proportion =0.3; / set pid coefficients 比例常数 proportional const spid.integral =0; /积分常数 integral const spid.der

温馨提示

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

评论

0/150

提交评论