您的位置:網(wǎng)站首頁 > 電器維修資料網(wǎng) > 正文 >
響應(yīng)中斷請求的條件
★★★★★【文章導(dǎo)讀】:響應(yīng)中斷請求的條件具體內(nèi)容是:一個中斷源的中斷請求被響應(yīng),必須滿足以下必要條件:(1)總中斷允許開關(guān)接通,即ie寄存器中的中斷總允許位ea=1。(2)該中斷源發(fā)出中斷請求,即該中斷源對應(yīng)的中斷請求標(biāo)志為1。(3)該中斷源的中斷允許位=1,即該中斷被…
來源: 日期:2013-12-18 13:59:51 人氣:標(biāo)簽:
一個中斷源的中斷請求被響應(yīng),必須滿足以下必要條件:
(1)總中斷允許開關(guān)接通,即ie寄存器中的中斷總允許位ea=1。
(2)該中斷源發(fā)出中斷請求,即該中斷源對應(yīng)的中斷請求標(biāo)志為1。
(3)該中斷源的中斷允許位=1,即該中斷被允許。
(4)無同級或更高級中斷正在被服務(wù)。
中斷響應(yīng)就是cpu對中斷源提出的中斷請求的接受。當(dāng)cpu查詢到有效的中斷請求時,在滿足上述條件時,緊接著就進(jìn)行中斷響應(yīng)。
中斷響應(yīng)的主要過程是首先由硬件自動生成一條長調(diào)用指令“lcall addr16”。這里的addr16就是程序存儲區(qū)中相應(yīng)的中斷人口地址。例如,對于外部中斷1的響應(yīng),硬件自動生成的長調(diào)用指令為
生成lcall指令后,緊接著就由cpu執(zhí)行該指令。首先將程序計數(shù)器pc的內(nèi)容壓入堆棧以保護(hù)斷點,再將中斷入口地址裝入pc,使程序轉(zhuǎn)向響應(yīng)中斷請求的中斷人口地址。各中斷源服務(wù)程序的入口地址是固定的,見下表。
中斷入口地址表

表中,兩個中斷入口間只相隔8字節(jié),一般情況下難以安放一個完整的中斷服務(wù)程序。因此,通常總是在中斷入口地址處放置一條無條件轉(zhuǎn)移指令,使程序執(zhí)行轉(zhuǎn)向在其他地址存放的中斷服務(wù)程序人口。
中斷響應(yīng)是有條件的,并不是查詢到的所有中斷請求都能被立即響應(yīng),當(dāng)遇到下列三種情況之一時,中斷響應(yīng)被封鎖:
(1)cpu正在處理同級或更高優(yōu)先級的中斷。因為當(dāng)一個中斷被響應(yīng)時,要把對應(yīng)的中斷優(yōu)先級狀態(tài)觸發(fā)器置1(該觸發(fā)器指出cpu所處理的中斷優(yōu)先級別),從而封鎖了低級中斷請求和同級中斷請求。
(2)所查詢的機器周期不是當(dāng)前正在執(zhí)行指令的 后一個機器周期。設(shè)定這個限制的目的是只有在當(dāng)前指令執(zhí)行完畢后,才能進(jìn)行中斷響應(yīng),以確保當(dāng)前指令執(zhí)行的完整性。
(3)正在執(zhí)行的指令是reti或是訪問ie或ip的指令。因為按照at89s51中斷系統(tǒng)的規(guī)定,在執(zhí)行完這些指令后,需要再執(zhí)行完一條指令,才能響應(yīng)新的中斷請求。
如果存在上述三種情況之一,cpu將丟棄中斷查詢結(jié)果,不能對中斷進(jìn)行響應(yīng)。
【看看這篇文章在百度的收錄情況】