外部中斷系統框圖:
這些中斷請求源的中斷請求標誌位分別有特殊功能寄存器TCON和SCON的響應位鎖存
1、TCON寄存器
與中斷有關的是低四位。
1)IT0和 IT1——外中斷請求觸發標誌位:
0——爲低電平觸發;
1——爲下降沿觸發
可由軟件置位和清除
2)IE0 和 IE1——外部中斷請求標誌位
1——表示有中斷請求,CPU要響應中斷請求,跳向中斷服務程序,按優先級處理中斷程序,跳入中斷服務程序時,由硬件清0;
0——表示沒有中斷請求。
復位值TCON都爲0。
SCON爲串口控制寄存器,詳見串口。
2、中斷允許寄存器IE,可以位尋址,復位爲0:
各位爲1時允許相應位的中斷,爲0時禁止響應中斷。EA是總中斷開關。
注意: 單片機響應外部中斷後,會自動將外部中斷標誌位清0,。但由於外部中斷請求觸發方式的特點,在使用外部中斷中要避免重複請求問題。
外部中斷0編程步奏;
1、設置外部中斷請求允許位,設置IE寄存器中的EA EX0位;
2、選擇合適的外部中斷請求方式,即設置TCON中的IT0 (或者IT1);
3、編寫中斷服務函數。
實例:
main()
{
IT0 = 1; //設置外中斷0爲下降沿觸發
EX0 = 1; //開放外部中斷0
EA = 1; //開總中斷
while (1)
;
}
void ext_interrupt(void) interrupt 0
{
delay(5);
if (button0 == 0) {
led = !led;
}
}