單片機中斷是指在程序執(zhí)行過程中,某一事件發(fā)生時CPU能夠停下正在執(zhí)行的任務(wù)并立即轉(zhuǎn)到處理這個事件的程序中去執(zhí)行,在此處理完成后返回原執(zhí)行點繼續(xù)原任務(wù)的執(zhí)行。中斷對于單片機來說,是一種非常重要的功能,可以使系統(tǒng)具有更高的處理效率和更好的實時性。
1.單片機中斷系統(tǒng)的優(yōu)點
單片機中斷系統(tǒng)具有以下優(yōu)點:
- 提高處理器的效率:使用中斷可以有效降低CPU對于外設(shè)的輪詢時間,釋放CPU的大量時間用于執(zhí)行其他任務(wù)。
- 提高系統(tǒng)的實時性:當(dāng)有事件需要立即響應(yīng)時,通過中斷可以使CPU立即處理該事件,并且保證處理完成之后立即返回原來的執(zhí)行任務(wù),從而提高了系統(tǒng)的實時性。
- 簡化程序結(jié)構(gòu):中斷可以將程序分為兩部分,一部分是主程序,另一部分是中斷服務(wù)程序??梢詫/O操作、定時器計數(shù)等與主程序無關(guān)的功能交給中斷服務(wù)程序處理,使程序結(jié)構(gòu)更加簡單明了。
- 提高可靠性:使用中斷可以避免因為某一設(shè)備忙或出錯而導(dǎo)致程序死循環(huán)的情況發(fā)生,從而提高了系統(tǒng)的可靠性。
2.單片機中斷的概念及作用
如前所述,單片機中斷是CPU接收外部事件請求時所采取的一種特殊處理方式。在單片機中,有兩類中斷:外部中斷和內(nèi)部中斷。外部中斷是指由硬件觸發(fā)引起的中斷請求,如I/O操作等;內(nèi)部中斷則是由軟件觸發(fā)引起的中斷請求,如定時器計數(shù)等。
當(dāng)發(fā)生一個中斷請求時,CPU會立即中止當(dāng)前任務(wù),壓入當(dāng)前任務(wù)狀態(tài)到堆棧中,然后執(zhí)行中斷服務(wù)程序。中斷服務(wù)程序完成之后,CPU將原來的執(zhí)行任務(wù)狀態(tài)從堆棧中恢復(fù)并繼續(xù)原任務(wù)的執(zhí)行。在這個過程中,CPU保存了現(xiàn)場信息(包括PC、PSW等寄存器的內(nèi)容)以便恢復(fù)。