單片機中斷按照中斷源類型的不同主要分為:外部中斷、定時器中斷、串口中斷
而因為電路板上可能存在多個定時器或多個引起外部中斷的位置,所以產生多個中斷源,也因此單片機有多個中斷函數
以51單片機為例:
====================================
中斷編號 中斷源
0 外部中斷0
1 T0定時器溢出中斷
2 外部中斷1
3 T1定時器溢出中斷
4 串口中斷
====================================
C程序中使用中斷的方法
EA=1; //打開中斷總開關
ET0=1; //打開T0定時器中斷
while(1)
{
//your code
}
//定義中斷處理函數(程序會自動調用)
void InterruptTimer0() interrupt 1
{
//關鍵詞interrupt后面的1表示中斷函數編號
//your code
//當T0定時器溢出(即截獲中斷)時,執行InterruptTimer0中斷處理函數,執行完畢后程序將從while中發生中斷的位置繼續往下執行
}
而因為電路板上可能存在多個定時器或多個引起外部中斷的位置,所以產生多個中斷源,也因此單片機有多個中斷函數
以51單片機為例:
====================================
中斷編號 中斷源
0 外部中斷0
1 T0定時器溢出中斷
2 外部中斷1
3 T1定時器溢出中斷
4 串口中斷
====================================
C程序中使用中斷的方法
EA=1; //打開中斷總開關
ET0=1; //打開T0定時器中斷
while(1)
{
//your code
}
//定義中斷處理函數(程序會自動調用)
void InterruptTimer0() interrupt 1
{
//關鍵詞interrupt后面的1表示中斷函數編號
//your code
//當T0定時器溢出(即截獲中斷)時,執行InterruptTimer0中斷處理函數,執行完畢后程序將從while中發生中斷的位置繼續往下執行
}