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