无线传感(期末考查论文)——杨岗、余国朗、洪聪、朱校立_第1页
无线传感(期末考查论文)——杨岗、余国朗、洪聪、朱校立_第2页
无线传感(期末考查论文)——杨岗、余国朗、洪聪、朱校立_第3页
无线传感(期末考查论文)——杨岗、余国朗、洪聪、朱校立_第4页
无线传感(期末考查论文)——杨岗、余国朗、洪聪、朱校立_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、广东东软学院无线传感器及接口技术期末考查项目选题名称:基于nRF2401无线传输的集温湿度与光照的监测系统专业班级:13嵌入式系统工程1班课题小组成员国校聪授课老师:杨斌日期:2015年6月5日目 录摘 要III前 言III1系统方案11.1 微控制器的论证与选择11.2 无线模块的论证与选择11.3温湿度传感器的论证与选择21.4 光敏传感器的论证与选择22系统理论分析与计算22.1 nRF2401无线收发模块的分析22.1.1 nRF2401工作方式23电路与程序设计33.1电路的设计3

2、3.1.1系统总体框图33.1.2 nRF2401无线通信子系统框图与电路原理图33.1.3 DHT11温湿度传感器子系统框图与电路原理图43.1.4 BH1750光敏传感器子系统框图与电路原理图43.1.5 LCD显示子系统框图与电路原理图53.1.6电源63.2程序的设计63.2.1程序设计思路63.2.2程序流程图6附录1:电路原理图8附录2:源程序9发送端程序:9接收端程序:23摘 要本系统以STC89C52单片机作为主要控制核心,通过nRF2401无线通信模块对环境温湿度和光照进行实时监测采集。系统主要分为发送端和接收端设计,由单片机控制模块、无线通信模块、温湿度采集模块、光照强度采

3、集模块、按键以及液晶显示模块六大部分组成。主要工作原理是由SHT11温湿度传感器和BH1750光敏传感器对环境进行实时监测,将检测采集到的数据通过发送端的单片机在LCD1602显示出来,然后通过nRF2401无线通信模块发送给接收端的单片机,经过处理后在接收端的LCD12864实时显示。满足了实时监测的要求, 提高了对环境温湿度与光照数据采集的自动性和高效性。本系统具有较高的实用性和可靠性,成本低,功耗低,具有良好的应用前景。 关键词:STC89C52单片机;nRF2401无线通信;温湿度、光照监测前 言温湿度和光照等环境因素在工农业生产、气象、环保、医疗等领域有着重要的价值, 传统的温湿度和

4、光照监测系统不仅要设计信号条理电路, 还要经过复杂的校准和标定, 其测量精度难以得到保证。随着科学技术的发展, 数字化、智能化、无线化传感器得到有效的发展同时广泛的应用。系统以低耗微控制器为核心配置以收发芯片和数字温湿度传感器以及光敏传感器开发了一个能够进行实时通信的无线温湿度采集系统, 系统简单, 稳定可靠, 具有较高的实用性。基于nRF2401无线传输的集温湿度与光照监测系统(期末考查题)【杨岗余国朗朱校立洪聪小组】1系统方案本系统主要由单片机控制模块、无线通信模块、温湿度采集模块、光照强度采集模块、按键模块、液晶显示模块、电源模块组成。整个系统分为发送端和接收端设计。下面分别论证这几个模

5、块的选择。1.1 微控制器的论证与选择方案一:STM32单片机。STM32单片机,其晶振频率可达到70多M(51单片机一般12M左右),其处理速度不仅快,并且自带12位的ADC寄存器,PWM寄存器(如果响应端加上电机,还可以控制降温),彩屏,数据采集都可以达到使用要求。另外STM32还有功耗低,多个定时器等。使用STM32 完全能满足本系统的功能和性能。方案二:STC89C52单片机。STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。在嵌入式控制应用系统设计上能提供灵活、高效的解决方案。用STC89C52单片机作为本系统的微控制器,从功能角度来

6、看52单片机是可以完成的,但是从性能方面看尚有瑕疵,存在处理速度慢,而没有AD/DA转换(需要外加AD/DA),采集周期长等一些问题。综合以上两种方案,选择方案二。因为上述两款单片机功能上适用于本系统设计,相比之下,STC89C52单片机价格更低,性价比更高,而且应用广泛,无论是从内部构造,还是编程方面51系列单片机都相对简单,容易掌握和使用。1.2 无线模块的论证与选择方案一:nRF905无线芯片。nRF905无线芯片是低于1GHz无线数传芯片,主要工作于433MHz、868MHz和915MHz的ISM频段。芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通

7、过程序进行配置。芯片能耗非常低,以10dBm 的功率发射时,工作电流仅有 30mA,接收时工作电流只有 12.5mA,多种低功率工作模式,待机模式下电流仅为12.5A,节能设计更方便。其 ShockBurst技术可在通讯时自动生成前导码和CRC校验位。nRF905适用于多种无线通信的场合,非常适合于低功耗、低成本的系统设计。方案二:nRF2401无线芯片。nRF2401是单片射频收发芯片,工作于2.42.5GHz ISM频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。芯片能耗非常低,以-5dBm的功率发射时,工作电流只有10.5mA,接

8、收时工作电流只有18mA,掉电模式可以很容易的实现低功耗需求,多种低功率工作模式,节能设计更方便。其DuoCeiverTM技术使nRF2401可以使用同一天线,同时接收两个不同频道的数据。综合以上两种方案,选择方案二。nRF2401的数据传输速率比nRF905高,而且传输距离更远。1.3温湿度传感器的论证与选择数字温湿度传感器DHT11是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能

9、力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。综合考虑采用温湿度传感器DHT11。1.4 光敏传感器的论证与选择这款BH1750环境光传感器内置16位的模数转换器,它能够直接输出一个数字信号,不需要再做复杂的计算。这是一种更精良的和容易使用简易电阻器的版本,通过计算电压,来获得有效的数据。这款环境光传感器能够直接通过光度计来测量。

10、光强度的单位是流明"lx"。当物体在均匀的光照下它能够在每平方米获得1lx的光通量,它们的光强度是1lx。综合考虑采用BH1750环境光传感器。2系统理论分析与计算2.1 nRF2401无线收发模块的分析 2.1.1 nRF2401工作方式nRF2401有工作模式有四种:收发模式、配置模式、空闲模式、关机模式工作模式由CE 和寄存器内部PWR_UP、PRIM_RX 共同控制,见下表:发射数据时,首先nRF2401配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF2401缓存区,TX_PLD必须在CSN为低时连续写入,而TX_A

11、DDR在发射时写入一次即可,然后CE置为高电平并保持至少10us,延迟130us后发射数据;若自动应答开启,那么nRF2401在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX FIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TX FIFO中数据保留以便再次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则nRF2401进入空闲模式1;若发送堆栈中有数据

12、且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。接收数据时,首先将nRF2401配置为接收模式,接着延迟130us进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF2401进入空闲模式1.3电路与程序设计3.1电路的设计3.1.1系统总体框图系统总体框图如图1所示,主要发送端和接收端两大部分,而其中的每个部分有以下模块构成:单片机控制模块、无线通信模块、

13、温湿度采集模块、光照强度采集模块、按键模块、液晶显示模块、电源模块等。图1 系统总体框图3.1.2 nRF2401无线通信子系统框图与电路原理图1、nRF2401无线通信子系统框图 图2 nRF2401无线通信子系统框图2、nRF2401无线通信子系统电路图3 nRF2401无线通信子系统电路3.1.3 DHT11温湿度传感器子系统框图与电路原理图1、DHT11温湿度传感器子系统框图图4 DHT11温湿度传感器子系统框图2、DHT11温湿度传感器子系统电路图5 DHT11温湿度传感器子系统电路3.1.4 BH1750光敏传感器子系统框图与电路原理图1、BH1750光敏传感器子系统框图图6 BH

14、1750光敏传感器子系统框图2、BH1750光敏传感器子系统电路图7 BH1750光敏传感器子系统电路3.1.5 LCD显示子系统框图与电路原理图1、LCD显示子系统框图图8 LCD显示子系统框图2、LCD显示子系统电路图9 LCD显示子系统电路3.1.6电源电源由变压部分、滤波部分、稳压部分组成。为整个系统提供5V或者12V电压,确保电路的正常稳定工作。这部分电路比较简单,都采用三端稳压管实现,故不作详述。3.2程序的设计3.2.1程序设计思路系统要先进行初始化设置,初始化设置后,单片机向DHT11温湿度传感器和BH1750光敏传感器发送初试化脉冲;处于激活状态的传感器向单片机发送存在脉冲,

15、之后发射端的nRF2401处于接收等待状态。直到收到单片机发来中断命令后转入测量子程序,执行温湿度和光照的数据读取并发送给接收端,复位返回。3.2.2程序流程图1、主程序流程图2、nRF2401数据收发子程序流程图3、DHT11子程序流程图附录1:电路原理图附录2:源程序发送端程序:#include <REG52.H>#include <stdio.h> /Keil library#include <INTRINS.H>#define uchar unsigned char#define uint unsigned inttypedef unsigned c

16、har BYTE;typedef unsigned short WORD;#define SlaveAddress 0x46 /定义器件在IIC总线中的从地址,根据ALT ADDRESS地址引脚不同修改 /ALT ADDRESS引脚接地时地址为0xA6,接电源时地址为0x3A /*NRF24L01*#define TX_ADR_WIDTH 5 / 5 uints TX address width#define RX_ADR_WIDTH 5 / 5 uints RX address width#define TX_PLOAD_WIDTH 8 / 20 uints TX payload#defin

17、e RX_PLOAD_WIDTH 8 / 20 uints TX payloaduchar const TX_ADDRESSTX_ADR_WIDTH= 0x35,0x43,0x10,0x10,0x03; /本地地址uchar const RX_ADDRESSRX_ADR_WIDTH= 0x35,0x43,0x10,0x10,0x03;/接收地址/*NRF24L01寄存器指令*#define READ_REG 0x00 / 读寄存器指令#define WRITE_REG 0x20 / 写寄存器指令#define RD_RX_PLOAD 0x61 / 读取接收数据指令#define WR_TX_P

18、LOAD 0xA0 / 写待发数据指令#define FLUSH_TX 0xE1 / 冲洗发送 FIFO指令#define FLUSH_RX 0xE2 / 冲洗接收 FIFO指令#define REUSE_TX_PL 0xE3 / 定义重复装载数据指令#define NOP 0xFF / 保留/*SPI(nRF24L01)寄存器地址*#define CONFIG 0x00 / 配置收发状态,CRC校验模式以及收发状态响应方式#define EN_AA 0x01 / 自动应答功能设置#define EN_RXADDR 0x02 / 可用信道设置#define SETUP_AW 0x03 / 收发

19、地址宽度设置#define SETUP_RETR 0x04 / 自动重发功能设置#define RF_CH 0x05 / 工作频率设置#define RF_SETUP 0x06 / 发射速率、功耗功能设置#define STATUS 0x07 / 状态寄存器#define OBSERVE_TX 0x08 / 发送监测功能#define CD 0x09 / 地址检测 #define RX_ADDR_P0 0x0A / 频道0接收数据地址#define RX_ADDR_P1 0x0B / 频道1接收数据地址#define RX_ADDR_P2 0x0C / 频道2接收数据地址#define RX_

20、ADDR_P3 0x0D / 频道3接收数据地址#define RX_ADDR_P4 0x0E / 频道4接收数据地址#define RX_ADDR_P5 0x0F / 频道5接收数据地址#define TX_ADDR 0x10 / 发送地址寄存器#define RX_PW_P0 0x11 / 接收频道0接收数据长度#define RX_PW_P1 0x12 / 接收频道1接收数据长度#define RX_PW_P2 0x13 / 接收频道2接收数据长度#define RX_PW_P3 0x14 / 接收频道3接收数据长度#define RX_PW_P4 0x15 / 接收频道4接收数据长度#

21、define RX_PW_P5 0x16 / 接收频道5接收数据长度#define FIFO_STATUS 0x17 / FIFO栈入栈出状态寄存器设置sbit SCL=P10; /光 sbit SDA=P11; /光sbit t=P16;sbit DQ=P23; /DTH11sbit BELL=P16; /蜂鸣器sbit lcden=P37;sbit lcdrs=P34;sbit lcdrw=P36;/24l01sbit MISO=P14;sbit MOSI=P13;sbitSCK =P12;sbitCE =P10;sbitCSN=P11;sbitIRQ=P15;float temp1;BY

22、TE BUF8; /接收数据缓存区 uchar ge,shi,bai,qian,wan,temp_data,a,zzz,xxx; /显示变量uchar wendu;uchar shidu;int dis_data,i; /变量void Multiple_Read_BH1750(); /连续的读取内部寄存器数据/ 1602void delay1ms(uint z)uint x,y;for(x=z;x>0;x-)for(y=114;y>0;y-);void write_com(uchar com)lcdrs=0;P0=com;delay1ms(5);lcden=1;delay1ms(5

23、);lcden=0;void write_date(uchar date)lcdrs=1;P0=date;delay1ms(5);lcden=1;delay1ms(5);lcden=0; void init() /初始函数lcdrw=0;lcden=0; /E的初始值为低电平,后面的程序给高电平从而满足E为高脉冲write_com(0x38); /写入显示模式指令write_com(0x0c); /显示是否打开以及光标的设置write_com(0x06); /地址指针的加减和整屏是否移动write_com(0x01); /清屏指令write_com(0x80); /显示字符的初始位置 /24l

24、01void Delay(uint s);void inerDelay_us(uchar n);void init_NRF24L01(void);uchar SPI_RW(uchar byte);uchar SPI_Read(uchar reg);/void SetRX_Mode(void);uchar SPI_RW_Reg(uchar reg, uchar value);uchar SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars);uchar SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchar

25、s);uchar nRF24L01_RxPacket(uchar* rx_buf);void nRF24L01_TxPacket(uchar * tx_buf);/*uchar bdata sta; /状态标志sbitRX_DR=sta6;sbitTX_DS=sta5;sbitMAX_RT=sta4;/*/*延时函数/*/void inerDelay_us(uchar n)for(;n>0;n-)_nop_();/*/*NRF24L01初始化/*/void init_NRF24L01(void) inerDelay_us(100); CE=0; / chip enable CSN=1;

26、/ Spi disable SCK=0; / SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); / 写发射端地址SPI_Write_Buf(WRITE_REG + RX_ADDR_P0,RX_ADDRESS, RX_ADR_WIDTH); / 写接收端地址SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); / 频道1自动ACK应答允许SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); / 允许接收地址只有频道1,如果需要多频道可以参考Page21 SPI_RW_Reg(

27、WRITE_REG + RF_CH, 0); / 设置信道工作为2.4GHZ,收发必须一致SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /设置接收数据长度,本次设置为32字节SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); /设置发射速率为1MHZ,发射功率为最大值0dB/*/*函数:uint SPI_RW(uint uchar)/*功能:NRF24L01的SPI写时序/*/uchar SPI_RW(uchar byte)uchar bit_ctr; for(bit_ctr=0;bit_ctr<8;bit

28、_ctr+) / output 8-bit MOSI = (byte & 0x80); / output 'uchar', MSB to MOSIbyte = (byte << 1); / shift next bit into MSB.SCK = 1; / Set SCK high.byte |= MISO; / capture current MISO bitSCK = 0; / .then set SCK low again return(byte); / return read uchar/*/*函数:uchar SPI_Read(uchar reg

29、)/*功能:NRF24L01的SPI时序/*/uchar SPI_Read(uchar reg)uchar reg_val;CSN = 0; / CSN low, initialize SPI communication.SPI_RW(reg); / Select register to read from.reg_val = SPI_RW(0); / .then read registervalueCSN = 1; / CSN high, terminate SPI communicationreturn(reg_val); / return register value/*/*功能:NRF

30、24L01读写寄存器函数/*/uchar SPI_RW_Reg(uchar reg, uchar value)uchar status;CSN = 0; / CSN low, init SPI transactionstatus = SPI_RW(reg); / select registerSPI_RW(value); / .and write value to it.CSN = 1; / CSN high againreturn(status); / return nRF24L01 status uchar/*/*函数:uint SPI_Read_Buf(uchar reg, uchar

31、*pBuf, uchar uchars)/*功能: 用于读数据,reg:为寄存器地址,pBuf:为待读出数据地址,uchars:读出数据的个数/*/uchar SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars)uchar status,uchar_ctr;CSN = 0; / Set CSN low, init SPI tranactionstatus = SPI_RW(reg); / Select register to write to and read status ucharfor(uchar_ctr=0;uchar_ctr<uc

32、hars;uchar_ctr+)pBufuchar_ctr = SPI_RW(0); / CSN = 1; return(status); / return nRF24L01 status uchar/*/*函数:uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)/*功能: 用于写数据:为寄存器地址,pBuf:为待写入数据地址,uchars:写入数据的个数/*/uchar SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)uchar status,uchar_ctr;CSN = 0

33、; /SPI使能 status = SPI_RW(reg); for(uchar_ctr=0; uchar_ctr<uchars; uchar_ctr+) /SPI_RW(*pBuf+);CSN = 1; /关闭SPIreturn(status); / /*/*函数:void SetRX_Mode(void)/*功能:数据接收配置 /*/*void SetRX_Mode(void)CE=0;SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); / IRQ收发完成中断响应,16位CRC,主接收CE = 1; inerDelay_us(130);*/*/*函数:unsi

34、gned char nRF24L01_RxPacket(unsigned char* rx_buf)/*功能:数据读取后放如rx_buf接收缓冲区中/*/uchar nRF24L01_RxPacket(uchar *rx_buf) uchar revale=0;SPI_Write_Buf(WRITE_REG + RX_ADDR_P0,RX_ADDRESS, RX_ADR_WIDTH);CE=0;SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); / IRQ收发完成中断响应,16位CRC,主接收CE = 1; inerDelay_us(130);sta=SPI_Read(

35、STATUS);/ 读取状态寄存其来判断数据接收状况if(RX_DR)/ 判断是否接收到数据 CE = 0; /SPI使能SPI_Read_Buf(RD_RX_PLOAD,rx_buf,RX_PLOAD_WIDTH);/ read receive payload from RX_FIFO bufferrevale =1;/读取数据完成标志SPI_RW_Reg(WRITE_REG+STATUS,sta); /接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标志return revale;/*/*函数:void nRF24L01_TxPacket(unsigned c

36、har * tx_buf)/*功能:发送 tx_buf中数据/*/void nRF24L01_TxPacket(uchar *tx_buf)CE=0;/StandBy I模式SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); / 发射端地址SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); / 装载数据SPI_RW_Reg(WRITE_REG +

37、 CONFIG, 0x0e); / IRQ收发完成中断响应,16位CRC,主发送CE=1; /置高CE,激发数据发送inerDelay_us(20);/void conversion(uint temp_data) / 数据转换出 个,十,百,千,万 wan=temp_data/10000+0x30 ; temp_data=temp_data%10000; /取余运算 qian=temp_data/1000+0x30 ; temp_data=temp_data%1000; /取余运算 bai=temp_data/100+0x30 ; temp_data=temp_data%100; /取余运算

38、 shi=temp_data/10+0x30 ; temp_data=temp_data%10; /取余运算 ge=temp_data+0x30; /毫秒延时*void delay_nms(unsigned int k)unsigned int i,j;for(i=0;i<k;i+)for(j=0;j<121;j+);void Delay5us() _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_no

39、p_();_nop_();void Delay5ms() WORD n = 560; while (n-);/*起始信号*/void BH1750_Start() SDA = 1; /拉高数据线 SCL = 1; /拉高时钟线 Delay5us(); /延时 SDA = 0; /产生下降沿 Delay5us(); /延时 SCL = 0; /拉低时钟线/*停止信号*/void BH1750_Stop() SDA = 0; /拉低数据线 SCL = 1; /拉高时钟线 Delay5us(); /延时 SDA = 1; /产生上升沿 Delay5us(); /延时/*发送应答信号入口参数:ack

40、(0:ACK 1:NAK)*/void BH1750_SendACK(bit ack) SDA = ack; /写应答信号 SCL = 1; /拉高时钟线 Delay5us(); /延时 SCL = 0; /拉低时钟线 Delay5us(); /延时/*接收应答信号*/bit BH1750_RecvACK() SCL = 1; /拉高时钟线 Delay5us(); /延时 CY = SDA; /读应答信号 SCL = 0; /拉低时钟线 Delay5us(); /延时 return CY;/*向IIC总线发送一个字节数据*/void BH1750_SendByte(BYTE dat) BYTE i; for (i=0; i<8; i+) /8位计数器

温馨提示

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

最新文档

评论

0/150

提交评论