相信很多單片機初學者都會對中斷這個概念不太理解。
對于傳統的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;
}
|