基于单片机的(数显)交通灯控制系统设计_第1页
基于单片机的(数显)交通灯控制系统设计_第2页
基于单片机的(数显)交通灯控制系统设计_第3页
基于单片机的(数显)交通灯控制系统设计_第4页
基于单片机的(数显)交通灯控制系统设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、基于单片机的(数显)交通灯控制系统设计1、 设计背景随着微控技术的日益完善和发展,单片机的应用在不断走向深入。它的应用比定导致传统的控制技术从根本上发生变革。也就是说单片机应用的出现是对传统控制技术的革命。它在工业控制、数据采集、智能化仪表、机电一体化、家用电器等领路得到了广泛应用,极大的提高了这些领域的技术水平和自动化控制。因此单片机的开发应用已成为高技术工程领域的一项重大课题。因此了解单片机知识,掌握单片机的应用技术具有重大的意义。当前,在世界范围内,一个以微电子技术,计算机的通讯技术为先导的,一信息技术及信息产业的信息革命时期。而计算机技术怎样与实际应用更有效的结合并有效地发挥其作用是科

2、学界最热门的话题,也是当今计算机应用中空前活跃的领域。本文主要从计算机的应用上来实现十字路口交通灯智能化的管理,用以控制过往车辆的正常运作。2、 实际实现功能西南北路口直行与转弯交替通行,数码管显示直行通行倒计时,红绿黄灯显示包括人行道在内的道路交通状态。某一方向道路拥挤时,可以人工控制调节东西南北方向通行时间。紧急情况时,各路口交通灯显示红灯,数码管保持数据不变。工作寄存器及存储单元分配1.工作寄存器R2设置为定时器定时中断次数,R6、R7用于延时程序中的寄存器2.片内存储单元30H、31H作为两组数码管显示数据存储单元;32H、33H作为交通灯初始状态存储单元;40H、41H作为交通灯显示

3、数据存储单元3、 硬件设计1、 AT89C51的介绍1.1特性概述AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。1.2管脚说明VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级

4、开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,

5、输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口

6、将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚特殊功能口管脚特殊功能P3.0 RXD串行输入口P3.4 T0记时器0外部输入P3.1 TXD串行输出口P3.5 T1记时器1外部输入P3.2 外部中断0P3.6 外部数据存储器写选通P3.3 外部中断1P3.7 外部数据存储器读选通P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,A

7、LE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 :外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管

8、是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 三种单片机外形及AT89C51的引脚排列 AT89S51系列单片机的内部结构示意图1.3振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的

9、脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。2、 硬件设计思路2.1控制器的原理框图按要求,可画出该控制器的原理框图, 为确保十字路口的交通安全,往往都采用交通灯自动控制系统来控制交通信号。其中红灯(R)亮,表示禁止通行;黄灯(Y)亮表示暂停;绿灯(G)亮表示允许通行。2.2紧急转换电路一般情况下交通灯按照车流量大小合理分配通行时间,按一定规律变化,但考虑紧急车通行车况,设计紧急通行开关,下面简述单片机的中断原理。 8051有5个中断源,它们是两个外中断INT0(P3.2)和INT1(P3.3)、两个片内定时/计数器溢出中断TF0和TF1,一个是片内串行口中断TI或RI,这几个中断源由

10、TCON和SCON两个特殊功能寄存器进行控制,其中5个中断源的程序入口地址如表所示:中断源程序入口中断源的服务程序入口地址中断源入口地址外中断00003H定时/计数器0000BH外中断10013H定时/计数器0001BH串行口中断0023H2.3交通灯中的中断处理流程()现场保护和现场恢复:有特殊车辆要通过时就要进行中断,在中断之前,先将交通灯中断前情况保护好,当中断执行后再恢复现场,包括信号灯和时间显示电路。()中断打开和中断关闭:为了使特殊车辆通行按一下打开中断开关就可以打开中断,关闭中断开关就关闭中断。()中断服务程序:有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处

11、理的具体内容:即如果南北方向有特殊车辆要求通过,南北方向转换为绿灯,东西方向为红灯;如果东西方向有特殊车辆要求通过,东西方向转换为绿灯,南北方向为红灯。()中断返回:执行完中断服务程序后,必然要返回,即回交通灯信号回到中断前状态,显示时间也和中断前一样。3、 软件设计思路3.1软件设计流程图3.2每秒钟的设定延时方法可以有两种一中是利用STC-51内部定时器产生溢出中断来确定1秒的时间,另一种是采用软件延时的方法。计数器硬件延时a计数器初值计算定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为

12、零所需的计数值设定为C和计数初值设定为TC 可得到如下计算通式:TC=M-C式中,M为计数器模值,该值和计数器工作方式有关。在方式0时M为213 ;在方式1时M的值为216;在方式2和3为28b 计算公式T=(MTC)T计数 或TCM-CT计数T计数是单片机时钟周期的12倍;TC为定时初值如单片机的主脉冲频率为12MHZ,经过12分频方式0TMAX213微秒8.912毫秒方式1TMAX216微秒65.536毫秒显然秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题3.3 1秒的方法我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒这样每

13、当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减,然后判断它是否为零。为零表示1秒已到可以返回到输出时间显示程序。相应程序代码()主程序定时器需定时50毫秒,故T0工作于方式1。初值:TCM-T T计数50ms/1us=15536=3CBOH ORG 1000H INIT:MOV R2,#20;软件计数器赋初值MOV TMOD, #01H ; 令T0为定时器方式 MOV TH0, #3CH ;装入定时器初值 MOV TL0, #BOH; MOV IE,#82H ;开0中断 SEBT TRO;启动0计数器()中断服务子程序ORG

14、000BH LJMPDSZD DSZD:PUSH ACC ;保护现场 PUSH PSWAJMP TIME ; 跳转到时间及信号灯显示子程序 DJNZ:MOV R0,14H;恢复R0值 MOV TH0, #0B0H ;重装入定时器初值 MOV TL0, #3CH; DJNZ R2, DS_C ;判定1S时间是否到达 MOV R2, #20 ;恢复R2值3.4紧急中断处理程序URZD: PUSH ACC ;保护现场 PUSH PSW CLR IE0 ;清除中断标志位 CLR TR0 ;关定时器 CPL URF ;紧急事件标志位 JB URF,UR_CON ;紧急结束;跳转 MOV P0,#49H

15、;各路口灯全显示红灯亮 MOV P2,#15H AJMP UR_RUR_CON:SETB TR0 ;恢复正常交通 MOV A,32H MOV P0,A MOV A,33H MOV P2,AUR_R: POP PSW ;恢复现场 POP ACC RETI 3.5软件延时 MCS-51的工作频率为2-12MHZ,我们选用的8031单片机的工作频率为6MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。 具体的延时程序分析: D5MS:MOV R7,#5 延时5ms

16、秒子程序 D1MS:MOV R7,#10 MOV R6,#50L1: MOV R6,$ ;延时1ms 子程序 MOV R7,L1 RETMOV RN,#DATA ;字节数数为2 ,机器周期数为1所以此指令的执行时间为2ms,而l1 为一个双重循坏 循环次数为10*50=500 所以延时时间=500*2=1000us 约为1ms 。由于单片机的运行速度很快其他的指令执行时间可以忽略不计。4、 电路图操作步骤及各部分功能图:4.1电路图操作步骤(1) 在Pretues中放置元器件,布线元器件清单:7SEG-MPX2-CCDISPLAYCAP-ELECDEVICEAT89C51MSC8051RESD

17、EVICE器件名称所在库器件名称所在库BUTTONACTIVERESPACK-8DEVICECAPDEVICETRAFFIC LIGHTACTIVECRYSTALDEVICE(2) 为AT89C51加载程序在keil程序中将程序输入,然后生成.HEX文件,方法如下:鼠标选中target1,在工具栏中找到project中的options for Target1可见下图,在output选项中选择生成HEX文件,即可编译回到Pretuse软件中双击单片机AT89C51,如下图在program file处加载刚刚生成的.HEX文件(3)接下来仿真运行即可(4)进行封装1. 进行电器检查(tools:e

18、lectrical rule check),没有错误(如图)后进行下面步骤2. 将没有封装的元器件进行封装(在ARES中根据元器件尺寸绘制单个元器件封装图)以7SEG-MPX2-CC为例,在ARES中画好封装图,如下然后,选中它右键选择make device,将元器件封装进库OK即可3. 在ISIS中把封装加入未封装的元器件(同理make divice)在BROWSE中选择先前的封装图,NEXT即可直到OK4. 生成网络表(tools:netlist complier)5. 将网络表加入ARES(tools:netlist to ARES)6. 设置电路板工作层以及工作环境(system:se

19、t layer usage)设置为如下即可7. 在board edge画出机械层,之后自动布线(tools:auto placer)8. 整理好之后,布线(tools:out router:begin routing)如图:9. 检测(tools:connectivity checker)9. 覆铜(tools:power plane generator),选择GND/VCC以及哪一层10. 生成3D效果(output:3D visualization)4.2各部分功能图1、AT89C51单片机的复位方式和复位电路复位操作:复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片

20、机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或者操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键以重新启动。89C51的RST脚为复位信号输入端,低电平复位,在每次开机时进行复位,然后在+5V的高电平进入工作状态。10uS电容用于使芯片在反复上电的情况下得到可靠复位。根据应用的要求,复位操作通常有两种基本形式:上电自动复位和按键手动复位。上电复位要求接通电源后,自动实现复位操作。通常用的上电复位电路如图2-3所示。图中电容C和电阻R对电源Vcc来说构成微分电路。上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R也能达到上电复

21、位的操作功能。所谓手动复位,是指通过接通一按钮开关,使单片机进入复位状态。系统上电运行后,若需要复位,一般是通过手动复位来实现的。通常采用手动复位和上电复位结合,其电路如下图所示:复位操作还对单片机的个别引脚信号有影响,例如把ALE和PSEN非信号变为无效状态,即ALE=0,PSEN=1;复位信号及其产生 RST引脚是复位信号的输入端,复位信号是高电平有效,其有效时间持续24个振荡脉冲周期(即2个机器周期)以上,若使用频率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。整个复位电路包括芯片内外两部分。外部电路产生的复位信号(RST)送施密特触发器,再由片内复位电路在每个机器周

22、期的S5时刻对施密特触发器的输出进行采样。然后才得到内部复位操作所需要的信号。2、时钟振荡电路该电路由89C51的XTAL1和XTAL2脚内电路及外接的晶体和外接电容等组成。振荡电路产生的振荡信号提供给微电脑电路作为时基信号。振荡电路的振荡频率为6MHZ,由晶体振荡频率确定。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如图2-9所示,图中,电容器C1、C2起稳定振荡频率、快速起振的作用,其电容值通常取30PF左右。晶振频率的典型值位12MHZ,采用6MHZ的情况也比较多。内部振荡方式的时钟信号比较稳定,实用电路中使用较多。由图

23、外部振荡信号由XTAL2引入,XTAL1接地。为了提高输入电路的驱动能力,通常使外部信号经过一个带有上拉电阻的TTL反相门后接入XTAL2。3、键盘电路因本系统使用的按键数目少,故按键采用硬件去抖。按键电路如图2-8 所示。用两个与非门构成一个RS触发器。当按键按下时情况依次为南北向延时、东西向延时、紧急情况,如下图:4、显示电路交通显示由traffic light 和7seg-mpx2-cc组成,如图5、 系统分析及改进措施智能控制交通系统实现是目前研究的方向,也已经取得不少成果,但传统的定时交通灯控制仍然在一些地方广泛应用,那是车流量不大,而且交通道路相对好的地方,传统的定时交通灯控制还是

24、起到了一定的作用。但随着社会的高速发展,城市化日益完善,车的数量必然增多,给交通的压力也增大,这时候,智能交通灯控制将会起到疏导交通,改善城市交通环境,推动城市化日益完善!基于Proteus智能交通灯控制系统软件设计上有两个主要特点,一方面是本设计采用模糊控制方法实现交通的控制,由于模糊控制不需要建立被控对象精确的数学模型,特别适用于随机的复杂的城市交通控制,因此以多变少为例子,在通行时间方面控制设置为40s25s40s25s40s 为一个循环,根据车流量,合理分配了通行时间。另一方面,设计应急转换开关,考虑紧急车通过时,譬如,急救车或消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过

25、。实验测试结果证明用本系统STC 单片机能完成交通灯控制过程,有效地疏导交通,提高了交通路口的通行能力. 该系统应用了单片机实现智能交通灯管制的控制系统,以及该系统软、硬件设计方法,实验证明该系统实现简单、经济,能够有效地疏导交通,提高交通路口的通行能力.但功能还不够完善,比如交通灯红、黄、绿时间还不能按交通紧松完成手控调整,软件编写实现功能还不能很好控制硬件,本系统将增加更多功能,比如手控时间的调节,摄像机交通监控的控制,盲人通过时交通灯的控制等,使系统更加完善.总结 经过两周的努力工作,终于完成了老师交给的任务。在本次的实训中我主要完成了以下的工作:(1) pretuse电路图的绘制以及封

26、装(2) 学会了利用Keil对汇编语言进行PROTEUS软件的联调(3)掌握了电子系统设计的流程,熟悉了各种硬件电路以及软件编程方法。(4)理解了单片机的各部分组成及特性。(5)熟练使用了各种计算机辅助设计工具完成设计。通过本次的课程设计,学会了如何操作Pretues软件,以及keil联调,学习了新知识的同时有巩固了原有所学,为以后的毕业设计打好了良好的基础。附录:源程序:;-;程序实现功能;西南北路口直行与转弯交替通行,数码管显示直行通行倒计时,红绿黄灯显示包括人行道在内的道路交通状态。;某一方向道路拥挤时,可以人工控制调节东西南北方向通行时间。;紧急情况时,各路口交通灯显示红灯,数码管保持

27、数据不变。;工作寄存器及存储单元分配;1.工作寄存器;R2设置为定时器定时中断次数,R6、R7用于延时程序中的寄存器;2.片内存储单元;30H、31H作为两组数码管显示数据存储单元;32H、33H作为交通灯初始状态存储单元;40H、41H作为交通灯显示数据存储单元;3.标志位;00H:南北通行标志位 ; 01H:东西通行标志位;02H:紧急事件标志位 ;-SNF EQU 00H ;南北通行标志位EWF EQU 01H ;东西通行标志位URF EQU 02H ;紧急事件标志位ORG 0000HLJMP MAIN ;上电转主程序ORG 000BH ;定时中断入口LJMP DSZD ORG 0003

28、H ;紧急中断入口LJMP URZDORG 0030H MAIN: LCALL INIT ;调用初始化子程序LOOP: LCALL DIS ;循环执行显示子程序 AJMP LOOP;/初始化程序INIT: SETB SNF SETB EWF SETB URF MOV R2,#20 ;定时器中断20次为1s MOV TMOD,#01H ;初始化定时器 MOV TL0,#0B0H MOV TH0,#3CH SETB EA ;开定时中断与紧急中断 SETB ET0 SETB TR0 SETB EX0 SETB IT0 ;设置中断程控方式 MOV DPTR,#TAB ;数值首地址放入DPTR中 MOV

29、 40H,#40 ;东南西北通行时间设置 MOV 41H,#40 MOV 30H,#40 ;通行时间初始化 MOV 31H,#60 MOV P0,#4CH ;初始化时南北通行并把交通灯状态分别放在32H和33H中 MOV 32H,#4CH MOV P2,#15H MOV 33H,#15H RET;/显示子程序DIS: MOV P3,#0DFH ;选中南北方向的十位数码管 MOV A,30H ;把显示数据送人数码管显示 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P1,A ; LCALL D1MS MOV P3,#0EFH ;选中南北方向的个位数码管 MOV A,B ;

30、送入数码管显示 MOVC A,A+DPTR MOV P1,A LCALL D1MS MOV P3,#7FH ;选中第东西方向的十位数码管 MOV A,31H ;送入数码管显示 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P1,A LCALL D1MS MOV P3,#0BFH ;选中第东西方向的个位数码管 MOV A,B MOVC A,A+DPTR MOV P1,A LCALL D1MS SETB P3.0 SETB P3.1 JNB P3.0,DIS_S ;查询是否第一个按键按下 JNB P3.1,DIS_E ;查询是否第二个按键按下 AJMP DIS_R ;没有键

31、按下则返回DIS_S:LCALL D5MS ;按键去抖 JNB P3.0,DIS_SN AJMP DIS_R DIS_SN:MOV 40H,#50 ;对通行时间从新分配,南北通行时间加长 MOV 41H,#30 AJMP DIS_RDIS_E:LCALL D5MS ;按键去抖 JNB P3.1,DIS_EW AJMP DIS_RDIS_EW:MOV 40H,#30 ;东西通行时间加长 MOV 41H,#50DIS_R:RET ;/定时中断处理程序DS_C: LJMP DS_R ;接力跳转DSZD: PUSH ACC ;保护现场 PUSH PSW CLR TR0 ;关定时器及中断标志位并重新赋值

32、 CLR TF0 MOV TL0,#0B0H MOV TH0,#3CH DJNZ R2,DS_C ;判断1m时间是否到达 MOV R2,#20 ;到达重新赋值 DEC 30H ;南北方向通行时间减一 MOV A,30H ;把减一后的时间送入显示存储单元;南北通行到达最后4秒时黄灯闪烁DS_10:CJNE A,#4,DS_11 ;如果通行时间剩余4秒 JNB SNF,DS_11 ;判断是否是南北通行 MOV P0,#8AH MOV 32H, #8AH ;把交通灯状态存入存储单元(后面类似)DS_11:CJNE A,#3,DS_12 ;不是剩余3秒,返回 JNB SNF,DS_12 ;不是南北通行

33、时间,返回 MOV P0,#88H MOV 32H, #88HDS_12:CJNE A,#2,DS_13 JNB SNF,DS_13 MOV P0,#8AH MOV 32H, #8AH DS_13:CJNE A,#1,DS_14 JNB SNF,DS_14 MOV P0,#88H MOV 32H, #88H;-DS_14:JNZ DS_NE ;通行时间没有结束转向改变东西方向的数码管 CPL SNF ;如果通行时间结束则对标志位取反 JNB SNF,DS_1 ;判断是否南北通行 MOV 30H,40H ;是,点亮相应的交通灯 MOV P0,#4CH MOV 32H,#4CH ;存储交通灯状态 MOV P2,#15H MOV 33H, #15H ;存储交通灯状态DS_NE:DEC 31H ;东西方向通行时间减一 MOV A,31H ;把通行剩余时间送入显示存储单元;东西方向通行时间剩余4秒钟黄灯闪烁(程序注释与南北方向类似

温馨提示

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

评论

0/150

提交评论