单片机中断系统(51为例)

单片机中断系统概述:

中断是指单片机的CPU在执行程序过程中,外部有一些事件变化,如数据采集结束,电平变化,定时器/计数器溢出等,要求CPU立即处理,这时CPU暂时停止当前的执行程序,转去处理中断请求,处理后,再回到原来所执行程序的地址继续执行原来的程序,这个过程称为中断。
如图:
在这里插入图片描述
当CPU正在处理一个中断请求的时候,外部又发生了一个优先级比它高的中断事件,请求CPU及时处理。于是,CPU暂时中断当前的中断服务工作,转而处理所发生的事件。处理完毕,再回到原来被中断的地方,继续原来的中断处理工作。这样的过程,称为中断嵌套,这样的中断系统称为多级中断系统。
如图:
在这里插入图片描述
发出中断请求信号的设备称为中断源。中断源是引起中断的原因,不同的机器中断源也有所不同,一般中断源包括:外部设备,键盘,打印机,内部定时器、故障源以及根据某种需要人为设置的中断源。
要求中断处理发出的标志信号称为中断请求。
中断后转向执行的程序叫做中断服务或中断处理程序。原来的程序称为主程序,主程序被断开的地址称为断点。
实现中断功能的硬件系统和软件系统统称为中断系统。

作用:
中断系统在计算机应用系统中起着十分重要的作用,是计算机的重要组成部分,中断的使用消除了CPU在查询方式中的等待现象,大大提高了CPU的工作效率,改善了计算机的性能。
典型的80C51单片机是一个多中断源的单片机,其片内的中断系统主要用于实时控制,使单片机能及时响应和处理单片机外设或其内部所提出的中断要求。

51系列单片机中断源:

MCS-51中断系统包括5个中断请求源,4个用于中断控制和管理的可编程和位寻址的特殊功能寄存器,即中断请求标志寄存TCON、SCON,中断允许控制寄存器IE和中断优先级控制寄存器IP。MCS-51中断系统提供两个中断优先级,可实现二级中断嵌套,并且每一个中断源可编程为开放或屏蔽。
重点:
51子系列中有五个中断源(52子系列为6个),分为三类,即外部中断,定时器/计数器中断,串行口中断 :

1、外部中断0请求,中断请求信号方式为低电平或脉冲下降沿有效。由P3.2引脚输入。
2、外部中断1请求,中断请求信号方式为低电平或脉冲下降沿有效。由P3.3引脚输入。
3 、T0:定时器/计数器0溢出(信号作为)中断请求,当CPU响应该中断时由硬件清零。外部计数脉冲由P3.4引脚输入。
4、T1:定时器/计数器1溢出(信号作为)中断请求,当CPU响应该中断时由硬件清零。外部计数脉冲由P3.5引脚输入。
5、TX/RX:串行中断请求。当串行口完成一帧发送或接收时,由内部的硬件自动置位中断请求标志TI或RI,请求中断。注意RI、TI必须由用户软件清零复位,由P3.0,P3.1引脚输入。

51系列单片机中断请求标志寄存器
1.定时器/计数器控制寄存器TCON
TCON为定时器/计数器的控制寄存器,它同时也锁存T0、T1溢出中断源标志、外部中断请求标志,与这些中断请求源相关的位含义如表所示。
在这里插入图片描述
IT0(TCON.0):选择外部中断请求0为边沿触发或电平触发方式的控制位。IT0=0,电平触发方式,低电平有效;IT0=1,边沿触发方式,电平负跳变有效( 正跳变和负跳变就是上升沿和下降沿)。IT0可由软件置“1”或清“0”。

IE0(TCON.1):外部中断0的中断申请标志。当IT0=0时,每个机器周期的S5P2采样INT0,若INT0为低电平,则IE0置“1”。当IT0=1,若采样到电平由高变低,则IE0置“1”。IE0为1表示外部中断0正在向CPU申请中断。当CPU响应该中断,转向中断服务程序时,由硬件使IE0清“0” 。

IT1(TCON.2):选择外部中断请求1为边沿触发方式或电平触发方式的控制位,其作用和IT0类似

IE1(TCON.3):外部中断1的中断申请标志。其意义和IE0相同
TF0(TCON.5):MCS-51片内定时器/计数器0溢出中断申请标志。当启动T0计数后,定时器/计数器0从初始值开始1计数,当最高位产生溢出时,由硬件使TF0置“1”,向CPU申请中断,CPU 响应TF0中断时,TF0会自动清“0”。

TF1(TCON.7):MCS-51片内定时器/计数器1溢出中断申请标志,功能和TF0类似。
当MCS-51系统复位后,TCON各位被清0。

2.串行口控制寄存器SCON
SCON为串行口控制寄存器,SCON的低二位,锁存串行口的接收中断和发送中断标志,其格式如表所示。
在这里插入图片描述
TI(SCON.1):串行口的发送中断标志。当串行发送数据结束,发送停止位开始时,由内部硬件自动使TI置“1”,向CPU申请中断。向串行口的数据缓冲器SBUF写入一个数据后,就立即启动发送器继续发送。CPU响应发生器中断请求,转向执行中断服务程序时,并不清零TI,TI须由用户的中断服务程序清“0”,以便下次继续发送;

RI(SCON.0):串行口的接收中断标志。当串行接收数据结束,接收到停止位的中间时,由内部硬件自动使RI置“1”,向CPU申请中断。 同样RI必须由用户的中断服务程序清“0”,以便下次接收。

注:一般情况,以上五个中断源的中断请求标志是由中断机构硬件电路自动置位的,但也可以人为通过指令(SETB BIT),对TCON和SCON的中断标志位置位,即“软件代请中断”,这是单片机中断系统的一大特点。

3. 中断允许寄存器IE
MCS-51单片机对中断的开放或屏蔽,是由片内的中断允许寄存器IE控制的。IE的格式表所示。
在这里插入图片描述

IE寄存器各位功能(“0”—禁止中断,“1”—允许中断):
EA(IE.7):CPU的中断开放/禁止总控制位。EA=0时,禁止所有中断;EA=1时,开放中断,但每个中断还受各自的控制位控制。

ES(IE.4)允许或禁止串行口中断。ES=0时,禁止中断;ES=1时,允许中断。

ET1(IE.3):允许或禁止定时/计数器1溢出中断。ET1=0时,禁止中断;EX1=1时,允许中断。

EX1(IE.2):允许或禁止外部中断1中断。EX1=0时,禁止中断;EX1=1时,允许中断。

ET0(IE.1):允许或禁止定时器/计数器0溢出中断。ET0=0时,禁止中断,ET0=1时允许中断。

EX0(IE.0):允许或禁止外部中断0中断。EX0=0时,禁止中断;EX0=1时,允许中断。
当MCS-51系统复位后,IE各位均被清0,所有中断被禁止。

4.中断优先级寄存器IP
MCS-51单片机设有两级优先级,高优先级中断和低优先级中断。如果CPU正在处理的是低级的中断请求,那么高级的中断请求可以使CPU暂停处理低级中断请求的中断服务程序,转而处理高级中断请求的中断服务程序,待处理完高级中断请求的中断服务程序后,再返回原低级中断请求的中断服务程序,这种情况称为中断嵌套。具有中断嵌套的系统称为多级中断系统,没有中断嵌套的系统称为单级中断系统。
中断源的中断优先级分别由中断控制寄存器IP的各位来设定。IP的格式如表所示。
在这里插入图片描述
IP 寄存器各位功能( “0”—低优先级,“1”—高优先级):
PS(IP.4):串行口中断优先级控制位。PS=1,为高优先级中断,PS=0,为低优先级中断。

PT1(IP.3):定时/计数器T1中断优先级控制位。PT1=1,高优先级中断,PT1=0,低优先级中断。

PX1(IP.2):外部中断1中断优先级控制位。PX1=1,高优先级中断,PX1=0,低优先级中断。

PT0(IP.1):定时器/计数器T0中断优先级控制位。PT0=1,高优先级中断,PT1=0,低优先级中断。

PX0(IP.0):外部中断0中断优先级控制位。PX0=1,高优先级中断,PX0=0,低优先级中断。
注意:
中断申请源的中断优先级的高低,由中断优先级控制寄存器IP的各位控制,IP的各位由用户用指令来设定。
复位操作后,IP= ××00000B,即各中断源均设为低优先级中断

中断查询顺序,优先问题:
若CPU正在对某一个中断服务。则级别低的或同级中断申请不能打断正在进行的服务。而级别高的中断申请则能中止正在进行的服务,使CPU转去更高级的中断服务。若多个中断源同时申请中断,则级别高的优先级先服务。若同时收到几个同一级别的中断请求时,中断服务取决于系统内部辅助优先顺序。在每个优先级内,存在着一个辅助优先级,其优先顺序如表所示。
在这里插入图片描述
综上所述,中断系统的使用规则:

  1. 低优先级中断可以被高级中断系统中断,反之不能;
  2. 当多个中断源同时发出申请时,级别高的优先级先服务,先按高低优先级区分,再按辅助优先级区分。

最后补充一个中断函数:
在C51中,中断服务程序即定义的中断函数。当中断事件发生后,对应的中断函数被自动调用,中断函数既没有参数,也没有返回值。

//中断服务函数的一般形式为:
        函数类型   函数名()  interrupt  n using  n
//例如,外中断2的中断服务函数如下:
         void  int1( )  interrupt 2 using 1
             /*中断号n=2,选择1区工作寄存器区(通常省略不写,否则仿真软件可能仿真失败)*/
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinParker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值