第五章MCS-51单片机中断系统教案.doc
第五章 MCS51单片机中断系统第一节 中断系统结构(一)学习要求(1) 掌握中断系统中断源、中断概念,中断优先级及控制方法。(2) 了解中断响应过程,中断请求撤除法。(二)内容提要一、中断概述1、 中断源中断源指引起正在执行的程序中断,转而执行中断服务程序的设备或事件。可分为硬中断、软中断。MCS-51单片机的5个中断源:外部中断2个,中断请求信号分别由P3.2、P3.1输入,低电平有效、脉冲下降沿有效可选。入口地址:0003H,0013H。定时/计数溢出中断3个:T0、T1,计数溢出时置“1”TF0、TF1位,从而发出内部中断请求。入口地址:000BH,001BH。串行中断1个:串行接收或发送完一帧数据时就产生一个内部中断请求RI或TI。入口地址:0023H。2、中断处理过程包含:中断请求、中断响应、中断服务、中断返回四个阶段.中断请求:中断源将相应请求中断的标志位置“1”,表示发出请求,并由CPU 查询。中断响应:在一条指令的最后一个周期按优先级顺序查询中断标志,为“1”并满足响应条件时响应。响应操作: 断点压栈撤除中断标志关闭低同级中断允许中断入口地址送PC。实际上响应中断的主要操作是有硬件自动产生一条长调用指令LCALL。中断服务:根据入口地址转中断服务程序,保护现场、执行中断主体、恢复现场。中断返回:断点出栈开放中断允许返回原程序。3、中断优先级及其嵌套优先级 2个-高优先级、低优先级,可通过SFR寄存器IP设置。中断嵌套 原则为高优先级的中断不能被低优先的中断所中断,同级中断不能相互中断。4、中断控制的特点 中断是随机发生的,并且是可编程的。 通过执行特定功能的程序段而获得预定目的。5、中断系统结构示意图二、中断控制通过对特殊功能寄存器TCON、SCON、IE、IP等四个寄存器的设定而实现。1、中断请求控制(1)定时中断、外中断请求控制寄存器TCON字节地址88H,位地址8FH88H,与中断请求有关的各位表示如下:(2)串行中断请求控制寄存器SCON串行中断请求由TI、RI的逻辑“或”得到。即不论是发送标志还是接收标志,都将发生串行中断请求。字节地址98H,位地址9FH98H,与中断请求有关的各位表示如下:TI为发送中断 ,RI为接收中断 ,为“1”时,请求中断,响应后必须由用户软件清零。(3)中断请求的撤销中断响应后,必须及时清除TCON、SCON中的已响应中断请求标志,否则,会引起中断的重复查询和响应。外中断请求的撤销:对于边沿触发方式:由于触发信号过后就消失,撤销自然也就是自动的。对于电平触发方式:需通过软硬件结合的方法来实现撤销。定时中断请求的撤销:定时中断后,硬件自动清“0”。串行中断请求的撤销:不能自动清“0”,须用软件的方法在中断服务子程序中进行清“0”。2、中断允许控制由SFR寄存器IE设置,分二级允许控制。以EA位作为总控,以各中断源的允许位作为分控。中断允许控制寄存器IE,字节地址A8H,位地址AFHA8H,与中断允许有关的各位表示如下:单片机复位后,(IE)=00H,因此,整个中断系统为禁止状态。3、中断优先级控制由SFR寄存器IP设置,有2个优先级,相应位置“1”,为高优先级。相应位置“0”,为低优先级。中断优先级寄存器IP,字节地址B8H,位地址BFHB8H,与中断允许有关的各位表示如下: 注意:5个中断允许位全部置“1”时,和全部清0效果一样,为同优先级中断,按自然优先级处理,即为T0 T1串行口PT2,优先级依次从高到低。(三)习题与思考题12单片机提供了几个中断源?有几级中断优先级?2外部中断有几种触发方式?3MCS-51单片机的中断系统有哪几部分组成?作用是什么?4. MCS51系列单片机的中断系统中有几个优先级?如何设定?第二节中断响应(一)学习要求(1)掌握中断响应的条件及过程。(2)了解中断响应的复位。(3)了解程序的初始化及程序编制。(4)了解外部多个中断源的扩展(二)内容提要一、中断响应的条件CPU响应中断的基本条件有以下几种:(1) 有中断源提出中断请求;(2) 中断总允许位EA1,即CPU开中断;(3) 申请中断的中断源的中断允许位为1,即没有被屏蔽。MCS51的CPU在每个机器周期的S5P2期间顺序采样各中断请求标志位,如有置位,只要以上条件满足,且下列三种情况都不存在,那么,在下一周期的S1期间CPU响应中断。否则,采样的结果被取消。这三种情况是:(1) CPU正在处理同级或高级优先级的中断。(2) 现行的机器周期不是所执行指令的最后一个机器周期。(3) 正在执行的指令是RETI或访问IE、IP指令。CPU在执行RETI或访问IE、IP的指令后,至少需要再执行一条其他指令后才会响应中断请求。二:中断响应过程单片机在每个机器周期的S5P2期间,顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志,如查询到某个中断标志为1,将在再下一个机器周期S1期间按优先级进行中断处理。中断得到响应后自动清除中断标志,由硬件将程序计数器PC内容压入堆栈保护,然后将对应的中断矢量装入程序计数器PC,使程序转向中断矢量地址单元中去执行相应的中断服务程序。 下列任何一种情况存在中断申请将被封锁:(1)CPU正在执行一个同级或高一级的中断服务程序。(2)当前正在执行的那条指令还未执行完。(3)当前正在执行的指令是RETI或对IE,IP寄存器进行读/写指令,执行这些指令后至少再执行一条指令才会响应中断。三、复位状态 CPU响应中断请求后,在中断返回(执行RETI)前,必须撤除请求,将中断标志位清除,回复到原始的状态,否则会错误地再一次引起中断响应。 如前所述,对于定时器计数器0、1的中断请求及边沿触发方式的外部中断0、1,CPU在响应中断后用硬件清除了相应的中断请求标志TF0、TF1、IE0、IE1,即自动撤除了中断请求。对于串行接口中断及定时器计数器2中断,CPU响应中断后没有用硬件清除中断标志位,必须由用户编制的中断服务程序来清除相应的中断标志。如用指令CLR TF2清除TF2,用指令CLR EXF2清除EXF2等。四、程序的初始化及中断服务程序1. 程序初始化的概念及步骤所谓程序中断系统初始化,就是指用户对中断控制的相关特殊寄存器中的各有关控制位进行赋值。其步骤如下:)置位相应中断的中断允许标志及EA。)设定所用中断源的中断优先级。)对外部中断应设定中断请求信号形式(电平触发边沿触发)。对于定时计数中断应设置工作方式(定时计数 )。例5-1 通过P1.0P1.7控制发光二极管,输出两种节日灯,并利用外中断P3.2,在两种状态之间切换。分析:主程序中状态:亮1灯左移循环,中断程序中的状态:以1秒间隔8灯依次亮起,再依次熄灭,循环3次后返回。主流程图(略),程序如下:ORG 0000HLJMP MAINORG0003H ;中断入口LJMP0100H ORG0030HSTART:MOVSP,#60HSETBIT0;设定下跳有效SETBEX0;开中SETBEAMOVIP,#01HMOVA,#01H LOOP:MOVP1,ARLALCALLDELAYAJMPLOOP中断服务程序:ORG0100HPUSHACCCLRAMOVR0,#00HLOOP1:SETBCRLCAMOVP1,ALCALLDELAYJNBACC.7,LOOP1LOOP2:CLRCRLCAMOVP1,ALCALL DELAYJBACC.7,LOOP2INCR0CJNER0,#03H,LOOP1POPACCRETDELAY:(略);1秒延时(三)习题与思考题1. MCS51系列单片机有几个中断源,各中断标志是如何产生的,又如何清0的?CPU响应中断时,它们的中断矢量地址分别是多少?3. MCS51系列单片机的中断系统中有几个优先级?如何设定?4. CPU响应中断有哪些条件?在什么情况下中断响应会受阻?5. 简述MCS51中断响应的过程?6. MCS51中断响应时间是否固定不变?为什么?7. 8031芯片的INT0、INT1引脚分别输入压力超限、温度超限中断请求信号,定时器计数器0作定时检测的实时时钟,用户规定的中断优先权排队次序为:压力超限温度超限定时检测,要求确定IE、IP的内容,以实现上述要求。5