众所周知,51单片机共有5个中断源,从高到低依次为p3.2引脚触发的外部中断0
定时器0触发的中断1
p3.3引脚出发的外部中断1
定时器1触发的中断1
串口数据缓冲器TX/RX中断
下面附上中断系统的组成原理图
仔细观察图,我们发现,从最左边的5个中断源到完成一次中断到最右边需要经历的有以下几个步骤
TCON寄存器,IE寄存器,IP寄存器,所以只需弄懂这三个步骤就能轻松搞定51单片机里面的中断了。
首先来了解TCON寄存器
TCON为定时/计数器控制寄存器,8位分别为TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
如果我们使用定时器0中断,那么当中断触发时,TF0将会从0置1,所以也称TF0,TF1为中断溢出标志位,这里TCON了解下8位分别代表什么就可以,代码中一般不需要用到这8位
其次是IE寄存器,从图中我们可以看到,5个中断源分别对应5个IE寄存器中的请求位,所以如果使用哪个中断源时,将图中与其对应的位置1就可以开启了。
例如我们要开启中断时,第一步做的是令EA=1开启总中断,无论开启哪个中断都需要这一步!
其次,如果开启定时器0中断,就将ET0=1就可以
开启定时器1中断,将ET1=1就可以
最后,关于IP寄存器,是中断优先级寄存器,了解下就可以,代码中不需要用到
下面我