版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,第六章中断系统,6.1中断系统的结构及工作原理6.2中断处理过程6.3外部中断扩充方法6.4中断系统的应用举例思考练习题,6.1中断系统的结构及工作原理6.1.180C51中断系统的结构80C51系列单片机有5个中断源,52子系列单片机有6个中断源,可分为2个中断优先级,即高优先级和低优先级。每个中断源的优先级都可以由程序来设定。80C51的中断系统如图6-1所示,它由与中断有关的特殊功能寄存器和中断顺序查询逻辑等组成。,图6-180C51中断系统,中断顺序查询逻辑亦称硬件查询逻辑,5个中断源的中断请求是否会得到响应,要受中断允许寄存器IE各位的控制,它们的优先级分别由IP各位来确定。同一优
2、先级内的各中断源同时请求中断时,由内部的硬件查询逻辑来确定响应次序。不同的中断源有不同的中断矢量,中断源矢量地址如表6-1所示。52子系列的中断系统与80C51系列类同,只不过增加了一个T2中断源。,表6-180C51中断源的矢量地址,(2)TF0和TF1:定时器0和定时器1的溢出中断。当T0或T1计数器加1计数产生溢出时,则将TCON中的TF0或TF1置位,向CPU申请中断。(3)RI和TI:串行口的接收和发送中断。当串行口接收或发送完一帧数据时,将TCON中的RI或TI置位,向CPU申请中断。当某中断源的中断请求被CPU响应之后,CPU将自动把此中断源的入口地址装入PC,中断服务程序从此地
3、址开始执行。由于相邻中断源的入口地址之间只有8个字节,因此一般在中断源的入口地址处存放一条绝对跳转指令,可以跳转到用户安排的中断服务程序的入口处。,串行口的中断请求标志由串行口控制寄存器SCON的D0和D1位来设置。RI为接收中断标志位,TI为发送中断标志位。中断申请的过程如下:(1)发送过程,CPU对发送缓冲器SBUF的一次写入操作启动发送,每发送完一帧数据,由硬件自动将TI置位,但CPU响应中断时并不能清除TI位,所以必须由软件清除。(2)接收过程,在串行口允许接收时即可串行接收数据,一帧数据接收完毕,由硬件自动将RI位置位。同样CPU响应中断时不能清除RI位,必须由软件清除。,2中断开放
4、和屏蔽80C51系列单片机中设有一个专用寄存器IE,称为中断允许寄存器,其作用是用来对各中断源进行开放或屏蔽控制。其各位的定义如下:EA:CPU中断允许。EA=1,CPU开放中断,而每个中断源是开放还是屏蔽分别由各自的允许位确定;EA=0,CPU关中断,禁止一切中断。,ES:串行口的中断允许位,ES=1,允许串行口接收和发送中断;ES=0,禁止串行口中断。ET1:定时器1中断允许位。ET1=1,允许T1中断,否则禁止中断。EX1:外部中断1的中断允许位。EX1=1,允许外部中断1中断,否则禁止中断。ET0:定时器0中断允许位。ET0=1,允许T0中断,否则禁止中断。EX0:外部中断0的中断允许
5、位。EX0=1,允许外部中断0中断,否则禁止中断。ET2:定时器2中断允许位,仅用于52子系列单片机中断。,ET2=1,允许定时器2中断,否则禁止中断。系统复位后,IE各位都为0,即禁止所有中断。IE寄存器可以位寻址也可以字节寻址。3中断优先级设定80C51单片机的中断分为两个优先级,每个中断源的优先级都可以通过中断优先级寄存器IP中的相应位来设定。IP各位的定义如下:,IP.7和IP.6为保留位。PT2(IP.5):定时器2优先级设定位,仅适用于52子系列单片机。PT2=1时,设定为高优先级,否则为低优先级。PS(IP.4):串行口优先级设定位。PS=1时,串行口设定为高优先级,否则为低优先
6、级。PT1(IP.3):定时器1优先级设定位。PT1=1时,定时器1设定为高优先级,否则为低优先级。PX1(IP.2):外部中断1优先级设定位。PX1=1时,外部中断1设定为高优先级,否则为低优先级。PT0(IP.1):定时器0优先级设定位。PT0=1时,定时器0设定为高优先级,否则为低优先级。,PX0(IP.0):外部中断0优先级设定位。PX0=1时,外部中断0设定为高优先级,否则为低优先级。当系统复位后,IP各位均为0,所有中断源设置为低优先级中断。IP也是可以进行字节寻址和位寻址的特殊功能寄存器。4优先级结构通过设置IP寄存器中的各位,把中断源的优先级分为高、低两级,它们遵循以下基本原则
7、:(1)低优先级中断可以被高优先级中断所中断,反之则不能。,(2)一种中断(无论是高优先级还是低优先级)一旦得到响应,则与它同级的中断不能再中断它。为了实现这两条规则,中断系统内部有两个不可寻址的优先级激活触发器,其中一个指示某高优先级的中断正在得到服务,所有后来的中断都被阻断。另一个触发器指示某低优先级的中断正在得到服务,所有同级的中断都被阻断,但不阻断高优先级的中断。当CPU同时收到几个同一优先级的中断请求时,哪一个的请求将得到服务,取决于内部的硬件查询顺序,CPU将按自然优先级顺序确定应该响应哪个中断请求。其自然优先级由硬件形成,排列如下:,在每个机器周期中,CPU对所有的中断源都顺序地
8、检查一遍,这样到任一机器周期的S6状态,可找到所有已激活的中断请求,并排好了优先级。在下一个机器周期的S1状态,只要不受阻断就开始响应其中最高优先级的中断请求。若发生下列情况,则中断响应会受到阻断:(1)同级或高优先级的中断正在进行中。(2)现在的机器周期还不是执行指令的最后一个机器周期,即正在执行的指令还没有执行完前,不响应任何中断。,(3)正在执行的是中断返回指令RETI或是访问特殊功能寄存器IE或IP的指令。换言之,在RETI或者在读/写IE(IP)之后,不会马上响应中断请求,至少要在执行其它一条指令之后才会响应。若存在上述任一种情况,则中断查询结果就被取消。否则,在紧接着的下一个机器周
9、期,中断查询结果变为有效。,6.2中断处理过程中断处理过程可分为三个阶段,即中断响应、中断处理和中断返回。各种单片机中断系统的硬件结构不同,中断响应的方式也就不同。以下说明80C51单片机的中断处理过程。6.2.1中断响应1中断响应的条件CPU响应中断的条件有:(1)有中断源发出中断请求。(2)中断总允许位EA=1,即CPU开中断。(3)申请中断的中断源的中断允许位为1,即没有被屏蔽。,以上条件满足,一般CPU会响应中断,但在上一节中所述的中断受阻的情况下,本次的中断请求CPU不会响应。2中断响应的过程如果中断响应条件满足,而且不存在中断受阻的情况,则CPU响应中断。在此情况下,CPU首先使被
10、响应中断的相应优先级激活触发器置位,以阻断同级和低级中断。然后根据中断源的类别,在硬件的控制下内部自动形成长调用指令(LCALL),此指令将自动把断点压入堆栈,但不自动保护PSW的内容。最后将对应的中断源的地址装入程序计数器PC,使程序转向该中断的入口。80C51的中断源入口地址见表6-1。,如果遇到中断受阻的情况,则中断响应时间会更长一些。例如,一个同级或高优先级的中断正在进行,则附加的等待时间将取决于正在进行的中断服务程序。如果正在执行的一条指令还没有到最后一个机器周期,附加的等待时间为13个机器周期,因为一条指令的最长执行时间为4个机器周期(MUL和DIV指令),如果正在执行的是RETI
11、指令或者是读/写IE或IP的指令,则附加的时间在5个机器周期之内(为完成正在执行的指令,还需要1个机器周期,加上为完成下一条指令所需的最长时间为4个周期,故最长为5个机器周期)。若系统中只有一个中断源,则响应时间在38个机器周期之间。,6.2.2中断处理CPU响应中断后即转至中断服务程序入口。从中断服务程序的第一条指令开始到返回指令结束为止,这个过程称为中断处理或称中断服务。不同的中断服务的内容及要求各不相同,其处理过程也就有所区别。一般情况下,中断处理包括两部分内容:一是保护现场;二是中断服务。现场通常有PSW、工作寄存器、专用寄存器等。如果在中断服务程序中要用这些寄存器,则在进入中断服务之
12、前应将它们的内容保护起来,称为保护现场;同时在中断结束指令RETI之前应恢复现场。中断服务是针对中断源的具体要求进行处理的。,用户在编写中断服务程序时应注意以下几点:(1)各中断源的入口矢量地址之间只相隔8个单元,是容纳不下一般的中断服务程序的,因而最常用的方法是在中断入口矢量地址单元处存放一条无条件转移指令,将中断服务程序转到存储器其它的空间去。(2)若要在执行当前中断程序时禁止更高优先级中断,应用软件关闭CPU中断,或屏蔽更高级中断源的中断,在中断返回前再开放中断。,(3)在保护现场和恢复现场时,为了不使现场信息受到破坏或造成混乱,一般在此情况下应关CPU中断,使CPU暂不响应新的中断请求
13、。这样就要求在编写中断服务程序时,应注意在保护现场之前要关中断,在保护现场之后若允许高优先级中断打断它,则应开中断。同样在恢复现场之前应关中断,恢复之后再开中断。中断处理流程见图6-2。,图6-2中断处理流程,6.2.3中断返回中断处理程序的最后一条指令是中断返回指令RETI。它的功能是将断点弹出送回PC中,使程序能返回到原来被中断的程序处继续进行。80C51的RETI指令除了弹出断点之外,它还通知中断系统已完成中断处理,并将“优先级激活”触发器清除(该触发器在响应中断时被置位),这一点应与子程序区分开来。,6.2.4中断请求的撤消CPU响应中断请求后,在中断返回(RETI)之前,该中断请求应
14、撤消,否则会引起另一次中断。80C51中断源请求撤消的方法各不相同。(1)对于定时器0和定时器1的溢出中断,CPU在响应中断后,就由硬件自动清除了TF0和TF1标志位,即中断请求自动撤消,无需其他措施。(2)外部中断请求的撤消与设置的中断触发方式有关。对于边沿触发方式的外部中断,CPU在响应中断后,也由硬件自动将IE0或IE1标志位清除,无需采取其它措施。,图6-3撤消外部中断请求的方案之一,(3)串行口的中断,CPU响应后,硬件不能自动清除TI和RI标志位,因此在CPU响应中断后,必须在中断服务程序中,用软件方法来清除相应的中断标志位,以撤消中断请求。,6.3.1利用定时器扩充外部中断源法8
15、0C51单片机有两个定时器,具有两个内部中断标志和外部计数输入引脚。当定时器设置为计数方式,计数初值设为满量程FFH时,一旦外部信号从计数器引脚输入一个负跳变信号,计数器加1产生溢出中断,从而可以转去处理该外部中断源的请求。因此我们可以把外部中断源作为边沿触发输入信号,接至定时器的T0(P3.4)或T1(P3.5)引脚上,该定时器的溢出中断标志及中断服务程序作为扩充外部中断源的标志和中断服务程序。具体实现读者可自行考虑。,PUSHAJBP1.0,DV1JBP1.1,DV2JBP1.2,DV3JBP1.3,DV4EXIT:POPAPOPPSWRETIDV1;装置1的中断服务程序AJMPEXITD
16、V2,;装置2的中断服务程序AJMPEXITDV3;装置3的中断服务程序AJMPEXITDV4;装置4的中断服务程序AJMPEXIT,图6-4多外部中断连接方法,6.3.3矢量中断扩充法所谓矢量,可以理解成一个地址信息,它的低8位由申请中断的外设(中断源)提供,高8位可由CPU提供。CPU根据这个矢量地址形成中断服务程序的入口地址。此种方法与中断和查询结合法相比,CPU响应中断转至中断服务程序入口的时间快,处理及时。矢量中断扩充法的主要特点及要求如下:(1)各中断源的中断服务程序入口地址均不相同。(2)当发生中断时,各中断源不仅能向CPU发出中断请求,而且能根据中断的优先级自动提供一个中断矢量
17、。,图6-5外部中断功能扩充电路,表6-274HC148真值表,表6-38个中断源的矢量,其中,PAGE为内部RAM中任何一个可以直接寻址的存储单元地址,该单元的内容可以事先写入,它的内容就作为中断矢量的高8位地址(或称页地址,1页为256字节)和CPU读取的中断矢量一起构成16位地址。,8个中断服务程序的入口地址放在同一页上,如果页地址为10H,则INTR7INTR0的入口地址分别为1000H,1010H,1020H,1070H。如果改变页地址,各中断服务程序入口地址也相应改变。各中断服务程序都要以下面两条指令结束:POPA;恢复A的内容RETI;中断服务结束返回,引导程序1中巧妙地使用了R
18、ET指令,它可以把刚刚压入堆栈的中断矢量和页地址弹出来送到程序计数器PC中去,使程序转移到对应中断源的中断服务程序入口处。有时,我们并不希望所有中断服务程序入口地址都在同一页上,甚至希望为一个中断源设置两个或两个以上的中断服务程序,在不同的时刻或不同的状态下使用不同的中断服务程序。此时,可以采用下面的引导程序2。,这里,中断矢量不再作为入口地址的一部分,仅仅起到一个指针的作用,按这个指针的指向,在内部RAM的一个存储单元中取出该中断服务程序入口地址的高8位,并与其值为00H的低8位一起构成16位的入口地址。入口地址的高8位可事先填入到这个存储单元中。如果在不同的时候填入不同的内容则形成了不同的
19、入口地址,这样就可以使一个中断源具有了多个中断服务程序。若各中断服务程序入口地址高8位的存放位置为:INTR0在内部RAM的7FH单元中,INTR1在7EH中,INTR2在7DH中,INTR7在78H中,即事先在7FH78H单元中填入不同的值,就可以得到对应中断源的不同入口地址。,6.4中断系统的应用举例本节通过几个实例说明中断系统的应用,让读者了解中断控制和中断服务程序的设计方法。从软件角度看,中断控制实质上是对4个特殊功能寄存器TCON、SCON、IE和IP进行管理和控制。只要这些寄存器的相应位按照人们的要求进行状态预置,CPU就会按人们的意志对中断源进行管理和控制。在80C51中,管理和
20、控制的项目有:(1)CPU开中断与关中断;(2)某个中断源中断请求的允许或屏蔽;,(3)各中断源优先级别的设定;(4)外部中断的触发方式。中断管理和控制程序一般都包含在主程序中,根据需要通过几条指令来调用。中断服务程序是一种具有特定功能的独立程序段,根据中断源的具体要求进行服务。下面举例说明。例6-1用定时器1定时,由P1.0输出周期为2min的方波。已知fosc=12MHz。解此例要求P1.0输出方波的周期较长,用一个定时器无法实现长时间的定时,可用定时器加软件计数的方法或是两个定时器合用的方法来实现。下面分别介绍这两种方法。,方法1:用定时器T1定时10ms;加软件定时1min。nCoun
21、ter2单元作ms的计数单元,需计数1s/10ms=100次;nCounter1单元作s的计数单元,需计数1min/1s=60次。T1的计数初值,方法2用两个定时器实现长时间定时,两个定时器中一个定时,另一个计数,定时的时间到可以输出一个控制信号作为另一定时器的计数脉冲。具体方法如下(线路连接见图6-6):设T0定时60ms,模式1;T1计数。当T060ms定时时间到时,控制P1.2输出方波作为T1的计数脉冲(P1.2的输出与T1(P3.5)连接起来);T1计满溢出,控制P1.0输出脉宽为2min的方波,T0的计数初值T1的计数初值,图6-6方法2线路图,注意:方法2中P1.0输出的是脉宽为2min的方波。由此程序可知,定时器仅在初始化和计满溢出产生中断时,才占用CPU的工作时间,一旦启动之后,定时器的定时、计数过程全部是独立运行的,因而采用中断后使CPU有较高的工作效率。例6-2用80C51单片机的定时器和中断功能试制一个航标灯(设fosc=12MHz),具有如下功能:(1)航标灯在黑夜应能定时发光,设定时间间隔为2s,即亮2s,熄灭2s,周期循环进行。(2)当白天到来时,航标灯应熄灭,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026江苏对口招生考试(数学)历年参考题库含答案详解
- 2026机械工程师资格考试(综合素质与技能)历年参考题库含答案详解
- 2026教师职称-江苏-江苏教师职称(基础知识、综合素质、小学美术)历年参考题库含答案详解3套试卷
- 基于Agent的自动化测试框架原理教程课程设计
- PCA降维图像处理应用课程设计
- 苯-甲苯精馏课程设计
- OpenCV人脸检测系统开发实战课程设计
- 泵与风机课程设计目的
- 政企共建联建方案范本
- 机器学习垃圾邮件分类案例课程设计
- 《电动自行车用蓄电池健康状态等级分类评价要求》(征求意见稿)
- 石油焦培训教学课件
- 中医护理在妇科产后康复中的应用
- 幼儿园家园共育活动记录范例
- 苏州市安全生产专家管理办法
- 专利法考试题库及答案
- 2026年语文中考试卷真题及答案
- 课程顾问培训流程
- 无人机电池技术与应用
- 信息科技七年级上册开学第一课(川教版2024)
- T/CNHAW 0010.1-2022激光角膜屈光手术技术规范第1部分:准分子激光角膜屈光手术
评论
0/150
提交评论