mcs—51系列單片機內(nèi)部只有兩個外部中斷源輸入端,當外部中斷源多于兩個時,就必須進行擴展,下面介紹兩種簡單的擴展方法:
一、采用硬件請求和軟件查詢的方法: 這種方法是:把各個中斷源通過硬件“或非”門引入到單片機外部中斷源輸入端(int0或int1),同時再把外部中斷源送到單片機的某個輸入輸出端口,這樣當外部中斷時,通過“或非”門引起單片機中斷,在中斷服務程序中再通過軟件查詢,進而轉(zhuǎn)相應的中斷服務程序。顯然,這種方法的中斷優(yōu)先級取決于軟件查詢的次序。其硬件連接和軟件編程如下:
voidzhongduan(void)interrupt0using3//中斷函數(shù)
{
ex0=0;//關中斷
if(p0_0=1){*****}//中斷查詢
if(p0_1=1){*****}//中斷查詢
if(p0_2=1){*****}//中斷查詢
ex0=1;開中斷
}
二、用定時器/計數(shù)器作外部中斷 單片機的定時器/計數(shù)器是一個加一計數(shù)器,每當計數(shù)輸入端有一個“1—0”的負跳變時,計數(shù)器加一,當加一計數(shù)器溢出時,就向cpu發(fā)出中斷,利用這個特性來擴展中斷的方法是:首先把定時器/計數(shù)器設置成計數(shù)方式,并預置滿值,把外部中斷源輸入到p3口第4引腳或第5引腳(計數(shù)器輸入端),這樣就可以利用定時器/計數(shù)器作為單片機外部中斷了。注意這種方法的中斷服務的入口地址應在000bh或001bh?! g迎轉(zhuǎn)載,信息來自維庫電子市場網(wǎng)()