《单片机技术》课件项目一 单片机智能霓虹灯设计_第1页
《单片机技术》课件项目一 单片机智能霓虹灯设计_第2页
《单片机技术》课件项目一 单片机智能霓虹灯设计_第3页
《单片机技术》课件项目一 单片机智能霓虹灯设计_第4页
《单片机技术》课件项目一 单片机智能霓虹灯设计_第5页
已阅读5页,还剩111页未读 继续免费阅读

下载本文档

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

文档简介

项目一单片机智能霓虹灯设计

1.掌握单片机的概念、发展历程2.单片机的特点及应用领域3.熟悉单片机开发软件4.熟悉单片机开发软件的级联使用5.掌握单片机点亮LED基本原理

一、学习目标1.项目任务在夜幕降临,城市中各式各样的霓虹灯、广告牌,看起来非常绚丽,为夜幕中的城市增添了不少亮丽色彩。其实这些闪烁的霓虹灯,其工作原理和单片机控制流水灯是一样的。本项目的任务是实现流水灯闪烁。程序中只需更改流水花样数据表的流水数据就可以随意添加或改变流水花样,实现任意方式流水。二、学习任务

图1-1最小系统实现流水灯闪烁

单片机最小系统构成的流水灯控制器如图1-1所示:它主要由单片机、晶振和复位电路、开关输入电路及输出显示电路四部分构成,缺一不可。流水灯原理:根据硬件电路连接方式,当P1.0口的电平变为低电平时,P1.0口的LED1亮起来;相反,如果要使P1.0口的LED1熄灭,需把P1.0口的电平变为高电平。同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭方法方法同LED1。因此,要实现流水灯功能,我们只要将LED2~LED8依次点亮、熄灭,8只LED变会一亮一暗的做流水操作了。任务1单片机点亮LED任务2左移右移实现流水灯任务3任意花样广告流水灯【任务描述】使用AT89C51单片机P1.0点亮一个LED。【相关知识】1.单片机的概念1946年,第一台电子数字计算机(ENIAC)问世,标志着计算机时代的到来。匈牙利籍数学家冯·诺依曼提出的“程序存储”和“二进制运算”思想,构建了计算机的组成结构。其组成包括:运算器、控制器、存储器、输入设备、输出设备,如图1-2。

图1-2计算机的基本结构单片机是单片微型计算机的简称,它是在一块半导体芯片上,集成了CPU、半导体存储器、I/O(Input/Output)接口、中断系统和定时器等计算机必备部件,所构成的一个完整的数字电子计算机。单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。此芯片为单片微型计算机(SingleChipMicrocomputer),简称单片机。片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。本系统中,核心控制器件是单片机。(1)发展历程SCM即单片微型计算机(SingleChipMicrocomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。MCU即微控制器(MicroControllerUnit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力,它所涉及的领域都与对象系统相关。专用单片机的发展自然形成了SoC化趋势(2)单片机的特点功能强、体积小面向控制价格低廉低电压、低功耗(3)应用领域1在智能仪器仪表上的应用2在工业控制中的应用3在消费电子中的应用4在计算机网络和通信领域中的应用5单片机在医用设备领域中的应用6在各种大型电器中的模块化应用7单片机在汽车设备领域中的应用

由于单片机具有超微型化的特点,并且有无可比拟的高性能价格比,从而为仪器仪表的智能化提供了可能。1)在智能仪器仪表上的应用三代仪器仪表:●第一代为指针式(或模拟式)仪器仪表●第二代为数字式仪器仪表●第三代就是智能式仪器仪表(视频)2)在工业控制中的应用3)单片机应用之消费电子产品4)在计算机网络和通信领域中的应用在调制解调器、各类手机、传真机、程控电话交换机、信息网络及各种通讯设备中,单片机也已经得到广泛应用。5)单片机在医用设备领域中的应用6)在各种大型电器中的模块化应用工业控制7)单片机在汽车设备领域中的应用8)单片机应用之军事技术2.单片机硬件结构(1)单片机的内部资源振荡器及定时电路89C51CPU4K字节ROM128字节RAM2个16位定时器/计数器64K总线扩展控制可编程I/O可编程串行口

图1-4AT89C51片内结构片内硬件组成结构如图1-4所示。把作为控制应用所必需的基本功能部件都集成在一个尺寸有限的集成电路芯片上。有如下功能部件和特性:(1)8位微处理器(CPU);(2)数据存储器(128BRAM);(3)程序存储器(4KBFlashROM);(4)4个8位可编程并行I/O口(P0口、P1口、P2口、P3口);(5)1个全双工的异步串行口;(6)2个可编程的16位定时器/计数器;(7)1个看门狗定时器;(8)中断系统具有5个中断源、5个中断向量;(9)特殊功能寄存器(SFR)26个;(10)低功耗模式有空闲模式和掉电模式,且具有掉电模式下的中断恢复模式;(11)3个程序加密锁定位。(1)单片机的内部资源①CPUCPU是单片机的核心部件。它由运算器和控制器等部件组成。A运算器运算器的功能是进行算术运算和逻辑运算②时钟电路AT89C51片内设有一个由反向放大器所构成的振荡电路,XTAL1和XTAL2分别为振荡电路的输入和输出端,时钟可以由内部方式产生或外部方式产生。内部方式时钟电路如图1-5所示③存储器最小系统内部存储资源包括:程序存储器ROM、数据存储器RAM、特殊功能寄存器。AT89C51单片机的程序存储器和数据存储器空间是互相独立的,物理结构也不同。程序存储器为只读存储器(ROM)。数据存储器为随机存取存储器(RAM)。数据存储器片内为128B(52子系列为256B),片外最多可扩64KB。片内128B的RAM以高速RAM的形式集成,可加快单片机运行的速度和降低功耗;程序存储器(FlashROM)片内集成有4KB的Flash存储器(AT89S52则为8KB;AT89C55片内20KB),如片内容量不够,片外可外扩至64KB。A程序存储器程序存储器用来存放程序和表格常数。片内集成有4KB的Flash存储器(AT89S52则为8KB;AT89C55片内20KB),如片内容量不够,片外可外扩至64KB。图1-6AT89C51单片机程序存储器地址空间B数据存储器1)内部数据存储器单片机的数据存储器无论在物理上或逻辑上都分为两个地址空间,一个为内部数据存储器,访问内部数据存储器用MOV指令,另一个为外部数据存储器,访问外部数据存储器用MOVX指令。

片内为128B(52子系列为256B),片外最多可扩64KB。单片机的片内数据存储器共有128个字节,地址范围是00H~7FH,分成工作寄存器区、可位寻址区、通用RAM区三部分。

表1-2内部RAM存储器结构地址范围在00H~1FH的32个字节,可分成4个工作寄存器组,每组占8个字节。每个工作寄存器组都有8个寄存器,它们分别称为R0、R1、R2、R3、R4、R5、R6、R7。但在程序运行时,只允许有一个工作寄存器组工作,把这组工作寄存器称为当前工作寄存器组,寄存器和RAM地址如表所示。表1-3寄存器和RAM地址对照表

表1-4工作寄存器区选择CPU通过对PSW中的D4、D3位内容的修改,就能任选一个工作寄存器区。不设定为第0区,也叫默认值,这个特点使AT89C51具有快速现场保护功能。特别注意的是,如果不加设定,在同一段程序中R0-R7只能用一次,若用两次程序会出错。

位寻址区

片内RAM20H~2FH地址范围共16个字节称位寻址区。该区的16个字节,既可作为一般的RAM使用,进行字节操作,也可以对单元中的每一位进行位操作。16个字节共128位,每位有位地址,地址范围是00H~07H

表1-5位寻址区的128个位地址表2)外部数据存储器AT89C51具有扩展64K字节外部数据存储器和I/O口的能力,这对很多应用领域已足够使用,对外部数据存储器的访问采用MOVX指令,用间接寻址方式,R0,R1和DPTR都可作间址寄存器。3)特殊功能寄存器单片机内集成了一些常用的I/O接口电路,如并行I/O端口、串行口、定时器/计数器、中断控制器等,这些I/O接口单元电路内的寄存器也在CPU内部,统称为特殊功能寄存器(SFR)。

21个特殊功能寄存器,它们不连续地分布在地址为80H-FFH的128个字节的存储空间中

在这21个SFR中,16进制的地址码尾数为0或8的11个单元均具有位寻址能力,有效的位地址共有82个。a)累加器A最常用的特殊功能寄存器,大部分单操作数指令的操作取自累加器,很多双操作数指令的一个操作数取自累加器。加、减、乘、除算术运算指令的运算结果都存放在累加器A或A、B寄存器对中

b)B寄存器B寄存器是乘除法指令中常用的寄存器。乘法指令的两个操作数分别取自A和B,其结果存放在AB寄存器对中。

c)程序状态字PSW程序状态字是一个8位寄存器,它包含了程序状态信息。位于片内特殊功能寄存器区,字节地址为D0H。

PSW中各个位的功能:(1)Cy(PSW.7)进位标志位可写为C。在算术和逻辑运算时,若有进位/借位,Cy=1;否则,Cy=0。在位处理器中,它是位累加器。(2)Ac(PSW.6)辅助进位标志位在BCD码运算时,用作十进位调整。即当D3位向D4位产生进位或借位时,Ac=1;否则,Ac=0。(3)F0(PSW.5)用户设定标志位由用户使用的一个状态标志位,可用指令来使它置1或清0,控制程序的流向。用户应充分利用。(4)RS1、RS0(PSW.4、PSW.3)4组工作寄存器区选择

选择片内RAM区中的4组工作寄存器区中的某一组为当前工作寄存区见表1-4。(5)OV(PSW.2)溢出标志位

当执行算术指令时,用来指示运算结果是否产生溢出。如果结果产生溢出,OV=1;否则,OV=0。(6)PSW.1位

保留位(7)P(PSW.0)奇偶标志位

指令执行完,累加器A中“1”的个数是奇数还是偶数。(2)单片机外部资源AT89C51与51系列中各种型号芯片的引脚互相兼容。目前多采用40只引脚双列直插,如图1-7所示。引脚按其功能可分为如下3类:(1)电源及时钟引脚—VCC、VSS;XTAL1、XTAL2。(2)控制引脚—、ALE/、

/VPP、RST(RESET)(3)I/O口引脚——P0、P1、P2、P3,为4个8位I/O口A主电源引脚Vss和Vcc(1)VCC(40脚):+5V电源。(2)VSS(20脚):数字地。58图1-7

AT89S51双列直插封装方式的引脚B时钟引脚

(1)XTAL1(19脚):片内振荡器反相放大器和时钟发生器电路输入端。用片内振荡器时,该脚接外部石英晶体和微调电容。外接时钟源时,该脚接外部时钟振荡器的信号。(2)XTAL2(18脚):片内振荡器反相放大器的输出端。当使用片内振荡器,该脚连接外部石英晶体和微调电容。当使用外部时钟源时,本脚悬空。C控制引脚1)RST(RESET,9脚)复位信号输入,在引脚加上持续时间大于2个机器周期的高电平,可使单片机复位。正常工作,此脚电平应≤0.5V。59当看门狗定时器溢出输出时,该脚将输出长达96个时钟振荡周期的高电平。2)/VPP(EnableAddress/VoltagePulseofPrograming,31脚)

:引脚第一功能:外部程序存储器访问允许控制端。

=1,在PC值不超出0FFFH(即不超出片内4KBFlash存储器的地址范围)时,单片机读片内程序存储器(4KB)中的程序,但PC值超出0FFFH

(即超出片内4KBFlash地址范围)时,将自动转向读取片外60KB(1000H-FFFFH)程序存储器空间中的程序。(3)输入/输出引脚①

P0口

P0口有八条端口线,命名为P0.0~P0.7,其中P0.0为低位,P0.7为高位。每条线的结构组成如图1-8所示。它由一个输出锁存器,两个三态缓冲器,输出驱动电路和输出控制电路组成。P0口是一个三态双向I/O口,它有两种不同的功能,用于不同的工作环境。

图1-8P0口位结构地址/数据控制读锁存器写锁存器DCLQQP0.x锁存器T0T1MUXP0.x引脚内部总线读引脚P0口位结构Vcc11001“读”01100P0口作地址/数据复用总线D0~D7A0~A7P0口作地址/数据复用总线从P0口输出数据或地址信息的过程:控制端高电平MUX接反相器输出端输出级T1连接与门开锁信号驱动T0驱动电路接通P0口输出数据/地址信息从P0口输入数据信息:引脚信号从输入三态缓冲器进入内部总线“读”P0口:作通用I/O口用地址/数据控制读锁存器写锁存器DCLQQP0.x锁存器T0T1MUXP0.x引脚内部总线读引脚P0口位结构Vcc外接上拉电阻0100读读-修改-写功能1ANLP0,A(P0)^(A)P0“读”VccP0口作通用I/O口使用输出时:P0口作通用I/O口使用输入时:先将锁存器写“1”T0、T1截止读引脚信号P0~P3口线上的“读-修改-写”是通过上面一个三态门实现的。P0的驱动能力:驱动8个TTL门控制端低电平与门输出低电平T0截止输出漏级开路外接上拉电阻MUX接锁存器Q端锁存器Q与T1连接P0口作通用I/O口使用输入时:先将锁存器写“1”T0、T1截止读引脚信号地址/数据控制读锁存器写锁存器DCLQQP0.x锁存器T0T1MUXP0.x引脚内部总线读引脚P0口位结构Vcc0100P1口:准双向口读锁存器写锁存器内部总线读引脚DCLQQP1.x锁存器TP1.x引脚Vcc内部上拉电阻010101输出输入“读引脚”P1口位结构作通用I/O口输出时:将“1”写入锁存器输出高电平将“0”写入锁存器Q=1,T导通输出低电平作通用I/O口输入时:口锁存器必须写“1”先将“1”写入锁存器,使T截止,口线上的数据取决于外部输入Q=0,T截止

P1口的驱动能力:驱动4个TTL门内部总线为引脚为“高电平”“低电平”“1”“0”“读”准双向口P2口:准双向口地址控制读锁存器写锁存器内部总线读引脚DCLQQP2.x锁存器TP2.x引脚P2口位结构VccMUX上拉电阻P2口作通用I/O口使用时:

准双向口。MUX倒向左边,输出级与锁存器“Q”端接通,P2口I/O操作完全与P1口相同P2口作地址总线高8位使用时:

在CPU的控制下,MUX倒向右边,接通内部地址总线,P2口的口线状态取决于片内输出的地址信息

P2口的驱动能力:驱动4个TTL门第二输入功能P3口:双功能口读锁存器写锁存器内部总线读引脚DCLQQP3.x锁存器TP3.x引脚Vcc上拉电阻第二输出功能110P3作第一功能口使用时:

输出控制线为高电平,与非门的输出取决于锁存器“Q”端的状态,P3口的I/O操作和P1口相同。P3作第二功能口使用时:

相应的口线锁存器必须为“1”,与非门的输出取决于第二功能输出线。

P3的驱动能力:驱动4个TTL门

第二功能输入时,信号取自第一个缓冲器的输出端;第二个缓冲器的输出,仍是第一功能的读引脚信号缓冲器。P3口的第二功能状态P3.0RXD串入(接收端)P3.1TXD串出(发送端)P3.6WR外部RAM写信号P3.3INT1外部中断1输入P3.4T0计数器0输入P3.5T1计数器1输入第二功能作用口线P3.2INT0外部中断0输入P3.7RD外部RAM读信号ALEP3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0EAPSENRST803180518751VccVssP1口P2口P0口373GE+5VA0~A7A8~A15D0~D7I/OXTAL1XTAL2RXDTXDINT0INT1T0T1WRRD控制总线CB三总线结构数据总线DB地址总线AB利用三条总线,可方便地进行系统扩展晶振1.2~12MHZ8031地址总线AB(A0~A15)宽16位片外寻址64KBP0.0~P0.7ALE锁存到锁存器373A0~A7P2.0~P2.7A8~A15数据总线DB(D0~D7)宽8位双向、三态P0.0~P0.7D0~D7控制总线CB宽12位P3口的第二功能状态加上控制线PSENEAALERESET上页下页回目录二极管导通发光的两个条件:两端有正向压降(约1.75V);电流达到额定值(3mA-10mA)。Px.yVCC拉电流驱动Px.yVCCVCC灌电流驱动【任务实施】(1)程序分析在AT89C51单片机的P1.0引脚为高电平时,LED1亮;当P1.0引脚为低电平时,LED1不亮。要让单片机控制LED灯的亮灭,就需要控制1引脚按要求输出高电平或低电平。在程序中,“P1^0=1”是让P1.0引脚为高电平,LED点亮;“P1^0=0”是让P1.0引脚为低电平,LED熄灭。#include<reg51.h>//引入头文件sbitLED=P1^0;//P1.0引脚定义为变量LEDmain()//主程序开始{While(1){LED=1;//点亮LED}}【进阶提高】一、在点亮LED的基础上,如何实现LED实现闪烁?LED闪烁的实质就是实现一亮一灭,前面实现了点亮LED,如何实现熄灭呢?向P1.0送低电平便可以实现熄灭。代码该如何写呢?我们试着写一下:#include<reg51.h>//引入头文件sbitLED=P1^0;//P1.0引脚定义为LED变量voidmydelayms(unsignedintxms){//定义延时函数;定义形参xmsunsignedinti,j; //定义无符号整型变量i,jfor(i=0;i<xms;i++)//定义第一重for循坏for(j=0;j<120;j++);//定义第二重for循环

}voidmain()//主程序开始{while(1){//一直循环执行下面两条指令LED=1; //点亮LEDmydelayms(5);

LED=0;//熄灭LEDmydelayms(5);}}任务二左移右移实现流水灯【引入任务】

任务一实现了单片机点亮LED,并实现了闪烁,那么如何实现单片机控制8个LED按顺序依次点亮,不断循环往复,即实现“流水灯”的效果呢?【相关知识】一、最小系统实现代码:#include"reg51.h"#defineuintunsignedint#defineucharunsignedcharvoiddelay(unsignedintxms){uinti,j;for(i=xms;i>0;i--)for(j=120;j>0;j--);

}【进阶提高】一、移位函数介绍1._crol_和_cror_函数单片机实现霓虹灯也可以通过KeilC51的移位函数_crol_和_cror_函数来完成。_crol_,_cror_:将char型变量循环向左(右)移动指定位数后返回;_iror_,_irol_:将int型变量循环向左(右)移动指定位数后返回;_lrol_,_lror_:将long型变量循环向左(右)移动指定位数后返回。下面举例说明:a=10001000;

a=_crol_(a,1);//左移一位//程序执行后,a=00010001又如a=10001000;a=_crol_(a,2);//左移两位//程序执行后,a=00100010;下面通过一个举例来说明_crol_函数的使用:#include<reg51.h>//引入头文件#include<intrins.h>//引入左移右移函数voidmain(){//主程序开始unsignedinttemp=0x01;//定义无符号整型变量temp,并赋初值为00000001temp=_irol_(temp,1);//将temp循环左移1位,值变为00000010,即为0x02;printf("%d/n",temp);//打印出temp的值}

下面介绍KeilC51中如何打印输出:程序编好后,需要进行编译。编译完毕没有错误后,进入调试模式,如下图(2)进入调试模式后,点击菜单Peripherals→Serial,弹出对话框如图,选中TI和RI。(3)查看结果点击view→SerialWindows→UART#1,然后点击全速运行(快捷键为F5)即可看见运行结果,如图所示。按下F5后,便可以输出结果,如图用移位函数实现流水灯代码如下:#include<reg51.h>#include<intrins.h>#defineucharunsignedchar//宏定义,定义uint为无符号整型#defineuintunsignedint//宏定义,定义uint为无符号整型voiddelayms(ucharxms)//延时函数{uchari,j;for(i=0;i<xms;i++)for(j=0;j<120;j++);}voidmain(){uinta=0xef;//a=0xef;while(1){P1=a;//P1=0xef;delayms(50);//延时a=_cror_(a,1);//a循环右移一位}任务三

任意花样霓虹灯【任务描述】

彩灯控制器有着非常广泛的运用,如:LED彩灯,音乐彩灯控制器,二维彩灯控制器等等。随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用

彩灯来装饰街道和城市建筑物已经成为一种时尚。但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态

参数。现在我们在任务2的基础上,如何按照任意方式点亮?【任务分析】前面项目中巧妙运用了移位指令,是在有逻辑规则的前提下的操作。实际应用中许多变化并不存在规律。且随着显示花样的增多,如果继续沿用上述编程方法,当用户需要修改显示形式时,编程的工作量会越来越大。引进新的处理方法——“数组”,将显示花样做成一个数组,用数组控制显示的花样。要想改变显示的花样,那么只需修改显示数据区的数组元素值就可以了。【相关知识】一、单片机的IO口驱动能力、灌电流、拉电流概述单片机输出低电平时,将允许外部器件,向单片机引脚内灌入电流,这个电流,称为“灌电流”,就是从负载流向输出端口,“灌进去”的电流,一般是要吸收负载的电流,其吸收电流的数值叫“灌电流”。外部电路称为“灌电流负载;单片机输出高电平时,则允许外部器件,从单片机的引脚拉出电流,就是从输出端口流向负载,“拉出来”的电流,这个电流,称为“拉电流”,外部电路称为“拉电流负载”。单片机输出低电平的时候,驱动能力尚可,而输出高电平的时候,就没有输出电流的能力。设计单片机的负载电路,应该采用“灌电流负载”的电路形式,以避免无谓的电流消耗。【任务实施】#include"reg51.h"#defineuintunsignedint#defineucharunsignedcharvoiddelay(unsignedintxms){uinti,j;for(i=xms;i>0;i--)for(j=120;j>0;j--);

}voidmain(){unsignedchari;unsignedchardisplay[]={0xe7,0xdb,0xbd,0x7e};while(1){for(i=0;i<4;i++){P1=display[i]; //显示字送P1口delay(400); //延时 }}}

【进阶提高】单片机驱动8只数码管,显示一个心形图案,该电路如何绘制?程序又该如何编制?首先介绍电路图绘制:(1)首先先放置好总线,蓝色的,即点击左侧边栏的“BusesMode”,变换总线的方向操作:按住Ctrl,如图所示。画好后是还没有建立电路连接关系的。(2)进入“箭头模式”,把需要放到总线的引脚连接到总线上,到这里依然还是没有建立电气连接关系,如图所示。(3)接着点击左边侧边栏上面“LBL”,即“WireLableMode”,点击刚刚建立的WireLable线,绿色的线,弹出的窗口中的String条框中输入连接网路的名称,只要两个端口的名号是相同的就表示互相连接,如图1-73所示。标号是用LBL工具,在总线支线上要连接的两端支线上标上同一标号。如果有连续标注,可以用快捷方法。例如,要在总线2

端支线上标注P00~P07,可以这样:快捷键A,跳出一个Propty

Assignment

Tool对话框,在string里写上NET=P0#。然后鼠标移到需标处,单击,一个个移下去,就要连续标注。#include<reg51.h>//51单片机头文件#defineucharunsig

温馨提示

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

评论

0/150

提交评论