AT89S52單片機中斷過程
AT89S52單片機中斷分為四個階段:中斷采樣、中斷查詢、中斷響應、中斷返回。執(zhí)行中斷時,必須滿足以下三個條件:
(1) 中斷源有中斷申請;
(2) 此中斷源的中斷允許位為1;
(3) CPU開中斷,即總開關EA=1;
1.中斷采樣
中斷采樣針對外部中斷請求信號而言,在 S5P2對相應引腳采樣,根據其電平狀態(tài)高/低,判斷相應的中斷請求。
2.中斷查詢
在每個機器周期的S5P2后,由硬件自動地去查詢相應的中斷標志位,先查詢高級中斷,再查詢低級中斷,同級中斷按內部中斷優(yōu)先級順序查詢。如果查詢到有中斷標志位為1,則表明有中斷請求發(fā)生,接著從相鄰的下一個機器周期的S1狀態(tài)開始進行中斷響應。
3.中斷響應
CPU響應中斷時,先置位相應的優(yōu)先級激活觸發(fā)器,封鎖同級和低級的中斷。然后程序根據中斷源的類別,在硬件的控制下轉向相應的中斷入口單元,執(zhí)行中斷服務程序。
中斷響應的過程如圖所示。
圖 中斷響應過程
4.中斷返回
中斷服務程序的最后一條指令必須是中斷返回指令RETI。CPU執(zhí)行完這條指令后,把響應中斷時所置位的優(yōu)先級激活觸發(fā)器清0,然后從堆棧中彈出兩個字節(jié)內容(斷點地址)裝入程序計數器PC中,CPU就從原來被中斷處重新執(zhí)行被中斷的程序。
5. 中斷的響應時間
中斷響應時間是指從查詢中斷請求標志位開始到轉向中斷矢量地址所需的機器周期數。響應中斷的時間依中斷請求發(fā)生的情況不同有長有短,因此,AT89S52單片機發(fā)生中斷的時間根據中斷類型和中斷執(zhí)行的方式不同而不同。
外部中斷和的電平在每個機器周期的S5P2時被采樣并鎖存到IE0和IE1中,這個置入到IE0和IE1的狀態(tài)在下一個機器周期才被查詢電路查詢。如果產生了一個中斷請求,而且滿足響應的條件,CPU響應中斷,查詢中斷請求標志位,同時這個周期恰好是指令的最后一個周期,則在這個機器周期結束后,中斷請求被CPU 響應,產生一條硬件自動生成的長調用指令LCALL,以使CPU轉到相應的服務程序入口。這條指令需兩個機器周期,故最少需三個機器周期。
若在中斷查詢時正好開始執(zhí)行RET、RETI或訪問IE、IP,則需當前指令完成后再繼續(xù)執(zhí)行一條指令,才進行中斷響應。RET、RETI用2個機器周期,MUL、DIV 4個機器周期,LCALL 2個機器周期,共需要8個機器周期
因此,在系統中只有一個中斷源的情況下,響應時間總是在三個機器周期到八個機器周期之間。
編輯:admin 最后修改時間:2019-09-17