您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > 第5章 中断系统及定时计数器
第5章中断系统及定时/计数器中断的基本概念和MCS-51中断系统的结构。MCS-51定时/计数器的组成。定时/计数器的四种工作方式。MCS-51中断系统和定时/计数器的使用方法。本章主要内容5.1MCS-51单片机的中断系统5.2中断系统的编程和应用举例5.3MCS-51单片机的定时/计数器5.4定时/计数器应用举例5.1MCS-51单片机的中断系统5.1.1MCS-51中断系统的结构及功能1.中断的概念看电视中断处理中断请求中断返回电话铃响接听电话看电视主程序事件发生事件处理主程序实际生活计算机主程序A响应返回断点RETI……中断服务程序B图5.1中断过程示意图5.1MCS-51单片机的中断系统中断:在计算机执行程序的过程中,当外部设备发生某一事件去请求CPU处理时(中断发生);CPU暂时中断当前程序的执行,转去处理所发生的事件(中断响应和中断服务);待处理完毕后,再返回来执行原来被中断的程序(中断返回),这一处理过程称之为中断。中断要注意2点:保护断点和保护现场5.1.1MCS-51中断系统的结构及功能中断源:引起CPU中断的根源,称为中断源。中断请求:中断源向CPU提出的处理请求,称中断请求或中断申请。中断响应:CPU暂时中断原来的事物A,转去处理事件B的过程,称中断响应过程。中断服务:对事件B的整个处理过程,称中断服务。中断返回:处理完毕后,再回到原来被中断的地方(即断点),称中断返回。中断系统:实现上述中断功能的部件称为中断系统。5.1.1MCS-51中断系统的结构及功能IE0TCONSCONINT0IT0=0IT0=1INT1IT1=0IT1=1TF0IE1TF1T0T1TIRITXDRXDESET0EX0EX1ET1EA自然优先级矢量地址高级中断请求自然优先级矢量地址低级中断请求PX0PT0PX1PT1PSIEIP中断标志位中断源允许总允许EA中断优先级5.1.1MCS-51中断系统的结构及功能2.MCS-51中断系统的结构MCS-51系列单片机的中断系统有5个中断源分别是:,,T0,T1和串行端口。0INT1INT3.中断的功能(1)提高CPU的工作效率(2)处理故障(3)实现实时控制(4)实现人机交互5.1.1MCS-51中断系统的结构及功能5.1.2中断源与中断请求1.中断源(5个)INT0(P3.2):由IT0选择为低电平有效还是下降沿有效。此引脚上出现有效的中断信号时,中断标志IE0置1,申请中断。INT1(P3.3):由IT1选择为低电平有效还是下降沿有效。此引脚上出现有效的中断信号时,中断标志IE1置1,申请中断。TF0(TCON.5):片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,向CPU申请断。TF1(TCON.7):片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,向CPU申请中断。RI、TI(RX、TX):串行口中断请求标志。5.1.2中断源与中断请求当串行口接收完一帧数据时置位RI当串行口发送完一帧数据时置位TI向CPU申请中断。2.中断申请标志(TCON和SCON)(1)定时/计数器控制寄存器TCONTF1TR1TF0TR0IE1IT1IE0IT0TCON(88H)IT0(TCON.0):外中断0触发方式控制位。IT0=0,电平触发方式。IT0=1,边沿触发方式(下降沿有效)。IE0(TCON.1):外中断0中断请求标志位。IE0=1时,表示INT0向CPU请求中断TF0,T0溢出中断请求标志位。当定时/计数器0的加1计数器由0FFH→00H时(称溢出),由硬件置位TF0,向CPU产生中断请求,CPU响应中断时,TF0由硬件自动清0。IT1、IE1、TF1类同5.1.2中断源与中断请求(2)串行口控制寄存器SCONSCON(98H)SM0SM1SM2RENTB8RB8TIRIRI(SCON.0):串行口接收中断请求标志位。TI(SCON.1):串行口发送中断请求标志位。注意:RI和TI由硬件置位、由软件清除。5.1.2中断源与中断请求中断请求的撤出对于定时器T0、T1及边沿触发的外部中断INT0、INT1,CPU在响应中断后由硬件自动清除相应的中断请求标志(TF0、TF1、IE0、IE1),即自动撤出了中断请求。对于串行口中断,CPU响应中断后必须由用户用软件清除相应的中断标志位(CLRTI、CLRRI)。对于电平触发方式,由于CPU对外部中断INT0、INT1引脚没有控制作用,因此需要外接电路来撤出中断请求信号。(即使INT引脚变为高电平,即可撤出中断请求信号。)外部中断的请求与撤出中断允许控制EAESET1EX1ET0EX0IE(A8H)EX0:外中断0允许位;ET0:T0中断允许位;EX1:外中断0允许位;ET1:T1中断允许位;ES:串口中断允许位;EA:CPU中断允许(总允许)位。某位置1:表示中断允许某位置0:表示中断禁止5.1.3中断允许控制【例5-1】假设允许打开及定时/计数器T0、T1中断,禁止其他中断,试对IE进行设置。INT1解:由给定条件IE应为10001110B。(1)用字节操作指令MOVIE,#8EH或MOVA8H,#8EH(2)用位操作指令SETBEASETBET1SETBEX1SETBET05.1.3中断允许控制中断优先级控制PSPT1PX1PT0PX0IP(B8H)IP寄存器各位的含义如下:PX0:外中断0优先级设定位;PT0:T0优先级设定位;PX1:外中断0优先级设定位;PT1:T1优先级设定位;PS:串口优先级设定位。某位为1:高优先级某位为0:低优先级5.1.4中断优先级控制各中断源响应优先级及中断服务程序入口表如下:中断源中断标志中断服务程序入口优先级顺序外部中断0IE00003H高定时/计数器0(T0)TF0000BH↓外部中断1IE10013H↓定时/计数器1(T1)TF1001BH↓串行口中断RI或TI0023H低5.1.4中断优先级控制中断优先级三条原则:同时收到几个中断时,响应优先级别最高的中断过程不能被同级、低优先级所中断低优先级中断服务,能被高优先级中断有2个优先级状态触发器:高优先级状态触发器低优先级状态触发器中断源有中断请求,且CPU响应该中断申请时,置位相应的优先级状态触发器【例5-2】将T1定义为最高优先级,其他中断定义为低优先级,如何设置IP?解:只要使PT1=1,即将00001000B(08H)送入IP即可。MOVIP,#08H或:SETBPT15.1.4中断优先级控制MCS-51单片机的中断处理过程可分为三个阶段中断响应中断处理中断返回5.1.5中断处理过程5.1.5中断处理过程1.中断响应中断响应条件中断源有请求对应中断允许位为1;开中断(即EA=1)。同时满足时,才可能响应中断。5.1.5中断处理过程—中断响应中断服务的进入:每个周期的S5P2,采样各中断源。采样值在下一个周期按优先级和内部顺序查询。某中断标志在上一个周期的S5P2被置1,它将于查询周期被发现。CPU便执行一条硬件LCALL指令,转向中断向量的特定地址单元,进入相应的中断程序。5.1.5中断处理过程—中断响应硬件受阻,不产生LCALL的几种情况:正在处理同级或高优先级中断;当前查询的机器周期不是所执行指令的最后一个机器周期。正执行的指令为RET、RETI或任何访问IE或IP的指令(只有在这些指令后面至少再执行一条指令时才能接受中断请求)。受阻未得到响应的中断,若条件消失时该中断标志已不再有效,该中断将不被响应。5.1.5中断处理过程—中断响应S1保护断点,长调用至入口中断服务S2S3S4S5S6S1S2S3S4S5S6S1S2S3S4S5S6S1S2S3S4S5S6S1S2S3S4S5S6标志查询标志锁存ε中断有效M1M2M3M4M5中断响应(从标志置1到进入相应的中断服务),至少要3个完整的机器周期。如果中断响应过程受阻,就需要增加等待时间。则响应时间应为3~8个机器周期。从中断源提出中断申请,到CPU响应中断,所需要经过的时间,叫中断响应时间。5.1.5中断处理过程—中断响应时间相应优先级状态触发器置1执行硬件LCALL指令(形成中断矢量)把PC的内容(断点地址)入栈相应中断服务程序的入口送PC执行中断服务程序。中断响应过程的前两步是由中断系统内部自动完成的,而中断服务程序则要由用户编写程序来完成。2.中断响应过程5.1.5中断处理过程—中断响应过程CPU响应中断后,即转到中断服务程序的入口,执行中断服务程序,一般情况下,中断处理包括两方面的内容:一是保护现场二是中断服务编写中断服务程序时应注意:1.中断向量放一条转移指令(如LJMPXXXXH),使中断服务子程序可灵活地安排在64KROM的任何空间。2.在中断服务程序中应注意保护现场,以免中断返回后丢失原寄存器、累加器中的数据。3.若要在执行当前中断程序时禁止更高的优先级中断,可先用软件关闭CPU中断,在中断返回前再开放中断。5.1.5中断处理过程—中断处理RETI的功能:将压入堆栈的断点地址从栈顶弹回PC将优先级状态触发器清0注意:不能用RET指令代替RETI指令。中断服务程序中PUSH与POP须成对使用5.1.5中断处理过程—中断返回程序被中断前断点中断处理后中断响应(1)响应条件:①有中断请求;②EA=1,中断开放;③请求中断的中断源中断允许为1,开中断。(2)响应过程:①保存断点,CPU自动把断点压入堆栈进行保存;②把对应的中断服务子程序入口地址装入。中断返回执行RETI指令:中断服务子程序最后一条指令是中断返回指令RETI它的功能是将断点地址弹出送回PC中,使程序能返回到原来被中断的程序继续执行。中断处理(1)保护现场:现场通常有PSW、工作寄存器、专用寄存器等,若在中断服务子程序中要用这些寄存器,则在进入中断服务子程序前将它们保护起来,以便在执行RETI指令前将它们恢复。(2)执行中断服务子程序,为中断源服务。电平触发方式:中断标志随中断引脚电平而变化,中断请求的响应速度快。但有效电平必须保持到响应时,避免漏掉;在中断服务程序结束之前,必须撤消该有效电平,避免中断返回后再次产生中断。此方式适于外中断输入低电平,且中断服务程序能清除外中断请求源的情况。(如,8255的中断请求线在读或写后即被复位,以其去请求电平触发方式的中断比较方便)。关于外部中断的触发方式的两点说明:边沿触发方式:采到有效边沿后,则在IE0或IE1中将锁存一个1。即便是CPU暂时不能响应,该标志也不会丢失,直到响应此中断时才清零。负脉冲宽度至少要保持一个机器周期。此方式适于以负脉冲形式输入的外部中断请求(如ADC0809的EOC为正脉冲,经反相后就可以作为80C51的中断输入)。5.2中断系统的编程和应用举例5.2.1关于具体的中断服务程序编写中断服务程序时应注意以下几点:各中断源的入口向量地址之间,只相隔8个单元,一般的中断服务程序是容纳不下的,因而最常用的方法是在中断入口向量地址单元处存放一条转移指令,转至存储器其他的任何空间去。若在执行当前中断程序时禁止更高优先级中断,应用软件关闭CPU中断或屏蔽更高级中断源的中断,在中断返回前再开放中断。在保护现场和恢复现场时,一般应关闭CPU中断,使CPU暂时不响应新的中断请求;在保护现场之后若允许响应高优先级中断,则应开中断。同样在恢复现场之前应关中断,恢复之后再开中断。主程序中断初始化内容:1.根据要求指定各中断源的中断优先级→对IP寄存器赋值。2.当有外部中断源时,应根据其特点选择相应的触发方式(IT0、IT1)。3.中断的开放→对IE寄存器赋值。1.单外部中断源示例解:(1)用字节指令写的初始化程序:MOVIE,#81H;开总中断与外中断0中断MOVIP,#01H;外部中断0为高级优先MOVTCON,#00H;外部中断0为电平触发方式5.2.2中断程序举例【例5-3】使用外部中断INT0,电平触发方式,设为高优先
本文标题:第5章 中断系统及定时计数器
链接地址:https://www.777doc.com/doc-3206689 .html