單片機(jī)中斷按照中斷源類(lèi)型的不同主要分為:外部中斷、定時(shí)器中斷、串口中斷
而因?yàn)殡娐钒迳峡赡艽嬖诙鄠(gè)定時(shí)器或多個(gè)引起外部中斷的位置,所以產(chǎn)生多個(gè)中斷源,也因此單片機(jī)有多個(gè)中斷函數(shù)
以51單片機(jī)為例:
====================================
中斷編號(hào) 中斷源
0 外部中斷0
1 T0定時(shí)器溢出中斷
2 外部中斷1
3 T1定時(shí)器溢出中斷
4 串口中斷
====================================
C程序中使用中斷的方法
EA=1; //打開(kāi)中斷總開(kāi)關(guān)
ET0=1; //打開(kāi)T0定時(shí)器中斷
while(1)
{
//your code
}
//定義中斷處理函數(shù)(程序會(huì)自動(dòng)調(diào)用)
void InterruptTimer0() interrupt 1
{
//關(guān)鍵詞interrupt后面的1表示中斷函數(shù)編號(hào)
//your code
//當(dāng)T0定時(shí)器溢出(即截獲中斷)時(shí),執(zhí)行InterruptTimer0中斷處理函數(shù),執(zhí)行完畢后程序?qū)膚hile中發(fā)生中斷的位置繼續(xù)往下執(zhí)行
}
而因?yàn)殡娐钒迳峡赡艽嬖诙鄠(gè)定時(shí)器或多個(gè)引起外部中斷的位置,所以產(chǎn)生多個(gè)中斷源,也因此單片機(jī)有多個(gè)中斷函數(shù)
以51單片機(jī)為例:
====================================
中斷編號(hào) 中斷源
0 外部中斷0
1 T0定時(shí)器溢出中斷
2 外部中斷1
3 T1定時(shí)器溢出中斷
4 串口中斷
====================================
C程序中使用中斷的方法
EA=1; //打開(kāi)中斷總開(kāi)關(guān)
ET0=1; //打開(kāi)T0定時(shí)器中斷
while(1)
{
//your code
}
//定義中斷處理函數(shù)(程序會(huì)自動(dòng)調(diào)用)
void InterruptTimer0() interrupt 1
{
//關(guān)鍵詞interrupt后面的1表示中斷函數(shù)編號(hào)
//your code
//當(dāng)T0定時(shí)器溢出(即截獲中斷)時(shí),執(zhí)行InterruptTimer0中斷處理函數(shù),執(zhí)行完畢后程序?qū)膚hile中發(fā)生中斷的位置繼續(xù)往下執(zhí)行
}