您的位置:網站首頁 > 電器維修資料網 > 正文 >
響應中斷請求的條件
★★★★★【文章導讀】:響應中斷請求的條件具體內容是:一個中斷源的中斷請求被響應,必須滿足以下必要條件:(1)總中斷允許開關接通,即ie寄存器中的中斷總允許位ea=1。(2)該中斷源發出中斷請求,即該中斷源對應的中斷請求標志為1。(3)該中斷源的中斷允許位=1,即該中斷被…
來源: 日期:2013-12-18 13:59:51 人氣:標簽:
一個中斷源的中斷請求被響應,必須滿足以下必要條件:
(1)總中斷允許開關接通,即ie寄存器中的中斷總允許位ea=1。
(2)該中斷源發出中斷請求,即該中斷源對應的中斷請求標志為1。
(3)該中斷源的中斷允許位=1,即該中斷被允許。
(4)無同級或更高級中斷正在被服務。
中斷響應就是cpu對中斷源提出的中斷請求的接受。當cpu查詢到有效的中斷請求時,在滿足上述條件時,緊接著就進行中斷響應。
中斷響應的主要過程是首先由硬件自動生成一條長調用指令“lcall addr16”。這里的addr16就是程序存儲區中相應的中斷人口地址。例如,對于外部中斷1的響應,硬件自動生成的長調用指令為
生成lcall指令后,緊接著就由cpu執行該指令。首先將程序計數器pc的內容壓入堆棧以保護斷點,再將中斷入口地址裝入pc,使程序轉向響應中斷請求的中斷人口地址。各中斷源服務程序的入口地址是固定的,見下表。
中斷入口地址表
表中,兩個中斷入口間只相隔8字節,一般情況下難以安放一個完整的中斷服務程序。因此,通常總是在中斷入口地址處放置一條無條件轉移指令,使程序執行轉向在其他地址存放的中斷服務程序人口。
中斷響應是有條件的,并不是查詢到的所有中斷請求都能被立即響應,當遇到下列三種情況之一時,中斷響應被封鎖:
(1)cpu正在處理同級或更高優先級的中斷。因為當一個中斷被響應時,要把對應的中斷優先級狀態觸發器置1(該觸發器指出cpu所處理的中斷優先級別),從而封鎖了低級中斷請求和同級中斷請求。
(2)所查詢的機器周期不是當前正在執行指令的 后一個機器周期。設定這個限制的目的是只有在當前指令執行完畢后,才能進行中斷響應,以確保當前指令執行的完整性。
(3)正在執行的指令是reti或是訪問ie或ip的指令。因為按照at89s51中斷系統的規定,在執行完這些指令后,需要再執行完一條指令,才能響應新的中斷請求。
如果存在上述三種情況之一,cpu將丟棄中斷查詢結果,不能對中斷進行響應。
【看看這篇文章在百度的收錄情況】
相關文章
- 上一篇: AT89S51中斷系統結構
- 下一篇: 單片機學習基本知識