中断控制主要涉及以下几个方面:

1. 中断允许位

这包括外部中断0、1;定时中断0、1;串口中断;CPU中断(总中断)等。使用者可以根据自己的需求设置相应的中断点,并在允许中断的地方将值设为1。首先,必须允许总中断!

2. 中断请求标志(控制寄存器)

在中断请求标志区域的低四位,可以选择中断的触发方式和中断请求标志位。例如,如果外部中断口为P3且触发条件是下降式_3,P3_3又连着按键3,按键的连法是接地式的,按键按下引脚为低电平,那么只有当按键3按下时才会引发中断,其他引脚不会。对于中断请求标志位,如果中断发生,该位将变为1,终端结束需要将其置0。请注意,有些芯片会自动置0,而有些则需要手动置0。

对于特殊定时器中断,需要注意以下几点:

3. 工作寄存器

这部分用于确定工作方式,高四位为T1,低四位为T0的工作方式选择。需要注意的是,由于工作方式较多,这里不再详细讨论。

4. 控制寄存器

与前面提到的中断控制寄存器类似,低四位为外部中断的选择,高四位为定时器中断的选择。TRx表示是否启动定时器,1表示启动;TFx表示中断请求标志位,计数满后变为1,如果允许则进行中断;置零与否同上。

5. 对于定时中断采用的计数方式与选择的工作方式有关,一般采用16位计数,THx记录高8位值,TLx记录低8位值。当16位溢出时,会使TFx变为1,可进行中断。THx与TLx的初始值由用户自行设置,可以由用户设定的定时时间来确定自己的初始值到溢出值的差值,取余为低8位,除以为高8位。

总结:

外部中断的发生条件包括:1、在控制寄存器CTON中确定中断触发条件和中断标志位;2、打开总(CPU)中断允许和对应需要的中断允许。需要注意的是,文中x只是代指1号或者0号而已。

补充说明:定时器的工作原理如下图所示。三角形代表非门,弯曲的或门,一边弯曲的为与门。可以知道,如果定时器要想工作,TR0必须为1,否则一定无法通过与门。当工作寄存器的GATE为0时,与门的通过只与TR0有关,因为GATE过非门为1,一定可以通过或门;同理,当GATE为1时,就需要INT0了。工作寄存器的C/T如图所示,当开关打到下面时,接受外来脉冲信号作为计数器,为0则在上面接受定时器的脉冲信号。工作寄存器的M0、M1用于选择工作方式等。

最后一张图展示了一个中断系统。最左边的ITN0、T0等表示引脚,这些引脚是用于接收中断信号的外部设备。当需要获取中断信号时,可以从这些引脚读取数据。