《单片机技术及应用》中职全套教学课件_第1页
《单片机技术及应用》中职全套教学课件_第2页
《单片机技术及应用》中职全套教学课件_第3页
《单片机技术及应用》中职全套教学课件_第4页
《单片机技术及应用》中职全套教学课件_第5页
已阅读5页,还剩205页未读 继续免费阅读

下载本文档

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

文档简介

单片机技术及应用SCMTechnology&Application

全套可编辑PPT课件12345CONTENTS目录PART

ONEPART

TWOPART

THREEPART

FOURPART

FIVE绪论MCS-51结构及系统指令MCS-51的C语言基础MCS-51的基本内部资源单片机的资源扩展PART

ONE绪论1单片机的概念及发展单片机的特点及应用全套可编辑PPT课件Concept&Development单片机的概念与发展单片机的概念SingleChipMicrocomputer单片机全称为单片微型计算机(SingleChipMicrocomputer)。由于单片机主要多应用于控制系统中,因此又被称为微控制器(MicrocomputerUnit,MCU)或嵌入式控制器(EmbeddedController)。它把计算机的基本部件微型化并集成到一块芯片上,通常片内都含有中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM\EPROM\Flash)、定时器/计数器和各种I/O接口,如串行通信口、中断控制、系统时钟和系统总线等。*

单片机的典型结构图时钟OSC程序存储器ROM数据存储器

RAM内部总线中央数据

处理器CPUI/0外设

接口定时器/计数器CTC中断全套可编辑PPT课件单片机的概念与发展1978-1983发展阶段1983至今

爆炸式发展阶段1970-1978初级阶段单片机的发展概况Concept&Development单片机发展至今已有40余年,它的生产与发展和微处理器的发展大体上同步,若将4位单片机的诞生为起点,那么单片机的发展可以分为以下几个阶段:Concept&Development单片机的概念与发展单片机的未来发展趋势小容量

价格低廉化大容量

高性能化外围电路内装化低功耗化Features&Application单片机的特点及应用单片机的特点①集成度高、可靠性高②低电压低功耗③高性价比④针对性强Features&Application单片机的特点及应用由于单片机的飞速发展,它的应用领域也越来越广泛。小到玩具、日用品,大到卫星、航天器,从实现数据采集、过程控制、模糊控制等智能系统到人类日常生活,处处都有单片机的影子,其主要应用领域如下:单片机的应用1234工业自动化中的应用智能仪器仪表中的应用日常生活中的应用在军事领域的应用Features&Application单片机的特点及应用常用单片机简介

类型特征80518051AH8052AH80C51BH83C51FA83C51FB83C51GA83C512JA83C512JC83C45183C4528位I/O口4444444557516位定时器/计数器22323322222可编程计数器(PAC)

√√

异步串行口(UART)√√√√√√√√√√√串行扩展口(SEP)

多功能串行口(GSC)

√√

DMA通道

22

2A/D

8

中断源/中断向量6/56/58/66/514/714/78/719/1119/116/59/8掉电和空闲方式

√√√√√√√√单片机的厂商很多。如美国的英特尔(Intel)、国家半导体(NationalSemiconductor)、爱特梅尔(Atmel)、微型(Microchip)、德州仪器(TI)等;日本的东芝(Toshiba)、日立(Hitachi)、日电(NEC)等;荷兰的飞利浦(Philips);德国的西门子(Siemens)等等思考与练习什么是单片机?简述它的典型结构。单片机的发展分为哪几个阶段?各阶段的有哪些功能特点。单片机的未来发展分为哪几个方向?并简述之。例举一些我们身边的单片机的应用。

感谢聆听THANK

YOU!单片机技术及应用SCMTechnology&Application

12345CONTENTS目录PART

ONEPART

TWOPART

THREEPART

FOURPART

FIVE绪论MCS-51结构及系统指令MCS-51的C语言基础MCS-51的基本内部资源单片机的资源扩展PART

TWOMCS-51硬件结构及系统指令2MCS-51单片机的结构MCS-51单片机的时钟模块及

工作方式StructureMCS-51单片机的结构MCS-51单片机的结构MCS-51单片机系统内部由CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和I/O口等功能部件构成,如图所示时钟模块程序存储器数据存储器16位

定时器/计数器中央数据处理器CPU总线扩展控制可编程并行I/0可编程全双工串行口外部时钟源计数器输入中断P1P2P3P4控制串口输入串口输出StructureMCS-51单片机的结构MCS-51系列单片机内部模块功能如下程序存储器ROM数据存储器RAM中央处理器CPU可编程全双工串行口16位定时/计时器可编程I/0口时钟模块中断系统MCS-51内部结构框图StructureMCS-51单片机的结构一、中央处理器CPU中央处理器CPU是单片机的核心单元,它由控制器和运算器组成。而控制器由程序计数器PC、数据指针DPTR、指令寄存器IR、指令译码器及定时控制逻辑组成,运算器由算术逻辑运算单元ALU、累加器A、寄存器B、程序状态字PSW和堆栈指针SP组成。1.控制器单片机是程序控制式的计算机,指令是逐条地存放在程序存储器中,执行指令时首先将指令码送到指令寄存器中寄存,然后对该指令译码,转换成一些列的定时控制的微操作,用于控制单片机各个部分运行。StructureMCS-51单片机的结构一、中央处理器CPU2.运算器运算器主要用来实现对操作数的算术逻辑预算和位操作。它包括一个可进行8位算术运算和逻辑运算的ALU单元、8位的暂存器1和暂存器2、8为的累加器ACC、B寄存器,以及程序状态标志寄存器PSW等。其结构如图所示。StructureMCS-51单片机的结构二、引脚说明MCS-51系列单片机的外形封装有两种方式,双列直插式(DIP)和方形封装(PLCC、MQFP)。如图2-4所示,给出了DIP封装的引脚排列图。40条引脚功能如下主电源引脚VCC和GND时钟引脚XTAL1和XTAL2控制信号引脚ALE/、PROG、PSEN、EA/Vpp和RST输入输出端引脚(也称I/O口)StructureMCS-51单片机的结构

从物理地空间上来看,MCS-51有4个存储器地址空间,即片内程序存储器(片内ROM)、片外程序存储器(片外ROM)、片内数据存储器(片内RAM)、片外数据存储器(片外RAM)。MCS-51存储器结构如图2-5所示。三、存储器结构StructureMCS-51单片机的结构三、存储器结构由于程序存储器是用来存放程序和初始表格常数的,所以单片机中的程序存储器为只读型存储器(ROM)。对于8051,它片内驻留4KB的ROM(0000H~0FFFH)。它片外ROM最大容量可达64KB(0000H~FFFFH)。片内和片外ROM在低4KB的地址是重叠的,这时候它们的访问用EA脚来控制。当EA置1时,访问内部4KB的ROM,外部ROM从1000H开始编址。当PC指针大于0FFFH时自动转向外部ROM。当EA为0时,将直接从片外ROM的低4KB开始访问。此时地址从0000H~FFFFH都是外部ROM存储空间程序存储器的某些特定单元被保留用于特定的程序入口地址。一般在该位置反之相应的跳转指令,使得PC指针跳转到相应的程序代码块其实存放地址,常用的几个入口地址,如表2-2所示。1.程序存储器ROM特定程序入口地址系统复位0000H外部中断00003H定时器T0溢出中断000BH外部中断10013H定时器T1溢出中断001BH串行口中断0023H定时器T2溢出(8052)002BH表2-2特定程序的入口地址StructureMCS-51单片机的结构三、存储器结构2.数据存储器RAM(1)片内RAM片内RAM最大寻址范围为256字节,其在物理上又可以分为两个独立的、功能不同的区域。

其配置如图2-6所示。图2-6MCS-51片内RAM地址空间StructureMCS-51单片机的结构三、存储器结构2.数据存储器RAM①片内低128字节RAM片内低128字节RAM是用于真正可以存取随机数据的数据存储器,其地址为00H~7FH。根据寻址方式的不同,低128字节RAM又可以分为工作寄存器区、位寻址区、用户RAM区和堆栈区。

表2-3RAM位寻址区字节地址与位地址对应表字节地址位地址765432102FH7FH7EH7DH7CH7BH7AH79H78H2EH77H76H75H74H73H72H71H70H2DH6FH6EH6DH6CH6BH6AH69H68H2CH67H66H65H64H63H62H61H60H2BH5FH5EH5DH5CH5BH5AH59H58H2AH57H56H55H54H53H52H51H50H29H4FH4EH4DH4CH4BH4AH49H48H28H47H46H45H44H43H42H41H40H27H3FH3EH3DH3CH3BH3AH39H38H26H37H36H35H34H33H32H31H30H25H2FH2EH2DH2CH2BH2AH29H28H24H27H26H25H24H23H22H21H20H23H1FH1EH1DH1CH1BH1AH19H18H22H17H16H15H14H13H12H11H10H21H0FH0EH0DH0CH0BH0AH09H08H20H07H06H05H04H03H02H01H00H表2-3RAM位寻址区字节地址与位地址对应表StructureMCS-51单片机的结构三、存储器结构2.数据存储器RAM②片内高128字节RAMMCS-51内高128字节的RAM内有21个特殊功能寄存器SFR,他们离散地分布在80H~FFH的RAM空间中。访问特殊功能寄存器只能使用直接寻址方式。常用的特殊功能寄存器如表2-4所示。标示符寄存器名称字节地址位地址ACC累加器E0HE0H~E7HBB寄存器F0HF0H~F7HPSW程序状态字D0HD0H~D7HSP堆栈指针81H-

DPTR数据指针(包括DPH和DPL)83H(DPH)82H(DPL)-

P0P0口80H80H~87HP1P1口90H90H~97HP2P2口A0HA0H~A7HP3P3口B0HB0H~B7HIP中断优先级控制B8HB8H~BFHIE中断允许控制A8HA8H~AFHTOMD定时器/计数器工作方式89H-

TCON定时器/计数器控制88H

-TH0定时器/计数器0高8位8CH

-TL0定时器/计数器0低8位8AH

-TH1定时器/计数器1高8位8DH

-TL1定时器/计数器1低8位8BH

-SCON串口控制98H

-SBUF串行数据缓冲器99H

-PCON电源控制及波特率选择87H

-表2-4RAM位寻址区字节地址与位地址对应表StructureMCS-51单片机的结构三、存储器结构2.数据存储器RAM(2)片外RAM片外RAM的地址最大可以为64KB,即0000H~FFFFH,其中0000H~00FFH的低位地址与部分片内RAM重叠。这种重叠有不同的指令来区分,片内ROM使用MOV指令,而片外RAM使用MOVX指令。对片外RAM通常采用间接寻址方法,使用R0、R1和DPTR作为间址寄存器。当使用R0、R1寻址时,由于R0和R1均为8位寄存器,其最大寻址空间为256字节。当使用DPTR作为间址寄存器是,由于DPTR为16位寄存器,故其最大寻址范围可达64KB。StructureMCS-51单片机的结构四、定时器/计时器8051内部有两个16位可编程的定时器/计数器T0和T1。它们分别由高8位寄存器TH0、TH1和低8位寄存器TL0、TL1组成。在定时器工作模式下,T0和T1的计数脉冲有单片机时钟脉冲经12分频后提供,定时时间与单片机时钟频率有关。在计数器工作模式下,T0和T1的计数脉冲分别从P3.4和P3.5引脚输入。五、中断系统当CPU正在处理某项事物时,如果外界或者内部发生了紧急事件,要求CPU暂停正在处理的工作转而去处理这个紧急事件,待处理完以后再回到原来被中断的地方继续执行,这个过程称为中断。

MCS-51允许有5个中断源,提供两个中断优先级。每个中断优先级的高低都可以通过程序来设定。StructureMCS-51单片机的结构六、输入/输出端口结构MCS-51系列单片机设有4个8位双向I/O端口,分别为P0、P1、P2和P3,每一条I/O线都能独立的用作输入或者输出。P0口为三态双向口,能带8个TTL电路。P1、P2和P3口为准双向口(在用做输入线时,口锁存器必须先写入“1”,故称为准双向口),负载能力为4个TTL电路。七、串行接口MCS-51还有一个全双工的可编程串行I/O口。它可以把CPU的8位并行数据变成串行数据一位一位的由发送数据脚TXD发送出去,也可以由接收数据脚RXD串行接收数据并转变成8位并行数据送给CPU。发送和接收可以同时进行,也可单独进行。Module&WayMCS-51单片机的时钟模块及工作方式一、时钟模块时钟模块用于产生单片机工作所需的时钟信号,单片机工作过程中的各个信号之间的关系称之为时序。1.

MCS-51单片机时钟产生单片机内部所有的时序都由时钟统一产生,MCS-51系列单片机内部自带一个高增益反相放大器,所以可以使用石英晶体和反相放大器作为单片机的时钟源,当然,也可以使用其他独立的时钟源。如图2-7所示。2.

MCS-51单片机的时序时序是指处理器指令译码产生的一系列操作在时间上的先后次序,MCS-51单片机的时序周期包括振荡周期、时钟周期、机器周期和指令周期。图2-7MCS-51的两种时钟连接方式Module&WayMCS-51单片机的时钟模块及工作方式一、单片机的工作方式②程序执行方式④编程方式③低功耗方式⑤单步执行方式①复位方式Module&WayMCS-51单片机的时钟模块及工作方式一、单片机的工作方式1.

复位方式MCS-51单片机的复位电路如图2-8所示。当在RST管脚输入加上2个机器周期的高电平时,CPU在第二个机器周期内执行内部复位操作,以后每一个机器周期重复一次,直至RST端转为低电平。图2-8复位电路Module&WayMCS-51单片机的时钟模块及工作方式一、单片机的工作方式2.程序执行方式程序执行方式是单片机最常见的工作方式,复位后单片机将正常执行放置在单片机程序存储器中的程序,当EA=1时从内部程序存储器开始执行,当EA=0时从外部程序存储器开始执行。3.低功耗方式CMOS型的MCS-51单片机有待机模式和掉电模式两种低功耗操作方式,可以减少单片机系统的功耗。在待机模式下,单片机的CPU停止工作,其他部分保持工作;在掉电模式下单片机仅RAM保持供电,其他部分均不工作。单片机通过设置电源控制寄存器PCON的相应位来使得单片机进入相应的工作模式,PCON的相关位如下所示:PCON.0——IDL:待机模式设置位,当该位被置位后单片机进入待机模式。PCON.1——PD:掉电模式设置位,当该位被置位后单片机进入掉电模式。PCON.2——GF0:通用标志位0,用于判断单片机所处的模式。PCON.3——GF1:通用标志位1,用于判断单片机所处的模式。PCON.4——IDL:保留位。PCON.5——IDL:保留位。PCON.6——IDL:保留位。PCON.7——SMOD:波特率倍增位,用于串行通信。Module&WayMCS-51单片机的时钟模块及工作方式在待机模式下,有一个事先被允许的中断被触发,IDL会被硬件清0,单片机结束待机模式,进入程序工作方式,PC跳转到进入待机模式之前的位置开始执行。硬件复位,复位后PCON中的各位均被重新初始化,从而结束待机模式。1方式-12方式-2退出待机模式有两种方式思考与练习MCS-51系列单片机的基本组成部分是什么?片内各逻辑部件的主要功能是什么?程序状态字PSW的作用是什么?PSW中的各位有何含义?堆栈的功能是什么?程序设计时,为什么一般还要对SP重新赋值?MCS-51内部RAM区功能结构如何分配?使用时如何选用四组工作寄存器?位寻址区域的字节地址范围是多少?简述中断、中断源、中断优先级以及中断嵌套的含义。MCS-51的4个8位并行I/O端口中,16位的地址线由哪两个I/O端口组成?P3口有何功能?单片机的复位有哪几种方法?复位后机器的初始状态如何?各寄存器及RAM中的状态如何?MCS-51有哪几种寻址方式,并简其特点。简述伪指令的概念及用途。分别简述简单程序、分支程序、循环程序和查表程序的各自特点及应用场合。

感谢聆听THANK

YOU!单片机技术及应用SCMTechnology&Application

12345CONTENTS目录PART

ONEPART

TWOPART

THREEPART

FOURPART

FIVE绪论MCS-51结构及系统指令MCS-51的C语言基础MCS-51的基本内部资源单片机的资源扩展PARTTWOMCS-51的C语言基础3C语言基础知识KeilC51集成开发环境BasicKnowledgeC语言基础知识一、数据类型、运算符与表达式标准C语言中主要有整形、实型(又分为单精度型和双精度型)、字符型和空类型。这些数据类型的长度和范围会因处理器的类型和C语言编译程序的实现而有所不同,对于keil产生的目标文件,表3-1给出了几种数据的长度和范围。1.数据类型类型长度(bit)范围char8-128~+127unsignedchar80~255signedchar8-128~+127int16-32768~32767unsignedint160~65535signedint16-32768~32767shortint16-32768~32767unsignedshortint160~65535signedshortint16-32768~32767longint32-2147483648~+2147483647unsignedlongint320~4294967295signedlongint32-2147483648~+2147483647float32-1.175494E-38~+3.402823E+38表3-1MCS-51中几种常用数据的长度和范围BasicKnowledgeC语言基础知识一、数据类型、运算符与表达式(1)标识符命名在C语言中,标识符可以作为变量名、函数名、数组名以及文件名。它可以是一个字符或是多个字符。大多数情况下,标识符必须以字母或者下划线开始,后面可以是字母、数字或者下划线。例如,_Data、count1和Set_Flag这是正确的形式,而2countSet..Flag是错误形式。2.标示符与关键字2)关键字关键字是一种含有特殊意义的字符,又称为保留字。它在编译器中已经有了定义,所以不能再进行重复定义,需要加以保留。这就是上面提到的标识符不能与关键字同名的原因。数据类型关键字:auto、char、const、double、enum、extern、float、int、register、sizeof、short、static、struct、typedef、union、unsigned、void、volitile等。程序控制关键字:break、case、continue、default、do、else、for、goto、if、return、switch、while等。BasicKnowledgeC语言基础知识一、数据类型、运算符与表达式(1)常量C语言中在程序运行过程中,其值不能被改变的量称为常量。常量区分为不同的类型,如10、0、-1为整形常量,3.14、-1.26为实型常量,‘a’‘b’位字符型常量。3.常量与变量(2)变量C语言中在程序运行过程中,其值可以改变的量称为变量。一个变量应该有一个名字,在内存中占用一定的存储单元,在该存储单元中存放该变量的值。定义变量的一般形式是:typevariable_list;

这里type必须是有效地数据类型,variable_list(变量表)可以由一个或者多个由逗号分隔的标识符构成。BasicKnowledgeC语言基础知识一、数据类型、运算符与表达式4.整型数据整型数据是指整数型常数或者整型变量,它主要包括int、short、long等。整型变量的定义很简单,具体如下面例子所示:

voidmain(){intsum,n,m;n=10;m=0x10;sum=n+m;}5.实型数据实型数据即为浮点型数据。它可以含有小数点,但是它表示的数据是有精度的。实型变量主要有float、double和longdouble这几种类型。实型变量的定义方法也很简单例如:

floata;doubleb;longdoublec;上面的例子分别定义了float型变量a、double型变量b以及longdouble型变量c。BasicKnowledgeC语言基础知识一、数据类型、运算符与表达式6.字符型数据

字符型数据主要处理字符相关的内容,比如处理英文字母或者汉字。一般来说会将多个字符型变量组成一个字符串来使用。在这里需要强调一下数值和字符常量在表现形式上是有区别的。例如‘8’表示的是字符,而8则表示数值。字符变量主要是char型。需要强调的是字符是以单引号表示的。它的定义方法如下:charc1;c1=‘A’;上面的例子定义了字符变量c1,并给它赋值为‘A’。BasicKnowledgeC语言基础知识一、数据类型、运算符与表达式7.各种数据之间的转换在某些应用场合需要进行数据类型的转换,比如把字符型变量转换成整型,把int型数据转换成long型等。下面给出数据类型转换的例子:voidchange(void){chardata;intidata;data=‘C’;idata=(int)(data);}BasicKnowledgeC语言基础知识二、C语言的运算符与表达式C语言的运算符范围很宽,不仅可以进行加、减、乘、除等算术运算,还可以进行比如关系运算、逻辑运算、赋值运算和位运算等。1.算术运算

算术运算主要是进行一些加、减、乘、除等运算,表3-2给出了算术运算符。算术运算符含义举例(设a=5,b=3)+加a+b结果:8-减a-b结果:2*乘a*b结果:15/除a/b结果:1%模运算(取余)a%b结果:2++自增a++结果:6--自减a--结果:4BasicKnowledgeC语言基础知识二、C语言的运算符与表达式2.关系运算

关系运算主要是对操作数进行某种条件的判断,结果只有两种true或false。表3-3给出一些关系运算。关系运算符含义举例(设a=5,b=3)>

大于a>b结果:true>=大于等于a>=b结果:true==等于a==b结果:false<

小于a<b结果:false<=小于等于a<=b结果:false!=不等于a!=b结果:trueBasicKnowledgeC语言基础知识二、C语言的运算符与表达式3.逻辑运算

逻辑运算和关系运算比较相似,也是处理操作操作数之间的关系,结果只有true和false两种,表3-4给出逻辑运算符。关系运算符含义举例(设a=true,b=false)&&与a&&b结果:false||或a||b结果:true!非!a结果:falseBasicKnowledgeC语言基础知识二、C语言的运算符与表达式

通常把“=”称为赋值运算。该运算符是一个二元运算符,需要两个操作数,左边的操作数是变量或者数组,右边的是表达式,例如:unsignedchara,b;a=8; //赋值运算b=a+3; //赋值运算另外“=”还可以和其他的运算符结合起来使用。例如+=、-=、*=、/=、%=等,它们的意义分别是:x+=a; 等价于:x=x+a;x-=a; 等价于:x=x-a;x*=a; 等价于:x=x*a;x/=a; 等价于:x=x/a;x%=a; 等价于:x=x%a;另外,“=”还可以和位运算符“>>”等结合起来使用,含义和上面的类似。4.赋值运算BasicKnowledgeC语言基础知识二、C语言的运算符与表达式5.位运算位运算在单片机的开发中非常重要,比如设置某个管脚的输出电平的操作就是通过位运算来实现的,表3-5给出位运算符。关系运算符含义举例(设a=10,b=13)&与m=a&b结果:m=8|或m=a|b结果:m=15~取反m=~a结果:m=0xf5>>

右移m=a>>2结果:m=40<<

左移m=a<<2结果:m=2表3-5给出位运算符BasicKnowledgeC语言基础知识二、C语言的运算符与表达式6.运算的优先级

通过前面的介绍,现在应对C语言的几种运算有了大概的了解。在实际应用的过程中大部分的计算可能是包括上面几种运算的组合,这样进行运算的时候,执行的顺序就非常的重要,此时就有了解运算的优先级顺序,表3-6给出了运算的优先级顺序。运算优先级运算符1!~++--等2*/%3+-4<<>>5<<=>>===!=6&7|8&&9||10=+=-=*=/=等BasicKnowledgeC语言基础知识同一般的C程序开发一样,C51的程序设计也有一些程序设计的技巧。同时由于嵌入式系统的实时性、资源有限性等特点,C51程序设计也有一些普通C程序设计所不具备的特点。一、养成好的编程习惯1.程序的总体设计2.命名规则(1)常量的命名(2)变量的命名(3)函数的命名3.编程规范(1)缩进(2)对齐(3)空行(4)注释(5)不应当把多个短语句写在一行中,即一行只写一条语句,例如:(6)if、for、do、while、case、switch、default等语句应当自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}。(7)不管有没有无效分支,switch函数一定要处理default这个分支。这不仅提示阅读者程序员并没有遗忘default,另外也可以防止程序运行过程中出现意外,加强程序的健壮性BasicKnowledgeC语言基础知识二、宏定义宏定义属于预处理指令,通过它可以是程序设计简化,增加程序的可读性、可维护性和可移植性。宏定义分为简单的宏定义和带参数的宏定义。

1.简单的宏定义

#define标示符字符串

2.带参数的宏定义

#define宏名(参数表)字符串三、条件编译

C51中的条件编译预处理指令可以通过C51编译器根据编译选项有条件的辨析这部分代码。使用条件编译的好处是可以使程序中某些功能模块可以根据需要有选择的加入到项目中去,或使同一个程序方便的移植到不同的硬件平台上,条件编译有几种指令,最基本的格式有三种。

1.#ifdef型

2.#ifndef型

3.#if型BasicKnowledgeC语言基础知识四、具体指针的应用C51编译器支持两种不同类型的指针:普通指针和存储器特殊指针。在C51编译器中普通指针总是使用3个字节机型保存:第一个字节用于保存存储器类型;第二个字节用于保存地址的高字节;第三个字节用于保存地址的低字节。存储器特殊指针在指针定义中,总是包含存储器类型的指定,并总是指向一个特定的存储器空间区域。如:chardata*cp;这个定义使得字符型指针cp指向51片内字节寻址的数据存储区。BasicKnowledgeC语言基础知识五、中断响应快速性的一种实现在工业控制中,系统的实时性是非常重要的,有时甚至是关键性的。在一个大的系统中,CPU的负荷可能会很高,处理着众多的程序和中断。在这种情况下,如果某一个或某些中断处理函数占用过多的CPU时间,就很可能导致其他中断无法响应,甚至会导致系统的瘫痪。如果在一个单片机实现数据采集系统中,单片机不仅要不停的采集数据、处理数据,而且更重要的是要负责系统的协调工作,协调好各个中断及各个任务的顺利进行。这时候可以把采集数据的工作放到一个定时器中断里去做。BasicKnowledgeC语言基础知识六、一些关键字的使用关键字的灵活应用能够使程序很大程度上提高程序的效率,这里将主要介绍一下几个关键字:1.staticstatic关键字在许多C语言教程中都值介绍该关键字定义的变量为静态变量,他在每次调用以后,值都保持不变,即具有记忆性。但static的意义并不局限于此,它还有以下两层主要意思:(1)不论用static声明的变量在程序中是什么位置,即使它是函数内部的局部变量,编译器都会给它分配一个固定的内存空间。而这个变量在整个程序的执行过程中都存在,程序执行完毕它才消亡。尽管他在全局中都存在,会占用存储空间,但适当的应用它会给程序的设计带来一些好处。如可以定义一个局部静态变量作为计数器,每次调用的时候加1,这样就不必定义一个全局变凉了,有利于程序的移植。例如上一节数据采集和处理的程序代码中采集次数的技术部分可以用静态变量来代替,省去了全局变量的定义,便于程序移植。(2)用static声明的变量或函数同时指明了变量或函数的作用域为本文本,其他文件的函数都无法访问这个文件里的这些变量和函数。在一个比较庞大的系统中可能会有很多个文件,这些文件由许多程序员来开发,所以不同的文件中同名的变量或函数很可能存在,用static对其进行声明可以防止同名变量或函数的意外混调。BasicKnowledgeC语言基础知识2.constconst关键字在许多C教程中都只用于定义一个常量,这是不完全的。用const修饰的变量、指针、函数参数返回值等都是只读的,即它们都受到保护,不能改变它们的值。当在代码中试图对上述上述变量进行赋值或者修改等操作时,在编译的时候编译器会报错。3.reentrantreentrant关键字用于声明一个函数为再入函数。再入函数可以同时由几个程序功用,如主函数和中断函数同时调用一个函数。当执行再入函数时,其他程序可以中断执行并开始执行同一个再入函数。一般情况下,C51函数不能递归调用或被几个可能同时执行的函数同时调用。这是因为函数自变量和局部变量都存放在固定的存储空间里,如果同时调用,函数的堆栈会发生混乱。再入函数属性允许说明那些可以重入的函数,因此可以实现递归调用,那些只有自己的局部变量而不涉及其他固定地址变量的函数体。BasicKnowledgeC语言基础知识七、使用移位运算代替乘除和求模等运算在C51语音中,乘、除、求模和浮点运算等都是通过调用库函数来实现的,调用库函数的一个特点是使编程方便简洁,但也存在效率不高的问题。而且他们编译后的代码太长。在通常情况下我们可以用移位操作来代替。既提高了程序的效率,又缩短了编译后代码的长度。如乘4和除4分别可以通过左移2位和右移2位来实现,求模也可以通过移位的组合来实现。因为除法和求模运算中调用库函数很耗时,在MCS-51单片机的应用系统中对时间要求比较严格的场合,如定时器中短周期较短而任务较多是,可以用移位来实现每次中断的定时器重载。KeilC51软件集成开发环境一、概述一、概述常见的MCS-51系列单片机编程语言有4种,即汇编语言、C语言、BASIC语言和PL/M语言。目前使用最多的单片机开发语言就是汇编语言和C语言。这两种语言都有良好的编译器支持,使用广泛。一般来说,C语言用于编写较复杂的程序,汇编则用于对效率要求很高的场合,尤其是底层函数的编写。一个好的单片机开发人员,不仅要属性MCS-51单片机体系结构,更要深刻理解单片机指令和执行过程,能够熟练的使用汇编语言和C语言进行单独或联合开发。KeilC51IntegratedDevelopmentEnvironment二、常用编译器介绍二、常用编译器介绍

C语言编程使用的编译器为Cx51,因为Cx51编译器是一个交叉编译器。基于Cx51编译器主要:

1.AmericanAutomation2.IAR3.Avocet4.BSO/Tasking5.DunfieldShareware6.Keil7.Intermetrics8.MicroComputerControlsKeilC51IntegratedDevelopmentEnvironmentKeilC51软件集成开发环境二、常用编译器介绍通过#asm和#endasm预处理器选择支持汇编语言。速度慢,要求汇编中间环节。支持分体切换并和ANSI兼容,需要一个较复杂的链接程序控制文件支持后,程序才能运行。软件包括编译器、汇编器、链接器、库MAKE工具和编译器,集成环境类似Borland和Turbo。TASKING公司原名BSO/Tasking,是一家专业开发和销售嵌入式系统软件工具的公司。它是非专业的软件包,不支持floats、longs或结构等。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。它的编译器用起来比较难,要由可执行的宏语句控制编译、汇编和链接,且选项很多。它不支持浮点数、长整数、结构和多维数组。KeilC51IntegratedDevelopmentEnvironmentKeilC51软件集成开发环境三、KeilC51软件集成开发环境三、KeilC51集成开发环境

KeilC51是美国KeilSoftware公司的产品,它集项目管理、编译公爵、代码编写工具、调试工具以及仿真于一体可以完成编辑、编译、连接、调试、仿真等整个开发流程,是一款功能强大的开发平台。1.KeilC51界面及菜单介绍KeilC51软件的界面窗口如图3-1所示,该软件提供了丰富的工具,常用命令都有快捷工具栏。图3-1KeilC51开发环境界面KeilC51IntegratedDevelopmentEnvironmentKeilC51软件集成开发环境Project菜单菜单主要用于项目的配置以及目标代码的生成管理。Debug菜单主要提供在软件和硬件仿真环境下的调试选项。Flash菜单用于管理Flash文件操作。用于在仿真系统中控制芯片的复位和对外围芯片的状态检查。Tools菜单用于和第三方软件联合调试。SVSC菜单用于管理软件的版本。Window菜单用于管理窗口视图。Help菜单给使用者提供包括库函数查询在内的帮助管理。File菜单提供了文件操作功能。Edit菜单提供了文本编辑和操作的基本功能。View菜单提供界面显示内容的设置。KeilC51IntegratedDevelopmentEnvironmentKeilC51软件集成开发环境三、KeilC51软件集成开发环境2.KeilC51开发流程使用KeilC51的软件工具时,项目的开发流程基本上与使用其他软件开发项目一样,如下:(1)创建一个项目,从器件数据库中选择目标芯片,并配置工具软件的设置。(2)用C或者汇编创建源程序。(3)用项目管理器构造(build)应用。(4)纠正源文件的位置。(5)调试链接后的应用。

Keil的8051开发工具具有很多功能和优点,可以帮助用户快速、成功地开发嵌入式应用。这些软件的使用非常简单,保证帮助设计人员达到设计目标。KeilC51IntegratedDevelopmentEnvironmentKeilC51软件集成开发环境KeilC51IntegratedDevelopmentEnvironmentKeilC51软件集成开发环境三、KeilC51软件集成开发环境下面介绍建立一个简单工程的各个步骤:(1)启动程序双击KeilC51图标,会弹出显示KeilLogo图片,如图3-2所示。当见到KeilC51的启动图片时,会自动进入KeilC51的开发环境,如图3-3所示。图3-2Keil开始的logo界面图3-3KeilC51初次打开界面KeilC51软件集成开发环境三、KeilC51软件集成开发环境(2)建立工程首先,单击菜单的“Project”命令,然后单击“NewProject”命令,弹出“CreateNewProject”对话框,如图3-4所示。并输入工程名(例如“hello”),单击“保存”按钮。退出,弹出“SelectDeviceForTarget”对话框,如图3-5所示。图3-4CreateNewProject对话框界面图3-5芯片选择对话框界面KeilC51IntegratedDevelopmentEnvironment三、KeilC51集成开发环境在此对话框中选取单片机的型号,例如,Atmel的AT89C52,首先找到Atmel打开树形目录找到AT89C52并选中。如图3-6所示,右边界面会显示一些该芯片的简单介绍。选择完芯片之后,会出现对话框询问是否自动加入8051启动文件,单击“是”按钮,该文件用于初始化单片机内部存储器等,添加完成之后在项目管理窗口中可以看到startup.A51文件已经被加入,如图3-7所示。单击“是”按钮进入下一界面。图3-6芯片选择对话框界面(选中AT89C52芯片)图3-7加入启动文件KeilC51IntegratedDevelopmentEnvironmentKeilC51软件集成开发环境三、KeilC51集成开发环境(3)编写程序单击菜单“File”命令,然后选择“New”选项,如图3-8所示。建立一个文本文件,并保存该文件。图3-8新建并保存文件KeilC51IntegratedDevelopmentEnvironmentKeilC51软件集成开发环境三、KeilC51集成开发环境注意文件名称必须带上.C的后缀名。否则会错误的保存为一个txt文件。例如输入文件名Main.c,单击“保存”按钮,然后在左边的工程窗口选中“SourceGroup1”并右键点击出现右键菜单,选择“AddFilestoGroupSourceGroup1”选项,弹出对话框,如图3-9所示。选择main.c文件,单击“Add”命令,最后单击“Close”命令。图3-9加载.c文件KeilC51IntegratedDevelopmentEnvironmentKeilC51软件集成开发环境三、KeilC51集成开发环境接下来就可以开始编写程序了。下面我们以一个闪烁的小灯为例。如图3-10所示,程序编写完成后单击“Rebuildalltargetfiles”命令,最后在输出窗口显示编译信息,主要包括编译是否出现语法错误,以及程序的大小等信息。当编译信息窗口显示“0Error(s),0Warning(s)”,则表示程序编译成功了。图3-10编写简单程序并进行编译单击“Rebuildalltargetfiles”按键KeilC51IntegratedDevelopmentEnvironmentKeilC51软件集成开发环境三、KeilC51集成开发环境默认Keil不会生成Hex文件,Hex文件用于烧写到单片机里面,单片机没有程序是不能运行的。为了生成Hex文件,我们必须要勾选“CreateHex”选项,让Keil编译代码时生成Hex文件。右键单击工程窗口“Target1”命令,然后从右键菜单选中“OptionsforTarget‘Target1’”选项,从弹出的“OptionsforTarget‘Target1’”对话框中选中“Output”选项卡,然后勾选“CreateHex”选项即可,如图3-11所示,最终生成hello.hex文件。图3-11设置生成Hex文件选中“Output”选项卡,然后勾选“CreateHex”选项。KeilC51IntegratedDevelopmentEnvironmentKeilC51软件集成开发环境思考与练习什么是算术运算?什么是关系运算?什么是逻辑运算?给下列运算符按优先级顺序排序:+&||++>%写出下面个逻辑表达式的值。设a=3,b=4,c=5。(1)a+b>c&&b==c(2)a||b+c&&b–c(3)!(a>b)&&!c||1(4)!(x=a)&&(y=b)&&0使用KeiluVision环境建立一个工程,并完成编译。

感谢聆听THANK

YOU!单片机技术及应用SCMTechnology&Application

12345CONTENTS目录PART

ONEPART

TWOPART

THREEPART

FOURPART

FIVE绪论MCS-51结构及系统指令MCS-51的C语言基础MCS-51的基本内部资源单片机的资源扩展PART

FOURMCS-51的基本内部资源4I/O口中断系统定时器/计数器串行口外部中断MCS-51内部资源应用技巧第一节I/O口一、I/O端口结构I/O端口即输入输出端口,用于单片机对外部实现控制,具有信息交换过程中的速度匹配、隔离和增强复杂的功能。MCS-51有4个I/O端口,分别为P0、P1、P2和P3,各端口的每一位均由锁存器、输出驱动器和输入缓冲器所组成。CPU通过这4个I/O口的任何一个输出数据时,都可以被锁存,输入数据时可以得到缓冲。*

I/O典型结构图1.P0口第一节I/O口P0口是一个8位漏极开路型双向I/O口,如图4-1是P0口中的1位结构图,其中包含一个输出锁存器、两个三态缓冲器、一个输出驱动电路和一个输出控制电路。输出驱动电路由一对FET(场效应管)T1和T2组成,其工作状态收输出控制电路所控制,控制电路包括一个与门、一个反相器和模拟转换开关MUX。P0口中由两个三态输入缓冲器用于读操作。因而有两种读入法,即“读锁存器”和“读引脚”。*

P0口1位结构图2.P1口第一节I/O口P1口是一个带有内部上拉电阻的8位准双向I/O口,每一位内部结构,如图4-2所示。在接口上P1口没有模拟转换开关MUX和控制电路部分,输出驱动电路只有一个FET(场效应管),但内部有上拉电阻。当作输出用时,将1写入锁存器,使输出驱动管T截止,输出线由内部上拉电阻拉成高电平;将0写入锁存器是,T导通输出0。当作为输入时,必须先将1写入锁存器,使T截止,把该口先由内部上拉拉成高电平。*

P1口1位结构图3.P2口第一节I/O口P2口是一个带有内部上拉电阻的8位准双向I/O口,每一位的内部结构,如图4-3所示。P2口的上拉电阻结构与P1口相同,但是比P1口增加了一个模拟转换开关MUX。MUX的切换有内部控制信号控制:一个是输出锁存器的输出端Q(不同于P1口使用Q(非)端)送入MUX的输入端;另一个是内部地址寄存器的高位输出端送至MUX的输入,MUX的输出经过反相器去控制输出FET(场效应管)。*

P2口1位结构图4.P3口第一节I/O口P3口是一个带有内部上拉电阻的准双向I/O口,同时它又是一个多功能端口,它的每一位结构,如图所示。当P3口作为第一功能口,即通用I/O口使用时,工作原理与P1口和P2口类似,但是第二输出功能线保持为高电平,使与非门N3对锁存器输出(Q端)畅通。当P3口作为第二功能使用时,相应位的锁存器必须为“1”状态,使与非门N3的输出由第二输出功能线的状态来决定,或使此口线允许输入第二功能信号。*

P3口1位结构图二、I/O口驱动能力第一节I/O口在标准的51核单片机中,P0口的高电平的驱动电流为160μA,低电平的驱动电流为2.88mA;P1、P2和P3的驱动电流为P0的一般,当驱动能力不够的时候应该在I/O扣上加驱动器来驱动负载,否则很容易造成单片机系统的不稳定,甚至损坏单片机。但是现在很多的51系列单片机都提供较大的电流驱动能力,能够直接驱动发光管等负责。不过从系统的可靠性角度出发,建议尽可能的不要用单片机的I/O口直接驱动负载。当P3口作为第一功能口,即通用I/O口使用时,工作原理与P1口和P2口类似,但是第二输出功能线保持为高电平,使与非门N3对锁存器输出(Q端)畅通。当P3口作为第二功能使用时,相应位的锁存器必须为“1”状态,使与非门N3的输出由第二输出功能线的状态来决定,或使此口线允许输入第二功能信号。三、I/O口的位操作第一节I/O口51系列单片机I/O口的每一位都有自己的位地址,均可以进行位寻址,可以方便的使用位操作命令进行输入、输出以及逻辑运行等操作。在实际的使用过程中,一般使用sbit关键字对引脚进行预定义,然后进行对应位操作。下面给出一些示例:例:P1.3和P1.5为按键输入端,当两个按键同时按下时(输入为低电平),通过P1.0将LED灯点亮(输出低电平)。#include<reg51.h>sbitKey1=P1^3;sbitKey2=P1^5;sbitLED=P1^0;voidmain(void){LED=1;while(1){if((Key1==0)&(Key2==0))//判断两键是否同时按下

{LED=0;//点亮LED}}}四、I/O口的输入输出操作第一节I/O口单片机的P0~P3经常作为一个整体来传送8位宽度的数据,下面给出了利用P0和P1来进行数据输入输出操作的实例:

例:8位数据通过P1口输入,单片机对这8位数据进行取反后从P0口输出。#include<reg51.h>/*定义一个8位无符号字符变量inputData,用来存放P1口数据*/unsignedcharinputData;voidmain(void){P1=0xff;while(1){inputData=P1;//从P1口取值,存入inputDataP0=~inputData;//取反,并通过P0输出

}}中断系统第二节中断系统MCS-51系列单片机有5个中断源,分为两个中断优先级,这些中断源按照优先级排列如下:一、中断向量地址和中断标志位第二节中断系统中断向量地址存在于单片机的程序存储器中,每当单片机检测到一个中断事件之后,程序指针(PC)就会自动的跳转到该地址。一般情况下是在该地址放入一个跳转指令,以使程序指针再次跳转到对应的中断服务子程序入口。表4-1列出了51单片机中断源的中断向量地址。中断源中断向量入口地址外部中断00x0003定时器/计数器00x000B外部中断10x0012定时器/计数器10x001B串行数据发送与接收0x0023表4-1中断向量地址注意:不同的51系列单片机的中断向量入口地址可能有所不同,需要详细的参看具体器件的说明手册。一、中断向量地址和中断标志位第二节中断系统MCS-51系列单片机的每一个中断源,都对应一个中断请求标志位,这些标志位位于特殊功能寄存器TCON和SCON内。1.TCON(Timer/CounterControlRegister.地址为0x88)TCON为定时计数器控制寄存器,系统被复位后该寄存器数值为0x00。其功能如表4-2所示。表4-2TCON功能说明TCON88H

用于外部中断TCON.7TCON.6TCON.5TCON.4TCON.3TCON.2TCON.1TCON.0TF1TR1TF0TR0IE1IT1IE0IT0定时器/计数器T1溢出标志定时器T1的运行控制位定时器/计数器T0溢出中断标志定时器T0的运行控制位外部中断0请求源标志外部中断1请求源标志外部中断1触发方式控制位外部中断0触发方式控制位一、中断向量地址和中断标志位第二节中断系统2.SCON(SerialControlRegister,地址为Ox98H)

SCON为串行通信口控制寄存器,其中的两位RI和TI为串行发送、接收中断的标志位,下面给出了SCON寄存器中这两位的功能说明,其余部分在以后的章节中讲述,这两位在单片机复位后均为0。(1)TI:串行发送中断标志位,当串行口完成一次发送任务后将该位置位,该位不能够被硬件自动清除,必须由用户在程序中手动清除。(2)RI:串行接收中断标志位,当串行口完成一次接收任务后将该位置位,该位不能够被硬件自动清除,必须由用户在程序中手动清除。二、中断控制第二节中断系统2.SCON(SerialControlRegister,地址为Ox98H)在MCS-51系列单片机中断的开关控制和优先级控制都是通过对相应的寄存器对应位进行操作来完成的。中断的开关控制是由中断允许控制寄存器(IE)来完成。1.IE(InterruptEnableRegister.地址为0xA8)IE为中断控制寄存器,MCS-51系列单片机的中断开启和关闭都是由该寄存器控制的,该寄存器每位的功能如表4-3所示。它支持位操作,可以对其中任何一位置位或复位,从而禁止或开发对应的中断源,系统复位后IE被清零。表4-3IE功能说明位标号位名称描

述7EA单片机中断允许控制位,EA=0,单片机禁止所有的中断;EA=1,单片机开放中断,但是每个中断源的中断是否开发还需要由自己的控制位来决定。6————5————4ES串行中断允许控制位,ES=0,禁止串行中断;ES=1,打开串行中断。3ET1定时器/计数器1中断允许位,ET1=0,禁止定时器/计数器1溢出中断;ETl=l,允许定时器/计数器1溢出中断。2EX1外部中断1允许位,EXl=0,禁止外部中断1;EX1=1,允许外部中断1。1ET0定时器/计数器0中断允许位,使用方法同ET1。0EX0外部中断0允许为,使用方法同EX1。二、中断控制第二节中断系统2.IP(InterruptPriorityRegister,地址0xB8)MCS-51系列单片机提供两个中断优先级,可以通过对IP寄存器的设置来修改每个中断源的优先级别,这样就可实现两级中断的嵌套。

IP寄存器的功能如表4-4所示,该寄存器同样可以进行按位的操作,可以对每一位进行置位和复位,从而改变相应中断源的优先级别,单片机复位后该寄存器被清零。表4-4IP功能说明位标号位名称描

述7————6————5————4PS串行口中断优先级控制位。3PT1定时器/计数器1中断优先级控制位。2PX1外部中断1中断优先级控制位。1PT0定时器/计数器0中断优先级控制位。0PX0外部中断0中断优先级控制位。二、中断控制第二节中断系统MCS-51系列单片机中断系统的两级优先级之间的关系遵循如下两条原则:(1)高优先级别的中断可以中断低优先级别所请求的中断,反之不能。(2)同一级别的中断一旦得到响应后随即屏蔽同级的中断,也就说相同优先级的中断不够再次引发中断。当单片机接收到几个相同优先级别的中断请求后,将按照单片机内部默认的顺序来决定响应哪一个中断,单片机内部默认的中断响应顺序如下:中断源相应顺序外部中断0最高定时器/计数器0外部中断1定时器/计数器0串行数据发送与接收最低三、中断响应第二节中断系统MCS-51系列的单片机在每一个机器周期都会检查各个中断源的中断请求信号,会按照中断优先级进行响应处理。如果在中断产生过程中出现了以下3种情况之一,单片机将延迟对中断的响应。(1)单片机所处的机器周期不是当前执行中指令的最后的一个机器周期。(2)单片机正在处理相同级别或者是更高级别的中断。(3)单片机正在访问IE.IP寄存器或者是正在从中断服务子程序中退出。单片机对没有能够及时响应的中断请求标志位不做任何的保存,单片机的响应中断过程如下:①封锁同级和低级别的中断。②把当前程序指针PC的内容保存到堆栈中。③根据中断标志位,把相应的中断源对应的中断向量入口地址装入到PC中。④从中断向量入口地址跳转到对应的中断服务程序中。⑤执行中断服务。⑥中断服务执行完成之后打开被封锁的中断,然后从堆栈中取出原先保存的PC内容,使得程序可以从原先的PC地址继续运行。三、中断响应第二节中断系统单片机对中断的响应时间可以分为两种情况2.有其他因素影响如果在一个中断申请响应的时候有其他的高优先级中断正在执行,那么这个中断的响应延时需要由该高优先级中断的中断服务程序执行时间决定。如果在申请中断时单片机正在执行一条普通指令,并且没有执行完成,则这个指令周期将不会超过3个机器周期。如果申请时单片机正在执行从另一个中断服务子程序中退出的RETI指令,或者是正在访问IE或执行IP的指令,则由于完成当前指令需要1个机器周期,加上下一条指令的最长的4个机器周期,一共为5个机器周期。独立中断这种情况是指单片机在该时刻只需要处理一个中断事件,或者是该中断事件相对正在响应的中断是一个高优先级别中断且没有前面提到的3种情况之一出现。四、中断服务程序的设计第二节中断系统单片机中断系统的应用应该包括硬件系统和中断服务程序设计两个部分,中断服务程序是用户根据自己系统的需求所指定的响应事件,单片机系统在响应中断后会自动的将程序指针PC跳转到对应中断源的中断向量入口地址处。2.中断服务程序应该包括以下内容:(1)在中断向量入口放置一条跳转指令,以便把程序指针修改为中断服务程序的起始地址。(2)保护现场,一般是寄存器中的内容。(3)如果需要,清除中断标志。(4)进行相应的中断服务操作。(5)恢复现场,返回到原来主程序的断点处。1.单片机的中断初始化应该包括以下内容:(1)初始化堆栈指针SP,给单片机定义一个合适大小的堆栈空间。(2)初始化中断源的触发方式。(3)设置中断的优先级别(4)开放相应的中断源。四、中断服务程序的设计第二节中断系统串口中断服务函数的实例:例:voidUart_Isr(void)interrupt4using1{if(RI==1){RI=0; //清串口接收终端标志位if(DataEnable==0){Limit_Flag=1;RevBuff[RevPoint++]=SBUF; //读取串口中断buf里的数据if(RevPoint>=11){Limit_Flag=0;Limit_Time=0;RevPoint=0;

温馨提示

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

评论

0/150

提交评论