05第5章MCS-51的中断系统
- 格式:pdf
- 大小:432.99 KB
- 文档页数:44
MCS-51单⽚机的中断系统单⽚机中断技术概述在任何⼀款事件驱动型的CPU⾥⾯都应该会有中断系统,因为中断就是为响应某种事件⽽存在的。
中断的灵活应⽤不仅能够实现想要的功能,⽽且合理的中断安排可以提⾼事件执⾏的效率,因此中断在单⽚机应⽤中的地位是⾮常重要的。
单⽚机中断(Interrupt)是硬件驱动事件,它使得CPU暂停当前的主程序,转⽽去执⾏⼀个中断服务⼦程序。
为了更形象地理解中断,下⾯以学⽣上⾃习时接电话为例阐述⼀下中断的概念。
单⽚机的中断系统有5个中断源、2个中断优先级,可实现两级中断服务程序嵌套。
如果单⽚机没有中断系统,单⽚机的⼤量时间可能会浪费在查询是否有服务请求发⽣的定时査询操作上。
采⽤中断技术完全消除了单⽚机在査询⽅式中的等待现象,⼤⼤地提⾼了单⽚机的⼯作效率和实时性。
单⽚机中断系统结构及中断控制中断系统结构图如图5-2所⽰。
由图5-2可见,MCS-51中断系统共有5个中断请求源:INT0——外部中断请求0,中断请求信号由INT0引脚输⼊。
定时/计数器T0计数溢出发出的中断请求。
INT1——外部中断请求1,中断请求信号由INT1引脚输⼊。
定时/计数器T1计数溢出发出的中断请求。
串⾏⼝中断请求。
中断优先级从⾼到底排列。
单⽚机如何知道有中断请求信号?是否能够响应该中断?若5个中断源请求信号同时到来,单⽚机如何响应?这些问题都可以由中断寄存器来解决。
单⽚机中断寄存器有中断标志寄存器TCON和SCON、中断使能寄存器IE和中断优先级寄存器IP,这些寄存器均为8位。
中断标志寄存器5个中断请求源的中断请求标志分别由TCON和SCON的相应位锁存,单⽚机通过这些中断标志位的状态便能知道具体是哪个中断源正在申请中断。
TCON寄存器TCON寄存器为定时/计数器的控制寄存器,字节地址为88H,可位寻址。
特殊功能寄存器TCON的格式如图5-3所⽰。
TCON各标志位功能如下。
TF1——定时/计数器T1的溢出中断请求标志位。
第5章MCS-51单片机的中断系统【例5-1】设允许外部中断0和串行口中断,禁止其它中断源的中断申请。
试根据假设条件设置IE的相应值。
解:⑴用位操作指令来编写如下程序段:SETB EX0 ;允许外部中断0中断SETB ES ;允许串行口中断CLR EX1 ;禁止外部中断1中断CLR ET0 ;禁止定时器/计数器T0中断CLR ET1 ;禁止定时器/计数器T1中断SETB EA ;CPU开中断⑵用字节操作指令来编写:MOV IE, #91H【例5-2】设置中断优先级控制寄存器IP的初始值,使得8031的2个外中断请求为高优先级,其它中断请求为低优先级。
解:⑴用位操作指令SETB PX0;2个外中断为高优先级SETB PX1CLR PS ;串行口、2个定时器为低优先级中断CLR PT0CLR PT1⑵用字节操作指令MOV IP,#05H【例5-3】假设允许外部中断0中断,并设定它为高级中断,其它中断源为低级中断,采用跳沿触发方式。
在主程序中可编写如下程序段:SETB E A ;EA位置“1”,CPU开中断SETB E X0 ;EX0位置“1”,允许外部中断0产生中断SETB P X0 ;PX0位置“1”,外部中断0为高级中断SETB I T0 ;IT0位置“1”,外部中断0为跳沿触发方式【例5-4】根据图5-9的中断服务程序流程,编写出中断服务程序。
假设现场保护只需要将PSW寄存器和累加器A的内容压人堆栈中保护起来。
解一个典型的中断服务程序如下:INT: CLR E A ;CPU关中断PUSH PSW ;现场保护PUSH ASETB E A ;CPU开中断中断处理程序段CLR E A ;CPU关中断POP A ;现场恢复POP PSWSETB E A ; CPU开中断RETI ;中断返回,恢复断点上述程序有几点需要说明的是:⑴本例的现场保护假设仅仅涉及到PSW和A的内容,如果还有其它的需要保护的内容,只需要在相应的位置再加几条PUSH和POP指令即可。
第五章MCS-51单片机中断系统习题答案一、填空题1、中断允许寄存器,中断优先级寄存器。
2、电平触发,边沿触发(或答跳变触发)。
二简答题1、写出8052的中断源和相应的中断入口。
INT0 0003HT0 000BHINT1 0013HT1 001BHTI或RI 0023H2、8051单片机的中断优先级是如何排列的?硬件INT0 T0 INT1 T1 TI或RI软件通过IP定义两个优先级3、外部中断有哪几种触发方式?边沿触发和电平触发。
4、8052单片机程序存储器中的六个特殊单元是什么,各有何用途?0000H(PC),0003H(int0),000BH(c/T0),0013H(int1),001BH(c/T1),0023H(s口)。
4、三、程序设计1、8031芯片的INT0、INT1引脚分别输入压力超限及温度超限中断请求信号,定时器/计数器0作定时检测的实时时钟,用户规定的中断优先权排队次序为:压力超限温度超限定时检测要求确定IE、IP的内容,以实现上述要求。
解:(1)中断控制寄存器各位定义:D7:CPU中断允许位EA,应设为1D6:未定义,可为随意量,取为0D5:定时器/计数器2中断允许位ET2,可取0D4:串行口中断允许位ES, 可取0D3:定时器/计数器1中断允许位ET1, 应取0D2:外部中断1中断允许位EX1, 应取1D1:定时器/计数器0中断允许位ET0, 应取1D0:外部中断0中断允许位EX0, 应取1故IE=87H(2)由硬件确定的同一优先级中断源的优先权排队顺序如下:INT0-C/T0-INT1-C/T1-串行口中断-c/2MCS-51有两个中断优先级,中断优先权选择寄存器IP可对各中断源用软件进行编程,确定为高优先级中断还是低优先级中断。
因些可以用硬件与软件相结合的方法对中断源的优先级进行排序。
由题意,根据IP各位的定义:D7:未定义,可为随意量,取为0D6:未定义,可为随意量,取为0D5:定时器/计数器2优先权选择位PT2,可取0D4:串行口优先权选择位PS, 可取0D3:定时器/计数器1优先权选择位PT1, 应取0 D2:外部中断1优先权选择位PX1, 应取1,应接温度超限信号。