中断分为以下几点:
1、中断允许位:分为外部中断0、1;定时中断0、1;串口中断;CPU中断(总中断)…等
使用者在这里可以确定自己的中断点,在选择允许中断的地方值赋为1,首先一定要允许总中断!
**2、中断请求标志(控制寄存器):**在中断请求标志区域低四位,可以选择中断的触发方式和中断请求标志位
(当然中断触发的检测是对这个外部中断口的引脚的检测,比如假设外部中断口为P3且触发条件是下降式_3,P3_3又连着按键3,按键的连法是接地式的,按键按下引脚为低电平,那么只有当按键3按下才发引发中断,其他引脚不会。)
(对于中断请求标志位:如果中断发生,那么中断请求标志位为1,终端结束需要置0,注:有些芯片自动置0,有些需要手动置0)
对于特殊定时器中断有:
**1、工作寄存器:**确定你的工作方式,高四位为T1,低四位为T0的工作方式选择(当然这是51…,另:鉴于工作方式太多不好讲就不多说,几种工作方式和如何进行中断太复杂暂时不讨论)
**2、控制寄存器:**前面中断提到了,低四位为外部中断的,高四位为定时器中断的选择,TRx为是否启动定时器,1为启动,TFx为中断请求标志位,计数满了TFx变为1,如果允许则进行中断,至于置零与否同上。
3、对于定时中断采用的计数方式与选择的工作方式有关,一般采用16位计数,THx记录高8位值,TLx记录低8位值,当16位溢出会使TFx变为1,可进行中断,THx与TLx初始值由自己设置,可以由自己想定时的时间确定自己的初始值到溢出值的差值,取余为低8位,除为高8位。
总结:对于外部 中断的发生条件: 1、确定在控制寄存器CTON确定中断触发条件和中断标志位;2、打开总(CPU)中断允许和对应需要的中断允许;
**对于定时器中断的发生条件**:1、打开总(CPU)中断允许和对应需要的中断允许;2、确定工作寄存器的工作方式;3、确定控制寄存器的中断标志位和是否启动中断;4、确定定时的初始值;
(注:文中x只是代指1号或者0号而已)
补充:定时器工作原理
如图,三角形为非门,弯曲的或门,一边弯曲的为与门,可知,如果定时器要想工作,TR0要为1,否则一定无法通过与门,工作寄存器中的GATE为0时,与门的通过就只与TR0有关,因为GATE过非门为1,一定通过或门;同理,当GATE为1,就需要INT0了。
工作寄存器的C/T:如图为1开关打到下面,接受外来脉冲信号为计数器,为0则在上面接受定时器的脉冲信号
工作寄存器的M0,M1:选择工作方式。。。。
最后1一张图为中断,最左边ITN0,T0…为引脚,中断信号外部接收是获取他们的。