相信很多单片机初学者都会对中断这个概念不太理解。
对于传统的STC89C52单片机,它只有两个外部中断。外部中断0,外部中断1 。但是我们要说的STC15单片机,有五个外部中断,INT0,INT1,INT2,INT3,INT4.
再看外部中断的时候,你会发现其实外部中断真的是很简单。简单到只需要处理三个地方。 ① 打开总中断,打开自己的中断允许位;
② 选择中断的触发方式;
③ 写中断处理函数。
在STM32里面可能还需要清中断标志位。在STC15里面外部中断服务函数里面是不需要手动清中断标志位。
上述的三个步骤,我们使用代码来实现。如下所示。
void Int3_Init(void)
{
EA = 1; // 打开总中断允许位
INT_CLKO = INT_CLKO | 0x20; // 0010 0000 打开外部中断 INT3
}
void Int3_Routine(void) interrupt 11 // 外部中断INT3
{
LED1 = !LED1;
LED2 = !LED2;
LED3 = !LED3;
}
|