《MCS中断系统》课件_第1页
《MCS中断系统》课件_第2页
《MCS中断系统》课件_第3页
《MCS中断系统》课件_第4页
《MCS中断系统》课件_第5页
已阅读5页,还剩153页未读 继续免费阅读

下载本文档

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

文档简介

第5章MCS-51单片机中断系统与定时/计数器5.1输入输出数据传送的控制方式5.2中断概述5.3MCS-51单片机中断源、中断控制和中断响应5.4 定时/计数器的概述5.5 定时/计数器的工作方式及应用第5章MCS-51单片机中断系统与定时/计数器5.1输入输出数据传送的控制方式 单片机常用的输入/输出设备有:键盘、A/D转换器、显示器、指示灯、微型打印机、D/A转换器等。 计算机与输入/输出设备之间交换信息,有三种信息形式:数据信息、状态信息和控制信息。 数据信息:数字量、模拟量和开关量; 状态信息:外设的工作状态; 控制信息:控制外设的启动或停止。《MCS中断系统》课件

计算机的CPU与外设,并不直接相连,而是通过接口电路进行连接。单片机系统的运行同其他微机系统一样,CPU不断地与外部输入/输出设备交换信息。

CPU与外部设备交换信息通常有以下四种方式: 无条件传送方式 查询方式 中断方式 直接存储器存取(DMA――DirectMemoryAccess)《MCS中断系统》课件

5.1.1无条件传送方式 这种数据传送方式有些类似于CPU和存储器之间的数据传送,即CPU总是认为外设在任何时刻都是处于“准备好”的状态。因此,这种传送方式不需要交换状态信息,只需在程序中加入访问外设的指令,数据传送便可以实现。 应用场合:

(1)具有常驻的或变化缓慢的数据信号的外部设备,例如直接读取外设状态信息;

(2)工作速度非常快,足以和CPU同步工作的外部设备,例如:发光二极管的驱动接口。5.1.1无条件传送方式

5.1.2程序查询方式 查询传送也称为条件传送,可用于无条件传送不便于使用的场合,以解决外部设备与CPU之间的速度匹配问题。 查询方式的过程为:查询—等待—数据传送,即在执行数据输入/输出之前,CPU先查询外设当前状态,如果外设准备好,就进行数据传送;如果外设忙,就进行循环以等待。流程图如图5-1(a)所示。例如:通过打印机打印文稿。 等待也可以不采用循环等待,而用软件插入固定延时的方法来完成,如图5-1(b)所示。例如:显示屏/硬盘的上电初始化。5.1.2程序查询方式

查询方式的优点是通用性好,可以用于各类外部设备和CPU间的数据传送。缺点是需要有一个等待过程,比较浪费CPU时间。检查外设状态准备好传送数据传送数据延时启动外部设备NY(a)(b)图5-1查询方式流程图查询方式的优点是通用性好,可以用于5.1.3中断方式 中断方式与查询方式的主要区别在于如何知道外设是否为数据的传送作好了准备,查询方式是CPU的主动形式,而中断方式则是CPU等待通知(中断请求)的被动方式。查询中断5.1.3中断方式查询中断5.2中断概述5.2.1中断的概念 计算机中的中断是指CPU在处理某件事情的时候,外部发生了某一事件请求CPU迅速去处理,于是CPU暂时中断当前的工作,转入处理所发生的事件,中断访问处理完后,再回到原来被中断的地方,继续原来的工作的过程称为中断,如图5-1所示。 实现这种功能的部件称为中断系统(中断机构),产生中断的请求源称为中断源。5.2中断概述看电视中断处理中断请求实际生活中断返回电话铃响接听电话看电视主程序计算机事件发生事件处理主程序中断概念示意图看电视中断处理中断请求实际生活中断返回电话铃响接听电话看电视中断过程示意图中断过程示意图5.2.2中断功能 当计算机采用了中断技术后,可大大地提高其工作效率和处理问题的灵活性。其功能主要表现在以下几个方面:1.实现CPU与外设的速度配合2.实现实时控制3.实现故障的及时发现4.实现人机联系5.2.2中断功能5.2.3中断系统的功能

MCS-51的中断系统具有以下中断功能:能实现中断及返回;能实现中断优先级排队;能实现中断嵌套。返回中断中断返回低级中断主程序高级中断中断嵌套流程

三类中断:可屏蔽中断、不可屏蔽中断和软件中断。可屏蔽中断指CPU对中断请求输入线上的中断请求是可以通过指令控制的。5.2.3中断系统的功能返回中断中断返回低级中断主程序5.3MCS-51单片机中断源、中断源和中断响应

5.3.1中断源

中断源是指能发出中断请求,引起中断的装置或事件。一个单片机系统通常有多个中断源,而单片机CPU在某一时刻只能响应一个中断源的中断请求,当多个中断源同时向CPU发出中断请求时,则必须按照“优先级别”进行排队,CPU首先选定其中中断级别最高的中断源为其服务,然后按由高到低的排队顺序逐一服务,完毕后返回断点地址,继续执行主程序。这就是“中断优先级”的概念。5.3MCS-51单片机中断源、中断源和中断响应MCS-51单片机中断系统结构IE0EX0TF0IE1TF1TIESET1EX1ET0RIIP硬件查询高级中断请求低级中断请求中断源INT0INT1中断入口地址中断源10IEPX0PSPT1PX1PT0111111111100000EA1≥1SCON11T0T1RXTXIT0IT100TCON中断入口地址MCS-51单片机中断系统结构IE0EX0TF0IE1TF1(1)外中断类 即外部中断0和外部中断1

中断请求信号分别由引脚INT0(P3.2)和INT1(P3.3)引入。 外部中断请求有两种信号方式: 电平方式:当引脚上出现低电平时就向CPU申请中断,CPU响应中断后应采取措施撤消中断请求信号,使引脚恢复高电平。 脉冲方式:当引脚上出现负跳变(下降沿)时,该负跳变经边沿检测器使IE0或IE1置1,向CPU申请中断,CPU响应中断后由硬件自动清除IE0和IE1。CPU在每个机器周期采样INT0和INT1,为了保证检测到负跳变,引脚上的高电平与低电平至少应各自保持一个机器周期。(1)外中断类(2)定时中断类

单片机芯片内部有两个定时器,T0和T1,以计数的方法实现定时或计数功能。定时器/计数器计数溢出时,由硬件分别置TF0=1和TF1=1,向CPU申请中断。CPU响应中断后,由硬件自动清除TF0和TF1。(3)串行接口中断 串行接口的中断请求由发送或接收所引起。串行口发送了一帧信息,便由硬件置TI=1,向CPU申请中断。串行口接收了一帧信息,便由硬件置RI=1,向CPU申请中断。CPU响应中断后必须由软件清除TI和RI。(2)定时中断类5.3.2中断控制 与中断控制有关的寄存器共四个, 定时器控制寄存器TCON(TimerController) 串行口控制寄存器SCON(SerialController) 中断允许控制寄存器IE(InterruptEnable) 中断优先控制寄存器IP(InterruptPriority)5.3.2中断控制

(1)定时器控制寄存器(TCON),88H

TCON内容及位地址表示如下:位地址8F8E8D8C8B8A8988位符号TF1TR1TF0TR0IE1IT1IE0IT0IE0(IE1)——外中断请求标志位 当CPU采样到(或)端出现有效中断请求时,此位由硬件置1。在中断响应完成后转向中断服务时,再由硬件自动清零。IT0(IT1)——外中断请求信号方式控制位

IT0(IT1)=1脉冲方式(后沿负跳有效)

IT0(IT1)=0电平方式(低电平有效) 此位由软件置1或清0。(1)定时器控制寄存器(TCON),88H位地址8F8(2)串行口控制寄存器(SCON) 该寄存器地址为98H,其位地址为9FH~98H。位地址9F9E9D9C9B9A9998位符号SM0SM1SM2RENTB8RB8TIRI·TI——串行口发送中断请求标志位当发送完一帧串行数据后,由硬件置1,在转向中断服务程序后,必须用软件清0。·RI——串行口接收中断请求标志位当接收完一帧串行数据后,由硬件置1;在转向中断服务程序后,必须用软件清0。(2)串行口控制寄存器(SCON)位地址9F9E9D9C9B(3)中断允许控制寄存器(IE)该寄存器地址为A8H,其位地址为AFH~A8H。位地址AFAEADACABAAA9A8位符号EA1/0/0ES0ET11EX10ET00EX01EA——中断允许总控制位

EA=0禁止所有中断,CPU不响应任何中断请求。

EA=1开放所有中断,某个中断的禁止或允许由各中断源的中断允许控制位进行设置。(3)中断允许控制寄存器(IE)位地址AFAEADACABAEX0(EX1)——外部中断允许控制位

EX0(EX1)=0禁止外中断

EX0(EX1)=1允许外中断ET0(ET1)——定时/计数中断允许控制位

ET0(ET1)=0禁止定时/计数T0(T1)中断

ET0(ET1)=1允许定时/计数T0(T1)中断ES——串行中断允许控制位

ES=0禁止串行中断

ES=1允许串行中断单片机复位后(IE)=00H,中断系统处于禁止状态。EX0(EX1)——外部中断允许控制位单片机复位后(IE)=(4)中断优先级控制寄存器(IP)

IP寄存器地址B8H,位地址为BFH~B8H。位地址BFBEBDBCBBBAB9B8位符号/0/0/0PS0PT10PX10PT00PX01PX0 —— 外部中断0优先级设定位PT0 —— 定时中断0优先级设定位PX1 —— 外部中断l优先级设定位PT1 —— 定时中断1优先级设定位PS —— 串行中断优先级设定位 为0时优先级为低;为1优先级为高。(4)中断优先级控制寄存器(IP)位地址BFBEBDBCBB

中断优先级是为中断嵌套服务的,其控制原则为:① 低优先级中断请求不能打断高优先级的中断服务;但高优先级中断请求可以打断低优先级的中断服务,从而实现中断嵌套。② 如果一个中断请求已被响应,则同级的其它中断请求不能中断它。③ 如果同级多个中断请求同时出现,则按CPU设定的自然优先级确定那个中断请求被响应。其自然优先级由高到低依次为:外部中断0→定时中断0→外部中断1→定时中断1→串行中断,这其实是CPU查询各中断的次序。 中断优先级是为中断嵌套服务的,其控制原则为:(5)中断控制寄存器参数设置

这四个控制寄存器既可字节寻址又可位寻址的。 寄存器参数设置方式:字节操作、位操作等指令。 例如,在中断允许控制寄存器IE中,假定要开放外部中断0和定时中断1,为: 字节传送操作: MOV IE,#89H

或者: ORL IE,#89H

位操作: SETB EA SETBEX0 SETB ET1

其它各中断控制寄存器与此类似。(5)中断控制寄存器参数设置

5.3.3中断处理过程(1)中断响应条件

CPU响应中断的必要条件有: 有中断源发出中断请求;

CPU开放中断,即中断总允许位EA=1; 申请中断的中断源允许中断,即中断允许位为1; 无同级或更高级中断正在被服务; 当前的指令周期已经结束。5.3.3中断处理过程(1)中断响应条件

中断受阻条件:满足中断响应条件的,如果遇上下列条件之一,该中断响应过程将被阻断:× 正在执行同级或高级中断服务程序;× 当前的查询周期还不是执行指令的最后一个机器周期,即下在执行的指令完成前,任何中断请求都得不到响应。× 正在执行的是一条RET、RETI或者任何访问IE或IP的指令。在指令这些指令之后,不会马上响应中断请求,至少还要执行一条其他指令。 中断受阻条件:满足中断响应条件的,如果遇上下列条件之一,该(2)中断响应过程

1)使相应优先级状态触发器置1;

2)将当前PC内容压入堆栈——保护断点;

3)硬件清零相应中断请求标志(TI、RI除外);

4)将中断服务子程序入口地址送PC——转移。

中断响应过程相当于一条隐含的调用指令(或称隐指令)LCALL。(2)中断响应过程 中断响应过程相当于一条隐含的调用指令(或(3)中断响应时间指从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。

1)最快响应时间以外部中断的电平触发为最快。

1个周期(查询)+2个周期(长调用LCALL)

2)最长响应时间若当前指令是RET、RETI和IP、IE指令,紧接着下一条是乘除指令发生时:

2个周期执行当前指令(其中含有1个周期查询)+4个周期乘除指令+2个周期长调用=8个周期。(3)中断响应时间(4)中断处理 中断处理(又称中断服务)程序从入口地址开始执行,直到返回指令“RETI”为止,这个过程称为中断处理。此过程一般包括两部分内容,一是保护现场,二是处理中断源的请求。(5)中断返回 中断处理程序的最后一条指令是RETI,它使CPU结束中断处理程序的执行,返回到断点处,继续执行主程序。(4)中断处理

5.3.4中断程序设计中断程序指为实现中断而设计的有关程序,包括主程序和中断服务程序。主程序实现对中断的控制,中断服务程序则完成中断源所要求的各种操作。

(1)主程序

1)主程序的起始地址: MCS-51单片机复位后,PC=0000H,而各中断源的入口地址为0003H~0023H。因此,在编写程序时应在0000H处使用一条转移指令,跳过上述区域。主程序则以转移指令的目的地址作为其起始地址。5.3.4中断程序设计 ORG 0000H LJMP MAIN ORG 0003H LJMP SUM ORG 1000HMAIN: ~ ~SUM: ~ ORG 0000H2)中断系统的初始化:

MCS-51中断系统的功能是通过前述特殊功能寄存器进行统一管理的,中断系统的初始化是指用户对这些特殊功能寄存器中的各控制位进行赋值。初始化包括:设定所涉及中断源的中断优先级;相应中断源开中断;若为外部中断,应规定其触发方式,堆栈设置(SP)。2)中断系统的初始化:例:编写INT1为低电平触发的初始化程序。(1)采用位操作指令实现

CLR IT1 ;电平触发方式

SETB PX1 ;设置INT1为高优先级断

SETB EA ;总中断允许

SETB EX1 ;设置外部中断1允许 (2)采用字节操作指令

MOV TCON,#00H ; MOV IE, #84H ; MOV IP, #04H ;例:编写INT1为低电平触发的初始化程序。(2)中断服务程序 编写中断服务程序时要注意以下三点:1) 五个中断入口地址范围:0003H~0023H,每个中断源的入口地址间仅相差8存储单元,一般无法用于容纳一个完整的中断服务程序,因此通常在中断服务程序入口自己用LJMP指令,这样可以安排中断服务程序在64K程序存储器的任何地方。2) 开始处需要保护现场,中断结束前需要恢复现场;3) 最后一条指令必须是中断返回指令RETI。(2)中断服务程序

ORG 0000H LJMP MAIN ORG 0003H LJMP SUM

ORG 1000HMAIN: MOV SP, #30H ;开辟堆栈

MOV A,#00H ;主程序开始

CLR P1.0 ;清除P1.0 SETB IT0 ;脉冲触发方式

SETB IE0 ;允许外部中断0 SETB EA ;总中断允许

SJMP$ ;等待中断SUM: INC A CJNE A,#100,QUIT CLR EA ;总中断禁止

CLR IE0 ;外部中断0禁止

SETB P1.0 ;置位P1.0QUIT:RETI ;中断返回

END3.中断程序设计举例

例:统计脉冲触发方式下INT0的个数,若满100个,则停止统计并将P1.0置1。 ORG 0000H3.中断程序设计举例例:外部中断源扩展 当外部中断源多于2个时,可采用硬件申请与软件查询的方法扩展外部中断。

8051≥1

EXT0EXT1EXT2EXT3P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7LEDR例:外部中断源扩展

≥1EXT0EXT1EXT2EXT3P1 ORG 0000H JLMP MAIN ORG 0003H LJMP EXINT ;转外部中断1服务程序

ORG 0040HMAIN: …… ORG1000HEXINT: PUSH PSW PUSH A ;保护现场

JB P1.0,EXT0 JB P1.1,EXT1 JB P1.2,EXT2 JB P1.3,EXT3DONE: POP A POP PSW ;恢复现场

RETI ;中断返回EXT0: SETB P1.4 ┇ AJMP DONEEXT1: SETB P1.5 ┇ AJMP DONEEXT2: SETB P1.6 ┇ AJMP DONEEXT3: SETB P1.7 ┇ AJMP DONE END ORG 0000HEXT0: SETB P1.45.4定时/计数器的概述5.4.1定时器/计数器的结构定时器/计数器的结构如图所示。5.4定时/计数器的概述8051单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。这些功能都由特殊功能寄存器TMOD和TCON所控制。8051单片机有2个16位的定时/计数器:定时器0(T0)和5.4.2定时和计数两种功能(1)计数功能计数:对外部事件进行计数。外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外来脉冲进行计数。计数输入端:T0(P3.4)和T1(P3.5)。外部输入的脉冲在负跳变时有效,进行计数器加1(加法计数)。5.4.2定时和计数两种功能

定时器/计数器在每个机器周期的S5P2期间采样T0/T1引脚,若采样结果表明上一周期为高电平,下一周期为低电平,则TL0/TL1加1。新的计数值在检测到负跳变后的S3P1期间置入加法计数器。 由于需要两个机器周期才能识别高电平到低电平的跳变,所以外部计数脉冲的频率应小于fosc/24,且高电平与低电平的持续时间均不得小于一个机器周期。定时器/计数器在每个机器周期的S5(2)定时功能实现方法:通过计数器的计数实现。与计数功能的不同之处:计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲,也就是每个机器周期计数器加1。一个机器周期=12个振荡周期, 故计数频率为振荡频率的1/12。若:单片机晶振=6MHz,则计数频率为0.5MHz,

2微秒计数器加1。(2)定时功能

定时器工作方式的特点:当定时器设置了某种工作方式之后,定时器就会按设定的工作方式独立运行,不再占用CPU的操作时间,除非定时器计满溢出,才可能中断CPU当前操作。因此,定时器/计数器是一种可编程部件。 编程:在定时器/计数器开始工作之前,CPU必须将一些命令(称为控制字)写入定时器/计数器,决定T0、T1的工作方式。将控制字写入定时器/计数器的过程叫定时器/计数器的初始化。

定时器工作方式的特点:定时/计数器初始化内容: 设定T0、T1的工作方式:(TMOD)

将工作方式控制字写入方式寄存器 设定定时/计数初值:(TH0,TL0;TH1,TL1)

设定T0、T1的工作状态:(TR0/TR1)

将工作状态控制字写入控制寄存器定时/计数器初始化内容:5.4.3工作模式寄存器和控制寄存器(1)定时器工作方式寄存器(TMOD,89H) 作用:设置两个定时器/计数器工作方式。 但TMOD不能位寻址,只能用字节传送指令设置其内容。位序号D7D6D5D4D3D2D1D0位符号GATEC/TM1M0GATEC/TM1M0

T1T05.4.3工作模式寄存器和控制寄存器位序号D7D6D5DGATE——门控位 =0以运行控制位TR0(TR1)启动定时器 =1以外中断请求信号和TR0(TR1)共同启动定时器

C/T:定时方式/计数方式选择位。

=1:选择计数器工作方式,对T0/T1引脚输入外部事件的负脉冲计数;

=0:选择定时器工作方式,对机器周期脉冲计数定时。M1M0——工作方式选择位。可形成4种编码,对应于四种工作方式。

=00:13位定时器/计数器;

=01:16位定时器/计数器(常用);

=10:可自动重装的8位定时器/计数器(常用);

=11:T0分为2个8位定时器/计数器;仅适用于T0。复位时,TMOD=0。GATE——门控位例如:设定时器1为定时工作方式,要求由软件启动定时器1,按方式2工作。定时器0为计数方式,要求由软件启动定时器0,按方式1工作。位序号D7D6D5D4D3D2D1D0位符号GATE

0C/T0M11M00GATE0C/T1M10M01MOVTMOD,#25H。例如:设定时器1为定时工作方式,要求由软件启动定时器1,按方(2)定时器控制寄存器(TCON,88H)位地址8F8E8D8C8B8A8988位符号TF1TR1TF0TR0IE1IT1IE0IT0TR0(TR1)——定时器T0(T1)运行控制位 当TR0(TR1)=1时,启动定时器开始工作。 当GATE=0时,TR0(TR1)置1,启动定时器开始工作。 当GATE=1时,且为高电平时,TR0(TR1)置1启动定时器工作;由软件清零关闭定时器。(2)定时器控制寄存器(TCON,88H)位地址8F8E8TF0(TF1)——计数溢出标志位若有溢出,TF0(TF1)=1

无溢出,TF0(TF1)=0

有溢出时,当转向中断服务时,再由硬件自动清0。TF0(TF1)的使用方式: 中断方式时,作中断请求标志位来使用, 查询方式时,作查询状态位来使用。TF0(TF1)也可以用程序置位或清零。 例如执行指令SETBTF1后TF1=1。所以定时器/计数器1的中断请求还能用程序产生(软中断)。TF0(TF1)——计数溢出标志位5.5定时器/计数器的工作方式及应用 四种工作方式:即方式0、方式1、方式2和方式3。 其中:方式0、1和2下,T0和T1的工作方式相同,方式3下,两个定时器的工作方式不同。(1)方式0 13位计数结构的工作方式。 下图是定时器/计数器0在工作方式0下的逻辑结构。

T1的结构和操作与T0完全相同。5.5定时器/计数器的工作方式及应用T0(或T1)方式0结构――13位计数器T0(或T1)方式0结构――13位计数器当GATE=0时, 若TR0=1,接通计数控制K,启动T0在原计数值上加1计数,直至溢出。 若TR0=0,则关断控制开关,停止计数。当GATE=1,且TR0=1时, ,开启定时器计数。 ,关断控制开关,停止计数。 由于定时器/计数器以加1方式计数,当定时器/计数器用于计数工作方式时,假定要求的计数长度为N,则应装入定时器/计数器的初值

X=213-N。 在方式0下,计数的长度N大小范围为1~8192。当GATE=0时,当工作于定时状态时,定时器/计数器是计数内部机器周期每个机器周期包括12个振荡周期,若晶振频率为6MHz,则: 机器周期Tp=12/晶振频率=12/(6×106)=2us

若需要的定时时间:Tc, 则需要的机器周期数N=Tc/Tp。 则应装入定时器/计数器的初值X=213-N。 则当X=8191时,具有最小的定时时间为2us; 当X=0时,具有最大的定时时间为16384us。当工作于定时状态时,定时器/计数器是计数内部机器周期定时器/计数器的应用举例 主要任务:编程。编程时应注意的问题:

1.能正确写入控制字(即初始化定时器/计数器)

2.会进行定时/计数初值的计算。写入控制字的次序:

1.把工作方式控制字写入TMOD寄存器;

2.把定时/计数初值装入TL0、TH0(或TL1、TH1)

3.置位TR0(或TR1)以启动计数

4.置位ET0(或ET1)允许定时器/计数器中断(如果需要);

5.置位EA使CPU开放中断。定时器/计数器的应用举例例1:设单片机晶振频率fosc=6MHz,使用定时器1以方式0产生周期为500us的等宽正方波脉冲,并由P1.7输出。以查询方式完成。(1)计算计数初值实现正方波脉冲的方法:P1.7端以250us为周期交替输出高低电平。则:定时时间应为250us。若晶振为6MHz,则一个机器周期=2us。设待求的计数初值为X,则: (213-X)×2us=250us得:X=8067=1111110000011BTH1=FCH,TL1=03H。例1:设单片机晶振频率fosc=6MHz,使用定时器1以方式(2)TMOD寄存器初始化

T1在方式0下,M1M0=00; 定时功能,应使=0; 实现T1的运行控制,则GATE=0。 所以:TMOD=00H。(3)由定时器控制寄存器TCON中的TR1位控制定时的启动和停止,则TR1=1,启动;TR1=0,停止。位序号D7D6D5D4D3D2D1D0位符号GATEC/TM1M0GATEC/TM1M000000000(2)TMOD寄存器初始化位序号D7D6D5D4D3(4)程序清单:

ORG 1000H MOV TMOD, #00H ;设置T1工作方式0 MOV TH1, #0FCH ;设置计数初值

MOV TL1, #03H MOV IE, #00H ;禁止中断

SETB TR1 ;启动T1运行

SETB P1.7 ;高电平LOOP: JB TF1, LOOP1 ;查询计数溢出

AJMP LOOPLOOP1: MOV TH1, #0FCH ;重新设置计数初值

MOV TL1, #03H CLR TF1 ;计数溢出标志位清零

CPL P1.7 ;输出取反

AJMP LOOP ;重复循环

END ;程序结束(4)程序清单:(2)方式1

T0(或T1)方式1结构――16位计数器(2)方式1T0(或T1)方式1结构――16位计数器

方式1工作原理与方式0基本相同,只是计数器变为16位,由TH(8位)和TL(8位)构成。 当定时器/计数器用于计数工作方式时,假定要求的计数长度为N,则应装入定时器/计数器的初值X=216-N。 在方式1下,计数的长度范围为1~65536。 当工作于定时状态时,若需要的定时时间为Tc,则需要的机器周期数N=Tc/Tp(Tp=机器周期),则应装入定时器/计数器的初值X=216-N。 若晶振频率为12MHz,则当X=65535时,具有最小的定时时间为1us; 当N=65536时,具有最大的定时时间为65536us≈65ms。 方式1工作原理与方式0基本相同,只是计数器变为16位,由T

例:设单片机晶振频率fosc=6MHz,使用定时器1以方式1产生周期为500us的等宽正方波脉冲,并由P1.7输出。以中断方式完成。(1)计算计数初值 设待求的计数初值为X,则:(216-X)×2us=250us

得:X=65411=0FF83H, 则:TH1=FFH,TL1=83H。(2)TMOD寄存器初始化 位序号D7D6D5D4D3D2D1D0位符号GATEC/TM1M0GATEC/TM1M000010000TMOD=10H 例:设单片机晶振频率fosc=6MHz,使用定时器1以方式(3)程序清单:

ORG 0000H AJMP MAIN ORG 001BH AJMP TIMER1 ORG 1000HMAIN MOV TMOD,#10H ;设置T1工作方式1 MOV TH1, #0FFH ;设置计数初值

MOV TL1, #83H ;

SETB EA ;开中断(3)程序清单: SETB ET1 ;定时器1允许中断LOOP: SETB TR1 ;定时开始HERE: SJMP$ ;等待中断

TIMER1: MOV TH1,#0FFH ;T1中断服务程序 ;重新设置计数初值

MOV TL1, #83H ;

CPL P1.7 RETI END ;程序结束 SETB ET1 ;定时器1允许中断 (3)方式2

方式2具有自动重新加载功能,即自动加载计数初值。在该工作方式下,把16位计数器分为两部分,即以TL作计数器,以TH作预置寄存器,初始化时把计数初值分别装入TL和TH中。 当计数溢出时,由预置寄存器TH以硬件方法自动给计数器TL重新加载,继续计数,循环重复。 (3)方式2T0(或T1)方式2结构――8位计数器T0(或T1)方式2结构――8位计数器

当定时器/计数器用于计数工作方式时,假定要求的计数长度为N,则应装入定时器/计数器的初值X=28-N。在方式2下,计数的长度范围为1~256。当工作于定时状态时,若需要的定时时间为Tc,则需要的机器周期数N=Tc/Tp,(Tp为机器周期),则应装入定时器/计数器的初值X=28-N。 若晶振频率为6MHz,则当X=255时,具有最小的定时时间为2us;当X=0时,具有最大的定时时间为512us。当定时器/计数器用于计数工作方式时,假定要求的计

例:有一自动罐装药粒系统,每瓶罐装药粒100片,每满一瓶,累加器A加1操作,若满200瓶,向P1.0输出0,然后停止计数。要求用定时器1以工作方式2计数。(查询方式)(1)计算计数初值 设待求的计数初值为X,则:(28-X)=100

得: X=156=9CH, 则: TH1=9CH,TL1=9CH。(2)TMOD寄存器初始化位序号D7D6D5D4D3D2D1D0位符号GATEC/TM1M0GATEC/TM1M001100000TMOD=60H 例:有一自动罐装药粒系统,每瓶罐装药粒100片,每满一瓶,(3)程序清单:

ORG 1000H MOV TMOD,#60H ;设置T1工作方式

MOV TH1, #9CH ;设置计数初值

MOV TL1, #9CH MOV A,#00H MOV IE, #00H ;禁止中断

SETB TR1 ;启动计数CHECK: JBC TF1,LOOP ;查询计数溢出

AJMP CHECKLOOP: INC A CJNE A,#200,CHECK CLR P1.0 ;清零P1.0 CLR TR1 ;停止计数器1的运行

END ;程序结束(3)程序清单:(4)方式3

前三种工作方式下,T0和T1的设置和使用是完全相同的。但是在工作方式3下,二者的设置和使用却是不同的。

1)在工作方式3下,T0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以作计数使用,又可以作定时使用。

T0的各控制位、引脚和中断源,即GATE、、TR0、TF0和T0(P3.4)引脚、(P3.2)引脚全归它使用。功能和操作与方式1完全相同,而且逻辑电路结构也很相似,如图所示。(4)方式3

T0工作方式3逻辑结构

T0工作方式3逻辑结构

此时TH0只可用作简单的定时器使用。而且由于T0的控制位已被TL0独占,因此只好借用定时器/计数器1的控制位TR1和TF1,即以计数溢出去置位TF1,而定时的启动和停止则受TR1的状态控制。由于TL0既能作定时器使用也能作计数器使用,而TH0只能作定时器使用,却不能作计数器使用。因此,在工作方式3下,定时器/计数器0可以构成两个定时器或一个定时器和一个计数器。此时TH0只可用作简单的定时器使用方式0、1(2)工作方式3下的定时器/计数器1

如果T0已工作在工作方式3,则T1只能工作在方式0、1或方式2下,因为它的运行控制位TR1及计数溢出标志位TF1已被T0借用,如图所示。方式0、1(2)工作方式3下的定时器/计数器1

此时,T1通常是作为串行口的波特率发生器使用,以确定串行通信的速率。因为已经没有计数溢出标志位TF1可供使用,因此只能把计数溢出直接送给串行口。若将T1强行设置为模式3,就会使T1立即停止工作。方式2此时,T1通常是作为串行口的波特率发生器使用初值计数值定时时间方式0(13位)0~81911~8192(1~8192)µS方式1(16位)0~655351~65536(1~65536)µS方式2(8位重装)0~2551~256(1~256)µS方式3TL00~2551~256(1~256)µSTH00~255(1~256)µS以晶振fosc=12MHz计算初值计数值定时时间方式0(13位)0~81911~8192(

例:设定时器/计数器T0工作于方式3,T1工作于方式0,TL0和TH0作为两个独立的8位定时/计数器分别产生250us和500us的定时中断,使P1.1和P1.2产生500us和1000us的方波。设晶振频率为6MHz。(1)计算计数初值

TL0的计数初值=256-250us/2us=131=83H TH0的计数初值=256-500us/2us=06H

因此,TL0=83H,TH0=06H。(2)TMOD寄存器初始化 例:设定时器/计数器T0工作于方式3,T1工作于方式0, M1M0=11,=0,GATE=0,T1工作于方式0因此:TMOD=03H位序号D7D6D5D4D3D2D1D0位符号GATEC/TM1M0GATEC/TM1M000000011 M1M0=11,=0,GATE=0(3)程序清单:

ORG 0000H AJMP MAIN ORG 000BH ;T0 AJMP TIMER0 ORG 001BH ;T1 AJMP TIMER1 ORG 1000HMAIN: MOV TMOD, #03H MOV TL0, #83H MOV TH0, #06H (3)程序清单: SETB TR0 ;启动定时器运行

SETB TR1 SETB ET0 ;允许定时/计数器中断

SETB ET1 SETB EA ;总中断允许

SJMP $ ;等待中断 TIMER0: MOV TL0,#83H CPL P1.1 RETI TIMER1: MOV TH0, #06H CPL P1.2 RETI END SETB TR0 ;启动定时器运行79可编辑感谢下载79可编辑感谢下载第5章MCS-51单片机中断系统与定时/计数器5.1输入输出数据传送的控制方式5.2中断概述5.3MCS-51单片机中断源、中断控制和中断响应5.4 定时/计数器的概述5.5 定时/计数器的工作方式及应用第5章MCS-51单片机中断系统与定时/计数器5.1输入输出数据传送的控制方式 单片机常用的输入/输出设备有:键盘、A/D转换器、显示器、指示灯、微型打印机、D/A转换器等。 计算机与输入/输出设备之间交换信息,有三种信息形式:数据信息、状态信息和控制信息。 数据信息:数字量、模拟量和开关量; 状态信息:外设的工作状态; 控制信息:控制外设的启动或停止。《MCS中断系统》课件

计算机的CPU与外设,并不直接相连,而是通过接口电路进行连接。单片机系统的运行同其他微机系统一样,CPU不断地与外部输入/输出设备交换信息。

CPU与外部设备交换信息通常有以下四种方式: 无条件传送方式 查询方式 中断方式 直接存储器存取(DMA――DirectMemoryAccess)《MCS中断系统》课件

5.1.1无条件传送方式 这种数据传送方式有些类似于CPU和存储器之间的数据传送,即CPU总是认为外设在任何时刻都是处于“准备好”的状态。因此,这种传送方式不需要交换状态信息,只需在程序中加入访问外设的指令,数据传送便可以实现。 应用场合:

(1)具有常驻的或变化缓慢的数据信号的外部设备,例如直接读取外设状态信息;

(2)工作速度非常快,足以和CPU同步工作的外部设备,例如:发光二极管的驱动接口。5.1.1无条件传送方式

5.1.2程序查询方式 查询传送也称为条件传送,可用于无条件传送不便于使用的场合,以解决外部设备与CPU之间的速度匹配问题。 查询方式的过程为:查询—等待—数据传送,即在执行数据输入/输出之前,CPU先查询外设当前状态,如果外设准备好,就进行数据传送;如果外设忙,就进行循环以等待。流程图如图5-1(a)所示。例如:通过打印机打印文稿。 等待也可以不采用循环等待,而用软件插入固定延时的方法来完成,如图5-1(b)所示。例如:显示屏/硬盘的上电初始化。5.1.2程序查询方式

查询方式的优点是通用性好,可以用于各类外部设备和CPU间的数据传送。缺点是需要有一个等待过程,比较浪费CPU时间。检查外设状态准备好传送数据传送数据延时启动外部设备NY(a)(b)图5-1查询方式流程图查询方式的优点是通用性好,可以用于5.1.3中断方式 中断方式与查询方式的主要区别在于如何知道外设是否为数据的传送作好了准备,查询方式是CPU的主动形式,而中断方式则是CPU等待通知(中断请求)的被动方式。查询中断5.1.3中断方式查询中断5.2中断概述5.2.1中断的概念 计算机中的中断是指CPU在处理某件事情的时候,外部发生了某一事件请求CPU迅速去处理,于是CPU暂时中断当前的工作,转入处理所发生的事件,中断访问处理完后,再回到原来被中断的地方,继续原来的工作的过程称为中断,如图5-1所示。 实现这种功能的部件称为中断系统(中断机构),产生中断的请求源称为中断源。5.2中断概述看电视中断处理中断请求实际生活中断返回电话铃响接听电话看电视主程序计算机事件发生事件处理主程序中断概念示意图看电视中断处理中断请求实际生活中断返回电话铃响接听电话看电视中断过程示意图中断过程示意图5.2.2中断功能 当计算机采用了中断技术后,可大大地提高其工作效率和处理问题的灵活性。其功能主要表现在以下几个方面:1.实现CPU与外设的速度配合2.实现实时控制3.实现故障的及时发现4.实现人机联系5.2.2中断功能5.2.3中断系统的功能

MCS-51的中断系统具有以下中断功能:能实现中断及返回;能实现中断优先级排队;能实现中断嵌套。返回中断中断返回低级中断主程序高级中断中断嵌套流程

三类中断:可屏蔽中断、不可屏蔽中断和软件中断。可屏蔽中断指CPU对中断请求输入线上的中断请求是可以通过指令控制的。5.2.3中断系统的功能返回中断中断返回低级中断主程序5.3MCS-51单片机中断源、中断源和中断响应

5.3.1中断源

中断源是指能发出中断请求,引起中断的装置或事件。一个单片机系统通常有多个中断源,而单片机CPU在某一时刻只能响应一个中断源的中断请求,当多个中断源同时向CPU发出中断请求时,则必须按照“优先级别”进行排队,CPU首先选定其中中断级别最高的中断源为其服务,然后按由高到低的排队顺序逐一服务,完毕后返回断点地址,继续执行主程序。这就是“中断优先级”的概念。5.3MCS-51单片机中断源、中断源和中断响应MCS-51单片机中断系统结构IE0EX0TF0IE1TF1TIESET1EX1ET0RIIP硬件查询高级中断请求低级中断请求中断源INT0INT1中断入口地址中断源10IEPX0PSPT1PX1PT0111111111100000EA1≥1SCON11T0T1RXTXIT0IT100TCON中断入口地址MCS-51单片机中断系统结构IE0EX0TF0IE1TF1(1)外中断类 即外部中断0和外部中断1

中断请求信号分别由引脚INT0(P3.2)和INT1(P3.3)引入。 外部中断请求有两种信号方式: 电平方式:当引脚上出现低电平时就向CPU申请中断,CPU响应中断后应采取措施撤消中断请求信号,使引脚恢复高电平。 脉冲方式:当引脚上出现负跳变(下降沿)时,该负跳变经边沿检测器使IE0或IE1置1,向CPU申请中断,CPU响应中断后由硬件自动清除IE0和IE1。CPU在每个机器周期采样INT0和INT1,为了保证检测到负跳变,引脚上的高电平与低电平至少应各自保持一个机器周期。(1)外中断类(2)定时中断类

单片机芯片内部有两个定时器,T0和T1,以计数的方法实现定时或计数功能。定时器/计数器计数溢出时,由硬件分别置TF0=1和TF1=1,向CPU申请中断。CPU响应中断后,由硬件自动清除TF0和TF1。(3)串行接口中断 串行接口的中断请求由发送或接收所引起。串行口发送了一帧信息,便由硬件置TI=1,向CPU申请中断。串行口接收了一帧信息,便由硬件置RI=1,向CPU申请中断。CPU响应中断后必须由软件清除TI和RI。(2)定时中断类5.3.2中断控制 与中断控制有关的寄存器共四个, 定时器控制寄存器TCON(TimerController) 串行口控制寄存器SCON(SerialController) 中断允许控制寄存器IE(InterruptEnable) 中断优先控制寄存器IP(InterruptPriority)5.3.2中断控制

(1)定时器控制寄存器(TCON),88H

TCON内容及位地址表示如下:位地址8F8E8D8C8B8A8988位符号TF1TR1TF0TR0IE1IT1IE0IT0IE0(IE1)——外中断请求标志位 当CPU采样到(或)端出现有效中断请求时,此位由硬件置1。在中断响应完成后转向中断服务时,再由硬件自动清零。IT0(IT1)——外中断请求信号方式控制位

IT0(IT1)=1脉冲方式(后沿负跳有效)

IT0(IT1)=0电平方式(低电平有效) 此位由软件置1或清0。(1)定时器控制寄存器(TCON),88H位地址8F8(2)串行口控制寄存器(SCON) 该寄存器地址为98H,其位地址为9FH~98H。位地址9F9E9D9C9B9A9998位符号SM0SM1SM2RENTB8RB8TIRI·TI——串行口发送中断请求标志位当发送完一帧串行数据后,由硬件置1,在转向中断服务程序后,必须用软件清0。·RI——串行口接收中断请求标志位当接收完一帧串行数据后,由硬件置1;在转向中断服务程序后,必须用软件清0。(2)串行口控制寄存器(SCON)位地址9F9E9D9C9B(3)中断允许控制寄存器(IE)该寄存器地址为A8H,其位地址为AFH~A8H。位地址AFAEADACABAAA9A8位符号EA1/0/0ES0ET11EX10ET00EX01EA——中断允许总控制位

EA=0禁止所有中断,CPU不响应任何中断请求。

EA=1开放所有中断,某个中断的禁止或允许由各中断源的中断允许控制位进行设置。(3)中断允许控制寄存器(IE)位地址AFAEADACABAEX0(EX1)——外部中断允许控制位

EX0(EX1)=0禁止外中断

EX0(EX1)=1允许外中断ET0(ET1)——定时/计数中断允许控制位

ET0(ET1)=0禁止定时/计数T0(T1)中断

ET0(ET1)=1允许定时/计数T0(T1)中断ES——串行中断允许控制位

ES=0禁止串行中断

ES=1允许串行中断单片机复位后(IE)=00H,中断系统处于禁止状态。EX0(EX1)——外部中断允许控制位单片机复位后(IE)=(4)中断优先级控制寄存器(IP)

IP寄存器地址B8H,位地址为BFH~B8H。位地址BFBEBDBCBBBAB9B8位符号/0/0/0PS0PT10PX10PT00PX01PX0 —— 外部中断0优先级设定位PT0 —— 定时中断0优先级设定位PX1 —— 外部中断l优先级设定位PT1 —— 定时中断1优先级设定位PS —— 串行中断优先级设定位 为0时优先级为低;为1优先级为高。(4)中断优先级控制寄存器(IP)位地址BFBEBDBCBB

中断优先级是为中断嵌套服务的,其控制原则为:① 低优先级中断请求不能打断高优先级的中断服务;但高优先级中断请求可以打断低优先级的中断服务,从而实现中断嵌套。② 如果一个中断请求已被响应,则同级的其它中断请求不能中断它。③ 如果同级多个中断请求同时出现,则按CPU设定的自然优先级确定那个中断请求被响应。其自然优先级由高到低依次为:外部中断0→定时中断0→外部中断1→定时中断1→串行中断,这其实是CPU查询各中断的次序。 中断优先级是为中断嵌套服务的,其控制原则为:(5)中断控制寄存器参数设置

这四个控制寄存器既可字节寻址又可位寻址的。 寄存器参数设置方式:字节操作、位操作等指令。 例如,在中断允许控制寄存器IE中,假定要开放外部中断0和定时中断1,为: 字节传送操作: MOV IE,#89H

或者: ORL IE,#89H

位操作: SETB EA SETBEX0 SETB ET1

其它各中断控制寄存器与此类似。(5)中断控制寄存器参数设置

5.3.3中断处理过程(1)中断响应条件

CPU响应中断的必要条件有: 有中断源发出中断请求;

CPU开放中断,即中断总允许位EA=1; 申请中断的中断源允许中断,即中断允许位为1; 无同级或更高级中断正在被服务; 当前的指令周期已经结束。5.3.3中断处理过程(1)中断响应条件

中断受阻条件:满足中断响应条件的,如果遇上下列条件之一,该中断响应过程将被阻断:× 正在执行同级或高级中断服务程序;× 当前的查询周期还不是执行指令的最后一个机器周期,即下在执行的指令完成前,任何中断请求都得不到响应。× 正在执行的是一条RET、RETI或者任何访问IE或IP的指令。在指令这些指令之后,不会马上响应中断请求,至少还要执行一条其他指令。 中断受阻条件:满足中断响应条件的,如果遇上下列条件之一,该(2)中断响应过程

1)使相应优先级状态触发器置1;

2)将当前PC内容压入堆栈——保护断点;

3)硬件清零相应中断请求标志(TI、RI除外);

4)将中断服务子程序入口地址送PC——转移。

中断响应过程相当于一条隐含的调用指令(或称隐指令)LCALL。(2)中断响应过程 中断响应过程相当于一条隐含的调用指令(或(3)中断响应时间指从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。

1)最快响应时间以外部中断的电平触发为最快。

1个周期(查询)+2个周期(长调用LCALL)

2)最长响应时间若当前指令是RET、RETI和IP、IE指令,紧接着下一条是乘除指令发生时:

2个周期执行当前指令(其中含有1个周期查询)+4个周期乘除指令+2个周期长调用=8个周期。(3)中断响应时间(4)中断处理 中断处理(又称中断服务)程序从入口地址开始执行,直到返回指令“RETI”为止,这个过程称为中断处理。此过程一般包括两部分内容,一是保护现场,二是处理中断源的请求。(5)中断返回 中断处理程序的最后一条指令是RETI,它使CPU结束中断处理程序的执行,返回到断点处,继续执行主程序。(4)中断处理

5.3.4中断程序设计中断程序指为实现中断而设计的有关程序,包括主程序和中断服务程序。主程序实现对中断的控制,中断服务程序则完成中断源所要求的各种操作。

(1)主程序

1)主程序的起始地址: MCS-51单片机复位后,PC=0000H,而各中断源的入口地址为0003H~0023H。因此,在编写程序时应在0000H处使用一条转移指令,跳过上述区域。主程序则以转移指令的目的地址作为其起始地址。5.3.4中断程序设计 ORG 0000H LJMP MAIN ORG 0003H LJMP SUM ORG 1000HMAIN: ~ ~SUM: ~ ORG 0000H2)中断系统的初始化:

MCS-51中断系统的功能是通过前述特殊功能寄存器进行统一管理的,中断系统的初始化是指用户对这些特殊功能寄存器中的各控制位进行赋值。初始化包括:设定所涉及中断源的中断优先级;相应中断源开中断;若为外部中断,应规定其触发方式,堆栈设置(SP)。2)中断系统的初始化:例:编写INT1为低电平触发的初始化程序。(1)采用位操作指令实现

CLR IT1 ;电平触发方式

SETB PX1 ;设置INT1为高优先级断

SETB EA ;总中断允许

SETB EX1 ;设置外部中断1允许 (2)采用字节操作指令

MOV TCON,#00H ; MOV IE, #84H ; MOV IP, #04H ;例:编写INT1为低电平触发的初始化程序。(2)中断服务程序 编写中断服务程序时要注意以下三点:1) 五个中断入口地址范围:0003H~0023H,每个中断源的入口地址间仅相差8存储单元,一般无法用于容纳一个完整的中断服务程序,因此通常在中断服务程序入口自己用LJMP指令,这样可以安排中断服务程序在64K程序存储器的任何地方。2) 开始处需要保护现场,中断结束前需要恢复现场;3) 最后一条指令必须是中断返回指令RETI。(2)中断服务程序

ORG 0000H LJMP MAIN ORG 0003H LJMP SUM

ORG 1000HMAIN: MOV SP, #30H ;开辟堆栈

MOV A,#00H ;主程序开始

CLR P1.0 ;清除P1.0 SETB IT0 ;脉冲触发方式

SETB IE0 ;允许外部中断0 SETB EA ;总中断允许

SJMP$ ;等待中断SUM: INC A CJNE A,#100,QUIT CLR EA ;总中断禁止

CLR IE0 ;外部中断0禁止

SETB P1.0 ;置位P1.0QUIT:RETI ;中断返回

END3.中断程序设计举例

例:统计脉冲触发方式下INT0的个数,若满100个,则停止统计并将P1.0置1。 ORG 0000H3.中断程序设计举例例:外部中断源扩展 当外部中断源多于2个时,可采用硬件申请与软件查询的方法扩展外部中断。

8051≥1

EXT0EXT1EXT2EXT3P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7LEDR例:外部中断源扩展

≥1EXT0EXT1EXT2EXT3P1 ORG 0000H JLMP MAIN ORG 0003H LJMP EXINT ;转外部中断1服务程序

ORG 0040HMAIN: …… ORG1000HEXINT: PUSH PSW PUSH A ;保护现场

JB P1.0,EXT0 JB P1.1,EXT1 JB P1.2,EXT2 JB P1.3,EXT3DONE: POP A POP PSW ;恢复现场

RETI ;中断返回EXT0: SETB P1.4 ┇ AJMP DONEEXT1: SETB P1.5 ┇ AJMP DONEEXT2: SETB P1.6 ┇ AJMP DONEEXT3: SETB P1.7 ┇ AJMP DONE END ORG 0000HEXT0: SETB P1.45.4定时/计数器的概述5.4.1定时器/计数器的结构定时器/计数器的结构如图所示。5.4定时/计数器的概述8051单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。这些功能都由特殊功能寄存器TMOD和TCON所控制。8051单片机有2个16位的定时/计数器:定时器0(T0)和5.4.2

温馨提示

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

评论

0/150

提交评论