單片機外部中斷源的擴展
設(shè)計一個五個外部中斷源系統(tǒng)。其中最高級的外部中斷源連接到INT0腳,其余中斷源連接到INT1腳。畫出系統(tǒng)電路原理圖,并寫出外部中斷1的中斷服務(wù)程序。案例分析:
中斷與查詢相結(jié)合的方法是把系統(tǒng)中多個外部中斷源按它們的重要程度進行排序,把其中最高級別的中斷源接到MCS-51的一個外部中斷源輸入端(例如接到 腳),其余的中斷源用線“或”的方法連接到另一個外部中斷輸入端( ),并同時接到一個I/O口,如圖3中所示接到P1口。中斷請求由硬件電路產(chǎn)生,而中斷源的識別由程序查詢來處理,查詢順序由中斷源的優(yōu)先級決定。圖3為五個外部中斷源的連接電路,其中設(shè)備1~4經(jīng)OC門與 連接,并連接到P1.0~P1.3,均采用電平觸發(fā)方式。設(shè)備0為最高級中斷源,單獨作為外部中斷0的輸入信號。這種辦法擴展比較簡單,但是當外部中斷擴展的數(shù)量較多時,查詢的時間比較長,導(dǎo)致程序的執(zhí)行效率較低。
程序代碼:
ORG 1000H
LJMP INTR
INTR: PUSH PSW ; 保護現(xiàn)場
PUSH A
JNB P1.0, IR1 ; P1.0引腳為0,轉(zhuǎn)至設(shè)備1中斷服務(wù)程序
JNB P1.1, IR2 ; P1.1引腳為0,轉(zhuǎn)至設(shè)備2中斷服務(wù)程序
JNB P1.2, IR3 ; P1.2引腳為0,轉(zhuǎn)至設(shè)備3中斷服務(wù)程序
JNB P1.3, IR4 ; P1.3引腳為0,轉(zhuǎn)至設(shè)備4中斷服務(wù)程序
INTR1: POP A ; 恢復(fù)現(xiàn)場
POP PSW
RETI ; 中斷返回
IR1: …… ; 設(shè)備1中斷服務(wù)程序入口
AJMP INTR1 ; 跳轉(zhuǎn)到INTR1所指示的指令
IR2: …… ; 設(shè)備2中斷服務(wù)程序入口
AJMP INTR1 ; 跳轉(zhuǎn)到INTR1
IR3: …… ; 設(shè)備3中斷服務(wù)程序入口
AJMP INTR1 ; 跳轉(zhuǎn)到INTR1
IR4: …… ; 設(shè)備4中斷服務(wù)程序入口
AJMP INTR1 ; 跳轉(zhuǎn)到INTR1
編輯:admin 最后修改時間:2018-05-08