今天介绍
51单片机中比较重要的一个环节——
中断,所谓中断,就是CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生),CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务),待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断
。从应用角度上看,基本后续的很多内容都会用到中断,那就先简单说一下中断。
首先,中断响应条件。有三点:中断源有中断请求、此中断源的中断允许位为1、CPU开中断(即EA=1)。以上三条同时满足时,CPU才有可能响应中断。在此基础上,下面从三个不同的中断进行介绍。
第一,定时器/计数器中断锁存寄存器TCON。如下图所示:
TCON中不同位代表中断的不同标志,具体如下:
IT0(TCON.0),外部中断0触发方式控制位。
当IT0=0时,为电平触发方式。
当IT0=1时,为边沿触发方式(下降沿有效)。
IE0(TCON.1),外部中断0中断请求标志位。
IT1(TCON.2),外部中断1触发方式控制位。
IE1(TCON.3),外部中断1中断请求标志位。
TF0(TCON.5),定时/计数器T0溢出中断请求标志位。
TF1(TCON.7),定时/计数器T1溢出中断请求标志位。
第二,串行口中断。也就是SCON的中断标志,具体如下:
这里主要介绍两个位。RI(SCON.0):串行口接收中断标志位,当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI,注意,RI必须由软件清除。TI(SCON.1):串行口发送中断标志位,当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程,每发送完一个串行帧,由硬件置位TI,CPU响应中断时,不能自动清除TI,TI必须由软件清除。
第三,中断允许控制。在51单片机中,中断允许和禁止都是由寄存器控制的,中断允许寄存器(IE)的字节地址为A8H,其格式如下:
其中:
EX0(IE.0),外部中断0允许位;
ET0(IE.1),定时/计数器T0中断允许位;
EX1(IE.2),外部中断0允许位;
ET1(IE.3),定时/计数器T1中断允许位;
ES(IE.4),串行口中断允许位;
EA(IE.7),CPU中断允许(总允许)位。
另外,中断函数不需要声明,比如voidexter0()interrupt0(01234分别对应的是外部中断0、定时器/计数器T0、外部中断1、定时器/计数器T1、串行口中断)
{
d1=0;
}这个中断函数在前面是不需要声明的,这个比较特殊,需要引起注意。
中断的应用有很多,最典型的就是定时器,这个下次再说吧!