中斷的過程:
對(duì)于單片機(jī)來講,中斷是指CPU在處理某一時(shí)間A時(shí),發(fā)生了另一事件B請(qǐng)求CPU立刻去處理(中斷發(fā)生);CPU暫時(shí)停止當(dāng)前的工作(中斷響應(yīng)),轉(zhuǎn)而去處理事件B(中斷服務(wù)),待CPU處理事件B完成后,再回到原來事件A被中斷的地方繼續(xù)處理事件A(中斷返回)。
① 中斷源 // 5個(gè)中斷源都有一個(gè)中斷入口地址,當(dāng)某個(gè)中斷源產(chǎn)生中斷時(shí),CPU響應(yīng)中斷便到相應(yīng)的中斷入口地址執(zhí)行中斷服務(wù)程序
② 中斷的嵌套與優(yōu)先級(jí)處理
③ 中斷的響應(yīng)過程
中斷系統(tǒng)結(jié)構(gòu)
外部中斷請(qǐng)求源:INT0、INT1
外部中斷0(INT0)由外部引腳P3.2引入,外部中斷1(INT1)由外部引腳P3.3引入
內(nèi)部中斷請(qǐng)求源:T0、T1、串口中斷
程序定義方式
定義中斷函數(shù)的一般形式
void 函數(shù)名() interrupt 中斷號(hào) using 寄存器工作組
p.s.如果中斷函數(shù)中調(diào)用了其他函數(shù),則被調(diào)用函數(shù)所使用的寄存器組必須與中斷函數(shù)相同。中斷函數(shù)不能參數(shù)傳遞,沒有返回值,不能直接被調(diào)用。
中斷序號(hào)
中斷優(yōu)先級(jí)
中斷系統(tǒng)寄存器
TCON:低4位給外部中斷請(qǐng)求源使用,高4位給內(nèi)部中斷請(qǐng)求源定時(shí)器T0 T1使用
外部請(qǐng)求源
IT0:INT0觸發(fā)方式控制位,可由軟件進(jìn)行置位和復(fù)位。IT0=0時(shí),INT0為低電平觸發(fā)方式。IT0=1時(shí),INT0為負(fù)跳變觸發(fā)方式。
IE0:INT0中斷請(qǐng)求標(biāo)志位。當(dāng)有外部的中斷請(qǐng)求時(shí),該位置1(這由硬件來完成),在CPU響應(yīng)中斷后,由硬件將IE0清0。
IT1、IE1的用途和IT0、IE0相似。
內(nèi)部請(qǐng)求源
TF0:定時(shí)/計(jì)數(shù)器T0溢出中斷標(biāo)記,當(dāng)T0產(chǎn)生溢出時(shí),TF0置位。當(dāng)CPU響應(yīng)中斷后,硬件將TF0復(fù)位
TR0:T0的開閉控制位,TR0=1時(shí)定時(shí)計(jì)數(shù)器打開,TR0=0時(shí)定時(shí)計(jì)數(shù)器關(guān)閉
TF1、TR1與TF0、TR0相似。
SCON:低2位與串口中斷相關(guān)
內(nèi)部請(qǐng)求源
TI、RI:串行口發(fā)送、接收中斷
IE:中斷允許寄存器
EA:中斷總控制位。EA=1,CPU開放所有中斷;EA=0,CPU禁止所有中斷。
ES:串行口中斷控制位。ES=1,允許串行口中斷;ES=0,屏蔽串行口中斷。
ET1:定時(shí)/計(jì)數(shù)器TI中斷控制位。ET1=1,允許T1中斷;ET1=0,禁止T1中斷。
EX1:外部中斷1中斷控制位。EX1=1,允許外部中斷1中斷;EX1=0,禁止外部中斷1中斷。
ET0:定時(shí)/計(jì)數(shù)器T0中斷控制位。ET0=1,允許T0中斷;ET0=0,禁止T0中斷。
EX0:外部中斷0中斷控制位。EX0=1,允許外部中斷0中斷;EX0=0,禁止外部中斷0斷。
IP:中斷優(yōu)先級(jí)寄存器
在該寄存器中,優(yōu)先級(jí)分為1 0兩級(jí),對(duì)應(yīng)的位置為1則為高優(yōu)先級(jí),位置為0則為低優(yōu)先級(jí)。執(zhí)行時(shí)先將高優(yōu)先級(jí)的中斷執(zhí)行完后才會(huì)執(zhí)行低優(yōu)先級(jí)(同樣高優(yōu)先級(jí)情況下,按默認(rèn)優(yōu)先級(jí)排)。
PS:串行口中斷優(yōu)先級(jí)控制位
PT1:定時(shí)器1優(yōu)先級(jí)控制位
PX1:外部中斷1優(yōu)先級(jí)控制位
PT0:定時(shí)器0優(yōu)先級(jí)控制位
PX0:外部中斷0優(yōu)先級(jí)控制位
補(bǔ)充:
外部中斷的觸發(fā)方式選擇
電平觸發(fā)方式(低電平觸發(fā))
CPU在每個(gè)機(jī)器周期采樣到的外部中斷輸入線的電平。在中斷服務(wù)程序返回之前,外部中斷請(qǐng)求輸入必須無效(即變?yōu)楦唠娖剑?,否則CPU返回主程序后會(huì)再次響應(yīng)中斷。
適于外中斷以低電平輸入且中斷服務(wù)程序能清除外部中斷請(qǐng)求(即外部中斷輸入電平又變?yōu)楦唠娖剑┑那闆r。
跳沿觸發(fā)方式
連續(xù)兩次采樣,一個(gè)機(jī)器周期采樣到外部中斷輸入為高,下一個(gè)機(jī)器周期采樣為低,則置“1”中斷請(qǐng)求標(biāo)志,直到CPU響應(yīng)此中斷時(shí),該標(biāo)志才清0。這樣不會(huì)丟失中斷,但輸入的負(fù)脈沖寬度至少保持1個(gè)機(jī)器周期。
編輯:hfy
-
單片機(jī)
+關(guān)注
關(guān)注
6023文章
44376瀏覽量
628477 -
寄存器
+關(guān)注
關(guān)注
31文章
5253瀏覽量
119212 -
cpu
+關(guān)注
關(guān)注
68文章
10702瀏覽量
209404 -
中斷系統(tǒng)
+關(guān)注
關(guān)注
1文章
96瀏覽量
60971
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論