资源描述
,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第5章 中断系统及其应用,教学目标:,介绍中断、中断源、中断系统的概念,介绍MCS-51中断系统及中断控制,介绍中断处理的过程 介绍中断应用程序的编程,学习要求:熟悉中断、中断源、中断效劳程序、保护现场、恢复现场、中断优先级、中断处理等概念;,掌握MCS-51中断入口地址和各中断控制存放器的每位含义及应用:包括定时器/计数器控制存放器TCON、串行口控制存放器SCON、中断允许控制存放器IE和中断优先控制器IP;,掌握中断初始化和中断效劳程序的编制。,5.1概述,中断技术是计算机中的重要技术之一。,引入中断技术作用:,1实时处理,提高计算机处理故障的能力;,2解决CPU和外设之间的速度匹配问题,提高CPU的效率。,本章将介绍中断的概念,并以MCS-51的中断系统为例介绍中断的处理过程及应用。,5.1.1中断的概念,中断是指中央处理器CPU正在执行程序,处理某件事情的时候,外部发生了某一事件,请求CPU马上处理,CPU暂时中断当前的工作,转入处理所发生的事件,处理完以后,再返回到原来被中断的地方,继续原来的工作。,实现中断功能的部件称为中断系统。,中断效劳程序中断之后所执行的处理程序通常称为中断效劳程序,原来运行的程序称为主程序。,断点主程序被断开的位置(地址)称为断点。,中断源引起中断的原因,或能发出中断申请的来源,称为中断源。,中断请求中断源要求效劳的请求称为中断请求或中断申请。,调用中断效劳程序与调用子程序的区别:,调用子程序指令在程序中是事先安排好的,而调用中断效劳程序事先却无法确知,因为“中断的发生是由外设决定的,程序中无法事先安排调用指令,因而调用中断效劳程序的过程是由硬件自动完成的。,5.1.2中断源,中断源,在中断系统中,将引起中断请求的设备或事件的来源,般统称为中断源。常见中断源:,1输入、输出设备中断源,一般计算机的输入、输出设备,如键盘、磁盘驱动器、打印机等,可通过接口电路向CPU申请中断。,2故障源,故障源是产生故障信息的来源。例如:CPU内部故障源,如除法中除数为零时的情况;外部故障源,如电源掉电情况。,在电源掉电时可以接入备用的电池供电,以保存存储器中的信息。当电压因掉电降到定值时,就发出中断申请,由计算机的中断系统完成替换备用电源的控制。,3实时中断源,在实时控制中,常常将被控参数、信息作为实时中断源。例如,电压、电流、温度等超越上限或下限时,以及继电器、开关闭合断开时,都可以作为中断源申请中断。,4定时计数脉冲中断源,内部定时计数中断是由单片机内部的定时器计数器溢出时自动产生的;外部定时/计数中断是由外部定时脉冲通过CPU的中断请求输入线或定时器计数器的输入线引起的。,5.1.3中断系统的一般功能,中断系统一般应具有如下功能:,1.实现中断及返回,当某一个中断源发出中断申请时,假设允许响应这个中断请求,CPU必须在现行的指令执行完后,把断点处的PC值(即下一条应执行的指令地址)压入堆栈保存起来,称为保护断点,这是由硬件自动完成的。,保护现场响应中断请求后,将有关的存放器内容和状态标志位压入堆栈保存起来,这称为保护现场。,恢复现场执行中断效劳程序后,恢复原保存的存放器的内容和标志位的状态,称恢复现场,并执行返回指令“RETI,这个过程通过用户编程来实现。,中断及返回过程如图51所示:,主 程 序,低级中断,高级中断,中断,中断,返回,返回,图5-2 中断嵌套流程图,执行中断服务程序,主程序,继续执行主程序,RETI,图5-1 中断流程图,2实现优先权排队,优先权给各中断源规定一个优先级别,称为优先权。,当两个或者两个以上的中断源同时提出中断请求时,计算机首先为优先权最高的中断源效劳,效劳结束后再响应级别较低的中断源。计算机按中断源级别上下逐次响应的过程称优先权排队。,这个过程可以通过硬件电路来实现,也可以通过程序查询来实现。,3实现中断嵌套,当CPU响应某一中断的请求而进行中断处理时,假设有优先权级别更高的中断源发出中断申请,CPU那么中断正在进行的中断效劳程序,并保存这个程序的断点(类似于子程序嵌套),响应高级中断,在高级中断处理完以后,再继续执行被中断的中断效劳程序。,中断嵌套示意图如图52所示。,中断申请的中断源的优先权级别与正在处理的中断源同级或更低时,CPU暂时不响应这个中断申请,直至正在处理的中断效劳程序执行完以后才去处理新的中断申请。,4.实现中断的撤除,在响应中断申请以后,返回主程序之前,中断请求应该撤除,否那么,就等于中断申请依然存在,这将影响对其它中断申请的响应。,MCS-51中断系统只能对一局部中断申请,在响应后自动撤除,使用中应注意。,5.2 MCS-51中断系统及中断控制,MCS-51的中断系统结构框图如图53所示,与中断有关的特殊功能存放器有4个,分别为中断源存放器(即专用存放器TCON和SCON的相关位)、中断允许控制存放器IE和中断优先级控制存放器IP。,MCS-51单片机有5个中断源,可提供两个中断优先级,即可实现二级中断嵌套。,图5-3 MCS-51的中断系统结构框图,5.2.1 MCS-51中断源及中断入口,MCS-51的中断源可分为三类:外部中断、定时中断和串行口中断。,1外部中断类,外部中断是由外部原因引起的,即外部中断0(INT0)和外部中断1(INT1):,INT0,外部中断0请求信号,,由P3.2引脚输入。由IT0(TCON0)决定中断请求信号是低电平有效还是下降沿有效。一旦输入信号有效,即向CPU申请中断,并且使IE01。,INT1,外部中断1请求信号,,由P3.3引脚输入。由IT1(TCON.2)决定中断请求信号是低电平有效还是下降沿有效。一旦输入信号有效,即向CPU申请中断,并且使IE11。,2定时中断类,定时中断是为满足定时或计数溢出处理的需要而设置的,当定时器计数器中的计数结构发生计数溢出时,即说明定时时间到或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志位,这种中断请求是在单片机芯片内部发生的,无需在芯片上设置引入端,但在计数方式时,中断源可以由单片机芯片外部引入。,TF0一定时器T0溢出中断请求。当定时器T0产生溢出时,其中断请求标志TF01,请求中断处理。,TF1定时器T1溢出中断请求。当定时器T1产生溢出时,其中断请求标志TF11,请求中断处理。,3串行口中断类,串行口中断是为串行数据的传送需要而设置的。,RI或TI串行中断请求。当接收或发送完一串行帧数据时,使内部串行口中断请求标志RI或TI1,并请求中断。,各中断源对应的中断效劳程序入口地址:,中断源 入口地址,外部中断0 0003H,定时器T0中断 000BH,外部中断1 0013,定时器T1中断 001BH,串行口中断 0023H,5.2.2 MCS-51中断请求 在中断请求被响应前,中断请求标志分别由特殊功能存放器TCON和SCON的相应位锁存。1TCON中的中断标志TCON控制存放器各位含义:TCON 8FH 8DH 8BH 8AH 89H 88H TFlT1溢出中断标志。T1被启动计数后,从初值开始加1计数,直至计满溢出后,由硬件使TFll,向CPU请求中断,此标志一直保持到CPU响应中断后,才由硬件自动清“0。也可用软件查询该标志,并由软件清“0。,TFl,TF0,IE1,IT1,IE0,IT0,(88H),TF0T0溢出中断标志。其操作功能类似于TF1。IE1INT1外部中断1标志。IE11说明外部中断1向CPU申请中断。IT1外部中断1触发方式控制位。1ITl0,外部中断1为电平触发方式,低电平有效。2ITl1,外部中断1控制为边沿先高后低的负跳变触发方式。IE0INT0外部中断0标志。其操作功能与IE1类同。IT0外部中断0触发方式控制位。其操作功能与IT1类同。,2SCON中的中断标志,SCON是串行口控制存放器,其低2位TI和RI锁存串口的发送中断和接收中断标志。其格式和各位含义如下:,SCON 99H 98H,TI串行发送中断标志。CPU将一个字节数据写入发送缓冲器SBUF后启动发送,每发送完一个串行帧,硬件置位TI。TI标志由软件去除。,RI串行接收中断标志。在串行口允许接收时,每接收完一个串行帧,硬件置位RI。RI标志由软件去除。,MCS51系统复位后,TCON和SCON中各位均被清“0。,98H,SMOD,TI,RI,5.2.3 中断允许控制,中断允许存放器IE格式和各位含义如下:,IE AFH ACH ABH AAH A9H A8H,EACPU中断总允许位。,EA1,CPU开放中断,每个中断源是被允许还是被禁止,分别由各自的允许位确定;,EA0,CPU屏蔽所有的中断请求,称关中断。,ES串行口中断允许位。ES1,允许串行口中断;ES0,禁止串行口中断,ET1一T1中断允许位。ET11,允许T1中断;ET10,禁止T1中断。,EX1外部中断l允许位。EX11,允许外部中断1中断;EXl0,禁止外部中断1中断。,ET0一T0中断允许位。ET0l,允许T0中断;ET00,禁止T0中断。,EX0外部中断0允许位。EX01,允许外部中断0中断;EX00,禁止外部中断0中断。,MCS5l系统复位后,IE中各中断允许位均被清“0,即禁止所有中断。,EA,ES,ET1,EX1,ET0,EX0,A8H,5.2.4 中断优先级,中断优先级系统设计人员给每个中断源,事先安排一个中断响应的优先顺序。然后按照轻重缓急的次序响应中断。中断源的这种优先顺序常被称为中断优先权级别,或简称中断优先级。,专用存放器IP统一管理中断优先级。它具有两个中断优先级,由软件设置每个中断源为高优先级中断或低优先级中断,并可实现两级中断嵌套。,高优先级中断源可以中断正在执行的低优先级中断效劳程序,除非在执行低优先级中断效劳程序时设置了CPU关中断或禁止某些高优先级中断源的中断。同级或低优先级的中断源不能中断正在执行的中断效劳程序。,专用存放器IP为中断优先级存放器,其格式和各位含义如下:,IP BCH BBH BAH B9H B8H,PS串行口中断优先级控制位。,PT1T1中断优先级控制位。,PX1外部中断l中断优先级控制位。,PT0T0中断优先级控制位。,PX0外部中断0中断优先级控制位。,以上对应位为1,高优先级;为0,低优先级。,当系统复位后,IP低5位全部清“0,将所有中断源设置为低优先级中断。,PS,PT1,PX1,PX1,PX0,B8H,自然优先级由硬件形成,排列次序如下:,中断源 自然优先级,外部中断0 最高级,定时器T0中断,外部中断1,定时器T1中断,串行口中断 最低级,当重新设置优先级时,那么顺序查询逻辑电路将会相应改变排队顺序。例如,给中断优先级存放器IP中设置的优先级控制字为11H,那么PS和PX0均为高优先级中断。当这两个中断源同时发出中断申请时,CPU将先响应自然优先级高的PX0的中断申请,而后响应自然优先级低的PS的中断申请。,5.2.5 中断响应时间,不同的情况对中断响应的时间不同:,1 最短的响应时间,需要5个机器周期。,调用指令本身要用2个机器周期,从外部中断请求有效到开始执行中断效劳程序的第一条指令,至少需要3个机器周期。,2如果遇到中断受阻的情况,中断响应时间会更长一些。,不同中断受阻情况,附加的等待时间为15个机器周期。,3假设系统中只有一个中断源,那么响应时间为38个机器周期。,4如果有两个以上中断源同时申请中断,那么响应时间将更长。,般情况下,可不考虑响应时间,但在精确定时控制的场合需要考虑此问题。,5.2.6 中断请求的撤除,CPU响应某中断请求后,在中断返回前,应该撤消该中断请求,否那么会引起另一次中断。,1定时器0或1溢出中断,CPU在响应中断后,中断请求自动撤除。,2边沿激活的外部中断,CPU在响应中断后,硬件自动去除有关的中断请求。,3串行口中断,CPU响应中断后,靠软件来去除相应的标志。,电平激活的外部中断撤除方法较
展开阅读全文