單片機(jī)中斷概念及理解
1 中斷源:指能向CPU發(fā)出中斷請(qǐng)求信號(hào)的部件和設(shè)備。
2 中斷信號(hào):指內(nèi)部或外部中斷源產(chǎn)生的申請(qǐng)信號(hào)。這個(gè)信號(hào)通常是電信號(hào)的某種變化形式,有以下幾類:
1)脈沖的上跳沿或下降沿(上升沿觸發(fā)型或下降沿觸發(fā)型)
2)高電平或低電平
3)電平的變化
3 中斷向量:
中斷源發(fā)出的請(qǐng)求信號(hào)被CPU檢測(cè)到之后,如果單片機(jī)的中斷控制系統(tǒng)允許響應(yīng)中斷,則CPU會(huì)自動(dòng)轉(zhuǎn)移,執(zhí)行一個(gè)固定的程序空間地址中的指令。這個(gè)固定的地址稱作中斷入口地址,也要中斷向量。
中斷控制與中斷響應(yīng)條件:
在單片機(jī)中,對(duì)應(yīng)每一個(gè)中斷源都有一個(gè)相應(yīng)的中斷標(biāo)志位,該中斷標(biāo)志位將占據(jù)中斷控制寄存器中的一位。當(dāng)單片機(jī)檢測(cè)到某一中斷源產(chǎn)生符合條件的中斷信號(hào)時(shí),其硬件會(huì)自動(dòng)將該中斷源對(duì)應(yīng)的中斷標(biāo)志位置1。這就意味著有中斷信號(hào)產(chǎn)生并向MCU申請(qǐng)中斷。
響應(yīng)A中斷=全局中斷允許標(biāo)志位 + 中斷A允許標(biāo)志位 + 中斷A的標(biāo)志位
內(nèi)部中斷:?jiǎn)纹瑱C(jī)的內(nèi)部集成許多功能模塊,如定時(shí)器,串口通信,A/D轉(zhuǎn)換器……在發(fā)生中斷時(shí)才需要CPU參與,發(fā)出請(qǐng)求信號(hào)通知CPU。
外部中斷:系統(tǒng)的外部設(shè)備產(chǎn)生的中斷源,產(chǎn)生一個(gè)中斷信號(hào)(通常是高低地那瓶或者電平跳變的上升/下降),送到單片機(jī)的外部中斷請(qǐng)求引腳供CPU檢測(cè)。
中斷進(jìn)行的大概過程:
總中斷允許位打開,本身中斷允許位打開,中斷源產(chǎn)生一個(gè)符合條件的中斷信號(hào),當(dāng)MCU檢測(cè)到這個(gè)信號(hào),其硬件就自動(dòng)將該中斷源對(duì)應(yīng)的中斷標(biāo)志位置1(這個(gè)標(biāo)志位在中斷控制寄存器中占一位),即響應(yīng)中斷,則CPU會(huì)自動(dòng)轉(zhuǎn)移,執(zhí)行一個(gè)固定的程序空間地址中的指令(即中斷向量),在中斷向量處放置著一條跳轉(zhuǎn)到中斷服務(wù)程序的指令。這樣,CPU響應(yīng)后,執(zhí)行中斷向量中的轉(zhuǎn)移指令,進(jìn)而執(zhí)行中斷服務(wù)程序。