at89s52單片機(jī)的中斷系統(tǒng)共有8個(gè)中斷源,6個(gè)中斷矢量,兩級(jí)中斷優(yōu)先級(jí),可實(shí)現(xiàn)兩級(jí)中斷服務(wù)程序嵌套,通過軟件來屏蔽或允許相應(yīng)的中斷請(qǐng)求。每一個(gè)中斷源可以編程為高優(yōu)先級(jí)中斷或低優(yōu)先級(jí)中斷,允許或禁止向cpu申請(qǐng)中斷。中斷系統(tǒng)的特殊功寄存器有中斷允許寄存器ie、中斷優(yōu)先級(jí)寄存器ip等。
圖1為at89s52單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)示意圖。at89s52有兩個(gè)外部中斷源int0、int1;串口通信有接收和發(fā)送兩個(gè)中斷源,經(jīng)過一個(gè)或門,公用同一個(gè)中斷矢量;定時(shí)器/計(jì)數(shù)器0、定時(shí)器/計(jì)數(shù)器1的溢出中斷源對(duì)應(yīng)兩個(gè)中斷矢量;定時(shí)/計(jì)數(shù)器2有計(jì)數(shù)溢出和捕獲兩種中斷源,經(jīng)或門共用一個(gè)中斷矢量。
圖1 中斷系統(tǒng)結(jié)構(gòu)示意圖
(1) 來自p3.2引腳上的外部中斷請(qǐng)求(外部中斷0),低電平或下降沿(從高到低)有效,通過設(shè)置it0的值可將外部中斷0設(shè)置為低電平觸發(fā)或下降沿觸發(fā),it0=0時(shí),為電平觸發(fā)方式,當(dāng)引腳上出現(xiàn)低電平時(shí)就向cpu申請(qǐng)中斷;it0=1時(shí),為跳變觸發(fā)方式,當(dāng)引腳上出現(xiàn)負(fù)跳變時(shí),置位tcon.1的ie0中斷請(qǐng)求標(biāo)志位,向cpu申請(qǐng)中斷。cpu在每個(gè)機(jī)器周期的s5p2狀態(tài)采樣ie0標(biāo)志位,當(dāng)條件滿足,則響應(yīng)中斷請(qǐng)求。
(2) 來自p3.3引腳上的外部中斷請(qǐng)求(外部中斷1),低電平或下降沿有效。其功能與操作同。
(3) t0 片內(nèi)定時(shí)器/計(jì)數(shù)器0溢出(tf0)中斷請(qǐng)求。定時(shí)/計(jì)數(shù)器0無論內(nèi)部定時(shí)或?qū)ν獠渴录0計(jì)數(shù),當(dāng)計(jì)數(shù)器(th0、tl0)計(jì)數(shù)溢出,置位tcon.5的tf0中斷請(qǐng)求標(biāo)志位。cpu在每個(gè)機(jī)器周期的s5p2狀態(tài)時(shí)采樣tf0標(biāo)志位,當(dāng)條件滿足時(shí)cpu響應(yīng)中斷請(qǐng)求,轉(zhuǎn)向?qū)?yīng)的中斷矢量,執(zhí)行該中斷服務(wù)程序,并由硬件自動(dòng)將tf0標(biāo)志位清0。
(4) t1片內(nèi)定時(shí)器/計(jì)數(shù)器1溢出(tf1)中斷請(qǐng)求。其功能和操作類似定時(shí)/計(jì)數(shù)器0。其中斷請(qǐng)求標(biāo)志位為tcon.7的tf1。
(5) t2片內(nèi)定時(shí)器/計(jì)數(shù)器2溢出中斷請(qǐng)求。定時(shí)器2可以被寄存器t2con中的tf2和exf2的或邏輯觸發(fā)。程序進(jìn)入中斷服務(wù)后,這些標(biāo)志位都可以由硬件清0。定時(shí)器2有兩種不同的工作方式。
定時(shí)/計(jì)數(shù)器方式。當(dāng)定時(shí)/計(jì)數(shù)器方式的計(jì)數(shù)器(th2、tl2)計(jì)數(shù)滿后溢出,置位中斷請(qǐng)求標(biāo)志位(t2con.7)tf2,向cpu請(qǐng)求中斷處理。
“捕獲”方式。當(dāng)外部輸入端口t2ex發(fā)生從1→0下降沿時(shí),亦將置位t2con.6的中斷請(qǐng)求標(biāo)志位exf2,向cpu請(qǐng)求中斷處理。
(6) 串行口中斷。片內(nèi)串行口完成一幀發(fā)送或接收,置位中斷請(qǐng)求源ti或ri。當(dāng)完成一串行幀的接收/發(fā)送時(shí)分別置位串行通信控制寄存器scon中的ri/ti中斷請(qǐng)求標(biāo)志位,當(dāng)條件滿足時(shí)cpu響應(yīng)中斷請(qǐng)求。
每一個(gè)中斷源都對(duì)應(yīng)有一個(gè)中斷請(qǐng)求標(biāo)志位,它們?cè)O(shè)置在定時(shí)/計(jì)數(shù)器控制寄存器tcon、定時(shí)/計(jì)數(shù)器2控制寄存器t2con和串行通信控制寄存器scon的相應(yīng)位來鎖存。另外還有中斷控制寄存器ie和中斷優(yōu)先級(jí)控制寄存器ip,ie用于確定各中斷是允許還是禁止,ip用于定義各中斷源的中斷優(yōu)先級(jí),用戶通過設(shè)置其狀態(tài)來管理中斷系統(tǒng)。