什么是“中斷”?顧名思義中斷就是中斷某一工作過程去處理一些與本工作過程無關或間接相關或臨時發生的事件,處理完后,則繼續原工作過程。比如:你在看書,電話響了,你在書上做個記號后去接電話,接完后在原記號處繼續往下看書。如有多個中斷發生,依優先法則,中斷還具有嵌套特性。又比如:看書時,電話響了,你在書上做個記號后去接電話,你拿起電話和對方通話,這時門鈴響了,你讓打電話的對方稍等一下,你去開門,并在門旁與來訪者交談,談話結束,關好門,回到電話機旁,拿起電話,繼續通話,通話完畢,掛上電話,從作記號的地方繼續往下看書。由于一個人不可能同時完成多項任務,因此只好采用中斷方法,一件一件地做。
類似的情況在單片機中也同樣存在,通常單片機中只有一個CPU,但卻要應付諸如運行程序、數據輸入輸出以及特殊情況處理等多項任務,為此也只能采用停下一個工作去處理另一個工作的中斷方法。在單片機中, “中斷”是一個很重要的概念。中斷技術的進步使單片機的發展和應用大大地推進了一步。所以,中斷功能的強弱已成為衡量單片機功能完善與否的重要指標。中斷系統的引入解決了微處理器和外設之間數據傳輸速率的問題,提高了微處理器的實時性和處理能力。
只有當微處理器處于中斷開放時,才能接受外部的中斷申請。一個完整的中斷處理過程包括中斷請求、中斷響應、申斷處理和中斷返回。 中斷請求是中斷源向微處理器發出的信號, 要求微處理器暫停原來執行的程序并為之服務。中斷請求可以是電平信號或者脈沖信號。中斷請求信號一般保持到微處理器作出響應為止。 微處理器在檢測到中斷請求信號之后, 將中止當前正在執行的程序, 并對斷點實行保護,即將斷點的地址 (PC值)推入堆棧保護,以便在中斷結束時從堆棧彈出斷點地址,以便繼續執行中斷前的任務。然后,微處理器由中斷地址表獲取中斷入口地址,并將此地址送入程序計數器 (PC) ,從而開始執行中斷服務程序。在中斷服務程序里一般需要完成現場保護、開關中斷、執行中斷服務程序、現場恢復和中斷返回等工作。
7.1 ATMEGA16(L)的中斷系統
ATMEGA16(L)具有20個中斷源和1 個復位中斷, 在中斷源中處于低地址的中斷具有高的優先級。所有中斷源都有獨立的中斷使能位,當相應的使能位和全局中斷使能位(SREG 寄存器的位 I) 都置位時, 中斷才可以發生, 相應的中斷服務程序才會執行。 表 7-1為 ATMEGA16
(L)的中斷源。
0.jpg (19.99 KB, 下載次數: 79)
下載附件
2018-4-6 02:00 上傳
0.jpg (51.84 KB, 下載次數: 71)
下載附件
2018-4-6 02:00 上傳
一個中斷產生后,SREG 寄存器的全局中斷使能位I將被清零,后續中斷被屏蔽。用戶可以在中斷服務程序里對I置位從而開放中斷。 在中斷返回后,全局中斷位I將重新置位。當程序計數器指向中斷向量開始執行相應的中斷服務程序時,對應中斷標志位將被硬件清零。當一個符合條件的中斷發生后,如果相應的中斷使能位為0,中斷標志位將掛起并一直保持到中斷執行或者被軟件清除。如果全局中斷標志I被清零,則所有的中斷都不會被執行直到I置位。然后,被掛起的各個中斷按中斷優先級依次被處理。
完整的pdf格式文檔51黑下載地址(共9頁):
第7章 ATMEGA16_L_的中斷系統使用.pdf
(313.01 KB, 下載次數: 37)
2018-4-5 20:39 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|