200 likes | 282 Views
第 7 章 MCS-51 的中断控制系统. 7.1 中断的相关概念 7.2 MCS-51 中断系统结构 7.3 中断的处理过程 7.4 多外部中断源系统设计 7.5 中断系统的程序设计 与应用实例. 退出. 7.1 中断的相关概念 1. 中断:单片机执行主程序时,由于某个事件的原因,暂停主程序的执行,调用相应的程序处理该事件,处理完毕后再自动继续执行主程序的过程。.
E N D
第7章MCS-51的中断控制系统 7.1 中断的相关概念 7.2 MCS-51中断系统结构 7.3 中断的处理过程 7.4 多外部中断源系统设计 7.5 中断系统的程序设计 与应用实例 退出
7.1 中断的相关概念 • 1. 中断:单片机执行主程序时,由于某个事件的原因,暂停主程序的执行,调用相应的程序处理该事件,处理完毕后再自动继续执行主程序的过程。
2.中断的嵌套:执行一个中断时又被另一个事件打断,暂停该中断处理过程转去处理这个更重要的事件,处理完毕之后再继续处理本中断的过程,叫作中断的嵌套。2.中断的嵌套:执行一个中断时又被另一个事件打断,暂停该中断处理过程转去处理这个更重要的事件,处理完毕之后再继续处理本中断的过程,叫作中断的嵌套。 图7-2 中断嵌套过程
3.中断的优先级:不同事件的重要程度 4.中断源:可以引起中断的事件 5.中断服务程序:为了处理中断而编写的程序 中断向量:对应中断服务程序的入口地址被 称为中断向量。 6.中断请求:中断源对主程序或中断服务程序提出中断要求 中断响应:主程序或中断服务程序接受中断请求,去执行中断服务程序 中断返回:中断服务程序执行完毕后回到主程序或者次一级别中断服务程序 7.中断系统 :实现中断处理功能的软、硬件系统
5个中断请求源,2个中断优先级。 完成中断功能的特殊功能寄存器有:中断源寄存器TCON、SCON;中断允许控制寄存器IE;中断优先级控制寄存器IP。 7.2.1 中断请求源与中断源寄存器: 中断请求源: (P3.2、12引脚)、 (P3.313引脚)、 TF0、TF1、TI或RI。 中断源寄存器:TCON和SCON
定时器/计数器控制寄存器TCON: 锁存了外部中断源及其触发方式、定时器T0和T1溢出中断。TCON寄存器中的IE0、IT0、IE1、IT1。TCON中的位格式如下:
IE0:为外部中断/INT0的请求标志位。当/INT0引脚上出现中断请求信号(低电平或脉冲下降沿)时,硬件自动将IE0置“1”,产生中断请求标志。IE0:为外部中断/INT0的请求标志位。当/INT0引脚上出现中断请求信号(低电平或脉冲下降沿)时,硬件自动将IE0置“1”,产生中断请求标志。 IT0:外部中断/INT0触发方式控制位。由软件来置“1”或清“0”,以控制外部中断/INT0的触发方式。当IT0=1 时,外部中断/INT0为下降沿触发。当IT0=0时,外部中断/INT0为电平触发。即外部中断/INT0出现低电平时,触发IE0,使其为“0”。 IE1:外部中断/INT1的请求标志位。功能与IE0相同。 IT1:外部中断/INT1触发方式控制。功能与IT0相同。
串行口控制寄存器SCON: TI:串行口内部发送中断请求标志位。当串行口发送完一个字符后,由内部硬件使发送中断标志TI置位。产生中断请求标志。 RI:串行口内部接收中断请求标志位。当串行口接收到一个字符后,由内部硬件使接收中断请求标志位RI置位。产生中断请求标志。
7.2.2 中断控制与中断控制寄存器IE、IP 中断允许寄存器IE:
EX0:外部中断0允许位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中断。EX0:外部中断0允许位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中断。 ET0:T0溢出中断允许位。ET0=1,允许T0中断;ET0=0,禁止T0中断。 EX1:外部中断1允许位。EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。 ET1:T1溢出中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断。 ES:串行中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。 EA:中断总允许位。EA=1,CPU开放中断;EA=0,CPU禁止所有的中断请求。总允许EA好比一个总开关。
PX0:外部中断0优先级控制位。PX1=1,外部中断0为高优先级;PX0=0,为低优先级。PX0:外部中断0优先级控制位。PX1=1,外部中断0为高优先级;PX0=0,为低优先级。 PT0:T0中断优先级控制位。PT0=1,定时器T0为高优先级;PT0=0,为低优先级。 PX1:外部中断1优先级控制位。PX1=1,外部中断1为高优先级;PX1=0,为低优先级。 PT1:T1中断优先级控制位。PT1=1,定时器T1为高优先级;PT1=0,为低优先级。 PS:串行口中断优先级控制位。PS=1,串行口为高优先级;PS=0,为低优先级。
MCS-51单片机复位后,IP寄存器低5位全部被清0,将所有中断源设置为低优先级中断。MCS-51单片机复位后,IP寄存器低5位全部被清0,将所有中断源设置为低优先级中断。 同优先级时的优先级顺序如表所示。
7.3 中断的处理过程 1.响应:如果没有被下述条件所阻止,将在下一个机器周期的状态周期S1响应激活了的最高级中断请求。 (1)CPU正在处理相同的或更高优先级的中断。 (2)现行的机器周期不是所执行指令最后一个机器周期。 (3)正在执行的指令是RETI或是访问IE或IP的指令(CPU在执行RETI或访问IE、IP的指令后,至少需要再执行一条指令才会响应新的中断请求。 如果上述条件中有一个存在,CPU将丢弃中断查询的结果。
CPU响应中断时,先置相应的优先级状态触发器(该触发器指出CPU开始处理的中断优先级别),然后执行一个硬件子程序调用,使控制转移到相应的入口,中断请求源申请标志清0(TI和RI除外),硬件把程序计数器PC的内容压入堆栈,把中断子程序(即中断服务程序)的入口地址(中断向量)送入程序计数器PC。CPU响应中断时,先置相应的优先级状态触发器(该触发器指出CPU开始处理的中断优先级别),然后执行一个硬件子程序调用,使控制转移到相应的入口,中断请求源申请标志清0(TI和RI除外),硬件把程序计数器PC的内容压入堆栈,把中断子程序(即中断服务程序)的入口地址(中断向量)送入程序计数器PC。
2.中断服务:中断服务程序由程序员编写,用于满足用户的特定需求。2.中断服务:中断服务程序由程序员编写,用于满足用户的特定需求。 3. 中断返回:RETI指令表示中断服务程序的结束,CPU执行该指令时,一方面把响应中断时所置位的优先级状态触发器清0,使得单片机可以继续响应别的中断请求;另—方面从栈顶弹出断点地址(两个字节)送到程序计数器PC,CPU从原来中断处继续执行被中断的程序。
需要注意的是:1.现场保护:INTPRO: PUSH PSW ;保护程序断点处的PSW PUSH A ;保护程序断点处的A …… ;中断服务程序POP A ;恢复程序断点处的A POP PSW ;恢复程序断点处的PSW RETI
2. 撤除该中断请求:(1) 定时/计数器中断请求撤销。单片机对定时/计数器的溢出中断进行响应后,硬件会自动将中断请求标志位TF0或TF1清0。用户无需采取其他措施。(2) 串行口中断请求撤销。单片机对串行口中断进行响应后,硬件不会自动将中断请求标志位TI或RI清0。需要用户使用软件方法,在中断服务程序中进行标志位的清0操作。如:CLR TI或CLR RI等清零指令。(3) 外部中断源中断请求撤销。对于边沿触发方式的外部中断请求,当单片机对中断请求进行响应后,硬件会自动将中断标志IE0或者IE1清0,同时外部中断信号产生跳沿后也就随之消失。