(说明书正文)HJB课设_第1页
(说明书正文)HJB课设_第2页
(说明书正文)HJB课设_第3页
(说明书正文)HJB课设_第4页
(说明书正文)HJB课设_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

武汉理工大学智能仪器课程设计说明书 1绪论 数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,其精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。本系统用单片机AT89S51构成智能化数据采集和电压监控系统, 具有精度高、速度快、性能稳定和电路简单且工作可靠等特点, 具有很好的使用价值。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。本课设用ADS7825制成数字电压表可以测量05V的输入电压值,ADS7825进行模数转换然后送给单片机处理,用数码显示器进行测量结果的显示。以便于与其它设备进行数据交换,便于实现智能化控制。该系统以单片机为核心具有如下功能:1)能对2-4v范围变化的模拟信号进行连续采样(模拟信号中有尖峰脉冲干扰和50Hz工频干扰)和实时数字显示,采样频率为10Hz,保存最近的50个连续采样值;2)当采样值小于2v时第1个报警灯闪烁,大于4v时第2个报警灯闪烁;3)能对存在的系统误差进行线性插值校正;4)能和上位机进行串行通信,根据上位机的要求随时将采样数据上传;5)能产生占空比为20%幅度为5v的50Hz脉冲波供外设用。本章重点对它的硬件和软件部分进行详细介绍 2方案设计2.1A/D采样模块的选择方案一:利用ADS7825芯片来进行A/D转换,它是4通道,16位模数转换器,由单一5V电源供电,数据采样及转换时间不超过25us,它的最大优点就是数据可以并行输出,又可串行输出,所以转换速度比较快,使用也很方便。方案二:MAX197 是一种单电源,工作电压为5V,并行12位A/D转换器,其采样速率可以达到100ksps,采样有效动态范围可增至 16 位。具有 8个采集通道,可独立设置多种输入范围:10V、5V、0V至 10V 或0V至5V,且任何通道的故障都不影响其他通道的变换结果。由于该芯片在片内已有采样跟踪保持电路,内部时钟电路和内部参考电压源,所以在应用时,所需外围元件极少,因此,用MAX197构成的数据采集系统具有硬件结构简单、体积小和可扩展功能多的优点。经比较,为了更好实现电路要求、采集精度适合,AD采样模块采用方案一。2.2显示模块的选择 方案一:采用液晶1602显示,它属于工业字符型液晶,能够同时显示16x02即32个字符。1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。但它微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。 方案二:采用数码管显示,数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。LED数码管常用段数一般为7段有的另加一点,它在单片机里可以用作静态显示和动态显示,只要我们输入段码和位码,我们就可以在相应的数码管显示我们想要的数值,不断的循环移位显示,并且保证间隔时间很短,就可以动态显示了。 根据性价比和编程方便的需要,综合考虑我选择方案二2.3总设计方案与系统框图 根据设计要求,该系统采用51内核的8位机作为控制核心,A/D转换器采用ADS7825,它是16位转换,因为要求电压显示精度要1mv,所以8位转换明显不够,所以就采用了16位转换的,数字量经过CPU处理后,转化为十进制数,这就是我们要显示出来的电压值,我们采用动态显示,把4位数字量循环显示出来,同时我们还可以利用51的定时器在P3.6引脚输出满足条件的方波,利用RS232端口可以实现单片机与PC机之间的串口通信,把单片机采集到的50个数据进行实时传送和显示。输入AD转换的模拟信号,50hz工频干扰利用带阻滤波器消除,脉冲干扰信号采用数字滤波用软件编程加以去除,零点误差和增益误差利用软件编程进行校正。本设计的系统框图如下图2-1所示:LED数码显示滤波电路/模拟量输入通道AD转换/单片机PC上位机RS232串口方波输出 显示报警显示 图2-1 系统总设计框图 3硬件部分设计3.1单片机系统介绍以及报警显示方波输出本设计采用的单片机芯片为AT89C51,提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。由于我们平时学习已经对它有很深的了解,所以在这里我就不对它的各个引脚功能进行详细说明。如下图3.3所示,我们把P0口做为数码显示通道,把P1口作为A/D转换后的数字量输入通道, P3.0和P3.1作为上位机串口通信的接收发送通道,P3.2和P3.3作为报警LED灯亮灭通道,P3.6作为所需方波输出通道,P2口作为数码管位选通道以及AD芯片的控制信号。工作原理:A/D转换后的数字量从P1口输入,由于AD为16位转换,所以数字量分高8位和低8位进行接收,在芯片中进行处理后把模拟量电压的段码从P0口输出给数码管,其中P2.0P2.3作为数码管的位选信号端,就可以实现动态显示。P3.2和P3.3口我们可以用软件编程来实现报警灯的亮灭,当电压值小于2.000V时我们让P3.2口置1,这时报警灯1亮,当电压值大于4.000V时,我们让P3.3口置1,这时报警灯2亮。要想输出符合要求的方波,我们可以编程来实现,同时还需要硬件电路实现,当P3.6口为高电平时,光电耦合器不工作,这时通过上拉电阻得到电压值5V, 当P3.6口为低电平时,光耦合导通,这时输出电压为0,占空比为20%,周期为50HZ,只要利用单片机的定时器和中断编程就可以得到。 图3.1 单片机芯片及电路图3.2滤除工频干扰的滤波电路设计 滤除50HZ工频干扰的滤波电路设计,采用具有滤波,放大,反馈, 调节功能的可调Q值双有源带阻滤波电路,在有源带阻滤波电路基础上,又增加了具有反馈功能的运算放大器U2:A 和具有调节功能的电位器RW。其中,电位器RW具有调节电路的品质因数Q的作用,Q值越大,阻带宽度越窄,选频特性越好滤除50HZ工频干扰的滤波电路如图3.2所示,在带阻滤波电路设计中,带阻滤波器的中心频率f0 1/2 RC,所以令C4C50.01uF,则R4=R5318.4K ,C110.02uF,R6159.2K调整电位器RW,使阻带中心频率在50HZ处,并且阻带带宽在以内,以达到在输出电压V0 中完全滤除50HZ工频信号及其二次谐波干扰的目的 图3.2 50HZ工频干扰滤波电路3.3系统A/D转换电路介绍 由于设计要求规定电压分辨率要达到1mv,因为8位AD的分辨率为1/28 大于0.001,所以不满足条件,所以我选择16位的AD转换器ADS7825,分辨率为1/216 小于0.001 下面对这个芯片做介绍 ADS7825是美国B - B 公司生产的 4通道 ,16位模数转换器。它由单一5V 电源供电,数据采样及转换时间不超过 25 s ,可输入 - 10. 010. 0V 的模拟电压。AD 转换后的数据既可并行输出,也可串行输出,数据转换模式还可设置为 4通道间连续循环转换,使用极其方便。下面对该芯片引脚做详细说明,如下图3.1所示:AIN 0AIN 3 : 4 个模拟通道 , 可接受 -10.010. 0V 的模拟输入电压 。PAR/ SER : 该管脚为高电平时, 数据在 D0D7脚并行输出; 为低电平时, 数据在 SDATA 脚串行输出。B YTE : 并行数据输出选择位,仅在数据作并行输出时使用。B YTE = 1 时 , 输出低 8 位 D0D7 , B YTE = 0时 ,输出高 8位 D0D7 。R/ C : 读数/ 启动转换,该管脚被一下降沿触发将保持前次的采样并启动下一次模数转换; 上升沿触发 ,则允许读数。BUSY: 状态标志位,只读管脚。在AD 转换过程中 ,该管脚输出始终保持低电平。转换结束,数据锁存到输出寄存器后, 该管脚输出高电平。当数据作并行输出时,必须使BUSY= 1 ,才可读数。CON TC :选择转换模式。CON TC = 0时,必须用CS及 R/ C来逐次启动AD 转换; CON TC = 1时,采样和读取数据在 4个通道之间自动循环进行。SYNC :串行数据输出帧同步信号。 SYNC 为输出管脚 , 仅在数据作串行输出时使用。输出正脉冲时 ,其后沿标志着一帧数据的最高位开始输出。TA G:该脚仅在多个ADS7825联合工作、数据作串行输出且用外部时钟工作时才起作用。当电路中使用单个 ADS7825时 , 可在 TA G脚接低电平。当电路中 ADS7825 联合工作时 , 可将前一级ADS7825 的 SDATA 脚接至后一级 ADS7825 的TA G脚。第一级 ADS7825的 TA G脚接地 ,最后一级 ADS7825的 SDATA 脚输出数据,这样 ,最后一级 ADS7825 的 SDATA 脚将由后级至前级依次输出各个 ADS7825的转换数据。 图3.3ADS7825芯片模数转换电路3.4零点误差和增益误差校正电路 如右图所示,它是八通道的模拟输入开关,我们利用CPU对它的控制可以进行通道输入的设置,分别在输入端接入零位电压和标准电源E,测出滤波器后的电压分别为y0和y1,得到两个方程,表示为: 0=b1y0+b0 E=b1y1+b0把这两个方程联立后解得b1=E/(y1-y0) b0=E/(1-y1/y0)于是经过校正后的实际模拟电压输入量X=E(y-y0)/(y1-y0)图3.4多路模拟开关 自动增益校正原理如下所示:A微处理器A/D转换器 图3.4.2增益自动校正原理图3.5数码显示部分设计 数码管就采用共阴极的,由单片机P0口输给它段码,高电平有效,每个数码管显示所要的数字,另外由单片机P2.0P2.3口来作为数码管的位选通,低电平有效,位不断的循环选通,且延时时间很短就形成了动态显示 图3.5数码显示器3.6 上位机通信电路设计 上位机通讯电路本设计采用MAX232芯片进行电平转换,MAX232芯片是美信公司专门为电脑的RS232标准串口设计的接口电路,使用+5V单电源供电,它的作用就是完成TTL电平与RS232电平的转换,即是一种把电脑的串行口RS232信号电平(-10,+10v)转换为单片机所用到的TTL信号点平(0,+5)的芯片。MAX232引脚分布如图3.6所示,各引脚标号,作用如下:1 载波检测 DCD2 接收数据 RXD3 发送数据 TXD4 数据终端准备好 DTR5 信号地 SG6 数据准备好 DSR7 请求发送 RTS8 清除发送 CTS9 振铃提示 RI 图3.6 RS232串口通信电路 4系统软件部分设计4.1 A/D转换子程序unsigned int GetAdsvalue()unsigned int DianYa1=0,DianYa2=0,DianYa=0;Delay(10);CS_7825 = 0; /芯片选通使能RC_7825 = 0;RC_7825 = 1; /相当于给了一个高电平脉冲启动转换nop();nop();nop();nop();while(BUSY_7825 = 1); /等待转换结束BYTE_7825=1;Delay(10);DianYa1 =ADS_Data; /返回电压寄存器中低八位的值BYTE_7825=0;Delay(10);DianYa2 =ADS_Data; /返回电压寄存器中高八位的值DianYa=DianYa2*100+DianYa1;CS_7825 = 1;return DianYa; /返回电压寄存器中的值4.2数码显示以及报警灯子程序void DisVoltage(unsigned int V_0804) double Voltage0 = (double)V_0804;unsigned char Ge = 0; /用于存取个位数值unsigned char Xiao1 = 0; /用于存取小数点后第一位数值unsigned char Xiao2 = 0; /用于存取小数点后第二位数值unsigned char Xiao3 = 0; /用于存取小数点后第三位数值LED1=0;LED2=0; Voltage0 = (60.*(Voltage0/65535)*1000; /电压值已经转换并且*1000用于提取小数点后三位if(Voltage04000)LED2=1; /提取每一位的数值Ge = (unsigned int)Voltage0)/1000%10;Xiao1 = (unsigned int)Voltage0)/100%10;Xiao2 = (unsigned int)Voltage0)/10%10;Xiao3 = (unsigned int)Voltage0)%10; /显示SMG_WData = 0xff; /消隐SMG_DData = SMG_DcodeGe | 0x80; /段码SMG_WData = SMG_Wcode0; /位码Delay(4);SMG_WData = 0xff; /消隐SMG_DData = SMG_DcodeXiao1; /段码SMG_WData = SMG_Wcode1; /位码Delay(4);SMG_WData = 0xff; /消隐SMG_DData = SMG_DcodeXiao2; /段码SMG_WData = SMG_Wcode2; /位码Delay(4);SMG_WData = 0xff; /消隐SMG_DData = SMG_DcodeXiao3; /段码SMG_WData = SMG_Wcode3; /位码Delay(4);SMG_WData = 0xff;4.3方波输出子程序void Timer0(void) interrupt 1 using 1OUT=0; /输出端为0TR0=0; /关闭计时器0 TH0=0xF1; TL0=0x9A ; /T0重新装入计数初值void Timer1(void) interrupt 3 using 2OUT=1; /输出端为1TR0=1; /启动计时器0TH1=0xB8; /T1重新装入计数初值TL1=0x00;void main() OUT=0; TMOD=0x11; /定时器设置工作方式 EA=1; /开总中断 ET0=1; /开中断允许标志位 ET1=1; TH1=0xB8; /T1置计数初值 TL1=0x00; TH0=0xF1; TL0=0x9A; /T0置计数初值 TR0=1; /启动计数器 TR1=1;while(1)DisVoltage(GetAdsvalue();4.4 各单元流程图16进制数字量转换为10进制数LED1报警灯亮LED2报警灯亮提取要显示的个位,十百千分位位选通0,输入个位段码,延时位选通1,输入十分位段码,延时位选通2,输入百分位段码,延时位选通3,输入千分位段码,延时小于2000?大于4000?开始选通ADS7825芯片启动A/D转换延时等待BYTE置1,返回电压寄存器低八位BYTE置0,返回电压寄存器高八位合并成16位数字量转换结束即BUSY=1?开始返回 图4.4.2数码显示与报警流程图 图4.4.1 A/D转换流程图定时器T0,T1设置工作方式1置T0计数初值为0F19AH置T1计数初值为0B800H开中断允许位ET0和ET1开总中断EA启动计数器T0和T1在主程序运行等待中断开始输出端P3.6=0输出端P3.6=1开启T0计时,TR=1关闭T0计时,TR0=0T0重新装入初值T1重新装入初值T0计时4ms后进入中断服务子程序1T1计时20ms后进入中断服务子程序2返回返回 图4.4.3 方波产生流程图设定定时器3工作模式设定波特率设定串行口工作方式启动定时器3是否被应答?发送完毕?发送数据发送请求等待计数变量+1开始结束 图4.4.4 RS232串口通信流程图 5仿真结果 图5.1电压刚低于4V显示图 图5.2电压刚大于2V显示图 图5.3电压低于2V时报警图 图5.4电压高于4V时报警图 图5.5方波输出图 6课设总结 作为一名测控专业的大三学生,我觉得做智能仪器课程设计是十分有意义的,而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的实践平台。在这次课程设计中,我们运用到了以前所学的专业课知识,如:Protel制图、汇编语言、模拟和数字电路知识等。在学习的过程中带着问题去学,我发现效率很高,这是我做这次课程设计的一大收获。 同时,我认识到,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。两周的课程设计结束了,但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。 最后还要在这里感谢牟新刚老师对我们细心指导!【参考文献】1 史健芳 智能仪器设计基础(第二版) 电子工业出版社 2012,9 2 张毅刚,彭喜元等 新编MS-51单片机应用设计(第三版) 哈尔滨工业大学出版社,2008,4 3 徐爱钧.智能化测量控制仪表原理与设计(第二版)M.北京:北京航空航天大学出版社,2004.4 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用M.北京:清华大学出版社,2002.5 张国勋,缩短ICL7135A/D采样程序时间的一种方法J. 电子技术应用,1993,第一期.附录一 程序清单/*系统晶振:12MHz*/#include reg52.h#include intrins.h#define nop() _nop_()/引脚定义sbit CS_7825=P27;sbit BYTE_7825=P24;sbit BUSY_7825=P25;sbit RC_7825=P26;sbit LED1=P33;sbit LED2=P32;sbit SDA=P20; /定义i2c连接端口sbit SCL=P21;unsigned char flag_led1,flag_led2,led_num,imp_num;unsigned char flag_uart,flag_time,t0_num;unsigned char a,b;int V_data,V_mid,value,Ling,Ref;float ad_v;#define ADS_Data P1#define SMG_DData P0/*数码管段码端口*/#define SMG_WData P2/*数码管位码端口*/段码表unsigned char code SMG_Dcode=0x3F,/*0*/0x06,/*1*/0x5B,/*2*/0x4F,/*3*/0x66,/*4*/0x6D,/*5*/0x7D,/*6*/0x07,/*7*/0x7F,/*8*/0x6F,/*9*/;/位码表unsigned char code SMG_Wcode=0xfe,0xfd,0xfb,0xf7;/*延时函数*/void Delay(unsigned int x)unsigned char i=0;for(;x0;x-)for(i = 0;i0;y-)for(j=0;j1000;j+) nop();/* 冒泡排序:将9位数的数组从小到大排序 */unsigned int reorder(unsigned int groupN)int i,j,k;int m=1;for(i=0;iN-1;i+)for(j=i+1;jN;j+)if(groupj-1groupj) contiue; k=groupj; groupj=groupj-1; groupj-1=k; m=0;if(m=1) break; Between=group4; /取中间值return Between;/*获取ADC寄存器值函数说明:只是获取的ADC内部电压寄存器的值,没有进行任何的转换 而电压值的转换部分将放在显示部分*/unsigned int GetAdsvalue()unsigned int DianYa1=0,DianYa2=0,DianYa=0;Delay(10);CS_7825 = 0;/芯片选通使能RC_7825 = 0;RC_7825 = 1;/相当于给了一个高电平脉冲启动转换nop();nop();nop();nop();while(BUSY_7825 = 1);/等待转换结束BYTE_7825=1;Delay(10);DianYa1 =ADS_Data; /返回电压寄存器中低八位的值BYTE_7825=0;Delay(10);DianYa2 =ADS_Data; /返回电压寄存器中高八位的值DianYa=DianYa2*100+DianYa1;CS_7825 = 1;return DianYa;/返回电压寄存器中的值/*对采样值进行中值滤波并进行误差校正,得到用于显示和传输的数据* */void deal_data(unsigned int cydata)int i;for(i=0;iN;i+) /从通道0读基准电压 0Vread_ad(0);tempi=value;delay_ms(1);reorder(tempN); /中值滤波Ling= temp4;for(i=0;iN;i+) /从通道2读基准电压 3.3Vread_ad(1);tempi=value;delay_ms(1);reorder(tempN); /中值滤波Ref=temp4;while(1)if(flag_uart=1) /向PC机传输50个采样值flag_uart=0;ES=0;unsigned int vol,h;unsigned char qian,bai,shi,ge; int i;for(i=0;i50;i+) vol=His_datai; h=6144*vol/32768; qian=h/1000+0x30; bai=h%1000/100+0x30; shi=h%1000%100/10+0x30; ge=h%10+0x30; SendOneByte(qian); SendOneByte(.); SendOneByte(bai); SendOneByte(shi); SendOneByte(ge);ES=1; if(flag_time=1) / 1s采样一次flag_time=0;int i;for(i=0;iN;i+) /从通道1读取采样值read_ad(1);tempi=valuedelay_ms(1);reorder(tempN); /中值滤波V_mid=temp4V_data=17600*(V_mid-Ling)/(Ref-Ling); /增益校正和零点校正if(b=49)int j;for(j=0;j49;j+)His_dataj=His_dataj+1;His_data49=V_data;elseHis_datab=V_data;b+;Return V_dat/*显示AD转换后的电压值说明:此函数主要实现两个功能【一是将ADS7825电压寄存器中的值转换为 实际电压值;二是将实际电压值用数码管显示出来】*/void DisVoltage(unsigned int V_0804) double Voltage0 = (double)V_0804;unsigned char Ge = 0;/用于存取个位数值unsigned char Xiao1 = 0;/用于存取小数点后第一位数值unsigned char Xiao2 = 0;/用于存取小数点后第二位数值unsigned char Xiao3 = 0;/用于存取小数点后第三位数值LED1=0;LED2=0; Voltage0 = (60.*(Voltage0/65535)*1000; /电压值已经转换并且*1000用于提取小数点后三位if(Voltage04000)LED2=1;/提取每一位的数值Ge = (unsigned int)Voltage0)/1000%10;Xiao1 = (unsigned int)Voltage0)/100%10;Xiao2 = (unsigned int)Voltage0)/10%10;Xiao3 = (unsigned int)Voltage0)%10; /显示SMG_WData = 0xff;/消隐SMG_DData = SMG_DcodeGe | 0x80;SMG_WData = SMG_Wcode0;Delay(4);SMG_WData = 0xff;/消隐SMG_DData = SMG_DcodeXiao1;SMG_WData = SMG_Wcode1;Delay(4);SMG_WData = 0xff;/消隐SMG_DData = SMG_DcodeXiao2;SMG_WData = SMG_Wcode2;Delay(4);SMG_WData = 0xff;/消隐SMG_DData = SMG_DcodeXiao3;SMG_WData = SMG_Wcode3;Delay(4);SMG_WData = 0xff;/*TO中断服务子程序 4ms*/void Timer0(void) interrupt 1 using 1OUT=0;TR0=0; TH0=0xF1; TL0=0x9A;/*T1中断服务子程序 20ms*/void Timer1(void) interrupt 3 using 2OUT=1;TR0=1;TH1=0xB8;TL1=0x00;*- 启动IIC总线-*/ void Start(void) SDA=1; _nop_(); SCL=1; _nop_(); SDA=0; _nop_(); SCL=0; /*- 停止IIC总线-*/ void Stop(void) SDA=0; _nop_(); SCL=1; _nop_(); S

温馨提示

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

评论

0/150

提交评论