当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 项目6中断及定时系统
项目6中断及定时系统6.1中断系统6.1.1中断的几个概念概念1.中断的定义对于CPU来说,CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。所以我们把可以引起中断的请求源称之为中断源。单片机中也有一些可以引起中断的事件,8051中一共有5个中断源:两个外部中断,两个定时/计数器中断,一个串行口中断。2.中断的嵌套与优先级8051单片机5个中断源有两个优先级项目6中断及定时系统3.中断的响应过程五个中断源,每个中断产生后都到一个固定的地方去找处理这个中断的程序,在去之前首先要保存下面将执行的指令的地址,以便处理完中断后回到原来的地方继续往下执行程序。中断响应过程可以分为以下几个步骤:1)保护断点,即保存下一将要执行的指令的地址,就是把这个地址送入堆栈;2)寻找中断入口,根据5个不同的中断源所产生的中断,查找5个不同的中断服务程序入口地址。在这5个入口地址处存放有中断处理程序;3)执行中断处理程序;4)中断返回:执行完中断处理程序后,就从中断处返回到主程序,继续执行主程序。中断系统是计算机的重要组成部分。中断系统可以提高CPU的工作效率,还可以提高实时数据的处理时效,所以实时控制、故障自动处理往往采用中断系统,计算机与外围设备间传送数据及实现人机联系也常采用中断方式。项目6中断及定时系统6.1.2中断系统的结构+IT0=0IT0=1____INT0T0IT1=0IT1=1____INT1T1TXRXTCONIEIE0TF0IE1TF1TIRIEX0ET0EX1ET1ESEAIPPX01111100000PSPT1PX1PT0SCON中断标志源允许总允许优先级硬件查询低级中断请求PC高级中断请求PC矢量地址矢量地址自然优先级自然优先级项目6中断及定时系统6.1.3中断源和中断标志1.中断源MCS-51的5个中断源为两个外部中断、两个定时器中断和一个串行口中断。1)外部中断请求源:即外中断0和1,经由外部引脚引入的,在单片机上有两个引脚,名称为、,也就是P3.2、P3.3这两个引脚。2)内部中断请求源:两个定时器中断和串行口中断。8051内部有两个16位的定时/计数器,对内部定时脉冲或者T0/T1引脚上输入的外部计数脉冲计数,当定时时间到或计数脉冲满时,自动向CPU提出中断请求。串行口中断分为串行口发送中断和串行口接收中断两种,在串行口进行发送/接收数据时,每当串行口发送/接收完一组数据,单片机自动使串行口控制寄存器SCON的RI或TI中断标志置位,并且自动向CPU提出串行口中断请求。0INT0INT1INT1INT项目6中断及定时系统80C51单片机的中断系统提供了5个中断源,具有2个中断优先级,可实现两级中断嵌套。80C51单片机的5个中断源分别是:2个外部中断(由、引脚输入中断请求信号)、2个片内定时器/计数器溢出中断(T0、T1)和1个片内串行口中断。TCON、SCON是用来存放各中断源的中断申请标志的寄存器;IE是用来设置是否允许中断源中断的寄存器;IP是用来设置中断源优先级别的寄存器;硬件查询是相同优先级的中断源再进行排队的硬件电路。项目6中断及定时系统(1)定时器控制寄存器TCON(TimerControlRegister)TF1TCON(88H)IT0IT1IE0IE1TF088H8CH8BH8AH89H8FH8EH8DH位地址IE0:外部中断0请求标志位。当CPU检测到引脚上出现下降沿信号或低电平信号时,由内部硬件置位IE0(IE0=1),向CPU请求中断。IE1:外部中断1请求标志位。当CPU检测到引脚上出现下降沿信号或低电平信号时,由内部硬件置位IE1(IE1=1),向CPU申请中断。TF0:定时器/计数器T0的溢出中断请求标志位。当T0计数溢出时,由内部硬件置位TF0(TF0=1),向CPU申请中断。TF1:定时器/计数器T1的溢出中断请求标志位。当T1计数溢出时,由内部硬件置位TF1(TF1=1),向CPU申请中断。IT0:外部中断0触发方式控制位。当IT0=0时,电平触发,低电平有效;当IT0=1时,边沿触发,下降沿有效。IT1:外部中断1触发方式控制位。当IT1=0时,电平触发,低电平有效;当IT1=1时,边沿触发,下降沿有效。项目6中断及定时系统(2)串行口控制寄存器SCON(SerialControlRegister)TI:串行口发送中断请求标志位。当串行口发送完一个数据帧时,将TI置位(TI=1),向CPU申请中断。RI:串行口接收中断请求标志位。当串行口接收完一个数据帧时,将RI置位(RI=1),向CPU申请中断。SCON(98H)RITI98H99H位地址项目6中断及定时系统6.1.4对中断请求的控制1.对中断允许的控制计算机中断系统有两种不同类型的中断:一类称为非屏蔽中断,另一类称为可屏蔽中断。对非屏蔽中断,用户不能用软件的方法加以禁止,一旦有中断申请,CPU必须予以响应。对可屏蔽中断,用户则可以通过软件方法来控制是否允许某中断源的中断,允许中断称中断开放,不允许中断称中断屏蔽。MCS-51系列单片机的5个中断源都是可屏蔽中断IE(0A8H)EX0ET00A8H0A9HEAESET1EX10AFH0ACH0ABH0AAH××位地址项目6中断及定时系统EA:中断允许总控制位。EA=0,中断总禁止,禁止所有中断;EA=1,中断总允许,置1后,各中断源的中断允许由各个控制位进行设置。EX0、EX1:外部中断允许控制位。EX0(EX1)=0,表示禁止外中断INT0(INT1)的中断申请;EX0(EX1)=1,表示允许外中断INT0(INT1)的中断申请。ET0、ET1:定时/计数中断允许控制位。ET0(ET1)=0,表示禁止定时/计数器0(1)的中断申请;ET0(ET1)=1,表示允许定时/计数器0(1)的中断申请;ES:串行口中断允许控制位。ES=0,禁止串口中断;ES=1,允许串口中断。MCS-51单片机各个中断源均为可屏蔽中断。中断允许寄存器IE的单元地址是A8H,各控制位可以位寻址,也可以字节寻址。例如可以采用位指令开放外部中断的溢出中断:SETBEASETBEX0若改为字节传送指令,则仅需采用一条指令:MOVIE,#81H项目6中断及定时系统例:设允许定时器/计数器T1的溢出中断的中断请求,禁止其它中断源的中断请求,写出设置IE的指令。分析:根据设定条件,则IE寄存器的EA=1,ET1=1,其它位为0,IE的值应为10001000B,即88H。用字节传送指令可写为:MOVIE,#88H或MOV0A8H,#88H若改用位操作指令,则需两条指令:SETBET1;允许T1溢出中断SETBEA;CPU允许所有中断源中断项目6中断及定时系统(4)中断优先级寄存器IP(InterruptPriorityRegister)80C51单片机的5个中断源,均可由程序设置为高优先级中断或低优先级中断,谁的优先级别高,就先响应谁。每个中断源的中断优先级都通过中断优先级寄存器IP统一设置。IP(0B8H)PX0PX1PT0PT10B8H0BCH0BBH0BAH0B9HPS×××位地址项目6中断及定时系统PX0和PX1:PX0是外部中断0的中断优先级控制位;PX1是外部中断1的中断优先级控制位。PT0和PT1:PT0为定时器/计数器T0的溢出中断优先级控制位;PT1为定时器/计数器T1的溢出中断优先级控制位。PS:串行口中断优先级控制位。注意:当某个中断源的优先级控制位为1时,设置为高优先级中断;为0时,设置为低优先级中断。项目6中断及定时系统8051单片机共有5个中断源,在单片机工作过程中,若出现三个或者更多的中断请求源,那么同一优先级别中的中断源就不止一个,这个时候也有中断优先级排队的问题,8051单片机对此有统一规定,如表6-1所示。可对中断系统的规定概括为以下两条基本规则:1)低优先级中断系统的规定被高级中断系统中断,反之不能;2)当多个中断源同时发出申请时,级别高的优先级先服务(先按高低优先级区分,再按辅助优先级区分)。高低中断源同一级别的优先级外部中断0定时/计数器0溢出中断外部中断1定时/计数器1溢出中断串行口中断表6-18051各个中断源中断优先级顺序项目6中断及定时系统例:设80C51单片机的外部中断为高优先级,内部中断为低优先级,写出设置IP的指令。分析:由给定的条件可知:IP寄存器中,PX1=1,PX0=1,其余位为0,即IP=00000101B=05H。用字节传送指令设置:MOVIP,#05H或MOV0B8H,#05H用位操作指令设置:SETBPX0SETBPX1CLRPT0CLRPT1CLRPS项目6中断及定时系统6.1.5中断处理过程中断处理过程可分为中断响应、中断处理和中断返回三个阶段。1.中断响应中断响应是CPU对中断源中断请求的响应,包括保护断点和将程序转向中断服务程序的入口地址(通常称矢量地址)。CPU并非任何时刻都响应中断请求,而是在中断响应条件满足之后才会响应。1)中断响应条件(1)有中断源发出中断请求。(2)中断总允许位EA=1。(3)申请中断的中断源允许。满足以上基本条件,CPU一般会响应中断,但CPU正在响应同级或高优先级的中断、正在执行RETI中断返回指令以及访问专用寄存器IE和IP的指令时,CPU不响应中断请求而在下一机器周期继续查询,否则,CPU在下一机器周期响应中断。项目6中断及定时系统2)中断响应过程中断响应过程包括保护断点和将程序转向中断服务程序的入口地址。首先把中断点的地址(断点地址)压入堆栈保护,然后将对应的中断入口地址装入程序计数器PC(由硬件自动执行),使程序转向该中断入口地址,执行中断服务程序。MCS-51系列单片机各中断源的入口地址由硬件事先设定,分配如表6-2所示。因为5个中断源的入口地址之间,只相隔8个存储单元,一般的中断服务程序是容纳不下的,使用时通常在这些中断入口地址处存放一条绝对跳转指令,使程序跳转到存储器其他的任何空间,并且将中断服务程序安排在相应的空间中。例如,若采用定时器T0中断,其中断入口地址为000BH,中断服务程序名为TIME00,因此,指令形式为:ORG000BH;T1中断入口AJMPTIME00;转向中断服务程序中断源入口地址外部中断00003H定时/计数器0溢出中断000BH外部中断10013H定时/计数器1溢出中断001BH串行口中断0023H项目6中断及定时系统2.中断处理中断处理就是执行中断服务程序。中断服务程序从中断入口地址开始执行,到返回指令“RETI”为止,一般包括两部分内容,一是保护现场,二是完成中断源请求的服务。通常,主程序和中断服务程序都会用到累加器A、状态寄存器PSW及其它一些寄存器,当CPU进入中断服务程序用到上述寄存器时,会破坏原来存储在寄存器中的内容,一旦中断返回,将会导致主程序的混乱,因此,在进入中断服务程序后,一般要先保护现场,然后,执行中断处理程序,在中断返回之前再恢复现场。例如:TIME00:;中断服务程序CLREA;关中断PUSHPSW;保护现场PUSHACCPUSHB........;中断处理PUSHB;恢复现场PUSHACCPUSHPSWSETBEA;开中断RETI;中断返回项目6中断及定时系统编写中断服务程序时还需注意以下几点:1)各中断源的中断入口地址之间只相隔8个字节,容纳不下普通的中断服务程序,因此,在中断入口地址单元通常存放一条无条件转移指令,可将中断服务程序转至存储器的其它任何空间。2)若要在执行当前中断程序时禁止其它更高优先级中断,需先用软件关闭CPU中断,或用软件禁止相应高优先级的中断,在中断返回前再开放中断。3)在保护和恢复现场时,为了不使现场数据遭到破坏或造成混乱,一般规定此时CPU不再响应新的中断请求。因此,在编写中断服务程序时,要注意在保护现场前关中
共140篇文档
格式: ppt
大小: 875 KB
时间: 2017-11-06
本文标题:项目6中断及定时系统
链接地址:https://www.777doc.com/doc-803571 .html