您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 第五章80C51的中断系统
本章内容SingleChipMicrocomputer中断的概念中断请求源中断控制MCS-51中断系统的结构中断的处理过程及响应中断请求的条件第5章MCS-51单片机的中断系统外部中断的响应时间及外部中断触发方式选择中断请求的撤消日常中断的例子返回你正在专心看书,突然电话铃响,于是你记下正在看的书的页数,去接电话,接完电话后再回来接着看书。5.1中断的基本概念计算机中的中断概念返回中断是指由于某种随机事件的发生,计算机暂停现行程序的运行,转去执行另一程序,以处理发生的事件,处理完毕后又自动返回原来的程序继续运行。(比较:查询等待方法)将能引起中断的事件称为中断源。CPU处理中断事件的过程称为中断响应过程。处理随机事件的程序称为中断服务子程序。实现中断处理功能的部件称为中断系统。CPU转去中断子程序时,除硬件自动保护断点外,用户也需保护相关寄存器信息、标志位等,这称为保护现场;完成中断后,恢复相关寄存器内容、标志位等,称为恢复现场。从中断子程序返回到主程序断点处,继续执行主程序,称中断返回。P1口P3.0QDCPSD外部中断请求信号1INT0数据8031查询方式LOOP:JBIE0,SUB1JMPLOOPSUB1:5.2MCS-51中断系统结构中断源中断标志中断允许中断优先级中断寄存器MCS-51中断系统结构MCS-51的中断系统——中断源8051单片机有5个中断请求源:单片机INT0或外部输入中断源INT0INT1或外部输入中断源INT1T0片内定时器T0的溢出T1片内定时器T1的溢出串行口TI或RI片内串行口发送或接收中断源MCS-51的中断系统——中断标志CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中断源中断请求标志位每一个中断源都有相应的中断标志位;某一个中断源申请中断,相应中断标志位置1。中断标志位分别在定时器/计数器的控制寄存器TCON、串行口控制寄存器SCON中。INT0–P3.2INT1—P3.3T0—P3.4T1—P3.5MCS-51的中断系统——中断允许CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中断源中断请求标志位EA——总中断允许位,EA=1开放所有中断,EA=0,禁止所有中断;某一个中断源还有相应的中断允许位,1允许相应中断源的中断,0禁止相应中断源的中断。中断允许ESET0EX0EX1ET1EAMCS-51的中断系统——中断优先级CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TISI中断源中断请求标志位中断允许控制位在中断允许寄存器IE中;单片机中有两个中断优先级,即高优先级中断和低优先级中断,前者优先权高于后者(在程序中设置,相应位=1,为高优先级);同一优先级别的中断源按照自然优先级顺序确定优先级别(硬件形成,无法改变)。中断优先级控制位PX0、PT0、PX1、PT1、PS在中断优先级寄存器IP中。中断允许ESET0EX0EX1ET1EA自然优先级高低优先控制PSPT0PX0PX1PT1IE0TCONSCONINT0IT0=0IT0=1INT1IT1=0IT1=1TF0IE1TF1T0T1TIRITXDRXDESET0EX0EX1ET1EA自然优先级矢量地址高级中断请求自然优先级矢量地址低级中断请求PX0PT0PX1PT1PSIEIPMCS-51的中断系统结构图中断标志位中断源允许总允许中断优先级1010101010与中断请求及中断控制有关的控制寄存器有四个:TCON----定时/计数器的控制寄存器,SCON----串行口控制寄存器,IE----中断允许控制寄存器,IP----中断优先级控制寄存器。1.定时器/计数器的控制寄存器TCON8FH8DH8BH8AH89H88HTF1TF0IE1IT1IE0IT0中断请求标志触发方式选择0低电平1下降沿5.3中断请求及中断控制位地址TCON88HTCON寄存器——T0和T1控制寄存器TCONT1溢出中断标志(TCON.7):T1启动计数后,计满溢出由硬件置位TF1=1,向CPU请求中断,此标志一直保持到CPU响应中断后,才由硬件自动清0。也可用软件查询该标志,并由软件清0。8FH8DH8BH8AH89H88HTF1TF0IE1IT1IE0IT088H位地址外部中断INT1中断标志位(TCON.3):IE1=1,外部中断1向CPU申请中断外部中断INT1触发方式控制位(TCON.2):IT1=0,电平触发方式IT1=1,下降沿触发方式TCON寄存器——T0和T1控制寄存器注意:该寄存器可以位寻址。TCON8FH8DH8BH8AH89H88HTF1TF0IE1IT1IE0IT088H位地址返回TI(SCON.1)——串行发送中断标志。CPU将一个数据写入发送缓冲器SBUF时,就启动发送,每发送完一个串行帧,硬件置位TI。但CPU响应中断时,并不清除TI,必须由软件清除。RI(SCON.0)——串行接收中断标志。串行口接收完1个串行数据帧时,硬件置1RI。但CPU响应中断时,并不清0RI,必须由软件对RI清0。SCON寄存器——串行口控制寄存器SCON注意:该寄存器可以位寻址。98H位地址99H98HTIRIIE寄存器——中断允许寄存器EA—中断允许总控制;ES—串行口中断允许位;ET1、ET0—定时器/计数器T1、T0的溢出中断允许位;EX0、EX1—外部中断0和外部中断1的中断允许位;例:允许定时器T0中断:SETBEASETBET0或MOVIE,#82H注意:该寄存器可以位寻址。AFH--ACHABHAAHA9HA8HEA--ESET1EX1ET0EX00禁止,1允许IEA8H位地址51单片机有两个中断优先级——高级和低级专用寄存器IP为中断优先级寄存器,用户可用软件设定;系统复位时,均为低优先级;该寄存器可以位寻址例:设计程序,使2个外部中断请求MOVIP,#05H为最高优先级,其它为低优先级。(也可用位操作指令)IP寄存器——中断优先级寄存器---BCHBBHBAHB9HB8H---PSPT1PX1PT0PX0位地址IPB8H0低,1高串行口控制寄存器SCOND7D6D5D4D3D2D1D0TIRI串行中断请求标志中断允许控制寄存器IED7D6D5D4D3D2D1D0EA--ESET1EX1ET0EX0中断优先级控制寄存器IPD7D6D5D4D3D2D1D0---PSPT1PX1PT0PX00禁止,1允许0低级别,1高级别8FH8DH8BH8AH89H88HTF1TF0IE1IT1IE0IT0定时器/计数器的控制寄存器TCON0低电平1下降沿外部、定时计数中断请求标志;外部中断触发方式选择5.3中断请求处理过程及响应条件(书中5.5)一个中断请求被响应,必须满足以下必要条件:•CPU开中断,即IE寄存器中的中断总允许位EA=1;•该中断源发出中断请求,即该中断源对应的中断请求标志为1;•该中断源的中断允许位=1;•无同级或更高级的中断正在被服务。中断响应被封锁的情况:•CPU正在处理同级或更高级中断;•所查询的机器周期不是当前所正在执行指令的最后一个机器周期;(即当前指令执行完后才能响应中断)•正在执行指令RETI或访问IE或IP。单片机的中断为固定入口式中断,即一响应中断就转入固定入口地址执行中断服务程序。具体入口如下:中断源入口地址INT00003HT0000BHINT10013HT1001BHRI/TI0023H在这些单元中往往是一些跳转指令,跳到真正的中断服务程序,这是因为给每个中断源安排的空间只有8个单元。中断响应的处理过程:程序存储器ROM0000H:复位后,程序的入口地址(PC=0000H)0023H:串行口中断入口0003H:外部中断0入口000BH:定时器0溢出中断入口0013H:外部中断1入口001BH:定时器1溢出中断入口002AH使用时,通常在这些入口地址处存放一条跳转指令,使程序跳转到用户安排的中断服务程序起始地址上去!中断处理过程中断处理过程分为三个阶段:中断响应、中断处理和中断返回。中断响应中断处理(又称中断服务)中断返回中断请求的撤除中断响应中断返回中断响应中断响应:在满足CPU的中断响应条件之后,CPU对中断源中断请求予以处理。中断响应过程:保护断点地址;中断响应把程序转向中断服务程序的入口地址(通常称矢量地址)。特别注意:这些工作是硬件自动完成的!断点地址中断服务子程序的入口地址中断响应中断服务子程序入口地址又称为中断矢量或中断向量。中断响应单片机中5个中断源的矢量地址是固定的,不能改动。断点地址中断服务子程序的入口地址程序存储器ROM0000H:复位后,程序的入口地址(PC=0000H)0023H:串行口中断入口0003H:外部中断0入口000BH:定时器0溢出中断入口0013H:外部中断1入口001BH:定时器1溢出中断入口002AH包含T0中断服务子程序的程序结构:ORG0000HAJMPMAINORG000BHAJMPINTT0ORG0100HMAIN:...INTT0:...RETIENDAJMPMAINAJMPINTT0中断处理中断服务程序从入口地址开始执行,直到返回指令RETI为止,这个过程称为中断处理(或中断服务)。中断服务子程序一般包括两部分内容,一是保护和恢复现场,二是处理中断源的请求。中断响应入口地址RETI中断处理INTT0:PUSHACCPUSHDPHPUSHDPLPUSHPSW中断源服务POPPSWPOPDPLPOPDPHPOPACCRETI保护现场恢复现场中断返回中断返回是指中断服务完后,计算机返回到原来暂停的位置(即断点),继续执行原来的程序。中断返回由专门的中断返回指令RETI来实现。中断响应中断返回中断返回RETI指令功能:把断点地址取出,送回到程序计数器PC中去。另外,它还通知中断系统已完成中断处理,将清除优先级状态触发器。特别注意:不能用RET指令代替RETI指令!中断响应中断返回中断处理过程示意图中断源发中断请求中断响应条件是否满足?中断是否受阻?把PC断点地址压入堆栈相应中断源的中断入口地址送入PC,转向中断服务程序NYYN由硬件自动完成关中断保护现场中断服务开中断关中断恢复现场开中断中断返回断点地址由堆栈弹入PC保护现场和恢复现场的过程中不允许中断,以免现场遭到破坏。保护和恢复现场之后的开中断是为了允许有更高级中断打断此中断服务程序。中断服务程序硬件自动完成5.4中断请求的撤除CPU响应某中断请求后,在中断返回前,应该撤除该中断请求,否则会引起另一次中断。定时器0或1溢出:CPU在响应中断后,硬件清除了有关的中断请求标志TFO或TF1,即中断请求是自动撤除的。边沿激活的外部中断:CPU在响应中断后,也是用硬件自动清除有关的中断请求标志IE0或IE1。电平触发的外部中断:中断请求标志的撤消是自动的;但中断请求信号的低电平需考虑彻底消除,可用专门电路实现(图)。串行口中断:CPU响应中断后,没有用硬件清除T1、R1,故这些中断不能自动撤除,而要靠软件来清除相应的标志。CLRTI;清TI标志位CLRRI;清RI标志位P1.0INT08031QDCPSD外部中断请求信号1ORLP1,#01H;P1.0为1ANLP1,#0FEH;P1.0为0在中断服务程序中增加上面这两条指令,即可撤消低电平的中断请求信号。D触发器的SD端为直接置位端,只要在SD端加一负脉冲,即可使D触发器置1。外部中断的最短响应时间为3个机器周期;最长响应时间为8个机器周期。5.2.3.中断程序举例图为单片机数据传输示意图。外设数据经P1口输入单片机,每准备好一个数据,外设发出选通信号,经触发器和非门至INT0。P1口P3.0INT0数据8031QDCPSD外部中断请求信号1数据传送过程:外设每准备好一个数据后,发出选通信号,使触发器输出1再经非门得0至INT0,向CPU发出中断请求,CPU响应这个中
本文标题:第五章80C51的中断系统
链接地址:https://www.777doc.com/doc-3597458 .html