51单片机-中断系统(部编)课件_第1页
51单片机-中断系统(部编)课件_第2页
51单片机-中断系统(部编)课件_第3页
51单片机-中断系统(部编)课件_第4页
51单片机-中断系统(部编)课件_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

第五章中断系统内容提要:§5-1微机的输入/输出方式§5-2中断的概念§5-389C51中断系统结构及中断控制§5-4中断处理过程§5-5外部中断的扩展方法§5-6中断程序的举例§5.1微机的输入/输出方式CPU与外部设备交换信息通常有以下几种方式:①程序控制方式,又分为无条件传送方式和查询传送方式。②中断方式③直接储存器存取(DMA)方式一、无条件传送方式CPU总是认为外设在任何时刻都处于“准备好”的状态。这种传送方式不需要交换状态信息,只需在程序中加入访问外设的指令,数据传送便可以实现。此种方法很少使用。

二、查询传送方式在输入时,需要查询外设的输入数据是否准备好;在输出时,需要查询外设是否把上一次CPU输出的数据处理完毕。查询传送方式:通过查询外设的状态信息,确信外设已处于“准备好”,计算机才发出访问外设的指令,实现数据的传送。状态信息:一般为1位二进制码。查询方式程序流程图:

输入状态信息准备好?传送数据NY查询方式的过程:

启动外设设备传送数据延迟查询-等待-数据传送,待到下一次数据传送时则重复上述过程。等待也可以不采用循环等待,而用软件插入固定延时的方法来完成。查询方式的特点:优点:通用性好,可以用于各类外设和CPU间的数据传送。缺点:CPU在完成一次数据传送后要等待很长时间才能进行下一次的传送。在等待过程中,CPU不能进行其他操作,所以效率比较低。

DMA(DirectMemoryAccess)方式是CPU让出数据总线,使外部设备和存储器之间直接传送(不通过CPU)数据的方式。在下述两种情况时可考虑采用DMA方式:①外设和存储器之间有大量的数据需要传送;②外部设备的工作速度很快的情况。三、直接存储器存取(DMA)方式§5.2中断的概念一、概述与上对比,单片机中也有同样的问题。CPU正在执行原程序,突然,被意外事情打断,转去执行新程序。CPU执行新程序结束后,又回到原程序中继续执行。这样的过程就叫。中断

什么叫中断?举例:某同学正在教室写作业,忽然被人叫出去,回来后,继续写作业。这就是生活中中断的例子。主程序响应中断请求中断服务程序返回主程序继续执行主程序断点中断系统:实现这种功能的部件中断源:产生中断的请求源中断请求:中断源向CPU提出的处理请求CPU的中断响应过程:CPU暂时中止自身的事务,转去处理事件的过程中断服务:对事件的整个处理过程中断返回:处理完毕,再回到原来被中止的地方日常生活中的中断与单片机中断的比较:

某同学

单片机过程说明正在看书 执行主程序有人找出去 中断信号

中断请求暂停看书

暂停执行主程序

中断响应书中作记号当前PC入栈

保护断点出去做事 执行中断程序

中断服务回来继续看 返回主程序

中断返回二、中断的作用1、分时操作2、实时处理3、故障处理分时操作:计算机的中断系统可以使CPU与外设同时工作。CPU在启动外设后,便继续执行主程序;而外设被启动后,开始进行准备工作。当外设准备就绪时,就向CPU发出中断请求,CPU响应该中断请求并为其服务完毕后,返回原来的断点处继续运行主程序。外设在得到服务后,也继续进行自己的工作。因此,CPU可以使多个外设同时工作,并分时为各外设提供服务,从而提高了CPU的利用率和输入输出的速度。实时处理:当计算机用于实时控制时,请求CPU提供服务时随机发生的。有了中断系统,CPU就可以立即响应并加以处理。故障处理:计算机在运行时往往会出现一些故障,如断电、存储器奇偶校验出错、运算溢出等。有了中断系统,当出现上述情况时,CPU可及时转去执行故障处理程序,自行处理故障而不必停机。§5.389C51中断系统结构及中断控制89C51中断系统的五个中断源(结构如图5-3)①INT0-外部中断0请求,低电平有效,通过P3.2引脚输入②INT1-外部中断1请求,低电平有效,通过P3.3引脚输入③T0-定时器/计算器0溢出中断请求④T1-定时器/计算器0溢出中断请求⑤TX/RX-串行口中断请求一、89C51中断源中断系统中断源:I/O设备键盘、打印机、A/D转换器、D/A转换器完成自身的操作后向CPU申请中断,请求服务硬件故障电源断电时,需要将寄存器、累加器、标志位保存,以便重新供电后继续运行RAM存储器断电时将内容保存在如硬盘、FLASHROM中,以便供电恢复后继续工作实时时钟系统中的时钟可以采用独立时钟系统,通过中断向CPU提供时钟源,节省CPU的处理时间调试程序时设置的中断程序调试时,通过设置断点观察运行中的寄存器、累加器、标志位状态;观察中间运算结果上页下页源允许图6-19中断系统总体逻辑结构总允许优先级自然优先级中断源自然优先级中断源查询硬件查询硬件低级中断请求送CPU矢量地址送PCIPIETCON

SCONEX0ET0EX1ET1ESEAINT0INT1T0T1RXTXRITIIE0IE1TF0TF1

IT1

011010101010矢量地址送PC高级中断请求送CPUIT0

01中断标志中断标志INT01IE0自然优先级矢量地址送PC“+1”TF10自然优先级矢量地址送PCEA“+1”“+1”EX0ET11P3.2P3.3P3.4P3.5二、中断控制89C51中断系统有以下四个特殊功能寄存器:①定时器控制寄存器TCON(用六位)②串行口控制寄存器SCON(用二位)③中断允许寄存器IE④中断优先级寄存器IP1、中断请求标志中断系统1)、定时/计数器控制寄存器TCON

TCON(88H)TF1

TF0

IE1

IT1

IE0IT0

INT1

INT0触发方式控制位0

低电平触发1

边沿↓触发

INT1

INT0外部中断请求标志1有有效触发时0

当CPU响应中断时T1T0溢出标志1

计数器“+1”有溢出时,并向CPU请求中断0

当CPU响应中断时,也可由指令清除TR1TR0由硬件自动由硬件自动上页下页中断请求标志可编程控制位TR1TR0由硬件自动由硬件自动在每个机器周期S5P2都采样引脚P3.3P3.2引脚00记录有无中断记录有无中断中断系统2)、串行口控制寄存器SCONTI:串行口发送中断标志在方式0,串行发送到第8位结束时,由硬件置“1”;或在其他方式中,串行发送到停止位的开始时,由硬件置“1”,RI:串行口接收中断标志上页下页在方式0,串行接收到第8位结束时,由硬件置“1”;或在其他方式中,串行接收到停止位的开始时,由硬件置“1”,“1”发送完一帧数据后“1”接收完一帧数据后必须由软件清“0”必须由软件清“0”

SCON(98H)

TIRI中断系统2、中断允许控制在中断源与CPU之间有二级中断允许控制逻辑电路,类似开关,其中第一级为一个总开关,第二级为五个分开关,由IE控制。应当指出:在89C51复位时,IE各位被复位成“0”状态,CPU因此而处于关闭所有中断状态。所以,在89C51复位以后,用户必须通过主程序中的指令来开放所需中断,以便相应中断请求来到时被CPU所响应。

中断系统中断允许寄存器IE

EA/

/

ES

ET1

EX1

ET0

EX0INT0INT1T1T0UARTCPU0

禁止1

允许0

禁止1

允许总中断总中断中断中断IE(A8)中断的开放和禁止是可控,可编程的ET2T2CPUIE的相应位被置“0”

或“1”

该相应中断即被“禁止”或“开放”上页下页中断系统3、中断优先级控制CPU同一时间只能响应一个中断请求。若同时来了两个或两个以上中断请求,就必须有先有后。!!!为此将5个中断源分成高级、低级两个级别,高级优先,由IP控制。中断系统1)、中断优先级寄存器IP

//

/

PS

PT1

PX1

PT0

PX0IP(B8)ET2INT0INT1T1T0UART0

低级1高级中断中断T2中断优先级是可控,可编程的上页下页2)、优先级结构中断优先级控制遵循的两个基本原则:⑴一个正在执行的低级中断服务程序,能被高优先级中断请求所中断,但不能被同优先级中断请求所中断。⑵一个正在执行的高级中断服务程序,不能被任何中断请求所中断,直到返回。中断系统实现这两个原则的方法:上页下页中断系统内部设置了两个不可寻址的优先级状态触发器。一个指出正在处理的是:高优先级中断,并阻止所有其他中断;另一个指出正在处理的是:低优先级中断,并阻止了除高优先级中断外的其他任何中断。高优先级状态触发器低优先级状态触发器是不可寻址的当CPU响应高级中断,并进入中断服务时“1”“1”RETI“0”当CPU响应低级中断,并进入中断服务时“1”RETI“0”

在同级的几个中断源中同时发生请求时,内部对同级的各中断源的优先级别有一个规定的查询顺序:外部中断请求

INT0定时/计数器T0定时/计数器T1串行口UART定时/计数器T2外部中断请求

INT1最高最低上页下页自然优先级自然优先级出厂前已由厂家固化顺序——事先约定中断优先原则:(概括为四句话)1、低级不打断高级2、高级不睬低级3、同级不能打断4、同级、同时中断,事先约定。CPU在执行主程序低级中断请求响应低级中断请求CPU执行低级中断服务程序高级中断请求响应高级中断请求CPU执行高级中断服务程序返回低级中断程序返回主程序二级中断嵌套的中断运行过程例:设89C51的片外中断为高优先级,片内中断为低优先级。试设置IP相应值。(a)用字节操作指令

MOVIP,#05H或MOV0B8H,#05H(b)用位操作指令

SETBPX0SETBPX1CLRPSCLRPT0CLRPT1IP§5.4中断响应及中断处理过程中断处理过程可分为三个阶段:①中断响应②中断处理③中断返回以外设提出接收数据为例,如右图:保护现场为外设服务恢复现场主程序KK+1NN+m返回中断处理一、中断响应1、中断响应条件:①有中断源发出中断请求;②中断总允许位EA=1,即CPU开中断;③申请中断的中断源的中断允许位为1,即中断没有被屏蔽;④无同级或更高级中断正在被服务;⑤当前的指令周期已经结束;⑥若现行指令为RETI或者是访问IE或IP指令时,该指令以及紧接着的另一条指令已经执行完。中断系统2、中断响应的过程

89C51的CPU在每个机器周期的S5P2期间顺序采样每个中断源,CPU在下一个机器S6期间按优先级顺序查询中断标志,如查询到某个中断标志为1,将在接下来的机器周期S1期间按优先级进行中断处理。中断系统通过硬件自动将相应的中断矢量地址装入PC,以便进入相应的中断服务程序。TCON中断系统

89C51单片机的中断系统中有两个不可编程的“优先级”触发器:一个是“高优先级生效”触发器;一个是“低优先级生效”触发器。

89C51单片机一旦响应中断,首先置位相应的中断“优先级生效”触发器,然后由硬件执行一条长调用指令LCALL,把当前PC值压入堆栈,以保护断点,再将相应的中断服务程序的入口地址送入PC,于是CPU接着从中断服务程序的入口开始执行。中断过程五个中断源:入口地址外部中断0(/INT0)0003HT0溢出中断000BH

外部中断1(/INT1)0013HT1溢出中断001BH

串口中断0023H各中断源及与之对应的矢量地址如下:中断系统编写中断服务程序时应注意:①在中断矢量地址单元处放一条无条件转移指令(如LJMPXXXXH),使中断服务程序可灵活地安排在64KB程序存储器的任何空间。②在中断服务程序中,用户应注意用软件保护现场,以免中断返回后丢失原寄存器、累加器中的信息。③若要在执行当前中断程序时禁止更高优先级中断,可以先用软件关闭CPU中断或禁止某中断源中断,在中断返回前再开放中断。3、对中断请求的撤销1)定时器溢出中断请求的撤除

2)串行口中断请求的撤除

TI和RI是串行口中断的标志位,中断系统不能自动将它们撤除,这是因为89C51进入串行口中断服务程序后常需要对它们进行检测,以测定串行口发生了接收中断还是发送中断。为了防止CPU再次响应这类中断,用户应在中断服务程序的适当位置处通过如下指令将它们撤除。

CLRTI;撤除发送中断CLRRI;撤除接收中断

3)外部中断请求的撤除

外部中断请求有两种触发方式:电平触发和边沿触发。①边沿触发方式中断请求的撤除②电平触发方式中断请求的撤除

在电平触发方式下,外部中断标志IE0或IE1是依靠CPU检测INT0或INT1上的低电平而置位的。尽管CPU响应中断时相应中断标志IE0或IE1能自动复位成“0”状态,但若外部中断源不能及时撤除它在INT0或INT1上的低电平,就会再次使已经变“0”的中断标志IE0或IE1置位,这是绝对不能允许的。因此,电平触发方式外部中断请求的撤除必须使INT0或INT1上的低电平随着其中断被CPU响应而变为高电平。4、中断响应时间

在实时控制系统中。为了满足控制速度要求,常要弄清CPU响应中断所需的时间。中断响应时间:中断请求有效(标志位置“1”)到转向中断入口地址所需的机器周期数。响应中断的时间有最短和最长之分:(1)最短需要3个机器周期M1M3M4M5M2S5P1S5P2INTi被采样并锁存到IE0IE1中CPU进行中断查询保护断点,长调用至入口中断服务即满足上述中断响应条件(2)最长需要8个周期若CPU在执行RETI(或访问IE/IP)指令的第一个机器周期中查询到有了某中断源的中断请求(设该中断源的中断是开放的),则89C51需要再执行一条指令才会响应这个中断请求。在这种情况下,CPU响应中断的时间最长,共需8个机器周期。二、中断处理CPU响应中断后即转至中断服务程序入口,执行中断服务程序。从中断服务程序的第一条指令开始到返回指令为止,这个过程称为中断处理或中断服务。不同的中断源服务的内容及要求各不相同,其处理过程也就有所区别。一般情况下,中断处理包括两部分内容:一是保护现场。二是为中断源服务。三、中断返回(1)使相应优先级状态触发器清0。(2)从堆栈中弹出栈顶的两个字节内容送PC——恢复断点。(3)CPU接着中断处继续执行原程序。恢复现场在中断服务程序中,最后一条指令必须为中断返回指令RETICPU执行该指令时,一方面清除中断响应时所置位的“优先级生效”触发器,另一方面从当前栈顶弹出断点地址送入程序计数器PC,从而返回主程序中断处理中推入堆栈的寄存器、累加器、标志位需要在执行返回指令RETI之前用软件从堆栈恢复,采用POP指令注意在中断服务程序中,PUSH和POP指令必须成对使用,否则,不能正确返回断点恢复现场期间,为了防止更高优先级中断破坏现场内容,需要关闭中断允许位EAP1.0P1.1P1.2P1.3INT0+5V89C51INT1装置1装置2装置3装置4图5-11多个外部中断源连接法二、中断加查询扩展中断源

利用89C51的两根外部中断输入线。每一中断输入线可以通过“线或”的关系连接多个外部中断源,同时利用输入端口线作为各中断源的识别线。具体线路见图5-11所示的多个外部中断源连接方法。§5.5外部中断扩展方法一、利用定时器扩展外部中断源有关中断服务程序的片断如下:

ORG0003HLJMPINTRP…INTRP:PUSHPSWPUSHAJBP1.0,DV1JBP1.1,DV2JBP1.2,DV3JBP1.3,DV4EXIT:POPAPOPPSWRETIDV1:…装置1的中断服务程序AJMPEXITDV2:…装置2的中断服务程序AJMPEXITDV3:…装置3的中断服务程序AJMPEXITDV4:…装置4的中断服务程序AJMPEXIT一、主程序1.主程序的起始地址89C51系列单片机复位后,(PC)=0000H0003H~002BH分别为各中断源的入口地址编程时应在0000H处写一条跳转指令(一般为长跳转指令),主程序是以跳转的目标地址作为起始地址开始编写,一般从0030H开始,如图所示0000HLJMP00300030H主程序§5.6中断程序举例矢量地址2、主程序的初始化内容初始化将用到的内部部件或扩展芯片进行初始工作状态设定。特殊功能寄存器初始化设置单片机复位后,特殊功能寄存器IE、IP内容均为00H,所以应对IE、IP进行初始化编程,以开放中断,允许某些中断源中断和设置中断优先级等。中断系统二、中断服务程序1.中断服务程序的起始地址中断系统对五个中断源分别规定了各自的入口地址,但这些入口地址相距很近(8个字节)如中断服务程序的指令代码少于8个字节,则可从规定的中断服务程序入口地址开始,直接编写中断服务程序如中断服务程序的指令代码大于8个字节,则应采用与主程序相同的方法,在相应的入口处写一条跳转指令,并以跳转指令的目标地址作为中断服务程序的起始地址进行编程矢量地址2、中断服务程序编制中的注意事项(1)视需要确定是否保护现场;(2)及时清除那些不能被硬件自动清除的中断请求标志,以免产生错误的中断;(3)中断服务程序中的压栈(PUSH)与出栈(POP)指令必须成对使用,以确保中断服务程序的正确返回;(4)主程序和中断服务程序之间的参数传递与主程序和子程序的参数传递方式相同。例:如图所示,将P1口的P1.4~P1.7作为输入位,P1.0~P1.3作为输出位。要求利用89C51将开关所设的数据读入单片机内,并依次通过P1.0~P1.3输出,驱动发光二极管,以检查P1.4~P1.7输入的电平情况(若输入为高电平则相应的LED亮)。现要求采用中断边沿触发方式,每中断一次,完成一次读/写操作。源程序:

ORG0000HAJMPMAINORG0003HAJMPINSERORG0030HMAIN:SETBEX0SETBIT0SETBEAHERE:SJMPHERE

中断服务子程序:

ORG0200HINSER:MOVA,#0F0HMOVP1,AMOVA,P1SWAPAMOVP1,ARETIEND中断请求(外部中断源)电平型外部中断的撤除电路源程序:

ORG0000HAJMPMAINORG0003HAJMPINSERORG0030HMAIN:SETBP3.0SETBEX0CLRIT0

温馨提示

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

评论

0/150

提交评论