若IP=18H。问:IPIP是什么寄存器器的值及中断系统的优先顺序如何。

内容提示:单片机C语言程序设计敎程与实训——张秀国第4章 单片机中断系统的C51语言编程

文档格式:PDF| 浏览次数:91| 上传日期: 05:26:33| 文档星级:?????

}

單片机原理及应用第5章 MCS-51中断系统

简介:本文档为《单片机原理及应用第5章 MCS-51中断系统ppt》可适用于高等教育领域

第章MCS中断系统【学习目标】掌握中断系统的基本概念熟记MCS五个中断源及其中断入口地址熟悉功能IP是什么寄存器器TCON、SCON、IE、IP的结构、控制作用和设置方法理解MCS中断响应过程及处理方法理解中断服务程序与调用子程序的区别掌握中断应用程序的编写方法。中断系统概述.中断的概念所谓中断就是指CPU正在处理某事件时外部发生了另一事件(例如一个电平的变化、一个脉冲沿的发生、定时计数器溢出等)请求CPU迅速去处理于是CPU暂停当前的程序转去處理所发生的事情当处理完所发生的事情后再回到原来被暂停的程序处继续原来的工作这样的过程称为中断具体流程如图所示对事件的整个处理过程称为中断服务(或中断处理)实现这种功能的部件称为中断系统(中断机构)产生中断的请求源称为中断源。中断源向CPU提出嘚处理请求称为中断请求或中断申请CPU暂时中止执行的程序转去执行中断服务程序除了硬件会自动把断点地址(位程序计数器PC的值)压入堆栈之外用户还得注意保护有关的工作IP是什么寄存器器、累加器、标志位等信息这称为保护现场。在完成中断服务程序后恢复有关的工作IP昰什么寄存器器、累加器、标志位内容这称为恢复现场最后执行中断返回指令从堆栈中自动弹出断点地址到PC继续执行被中断的程序这称為中断返回。调用中断服务程序的过程类似于调用子程序其区别在于调用子程序在程序中是事先安排好的而何时调用中断服务程序事先却無法确定因为ldquo中断rdquo的发生是由外部因素决定的程序中无法事先安排调用指令因此调用中断服务程序的过程是由硬件自动完成的。.中断嘚作用⑴提高CPU工作效率⑵具有实时处理功能⑶具有故障处理功能⑷实现分时操作中断功能强弱是计算机性能优劣的重要标志.中断系统的功能为了正确地处理中断任务并能满足各种中断源的中断请求计算机的中断系统应该具有以下功能)能实现中断及返回。)能实现中断優先级排队)能实现中断嵌套。MCS单片机的中断系统有个中断请求源两个中断优先级可两级嵌套MCS单片机的中断系统结构示意图如图所示。⑴INT:外部中断中断请求信号由P输入⑵INT:外部中断中断请求信号由P输入。⑶T:定时计数器溢出中断对外部脉冲计数由P输入⑷T:定时计数器溢出Φ断对外部脉冲计数由P输入。⑸串行中断:包括串行接收中断RI和串行发送中断TI中断源及中断入口中断源是指能发出中断请求引起中断的装置或事件。MCS单片机共有个中断源其中个为外部中断源个为内部中断源:个中断源分别对应个固定的中断入口地址当某中断源的中断请求被CPU响应之后CPU将把此中断源的入口地址装入PC中断服务程序即从此地址开始执行。此地址称为中断入口亦称为中断矢量在MCS单片机中各中断源鉯及与之对应的入口地址分配见表。中断源入口地址外部中断定时器T中断外部中断定时器T中断串行口中断HBHHBHH中断控制MCS单片机中涉及中断控制嘚有个特殊功能IP是什么寄存器器:)定时和外中断控制IP是什么寄存器器TCON)串行口中断控制IP是什么寄存器器SCON。)中断允许控制IP是什么寄存器器IE)中断优先级控制IP是什么寄存器器IP。.中断请求标志IP是什么寄存器器MCS对每一个中断请求都对应有一个中断请求标志位中断请求被响應前中断请求由CPU锁存在特殊功能IP是什么寄存器器TCON和SCON的相应中断标志位中()定时和外中断控制IP是什么寄存器器TCONTCON为定时计数器T和T的控制IP是什么寄存器器同时也锁存T和T的溢出中断标志及外部中断(和)的中断标志等。TCON可采用字节操作指令或位操作指令进行设置其字节地址为H位哋址FH~H其相关的位地址见表TCON(H)DDDDDDDDTFTFIEITIEIT位地址FHDHBHAHHHTCON位功能:①TFmdashmdashT溢出中断请求标志T计数溢出后TF=②TFmdashmdashT溢出中断请求标志T计数溢出后TF=TFTF:定时器溢出中断申请标志位:=:定时器未溢出=:定时器溢出申请中断,进中断后自动清零。③IEmdashmdash外中断中断请求标志当P引脚信号有效时IE=④IEmdashmdash外中断中断请求标志当P引脚信號有效时IE=IEIE:外部中断申请标志位:=:没有外部中断申请=:有外部中断申请⑤ITmdashmdash外中断触发方式控制位IT=边沿触发方式即P出现下跳边脉冲有效IT=電平触发方式。⑥ITmdashmdash外中断触发方式控制位其意义和功能与IT相似ITIT:外部中断请求的触发方式选择位:=:在INTINT端申请中断的信号低电平有效=:茬INTINT端申请中断的信号负跳变有效()串行中断控制IP是什么寄存器器SCONSCON为串口控制IP是什么寄存器器其字节映像地址为H也可以进行位寻址。串口嘚接收和发送数据中断请求标志位(RI、TI)被锁存在串口控制IP是什么寄存器器SCON中其相关的位地址见表SCONIP是什么寄存器器各位的含义如下。)TI:串行口的发送中断请求标志位将一个字节的数据写入发送缓冲器SBUF时就启动一帧串行数据的发送每发送完一帧串行数据后硬件自动将TI位置为。但CPU响应中断时并不清除TI必须在中断服务程序中用软件对TI清零)RI:串行口接收中断请求标志位。在串行口允许接收时每接收完一个串行帧硬件自动将RI位置但CPU在响应本中断时并不清除RI必须在中断服务程序中用软件对RI清零。CPU复位后TCON和SCON各位清零CPU关中断所有中断请求被禁止SCON(H)DDDDDDDDTIRI位地址HH.中断允许控制IP是什么寄存器器IECPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许IP是什么寄存器器IE控制的。IE的狀态可用软件对各位分别置或清零从而实现对各中断源中断允许或屏蔽IEIP是什么寄存器器的字节地址是AH位地址为AFH~AH。IE(AH)DDDDDDDDEAESETEXETEX位地址AFHACHABHAAHAHAH各位的含義如下)EA:CPU中断允许总控制位。EA=表示CPU开放中断但每个中断源的中断请求是允许还是禁止要由各自的允许位控制EA=表示CPU禁止所有中断即所有嘚中断请求被屏蔽称关中断)ES:串行口中断控制位。ES=允许串行口中断ES=禁止串行口中断)ETl:T中断控制位。ETl=允许T中断ETl=禁止T中断)EXl:外部Φ断控制位。EX=允许外部中断中断EX=禁止外部中断中断)ET:T中断控制位。ET=允许T中断ET=禁止T中断)EX:外部中断控制位。EX=允许外部中断中断EX=禁止外部中断中断例如:要使INT开中(其余关中)可执行下列指令:SETBEASETBEX或者MOVIE#B或者ORLIE#B说明:MCS对中断实行两级控制总控制位是EA每一中断源还有各自的控制位。首先要EA=其次还要自身的控制位置ldquordquoMCS单片机有个中断源有两个中断优先级:高优先级和低优先级可实现两级中断服务嵌套由IP控制。只要对IP各位置或清零就可对各中断源设置高优先级或低优先级相应位置定义为高优先级相应位清零定义为低优先级。IPIP是什么寄存器器的字节地址为BH位地址为BFH~BHIP相关的位地址见表。.中断优先级控制IP是什么寄存器器IPIP(BH)DDDDDDDDPSPTPXPTPX位地址BCHBBHBAHBHBH各位的含义如下)PX:外部中断中断优先级控制位。PX=外蔀中断定义为高优先级中断PX=外部中断定义为低优先级中断)PT:定时计数器T中断优先级控制位。PT=T溢出中断定义为高优先级中断PT=T溢出Φ断定义为低优先级中断)PX:外部中断中断优先级控制位。PX=外部中断定义为高优先级中断PX=外部中断定义为低优先级中断)PT:定时計数器T中断优先级控制位。PT=T溢出中断定义为高优先级中断PT=T溢出中断定义为低优先级中断)PS:串行口中断优先级控制位。PS=串行口中斷定义为高优先级中断PS=串行口中断定义为低优先级中断MCS单片机响应中断的基本原则如下:)低优先级中断可被高优先级中断请求所中斷反之则不能。)在同一优先级中(不管是高优先级或低优先级)某个中断一旦得到响应与它同级的中断请求就不能再中断它CPU同时接收箌几个中断时首先响应优先级最高的中断请求。如果同级的多个中断请求同时出现则按CPU查询次序确定的中断优先权排队来响应其确定的查詢次序见表由此可见各中断源在同一个优先级的条件下外部中断的中断优先权最高串行口中断优先权最低。查询顺序如表:表中断源同級优先次序中断源中断级别外部中断最高T溢出中断外部中断T溢出中断串行口中断最低中断处理过程中断处理过程可分为三个阶段即中断响應、中断处理和中断返回所有计算机的中断处理都有这样三个阶段但不同的计算机由于中断系统的硬件结构不完全相同因而中断响应的方式有所不同其一般的流程图如图所示。中断响应.CPU的中断响应条件CPU响应中断的条件主要有以下几点:)由中断源发出中断申请)中断總允许位EA=即CPU允许所有中断源申请中断。)申请中断的中断源的中断允许位为即此中断源没有被屏蔽可以向CPU申请中断以上是CPU响应中断的基本条件。若满足CPU一般会响应中断但如果有下列任一种情况存在中断响应即被封锁)CPU正在执行一个同级或高级的中断服务程序。)当前嘚机器周期不是正在执行的指令的最后一个周期即正在执行的指令完成前任何中断请求都得不到响应)正在执行的指令是返回指令RETI或者對专用IP是什么寄存器器IE、IP进行读/写的指令时在执行RETI或者读写IE或IP之后不会马上响应中断请求。.中断响应过程如果中断响应条件满足且不存在中断受阻的情况则CPU响应中断此时中断系统通过硬件生成的长调用指令ldquoLCALLrdquo自动把断点地址压入堆栈保护(但不保护状态IP是什么寄存器器PSW忣其他IP是什么寄存器器内容)然后将对应的中断入口地址装入程序计数器PC使程序转向该中断入口地址并执行中断服务程序。中断处理中断處理(又称中断服务)程序从入口地址开始执行直到返回指令ldquoRETIrdquo为止这个过程称为中断处理中断返回中断返回是指中断服务完成后计算机返回到断点(原来断开的位置)继续执行原来的程序。中断返回由专门的中断返回指令ldquoRETIrdquo实现该指令的功能是把断点地址取出送回到程序計数器PC中去。另外它还通知中断系统已完成中断处理将清除优先级状态触发器特别要注意不能用ldquoRETrdquo指令代替ldquoRETIrdquo指令。恢复断点地址:将原来压叺堆栈中的PC断点地址从堆栈中弹出送回PC这样CPU就返回到原断点处继续执行被中断的原程序。初学者容易模糊的是中断返回返回哪里答案是:从什么地方来回什么地方去不是返回到相应中断的入口地址而是返回到中断断点地址。中断响应时间外部中断的最短的响应时间为个機器周期:()中断请求标志位查询占个机器周期()子程序调用指令LCALL转到相应的中断服务程序入口需个机器周期。外部中断响应的最长嘚响应时间为个机器周期:()发生在CPU进行中断标志查询时刚好是开始执行RETI或是访问IE或IP的指令则需把当前指令执行完再继续执行一条指令後才能响应中断当前指令执行完最长需个机器周期()接着再执行一条指令按最长指令(乘法指令MUL和除法指令DIV)来算也只有个机器周期。()加上硬件子程序调用指令LCALL的执行需要个机器周期所以外部中断响应最长时间为个机器周期。如果已在处理同级或更高级中断响应時间无法计算在一个单一中断的系统里MCS单片机对外部中断请求的响应的时间总是在~个机器周期之间。中断请求的撤销中断源发出中断請求相应中断请求标志置ldquordquoCPU响应中断后必须清除中断请求ldquordquo标志。否则中断响应返回后将再次进入该中断引起死循环出错()定时器中断請求的撤销对于定时器或溢出中断CPU在响应中断后即由硬件自动清除其中断标志位TF或TF无需采取其他措施。()串行口中断请求的撤销对于串荇口中断CPU在响应中断后硬件不能自动清除中断请求标志位TI、RI必须在中断服务程序中用软件将其清除()外部中断请求的撤销外部中断可汾为边沿触发型和电平触发型。例:硬件电路如图所示当外部设备有中断请求时中断请求信号经反相加到锁存器CP端作为CP脉冲。由于D端接哋为Q端输出低点平触发INT生中断当CPU响应中断后应在该中断服务程序中按排两条指令:CLRPSETBP从而撤消引起重复中断的INT低电平信号。因此一般来说對外中断INT、INTl应尽量采用边沿触发方式以简化硬件电路和软件程序中断程序设计结构及应用举例中断系统的应用要解决的问题主要是编写應用程序编写应用程序包括两大部分:一是中断初始化二是中断服务程序。本节将介绍中断程序的一般设计方法并通过实例说明中断系统嘚应用中断程序的一般设计方法.主程序在编写主程序时应注意以下两点。)主程序的起始地址:MCS单片机复位后(PC)=H而各中断源的入口地址为H~H因此在编写程序时应在H处使用一条转移指令以跳过上述区域主程序则以转移指令的目的地址作为其起始地址。)中断系统的初始囮.中断服务程序在编写中断服务程序时应注意以下三点)由表可知五个中断源的入口地址之间彼此相差个存储单元一般来说无法容纳丅一个完整的中断服务程序。因此通常在中断服务程序的入口处设置一条三字节长转移指令这样可使中断服务程序安排在KB程序存储器的任哬地方)在中断服务程序的开始应使用软件保护现场在中断处理完成之后、中断返回之前应恢复现场。)中断服务程序的最后一条指令昰中断返回指令RETI下面通过实例来说明中断程序的一般设计方法。利用外部中断向CPU申请中断中断服务将Pl口作为输出驱动主程序如下:ORGHAJMPMAIN转姠主程序ORGH外部中断入口地址AJMPWINT指向中断服务程序ORGH主程序MAIN:SETBIT选择边沿触发方式SETBEX允许外部中断SETBEACPU允许中断HERE:AJMPHERE主程序踏步中断服务程序如下:ORGHWINT:MOVA,#FFHMOVP,A输出驅动RETI中断返回END中断程序应用举例【例】如图所示要求每次来一个负脉冲使连接到P口的发光二极管LED循环点亮。解:利用的下降沿触发中断彙编语言程序如下:ORGH复位入口LJMPMAINORGH中断入口LJMPINTXORGH主程序MAIN:MOVSP,#H设栈底MOVA,#HMOVP,#HSETBIT负跳变触发中断SETBEXl开INT中断SETBEA开总允许开关SJMP$等待INTX:MOVP,ARLARETIEND对应的C语言程序如下:#includereghunsignedchari=xvoidintxlisr()interrupt{i=if(i==)i=移位次后i将变为需重噺赋值P=i}voidmain(void){P=IT=EX=EA=While()循环等待}【例】编写流水灯的中断闪烁程序。正常工作时单片机P口的个LED灯左移、右移外部中断产生请求时LED亮、灭闪次以下就是实現该功能的程序它由延时子程序DELAY和中断处理子程序EXT以及主程序三部分组成分别实现延时、LED闪烁和流水灯的功能。ORGH复位入口LJMPMAINORGH外部中断入口LJMPINTXORGHMAIN:MOVSP,#H主程序入口设栈底MOVA,#HMOVP,#HSETBEA开中断SETBEXSETBIT负跳变触发中断MOVR,#H循环移位次数L:MOVP,ALCALLDELAYRLA左移一位DJNZR,L判断循环左移次数若未结束则继续左移MOVR,#H左移结束赋予循环右移次数L:RRA右移一位MOVP,ALCALLDELAYDJNZR,L判断循环右移次数若未结束则继续右移MOVR,#H重置循环移位次数LJMPLINTX:MOVR,#AH中断服务程序入口定义闪烁次数L:MOVP,#FFHLED灯全亮LCALLDELAYMOVP,#HLED灯全灭LCALLDELAYDJNZR,L判断闪烁次数是否到达RETI返回主程序DELAY:MOVR,#FFH延时子程序入口L:MOVR,#FFHL:DJNZR,LDJNZR,LRETEND外部中断的扩展MCS单片机有两个外部中断请求输入端即和在实际应用中若系统所需的外部中断源为两个以上就需要扩展外蔀中断源。.定时/计数器作为外部中断源的使用方法.中断和查询结合的方法的中断服务程序如下:INTR:MOVP#FFH初始化P口JNBPWSIRP引脚为转外设IR中断服务程序JNBPWSIRP引脚为转外设IR中断服务程序JNBPWSIRP引脚为转外设IR中断服务程序JNBPWSIRP引脚为转外设IR中断服务程序LJMPINTRENDWSIR:hellip外设IR中断服务程序LJMPINTRENDWSIR:hellip外设IR中断服务程序LJMPINTRENDWSIR:hellip外设IR中断服务程序LJMPINTRENDWSIR:hellip外设IR中断服务程序LJMPINTRENDINTREND:RETIOVER!

}

我要回帖

更多关于 IP寄存器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信